Pārlūkot izejas kodu

初步完成权限模块

shaogen1995 3 gadi atpakaļ
vecāks
revīzija
85d5b05cb8

+ 0 - 137
new_backstage/src/pages/content/collection/componets/leftTab copy.vue

@@ -1,137 +0,0 @@
-<template>
-  <div class="leftTab">
-    <div class="title" @click="cutBoult = !cutBoult">
-      <i class="el-icon-menu"></i>
-      精品典藏
-      <div class="boult">
-        <i class="el-icon-arrow-down" v-if="cutBoult"></i>
-        <i class="el-icon-arrow-up" v-else></i>
-      </div>
-    </div>
-    <ul :class="{ hide: cutBoult }">
-      <li
-        v-for="(item, index) in menu"
-        :key="item.id"
-        :class="{ active: index === tabInd }"
-        @click="cutTab(item, index)"
-      >
-        {{ item.name }}
-      </li>
-    </ul>
-  </div>
-</template>
-
-<script>
-//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
-//例如:import 《组件名称》 from '《组件路径》';
-
-export default {
-  name: "leftTab",
-  props: ["menu"],
-  //import引入的组件需要注入到对象中才能使用
-  components: {},
-  data() {
-    //这里存放数据
-    return {
-      cutBoult: false,
-      tabInd: 0,
-    };
-  },
-  //监听属性 类似于data概念
-  computed: {},
-  //监控data中的数据变化
-  watch: {},
-  //方法集合
-  methods: {
-    cutTab(item, index) {
-      this.$emit("select", item);
-      this.tabInd = index;
-    },
-  },
-  //生命周期 - 创建完成(可以访问当前this实例)
-  created() {},
-  //生命周期 - 挂载完成(可以访问DOM元素)
-  mounted() {},
-  beforeCreate() {}, //生命周期 - 创建之前
-  beforeMount() {}, //生命周期 - 挂载之前
-  beforeUpdate() {}, //生命周期 - 更新之前
-  updated() {}, //生命周期 - 更新之后
-  beforeDestroy() {}, //生命周期 - 销毁之前
-  destroyed() {}, //生命周期 - 销毁完成
-  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
-};
-</script>
-<style lang='less' scoped>
-.leftTab {
-  border-right: solid 1px #e5e5e5;
-  position: relative;
-  margin-right: 20px;
-  padding-top: 40px;
-  & > ul {
-    width: 200px;
-    min-height: 400px;
-    list-style: none;
-    position: relative;
-    margin: 0;
-    padding-left: 0;
-    background-color: #fff;
-    & > li {
-      transition: all 0.3s;
-      cursor: pointer;
-      font-size: 14px;
-      list-style: none;
-      margin: 0;
-      height: 50px;
-      line-height: 50px;
-      padding: 0 45px;
-      min-width: 200px;
-      &:hover {
-        background-color: #f8ece9;
-      }
-    }
-    .active {
-      color: #b63c25;
-    }
-  }
-  .hide {
-    & > li {
-      height: 0px;
-      overflow: hidden;
-    }
-  }
-  .title {
-    position: relative;
-    font-weight: 400;
-    margin: 0;
-    font-size: 14px;
-    color: #303133;
-    padding: 0 20px;
-    cursor: pointer;
-    // transition: border-color 0.3s, background-color 0.3s, color 0.3s;
-    box-sizing: border-box;
-    height: 56px;
-    display: flex;
-    align-items: center;
-    position: relative;
-    white-space: nowrap;
-    list-style: none;
-    & > i {
-      vertical-align: middle;
-      margin-right: 5px;
-      width: 24px;
-      text-align: center;
-      font-size: 18px;
-      color: #909399;
-    }
-    &:hover {
-      background-color: #f8ece9;
-    }
-    .boult {
-      position: absolute;
-      top: 50%;
-      right: 18px;
-      transform: translateY(-50%);
-    }
-  }
-}
-</style>

