sasp-admin 0.2.63 → 0.2.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +38 -31
- package/package.json +1 -1
- package/router.js +5 -1
- package/src/assets/font/iconfont.css +1902 -1846
- package/src/assets/font/iconfont.eot +0 -0
- package/src/assets/font/iconfont.js +1 -1
- package/src/assets/font/iconfont.svg +959 -825
- package/src/assets/font/iconfont.ttf +0 -0
- package/src/assets/font/iconfont.woff +0 -0
- package/src/assets/js/api/apiAdmin.js +10 -0
- package/src/assets/js/global/dataGlobal.js +7 -3
- package/src/assets/js/global/userGlobal.js +9 -3
- package/src/components/complexViewRendering.vue +214 -198
- package/src/components/ifmLink.vue +20 -3
- package/src/components/public/data/plDataSelect.vue +8 -6
- package/src/components/public/org/sysOrgPosUserSelect.vue +56 -17
- package/src/components/public/upload/images/ofd.png +0 -0
- package/src/components/public/upload/plImage.vue +3 -1
- package/src/components/public/upload/plUpload.vue +167 -40
- package/src/components/public/upload/preview/OfdPreview.vue +223 -0
- package/src/components/public/upload/preview/officeViewer.vue +116 -0
- package/src/components/public/upload/preview/pdfPreview.vue +91 -0
- package/src/{views → components/public/upload}/preview/pdfViewer.vue +1 -1
- package/src/views/VueMenuView.vue +11 -13
- package/src/views/data/dataManage.vue +51 -5
- package/src/views/event/eventManager/vueEventDiy.vue +4 -6
- package/src/views/log/loginlog/logManageDevOrSup.vue +8 -5
- package/src/views/log/loginlog/logManageEnt.vue +96 -55
- package/src/views/log/loginlog/logManageGov.vue +8 -5
- package/src/views/menu/component/menuManageComponent.vue +3 -5
- package/src/views/menuRouter/menuView.vue +226 -117
- package/src/views/menuRouter/urlMenuRouter.vue +13 -16
- package/src/views/org/entOrgTree.vue +1 -3
- package/src/views/org/js/sysOrgUserDetailMixins.js +646 -0
- package/src/views/org/sysEntOrgUserDetail.vue +10 -632
- package/src/views/org/sysOrgDimension.vue +4 -8
- package/src/views/org/sysOrgPosUserDetail.vue +4 -619
- package/src/views/org/sysOrgTree.vue +2 -4
- package/src/views/param/sysParam.vue +2 -0
- package/src/views/resources/resRouter/resView.vue +9 -11
- package/src/views/resources/tabs/comp/pageResRegister.vue +3 -5
- package/src/views/resources/tabs/dataResources.vue +3 -1
- package/src/views/resources/tabs/pageResources.vue +3 -1
- package/src/views/role/authRole/component/allocateSetting.vue +2 -589
- package/src/views/role/authRole/component/authSetting.vue +2 -597
- package/src/views/role/authRole/component/js/authMixins.js +622 -0
- package/src/views/role/commonRole/commonRole.vue +122 -3
- package/src/views/role/commonRole/compoment/commonSetting.vue +4 -6
- package/src/views/role/commonRole/compoment/commonSettingAdjust.vue +2 -89
- package/src/views/role/commonRole/compoment/commonSettingNew.vue +13 -97
- package/src/views/role/commonRole/compoment/js/commonSettingMixins.js +90 -0
- package/src/views/role/commonRole/compoment/roleMenuPower.vue +17 -2
- package/src/views/role/commonRole/compoment/roleMenuSetting.vue +12 -5
- package/src/views/sms/sendSms.vue +1 -1
- package/src/views/threeinone/init/safeInitRegion.vue +2 -4
- package/src/views/threeinone/safeManager.vue +1 -0
- package/src/views/threeinone/safeOrgSpv.vue +360 -337
- package/src/views/threeinone/safeSpvEconView.vue +37 -17
- package/src/views/uploadManage/uploadManage.vue +133 -0
- package/src/views/user/empowerUser/empowerUserListViewMenuTree.vue +6 -2
- package/src/views/user/stationUserManage.vue +3 -5
- package/src/views/user/userManage.vue +99 -3
- package/src/views/user/userMangement.vue +4 -6
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
</template>
|
|
70
70
|
</el-table-column>
|
|
71
71
|
|
|
72
|
-
<el-table-column label="操作" align="center" width="
|
|
72
|
+
<el-table-column label="操作" align="center" width="250">
|
|
73
73
|
<template slot-scope="scope">
|
|
74
74
|
<el-tooltip class="item" effect="dark" content="修改" placement="top-end">
|
|
75
75
|
<el-button type="primary" @click="update(scope.row)" size="small"><i class="el-icon-edit"></i></el-button>
|
|
@@ -77,6 +77,9 @@
|
|
|
77
77
|
<el-tooltip class="item" effect="dark" content="关联权限设置" placement="top-end">
|
|
78
78
|
<el-button type="primary" @click="roleSetting(scope.row)" size="small"><i class="saspiconfont pl-icon-quanxianshezhi"></i></el-button>
|
|
79
79
|
</el-tooltip>
|
|
80
|
+
<el-tooltip class="item" effect="dark" content="复制角色" placement="top-end">
|
|
81
|
+
<el-button type="primary" @click="openCopy(scope.row)" size="small"><i class="el-icon-copy-document"></i></el-button>
|
|
82
|
+
</el-tooltip>
|
|
80
83
|
<el-tooltip class="item" effect="dark" content="查看已有菜单" placement="top-end">
|
|
81
84
|
<el-button type="primary" @click="viewRemark(scope.row)" size="small" icon="el-icon-zoom-in"></el-button>
|
|
82
85
|
</el-tooltip>
|
|
@@ -150,6 +153,30 @@
|
|
|
150
153
|
</div>
|
|
151
154
|
</el-dialog>
|
|
152
155
|
|
|
156
|
+
<!--复制角色-->
|
|
157
|
+
<el-dialog :close-on-click-modal=false title="复制角色" width="40%" top="20vh" :visible.sync="copyDialogVisible">
|
|
158
|
+
<el-form :model="copyForm" :ref="copyFormRef">
|
|
159
|
+
<el-form-item label="源角色" label-width="120px">
|
|
160
|
+
<span>{{ copyForm.sourceRoleName }}</span>
|
|
161
|
+
</el-form-item>
|
|
162
|
+
<el-form-item label="角色编号" label-width="120px" prop="roleNumber" :rules="plValidate('number','required')">
|
|
163
|
+
<el-input v-model="copyForm.roleNumber"></el-input>
|
|
164
|
+
</el-form-item>
|
|
165
|
+
<el-form-item label="角色名" label-width="120px" prop="roleName" :rules="copyRules.roleName">
|
|
166
|
+
<el-input v-model="copyForm.roleName"></el-input>
|
|
167
|
+
</el-form-item>
|
|
168
|
+
<el-form-item label-width="120px">
|
|
169
|
+
<span style="color:#909399;line-height:20px;display:inline-block">
|
|
170
|
+
将复制该角色的全部关联菜单权限(含操作权限、数据权限)与关联人员(用户、组织、岗位)。
|
|
171
|
+
</span>
|
|
172
|
+
</el-form-item>
|
|
173
|
+
</el-form>
|
|
174
|
+
<div slot="footer" class="dialog-footer">
|
|
175
|
+
<el-button type="primary" @click="copySubmit()" :disabled="copyBtnDisabled" size="small" icon="el-icon-success">确 定</el-button>
|
|
176
|
+
<el-button @click="copyDialogVisible = false" size="small" icon="el-icon-error">取 消</el-button>
|
|
177
|
+
</div>
|
|
178
|
+
</el-dialog>
|
|
179
|
+
|
|
153
180
|
|
|
154
181
|
|
|
155
182
|
|
|
@@ -213,6 +240,19 @@
|
|
|
213
240
|
}
|
|
214
241
|
});
|
|
215
242
|
};
|
|
243
|
+
//复制角色名称唯一性验证
|
|
244
|
+
let copyRoleNameValidate =(rule,value,callback) => {
|
|
245
|
+
if(!value){
|
|
246
|
+
callback();
|
|
247
|
+
}
|
|
248
|
+
this.axios.post(this.api.role.find,{noEqRoleType:'empower',roleNameEq:value,created:this.loginUser.id}).then(res =>{
|
|
249
|
+
if((res.data ||[]).length == 0){
|
|
250
|
+
callback();
|
|
251
|
+
}else{
|
|
252
|
+
return callback(new Error('该角色名称已经存在!'));
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
};
|
|
216
256
|
return{
|
|
217
257
|
crud:new this.CrudUtil({
|
|
218
258
|
vue: this,
|
|
@@ -267,6 +307,21 @@
|
|
|
267
307
|
{validator:roleNameValidate,trigger:'blur'}
|
|
268
308
|
],
|
|
269
309
|
},
|
|
310
|
+
copyDialogVisible:false, // 复制角色对话框
|
|
311
|
+
copyFormRef:"copyFormRef",
|
|
312
|
+
copyBtnDisabled:false, // 复制按钮禁用
|
|
313
|
+
copyForm:{
|
|
314
|
+
id:"",
|
|
315
|
+
sourceRoleName:"",
|
|
316
|
+
roleName:"",
|
|
317
|
+
roleNumber:""
|
|
318
|
+
},
|
|
319
|
+
copyRules:{
|
|
320
|
+
roleName:[
|
|
321
|
+
{required: true, message: '该输入项为必输项'},
|
|
322
|
+
{validator:copyRoleNameValidate,trigger:'blur'}
|
|
323
|
+
],
|
|
324
|
+
},
|
|
270
325
|
operate:'add', //操作
|
|
271
326
|
oldRoleName:'',
|
|
272
327
|
}
|
|
@@ -371,6 +426,68 @@
|
|
|
371
426
|
this.viewMenuDialog = true;
|
|
372
427
|
},
|
|
373
428
|
|
|
429
|
+
//打开复制角色对话框
|
|
430
|
+
openCopy(row){
|
|
431
|
+
let vm = this;
|
|
432
|
+
if(row.roleStatus == "20"){
|
|
433
|
+
vm.$message({
|
|
434
|
+
duration:1200,
|
|
435
|
+
message:"该角色已被锁定,请解除锁定后继续操作!"
|
|
436
|
+
});
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
//角色编号默认取源编号+1(编号为数字时),角色名默认追加“-副本”
|
|
440
|
+
let roleNumber = "";
|
|
441
|
+
if(row.roleNumber !== null && row.roleNumber !== undefined && row.roleNumber !== "" && !isNaN(Number(row.roleNumber))){
|
|
442
|
+
roleNumber = String(Number(row.roleNumber) + 1);
|
|
443
|
+
}
|
|
444
|
+
vm.copyForm = {
|
|
445
|
+
id:row.id,
|
|
446
|
+
sourceRoleName:row.roleName,
|
|
447
|
+
roleName:row.roleName + "-副本",
|
|
448
|
+
roleNumber:roleNumber
|
|
449
|
+
};
|
|
450
|
+
vm.copyBtnDisabled = false;
|
|
451
|
+
vm.copyDialogVisible = true;
|
|
452
|
+
vm.$nextTick(function () {
|
|
453
|
+
if(vm.$refs[vm.copyFormRef]){
|
|
454
|
+
vm.$refs[vm.copyFormRef].clearValidate();
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
},
|
|
458
|
+
//提交复制
|
|
459
|
+
copySubmit(){
|
|
460
|
+
let vm = this;
|
|
461
|
+
vm.$refs[vm.copyFormRef].validate(valid => {
|
|
462
|
+
if(!valid){
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
vm.copyBtnDisabled = true;
|
|
466
|
+
vm.axios.post(vm.api.role.copyRole,vm.copyForm).then(res => {
|
|
467
|
+
let data = res.data || {};
|
|
468
|
+
if(data.operateSuccess){
|
|
469
|
+
vm.$message({
|
|
470
|
+
type: 'success',
|
|
471
|
+
duration:1500,
|
|
472
|
+
message: '复制成功!'
|
|
473
|
+
});
|
|
474
|
+
vm.copyDialogVisible = false;
|
|
475
|
+
vm.copyBtnDisabled = false;
|
|
476
|
+
vm.crud.search();
|
|
477
|
+
}else{
|
|
478
|
+
vm.copyBtnDisabled = false;
|
|
479
|
+
vm.$message({
|
|
480
|
+
type: 'error',
|
|
481
|
+
duration:2000,
|
|
482
|
+
message: data.operateMessage || "复制失败!"
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
}).catch(function () {
|
|
486
|
+
vm.copyBtnDisabled = false;
|
|
487
|
+
});
|
|
488
|
+
});
|
|
489
|
+
},
|
|
490
|
+
|
|
374
491
|
//当关闭权限配置弹窗时重新触发查询方法
|
|
375
492
|
closeSettingDialog(){
|
|
376
493
|
this.saveBtnDisabled = false;
|
|
@@ -381,8 +498,10 @@
|
|
|
381
498
|
saveSetting(){
|
|
382
499
|
this.saveBtnDisabled = true;
|
|
383
500
|
this.$refs.commonsettingRef.saveData();
|
|
384
|
-
|
|
385
|
-
|
|
501
|
+
setTimeout(() => {
|
|
502
|
+
this.roleSettingDialog = false;
|
|
503
|
+
this.saveBtnDisabled = false;
|
|
504
|
+
}, 1000);
|
|
386
505
|
},
|
|
387
506
|
|
|
388
507
|
|
|
@@ -1086,12 +1086,10 @@
|
|
|
1086
1086
|
let keysArr = []; // 选中的所有menuIds
|
|
1087
1087
|
let menuMap = {};
|
|
1088
1088
|
vm.initCheck["initCheck"].forEach(menuId => {
|
|
1089
|
-
if(vm.loginUser.userType == 'dev' || vm.loginUser.userType == 'sup' || allowMenu.indexOf(menuId) > -1) {
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
keysArr.push(menuId);
|
|
1094
|
-
}
|
|
1089
|
+
if((vm.loginUser.userType == 'dev' || vm.loginUser.userType == 'sup' || allowMenu.indexOf(menuId) > -1)&&(vm.menuAllBaseInfo[menuId])) {
|
|
1090
|
+
menuArr.push(vm.menuAllBaseInfo[menuId]);
|
|
1091
|
+
menuMap[menuId] = vm.menuAllBaseInfo[menuId];
|
|
1092
|
+
keysArr.push(menuId);
|
|
1095
1093
|
}
|
|
1096
1094
|
});
|
|
1097
1095
|
|
|
@@ -98,8 +98,10 @@
|
|
|
98
98
|
import RoleSourceSetting from "./roleSourceSetting";
|
|
99
99
|
import sysOrgPosUserSelectNew from "../../../../components/public/org/sysOrgPosUserSelectNew";
|
|
100
100
|
import AllocateRoleMenuSetting from "./allocateRoleMenuSetting";
|
|
101
|
+
import commonSettingMixins from "./js/commonSettingMixins";
|
|
101
102
|
export default {
|
|
102
103
|
name: "common-setting-adjust",
|
|
104
|
+
mixins:[commonSettingMixins],
|
|
103
105
|
components: {
|
|
104
106
|
AllocateRoleMenuSetting,
|
|
105
107
|
sysOrgPosUserSelectNew, RoleSourceSetting, RoleMenuPowerSetting, RoleMenuSetting},
|
|
@@ -110,55 +112,6 @@
|
|
|
110
112
|
tenantCreated:{type:String,default:""},//租户创建者id
|
|
111
113
|
isAdminRole:{type:Boolean,default:false},//是否是管理员角色
|
|
112
114
|
},
|
|
113
|
-
data(){
|
|
114
|
-
return {
|
|
115
|
-
activeName:"1",
|
|
116
|
-
menuLoading:false, //加载条
|
|
117
|
-
sourceLoading:false,//资源加载条
|
|
118
|
-
menuOptPower:[],//菜单操作权限(最底层数据)
|
|
119
|
-
menuDataPower:[],//菜单数据权限(最底层数据)
|
|
120
|
-
menuOptPowerTree:[],//菜单操作权限(树数据)
|
|
121
|
-
menuDataPowerTree:[],//菜单数据权限(树数据)
|
|
122
|
-
sourceOptPower:[],//资源操作权限
|
|
123
|
-
sourceDataPower:[],//资源数据权限
|
|
124
|
-
sourceOptPowerTree:[],//资源操作权限(树数据)
|
|
125
|
-
sourceDataPowerTree:[],//资源数据权限(树数据)
|
|
126
|
-
checkMenuOptPower:{},//勾选的菜单操作权限
|
|
127
|
-
checkMenuDataPower:{},//勾选的菜单数据权限
|
|
128
|
-
checkSourceOptPower:{},//勾选的资源操作权限
|
|
129
|
-
checkSourceDataPower:{},//勾选的资源数据权限
|
|
130
|
-
refreshMenuPower:true,
|
|
131
|
-
refreshSourcePower:true,
|
|
132
|
-
currentClickMenuNode:{},//当前点击的菜单节点
|
|
133
|
-
currentClickSourceNode:{},//当前点击的资源节点
|
|
134
|
-
|
|
135
|
-
loginUser:{},
|
|
136
|
-
orgTreeIds:"",//组织树id
|
|
137
|
-
showPosUser:false,
|
|
138
|
-
orgDims:"",
|
|
139
|
-
|
|
140
|
-
userMap:{}, // 已选择人员信息的集合
|
|
141
|
-
userDataMap:{}, //
|
|
142
|
-
caseDataParentData:{},
|
|
143
|
-
caseDataMap:{},//保存原开启下级部门权限的所有子数据
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
watch:{
|
|
147
|
-
roleId(){
|
|
148
|
-
this.initRoleUserData();
|
|
149
|
-
this.refreshMenuPower = false;
|
|
150
|
-
this.refreshSourcePower = false;
|
|
151
|
-
this.showPosUser = false;
|
|
152
|
-
this.$nextTick(() => {
|
|
153
|
-
this.refreshMenuPower = true;
|
|
154
|
-
this.refreshSourcePower = true;
|
|
155
|
-
this.showPosUser = true;
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
created(){
|
|
160
|
-
this.initRoleUserData();
|
|
161
|
-
},
|
|
162
115
|
methods:{
|
|
163
116
|
initRoleUserData(){
|
|
164
117
|
//获取当前登录用户信息
|
|
@@ -226,46 +179,6 @@
|
|
|
226
179
|
})
|
|
227
180
|
}
|
|
228
181
|
},
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
setMenuPower(optPower,dataPower,optPowerTree,dataPowerTree){
|
|
232
|
-
this.refreshMenuPower = false;
|
|
233
|
-
this.menuOptPower = optPower || [];
|
|
234
|
-
this.menuDataPower = dataPower || [];
|
|
235
|
-
this.menuOptPowerTree = optPowerTree || [];
|
|
236
|
-
this.menuDataPowerTree = dataPowerTree || [];
|
|
237
|
-
this.$nextTick(() => {
|
|
238
|
-
this.refreshMenuPower = true;
|
|
239
|
-
});
|
|
240
|
-
},
|
|
241
|
-
|
|
242
|
-
setSourcePower(optPower,dataPower,optPowerTree,dataPowerTree){
|
|
243
|
-
this.refreshSourcePower = false;
|
|
244
|
-
this.sourceOptPower = optPower || [];
|
|
245
|
-
this.sourceDataPower = dataPower || [];
|
|
246
|
-
this.sourceOptPowerTree = optPowerTree || [];
|
|
247
|
-
this.sourceDataPowerTree = dataPowerTree || [];
|
|
248
|
-
this.$nextTick(() => {
|
|
249
|
-
this.refreshSourcePower = true;
|
|
250
|
-
});
|
|
251
|
-
},
|
|
252
|
-
|
|
253
|
-
setMenuLoading(loading){
|
|
254
|
-
this.menuLoading = loading;
|
|
255
|
-
},
|
|
256
|
-
|
|
257
|
-
setSourceLoading(loading){
|
|
258
|
-
this.sourceLoading = loading;
|
|
259
|
-
},
|
|
260
|
-
|
|
261
|
-
setCurrentMenuNode(node){
|
|
262
|
-
this.currentClickMenuNode = node;
|
|
263
|
-
},
|
|
264
|
-
|
|
265
|
-
setCurrentSourceNode(node){
|
|
266
|
-
this.currentClickSourceNode = node;
|
|
267
|
-
},
|
|
268
|
-
|
|
269
182
|
async saveData(){
|
|
270
183
|
let updateMenu = [];//修改
|
|
271
184
|
let addMenu = [];//新增
|
|
@@ -93,8 +93,10 @@
|
|
|
93
93
|
import RoleMenuPowerSetting from "./roleMenuPowerSetting";
|
|
94
94
|
import RoleSourceSetting from "./roleSourceSetting";
|
|
95
95
|
import SysOrgPosUserSelect from "../../../../components/public/org/sysOrgPosUserSelect";
|
|
96
|
+
import commonSettingMixins from "./js/commonSettingMixins";
|
|
96
97
|
export default {
|
|
97
98
|
name: "common-setting-new",
|
|
99
|
+
mixins:[commonSettingMixins],
|
|
98
100
|
components: {SysOrgPosUserSelect, RoleSourceSetting, RoleMenuPowerSetting, RoleMenuSetting},
|
|
99
101
|
props:{
|
|
100
102
|
roleId:{type:String,default:""},//角色权限id
|
|
@@ -102,55 +104,6 @@
|
|
|
102
104
|
tenantId:{type:String,default:""}, //租户管理员id
|
|
103
105
|
tenantCreated:{type:String,default:""},//租户创建者id
|
|
104
106
|
},
|
|
105
|
-
data(){
|
|
106
|
-
return {
|
|
107
|
-
activeName:"1",
|
|
108
|
-
menuLoading:false, //加载条
|
|
109
|
-
sourceLoading:false,//资源加载条
|
|
110
|
-
menuOptPower:[],//菜单操作权限(最底层数据)
|
|
111
|
-
menuDataPower:[],//菜单数据权限(最底层数据)
|
|
112
|
-
menuOptPowerTree:[],//菜单操作权限(树数据)
|
|
113
|
-
menuDataPowerTree:[],//菜单数据权限(树数据)
|
|
114
|
-
sourceOptPower:[],//资源操作权限
|
|
115
|
-
sourceDataPower:[],//资源数据权限
|
|
116
|
-
sourceOptPowerTree:[],//资源操作权限(树数据)
|
|
117
|
-
sourceDataPowerTree:[],//资源数据权限(树数据)
|
|
118
|
-
checkMenuOptPower:{},//勾选的菜单操作权限
|
|
119
|
-
checkMenuDataPower:{},//勾选的菜单数据权限
|
|
120
|
-
checkSourceOptPower:{},//勾选的资源操作权限
|
|
121
|
-
checkSourceDataPower:{},//勾选的资源数据权限
|
|
122
|
-
refreshMenuPower:true,
|
|
123
|
-
refreshSourcePower:true,
|
|
124
|
-
currentClickMenuNode:{},//当前点击的菜单节点
|
|
125
|
-
currentClickSourceNode:{},//当前点击的资源节点
|
|
126
|
-
|
|
127
|
-
loginUser:{},
|
|
128
|
-
orgTreeIds:"",//组织树id
|
|
129
|
-
showPosUser:false,
|
|
130
|
-
orgDims:"",
|
|
131
|
-
|
|
132
|
-
userMap:{}, // 已选择人员信息的集合
|
|
133
|
-
userDataMap:{}, //
|
|
134
|
-
caseDataParentData:{},
|
|
135
|
-
caseDataMap:{},//保存原开启下级部门权限的所有子数据
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
watch:{
|
|
139
|
-
roleId(){
|
|
140
|
-
this.initRoleUserData();
|
|
141
|
-
this.refreshMenuPower = false;
|
|
142
|
-
this.refreshSourcePower = false;
|
|
143
|
-
this.showPosUser = false;
|
|
144
|
-
this.$nextTick(() => {
|
|
145
|
-
this.refreshMenuPower = true;
|
|
146
|
-
this.refreshSourcePower = true;
|
|
147
|
-
this.showPosUser = true;
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
created(){
|
|
152
|
-
this.initRoleUserData();
|
|
153
|
-
},
|
|
154
107
|
methods:{
|
|
155
108
|
initRoleUserData(){
|
|
156
109
|
//初始化已选中的 人员、部门、岗位
|
|
@@ -215,45 +168,6 @@
|
|
|
215
168
|
}
|
|
216
169
|
},
|
|
217
170
|
|
|
218
|
-
|
|
219
|
-
setMenuPower(optPower,dataPower,optPowerTree,dataPowerTree){
|
|
220
|
-
this.refreshMenuPower = false;
|
|
221
|
-
this.menuOptPower = optPower || [];
|
|
222
|
-
this.menuDataPower = dataPower || [];
|
|
223
|
-
this.menuOptPowerTree = optPowerTree || [];
|
|
224
|
-
this.menuDataPowerTree = dataPowerTree || [];
|
|
225
|
-
this.$nextTick(() => {
|
|
226
|
-
this.refreshMenuPower = true;
|
|
227
|
-
});
|
|
228
|
-
},
|
|
229
|
-
|
|
230
|
-
setSourcePower(optPower,dataPower,optPowerTree,dataPowerTree){
|
|
231
|
-
this.refreshSourcePower = false;
|
|
232
|
-
this.sourceOptPower = optPower || [];
|
|
233
|
-
this.sourceDataPower = dataPower || [];
|
|
234
|
-
this.sourceOptPowerTree = optPowerTree || [];
|
|
235
|
-
this.sourceDataPowerTree = dataPowerTree || [];
|
|
236
|
-
this.$nextTick(() => {
|
|
237
|
-
this.refreshSourcePower = true;
|
|
238
|
-
});
|
|
239
|
-
},
|
|
240
|
-
|
|
241
|
-
setMenuLoading(loading){
|
|
242
|
-
this.menuLoading = loading;
|
|
243
|
-
},
|
|
244
|
-
|
|
245
|
-
setSourceLoading(loading){
|
|
246
|
-
this.sourceLoading = loading;
|
|
247
|
-
},
|
|
248
|
-
|
|
249
|
-
setCurrentMenuNode(node){
|
|
250
|
-
this.currentClickMenuNode = node;
|
|
251
|
-
},
|
|
252
|
-
|
|
253
|
-
setCurrentSourceNode(node){
|
|
254
|
-
this.currentClickSourceNode = node;
|
|
255
|
-
},
|
|
256
|
-
|
|
257
171
|
async saveData(){
|
|
258
172
|
let updateMenu = [];//修改
|
|
259
173
|
let addMenu = [];//新增
|
|
@@ -262,15 +176,17 @@
|
|
|
262
176
|
let oldCheckMenu = this.$refs.menuRef.oldChecked || [];
|
|
263
177
|
let oldCheckMenuObj = this.$refs.menuRef.oldData || {};
|
|
264
178
|
let checkMenuData = this.$refs.menuRef.getCheckData() || [];
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
179
|
+
let oldDataArray=this.$refs.menuRef.oldDataArray;
|
|
180
|
+
// let cdss=this.$refs.menuRef.cdss;
|
|
181
|
+
// 如果现在有三个维度,需要判断是否所有维度都切换过了,没切换过的那部分的选中项直接将旧数据置入即可
|
|
182
|
+
let loadCdssObj = this.$refs.menuRef.loadCdssObj || {};
|
|
183
|
+
let loadCdssArr = Object.keys(loadCdssObj);
|
|
184
|
+
oldDataArray.forEach(item=>{
|
|
185
|
+
if(loadCdssArr.indexOf(item.cdss) === -1){
|
|
186
|
+
checkMenuData.push(item);
|
|
187
|
+
}
|
|
188
|
+
})
|
|
189
|
+
|
|
274
190
|
checkMenuData.forEach(item => {
|
|
275
191
|
//数据
|
|
276
192
|
let optPower = "";
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const commonSettingMixins = {
|
|
2
|
+
data() {
|
|
3
|
+
return {
|
|
4
|
+
activeName: "1",
|
|
5
|
+
menuLoading: false, //加载条
|
|
6
|
+
sourceLoading: false,//资源加载条
|
|
7
|
+
menuOptPower: [],//菜单操作权限(最底层数据)
|
|
8
|
+
menuDataPower: [],//菜单数据权限(最底层数据)
|
|
9
|
+
menuOptPowerTree: [],//菜单操作权限(树数据)
|
|
10
|
+
menuDataPowerTree: [],//菜单数据权限(树数据)
|
|
11
|
+
sourceOptPower: [],//资源操作权限
|
|
12
|
+
sourceDataPower: [],//资源数据权限
|
|
13
|
+
sourceOptPowerTree: [],//资源操作权限(树数据)
|
|
14
|
+
sourceDataPowerTree: [],//资源数据权限(树数据)
|
|
15
|
+
checkMenuOptPower: {},//勾选的菜单操作权限
|
|
16
|
+
checkMenuDataPower: {},//勾选的菜单数据权限
|
|
17
|
+
checkSourceOptPower: {},//勾选的资源操作权限
|
|
18
|
+
checkSourceDataPower: {},//勾选的资源数据权限
|
|
19
|
+
refreshMenuPower: true,
|
|
20
|
+
refreshSourcePower: true,
|
|
21
|
+
currentClickMenuNode: {},//当前点击的菜单节点
|
|
22
|
+
currentClickSourceNode: {},//当前点击的资源节点
|
|
23
|
+
|
|
24
|
+
loginUser: {},
|
|
25
|
+
orgTreeIds: "",//组织树id
|
|
26
|
+
showPosUser: false,
|
|
27
|
+
orgDims: "",
|
|
28
|
+
|
|
29
|
+
userMap: {}, // 已选择人员信息的集合
|
|
30
|
+
userDataMap: {}, //
|
|
31
|
+
caseDataParentData: {},
|
|
32
|
+
caseDataMap: {},//保存原开启下级部门权限的所有子数据
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
watch: {
|
|
36
|
+
roleId() {
|
|
37
|
+
this.initRoleUserData();
|
|
38
|
+
this.refreshMenuPower = false;
|
|
39
|
+
this.refreshSourcePower = false;
|
|
40
|
+
this.showPosUser = false;
|
|
41
|
+
this.$nextTick(() => {
|
|
42
|
+
this.refreshMenuPower = true;
|
|
43
|
+
this.refreshSourcePower = true;
|
|
44
|
+
this.showPosUser = true;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
created() {
|
|
49
|
+
this.initRoleUserData();
|
|
50
|
+
},
|
|
51
|
+
methods: {
|
|
52
|
+
setMenuPower(optPower, dataPower, optPowerTree, dataPowerTree) {
|
|
53
|
+
this.refreshMenuPower = false;
|
|
54
|
+
this.menuOptPower = optPower || [];
|
|
55
|
+
this.menuDataPower = dataPower || [];
|
|
56
|
+
this.menuOptPowerTree = optPowerTree || [];
|
|
57
|
+
this.menuDataPowerTree = dataPowerTree || [];
|
|
58
|
+
this.$nextTick(() => {
|
|
59
|
+
this.refreshMenuPower = true;
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
setSourcePower(optPower, dataPower, optPowerTree, dataPowerTree) {
|
|
64
|
+
this.refreshSourcePower = false;
|
|
65
|
+
this.sourceOptPower = optPower || [];
|
|
66
|
+
this.sourceDataPower = dataPower || [];
|
|
67
|
+
this.sourceOptPowerTree = optPowerTree || [];
|
|
68
|
+
this.sourceDataPowerTree = dataPowerTree || [];
|
|
69
|
+
this.$nextTick(() => {
|
|
70
|
+
this.refreshSourcePower = true;
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
setMenuLoading(loading) {
|
|
74
|
+
this.menuLoading = loading;
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
setSourceLoading(loading) {
|
|
78
|
+
this.sourceLoading = loading;
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
setCurrentMenuNode(node) {
|
|
82
|
+
this.currentClickMenuNode = node;
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
setCurrentSourceNode(node) {
|
|
86
|
+
this.currentClickSourceNode = node;
|
|
87
|
+
},
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export default commonSettingMixins;
|
|
@@ -49,8 +49,15 @@
|
|
|
49
49
|
mounted(){
|
|
50
50
|
let id = this.currentClickNode.id || this.currentClickNode.key;
|
|
51
51
|
let checkData = [];
|
|
52
|
+
let checkOptArr = this.checkOptPower[id];
|
|
53
|
+
let powerDataArr = [];
|
|
54
|
+
(this.powerDataTree || []).forEach(data => {
|
|
55
|
+
if(data.children.length > 0) {
|
|
56
|
+
powerDataArr.push(data.id);
|
|
57
|
+
}
|
|
58
|
+
})
|
|
52
59
|
if(this.type == "opt"){
|
|
53
|
-
checkData =
|
|
60
|
+
checkData = (checkOptArr || []).filter(opt => !powerDataArr.includes(opt));
|
|
54
61
|
}else{
|
|
55
62
|
checkData = this.checkDataPower[id];
|
|
56
63
|
}
|
|
@@ -63,7 +70,15 @@
|
|
|
63
70
|
let halfKey = this.$refs.elTree.getHalfCheckedKeys();
|
|
64
71
|
this.isCheckAll(halfKey,checkData);
|
|
65
72
|
|
|
66
|
-
|
|
73
|
+
let dataLength = this.powerDataTree.length;
|
|
74
|
+
if(this.powerDataTree.length > 0) {
|
|
75
|
+
this.powerDataTree.forEach(item => {
|
|
76
|
+
if(item.children.length > 0) {
|
|
77
|
+
dataLength += item.children.length;
|
|
78
|
+
}
|
|
79
|
+
})
|
|
80
|
+
}
|
|
81
|
+
if(this.powerDataTree.length!=0 && dataLength==this.$refs.elTree.getCheckedKeys().length){
|
|
67
82
|
this.checkAll = "1";
|
|
68
83
|
}else{
|
|
69
84
|
this.checkAll = "0";
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
checkedObj:{},//选中对象数组(树数据)
|
|
58
58
|
isChange:false,
|
|
59
59
|
cdssBak:"",//记录上一个cdss
|
|
60
|
+
loadCdssObj:{}, // 已经加载过的cdss数据
|
|
60
61
|
|
|
61
62
|
tenantCdss:'', //租户维度
|
|
62
63
|
}
|
|
@@ -218,6 +219,7 @@
|
|
|
218
219
|
this.cdssArr = cdssArr;
|
|
219
220
|
if(this.cdssArr && this.cdssArr.length > 0){
|
|
220
221
|
this.cdss = this.cdssArr[0];
|
|
222
|
+
this.loadCdssObj[this.cdss] = true;
|
|
221
223
|
}
|
|
222
224
|
this.menuDatas = data;
|
|
223
225
|
this.dealTreeData();
|
|
@@ -291,6 +293,7 @@
|
|
|
291
293
|
*/
|
|
292
294
|
changeCdss(){
|
|
293
295
|
this.isChange=true;
|
|
296
|
+
this.loadCdssObj[this.cdss] = true;
|
|
294
297
|
this.checkedArr = this.$refs.menuTree.$refs.elTree.getCheckedNodes();
|
|
295
298
|
this.checkedObj[this.cdssBak]=[];
|
|
296
299
|
this.checkedObj[this.cdssBak] = this.checkedArr;
|
|
@@ -312,11 +315,15 @@
|
|
|
312
315
|
*
|
|
313
316
|
*/
|
|
314
317
|
getCheckData(){
|
|
315
|
-
let checkedArr = this.$refs.menuTree.$refs.elTree.getCheckedNodes();
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
318
|
+
let checkedArr = this.$refs.menuTree.$refs.elTree.getCheckedNodes() || [];
|
|
319
|
+
let arr = [];
|
|
320
|
+
Object.keys(this.checkedObj).forEach(key => {
|
|
321
|
+
if(key != this.cdss){
|
|
322
|
+
arr = arr.concat(this.checkedObj[key]);
|
|
323
|
+
}
|
|
324
|
+
})
|
|
325
|
+
arr = arr.concat(checkedArr);
|
|
326
|
+
return arr;
|
|
320
327
|
// return this.$refs.menuTree.$refs.elTree.getCheckedNodes();
|
|
321
328
|
},
|
|
322
329
|
|
|
@@ -126,10 +126,8 @@
|
|
|
126
126
|
this.completeTableData = false;
|
|
127
127
|
this.axios.post(this.api.safeInit.initTrinityData,{"province":this.initDataObj.province,"city":this.initDataObj.city,"area":this.initDataObj.area}).then(res =>{
|
|
128
128
|
this.isClickTableData = true;
|
|
129
|
-
if(res && res.data){
|
|
130
|
-
|
|
131
|
-
this.completeTableData = true;
|
|
132
|
-
}
|
|
129
|
+
if(res && res.data && res.data.flag == 'true'){
|
|
130
|
+
this.completeTableData = true;
|
|
133
131
|
}
|
|
134
132
|
});
|
|
135
133
|
|