sasp-admin 0.2.62 → 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.
Files changed (63) hide show
  1. package/index.js +38 -31
  2. package/package.json +1 -1
  3. package/router.js +5 -1
  4. package/src/assets/font/iconfont.css +1902 -1846
  5. package/src/assets/font/iconfont.eot +0 -0
  6. package/src/assets/font/iconfont.js +1 -1
  7. package/src/assets/font/iconfont.svg +959 -825
  8. package/src/assets/font/iconfont.ttf +0 -0
  9. package/src/assets/font/iconfont.woff +0 -0
  10. package/src/assets/js/api/apiAdmin.js +10 -0
  11. package/src/assets/js/global/dataGlobal.js +7 -3
  12. package/src/assets/js/global/userGlobal.js +9 -3
  13. package/src/components/complexViewRendering.vue +214 -198
  14. package/src/components/ifmLink.vue +20 -3
  15. package/src/components/public/data/plDataSelect.vue +8 -6
  16. package/src/components/public/org/sysOrgPosUserSelect.vue +61 -22
  17. package/src/components/public/upload/images/ofd.png +0 -0
  18. package/src/components/public/upload/plImage.vue +3 -1
  19. package/src/components/public/upload/plUpload.vue +167 -40
  20. package/src/components/public/upload/preview/OfdPreview.vue +223 -0
  21. package/src/components/public/upload/preview/officeViewer.vue +116 -0
  22. package/src/components/public/upload/preview/pdfPreview.vue +91 -0
  23. package/src/{views → components/public/upload}/preview/pdfViewer.vue +1 -1
  24. package/src/views/VueMenuView.vue +11 -13
  25. package/src/views/data/dataManage.vue +51 -5
  26. package/src/views/event/eventManager/vueEventDiy.vue +4 -6
  27. package/src/views/log/loginlog/logManageDevOrSup.vue +8 -5
  28. package/src/views/log/loginlog/logManageEnt.vue +96 -55
  29. package/src/views/log/loginlog/logManageGov.vue +8 -5
  30. package/src/views/menu/component/menuManageComponent.vue +3 -5
  31. package/src/views/menuRouter/menuView.vue +226 -117
  32. package/src/views/menuRouter/urlMenuRouter.vue +13 -16
  33. package/src/views/org/entOrgTree.vue +1 -3
  34. package/src/views/org/js/sysOrgUserDetailMixins.js +646 -0
  35. package/src/views/org/sysEntOrgUserDetail.vue +10 -632
  36. package/src/views/org/sysOrgDimension.vue +4 -8
  37. package/src/views/org/sysOrgPosUserDetail.vue +4 -619
  38. package/src/views/org/sysOrgTree.vue +7 -9
  39. package/src/views/param/sysParam.vue +2 -0
  40. package/src/views/resources/resRouter/resView.vue +9 -11
  41. package/src/views/resources/tabs/comp/pageResRegister.vue +3 -5
  42. package/src/views/resources/tabs/dataResources.vue +3 -1
  43. package/src/views/resources/tabs/pageResources.vue +3 -1
  44. package/src/views/role/authRole/component/allocateSetting.vue +2 -589
  45. package/src/views/role/authRole/component/authSetting.vue +2 -597
  46. package/src/views/role/authRole/component/js/authMixins.js +622 -0
  47. package/src/views/role/commonRole/commonRole.vue +122 -3
  48. package/src/views/role/commonRole/compoment/commonSetting.vue +4 -6
  49. package/src/views/role/commonRole/compoment/commonSettingAdjust.vue +2 -89
  50. package/src/views/role/commonRole/compoment/commonSettingNew.vue +13 -97
  51. package/src/views/role/commonRole/compoment/js/commonSettingMixins.js +90 -0
  52. package/src/views/role/commonRole/compoment/roleMenuPower.vue +17 -2
  53. package/src/views/role/commonRole/compoment/roleMenuSetting.vue +12 -5
  54. package/src/views/sms/sendSms.vue +1 -1
  55. package/src/views/threeinone/init/safeInitRegion.vue +2 -4
  56. package/src/views/threeinone/safeManager.vue +1 -0
  57. package/src/views/threeinone/safeOrgSpv.vue +360 -337
  58. package/src/views/threeinone/safeSpvEconView.vue +37 -17
  59. package/src/views/uploadManage/uploadManage.vue +133 -0
  60. package/src/views/user/empowerUser/empowerUserListViewMenuTree.vue +6 -2
  61. package/src/views/user/stationUserManage.vue +3 -5
  62. package/src/views/user/userManage.vue +99 -3
  63. package/src/views/user/userMangement.vue +4 -6
