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,656 @@
1
+ <template>
2
+ <el-container style="height: 100%;">
3
+ <el-main style="height: 100%;padding: 2px 10px 10px 5px">
4
+ <pl-lazy>
5
+ <el-main ref="menuDetailRef" class="roleMenuDetailMain" :style="{'height':menuDetailDivHeight}">
6
+ <el-card shadow="never" class="role-menu-detail-card" style="height: 100%;">
7
+ <div slot="header" class="clearfix" style="background-color: #E8F1FF;">
8
+ <span><i class="el-icon-document"></i>菜单属性</span>
9
+ </div>
10
+ <el-card class="role-menu-detail-card-card" shadow="never">
11
+ <div v-if="!isShow" style="text-align: center;color: #9198a5;">无菜单属性</div>
12
+ <el-form :model="formData" v-if="isShow">
13
+ <el-row>
14
+ <el-col :span="12">
15
+ <el-form-item label="菜单名称:" :label-width="formLabelWidth">
16
+ {{formData.menuName}}
17
+ </el-form-item>
18
+ </el-col>
19
+ <el-col :span="12">
20
+ <el-form-item label="菜单类型:" :label-width="formLabelWidth">
21
+ {{menuTypeObj[formData.menuType]}}
22
+ </el-form-item>
23
+ </el-col>
24
+ </el-row>
25
+ <el-row>
26
+ <el-col :span="12" v-if="formData.menuType == 'resourcePool'">
27
+ <el-form-item label="绑定资源:" :label-width="formLabelWidth">
28
+ {{formData.bindSourceName}}
29
+ </el-form-item>
30
+ </el-col>
31
+ <el-col :span="12">
32
+ <el-form-item label="是否启用:" :label-width="formLabelWidth">
33
+ {{formData.menuIsUse == 'Y' ? '启用' : '禁用'}}
34
+ </el-form-item>
35
+ </el-col>
36
+ <el-col :span="12">
37
+ <el-form-item label="菜单图标:" :label-width="formLabelWidth">
38
+ <div style="height: 30px;width: 30px;">
39
+ <i :class="formData.menuIcon" style="font-size: 30px;"></i>
40
+ </div>
41
+ </el-form-item>
42
+ </el-col>
43
+ <el-col :span="12">
44
+ <el-form-item label="菜单颜色:" :label-width="formLabelWidth">
45
+ <div :style="'height: 30px;width: 30px;background: ' + formData.menuColor"></div>
46
+ </el-form-item>
47
+ </el-col>
48
+ <el-col :span="12">
49
+ <el-form-item label="菜单排序:" :label-width="formLabelWidth">
50
+ {{formData.menuOrder}}
51
+ </el-form-item>
52
+ </el-col>
53
+ </el-row>
54
+ <el-row>
55
+ <el-col :span="24">
56
+ <el-form-item label="菜单简介:" :label-width="formLabelWidth">
57
+ {{formData.menuBz}}
58
+ </el-form-item>
59
+ </el-col>
60
+ </el-row>
61
+ </el-form>
62
+ </el-card>
63
+ </el-card>
64
+ </el-main>
65
+ <el-main ref="menuOptRef" class="roleMenuOptMain" :style="{'padding-top':'10px','height':optDivHeight}">
66
+ <el-card class="role-menu-opt-card" shadow="never" style="height: 100%;">
67
+ <div slot="header" class="clearfix" style="background-color: #E8F1FF;">
68
+ <span><i class="el-icon-document"></i>权限信息</span>
69
+ </div>
70
+ <el-card class="role-menu-opt-card-card" style="margin-right: 10px;box-sizing: border-box;" shadow="never">
71
+ <div slot="header" class="clearfix">
72
+ <span>操作权限</span>
73
+ </div>
74
+ <div v-if="(formData.optPower || []).length == 0" style="text-align: center;color: #9198a5;">
75
+ 无操作权限
76
+ </div>
77
+ <el-tree v-else :data="formData.optPower" :props="defaultTreeProps" default-expand-all></el-tree>
78
+ </el-card>
79
+ <el-card class="role-menu-opt-card-card" shadow="never">
80
+ <div slot="header" class="clearfix">
81
+ <span>数据权限</span>
82
+ </div>
83
+ <div v-if="(formData.dataPower || []).length == 0" style="text-align: center;color: #9198a5;">
84
+ 无数据权限
85
+ </div>
86
+ <el-tree v-else :data="formData.dataPower" :props="defaultTreeProps" default-expand-all></el-tree>
87
+ </el-card>
88
+ <!--<el-card class="role-menu-opt-card-card" shadow="never">
89
+ <div v-if="((allSettingObj[formData.id] || {})['optArr'] || []).length == 0
90
+ && ((allSettingObj[formData.id] || {})['complexFieldArr'] || []).length == 0" style="text-align: center">无权限信息</div>
91
+ <div v-else style="text-align: left">
92
+ <div v-for="(item,index) in ((allSettingObj[formData.id] || {})['optArr'] || [])"
93
+ :key="index" class="opt-button-class">
94
+ <span>{{item.name}}</span>
95
+ </div>
96
+ <fieldset v-for="(item,index) in ((allSettingObj[formData.id] || {})['complexFieldArr'] || [])" :key="index" style="padding: 10px">
97
+ <legend>{{item.legendName}}</legend>
98
+ <div v-for="(fieldItem,fieldIndex) in (item['buttonArr'] || [])" :key="fieldIndex" class="opt-button-class">
99
+ {{fieldItem['buttonName']}}
100
+ </div>
101
+ <div v-show="(item['buttonArr'] || []).length == 0" style="text-align: center">无操作权限</div>
102
+ </fieldset>
103
+ </div>
104
+ </el-card>-->
105
+
106
+ </el-card>
107
+ </el-main>
108
+ </pl-lazy>
109
+ </el-main>
110
+ </el-container>
111
+ </template>
112
+
113
+ <script>
114
+ const groupBy = (arr, func) =>
115
+ arr.map(typeof func === 'function' ? func : val => val[func]).reduce((acc, val, i) => {
116
+ acc[val] = (acc[val] || []).concat(arr[i]);
117
+ return acc;
118
+ }, {});
119
+ export default {
120
+ name:"emopwer-user-view-menu-detail",
121
+ props:{
122
+ formData:{type:Object,default:function () {return {};}},//菜单数据
123
+ menuModelObj:{type:Object,default:function () {return {};}},//菜单模块
124
+ dataDictionaryObj:{type:Object,default:function () {return {};}},//数据字典
125
+ currentRoleOptAll:{type:Object,default:function () {return {};}},// 当前角色设置的所有roleMenuOpt
126
+ menuOptAll:{type:Object,default:function () {return {};}},// 初始化获取的所有当前用户的opt
127
+ refreshBooleanProper:{type:Boolean,default:false},//是否刷新
128
+ },
129
+ data(){
130
+ return{
131
+ formLabelWidth:"130px",
132
+ menuTypeObj: {
133
+ 'pMenu': '父菜单',
134
+ 'resourcePool': '资源池'
135
+ },
136
+ menuTypeFormItemLabel:"",
137
+ colResult:"",
138
+ menuConditionObj:{},
139
+ menuShowTypeObj:{'列表视图':'列表视图','列表&树视图':'列表&树视图'},
140
+ rSourceTypeObj:{"form":"自定义表单","singleForm":"自定义单表表单","flow":"工作流","cview":"复合视图","sysFea":"自定义功能",
141
+ "sysFun":"系统功能","url":"url链接","statRep":"统计报表"},
142
+ defaultTreeProps:{
143
+ children: 'children',
144
+ label: 'powerName',
145
+ id:'id'
146
+ },
147
+ defaultSelectDicObj:{},
148
+ workFlowNodeObj:{},
149
+ defaultMenuIcon: '',
150
+ menuRealOpenObj:{'Y':'是','N':'否'},
151
+
152
+ allDataPower:false, // 全选按钮
153
+ allSettingObj:{}, // 收集当前所有处理过的配置
154
+ allOptData:false, // 全选按钮
155
+ loginUser:{},
156
+ operateNameMap:{}, // 按钮code与名称的对应关系
157
+ operateAll:"", // 所有的操作代碼
158
+ optArr:[],
159
+ complexFieldArr:[],
160
+
161
+
162
+ sysFunctionAddressMap:{},
163
+ sysFeatureMenuTypeOptObj:{},
164
+ customFunctionAddressMap:{},
165
+ customFunctionMenuObj:{},
166
+ optDivHeight:'50%',
167
+ menuDetailDivHeight:'50%',
168
+ isShow:false,
169
+ paramSetting:{"id":"id","pId":"parentId","children":"children"},
170
+ }
171
+ },
172
+ created(){
173
+ this.getBindSource();
174
+ this.getData();
175
+ this.initSysFeatureMenuTypeObj();
176
+ this.initCustomFunctionMenuObj();
177
+ },
178
+ mounted(){
179
+ },
180
+ watch: {
181
+ 'formData.menuType'() {
182
+ this.setColName();
183
+ },
184
+ 'formData.id'(){
185
+ this.getBindSource();
186
+ },
187
+ refreshBooleanProper(){
188
+ if(this.refreshBooleanProper){
189
+ this.colResult = "";
190
+ this.menuDetailDivHeight = '50%';
191
+ this.optDivHeight = '50%';
192
+ this.isShow = false;
193
+ }
194
+ }
195
+ },
196
+ methods:{
197
+ getBindSource(){
198
+ if(this.formData.bindSource){
199
+ let bindSource = JSON.parse(this.formData.bindSource);
200
+ let id = bindSource[bindSource.length - 1];
201
+ this.axios.post(this.api.resources.getById,{id:id}).then(res =>{
202
+ if(res && res.data){
203
+ let name = this.rSourceTypeObj[res.data.rsource] + "/" + res.data.rclass + "/" + res.data.rname;
204
+ this.$set(this.formData,"bindSourceName",name);
205
+ }
206
+ });
207
+ }
208
+ if(this.formData.optAllPower){
209
+ let optPowerTree = this.COMMON_FUNC.buildElTree(this.formData.optAllPower || [],this.paramSetting);
210
+ this.$set(this.formData,"optPower",optPowerTree);
211
+ }
212
+ if(this.formData.dataAllPower){
213
+ let dataPowerTree = this.COMMON_FUNC.buildElTree(this.formData.dataAllPower || [],this.paramSetting);
214
+ this.$set(this.formData,"dataPower",dataPowerTree);
215
+ }
216
+ },
217
+ setColName(){
218
+ let vm = this;
219
+ vm.$set(vm.formData, 'menuRelUrl', '');
220
+ let menuType = vm.formData.menuType;
221
+ if(menuType == "系统功能"){
222
+ vm.menuTypeFormItemLabel = menuType;
223
+ vm.colResult = vm.sysFeatureMenuTypeOptObj[vm.formData.menuXtgn];
224
+ }else if(menuType ==='自定义表单'){
225
+ vm.menuTypeFormItemLabel = '表单名称:';
226
+ vm.colResult = vm.formData.menuForm;
227
+ }else if(menuType ==='数据字典'){
228
+ vm.menuTypeFormItemLabel = '表单名称:';
229
+ vm.colResult = vm.formData.menuForm;
230
+ }else if(menuType ==='自定义单表表单'){
231
+ vm.menuTypeFormItemLabel = '关联表单视图:';
232
+ vm.colResult = vm.formData.menuForm;
233
+ }else if(menuType === "工作流"){
234
+ vm.menuTypeFormItemLabel = '流程选择:';
235
+ vm.colResult = vm.formData.menuGzl;
236
+ }else if(menuType === "统计报表"){
237
+ vm.menuTypeFormItemLabel = menuType + ":";
238
+ vm.colResult = vm.formData.menuGzl;
239
+ }else if(menuType === "复合视图"){
240
+ vm.menuTypeFormItemLabel = menuType + ":";
241
+ vm.colResult = vm.formData.menuGzl;
242
+ }else if(menuType === "自定义功能菜单"){
243
+ vm.menuTypeFormItemLabel = menuType + ":";
244
+ vm.colResult = vm.customFunctionMenuObj[vm.formData.menuZdygncd];
245
+ }else if(menuType === "url链接"){
246
+ vm.menuTypeFormItemLabel = menuType + ":";
247
+ vm.colResult = vm.formData.menuUrl;
248
+ }
249
+ },
250
+
251
+ initConditionObj(data){
252
+ let vm = this;
253
+ let menuViewId = data.menuViewId;
254
+ if(menuViewId){
255
+ vm.axios.post('/formConditionController/find', {
256
+ 'viewId': menuViewId
257
+ }).then(res => {
258
+ vm.menuConditionObj = {};
259
+ for (let item of res.data) {
260
+ vm.menuConditionObj[item.id] = item.condintionName;
261
+ }
262
+ vm.$set(vm.menuConditionObj, '$', '');
263
+ });
264
+ }
265
+
266
+ },
267
+
268
+ initDefaultSelectDicObj(data) {
269
+ let vm = this;
270
+ let typeId = vm.dataDictionaryObj[data.menuGzl];
271
+ if(typeId){
272
+ this.axios.post(this.api.data.find, {
273
+ 'typeId': typeId
274
+ }).then(res => {
275
+ res.data.forEach(item => {
276
+ vm.defaultSelectDicObj[item.id] = item.dataName;
277
+ });
278
+ vm.$set(vm.menuConditionObj, '$', '');
279
+ });
280
+ }
281
+
282
+ },
283
+
284
+ initWorkFlowNodeObj(data){
285
+ let vm = this;
286
+ vm.workFlowNodeObj = {};
287
+ let menuGzlId = data.menuGzlId;
288
+ if(menuGzlId){
289
+ vm.axios.post('/flowDefineNodeController/find', {
290
+ 'sort': 'NODE_TYPE_EXTEND',
291
+ 'flowId': menuGzlId
292
+ }).then(res => {
293
+ res.data.forEach(item => {
294
+ vm.workFlowNodeObj[item.id] = item.nodeName;
295
+ });
296
+ vm.$set(vm.workFlowNodeObj, '$', '');
297
+ });
298
+ }
299
+ },
300
+
301
+ operateSetting(data){ // 操作权限设置
302
+ let vm = this;
303
+ vm.allSettingObj = {};
304
+ vm.optArr = [];
305
+ let collectObj = [];
306
+ let settingObj = vm.allSettingObj[data.id] || vm.currentRoleOptAll[data.id] || {}; // 当前的数据配置
307
+ let currentOpt = vm.menuOptAll[data.id]; // 当前菜单的opt
308
+ let alReadySet = "";
309
+ if(settingObj["enableOperation"] && settingObj["enableOperation"] != "false"){
310
+ collectObj["enableOperation"] = true;
311
+ collectObj["operation"] = settingObj["operation"] || "";
312
+ alReadySet = settingObj["operation"] || "";
313
+ }
314
+ let checkedArr = alReadySet ? alReadySet.split(","):[];
315
+ let menuType = data.menuType;
316
+ switch (menuType) {
317
+ case "系统功能":
318
+ case "自定义功能菜单":
319
+ let belong = "";
320
+ if(data.menuType == "系统功能"){
321
+ belong = data.menuXtgn;
322
+ }else{
323
+ belong = data.menuZdygncd;
324
+ }
325
+ vm.axios.post(vm.api.menuOpt.find,{"sscdid":belong}).then(function (res) {
326
+ res.data.forEach(function (opt) {
327
+ let obj = {};
328
+ let value = opt["czbm"];
329
+ if(opt.czbm == "diy"){
330
+ value = opt["czbm"] + "_" + opt["czlx"];
331
+ }
332
+ if(!(currentOpt && currentOpt.indexOf(value) == -1) && (checkedArr.indexOf(value))> -1){
333
+ obj["value"] = value;
334
+ obj["name"] = opt["czlx"];
335
+ obj["checked"] = (checkedArr.indexOf(value))> -1;
336
+ vm.optArr.push(obj);
337
+ }
338
+ collectObj["optArr"] = vm.optArr;
339
+ });
340
+ if(res.data.length == 0){ // 没有操作数据设置按钮禁用
341
+ vm.openOptDataDisable = true;
342
+ collectObj["openOptDataDisable"] = true;
343
+ }
344
+ vm.$forceUpdate();
345
+ });
346
+ break;
347
+ case "自定义单表表单":
348
+ if(currentOpt){
349
+ if(currentOpt.indexOf("view") > -1){
350
+ vm.optArr.push({"name":"仅查看","value":"view","checked":(checkedArr.indexOf("view"))> -1});
351
+ }
352
+ if(currentOpt.indexOf("update") > -1){
353
+ vm.optArr.push({"name":"可修改查看","value":"update","checked":(checkedArr.indexOf("update"))> -1});
354
+ }
355
+ }else{
356
+ vm.optArr.push({"name":"仅查看","value":"view","checked":(checkedArr.indexOf("view"))> -1});
357
+ vm.optArr.push({"name":"可修改查看","value":"update","checked":(checkedArr.indexOf("update"))> -1});
358
+ }
359
+ collectObj["optArr"] = vm.optArr;
360
+ break;
361
+ case "自定义表单":
362
+ vm.axios.post("/formbuttonController/find",{"viewId":data.menuViewId}).then(function (res) {
363
+ res.data.forEach(function (button) {
364
+ let obj = {};
365
+ let value = vm.operateNameMap[button.buttonType];
366
+ if(vm.operateNameMap[button.buttonType] == "diy"){
367
+ value = vm.operateNameMap[button.buttonType] + "_" + button.buttonName;
368
+ }
369
+ if(!(currentOpt && currentOpt.indexOf(value) == -1) && (checkedArr.indexOf(value))> -1){ // 如果权限里当前值不存在则跳过
370
+ obj["value"] = value;
371
+ obj["name"] = button.buttonName;
372
+ obj["checked"] = (checkedArr.indexOf(value))> -1;
373
+ vm.optArr.push(obj);
374
+ }
375
+ collectObj["optArr"] = vm.optArr;
376
+ });
377
+ if(res.data.length == 0){
378
+ vm.openOptDataDisable = true;
379
+ collectObj["openOptDataDisable"] = true;
380
+ }
381
+ vm.$forceUpdate();
382
+ });
383
+ break;
384
+ case "复合视图":
385
+ vm.complexFieldArr = [];
386
+ let complexId = data.menuGzlId;
387
+ vm.axios.post(vm.api.complextab.findAllLinkData,{'viewId': complexId, 'sort': 'sort', 'order': '0'}).then(function (res) {
388
+ let result = res.data;
389
+ result.forEach(function (data) {
390
+ let complexTab = data.complexTab;
391
+ let value = "complexTab:" + complexTab.id;
392
+ if(!(currentOpt && currentOpt.indexOf(value) == -1)){
393
+ let obj = {};
394
+ let buttonArr = [];
395
+ let urlType = complexTab.urlType;
396
+ let linkData = data.linkData;
397
+ let lengendValue = "complexTab:"+complexTab.id;
398
+ obj["legendName"] = complexTab.tabName;
399
+ obj["legendValue"] = lengendValue;
400
+ obj["legendChecked"] = checkedArr.indexOf(lengendValue) > -1 ;
401
+ // 下面两个if可以合并为一个forEach,但是为了代码易读性暂不合并
402
+ if(urlType == "自定义表单"){
403
+ linkData.forEach(function (each) {
404
+ let optValue = "complex:" + complexTab.id + ":" + vm.operateNameMap[each["buttonType"]];
405
+ if(vm.operateNameMap[each["buttonType"]] == "diy"){
406
+ optValue += "_" + each["buttonName"];
407
+ }
408
+ if(!(currentOpt && currentOpt.indexOf(optValue) == -1) && (checkedArr.indexOf(optValue))> -1){
409
+ let buttonObj = {};
410
+ buttonObj["checked"] = checkedArr.indexOf(optValue) > -1;
411
+ buttonObj["value"] = optValue;
412
+ buttonObj["buttonName"] = each["buttonName"];
413
+ buttonArr.push(buttonObj);
414
+ }
415
+ })
416
+
417
+ }
418
+ if(urlType == "系统功能" || urlType =="自定义功能"){
419
+ linkData.forEach(function (each) {
420
+ let optValue = "complex:" + complexTab.id + ":" + each["czbm"];
421
+ if(!(currentOpt && currentOpt.indexOf(optValue) == -1) && (checkedArr.indexOf(optValue))> -1){
422
+ let buttonObj = {};
423
+ buttonObj["checked"] = checkedArr.indexOf(optValue) > -1;
424
+ buttonObj["value"] = optValue;
425
+ buttonObj["buttonName"] = each["czlx"];
426
+ buttonArr.push(buttonObj);
427
+ }
428
+ })
429
+ }
430
+ obj["buttonArr"] = buttonArr;
431
+ vm.complexFieldArr.push(obj);
432
+ collectObj["complexFieldArr"] = vm.complexFieldArr;
433
+ }
434
+ });
435
+ vm.$forceUpdate();
436
+ });
437
+ break;
438
+ // case "统计报表": // 统计报表未做逻辑,咱不处理,设为禁用
439
+ // break;
440
+ default:
441
+ vm.openOptDataDisable = true;
442
+ collectObj["openOptDataDisable"] = true;
443
+ }
444
+
445
+ vm.allSettingObj[data.id] = collectObj;
446
+ },
447
+
448
+ getData() { // 元数据中操作权限对应的中文
449
+ let vm = this;
450
+ let operateArr = [];
451
+ vm.axios.post(vm.api.data.findToArray, {'typeId': 'c2a9831b1d464862b35a64b522be064c'}).then(function (res) {
452
+ res.data.forEach(function (data) {
453
+ vm.operateNameMap[data["dataName"]] = data["dataCode"];
454
+ operateArr.push(data["dataCode"]);
455
+ });
456
+ vm.operateAll = operateArr.join(",");
457
+ });
458
+ },
459
+
460
+ initSysFeatureMenuTypeObj() {
461
+ let vm = this;
462
+ // vm.axios.post(vm.api.sysFunction.find, {
463
+ // 'sort': 'gnlb,sx',
464
+ // 'ifcustomizemenu': 'no'
465
+ // }).then(res => {
466
+ // let data = res.data;
467
+ // if(data){
468
+ // data.forEach(item => {
469
+ // vm.sysFunctionAddressMap[item.id] = item.ljdz;
470
+ // });
471
+ // let groupData = groupBy(data, 'gnlb');
472
+ // Object.keys(groupData).forEach(key => {
473
+ // let item = groupData[key];
474
+ // for (let i = 0; i < item.length; i++) {
475
+ // vm.sysFeatureMenuTypeOptObj[item[i].id] = item[i].gnmc;
476
+ // }
477
+ // });
478
+ // }
479
+ //
480
+ // })
481
+ },
482
+ //初始化自定义功能菜单下拉框
483
+ initCustomFunctionMenuObj() {
484
+ // let vm = this;
485
+ // vm.axios.post(vm.api.sysFunction.find, {
486
+ // 'sort': 'gnlb,sx',
487
+ // 'ifcustomizemenu': 'yes'
488
+ // }).then(res => {
489
+ // //分组结构
490
+ // let data = res.data;
491
+ // if(data){
492
+ // data.forEach(item => {
493
+ // vm.customFunctionAddressMap[item.id] = item.ljdz;
494
+ // });
495
+ // let groupData = groupBy(data, 'gnlb');
496
+ // Object.keys(groupData).forEach(key => {
497
+ // let item = groupData[key];
498
+ // for (let i = 0; i < item.length; i++) {
499
+ // vm.customFunctionMenuObj[item[i].id] = item[i].gnmc;
500
+ // }
501
+ // });
502
+ // }
503
+ // })
504
+ },
505
+
506
+ countMneuOptDivHeight(){
507
+ let vm = this;
508
+ vm.isShow = true;
509
+ vm.menuDetailDivHeight = "auto";
510
+ vm.$nextTick(function () {
511
+ let height = vm.$refs.menuDetailRef.$el.clientHeight + 20;
512
+ vm.optDivHeight = "calc(100% - " + height + "px)";
513
+ });
514
+ },
515
+ }
516
+ }
517
+ </script>
518
+
519
+
520
+ <style scoped lang="scss">
521
+ .roleMenuDetailMain /deep/ .el-card__header{
522
+ background-color: white;
523
+ color:black;
524
+ height: 40px;
525
+ line-height: 40px;
526
+ padding: 5px;
527
+ font-size: 16px;
528
+ box-sizing: border-box;
529
+ border: 0;
530
+ }
531
+ .roleMenuDetailMain /deep/ .el-card__body{
532
+ padding: 0;
533
+ min-height: 50px;
534
+ }
535
+ .roleMenuDetailMain /deep/ .el-card{
536
+ padding: 5px;
537
+ box-sizing: border-box;
538
+ min-height: 50px;
539
+ }
540
+ .roleMenuDetailMain /deep/ .role-menu-detail-card-card{
541
+ height: 100%;
542
+ min-height: 50px;
543
+ line-height: 50px;
544
+ }
545
+ .roleMenuDetailMain{
546
+ padding: 0 10px;
547
+ box-sizing: border-box;
548
+ }
549
+
550
+ .role-menu-detail-card-card /deep/ .el-checkbox__label{
551
+ padding-left: 5px;
552
+ }
553
+
554
+ .role-menu-detail-card-card /deep/ .el-form-item{
555
+ margin-bottom: 10px;
556
+ }
557
+
558
+ .roleMenuOptMain /deep/ .el-card__header{
559
+ background-color: white;
560
+ color:black;
561
+ height: 40px;
562
+ line-height: 40px;
563
+ padding: 5px;
564
+ font-size: 16px;
565
+ box-sizing: border-box;
566
+ border: 0;
567
+ }
568
+ .roleMenuOptMain /deep/ .el-card__body{
569
+ padding: 0;
570
+ min-height: 50px;
571
+ }
572
+ .roleMenuOptMain /deep/ .el-card{
573
+ padding: 5px;
574
+ box-sizing: border-box;
575
+ min-height: 50px;
576
+ }
577
+ .roleMenuOptMain /deep/ .role-menu-opt-card-card {
578
+ min-height: 50px;
579
+ text-align: center;
580
+ line-height: 50px;
581
+ height: 100%;
582
+ width: calc(100%/2 - 5px);
583
+ float: left;
584
+ /*overflow-y: auto;*/
585
+ }
586
+ .roleMenuOptMain{
587
+ padding: 0 10px;
588
+ box-sizing: border-box;
589
+ }
590
+ .role-menu-opt-card /deep/ .el-card__body{
591
+ height: calc(100% - 40px);
592
+ }
593
+ .role-menu-opt-card-card /deep/ .el-card__header{
594
+ font-size: 14px;
595
+ border-bottom: 1px solid #EBEEF5;
596
+ height: 30px;
597
+ line-height: 30px;
598
+
599
+ /deep/ .clearfix {
600
+ text-align: center;
601
+ line-height: 15px;
602
+ }
603
+ }
604
+ .role-menu-opt-card-card /deep/ .el-card__body{
605
+ height: calc(100% - 30px);
606
+ overflow-y: auto;
607
+ }
608
+
609
+ .role-menu-opt-card-card {
610
+ /deep/ {
611
+ ::-webkit-scrollbar {
612
+ width: 0;
613
+ }
614
+ ::-webkit-scrollbar-track {
615
+ background: none;
616
+ }
617
+ }
618
+ }
619
+
620
+ .role-menu-detail-card /deep/ .el-card__body{
621
+ height: calc(100% - 40px);
622
+ }
623
+ fieldset{
624
+ border: 1px solid #EBEEF5;
625
+ border-radius: 5px;
626
+ height: 100%;
627
+ box-sizing: border-box;
628
+ padding-left: 20px;
629
+ }
630
+ legend{
631
+ height: 30px;
632
+ line-height: 30px;
633
+ }
634
+ .role-menu-opt-card-card /deep/ .el-checkbox__label{
635
+ padding-left: 5px;
636
+ }
637
+ .clearfix{
638
+ line-height: 25px;
639
+ text-align: left;
640
+ }
641
+
642
+ .opt-button-class{
643
+ width: 80px;
644
+ float: left;
645
+ height: 20px;
646
+ line-height: 20px;
647
+ margin-right: 10px;
648
+ border: 1px solid rgb(235, 238, 245);
649
+ padding: 5px 15px;
650
+ text-align: center;
651
+ }
652
+ .opt-button-class /deep/ .el-checkbox{
653
+ height: 20px;
654
+ line-height: 20px;
655
+ }
656
+ </style>