Browse Source

权限管理对接联调完善

ming 3 years ago
parent
commit
e882f10c1c

+ 8 - 0
src/api/publicList.js

@@ -16,5 +16,13 @@ export function dataManagementDeviceList(params) {
     })
     })
 }
 }
 
 
+// 公共按钮权限
+export function getAuthorities(params) {
+    return request({
+        url: '/userSite/getButtonlistone',
+        method: 'GET',
+        params,
+    })
+}
 
 
 // 设备下拉
 // 设备下拉

+ 12 - 1
src/api/systemManage/rolePermission.js

@@ -58,11 +58,22 @@ export function roleMenuTreeselect(params, params2) {
     })
     })
 }
 }
 
 
+// 右侧表格树查询
+export function getAuthorityTable(params) {
+    return request({
+        url: '/userSite/getAuthority',
+        method: 'GET',
+        params,
+    })
+}
+
+
+
 
 
 //角色-保存
 //角色-保存
 export function saveMenu(params) {
 export function saveMenu(params) {
     return request({
     return request({
-        url: '/system/role',
+        url: '/system/role/editOne',
         method: 'PUT',
         method: 'PUT',
         data: params,
         data: params,
     })
     })

+ 2 - 0
src/main.js

@@ -52,6 +52,8 @@ router.beforeEach((to) => {
     if (to.path != '/login') {
     if (to.path != '/login') {
         store.commit("publicSiteList");
         store.commit("publicSiteList");
         store.commit('publicDeviceList')
         store.commit('publicDeviceList')
+
+        store.commit('getAuthorities')
     }
     }
     if (to.path == '/home') {
     if (to.path == '/home') {
         if (window.location.host.indexOf('localhost') != -1) {
         if (window.location.host.indexOf('localhost') != -1) {

+ 30 - 0
src/store/index.js

@@ -25,6 +25,8 @@ export default createStore({
         monthList: [], //公共每月最后一天信息存储
         monthList: [], //公共每月最后一天信息存储
         dateList: [], //公共每月当天信息存储
         dateList: [], //公共每月当天信息存储
 
 
+        authorities: [],
+
         timeProcessing: '',
         timeProcessing: '',
 
 
         Time_Data: [], //公共api请求参数->Time_Data
         Time_Data: [], //公共api请求参数->Time_Data
@@ -115,6 +117,34 @@ export default createStore({
 
 
         },
         },
 
 
+
+        /**
+         * @公共按钮权限
+         * @param {*} state 
+         */
+        getAuthorities(state) {
+            var menuName = document.title;
+            // alert(window.location.href.indexOf('alarmManage') != -1)
+            if (window.location.href.indexOf('alarmManage') != -1) {
+                menuName = '告警管理'
+            }
+            api
+                .getAuthorities({ menuName: menuName })
+                .then((requset) => {
+                    if (requset.status === 'SUCCESS') {
+                        state.authorities = []
+                        console.log('request')
+                        console.log(requset.data)
+                    } else {
+                        ElMessage.error(requset.msg)
+                    }
+                })
+
+        },
+
+
+
+
         /**
         /**
          * @公共api请求参数siteId
          * @公共api请求参数siteId
          * @param {*}} state 
          * @param {*}} state 

+ 25 - 1
src/views/systemManage/rolePermission/index.vue

@@ -27,8 +27,9 @@
       <role-info-com
       <role-info-com
         class="basicInfo"
         class="basicInfo"
         style="height: calc(100vh - 130px)"
         style="height: calc(100vh - 130px)"
-        v-if="menuData.length > 0"
+        v-if="menuData.length > 0&&menuData2.length > 0"
         :menuData="menuData"
         :menuData="menuData"
+        :menuData2="menuData2"
         :checkedKeys="checkedKeys"
         :checkedKeys="checkedKeys"
         :objItem="objItem"
         :objItem="objItem"
         :radio1="radio1"
         :radio1="radio1"
@@ -62,6 +63,7 @@ export default defineComponent({
     const showDialog = ref(false)
     const showDialog = ref(false)
     const roleData = ref([])
     const roleData = ref([])
     const menuData = ref([])
     const menuData = ref([])
+    const menuData2 = ref([])
     const newMenuData = ref([])
     const newMenuData = ref([])
     const checkedKeys = ref([])
     const checkedKeys = ref([])
     const objItem = ref({})
     const objItem = ref({})
@@ -130,9 +132,12 @@ export default defineComponent({
       radio1.value = value
       radio1.value = value
       objItem.value = item
       objItem.value = item
       roleMenuTreeselect()
       roleMenuTreeselect()
+      getAuthorityTable()
 
 
       // console.log(radio1.value)
       // console.log(radio1.value)
     }
     }
+
+    // 表格树结构渲染
     function roleMenuTreeselect() {
     function roleMenuTreeselect() {
       menuData.value = []
       menuData.value = []
       api.roleMenuTreeselect({}, radio1.value).then((requset) => {
       api.roleMenuTreeselect({}, radio1.value).then((requset) => {
@@ -173,6 +178,22 @@ export default defineComponent({
       })
       })
     }
     }
 
 
+    //小吉新接口渲染右侧表格树数据
+    function getAuthorityTable() {
+      menuData2.value = []
+      api.getAuthorityTable({roleId:radio1.value}).then((requset) => {
+        if (requset.code == 200) {
+          menuData2.value = requset.data
+           console.log(  '父组件中menuData2.value')
+          console.log(  menuData2.value)
+
+        } else {
+          ElMessage.error(requset.msg)
+        }
+      })
+    }
+
+
     function getTreeData2(data) {
     function getTreeData2(data) {
       for (var i = 0; i < data.length; i++) {
       for (var i = 0; i < data.length; i++) {
         if (data[i].label == data[i].children[0].label) {
         if (data[i].label == data[i].children[0].label) {
@@ -208,6 +229,7 @@ export default defineComponent({
     onMounted(() => {
     onMounted(() => {
       roleList()
       roleList()
       roleMenuTreeselect()
       roleMenuTreeselect()
+      getAuthorityTable()
     })
     })
 
 
     return {
     return {
@@ -217,10 +239,12 @@ export default defineComponent({
       dialogTitle,
       dialogTitle,
       tableItem,
       tableItem,
       menuData,
       menuData,
+      menuData2,
       newMenuData,
       newMenuData,
       checkedKeys,
       checkedKeys,
       listTabsChange,
       listTabsChange,
       roleMenuTreeselect,
       roleMenuTreeselect,
+      getAuthorityTable,
       deleteRoleItem,
       deleteRoleItem,
       addRole,
       addRole,
       editRole,
       editRole,

+ 42 - 144
src/views/systemManage/rolePermission/roleInfoCom/index.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
   <div class="siteManage-main roleInfoPage">
   <div class="siteManage-main roleInfoPage">
     <el-table
     <el-table
-      :data="tableData"
+      :data="menuData2"
       border
       border
       stripe
       stripe
       :cell-style="cellStyle"
       :cell-style="cellStyle"
@@ -22,6 +22,7 @@
             :key="item.actionid"
             :key="item.actionid"
             v-model="item.checked"
             v-model="item.checked"
             :disabled="radio1 == 1 ? true : false"
             :disabled="radio1 == 1 ? true : false"
+            @change="handleCheckedChange"
           ></el-checkbox>
           ></el-checkbox>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
@@ -47,142 +48,11 @@ import { ElMessage } from 'element-plus'
 
 
 export default defineComponent({
 export default defineComponent({
   name: 'RoleInfoCom',
   name: 'RoleInfoCom',
-  props: ['menuData', 'objItem', 'radio1', 'checkedKeys'],
+  props: ['menuData', 'menuData2', 'objItem', 'radio1', 'checkedKeys'],
 
 
   setup(props) {
   setup(props) {
     const saveArr = ref([])
     const saveArr = ref([])
-
-    const tableData = ref([
-      {
-        id: '1',
-        menu: '告警管理',
-        authority: [
-          { id:'111',name: '查询', checked: true },
-          { id:'112',name: '修改', checked: true },
-        ],
-      },
-      {
-        id: '2',
-        menu: '站点管理',
-        authority: [
-          {id:'211',name: '查询', checked: true },
-          {id:'212',name: '新增', checked: true },
-          {id:'213', name: '修改', checked: true },
-          {id:'214',name: '删除', checked: true },
-        ],
-      },
-      {
-        id: '3',
-        menu: '台区管理',
-        authority: [
-          {id:'311', name: '查询', checked: true },
-          {id:'312', name: '新增', checked: true },
-          {id:'313', name: '修改', checked: true },
-          {id:'314', name: '删除', checked: true },
-        ],
-      },
-      {
-        id: '4',
-        menu: '设备管理',
-        authority: [
-          {id:'411', name: '查询', checked: true },
-          {id:'412', name: '新增', checked: true },
-          {id:'413', name: '修改', checked: true },
-          {id:'414', name: '删除', checked: true },
-        ],
-      },
-
-      {
-        id: '5',
-        menu: '数据管理',
-        children: [
-          {
-            id: '51',
-            menu: '同比分析报表',
-            authority: [{id:'511', name: '查询', checked: true }],
-          },
-          {
-            id: '52',
-            menu: '环比分析报表',
-            authority: [{ id:'521',name: '查询', checked: true }],
-          },
-          {
-            id: '53',
-            menu: '用能月报',
-            authority: [{id:'531', name: '查询', checked: true }],
-          },
-          {
-            id: '54',
-            menu: '需量分析',
-            authority: [{id:'541', name: '查询', checked: true }],
-          },
-        ],
-      },
-      {
-        id: '6',
-        menu: '电能质量',
-        children: [
-          {
-            id: '61',
-            menu: '谐波报表',
-            authority: [{id:'611', name: '查询', checked: true }],
-          },
-          {
-            id: '62',
-            menu: '实时监测',
-            authority: [{id:'621', name: '查询', checked: true }],
-          },
-          {
-            id: '63',
-            menu: '评估报告',
-            authority: [{id:'631', name: '查询', checked: true }],
-          },
-          {
-            id: '64',
-            menu: '三项不平衡分析',
-            authority: [{id:'641', name: '查询', checked: true }],
-          },
-        ],
-      },
-
-      {
-        id: '7',
-        menu: '计划停电',
-        authority: [
-          {id:'711', name: '查询', checked: true },
-          {id:'712', name: '新增', checked: true },
-          {id:'713', name: '修改', checked: true },
-          {id:'714', name: '删除', checked: true },
-        ],
-      },
-
-      {
-        id: '8',
-        menu: '系统管理',
-        children: [
-          {
-            id: '81',
-            menu: '用户管理',
-            authority: [
-              {id:'811', name: '查询', checked: true },
-              {id:'812', name: '新增', checked: true },
-              {id:'813', name: '修改', checked: true },
-              {id:'814', name: '删除', checked: true },
-            ],
-          },
-          {
-            id: '82',
-            menu: '权限管理',
-            authority: [
-              {id:'821', name: '查询', checked: true },
-              {id:'822', name: '新增', checked: true },
-              {id:'823', name: '修改', checked: true },
-              {id:'824', name: '删除', checked: true },
-            ],
-          },
-        ],
-      },
-    ])
+    const checkedArr = ref([])
 
 
     function cellStyle({ row, column, rowIndex, columnIndex }) {
     function cellStyle({ row, column, rowIndex, columnIndex }) {
       row, column, rowIndex
       row, column, rowIndex
@@ -192,9 +62,11 @@ export default defineComponent({
     }
     }
 
 
     function saveMenu() {
     function saveMenu() {
+      console.log('checkedArr')
+      console.log(checkedArr.value)
       api
       api
         .saveMenu({
         .saveMenu({
-          menuIds: saveArr.value,
+          menuIds: checkedArr.value,
           roleId: props.radio1,
           roleId: props.radio1,
           roleKey: props.objItem.roleKey,
           roleKey: props.objItem.roleKey,
           roleName: props.objItem.roleName,
           roleName: props.objItem.roleName,
@@ -215,7 +87,7 @@ export default defineComponent({
     function getTreeData(data) {
     function getTreeData(data) {
       // 循环遍历json数据
       // 循环遍历json数据
       for (var i = 0; i < data.length; i++) {
       for (var i = 0; i < data.length; i++) {
-        data[i]['disabled'] = true;
+        data[i]['disabled'] = true
         if (!data[i].children) {
         if (!data[i].children) {
           // children若为空数组,则不作操作
           // children若为空数组,则不作操作
         } else {
         } else {
@@ -225,14 +97,38 @@ export default defineComponent({
       }
       }
       return data
       return data
     }
     }
+    function handleCheckedChange() {
+      checkedArr.value = []
+      getCheckedArr()
+    }
+
+    // 复选框选中的数组集合start
+    function getCheckedArr() {
+      props.menuData2.forEach(function (item) {
+        if (item.children) {
+          item.children.forEach(function (a) {
+            a.authority.forEach(function (i) {
+              if (i.checked) {
+                checkedArr.value.push(i.id)
+              }
+            })
+          })
+        } else {
+          item.authority.forEach(function (i) {
+            if (i.checked) {
+              checkedArr.value.push(i.id)
+            }
+          })
+        }
+      })
+      console.log('checkedArr.value')
+      console.log(checkedArr.value)
+    }
 
 
     onMounted(() => {
     onMounted(() => {
-      saveArr.value = props.checkedKeys
-      //当为超级管理员禁止修改权限
-      if (props.radio1 == 1) {
-        getTreeData(props.menuData)
-       
-      }
+      console.log('子组件中的menuData2')
+      console.log(props.menuData2)
+      getCheckedArr()
     })
     })
 
 
     //监听变化
     //监听变化
@@ -240,16 +136,18 @@ export default defineComponent({
       () => props.radio1,
       () => props.radio1,
       (newVal) => {
       (newVal) => {
         newVal
         newVal
+        // checkedArr.value=[]
       }
       }
     )
     )
 
 
     return {
     return {
-      tableData,
       cellStyle,
       cellStyle,
       saveMenu,
       saveMenu,
       saveArr,
       saveArr,
+      getCheckedArr,
       getTreeData,
       getTreeData,
-   
+      checkedArr,
+      handleCheckedChange,
     }
     }
   },
   },
 })
 })