sasp-admin 0.2.57

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 (141) hide show
  1. package/index.js +227 -0
  2. package/package.json +19 -0
  3. package/router.js +83 -0
  4. package/src/assets/font/iconfont.css +1346 -0
  5. package/src/assets/font/iconfont.eot +0 -0
  6. package/src/assets/font/iconfont.js +1 -0
  7. package/src/assets/font/iconfont.svg +827 -0
  8. package/src/assets/font/iconfont.ttf +0 -0
  9. package/src/assets/font/iconfont.woff +0 -0
  10. package/src/assets/images/loading-bar.gif +0 -0
  11. package/src/assets/js/adminInstall.js +36 -0
  12. package/src/assets/js/api/apiAdmin.js +613 -0
  13. package/src/assets/js/global/dataGlobal.js +260 -0
  14. package/src/assets/js/global/logGlobal.js +22 -0
  15. package/src/assets/js/global/paramGlobal.js +67 -0
  16. package/src/assets/js/global/resGlobal.js +91 -0
  17. package/src/assets/js/global/userGlobal.js +283 -0
  18. package/src/components/complexViewRendering.vue +601 -0
  19. package/src/components/ifmLink.vue +71 -0
  20. package/src/components/public/data/plDataCascader.vue +85 -0
  21. package/src/components/public/data/plDataRadio.vue +73 -0
  22. package/src/components/public/data/plDataRadioGroup.vue +70 -0
  23. package/src/components/public/data/plDataSelect.vue +856 -0
  24. package/src/components/public/data/plDatePicker.vue +159 -0
  25. package/src/components/public/org/bg.png +0 -0
  26. package/src/components/public/org/sysOrgPosUserSelect.vue +1237 -0
  27. package/src/components/public/org/sysOrgPosUserSelectDark.vue +1402 -0
  28. package/src/components/public/org/sysOrgPosUserSelectNew.vue +1527 -0
  29. package/src/components/public/upload/images/compress.png +0 -0
  30. package/src/components/public/upload/images/emipty.png +0 -0
  31. package/src/components/public/upload/images/excel.png +0 -0
  32. package/src/components/public/upload/images/file.png +0 -0
  33. package/src/components/public/upload/images/pdf.png +0 -0
  34. package/src/components/public/upload/images/powerpoint.png +0 -0
  35. package/src/components/public/upload/images/project.png +0 -0
  36. package/src/components/public/upload/images/sound.png +0 -0
  37. package/src/components/public/upload/images/txt.png +0 -0
  38. package/src/components/public/upload/images/video.png +0 -0
  39. package/src/components/public/upload/images/visio.png +0 -0
  40. package/src/components/public/upload/images/word.png +0 -0
  41. package/src/components/public/upload/plImage.vue +287 -0
  42. package/src/components/public/upload/plImgUpload.vue +137 -0
  43. package/src/components/public/upload/plUpload.vue +1124 -0
  44. package/src/components/public/upload/uploadImg.js +8 -0
  45. package/src/main.js +0 -0
  46. package/src/views/VueMenuView.vue +143 -0
  47. package/src/views/cloudMenuView.vue +125 -0
  48. package/src/views/complex/config/complex.vue +501 -0
  49. package/src/views/complex/config/complexSetting.vue +1250 -0
  50. package/src/views/complex/rendering/complexShow.vue +16 -0
  51. package/src/views/data/dataManage.vue +560 -0
  52. package/src/views/data/sysData.vue +292 -0
  53. package/src/views/event/eventManager/vueEventDiy.vue +1184 -0
  54. package/src/views/event/eventManager/vueEventMain.vue +108 -0
  55. package/src/views/event/eventManager/vueEventSys.vue +296 -0
  56. package/src/views/event/js/apiEvent.js +22 -0
  57. package/src/views/fileLog/fileDownloadLog.vue +437 -0
  58. package/src/views/initData/initData.vue +4316 -0
  59. package/src/views/log/dblog/logdbDevelop.vue +306 -0
  60. package/src/views/log/dblog/logdbEnt.vue +331 -0
  61. package/src/views/log/dblog/logdbGov.vue +395 -0
  62. package/src/views/log/error/logError.vue +553 -0
  63. package/src/views/log/loginlog/logManageDevOrSup.vue +357 -0
  64. package/src/views/log/loginlog/logManageEnt.vue +343 -0
  65. package/src/views/log/loginlog/logManageGov.vue +328 -0
  66. package/src/views/log/sms/logSms.vue +308 -0
  67. package/src/views/menu/component/menuManageComponent.vue +2402 -0
  68. package/src/views/menu/component/menuModule.vue +449 -0
  69. package/src/views/menu/menuLocal.vue +223 -0
  70. package/src/views/menu/menuManage.vue +1135 -0
  71. package/src/views/menu/tenantMenuManage.vue +1132 -0
  72. package/src/views/menuRouter/cview/cviewShow.vue +18 -0
  73. package/src/views/menuRouter/cviewMenuRouter.vue +183 -0
  74. package/src/views/menuRouter/menuView.vue +132 -0
  75. package/src/views/menuRouter/urlMenuRouter.vue +160 -0
  76. package/src/views/org/entOrgTree.vue +1050 -0
  77. package/src/views/org/ownerMenu/ownerMenuTree.vue +269 -0
  78. package/src/views/org/safeValidate/safeValidate.vue +469 -0
  79. package/src/views/org/sysEntOrgUserDetail.vue +3390 -0
  80. package/src/views/org/sysOrgDimension.vue +832 -0
  81. package/src/views/org/sysOrgPosUserDetail.vue +1648 -0
  82. package/src/views/org/sysOrgPosUserTree.vue +1101 -0
  83. package/src/views/org/sysOrgTree.vue +864 -0
  84. package/src/views/param/sysParam.vue +987 -0
  85. package/src/views/preview/pdfViewer.vue +82 -0
  86. package/src/views/resources/js/resourcesCommon.js +137 -0
  87. package/src/views/resources/resRouter/resView.vue +161 -0
  88. package/src/views/resources/resourcesTabs.vue +82 -0
  89. package/src/views/resources/tabs/comp/pageResPreview.vue +309 -0
  90. package/src/views/resources/tabs/comp/pageResRegister.vue +1120 -0
  91. package/src/views/resources/tabs/dataResources.vue +843 -0
  92. package/src/views/resources/tabs/pageResources.vue +970 -0
  93. package/src/views/role/allowMenu.vue +148 -0
  94. package/src/views/role/authRole/authRole.vue +427 -0
  95. package/src/views/role/authRole/component/allocateSetting.vue +1056 -0
  96. package/src/views/role/authRole/component/authSetting.vue +1196 -0
  97. package/src/views/role/commonRole/commonRole.vue +677 -0
  98. package/src/views/role/commonRole/compoment/allocateRoleMenuSetting.vue +335 -0
  99. package/src/views/role/commonRole/compoment/authLinkMenuTree.vue +55 -0
  100. package/src/views/role/commonRole/compoment/authSettingNew.vue +190 -0
  101. package/src/views/role/commonRole/compoment/commonSetting.vue +1576 -0
  102. package/src/views/role/commonRole/compoment/commonSettingAdjust.vue +584 -0
  103. package/src/views/role/commonRole/compoment/commonSettingNew.vue +572 -0
  104. package/src/views/role/commonRole/compoment/roleMenuPower.vue +226 -0
  105. package/src/views/role/commonRole/compoment/roleMenuPowerSetting.vue +69 -0
  106. package/src/views/role/commonRole/compoment/roleMenuSetting.vue +365 -0
  107. package/src/views/role/commonRole/compoment/roleSourceSetting.vue +229 -0
  108. package/src/views/role/commonRole/tenantCommonRole.vue +768 -0
  109. package/src/views/role/role.vue +135 -0
  110. package/src/views/role/roleMenuOption.vue +898 -0
  111. package/src/views/role/roleSynchroRemind.vue +399 -0
  112. package/src/views/role/sysRole.vue +1525 -0
  113. package/src/views/role/viewMenuOptDetail.vue +182 -0
  114. package/src/views/sms/sendSms.vue +164 -0
  115. package/src/views/station/orgStation.vue +561 -0
  116. package/src/views/tenant/appContentManager.vue +938 -0
  117. package/src/views/tenant/appManager.vue +642 -0
  118. package/src/views/tenant/tenantRoleManager.vue +670 -0
  119. package/src/views/tenant/tenantUserManager.vue +615 -0
  120. package/src/views/threeinone/compoment/safeCascadeSelect.vue +327 -0
  121. package/src/views/threeinone/init/safeInitRegion.vue +203 -0
  122. package/src/views/threeinone/safeManager.vue +927 -0
  123. package/src/views/threeinone/safeMenuManage.vue +565 -0
  124. package/src/views/threeinone/safeOrgSpv.vue +364 -0
  125. package/src/views/threeinone/safeSpv/safeSpvLeftTree.vue +109 -0
  126. package/src/views/threeinone/safeSpv/safeSpvMain.vue +335 -0
  127. package/src/views/threeinone/safeSpvEconView.vue +569 -0
  128. package/src/views/threeinone/safeValidateRegion.vue +328 -0
  129. package/src/views/urlResource/urlResource.vue +856 -0
  130. package/src/views/user/empowerUser/empowerEntUserManage.vue +415 -0
  131. package/src/views/user/empowerUser/empowerOrgTree.vue +167 -0
  132. package/src/views/user/empowerUser/empowerUserList.vue +633 -0
  133. package/src/views/user/empowerUser/empowerUserListMenuDeatil.vue +656 -0
  134. package/src/views/user/empowerUser/empowerUserListViewMenuTree.vue +257 -0
  135. package/src/views/user/empowerUser/empowerUserManage.vue +99 -0
  136. package/src/views/user/stationUserManage.vue +934 -0
  137. package/src/views/user/userManage.vue +737 -0
  138. package/src/views/user/userMangement.vue +938 -0
  139. package/src/views/user/viewMenu/viewMenu.vue +113 -0
  140. package/src/views/versionupdatetool/versionUpdateTool.vue +225 -0
  141. package/src/views/versionupdatetool/versioninfomation/verisonInfomationManagement.vue +68 -0