@@ -56,91 +56,12 @@
56
56
  <script>
57
57
  import RoleMenuPowerSetting from "../../commonRole/compoment/roleMenuPowerSetting";
58
58
  import AllocateRoleMenuSetting from "../../commonRole/compoment/allocateRoleMenuSetting";
59
+ import authMixnins from "./js/authMixins";
59
60
  export default {
60
61
  name: "allocate-setting",
61
62
  components:{AllocateRoleMenuSetting,RoleMenuPowerSetting},
63
+ mixins:[authMixnins],
62
64
  props:['currentRowObj',"roleSettingDialog"],
63
- data(){
64
- return {
65
- defaultProps:{"children":"children","label":"menuShowName"},
66
- defaultLinkProps:{"children":"children","label":"menuName"},
67
- activeName:"1", // 当前激活的tab页名称
68
- roleRequestParam:{}, // 权限
69
- filterAllowMenu:"",
70
- loading:true, // 加载条
71
- sourceLoading:false,//资源加载条
72
- linkMenuModel:"$$$$", // 权限关联菜单的数据来源
73
- cdssArr:[],
74
- cdss:"", // 当前菜单所在的模块
75
- lastCdss:"", // 上一次菜单所在的模块
76
- allowMenuParam:{},
77
- allowMenurefreshProper:"", // 刷新可分配菜单树的办法
78
- operateNameMap:{}, // 操作按钮名称代码对应关系
79
- complexFieldArr:[],
80
- currentMenuId:"", // 当前点击的菜单id
81
- loginUser:{}, // 登录用户
82
- caseSup:false, // 是否是开发者
83
- initCheck:{}, // 初始化选中
84
- authLinkInitCheck:{}, // 关联菜单初始化选中
85
- rootDatas:[], // 可分配菜单的树数据
86
- allSettingObj:{}, // 所有按钮配置数据,
87
- oldRoleOptAll:{}, // 可分配菜单数据库已选择的Opt数据
88
- menuOptAll:{}, // 当前用户拥有的所有操作权限,如果是开发者那么视为所有
89
- menuAllBaseInfo:{}, // 菜单对应的基础信息
90
- userMap:{}, // 已选择人员pos_user_id的集合
91
- userDataMap:{}, // 已选择人员信息的集合
92
- operationAddObj:{}, // 增加的操作权限数据
93
- operationDeleteObj:{}, // 删除的操作权限数据
94
- orgTreeIds:"",
95
- allMenuObj:{}, // 所有菜单数据
96
- orgDims:"",
97
- dimensionObj:{}, // 维度对应中文名
98
- dimensionOrder:{}, // 维度顺序
99
-
100
- menuOptPower:[],//菜单操作权限
101
- menuDataPower:[],//菜单数据权限
102
- menuOptPowerTree:[],//菜单操作权限(树数据)
103
- menuDataPowerTree:[],//菜单数据权限(树数据)
104
- sourceOptPower:[],//资源操作权限
105
- sourceDataPower:[],//资源数据权限
106
- sourceOptPowerTree:[],//资源操作权限(树数据)
107
- sourceDataPowerTree:[],//资源数据权限(树数据)
108
- checkMenuOptPower:{},//勾选的菜单操作权限
109
- checkMenuDataPower:{},//勾选的菜单数据权限
110
- checkSourceOptPower:{},//勾选的资源操作权限
111
- checkSourceDataPower:{},//勾选的资源数据权限
112
- refreshMenuPower:true,
113
- currentClickMenuNode:{},//当前点击的菜单节点
114
- defaultMenu:[
115
- {id:"normalUser",menuName:"普通用户管理",menuUrl:"/commonHome/userManage/ent",parentId:"-1"},
116
- {id:"empowerUser",menuName:"授权用户管理",menuUrl:"/commonHome/empowerUserList",parentId:"-1"},
117
- {id:"sysOrg",menuName:"组织岗位管理",menuUrl:"/commonHome/sysOrgTree",parentId:"-1"},
118
- {id:"sysRole",menuName:"角色权限管理",menuUrl:"/commonHome/role",parentId:"-1"}
119
- ],
120
- linkMenuInitCheck:{},
121
- ownOptLastData:[],
122
- allLevelData:{},
123
- refreshSourcePower:true,
124
- currentClickSourceNode:{},//当前点击的资源节点
125
- loadRoleMenuSuccess:false,
126
- }
127
- },
128
- watch:{
129
- cdss(){
130
- this.dealTreeData();
131
- this.allowMenurefreshProper = this.cdss;
132
- },
133
- roleSettingDialog(){
134
- let vm = this;
135
- vm.activeName = "1";
136
- if(vm.roleSettingDialog){
137
- vm.$nextTick(function () {
138
- vm.cdssArr.length > 0 && (vm.cdss = vm.cdssArr[0]) && (vm.lastCdss = vm.cdssArr[0]);
139
- vm.init();
140
- })
141
- }
142
- }
143
- },
144
65
  created(){
145
66
  let vm = this;
146
67
  vm.axios.post(vm.api.sysOrgDimension.find).then(res => {
@@ -178,22 +99,6 @@
178
99
  });
179
100
  },
180
101
  methods:{
181
- init(){
182
- this.userMap = {};
183
- this.userDataMap = {};
184
- this.allSettingObj = {};
185
- },
186
-
187
- getLastLayerData(dataArr){
188
- (dataArr || []).forEach(item => {
189
- if(item.childrens && item.childrens.length > 0){
190
- this.getLastLayerData(item.childrens)
191
- }else{
192
- this.ownOptLastData.push(item);
193
- }
194
- });
195
- },
196
-
197
102
  loadAllowTree(){
198
103
  let vm = this;
199
104
  /* 初始化可分配菜单选中 */
@@ -207,329 +112,6 @@
207
112
  });
208
113
  },
