瀏覽代碼

数据权限

zhengnaiwen_citu 7 月之前
父節點
當前提交
ed92144853
共有 2 個文件被更改,包括 67 次插入18 次删除
  1. 5 0
      src/api/user.js
  2. 62 18
      src/views/system/role/roleData.vue

+ 5 - 0
src/api/user.js

@@ -56,3 +56,8 @@ export function downloadUserTemplate () {
 export function userExcelExport (params) {
   return http.upload('/authentication/user/gz/icbc/excel/export', params)
 }
+
+// 可控权限列表清单
+export function getRoleDataPermissionList () {
+  return http.upload('/authentication/role/data/config/list')
+}

+ 62 - 18
src/views/system/role/roleData.vue

@@ -5,11 +5,25 @@
         <el-tag>{{ item.roleName }}</el-tag>
       </el-form-item>
       <el-form-item label="数据权限" required>
-        <el-row v-for="(data, index) in dataItems" :key="index">
-          <el-col v-for="(_data, _index) in data" :key="_index" :span="24 / data.length">
-            <el-checkbox v-model="values[index][_index]">备选项</el-checkbox>
-          </el-col>
-        </el-row>
+        <m-card shadow="never">
+          <el-row :gutter="2">
+            <el-col :span="8">功能名称</el-col>
+            权限选择
+          </el-row>
+          <el-row v-for="(data, index) in dataItems" :key="index">
+            <el-col :span="8">{{ data.funName || '名称获取异常' }}</el-col>
+            <el-radio-group v-model="data.value" size="small">
+              <el-radio
+                v-for="(value, i) in data.values"
+                :key="value.label + i"
+                :label="value.value"
+                :disabled="value.disable"
+              >
+                {{ value.label }}
+              </el-radio>
+            </el-radio-group>
+          </el-row>
+        </m-card>
       </el-form-item>
     </MForm>
   </MDialog>
@@ -17,35 +31,60 @@
 
 <script>
 import { saveDataPermission } from '@/api/menu'
+import { getRoleDataPermissionList } from '@/api/user'
 export default {
   name: 'role-data',
   data () {
     return {
-      item: {},
-      values: [
-        [true, false],
-        [true, false],
-        [true, false]
+      texts: [
+        { label: '功能', span: 8 },
+        { label: '不限', span: 4, value: 'all' },
+        { label: '本部门权限', span: 6, value: 'organization' },
+        { label: '仅本人权限', span: 6, value: 'employee' }
       ],
-      dataItems: [
-        [true, false],
-        [true, false],
-        [true, false]
-      ]
+      item: {},
+      dataItems: []
     }
   },
   methods: {
     open (item) {
       this.item = item
+      this.getList()
       this.$refs.menuDialog.open()
     },
+    async getList () {
+      try {
+        const { data } = await getRoleDataPermissionList()
+        this.dataItems = data.map(e => {
+          return {
+            funCode: e.funCode,
+            funName: e.funName,
+            value: 2,
+            values: [
+              { label: '不限', span: 4, value: 2 },
+              { label: '本部门权限', span: 6, value: 0, disable: !e.organization },
+              { label: '仅本人权限', span: 6, value: 1, disable: !e.employee }
+            ]
+          }
+        })
+      } catch (error) {
+        this.$message.error(error)
+      }
+    },
     async handleSave () {
       try {
         await saveDataPermission({
-          roleId: this.item.id
-          // menuIds: menuIds.join(',')
+          roleId: this.item.id,
+          items: this.dataItems.map(e => {
+            return {
+              funCode: e.funCode,
+              roleType: e.value,
+              wrType: 2
+            }
+          })
         })
         this.$message.success('保存成功')
+        this.$refs.menuDialog.close()
         this.$emit('refresh')
       } catch (error) {
         this.$message.error(error)
@@ -56,5 +95,10 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-
+.text-center {
+  text-align: center;
+}
+.text-right {
+  text-align: right;
+}
 </style>