+ 14 - 0
new_backstage/src/pages/content/collection/componets/leftTab.vue

@@ -30,12 +30,14 @@
             v-show="item.id === ind"
           >
             <i
+              v-if="limits.edit"
               class="el-icon-edit"
               title="编辑"
               @click="$emit('editTab', item.id)"
             ></i>
             <i
               v-if="item.id!==1&&item.id!==2&&item.id!==3"
+              v-show="limits.del"
               class="el-icon-close"
               title="删除"
               @click="$emit('deltTab', item.id)"
@@ -56,6 +58,11 @@ export default {
   props: ["menu", "title", "default"],
   data() {
     return {
+      // 权限的数据
+      limits:{
+        edit:true,
+        del:true
+      },
       // type: this.default,
       ind: null,
     };
@@ -70,6 +77,13 @@ export default {
       type () {
         return this.default
       }
+    },
+   async created(){
+     //获取自定义模块的权限
+    let temp = localStorage.getItem('XJ_limits_ZDY')
+    temp =JSON.parse(temp)
+    this.limits.edit=temp[0].authority
+    this.limits.del=temp[1].authority
     }
 };
 </script>

+ 7 - 1
new_backstage/src/pages/content/collection/index.vue

@@ -10,7 +10,7 @@
     <div class="tablecon flexcon">
       <!-- 新增tab栏的按钮 -->
       <div class="addTab">
-        <el-button type="primary" style="width: 100%" @click="isShow = true"
+        <el-button type="primary" style="width: 100%" @click="isShow = true" v-if="limitsEdit"
           >新增模块</el-button
         >
       </div>
@@ -112,6 +112,7 @@
       >
         <el-form-item label="模块名称:">
           <el-input
+            :disabled='isShowId===1||isShowId===2||isShowId===3'
             v-model="ruleForm.name"
             maxlength="10"
             show-word-limit
@@ -189,6 +190,7 @@ export default {
   components: { LeftTab },
   data() {
     return {
+      limitsEdit:true,
       type: "goods",
       showApplyDetail: false,
       alDetail: {},
@@ -361,6 +363,10 @@ export default {
     if (myId) this.goodsModuleId = Number(myId);
     else this.goodsModuleId = 1;
     this.getTabList();
+    //获取自定义模块的权限
+    let temp = localStorage.getItem('XJ_limits_ZDY')
+    temp =JSON.parse(temp)
+    this.limitsEdit=temp[0].authority
   },
 };
 </script>

+ 23 - 23
new_backstage/src/pages/info/statistics/index.vue

@@ -237,28 +237,28 @@ export default {
 
     // 封装注册用户统计方法
     async getReportUser(startTime, endTime) {
-      await getReportUser({ endTime, startTime });
+     let res2= await getReportUser({ endTime, startTime });
       // 由于接口没有完善,先模拟数据
-      let moni1 = [
-        { count: 1, name: "超级管理员" },
-        { count: 5, name: "游客" },
-        { count: 3, name: "审核管理员" },
-        { count: 4, name: "内容管理员" },
-        { count: 10, name: "自定义" },
-        { count: 10, name: "自定义" },
-      ];
+      // let moni1 = [
+      //   { count: 1, name: "超级管理员" },
+      //   { count: 5, name: "游客" },
+      //   { count: 3, name: "审核管理员" },
+      //   { count: 4, name: "内容管理员" },
+      //   { count: 10, name: "自定义" },
+      //   { count: 10, name: "自定义" },
+      // ];
       let temp2 = [];
       let temp2Txt = [];
       let tempNum = 50;
       let tempFont = {};
-      if (moni1.length > 5) {
+      if (res2.data.length > 5) {
         tempNum = "";
         tempFont = {
           interval: 0, //强制文字产生间隔
           rotate: 45, //文字逆时针旋转45°
         };
       }
-      moni1.forEach((v) => {
+      res2.data.forEach((v) => {
         temp2Txt.push(v.name);
         temp2.push(v.count);
       });
@@ -277,23 +277,23 @@ export default {
 
     // 封装投票点赞统计方法
     async getReportVote(startTime, endTime) {
-      await getReportVote({ endTime, startTime });
+     let res4 = await getReportVote({ endTime, startTime });
       //模拟数据
-      let moni2 = [
-        { countLike: 1, countVote: 2, name: "实物模型" },
-        { countLike: 10, countVote: 20, name: "专题图库" },
-        { countLike: 7, countVote: 28, name: "视频档案" },
-        { countLike: 18, countVote: 9, name: "自定义1" },
-        { countLike: 11, countVote: 13, name: "自定义2" },
-        { countLike: 1, countVote: 2, name: "实物模型" },
-        { countLike: 11, countVote: 13, name: "自定义2" },
-      ];
+      // let moni2 = [
+      //   { countLike: 1, countVote: 2, name: "实物模型" },
+      //   { countLike: 10, countVote: 20, name: "专题图库" },
+      //   { countLike: 7, countVote: 28, name: "视频档案" },
+      //   { countLike: 18, countVote: 9, name: "自定义1" },
+      //   { countLike: 11, countVote: 13, name: "自定义2" },
+      //   { countLike: 1, countVote: 2, name: "实物模型" },
+      //   { countLike: 11, countVote: 13, name: "自定义2" },
+      // ];
       let temp4Txt = [];
       let temp4_1 = [];
       let temp4_2 = [];
       let temp4Font = {};
-      if (moni2.length > 6) temp4Font = { interval: 0, rotate: 45 };
-      moni2.forEach((v) => {
+      if (res4.data.length > 6) temp4Font = { interval: 0, rotate: 45 };
+      res4.data.forEach((v) => {
         temp4Txt.push(v.name);
         temp4_1.push(v.countVote);
         temp4_2.push(v.countLike);

+ 13 - 9
new_backstage/src/pages/layout/aside.vue

@@ -79,6 +79,9 @@ export default {
         method: "GET",
         url: "/sys/resource/getTreePermissions",
       });
+      
+      // 把权限本地存储起来,用来管理新增的功能自定义模块
+       localStorage.setItem('XJ_limits_ZDY',JSON.stringify(result.data[1].children[3].children))
 
       this.tmpRoute = routes.filter((item) => {
         let tmp = "";
@@ -89,7 +92,6 @@ export default {
             }
           }
         });
-
         if (item.type == "system") {
           if (window.localStorage.getItem("role") == "sys_admin") {
             tmp = item;
@@ -99,15 +101,17 @@ export default {
         }
         return tmp ? Object.assign(item, tmp) : tmp;
       });
-
+      // 只有管理员能看网站数据统计
+      if(window.localStorage.getItem("role") == "sys_admin") {
+        this.tmpRoute.push({
+          id: "9",
+          key: "statistics",
+          name: "网站数据统计",
+          noEdit: true,
+          type: "info",
+        });
+      }
       //---------------------没有设置权限,临时push进去----------------------------------
-      this.tmpRoute.push({
-        id: "9",
-        key: "statistics",
-        name: "网站数据统计",
-        noEdit: true,
-        type: "info",
-      });
 
       console.log(this.tmpRoute);
       let temp = this.tmpRoute.filter((item) => {

+ 4 - 2
new_backstage/src/pages/system/role/componets/manage.vue

@@ -45,7 +45,7 @@ export default {
 
     this.data.resources = tmp;
 
-    console.log(this.data.resources);
+    console.log('111111',this.data.resources);
 
     return {
       form: this.data,
@@ -65,6 +65,8 @@ export default {
       this.form.resources = data1.checkedKeys;
     },
   },
-  mounted() {},
+  mounted() {
+    console.log('111111',this.data);
+  },
 };
 </script>