209
114
 
210
- compareCdss(a,b){
211
- let vm = this;
212
- return (vm.dimensionOrder[a] || 0) - (vm.dimensionOrder[b] || 0);
213
- },
214
- dealTreeData(){
215
- let vm = this;
216
- let data = JSON.parse(JSON.stringify(vm.allDatas)); // 重新序列化对象
217
- let arr = [];
218
- data = data.filter(each => {
219
- if(each["menuModel"] == vm.linkMenuModel || each["cdss"] != vm.cdss){
220
- return false;
221
- }
222
- return true;
223
- });
224
- if(vm.caseSup){
225
- data.forEach(function (each) {
226
- each["parentCode"] = each["menuSjbh"];
227
- if(each["menuSjbh"] == '-1'){
228
- each["parentCode"] = each["menuModel"] + "_model";
229
- }
230
- each["menuShowName"] = each["menuName"];
231
- });
232
- vm.rootDatas = arr.concat(data);
233
- return;
234
- }
235
- let realInfoArr = []; // 实际需要的数据,清除未勾选的数据,但保留已勾选的上级未选中的数据
236
- let realInfoIds = [];
237
- data.forEach(function (item) {
238
- recursionData(vm.allMenuObj[item.id]);
239
- });
240
- function recursionData(data){
241
- if(data){
242
- if(realInfoIds.indexOf(data["id"]) == -1){
243
- if(!vm.menuAllBaseInfo[data.id]){ // 增加额外数据时如果不在这个全菜单信息集合则加进去
244
- vm.menuAllBaseInfo[data.id] = data;
245
- }
246
- realInfoArr.push(data);
247
- realInfoIds.push(data["id"]);
248
- }
249
- recursionData(vm.allMenuObj[data["menuSjbh"]]);
250
- }
251
- }
252
- realInfoArr.forEach(function (each) {
253
- each["parentCode"] = each["menuSjbh"];
254
- if(each["menuSjbh"] == '-1'){
255
- each["parentCode"] = each["menuModel"] + "_model";
256
- }
257
- each["menuShowName"] = each["menuName"];
258
- });
259
- let result = arr.concat(realInfoArr).sort(vm.sortData);
260
- vm.rootDatas = result;
261
- },
262
- sortData(a,b){ // 数据排序
263
- if(a["menuLevel"] == b["menuLevel"]){
264
- return Number(a["menuOrder"]) - Number(b["menuOrder"]);
265
- }else{
266
- return Number(a["menuLevel"]) - Number(b["menuLevel"]);
267
- }
268
- },
269
- renderContent(h, {node, data, store}) {
270
- return (
271
- <span class={node.level == 1 ? 'model-color':''} style={node.level == 1 ? 'letter-spacing:1px':''}>
272
- <i class={data.className}></i>
273
- <span style={node.level == 2 ? 'font-weight:bold':""}>{node.label}</span>
274
- </span>
275
- );
276
- },
277
- nodeClick(data,node){
278
- let vm = this;
279
- if (node.level === 1) { // 第一级数据
280
- node.expanded = !node.expanded;
281
- return;
282
- }
283
- vm.currentMenuId = data.id; // 当前操作的菜单id
284
- // vm.operateSetting(data);
285
- },
286
- optAllChange(checked){ // 全选
287
- let vm = this;
288
- vm.optArr.forEach(function (each) {
289
- each["checked"] = checked;
290
- });
291
- vm.complexFieldArr.forEach(function (each) {
292
- each["legendChecked"] = checked;
293
- (each["buttonArr"] || []).forEach(function (button) {
294
- button["checked"] = checked;
295
- })
296
- });
297
- if(vm.optArr.length > 0){
298
- vm.operateChange("optArr");
299
- }
300
- if(vm.complexFieldArr.length > 0){
301
- vm.operateChange("complexFieldArr");
302
- }
303
- },
304
- optChange(checked){
305
- let vm = this;
306
- vm.optArr.forEach(function (each) {
307
- each["checked"] = checked;
308
- });
309
- vm.complexFieldArr.forEach(function (each) {
310
- each["legendChecked"] = checked;
311
- (each["buttonArr"] || []).forEach(function (button) {
312
- button["checked"] = checked;
313
- })
314
- });
315
- if(vm.optArr.length > 0){
316
- vm.operateChange("optArr");
317
- }
318
- if(vm.complexFieldArr.length > 0){
319
- vm.operateChange("complexFieldArr");
320
- }
321
- },
322
- operateChange(type){ // 操作权限变更
323
- let vm = this;
324
- let CheckedArr = [];
325
- if(type == "optArr"){
326
- let arr = vm.allSettingObj[vm.currentMenuId]['optArr'] || [];
327
- arr.forEach(function (each) {
328
- each["checked"] && CheckedArr.push(each["value"]);
329
- })
330
- }
331
- if(type == "complexFieldArr"){
332
- let arr = vm.allSettingObj[vm.currentMenuId]['complexFieldArr'] || [];
333
- arr.forEach(function (each) {
334
- each["legendChecked"] && CheckedArr.push(each["legendValue"]);
335
- (each["buttonArr"] || []).forEach(function (button) {
336
- button["checked"] && CheckedArr.push(button["value"]);
337
- })
338
- })
339
- }
340
- vm.comPareOperation(CheckedArr);
341
- vm.allSettingObj[vm.currentMenuId]['operation'] = CheckedArr.join(",");
342
- vm.$forceUpdate();
343
- },
344
- comPareOperation(checkedArr){ // 比对当前选中的操作权限与初始化的操作权限增删情况
345
- let vm = this;
346
- let beforeOperation = (vm.oldRoleOptAll[vm.currentMenuId] || {})["operation"];
347
- let beforeArr = (beforeOperation || "").split(",");
348
- let addOperation = [];
349
- let deleteOperation = [];
350
- checkedArr.forEach(item => {
351
- if(beforeArr.indexOf(item) == -1){
352
- addOperation.push(item);
353
- }
354
- });
355
- beforeArr.forEach(item => {
356
- if(checkedArr.indexOf(item) == -1){
357
- deleteOperation.push(item);
358
- }
359
- });
360
- vm.operationAddObj[vm.currentMenuId] = addOperation.join(","); // 增加的操作权限
361
- vm.operationDeleteObj[vm.currentMenuId] = deleteOperation.join(","); // 删除的操作权限
362
- },
363
- cdssChange(cdss){ // 菜单所属在切换时,要同时记下当前选中与取消的项目
364
- let vm = this;
365
- let checkedArr = vm.$refs.allowMenuSettingTreeRef.getTreeCheckedNodes("key"); // 菜单更改前树勾选的数据
366
- let initCheckArr = vm.initCheck["initCheck"] || [];
367
- // 对比
368
- initCheckArr = initCheckArr.filter(item=>{ // item是菜单id
369
- return (vm.menuAllBaseInfo[item] || {})["cdss"] != vm.lastCdss;
370
- });
371
- vm.initCheck["initCheck"] = initCheckArr.concat(checkedArr);
372
- vm.lastCdss = cdss;
373
- vm.currentMenuId = ""; // 切换时将当前菜单id清空
374
- },
375
- operateSetting(data){ // 操作权限设置
376
- let vm = this;
377
- vm.complexFieldArr = [];
378
- vm.optArr=[];
379
- vm.noSetting = false; // 没配置过
380
- let collectObj = {};
381
- let settingObj = vm.allSettingObj[data.id] || vm.oldRoleOptAll[data.id]; // 当前的数据配置
382
- if(!settingObj){ // 没有做过任何配置,选中全部按钮
383
- vm.noSetting = true;
384
- }
385
- !settingObj && (settingObj = {});
386
- let currentOpt = vm.menuOptAll[data.id]; // 当前菜单的opt
387
- vm.allSettingObj[data.id] = collectObj; // 后面操作collectObj这个对象就可以了
388
-
389
- let alReadySet = "";
390
- collectObj["enableOperation"] = true;
391
- collectObj["checkAll"] = settingObj["checkAll"] || false;
392
- collectObj["operation"] = settingObj["operation"] || "";
393
- alReadySet = settingObj["operation"] || "";
394
- let checkedArr = alReadySet ? alReadySet.split(","):[];
395
- let menuType = data.menuType;
396
- switch (menuType) {
397
- case "系统功能":
398
- case "自定义功能菜单":
399
- let belong = "";
400
- if(data.menuType == "系统功能"){
401
- belong = data.menuXtgn;
402
- }else{
403
- belong = data.menuZdygncd;
404
- }
405
- vm.axios.post(vm.api.menuOpt.find,{"sscdid":belong}).then(function (res) {
406
- res.data.forEach(function (opt) {
407
- let obj = {};
408
- let value = opt["czbm"];
409
- if(opt.czbm == "diy"){
410
- value = opt["czbm"] + "_" + opt["czlx"];
411
- }
412
- if(!(currentOpt && currentOpt.indexOf(value) == -1)){
413
- obj["value"] = value;
414
- obj["name"] = opt["czlx"];
415
- obj["checked"] = (checkedArr.indexOf(value))> -1;
416
- vm.optArr.push(obj);
417
- }
418
- collectObj["optArr"] = vm.optArr;
419
- });
420
- vm.$forceUpdate();
421
- if(vm.noSetting){
422
- collectObj["checkAll"] = true;
423
- vm.optAllChange(true);
424
- }
425
- });
426
- break;
427
- case "自定义单表表单":
428
- if(currentOpt){
429
- if(currentOpt.indexOf("view") > -1){
430
- vm.optArr.push({"name":"仅查看","value":"view","checked":(checkedArr.indexOf("view"))> -1});
431
- }
432
- if(currentOpt.indexOf("update") > -1){
433
- vm.optArr.push({"name":"可修改查看","value":"update","checked":(checkedArr.indexOf("update"))> -1});
434
- }
435
- }else{
436
- vm.optArr.push({"name":"仅查看","value":"view","checked":(checkedArr.indexOf("view"))> -1});
437
- vm.optArr.push({"name":"可修改查看","value":"update","checked":(checkedArr.indexOf("update"))> -1});
438
- }
439
- collectObj["optArr"] = vm.optArr;
440
- if(vm.noSetting){
441
- collectObj["checkAll"] = true;
442
- vm.optAllChange(true);
443
- }
444
- break;
445
- case "自定义表单":
446
- case "自定义表单-VUE":
447
- vm.axios.post("/formbuttonController/listNoPage",{"viewId":data.menuViewId}).then(function (res) {
448
- res.data.forEach(function (button) {
449
- let obj = {};
450
- let value = vm.operateNameMap[button.buttonType];
451
- if(vm.operateNameMap[button.buttonType] == "diy"){
452
- value = vm.operateNameMap[button.buttonType] + "_" + button.buttonName;
453
- }
454
- if(!(currentOpt && currentOpt.indexOf(value) == -1)){ // 如果权限里当前值不存在则跳过
455
- obj["value"] = value;
456
- obj["name"] = button.buttonName;
457
- obj["checked"] = (checkedArr.indexOf(value))> -1;
458
- vm.optArr.push(obj);
459
- }
460
- collectObj["optArr"] = vm.optArr;
461
- });
462
- vm.$forceUpdate();
463
- if(vm.noSetting){
464
- collectObj["checkAll"] = true;
465
- vm.optAllChange(true);
466
- }
467
- });
468
- break;
469
- case "复合视图":
470
- case "复合视图-VUE":
471
- let complexId = data.menuGzlId;
472
- vm.axios.post(vm.api.complextab.findAllLinkData,{'viewId': complexId, 'sort': 'sort', 'order': '0'}).then(function (res) {
473
- let result = res.data;
474
- result.forEach(function (data) {
475
- let complexTab = data.complexTab;
476
- let value = "complexTab:" + complexTab.id;
477
- if(!(currentOpt && currentOpt.indexOf(value) == -1)){
478
- let obj = {};
479
- let buttonArr = [];
480
- let urlType = complexTab.urlType;
481
- let linkData = data.linkData || [];
482
- let lengendValue = "complexTab:"+complexTab.id;
483
- obj["legendName"] = complexTab.tabName;
484
- obj["legendValue"] = lengendValue;
485
- obj["legendChecked"] = checkedArr.indexOf(lengendValue) > -1 ;
486
- // 下面两个if可以合并为一个forEach,但是为了代码易读性暂不合并
487
- if((urlType || "") .indexOf("自定义表单") > -1){
488
- linkData.forEach(function (each) {
489
- let optValue = "complex:" + complexTab.id + ":" + vm.operateNameMap[each["buttonType"]];
490
- if(vm.operateNameMap[each["buttonType"]] == "diy"){
491
- optValue += "_" + each["buttonName"];
492
- }
493
- if(!(currentOpt && currentOpt.indexOf(optValue) == -1)){
494
- let buttonObj = {};
495
- buttonObj["checked"] = checkedArr.indexOf(optValue) > -1;
496
- buttonObj["value"] = optValue;
497
- buttonObj["buttonName"] = each["buttonName"];
498
- buttonArr.push(buttonObj);
499
- }
500
- })
501
-
502
- }
503
- if(urlType == "系统功能" || urlType =="自定义功能"){
504
- linkData.forEach(function (each) {
505
- let optValue = "complex:" + complexTab.id + ":" + each["czbm"];
506
- if(!(currentOpt && currentOpt.indexOf(optValue) == -1)){
507
- let buttonObj = {};
508
- buttonObj["checked"] = checkedArr.indexOf(optValue) > -1;
509
- buttonObj["value"] = optValue;
510
- buttonObj["buttonName"] = each["czlx"];
511
- buttonArr.push(buttonObj);
512
- }
513
- })
514
- }
515
- obj["buttonArr"] = buttonArr;
516
- vm.complexFieldArr.push(obj);
517
- collectObj["complexFieldArr"] = vm.complexFieldArr;
518
- }
519
- });
520
- vm.$forceUpdate();
521
- if(vm.noSetting){
522
- collectObj["checkAll"] = true;
523
- vm.optAllChange(true);
524
- }
525
- });
526
- break;
527
- // case "统计报表": // 统计报表未做逻辑,咱不处理,设为禁用
528
- // break;
529
- default:
530
- break;
531
- }
532
- },
533
115
  /**
534
116
  * 保存人员,保存关联菜单,保存可分配菜单
535
117
  * @returns {Promise<void>}
@@ -707,175 +289,6 @@
707
289
  return {addOperationCollect:addOperationCollect,deleteOperationCollect:deleteOperationCollect,insertCollect:insertCollect};
708
290
 
709
291
  },
710
-
711
-
712
- async saveAllowResource(menuNameArr,removeArr,updateArr,addArr,removeResource,
713
- addOperationCollect,deleteOperationCollect,insertCollect){
714
- let vm = this;
715
- let oldCheckResource = vm.$refs.sourceRef.oldChecked || [];
716
- let oldCheckResourceObj = vm.$refs.sourceRef.oldData || {};
717
- let checkedArr = vm.$refs.sourceRef.getCheckData() || []; // 当前资源树勾选的数据
718
-
719
- let updateResourceId = [];//修改id
720
- let resourceArr = [];
721
- checkedArr.forEach(item => {
722
- //数据
723
- let optPower = "";
724
- if(this.checkSourceOptPower[item.key]){
725
- optPower = this.checkSourceOptPower[item.key].join(",");
726
- }
727
- let dataPower = "";
728
- if(this.checkSourceDataPower[item.key]){
729
- dataPower = this.checkSourceDataPower[item.key].join(",");
730
- }
731
- let obj = {roleId:vm.currentRowObj.id,menuId:item.key,optPower:optPower, dataPower:dataPower,type:"source"};
732
- if(vm.checkSourceOptPower[item.key]){
733
- obj.lastOpts = vm.checkSourceOptPower[item.key];
734
- }
735
- if(oldCheckResource.indexOf(item.key) > -1){//修改
736
- obj.id = oldCheckResourceObj[item.key];
737
- updateArr.push(obj);
738
- updateResourceId.push(item.key);
739
- }else if(oldCheckResource.indexOf(item.key) == -1){//新增
740
- addArr.push(obj);
741
- }
742
- });
743
- //删除
744
- oldCheckResource.forEach(item => {
745
- if(updateResourceId.indexOf(item) == -1){
746
- removeArr.push(oldCheckResourceObj[item]);
747
- removeResource.push(item);
748
- }
749
- });
750
- /**
751
- * 修改权限时需要考虑到下级的同步,新增删除与修改
752
- * 菜单移除:将下级的权限全部移除,这是强制的
753
- * 菜单新增:提示框询问下级是否同步
754
- * 按钮权限在菜单权限的基础上进行,只有菜单权限新增修改进行,移除不操作
755
- * 按钮移除:下级全部移除
756
- * 按钮新增:提示
757
- * 这边主要通过PARENT_USER_TREE进行关联操作
758
- */
759
- /*updateArr.forEach(function (update) {
760
- let menuId = update.menuId;
761
- let oldOptArr = vm.oldRoleOptAll[menuId] || [];
762
- let currentOptArr = update.lastOpts || [];
763
- let deleteOperation = deleteOperationCollect[menuId] || "";
764
- let addOperation = addOperationCollect[menuId] || "";
765
- //原有现无,删除
766
- oldOptArr.forEach(oldOpt => {
767
- if(oldOpt && currentOptArr.indexOf(oldOpt) == -1){
768
- deleteOperation += "," + oldOpt;
769
- }
770
- });
771
- if(deleteOperation){
772
- deleteOperationCollect[menuId] = deleteOperation;
773
- }
774
- //现有原无,新增
775
- currentOptArr.forEach(currentOpt => {
776
- if(currentOpt && oldOptArr.indexOf(currentOpt) == -1){
777
- addOperation += "," + currentOpt;
778
- }
779
- });
780
- if(addOperation){
781
- addOperationCollect[menuId] = addOperation;
782
- }
783
- });
784
- addArr.forEach(function (add) {
785
- let menuId = add.menuId;
786
- insertCollect[menuId] = add.lastOpts;
787
- });*/
788
- resourceArr.forEach(function (each) { // 更新拥有的菜单
789
- menuNameArr.push(each["menuName"]);
790
- });
791
- },
792
-
793
-
794
-
795
-
796
-
797
- /**
798
- * 保存关联菜单
799
- * @returns {{allowAllotMenu: string}}
800
- */
801
- saveAuthLinkMenu(){
802
- let vm = this;
803
- let checkedNodes = [];
804
- if(vm.$refs.authMenuRef){
805
- checkedNodes = vm.$refs.authMenuRef.getTreeCheckedNodes();
806
- }
807
- let checkedSet = new Set(); // 已选择菜单数据
808
- checkedNodes.forEach(function (data) {
809
- checkedSet.add(data.id);
810
- });
811
- let checkedArr = vm.setToArray(checkedSet);
812
- return {"allowAllotMenu":checkedArr.join(",")};
813
- },
814
-
815
- /**
816
- * 获取除最底层外的数据
817
- */
818
- getAllLevelData(dataArr){
819
- (dataArr || []).forEach(item => {
820
- this.allLevelData[item.key] = item;
821
- if(item.childrens && item.childrens.length > 0){
822
- this.getAllLevelData(item.childrens);
823
- }
824
- });
825
- },
826
- setToArray(set){ // set转array
827
- let arr = [];
828
- for(let item of set.keys()){
829
- arr.push(item);
830
- }
831
- return arr;
832
- },
833
- linkDealTreeData(data){
834
- data.forEach(item =>{
835
- if(!item["menuSjbh"] || item["menuSjbh"] == "-1"){
836
- item["disabled"] = true;
837
- }
838
- });
839
- return data;
840
- },
841
-
842
- setMenuPower(optPower,dataPower,optPowerTree,dataPowerTree){
843
- this.refreshMenuPower = false;
844
- this.menuOptPower = optPower || [];
845
- this.menuDataPower = dataPower || [];
846
- this.menuOptPowerTree = optPowerTree || [];
847
- this.menuDataPowerTree = dataPowerTree || [];
848
- this.$nextTick(() => {
849
- this.refreshMenuPower = true;
850
- });
851
- },
852
-
853
- setSourcePower(optPower,dataPower,optPowerTree,dataPowerTree){
854
- this.refreshSourcePower = false;
855
- this.sourceOptPower = optPower || [];
856
- this.sourceDataPower = dataPower || [];
857
- this.sourceOptPowerTree = optPowerTree || [];
858
- this.sourceDataPowerTree = dataPowerTree || [];
859
- this.$nextTick(() => {
860
- this.refreshSourcePower = true;
861
- });
862
- },
863
-
864
- setMenuLoading(loading){
865
- this.loading = loading;
866
- },
867
-
868
- setSourceLoading(loading){
869
- this.sourceLoading = loading;
870
- },
871
-
872
- setCurrentMenuNode(node){
873
- this.currentClickMenuNode = node;
874
- },
875
-
876
- setCurrentSourceNode(node){
877
- this.currentClickSourceNode = node;
878
- },
879
292
  }
880
293
  }
881
294
  </script>