@@ -0,0 +1,1056 @@
1
+ <template>
2
+ <!-- <el-tabs v-model="activeName" class="link-tabs">-->
3
+ <!-- <el-tab-pane label="可分配权限设置" name="1">-->
4
+ <el-container class="tab-contain" v-loading="loading" element-loading-text="加载中">
5
+ <el-main style="padding: 5px;box-sizing:border-box;overflow-y: hidden;">
6
+ <div class="aside-tree">
7
+ <allocate-role-menu-setting
8
+ ref="menuRef"
9
+ :role-id="currentRowObj.id"
10
+ isAllocate
11
+ :role-type="orgDims"
12
+ :check-menu-opt-power="checkMenuOptPower"
13
+ :check-menu-data-power="checkMenuDataPower"
14
+ v-if="loadRoleMenuSuccess"
15
+ @setMenuPower="setMenuPower"
16
+ @setMenuLoading="setMenuLoading"
17
+ @setCurrentMenuNode="setCurrentMenuNode">
18
+ </allocate-role-menu-setting>
19
+ </div>
20
+ <div class="opt-div-class">
21
+ <role-menu-power-setting
22
+ v-if="refreshMenuPower"
23
+ :opt-power="menuOptPower"
24
+ :data-power="menuDataPower"
25
+ :opt-power-tree="menuOptPowerTree"
26
+ :data-power-tree="menuDataPowerTree"
27
+ :check-opt-power="checkMenuOptPower"
28
+ :check-data-power="checkMenuDataPower"
29
+ :current-click-node="currentClickMenuNode"
30
+ :operation-add-obj="operationAddObj"
31
+ :operation-delete-obj="operationDeleteObj">
32
+ </role-menu-power-setting>
33
+ </div>
34
+ </el-main>
35
+ </el-container>
36
+ <!-- <el-container class="link-contain">-->
37
+ <!-- <el-header class="link-header" style="height:50px">-->
38
+ <!-- 关联菜单-->
39
+ <!-- </el-header>-->
40
+ <!-- <el-main style="padding: 5px">-->
41
+ <!-- <el-input v-model="filterLinkMenu" size="small" prefix-icon="el-icon-search" style="margin-bottom: 5px" placeholder="输入关键字过滤"></el-input>-->
42
+ <!-- <common-tree-->
43
+ <!-- :root-datas="linkMenuRootDatas" v-if="showAuthTree"-->
44
+ <!-- parent-id="menuSjbh" :default-props="defaultLinkProps" node-key="id" :filter-text="filterLinkMenu"-->
45
+ <!-- :init-check="authLinkInitCheck"-->
46
+ <!-- ref="authMenuRef" :default-expand-all=true :refresh-boolean-proper="roleSettingDialog"-->
47
+ <!-- :node-click-and-check=true-->
48
+ <!-- >-->
49
+ <!-- </common-tree>-->
50
+ <!-- </el-main>-->
51
+ <!-- </el-container>-->
52
+ <!-- </el-tab-pane>-->
53
+ <!-- </el-tabs>-->
54
+ </template>
55
+
56
+ <script>
57
+ import RoleMenuPowerSetting from "../../commonRole/compoment/roleMenuPowerSetting";
58
+ import AllocateRoleMenuSetting from "../../commonRole/compoment/allocateRoleMenuSetting";
59
+ export default {
60
+ name: "allocate-setting",
61
+ components:{AllocateRoleMenuSetting,RoleMenuPowerSetting},
62
+ 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
+ created(){
145
+ let vm = this;
146
+ vm.axios.post(vm.api.sysOrgDimension.find).then(res => {
147
+ let {data} = res;
148
+ for (let {dimSpec, id, isUse,sort} of data) {
149
+ //判断是否启用和dimSpec是否有值
150
+ if (isUse === '1' && dimSpec) {
151
+ let dimSpecObj = JSON.parse(vm.platStringUtil.replaceAll(dimSpec,"'","\"") || "{}");
152
+ if(dimSpecObj.hasOwnProperty("menuLocalName")){
153
+ vm.dimensionObj[id]=dimSpecObj["menuLocalName"];
154
+ }
155
+ vm.dimensionOrder[id] = Number(sort || "0");
156
+ vm.dimensionOrder["sys"] = 99;
157
+ }
158
+ }
159
+ vm.dimensionObj["sys"] = "系统";
160
+ //获取当前登录用户信息
161
+ this.loginUser = this.USER_GLOBAL.getLoginUser() || {};
162
+ vm.caseSup = vm.loginUser.userType == "sup";
163
+ if(vm.caseSup){
164
+ vm.loadRoleMenuSuccess = true;
165
+ }else{
166
+ vm.axios.post(vm.api.sysOrgPosUser.findNoPage,{"userId":vm.loginUser.id}).then(res => {
167
+ vm.orgTreeIds = res.data[0].orgId;
168
+ vm.orgDims = res.data[0].orgDim;
169
+ vm.loadRoleMenuSuccess = true;
170
+ });
171
+ }
172
+ vm.axios.post(vm.api.menu.find).then(function (res) {
173
+ (res.data || []).forEach(item => {
174
+ vm.allMenuObj[item.id] = item;
175
+ });
176
+ vm.loadAllowTree();
177
+ });
178
+ });
179
+ },
180
+ 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
+ loadAllowTree(){
198
+ let vm = this;
199
+ /* 初始化可分配菜单选中 */
200
+ vm.oldRoleOptAll = {};
201
+ vm.axios.post(vm.api.roleMenuOpt.find,{"roleId":vm.currentRowObj.id,"allocateMenu":"1"}).then(function (resOpt) {
202
+ resOpt.data.forEach(each=>{
203
+ if(each.optPower){
204
+ vm.oldRoleOptAll[each.menuId] = each.optPower.split(",");
205
+ }
206
+ });
207
+ });
208
+ },
209
+
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
+ /**
534
+ * 保存人员,保存关联菜单,保存可分配菜单
535
+ * @returns {Promise<void>}
536
+ */
537
+ async save(){
538
+ let orgPosUserObj = {"userList":JSON.stringify([]),"removeRoleUserIds":"",
539
+ "removeEmpowerIdUserIds":"","addEmpowerIdUserIds":""};
540
+ let linkMenuObj = {"allowAllotMenu":""};
541
+ let submitObj = Object.assign({},orgPosUserObj,linkMenuObj);
542
+ submitObj["roleId"] = this.currentRowObj.id;
543
+ submitObj["userId"] = this.loginUser.id;
544
+
545
+
546
+ let updateArr = [];//修改
547
+ let addArr = [];//新增
548
+ let removeArr = [];//删除
549
+ let menuNameArr = [];
550
+ let removeMenus = [];
551
+ let [addOperationCollect,deleteOperationCollect,insertCollect] = [{},{},{}];
552
+ let allowResult = await this.saveAllowMenu(menuNameArr,removeArr,updateArr,addArr,removeMenus);
553
+ addOperationCollect = allowResult.addOperationCollect;
554
+ deleteOperationCollect = allowResult.deleteOperationCollect;
555
+ insertCollect = allowResult.insertCollect;
556
+ // await this.saveAllowResource(menuNameArr,removeArr,updateArr,addArr,removeMenus,
557
+ // addOperationCollect,deleteOperationCollect,insertCollect);
558
+ submitObj["remark"] = JSON.stringify(menuNameArr);
559
+ submitObj["removeIds"] = removeArr.join(",");
560
+ submitObj["updateObj"] = JSON.stringify(updateArr);
561
+ submitObj["addObj"] = JSON.stringify(addArr);
562
+ submitObj["addOperationCollect"] = JSON.stringify(addOperationCollect);
563
+ submitObj["deleteOperationCollect"] = JSON.stringify(deleteOperationCollect);
564
+ submitObj["insertCollect"] = JSON.stringify(insertCollect);
565
+ submitObj["removeMenuIds"] = removeMenus.join(",");
566
+ this.axios.post(this.api.roleMenuOpt.saveAllNew,submitObj).then(res => {
567
+ this.$message({
568
+ duration: 1200,
569
+ type: "success",
570
+ message: res.data.operateMessage
571
+ });
572
+ this.loadAllowTree();
573
+ // this.$refs.menuRef && this.$refs.menuRef.getCheckedData();
574
+ // this.$refs.sourceRef && this.$refs.sourceRef.getCheckedData();
575
+ this.$emit("closeSettingDialog");
576
+ });
577
+ },
578
+ /**
579
+ * 保存用户
580
+ * @returns
581
+ */
582
+ saveOrgPosUser(){
583
+ let vm = this;
584
+ let resultArr = vm.$refs.staffSetRef.getCheckedInfo("user") || [];
585
+ let newAttachArr = []; // 当前保存的数据归属集合
586
+ let newMap = {}; // 当前保存的所有数据集合
587
+ resultArr.forEach(function (data) {
588
+ newMap[data.id] = data;
589
+ newAttachArr.push(data.id);
590
+ });
591
+ let removeIdArr = []; // 删除的数据集合
592
+ let tempAttachArr = []; // 新增的数据集合
593
+ let removeEmpowerIdUserIdArr = []; // 移除用户时需要将用户的角色关联id去除EmpowerId
594
+ for(let [key] of Object.entries(vm.userMap)){ // 移除无效的用户归属,userMap用户旧归属合集,新归属不存在则移除
595
+ if(newAttachArr.indexOf(key) == -1){
596
+ removeIdArr.push(vm.userMap[key]);
597
+ removeEmpowerIdUserIdArr.push((vm.userDataMap[key] || {})["userId"]);
598
+ }
599
+ }
600
+ let tempArr = Object.keys(vm.userMap);
601
+ for(let [key,val] of Object.entries(newMap)){ // 原归属中已存在的,但当前选择的归属中不存在,则新增
602
+ if(tempArr.indexOf(key) == -1){
603
+ tempAttachArr.push(val);
604
+ }
605
+ }
606
+ let addAttachArr = [];
607
+ let addEmpowerIdUserIdArr = []; // 添加用户时需要将用户的角色关联id加上
608
+ tempAttachArr.forEach(function (data) {
609
+ let obj = {};
610
+ // 提交只需要几个有效属性,id->userAttach
611
+ obj["userAttach"] = data["id"];
612
+ obj["roleType"] = "user";
613
+ obj["userId"] = data["userId"];
614
+ obj["roleId"] = vm.currentRowObj.id;
615
+ addEmpowerIdUserIdArr.push(data["userId"]);
616
+ addAttachArr.push(obj);
617
+ });
618
+ return {"userList":JSON.stringify(addAttachArr),"removeRoleUserIds":removeIdArr.join(","),
619
+ "removeEmpowerIdUserIds":removeEmpowerIdUserIdArr.join(","),"addEmpowerIdUserIds":addEmpowerIdUserIdArr.join(",")
620
+ };
621
+ },
622
+
623
+ /**
624
+ * 保存可分配菜单
625
+ * @returns
626
+ */
627
+ async saveAllowMenu(menuNameArr,removeArr,updateArr,addArr,removeMenus){
628
+ let vm = this;
629
+ let oldCheckMenu = vm.$refs.menuRef.oldChecked || [];
630
+ let oldCheckMenuObj = vm.$refs.menuRef.oldData || {};
631
+ let checkedArr = vm.$refs.menuRef.getCheckData() || []; // 当前菜单树勾选的数据
632
+
633
+ let updateMenuId = [];//修改id
634
+ let menuArr = [];
635
+ checkedArr.forEach(item => {
636
+ //数据
637
+ let optPower = "";
638
+ if(this.checkMenuOptPower[item.id]){
639
+ optPower = this.checkMenuOptPower[item.id].join(",");
640
+ }
641
+ let dataPower = "";
642
+ if(this.checkMenuDataPower[item.id]){
643
+ dataPower = this.checkMenuDataPower[item.id].join(",");
644
+ }
645
+ // 可分配菜单的allocateMenu皆为1
646
+ let obj = {roleId:vm.currentRowObj.id,menuId:item.id,optPower:optPower, dataPower:dataPower,type:"menu",allocateMenu:"1"};
647
+ if(vm.checkMenuOptPower[item.id]){
648
+ obj.lastOpts = vm.checkMenuOptPower[item.id];
649
+ }
650
+ if(oldCheckMenu.indexOf(item.id) > -1){//修改
651
+ obj.id = oldCheckMenuObj[item.id];
652
+ updateArr.push(obj);
653
+ updateMenuId.push(item.id);
654
+ }else if(oldCheckMenu.indexOf(item.id) == -1){//新增
655
+ addArr.push(obj);
656
+ }
657
+ });
658
+ //删除
659
+ oldCheckMenu.forEach(item => {
660
+ if(updateMenuId.indexOf(item) == -1){
661
+ removeArr.push(oldCheckMenuObj[item]);
662
+ removeMenus.push(item);
663
+ }
664
+ });
665
+ /**
666
+ * 修改权限时需要考虑到下级的同步,新增删除与修改
667
+ * 菜单移除:将下级的权限全部移除,这是强制的
668
+ * 菜单新增:提示框询问下级是否同步
669
+ * 按钮权限在菜单权限的基础上进行,只有菜单权限新增修改进行,移除不操作
670
+ * 按钮移除:下级全部移除
671
+ * 按钮新增:提示
672
+ * 这边主要通过PARENT_USER_TREE进行关联操作
673
+ */
674
+ let [addOperationCollect,deleteOperationCollect,insertCollect] = [{},{},{}];
675
+ updateArr.forEach(function (update) {
676
+ let menuId = update.menuId;
677
+ let oldOptArr = vm.oldRoleOptAll[menuId] || [];
678
+ let currentOptArr = update.lastOpts || [];
679
+ let deleteOperation = deleteOperationCollect[menuId] || "";
680
+ let addOperation = addOperationCollect[menuId] || "";
681
+ //原有现无,删除
682
+ oldOptArr.forEach(oldOpt => {
683
+ if(oldOpt && currentOptArr.indexOf(oldOpt) == -1){
684
+ deleteOperation += "," + oldOpt;
685
+ }
686
+ });
687
+ if(deleteOperation){
688
+ deleteOperationCollect[menuId] = deleteOperation;
689
+ }
690
+ //现有原无,新增
691
+ currentOptArr.forEach(currentOpt => {
692
+ if(currentOpt && oldOptArr.indexOf(currentOpt) == -1){
693
+ addOperation += "," + currentOpt;
694
+ }
695
+ });
696
+ if(addOperation){
697
+ addOperationCollect[menuId] = addOperation.substring(1);
698
+ }
699
+ });
700
+ addArr.forEach(function (add) {
701
+ let menuId = add.menuId;
702
+ insertCollect[menuId] = add.lastOpts || [];
703
+ });
704
+ menuArr.forEach(function (each) { // 更新拥有的菜单
705
+ menuNameArr.push(each["menuName"]);
706
+ });
707
+ return {addOperationCollect:addOperationCollect,deleteOperationCollect:deleteOperationCollect,insertCollect:insertCollect};
708
+
709
+ },
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
+ }
880
+ }
881
+ </script>
882
+
883
+ <style scoped>
884
+ .clearfix{
885
+ line-height: 30px;
886
+ text-align: left;
887
+ }
888
+ /*.clearfix /deep/ .el-checkbox__label{
889
+ font-size: 15px;
890
+ }
891
+ .clearfix /deep/ .el-checkbox__inner{
892
+ position: relative;
893
+ top: -1px;
894
+ left: 5px;
895
+ }*/
896
+ .role-menu-opt-card{
897
+ height: 100%;
898
+ }
899
+ .role-menu-opt-card /deep/ >.el-card__header{
900
+ padding: 0;
901
+ }
902
+ .role-menu-opt-card-card{
903
+ min-height: 50px;
904
+ text-align: center;
905
+ line-height: 50px;
906
+ }
907
+ /*.role-menu-opt-card-card /deep/ .el-checkbox__label{
908
+ color: black;
909
+ }
910
+ legend /deep/ .el-checkbox__input.is-checked+.el-checkbox__label{
911
+ color: black!important;
912
+ }*/
913
+ .tab-contain{
914
+ height: 100%;
915
+ width: 100%;
916
+ float: left;
917
+ box-sizing: border-box;
918
+ }
919
+ .aside-tree{
920
+ width:400px;
921
+ height: calc(100% - 10px);
922
+ float: left;
923
+ padding:0 5px;
924
+ box-sizing: border-box;
925
+ }
926
+ .aside-tree /deep/ .model-color span{
927
+ font-size: 16px;
928
+ }
929
+
930
+ .aside-tree /deep/ .el-tree > .el-tree-node > .el-tree-node__content{ /* 选中第一级菜单 */
931
+ background-color:#1A598A;
932
+ text-decoration: none;
933
+ border: 1px silver solid;
934
+ color:#fff;
935
+ /*text-align: center;*/
936
+ height: 35px;
937
+ }
938
+ .opt-div-class{
939
+ float: right;
940
+ width: calc(100% - 400px);
941
+ box-sizing: border-box;
942
+ height: 100%;
943
+ border: 1px solid #ebeef5;
944
+ border-radius: 4px;
945
+ padding: 10px 20px;
946
+ }
947
+ /*.opt-div-class /deep/ .el-card__body{
948
+ height: calc(100% - 30px);
949
+ overflow-y: auto;
950
+ }*/
951
+ .opt-button-class{
952
+ min-width: 80px;
953
+ float: left;
954
+ height: 20px;
955
+ line-height: 20px;
956
+ margin: 10px 10px 0 0;
957
+ border: 1px solid rgb(235, 238, 245);
958
+ padding: 5px 15px;
959
+ text-align: center;
960
+ }
961
+ .opt-button-no-class{
962
+ float: left;
963
+ height: 20px;
964
+ line-height: 20px;
965
+ margin: 10px 10px 0 0;
966
+ border: 1px solid rgb(235, 238, 245);
967
+ padding: 5px 15px;
968
+ text-align: center;
969
+ }
970
+ /*.opt-button-class /deep/ .el-checkbox{
971
+ height: 20px;
972
+ line-height: 20px;
973
+ }
974
+
975
+ .opt-button-class /deep/ .el-checkbox__label{
976
+ color: white;
977
+ }*/
978
+
979
+ fieldset{
980
+ border: 1px solid #EBEEF5;
981
+ border-radius: 5px;
982
+ height: 100%;
983
+ box-sizing: border-box;
984
+ padding-left: 20px;
985
+ }
986
+ legend{
987
+ height: 30px;
988
+ line-height: 30px;
989
+ }
990
+ .link-contain{
991
+ height: 100%;
992
+ width: 300px;
993
+ float: right;
994
+ box-sizing: border-box;
995
+ border-left: 1px solid #c2c2c2;
996
+ }
997
+ .link-header{
998
+ line-height: 25px;
999
+ border-bottom: 1px solid #c2c2c2;
1000
+ font-size: 16px;
1001
+ }
1002
+ .link-tabs /deep/ .el-tabs__item{
1003
+ font-size: 16px;
1004
+ }
1005
+
1006
+ .link-tabs /deep/ .el-tabs__nav-scroll{
1007
+ padding: 0 20px;
1008
+ }
1009
+
1010
+ .opt-button-class{
1011
+ background-color: #409EFF;
1012
+ }
1013
+
1014
+ /*.opt-div-class /deep/ .el-checkbox__input.is-checked+.el-checkbox__label{
1015
+ color: white;
1016
+ }
1017
+
1018
+ .opt-div-class /deep/ .el-checkbox, .el-checkbox-button__inner{
1019
+ color: white;
1020
+ }
1021
+
1022
+ .opt-div-class /deep/ .el-checkbox__inner{
1023
+ background-color: white;
1024
+ }
1025
+ .clearfix /deep/ .el-checkbox__input.is-checked+.el-checkbox__label{
1026
+ color: black;
1027
+ }
1028
+ .clearfix /deep/ .el-checkbox, .el-checkbox-button__inner{
1029
+ color: black;
1030
+ }
1031
+
1032
+ .opt-div-class /deep/ .el-checkbox__inner::after{
1033
+ border: 1px solid #409EFF;
1034
+ border-left: 0;
1035
+ border-top: 0;
1036
+ }*/
1037
+
1038
+ /*.link-tabs /deep/ .el-tabs__header{
1039
+ margin: 0;
1040
+ }*/
1041
+
1042
+ .tab-header,.link-header{
1043
+ line-height: 50px;
1044
+ border-bottom: 1px solid #c2c2c2;
1045
+ font-size: 16px;
1046
+ background-color: #E8F1FF;
1047
+ }
1048
+
1049
+ .comomSettiingStyle{
1050
+ height: 100%;
1051
+ width: calc(100% - 20px);
1052
+ float: left;
1053
+ box-sizing: border-box;
1054
+ padding-right: 5px
1055
+ }
1056
+ </style>