bdde9e93 by 任超
2 parents 019ca4a5 692e8fc1
...@@ -16,7 +16,7 @@ export const getRolesById = categoryId => { ...@@ -16,7 +16,7 @@ export const getRolesById = categoryId => {
16 conditions: [ 16 conditions: [
17 { 17 {
18 property: 'category', 18 property: 'category',
19 value:categoryId, 19 value: categoryId,
20 operator: 'EQ' 20 operator: 'EQ'
21 } 21 }
22 ], 22 ],
...@@ -81,3 +81,43 @@ export const getParentMenuListAction = (id) => { ...@@ -81,3 +81,43 @@ export const getParentMenuListAction = (id) => {
81 const params = getParams(conditionGroup) 81 const params = getParams(conditionGroup)
82 return getAction(api.menus, params) 82 return getAction(api.menus, params)
83 } 83 }
84 // 获取权限列表
85 export const getAuthorityListAction = (productId, subsystemCode) => {
86 const conditionGroup = {
87 conditions: [
88 {
89 property: 'productId',
90 value: productId,
91 operator: 'EQ'
92 },
93 {
94 property: 'code',
95 value: subsystemCode + '_MENU',
96 operator: 'EQ'
97 }
98 ],
99 queryRelation: 'AND'
100 }
101 const params = getParams(conditionGroup)
102 return getAction(api.resourceCategory, params)
103 }
104 /**
105 * 获取角色的权限 id operationCodes resourceCategoryCode
106 * id 授权id
107 * operationCodes 操作符集合
108 * resourceCategoryCode 菜单默认MENU
109 */
110 export const getRoleAuthorityList = (
111 id,
112 operationCodes,
113 resourceCategoryCode
114 ) => {
115 return getAction(`${api.rolePermissions}/${id}`, {
116 operationCodes: operationCodes,
117 resourceCategoryCode: resourceCategoryCode
118 })
119 }
120 // 角色授权
121 export const roleAuthority = (id, permissionDtos) => {
122 return putAction(`${api.rolePermissions}/${id}`, permissionDtos)
123 }
......
...@@ -64,7 +64,7 @@ export default { ...@@ -64,7 +64,7 @@ export default {
64 }) 64 })
65 }, 65 },
66 beforeDestroy () { 66 beforeDestroy () {
67 this.chart.dispose(); 67 // this.chart.dispose();
68 this.chart = null; 68 this.chart = null;
69 }, 69 },
70 methods: { 70 methods: {
......
1 import Vue from 'vue' 1 import Vue from 'vue'
2 2
3 // 下载,导出 3 // 下载,导出
4 Vue.prototype.$download = function(name, href) { 4 Vue.prototype.$download = function (name, href) {
5 var a = document.createElement('a') // 创建a标签 5 var a = document.createElement('a') // 创建a标签
6 var e = document.createEvent('MouseEvents') // 创建鼠标事件对象 6 var e = document.createEvent('MouseEvents') // 创建鼠标事件对象
7 e.initEvent('click', false, false) // 初始化事件对象 7 e.initEvent('click', false, false) // 初始化事件对象
...@@ -10,7 +10,7 @@ Vue.prototype.$download = function(name, href) { ...@@ -10,7 +10,7 @@ Vue.prototype.$download = function(name, href) {
10 a.dispatchEvent(e) // 给指定的元素,执行事件click事件 10 a.dispatchEvent(e) // 给指定的元素,执行事件click事件
11 } 11 }
12 // 导出json文件 12 // 导出json文件
13 Vue.prototype.$downloadJson = function(data, name) { 13 Vue.prototype.$downloadJson = function (data, name) {
14 // 1 生成文件的 blob 对象 14 // 1 生成文件的 blob 对象
15 const blobData = new Blob([JSON.stringify(data)], { 15 const blobData = new Blob([JSON.stringify(data)], {
16 type: 'application/octet-stream' 16 type: 'application/octet-stream'
...@@ -84,7 +84,7 @@ const checkCode = (rule, value, callback) => { ...@@ -84,7 +84,7 @@ const checkCode = (rule, value, callback) => {
84 // } 84 // }
85 // } 85 // }
86 // 日期格式转换 "yyyy-MM-dd HH:mm:ss" 86 // 日期格式转换 "yyyy-MM-dd HH:mm:ss"
87 Vue.prototype.$formdate = function(date) { 87 Vue.prototype.$formdate = function (date) {
88 if (!date) { 88 if (!date) {
89 return "" 89 return ""
90 } 90 }
...@@ -95,22 +95,22 @@ Vue.prototype.$formdate = function(date) { ...@@ -95,22 +95,22 @@ Vue.prototype.$formdate = function(date) {
95 var hh = (d.getHours() < 10 ? '0' + d.getHours() : d.getHours()) + ':'; 95 var hh = (d.getHours() < 10 ? '0' + d.getHours() : d.getHours()) + ':';
96 var mm = (d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes()) + ':'; 96 var mm = (d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes()) + ':';
97 var ss = (d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds()); 97 var ss = (d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds());
98 return YY + MM + DD +" "+hh + mm + ss 98 return YY + MM + DD + " " + hh + mm + ss
99 } 99 }
100 // 时间格式过滤 100 // 时间格式过滤
101 Vue.filter('timeFilter', function(timeStr) { 101 Vue.filter('timeFilter', function (timeStr) {
102 if (timeStr) { 102 if (timeStr) {
103 return timeStr.substring(0, 10) 103 return timeStr.substring(0, 10)
104 } 104 }
105 }) 105 })
106 export function getType(o) { 106 export function getType (o) {
107 return Object.prototype.toString.call(o).slice(8, -1) 107 return Object.prototype.toString.call(o).slice(8, -1)
108 } 108 }
109 export function isKeyType(o, type) { 109 export function isKeyType (o, type) {
110 return getType(o).toLowerCase() === type.toLowerCase() 110 return getType(o).toLowerCase() === type.toLowerCase()
111 } 111 }
112 // 深拷贝全局挂载 112 // 深拷贝全局挂载
113 Vue.prototype.$deepCopy = function(sth) { 113 Vue.prototype.$deepCopy = function (sth) {
114 // 深度复制数组 114 // 深度复制数组
115 // if (Object.prototype.toString.call(obj) === "[object Array]") { 115 // if (Object.prototype.toString.call(obj) === "[object Array]") {
116 // const object = []; 116 // const object = [];
...@@ -196,7 +196,7 @@ Vue.prototype.$dealArrNotDisabled = arr => { ...@@ -196,7 +196,7 @@ Vue.prototype.$dealArrNotDisabled = arr => {
196 } 196 }
197 } 197 }
198 } 198 }
199 function nodeDeal(arr) { 199 function nodeDeal (arr) {
200 arr.forEach(item => { 200 arr.forEach(item => {
201 delete item.disabled 201 delete item.disabled
202 if (item.children) { 202 if (item.children) {
...@@ -222,7 +222,7 @@ Vue.prototype.$dealArrDisabled = (arr, id) => { ...@@ -222,7 +222,7 @@ Vue.prototype.$dealArrDisabled = (arr, id) => {
222 } 222 }
223 } 223 }
224 } 224 }
225 function nodeDeal(arr) { 225 function nodeDeal (arr) {
226 arr.forEach(item => { 226 arr.forEach(item => {
227 item['disabled'] = true 227 item['disabled'] = true
228 if (item.children) { 228 if (item.children) {
...@@ -249,10 +249,9 @@ Vue.prototype.$getNodeRoute = (val, id) => { ...@@ -249,10 +249,9 @@ Vue.prototype.$getNodeRoute = (val, id) => {
249 } 249 }
250 } 250 }
251 }) 251 })
252 function nodefun(newVal, newId, newCid_list) { 252 function nodefun (newVal, newId, newCid_list) {
253 let flag = false 253 let flag = false
254 newVal.forEach(j => { 254 newVal.forEach(j => {
255 // console.log(j)
256 if (j.id === newId) { 255 if (j.id === newId) {
257 newCid_list.push(j.id) 256 newCid_list.push(j.id)
258 flag = true 257 flag = true
...@@ -272,7 +271,7 @@ Vue.prototype.$getNodeRoute = (val, id) => { ...@@ -272,7 +271,7 @@ Vue.prototype.$getNodeRoute = (val, id) => {
272 return newCid_list 271 return newCid_list
273 } 272 }
274 } 273 }
275 function result(cid_list) { 274 function result (cid_list) {
276 const arr = cid_list.concat() 275 const arr = cid_list.concat()
277 arr.pop() 276 arr.pop()
278 return arr 277 return arr
...@@ -325,7 +324,7 @@ Vue.prototype.$findParent = (list, id) => { ...@@ -325,7 +324,7 @@ Vue.prototype.$findParent = (list, id) => {
325 Vue.prototype.$findChildren = (list, nodeId) => { 324 Vue.prototype.$findChildren = (list, nodeId) => {
326 let newArray = [] 325 let newArray = []
327 let flag = false 326 let flag = false
328 function dealList(list, nodeId) { 327 function dealList (list, nodeId) {
329 if (list.length !== 0) { 328 if (list.length !== 0) {
330 list.forEach(item => { 329 list.forEach(item => {
331 if (!flag) { 330 if (!flag) {
......
1 <template>
2 <Dialog :title="title" class="tableClass" :show.sync="visible" :width="'715px'" @close="close()">
3 <template slot="content">
4 <lb-table ref="multipleTable"
5 :pagination="false"
6 :column="tableData.column"
7 :data="tableData.data"
8 @selection-change="handleSelectionChange">
9 </lb-table>
10 </template>
11 <template slot="footer">
12 <el-button type="primary" class="save" @click="handleSaveMember()"
13 >保存</el-button
14 >
15 <el-button class="cancel-button" @click="close()">取消</el-button>
16 </template>
17 </Dialog>
18 </template>
19
20 <script>
21 import Dialog from "@/components/Dialog/";
22 export default {
23 name: "",
24 components: { Dialog },
25 props: {},
26 data() {
27 return {
28 title: "人员配置",
29 visible: false,
30 tableData: {
31 column: [
32 {
33 type: 'selection'
34 },
35 {
36 prop: 'name',
37 label: '角色名称'
38 },
39 {
40 prop: 'type',
41 label: '角色类型'
42 },
43 {
44 prop: 'departmentName',
45 label: '角色描述'
46 },
47 ],
48 data: [
49 {
50 id: "3127e455-43ba-45ff-9326-0e02ef89485e",
51 createdAt: null,
52 updatedAt: "2022-08-04T03:38:27.626+0000",
53 createdBy: null,
54 updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e",
55 sort: 1,
56 name: "超级管理员",
57 loginName: "admin",
58 password: "05eb15777e8fd1d61c840472e7267f61d432f63340d86b59",
59 passwordSalt: "5178114777136485",
60 email: null,
61 lastLoginTime: null,
62 mobilePhone: "18291003568",
63 status: "ACTIVE",
64 passwordChangeTime: "2021-12-10T08:01:01.569+0000",
65 idCard: "612725202111021521",
66 departmentId: "2eae5304-544f-4f5b-b354-8f5d47433c9b",
67 organizationId: "0bca67ae-1d9e-4b41-b057-f165586d24aa",
68 sex: "0",
69 isDuty: true,
70 type:"",
71 code: "123324",
72 jobLevel: null,
73 telephone: "028-87720898",
74 address: "办公地点修改测试",
75 isLocked: false,
76 departmentName: "研发部",
77 _X_ROW_KEY: "row_276",
78 },
79 {
80 name: '数据管理员',
81 type:"1",
82 },
83 {
84 name: '数据管理员2',
85 type:"d",
86 }
87 ]
88 },
89 multipleSelection: []
90
91 }
92 },
93 computed: {},
94 watch: {},
95 created() {},
96 mounted() {},
97 methods: {
98 authorization() {
99 this.visible = true;
100 },
101 close() {
102 // this.resetForm()
103 this.visible = false;
104 },
105 // 保存事件
106 handleSaveMember() {
107 // if (this.memberList.length === 0) {
108 // this.$message.warning("请添加待选人员");
109 // return false;
110 // }
111 // const idList = this.memberList.map(item => item.id)
112 // updateUser(this.roleId, idList).then(res => {
113 // if (res.status === 1) {
114 // this.$message.success({ message: '保存成功', showClose: true })
115 // this.showMemberConfigDialog = false
116 // this.$emit('setUsers', this.roleId)
117 // this.resetMemberConfig()
118 // } else this.$message.error({ message: res.message, showClose: true })
119 // })
120 },
121 handleSelectionChange (val) {
122 this.multipleSelection = val
123 }
124 }
125 };
126 </script>
127 <style scoped lang="scss">
128 /deep/.el-dialog__header{
129 text-align: center;
130 margin-bottom: 10px;
131 .el-dialog__title{
132 color: white;
133 }
134 }
135 </style>
...@@ -166,6 +166,7 @@ export default { ...@@ -166,6 +166,7 @@ export default {
166 methods: { 166 methods: {
167 // 获取父级菜单 167 // 获取父级菜单
168 getParentMenuList(id) { 168 getParentMenuList(id) {
169
169 getParentMenuListAction(id).then((res) => { 170 getParentMenuListAction(id).then((res) => {
170 if (res.status === 1) { 171 if (res.status === 1) {
171 const list = this.$dealArrChildren(res.content) 172 const list = this.$dealArrChildren(res.content)
...@@ -195,7 +196,7 @@ export default { ...@@ -195,7 +196,7 @@ export default {
195 }, 196 },
196 // 新增菜单 197 // 新增菜单
197 add() { 198 add() {
198 this.getParentMenuList(this.productId) 199 this.getParentMenuList("2925fdeb-ddeb-4c15-8ee0-7bc3aa75ec2b")
199 this.visible = true 200 this.visible = true
200 this.type = 0 201 this.type = 0
201 this.form.jumpMode = 1 202 this.form.jumpMode = 1
......
...@@ -19,33 +19,32 @@ ...@@ -19,33 +19,32 @@
19 :data="tablelistData" 19 :data="tablelistData"
20 row-key="id" 20 row-key="id"
21 default-expand-all 21 default-expand-all
22 :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" 22 :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
23 >
24 </lb-table> 23 </lb-table>
25 </div> 24 </div>
26 <edit-dialog ref="dialogForm" 25 <edit-dialog ref="dialogForm"
27 :product-id="productId" 26 :product-id="productId"
28 :resource-category-id="resourceCategoryId" 27 :resource-category-id="resourceCategoryId"
29 @ok="reloadTableData"/> 28 @ok="reloadTableData" />
30 <!-- <authorizationdiglog ref="rolesForm" /> --> 29 <!-- <authorizationdiglog ref="rolesForm" /> -->
31 </div> 30 </div>
32 </template> 31 </template>
33 <script> 32 <script>
34 // 定时任务 33 // 定时任务
35 import data from "./data"; 34 import data from "./data";
36 import { deleteAction, getAction, api } from "@/api/manageApi"; 35 import { deleteAction, getAction, api } from "@/api/manageApi";
37 import EditDialog from "./edit-dialog.vue"; 36 import EditDialog from "./edit-dialog.vue";
38 // import authorizationdiglog from "./authorizationdiglog.vue"; 37 // import authorizationdiglog from "./authorizationdiglog.vue";
39 export default { 38 export default {
40 name: "menus", 39 name: "menus",
41 components: { 40 components: {
42 EditDialog, 41 EditDialog,
43 // authorizationdiglog, 42 // authorizationdiglog,
44 }, 43 },
45 data() { 44 data () {
46 return { 45 return {
47 tablelistData: [], 46 tablelistData: [],
48 resourceCategoryId:"", 47 resourceCategoryId: "",
49 taskData: null, 48 taskData: null,
50 form: { 49 form: {
51 job_name: "", 50 job_name: "",
...@@ -106,15 +105,15 @@ export default { ...@@ -106,15 +105,15 @@ export default {
106 }, 105 },
107 tableUrl: api.menus, // 菜单接口地址 106 tableUrl: api.menus, // 菜单接口地址
108 meumurlid: api.subsystem,// 项目id接口地址 107 meumurlid: api.subsystem,// 项目id接口地址
109 productId:""//项目id 108 productId: ""//项目id
110 }; 109 };
111 }, 110 },
112 created() { 111 created () {
113 this.getTableList(); 112 this.getTableList();
114 }, 113 },
115 methods: { 114 methods: {
116 // 加载表格数据 115 // 加载表格数据
117 getTableList() { 116 getTableList () {
118 117
119 const queryOptionsid = { 118 const queryOptionsid = {
120 conditionGroup: { 119 conditionGroup: {
...@@ -134,7 +133,7 @@ export default { ...@@ -134,7 +133,7 @@ export default {
134 // 获取系统id 133 // 获取系统id
135 getAction(this.meumurlid, params) 134 getAction(this.meumurlid, params)
136 .then((res) => { 135 .then((res) => {
137 this.productId=res.content[0].id; 136 this.productId = res.content[0].id;
138 let queryOptions = { 137 let queryOptions = {
139 conditionGroup: { 138 conditionGroup: {
140 conditions: [ 139 conditions: [
...@@ -161,34 +160,33 @@ export default { ...@@ -161,34 +160,33 @@ export default {
161 if (res.status === 1) { 160 if (res.status === 1) {
162 this.loading = false; 161 this.loading = false;
163 this.tablelistData = res.content; 162 this.tablelistData = res.content;
164 console.log("this.tablelistData", this.tablelistData);
165 } else { 163 } else {
166 this.$message.error({ message: res.message, showClose: true }); 164 this.$message.error({ message: res.message, showClose: true });
167 this.loading = false; 165 this.loading = false;
168 } 166 }
169 }) 167 })
170 .catch((error) => { 168 .catch((error) => {
171 console.log("errrrrrorrrrr", error); 169 console.log("er", error);
172 this.loading = false; 170 this.loading = false;
173 }); 171 });
174 }) 172 })
175 .catch((error) => { 173 .catch((error) => {
176 console.log("errrrrrorrrrr", error); 174 console.log("er", error);
177 }); 175 });
178 }, 176 },
179 // 新增菜单 177 // 新增菜单
180 handleAdd() { 178 handleAdd () {
181 this.$refs.dialogForm.add(); 179 this.$refs.dialogForm.add();
182 this.$refs.dialogForm.title = "添加"; 180 this.$refs.dialogForm.title = "添加";
183 }, 181 },
184 182
185 // 修改 183 // 修改
186 handleEdit(record) { 184 handleEdit (record) {
187 this.$refs.dialogForm.edit(record); 185 this.$refs.dialogForm.edit(record);
188 this.$refs.dialogForm.title = "修改"; 186 this.$refs.dialogForm.title = "修改";
189 }, 187 },
190 // 删除 188 // 删除
191 handleDelete(id,content) { 189 handleDelete (id, content) {
192 this.$confirm( 190 this.$confirm(
193 `<div class="customer-message-wrapper"> 191 `<div class="customer-message-wrapper">
194 <h5 class="title">您确认要执行该操作用于以下信息:</h5> 192 <h5 class="title">您确认要执行该操作用于以下信息:</h5>
...@@ -225,22 +223,22 @@ export default { ...@@ -225,22 +223,22 @@ export default {
225 } 223 }
226 }) 224 })
227 }) 225 })
228 .catch(() => {}) 226 .catch(() => { })
229 }, 227 },
230 // 新增、编辑回显 228 // 新增、编辑回显
231 reloadTableData() { 229 reloadTableData () {
232 this.getTableList() 230 this.getTableList()
233 }, 231 },
234 }, 232 },
235 }; 233 };
236 </script> 234 </script>
237 <style scoped lang="scss"> 235 <style scoped lang="scss">
238 @import "~@/styles/mixin.scss"; 236 @import "~@/styles/mixin.scss";
239 @import "~@/styles/public.scss"; 237 @import "~@/styles/public.scss";
240 .btnColRight { 238 .btnColRight {
241 margin-top: 20px; 239 margin-top: 20px;
242 } 240 }
243 /deep/.el-table__expand-icon { 241 /deep/.el-table__expand-icon {
244 color: #fff; 242 color: #fff;
245 } 243 }
246 </style> 244 </style>
......
...@@ -22,8 +22,7 @@ ...@@ -22,8 +22,7 @@
22 :column="tableData.columns" 22 :column="tableData.columns"
23 :data="listdata" 23 :data="listdata"
24 :expand-row-keys="keyList" 24 :expand-row-keys="keyList"
25 row-key="id" 25 row-key="id">
26 >
27 </lb-table> 26 </lb-table>
28 </div> 27 </div>
29 <EditDialog ref="addEditDialog" @ok="reloadTableData" /> 28 <EditDialog ref="addEditDialog" @ok="reloadTableData" />
...@@ -31,28 +30,35 @@ ...@@ -31,28 +30,35 @@
31 </div> 30 </div>
32 </template> 31 </template>
33 <script> 32 <script>
34 import { 33 import {
35 getUuid, 34 getUuid,
36 judgeSort, 35 judgeSort,
37 realMove, 36 realMove,
38 findParents, 37 findParents,
39 removeTreeListItem, 38 removeTreeListItem,
40 } from "@/utils/operation"; 39 } from "@/utils/operation";
41 import { getRolesById, getUserRoles } from "@/api/quanxianmanagement"; 40 import { getRolesById, getUserRoles, getAuthorityListAction } from "@/api/quanxianmanagement";
42 import data from "./data"; 41 import data from "./data";
43 import sjsbTask from "@/api/sjsbTask.js"; 42 // import {
44 import { api, getAction,deleteAction } from "@/api/manageApi"; 43 // getOrganizationAuthorityList,
45 import tableMixin from "@/mixins/tableMixin.js"; 44 // getDepartmentAuthorityList,
46 import EditDialog from "./edit-dialog.vue"; 45 // getRoleAuthorityList,
47 import Roleslistdiglog from "./roleslistdiglog.vue"; 46 // getUserAuthorityList,
48 export default { 47 // getAuthorityListAction
48 // } from '@/api/authorityManage'
49 import sjsbTask from "@/api/sjsbTask.js";
50 import { api, getAction, deleteAction } from "@/api/manageApi";
51 import tableMixin from "@/mixins/tableMixin.js";
52 import EditDialog from "./edit-dialog.vue";
53 import Roleslistdiglog from "./roleslistdiglog.vue";
54 export default {
49 name: "menus", 55 name: "menus",
50 mixins: [tableMixin], 56 mixins: [tableMixin],
51 components: { 57 components: {
52 EditDialog, 58 EditDialog,
53 Roleslistdiglog, 59 Roleslistdiglog,
54 }, 60 },
55 data() { 61 data () {
56 return { 62 return {
57 personlist: null, 63 personlist: null,
58 waitMemberList: [], 64 waitMemberList: [],
...@@ -67,6 +73,11 @@ export default { ...@@ -67,6 +73,11 @@ export default {
67 roleId: "", 73 roleId: "",
68 title: "", 74 title: "",
69 queryParam: {}, 75 queryParam: {},
76 multipleSelection: [],
77 // 菜单列表
78 menutablelistData: [],
79 tableUrl: api.menus, // 菜单接口地址
80 meumurlid: api.subsystem, // 项目id接口地址
70 selectType: "0", 81 selectType: "0",
71 queryName: "", 82 queryName: "",
72 organizationId: "", // 组织机构ID 83 organizationId: "", // 组织机构ID
...@@ -74,6 +85,8 @@ export default { ...@@ -74,6 +85,8 @@ export default {
74 departmentList: [], // 部门列表 85 departmentList: [], // 部门列表
75 levelList: [], // 职务级别 86 levelList: [], // 职务级别
76 sexList: [], 87 sexList: [],
88 operationCodes: null, // 操作符对象
89 operationList: [], // 获取授权列表需要提交的操作符数组
77 typeOptions: [ 90 typeOptions: [
78 { 91 {
79 value: "0", 92 value: "0",
...@@ -141,10 +154,16 @@ export default { ...@@ -141,10 +154,16 @@ export default {
141 render: (h, scope) => { 154 render: (h, scope) => {
142 return ( 155 return (
143 <div> 156 <div>
144 <el-tooltip class="item" effect="dark" disabled={scope.row.type !== 'Everyone'} content="没有点击的权限" placement="top"> 157 <el-tooltip
158 class="item"
159 effect="dark"
160 disabled={scope.row.type !== "Everyone"}
161 content="没有点击的权限"
162 placement="top"
163 >
145 <span> 164 <span>
146 <el-button 165 <el-button
147 disabled={scope.row.type === 'Everyone'} 166 disabled={scope.row.type === "Everyone"}
148 type="text" 167 type="text"
149 size="mini" 168 size="mini"
150 icon="el-icon-video-pause" 169 icon="el-icon-video-pause"
...@@ -156,7 +175,13 @@ export default { ...@@ -156,7 +175,13 @@ export default {
156 </el-button> 175 </el-button>
157 </span> 176 </span>
158 </el-tooltip> 177 </el-tooltip>
159 <el-tooltip class="item" effect="dark" disabled={scope.row.category !== 1} content="系统内置角色 不允许修改" placement="top"> 178 <el-tooltip
179 class="item"
180 effect="dark"
181 disabled={scope.row.category !== 1}
182 content="系统内置角色 不允许修改"
183 placement="top"
184 >
160 <span> 185 <span>
161 <el-button 186 <el-button
162 disabled={scope.row.category === 1} 187 disabled={scope.row.category === 1}
...@@ -171,7 +196,13 @@ export default { ...@@ -171,7 +196,13 @@ export default {
171 </el-button> 196 </el-button>
172 </span> 197 </span>
173 </el-tooltip> 198 </el-tooltip>
174 <el-tooltip class="item" effect="dark" disabled={scope.row.category !== 1} content="系统内置角色 不允许删除" placement="top"> 199 <el-tooltip
200 class="item"
201 effect="dark"
202 disabled={scope.row.category !== 1}
203 content="系统内置角色 不允许删除"
204 placement="top"
205 >
175 <span> 206 <span>
176 <el-button 207 <el-button
177 type="text" 208 type="text"
...@@ -201,15 +232,16 @@ export default { ...@@ -201,15 +232,16 @@ export default {
201 }, 232 },
202 }; 233 };
203 }, 234 },
204 created() { 235 created () {
205 this.getTableData(); 236 this.getTableData();
237 this.getTableList()
206 }, 238 },
207 mounted() {}, 239 mounted () { },
208 methods: { 240 methods: {
209 // 获取角色列表 241 // 获取角色列表
210 getTableData() { 242 getTableData () {
211 let Builtinrole=[] 243 let Builtinrole = [];
212 let Publicrole=[] 244 let Publicrole = [];
213 245
214 getRolesById(1) 246 getRolesById(1)
215 .then((res) => { 247 .then((res) => {
...@@ -225,11 +257,93 @@ export default { ...@@ -225,11 +257,93 @@ export default {
225 .catch((e) => console.error(e)); 257 .catch((e) => console.error(e));
226 }) 258 })
227 .catch((e) => console.error(e)); 259 .catch((e) => console.error(e));
260 },
228 261
229 262 // 获取菜单列表
263 getTableList () {
264 const queryOptionsid = {
265 conditionGroup: {
266 queryRelation: "AND",
267 conditions: [
268 {
269 property: "code",
270 value: "BDCJGPT",
271 operator: "EQ",
272 },
273 ],
230 }, 274 },
231 // 人员配置 275 };
232 getUserList(row) { 276 const params = {
277 queryOptions: queryOptionsid,
278 };
279 // 获取系统id
280 getAction(this.meumurlid, params)
281 .then((res) => {
282 this.productId = res.content[0].id;
283 this.getAuthorityList(res.content[0].id, res.content[0].code)
284 this.selectedSubsystemCode = res.content[0].code
285 let queryOptions = {
286 conditionGroup: {
287 conditions: [
288 {
289 property: "productId",
290 value: this.productId,
291 operator: "EQ",
292 },
293 ],
294 queryRelation: "AND",
295 },
296 orderBys: [{ property: "sort", direction: "desc" }],
297 };
298 if (!this.tableUrl) {
299 console.log("请设置tableUrl属性为接口地址!");
300 return;
301 }
302 if (this.queryOptions !== "") {
303 this.queryParam.queryOptions = JSON.stringify(queryOptions);
304 }
305 // 查询系统菜单
306 getAction(this.tableUrl, this.queryParam)
307 .then((res) => {
308 if (res.status === 1) {
309 this.loading = false;
310 this.menutablelistData = res.content;
311 } else {
312 this.$message.error({ message: res.message, showClose: true });
313 this.loading = false;
314 }
315 })
316 .catch((error) => {
317 console.log("er", error);
318 this.loading = false;
319 });
320 })
321 .catch((error) => {
322 console.log("er", error);
323 });
324 },
325 // 获取权限列表
326 getAuthorityList (productId, code) {
327 getAuthorityListAction(productId, code).then(
328 res => {
329 if (res.status === 1) {
330 if (res.content.length !== 0) {
331 this.operationCodes = res.content[0].operations
332 this.operationList = []
333 for (var k in this.operationCodes) {
334 this.operationList.push(k)
335 }
336 }
337 } else {
338 this.$message.error({ message: res.message, showClose: true })
339 }
340 }
341 )
342 },
343
344 // 配置
345 getUserList (row) {
346 this.getTableList()
233 const params = {}; 347 const params = {};
234 const queryOptions = { 348 const queryOptions = {
235 conditionGroup: { 349 conditionGroup: {
...@@ -250,6 +364,7 @@ export default { ...@@ -250,6 +364,7 @@ export default {
250 orderBys: [{ property: "sort", direction: "desc" }], 364 orderBys: [{ property: "sort", direction: "desc" }],
251 }; 365 };
252 params.queryOptions = JSON.stringify(queryOptions); 366 params.queryOptions = JSON.stringify(queryOptions);
367
253 getUserRoles(row.id).then((res) => { 368 getUserRoles(row.id).then((res) => {
254 if (res.status === 1) { 369 if (res.status === 1) {
255 this.personlist = res.content; 370 this.personlist = res.content;
...@@ -266,7 +381,10 @@ export default { ...@@ -266,7 +381,10 @@ export default {
266 }); 381 });
267 } 382 }
268 383
269 this.$refs.rolesForm.adds(this.waitMemberList, row.id); 384 this.$refs.rolesForm.personlist(this.waitMemberList, row.id);
385 // this.$refs.rolesForm.getMenuData();
386
387 this.$refs.rolesForm.menulist(this.operationList, row.id, this.selectedSubsystemCode, this.menutablelistData, this.operationCodes);
270 } else { 388 } else {
271 this.$message.error({ message: res.message, showClose: true }); 389 this.$message.error({ message: res.message, showClose: true });
272 } 390 }
...@@ -276,7 +394,7 @@ export default { ...@@ -276,7 +394,7 @@ export default {
276 }); 394 });
277 }, 395 },
278 // 新增、修改角色 396 // 新增、修改角色
279 handleAddEdit(value) { 397 handleAddEdit (value) {
280 this.$refs.addEditDialog.menuType = this.menuType; 398 this.$refs.addEditDialog.menuType = this.menuType;
281 this.$refs.addEditDialog.roleId = value.id; 399 this.$refs.addEditDialog.roleId = value.id;
282 this.roleSort = value.sort ? value.sort : 0; 400 this.roleSort = value.sort ? value.sort : 0;
...@@ -289,13 +407,13 @@ export default { ...@@ -289,13 +407,13 @@ export default {
289 this.$refs.addEditDialog.dialogTitle = value.id ? "修改" : "新增"; 407 this.$refs.addEditDialog.dialogTitle = value.id ? "修改" : "新增";
290 }, 408 },
291 // 上移下移 409 // 上移下移
292 moveUpward(index, row) { 410 moveUpward (index, row) {
293 realMove(row.id, "UP", this.listdata); 411 realMove(row.id, "UP", this.listdata);
294 this.key++; 412 this.key++;
295 let id = findParents(this.listdata, row.id); 413 let id = findParents(this.listdata, row.id);
296 this.keyList = id; 414 this.keyList = id;
297 }, 415 },
298 moveDown(index, row) { 416 moveDown (index, row) {
299 realMove(row.id, "DOWN", this.listdata); 417 realMove(row.id, "DOWN", this.listdata);
300 this.key++; 418 this.key++;
301 let id = findParents(this.listdata, row.id); 419 let id = findParents(this.listdata, row.id);
...@@ -303,7 +421,7 @@ export default { ...@@ -303,7 +421,7 @@ export default {
303 }, 421 },
304 422
305 // 删除 423 // 删除
306 handleDelete: function(id, content = '') { 424 handleDelete: function (id, content = "") {
307 this.$confirm( 425 this.$confirm(
308 `<div class="customer-message-wrapper"> 426 `<div class="customer-message-wrapper">
309 <h5 class="title">您确认要执行该操作用于以下信息:</h5> 427 <h5 class="title">您确认要执行该操作用于以下信息:</h5>
...@@ -313,47 +431,47 @@ export default { ...@@ -313,47 +431,47 @@ export default {
313 <span >无法恢复</span> 431 <span >无法恢复</span>
314 </p> 432 </p>
315 </div>`, 433 </div>`,
316 '执行确认', 434 "执行确认",
317 { 435 {
318 dangerouslyUseHTMLString: true, 436 dangerouslyUseHTMLString: true,
319 customClass: 'customer-delete', 437 customClass: "customer-delete",
320 confirmButtonText: '确定', 438 confirmButtonText: "确定",
321 cancelButtonText: '取消', 439 cancelButtonText: "取消",
322 type: 'warning' 440 type: "warning",
323 } 441 }
324 ) 442 )
325 .then(() => { 443 .then(() => {
326 if (!this.tableUrl) { 444 if (!this.tableUrl) {
327 this.$message.error({ 445 this.$message.error({
328 message: '请设置tableUrl属性为接口地址!', 446 message: "请设置tableUrl属性为接口地址!",
329 showClose: true 447 showClose: true,
330 }) 448 });
331 return 449 return;
332 } 450 }
333 const url = this.tableUrl + '/' + id 451 const url = this.tableUrl + "/" + id;
334 deleteAction(url).then(res => { 452 deleteAction(url).then((res) => {
335 if (res.status === 1) { 453 if (res.status === 1) {
336 this.$message.success({ message: res.message, showClose: true }) 454 this.$message.success({ message: res.message, showClose: true });
337 this.getTableData() 455 this.getTableData();
338 } else { 456 } else {
339 this.$message.error({ message: res.message, showClose: true }) 457 this.$message.error({ message: res.message, showClose: true });
340 } 458 }
459 });
341 }) 460 })
342 }) 461 .catch(() => { });
343 .catch(() => {})
344 }, 462 },
345 // 新增回显 463 // 新增回显
346 reloadTableData() { 464 reloadTableData () {
347 this.getTableData() 465 this.getTableData();
348 }, 466 },
349 }, 467 },
350 }; 468 };
351 </script> 469 </script>
352 <style scoped lang="scss"> 470 <style scoped lang="scss">
353 @import "~@/styles/mixin.scss"; 471 @import "~@/styles/mixin.scss";
354 @import "~@/styles/public.scss"; 472 @import "~@/styles/public.scss";
355 .btnColRight { 473 .btnColRight {
356 margin-left: -30px; 474 margin-left: -30px;
357 margin-top: 20px; 475 margin-top: 20px;
358 } 476 }
359 </style> 477 </style>
......
...@@ -5,8 +5,7 @@ ...@@ -5,8 +5,7 @@
5 @click="close()" 5 @click="close()"
6 custom-class="dialogBox editDialogBox mainCenter" 6 custom-class="dialogBox editDialogBox mainCenter"
7 :visible.sync="visible" 7 :visible.sync="visible"
8 width="85%" 8 width="85%">
9 >
10 <div slot="title" class="dialog_title" ref="dialogTitle"> 9 <div slot="title" class="dialog_title" ref="dialogTitle">
11 {{ title || "标题" }} 10 {{ title || "标题" }}
12 </div> 11 </div>
...@@ -15,69 +14,89 @@ ...@@ -15,69 +14,89 @@
15 <el-tab-pane label="人员配置" name="first"></el-tab-pane> 14 <el-tab-pane label="人员配置" name="first"></el-tab-pane>
16 <el-tab-pane label="菜单配置" name="second"></el-tab-pane> 15 <el-tab-pane label="菜单配置" name="second"></el-tab-pane>
17 </el-tabs> 16 </el-tabs>
18 <!-- <div class="editDialogBox-box" v-if="activeName == 'first'"> -->
19 <lb-table 17 <lb-table
20 v-if="activeName == 'first'" 18 v-show="activeName == 'first'"
21 ref="multipleTable" 19 ref="multipleTable"
22 :pagination="false" 20 :pagination="false"
23 :column="usertableData.column" 21 :column="usertableData.column"
24 :data="usertableData.data" 22 :data="usertableData.data"
25 @selection-change="handleSelectionChange" 23 @selection-change="handleSelectionChange"
26 @row-click="handleClickTableRow" 24 @row-click="handleClickTableRow">
27 >
28 > 25 >
29 </lb-table> 26 </lb-table>
30 <!-- </div> -->
31 <!-- <div class="editDialogBox-box" v-else="activeName !== 'first'"> -->
32 <lb-table 27 <lb-table
33 v-else="activeName !== 'first'" 28 :key="menukey"
29 v-show="activeName == 'second'"
30 ref="multipleTable1"
34 :pagination="false" 31 :pagination="false"
35 :column="menutableData.columns" 32 :column="menutableData.column"
36 :data="menutableData" 33 :data="lastMenuList"
37 row-key="id" 34 row-key="id"
38 default-expand-all 35 default-expand-all
39 @selection-change="handleSelectionChanges" 36 :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
40 @row-click="handleClickTableRows"
41 :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
42 >
43 </lb-table> 37 </lb-table>
44 <!-- </div> -->
45 </div> 38 </div>
46 <template slot="footer"> 39 <template slot="footer">
47 <el-button type="primary" class="save" @click="handleSaveMember()" 40 <el-button type="primary" class="save" @click="handleSaveMember()">保存</el-button>
48 >保存</el-button
49 >
50 <el-button class="cancel-button" @click="close()">取消</el-button> 41 <el-button class="cancel-button" @click="close()">取消</el-button>
51 </template> 42 </template>
52 </el-dialog> 43 </el-dialog>
53 </template> 44 </template>
54 45
55 <script> 46 <script>
56 import { updateUser } from "@/api/quanxianmanagement"; 47 import { api } from "@/api/manageApi";
57 export default { 48 import { updateUser, getRoleAuthorityList, roleAuthority } from "@/api/quanxianmanagement";
49 export default {
58 name: "", 50 name: "",
59 data() { 51 data () {
60 return { 52 return {
61 title: "人员配置", 53 title: "人员配置",
62 visible: false, 54 visible: false,
63 menutableData: { 55 menutableData: {
64 column: [ 56 column: [
65 { 57 {
66 type: "selection", 58 label: "序号",
59 type: "index",
60 width: "50",
61 // index: this.indexMethod,
67 }, 62 },
68 { 63 {
69 prop: "name", 64 prop: "name",
65 width: 330,
70 label: "菜单名称", 66 label: "菜单名称",
67 }
68 ].concat([
69 {
70 label: "权限",
71 render: (h, scope) => {
72 return (
73 <div>
74 <el-checkbox v-model={scope.row.checkArr[0].value}
75 disabled={scope.row.checkArr[0].disabled}
76 label={scope.row.checkArr[0].name} onChange={(checked) => {
77 this.changeCheck(checked, scope.row.checkArr[0].id, scope);
78 }} />
79 <el-checkbox v-model={scope.row.checkArr[1].value}
80 disabled={scope.row.checkArr[0].disabled}
81 label={scope.row.checkArr[1].name}
82 onChange={(checked) => {
83 this.changeCheck(checked, scope.row.checkArr[1].id, scope);
84 }} />
85 </div>
86 );
71 }, 87 },
72 ], 88 },
89 ]),
73 }, 90 },
74 usertableData: { 91 usertableData: {
75 column: [ 92 column: [
76 { 93 {
77 type: "selection", 94 type: "selection",
95 width: 330,
78 }, 96 },
79 { 97 {
80 prop: "name", 98 prop: "name",
99 width: 330,
81 label: "姓名", 100 label: "姓名",
82 }, 101 },
83 { 102 {
...@@ -85,101 +104,212 @@ export default { ...@@ -85,101 +104,212 @@ export default {
85 label: "用户名", 104 label: "用户名",
86 }, 105 },
87 ], 106 ],
107 data: []
88 }, 108 },
89 // 角色id 109 // 角色id
90 roleId: "", 110 roleId: "",
111 menuList: [], // 菜单列表
112 queryParam: {},
113 menukey: 0,
91 activeName: "first", 114 activeName: "first",
92 multipleSelection: [], 115 lastMenuList: [], // 重构完成的菜单表格数据
116 usermultipleSelection: [],
117 // 选中菜单列表
118 menumultipleSelection: [],
119 tableUrl: api.menus, // 菜单接口地址
120 meumurlid: api.subsystem,// 项目id接口地址
121 checkArr: [], // 重构操作符列表
122 authorityList: [], // 授权回显数组
123 checklistbor: [],
124 // 授权对象数据
125 menuprams: {},
126 // 系统code
127 selectedSubsystemCode: ""
93 }; 128 };
94 }, 129 },
95 computed: {}, 130 computed: {},
96 131
97 created() {}, 132 created () {
98 mounted() {}, 133 },
134 mounted () {
135 },
99 methods: { 136 methods: {
100 137
101 // 人员配置点击行勾选数据 138 // 人员配置点击行勾选数据
102 handleClickTableRow(row, event) { 139 handleClickTableRow (row, event) {
103 this.checkNum = 0; 140 this.checkNum1 = 0;
104 this.isCheck = false; 141 this.isCheck1 = false;
105 if (event.label == "操作") { 142 if (event.label == "操作") {
106 return; 143 return;
107 } else { 144 } else {
108 if (row.status == "0") { 145 if (row.status == "0") {
109 return; 146 return;
110 } else { 147 } else {
111 if (this.multipleSelection.length > 0) { 148 if (this.usermultipleSelection.length > 0) {
112 if ( 149 if (
113 JSON.stringify(this.multipleSelection).indexOf( 150 JSON.stringify(this.usermultipleSelection).indexOf(
114 JSON.stringify(row) 151 JSON.stringify(row)
115 ) == -1 152 ) == -1
116 ) { 153 ) {
117 this.multipleSelection.push(row); 154 this.usermultipleSelection.push(row);
118 this.$refs.multipleTable.toggleRowSelection(row, true); 155 this.$refs.multipleTable.toggleRowSelection(row, true);
119 } else { 156 } else {
120 this.multipleSelection.map((item, index) => { 157 this.usermultipleSelection.map((item, index) => {
121 if (item.id == row.id) { 158 if (item.id == row.id) {
122 this.multipleSelection.splice(index, 1); 159 this.usermultipleSelection.splice(index, 1);
123 this.$refs.multipleTable.toggleRowSelection(row, false); 160 this.$refs.multipleTable.toggleRowSelection(row, false);
124 } 161 }
125 }); 162 });
126 } 163 }
127 } else { 164 } else {
128 this.multipleSelection.push(row); 165 this.usermultipleSelection.push(row);
129 this.$refs.multipleTable.toggleRowSelection(row, true); 166 this.$refs.multipleTable.toggleRowSelection(row, true);
130 } 167 }
131 } 168 }
132 } 169 }
133 if (this.multipleSelection.length > 0) { 170 if (this.usermultipleSelection.length > 0) {
134 this.checkNum = this.multipleSelection.length; 171 this.checkNum1 = this.usermultipleSelection.length;
135 this.isCheck = true; 172 this.isCheck1 = true;
136 } else { 173 } else {
137 this.isCheck = false; 174 this.isCheck1 = false;
138 } 175 }
139 }, 176 },
140 // 菜单配置点击行勾选数据 177 // 获取授权主体的菜单权限
141 handleClickTableRow(row, event) { 178 // getMenuAuthorityList
142 this.checkNum = 0; 179 menulist (operationList, id, Code, menutablelistData, operationCodes) {
143 this.isCheck = false; 180 this.selectedSubsystemCode = Code
144 if (event.label == "操作") { 181 this.menuList = menutablelistData;
145 return; 182 getRoleAuthorityList(
146 } else { 183 id,
147 if (row.status == "0") { 184 operationList.toString(),
148 return; 185 Code + '_MENU'
186 ).then(res => {
187 if (res.status === 1) {
188 this.authorityList = res.content
189 this.getRecursionTreeData(this.menuList, this.authorityList, operationCodes)
190 this.getAuthorizedInfo()
191 // this.setCheckAllArr()
192 // this.getAuthorizedInfo()
149 } else { 193 } else {
150 if (this.multipleSelection.length > 0) { 194 this.$message.error({ message: res.message, showClose: true })
195 }
196 })
197
198
199 },
200 /**
201 * 递归渲染列表数据
202 * list:原始数组
203 * authorityList:已授权数组
204 */
205 getRecursionTreeData (list, authorityList, operationCodes) {
206 ++this.menukey
207 this.checkArr = []
208 for (const k in operationCodes) {
209 const obj = {}
210 obj.name = operationCodes[k]
211 obj.id = k
212 obj.value = false
213 obj.disabled = false
214 // obj.isAll = false;
215 this.checkArr.push(obj)
216 }
217 for (const [index, item] of Object.entries(list)) {
218 this.setAuthorizedConditions(
219 authorityList,
220 this.$deepCopy(this.checkArr),
221 item
222 )
151 if ( 223 if (
152 JSON.stringify(this.multipleSelection).indexOf( 224 item.children &&
153 JSON.stringify(row) 225 item.children !== null &&
154 ) == -1 226 item.children.length !== 0
155 ) { 227 ) {
156 this.multipleSelection.push(row); 228 item.children.forEach((child, j) => {
157 this.$refs.multipleTable.toggleRowSelection(row, true); 229 this.setAuthorizedConditions(
158 } else { 230 authorityList,
159 this.multipleSelection.map((item, index) => { 231 this.$deepCopy(this.checkArr),
160 if (item.id == row.id) { 232 child
161 this.multipleSelection.splice(index, 1); 233 )
162 this.$refs.multipleTable.toggleRowSelection(row, false); 234 })
235 this.getRecursionTreeData(item.children, authorityList, operationCodes)
163 } 236 }
164 });
165 } 237 }
238 this.lastMenuList = list
239 // this.setCheckAllArr(list)
240 },
241 // 授权条件
242 setAuthorizedConditions (authorityList, checkArr, item) {
243 if (this.roleId === '') {
244 checkArr.forEach(ele => {
245 ele.disabled = true
246 ele.value = false
247 })
166 } else { 248 } else {
167 this.multipleSelection.push(row); 249 if (authorityList.length !== 0) {
168 this.$refs.multipleTable.toggleRowSelection(row, true); 250 if (authorityList[0].superPermission === true) {
251 checkArr.forEach(ele => {
252 ele.value = true
253 ele.disabled = true
254 })
255 } else {
256 const repeatArr = authorityList.filter(authorityItem => {
257 return authorityItem.resourceUri === item.id
258 })
259 repeatArr.forEach(element => {
260 checkArr.forEach(ele => {
261 if (element.operationCode === ele.id) {
262 ele.value = true
263 if (this.roleId !== element.subjectId) {
264 ele.disabled = true
169 } 265 }
170 } 266 }
267 })
268 })
269 }
171 } 270 }
172 if (this.multipleSelection.length > 0) { 271 }
173 this.checkNum = this.multipleSelection.length; 272 this.$set(item, 'checkArr', this.$deepCopy(checkArr))
174 this.isCheck = true; 273 },
175 } else { 274 // 获取拼接授权信息
176 this.isCheck = false; 275 getAuthorizedInfo () {
276 const lastArr = []
277 const authorizedList = []
278 const wholeArr = this.$deepCopy(this.lastMenuList)
279 const arr = this.$treeConvertToArr(wholeArr)
280 arr.forEach(ele => {
281 ele.checkArr.forEach(val => {
282 if (val.value === true && val.disabled === false) {
283 const obj = {
284 operationCode: val.id,
285 name: ele.name,
286 id: ele.id
287 }
288 lastArr.push(obj)
289 }
290 })
291 })
292 lastArr.forEach(element => {
293 authorizedList.push({
294 operationCode: element.operationCode, // 标识符
295 productCode: this.selectedSubsystemCode, // 子系统code
296 resourceCategoryCode: this.selectedSubsystemCode + '_MENU', // 资源类别code默认为MENU
297 resourceName: element.name,
298 resourceUri: element.id, // 授权菜单id
299 subjectId: this.roleId, // 授权对象id
300 subjectType: 'ROLE' // 授权对象类别
301 })
302 })
303 this.menuprams = {
304 subjectId: this.roleId,
305 authorizedList: authorizedList
177 } 306 }
178 }, 307 },
179 // 获取人员列表做筛选 308 // 获取人员列表做筛选
180 adds(a, rid) { 309 personlist (a, rid) {
181 this.roleId = rid; 310 this.roleId = rid;
182 this.visible = true; 311 this.visible = true;
312
183 this.usertableData.data = a; 313 this.usertableData.data = a;
184 this.usertableData.data.forEach((item, index) => { 314 this.usertableData.data.forEach((item, index) => {
185 if (item.selectStatus === 0) { 315 if (item.selectStatus === 0) {
...@@ -191,41 +321,81 @@ export default { ...@@ -191,41 +321,81 @@ export default {
191 }); 321 });
192 } 322 }
193 }); 323 });
324
194 }, 325 },
195 // 关闭事件 326 // 关闭事件
196 close() { 327 close () {
197 this.visible = false; 328 this.visible = false;
198 }, 329 },
199 // 保存事件 330 // 保存事件
200 handleSaveMember() { 331 handleSaveMember () {
201 const idList = this.multipleSelection.map((item) => { 332 // 人员授权
333 const idList = this.usermultipleSelection.map((item) => {
202 return item.id; 334 return item.id;
203 }); 335 })
204 updateUser(this.roleId, idList).then((res) => { 336 updateUser(this.roleId, idList).then((res) => {
205 if (res.status === 1) { 337 if (res.status === 1) {
206 this.$message.success({ message: "保存成功", showClose: true }); 338 this.$message.success({ message: "保存成功", showClose: true });
207 this.visible = false; 339 this.visible = false;
208 // this.$emit("setUsers", this.roleId);
209 // this.resetMemberConfig();
210 } else this.$message.error({ message: res.message, showClose: true }); 340 } else this.$message.error({ message: res.message, showClose: true });
211 }); 341 });
342 // 菜单授权
343 roleAuthority(
344 this.menuprams.subjectId,
345 this.menuprams.authorizedList
346 ).then((res) => {
347 if (res.status === 1) {
348 this.$message.success({
349 message: res.message,
350 })
351 // this.authorizedContChange()
352 } else {
353 this.$message.error({ message: res.message, showClose: true })
354 }
355 })
212 }, 356 },
213 // 勾选人员事件 357 // 勾选人员事件
214 handleSelectionChange(val) { 358 handleSelectionChange (val) {
215 this.multipleSelection = val; 359 this.usermultipleSelection = val;
360 },
361 // 数据筛选
362 setarrdata (scope, arr) {
363
364 arr.forEach((item, index, arr) => {
365 if (item.id == scope.row.id) {
366 this.checklistbor = [...arr]
367 } else if (item.id !== scope.row.id && item.children) {
368 this.setarrdata(scope, item.children)
369 }
370
371 })
372
216 }, 373 },
217 // 勾选菜单事件 374 // 勾选菜单事件
218 handleSelectionChanges(val) { 375 changeCheck (flag, checkId, scope) {
219 this.multipleSelection = val; 376 this.checklistbor = []
377 this.setarrdata(scope, this.lastMenuList)
378 const parents = this.$findParent(this.lastMenuList, scope.row.parentId)
379 const childs = this.$findChildren(this.lastMenuList, scope.row.id)
380 this.$setChildArr(
381 this.lastMenuList,
382 scope.row.id,
383 checkId,
384 flag,
385 this.checklistbor,
386 parents,
387 childs
388 )
389 this.getAuthorizedInfo()
220 }, 390 },
221 }, 391 },
222 }; 392 };
223 </script> 393 </script>
224 <style scoped lang="scss"> 394 <style scoped lang="scss">
225 @import "~@/styles/mixin.scss"; 395 @import "~@/styles/mixin.scss";
226 @import "~@/styles/dialogBox.scss"; 396 @import "~@/styles/dialogBox.scss";
227 397
228 .editForm { 398 .editForm {
229 /deep/.el-textarea__inner { 399 /deep/.el-textarea__inner {
230 border: 1px solid #224c7c !important; 400 border: 1px solid #224c7c !important;
231 margin: 0 0 10px 0 !important; 401 margin: 0 0 10px 0 !important;
...@@ -241,25 +411,25 @@ export default { ...@@ -241,25 +411,25 @@ export default {
241 color: #dadde3 !important; 411 color: #dadde3 !important;
242 background: transparent !important; 412 background: transparent !important;
243 } 413 }
244 } 414 }
245 415
246 /deep/.el-dialog__body { 416 /deep/.el-dialog__body {
247 display: flex; 417 display: flex;
248 flex-direction: column; 418 flex-direction: column;
249 } 419 }
250 420
251 /deep/ .el-tabs { 421 /deep/ .el-tabs {
252 color: #cef8ff; 422 color: #cef8ff;
253 } 423 }
254 424
255 .sjmx { 425 .sjmx {
256 /deep/.el-tabs__item { 426 /deep/.el-tabs__item {
257 height: 50px; 427 height: 50px;
258 padding-top: 6px; 428 padding-top: 6px;
259 } 429 }
260 } 430 }
261 431
262 /deep/.el-tabs__item { 432 /deep/.el-tabs__item {
263 color: #cef8ff !important; 433 color: #cef8ff !important;
264 434
265 display: flex; 435 display: flex;
...@@ -268,75 +438,75 @@ export default { ...@@ -268,75 +438,75 @@ export default {
268 background: url("~@/image/tabitem.png") no-repeat; 438 background: url("~@/image/tabitem.png") no-repeat;
269 background-size: 100% 100%; 439 background-size: 100% 100%;
270 border: none !important; 440 border: none !important;
271 } 441 }
272 442
273 .obligee-item-name { 443 .obligee-item-name {
274 background: #05275b; 444 background: #05275b;
275 color: #ffffff; 445 color: #ffffff;
276 background: url("~@/image/itembg.png") no-repeat; 446 background: url("~@/image/itembg.png") no-repeat;
277 background-size: 100% 100%; 447 background-size: 100% 100%;
278 } 448 }
279 449
280 /deep/.el-tabs__nav-scroll { 450 /deep/.el-tabs__nav-scroll {
281 background: none; 451 background: none;
282 } 452 }
283 453
284 /deep/.el-tabs__nav { 454 /deep/.el-tabs__nav {
285 display: flex; 455 display: flex;
286 border: none !important; 456 border: none !important;
287 } 457 }
288 458
289 /deep/.el-tabs__item.is-top { 459 /deep/.el-tabs__item.is-top {
290 border: 1px solid #dfe4ed; 460 border: 1px solid #dfe4ed;
291 border-top: 1px solid #dfe4ed; 461 border-top: 1px solid #dfe4ed;
292 border-bottom: 1px solid transparent; 462 border-bottom: 1px solid transparent;
293 } 463 }
294 464
295 /deep/.el-tabs__header { 465 /deep/.el-tabs__header {
296 border: none; 466 border: none;
297 margin-bottom: 0; 467 margin-bottom: 0;
298 } 468 }
299 469
300 /deep/.el-tabs__item.is-top:not(:last-child) { 470 /deep/.el-tabs__item.is-top:not(:last-child) {
301 margin-right: 5px; 471 margin-right: 5px;
302 } 472 }
303 473
304 /deep/.el-tabs__item.is-top { 474 /deep/.el-tabs__item.is-top {
305 background-color: none !important; 475 background-color: none !important;
306 } 476 }
307 477
308 /deep/.el-tabs__item.is-active { 478 /deep/.el-tabs__item.is-active {
309 background: url("~@/image/tabitemse.png") no-repeat; 479 background: url("~@/image/tabitemse.png") no-repeat;
310 background-size: 100% 100%; 480 background-size: 100% 100%;
311 } 481 }
312 482
313 .success-images { 483 .success-images {
314 width: 30px; 484 width: 30px;
315 height: 30px; 485 height: 30px;
316 position: relative; 486 position: relative;
317 top: 10px; 487 top: 10px;
318 right: 3px; 488 right: 3px;
319 } 489 }
320 490
321 .tab-pane-item { 491 .tab-pane-item {
322 line-height: 20px; 492 line-height: 20px;
323 color: #02d9fd; 493 color: #02d9fd;
324 494
325 p { 495 p {
326 text-align: center; 496 text-align: center;
327 } 497 }
328 } 498 }
329 499
330 .edit-content { 500 .edit-content {
331 height: 450px; 501 height: 450px;
332 overflow-y: auto; 502 overflow-y: auto;
333 overflow-x: hidden; 503 overflow-x: hidden;
334 padding-right: 1px; 504 padding-right: 1px;
335 margin-bottom: 10px; 505 margin-bottom: 10px;
336 border-top: none; 506 border-top: none;
337 } 507 }
338 508
339 /deep/.editDialogBox { 509 /deep/.editDialogBox {
340 border-radius: 8px; 510 border-radius: 8px;
341 overflow: hidden; 511 overflow: hidden;
342 min-width: 1228px; 512 min-width: 1228px;
...@@ -414,12 +584,12 @@ export default { ...@@ -414,12 +584,12 @@ export default {
414 width: 100%; 584 width: 100%;
415 border-bottom: 1px solid #ccc; 585 border-bottom: 1px solid #ccc;
416 } 586 }
417 } 587 }
418 588
419 .el-dialog__wrapper { 589 .el-dialog__wrapper {
420 overflow: hidden; 590 overflow: hidden;
421 } 591 }
422 /deep/.el-table { 592 /deep/.el-table {
423 background: none; 593 background: none;
424 th.el-table__cell { 594 th.el-table__cell {
425 background-color: #073781; 595 background-color: #073781;
...@@ -432,7 +602,7 @@ export default { ...@@ -432,7 +602,7 @@ export default {
432 color: white; 602 color: white;
433 } 603 }
434 } 604 }
435 } 605 }
436 606
437 // #08346F !important; 607 // #08346F !important;
438 </style> 608 </style>
......