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,399 @@
1
+ <template>
2
+ <el-container style="width: 600px;height: 500px;" v-loading="loading" element-loading-text="加载中">
3
+ <el-main style="height: 100%;width: 100%;padding: 0 10px 0 10px;" class="role-remind-main">
4
+ <el-card class="role-remind-card" v-if="isShow" style="height: calc(100% - 10px);width: 100%;">
5
+ <el-table :data="dataArr" ref="remindTableRef" style="width: 100%;" border height="calc(100% - 10px)">
6
+ <el-table-column label="新增权限" show-overflow-tooltip>
7
+ <template slot-scope="scope">
8
+ <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">菜单:{{scope.row.menuName}}</div>
9
+ <el-select v-if="scope.row.bindSourceType != 'cview' && scope.row.optDataArr"
10
+ v-model="synOptObj[scope.row.menuId]" size="small" multiple>
11
+ <el-option v-for="(item,optIndex) in scope.row.optDataArr" :key="optIndex"
12
+ :label="item.powerName" :value="item.id"></el-option>
13
+ </el-select>
14
+ <tree-select v-if="scope.row.bindSourceType == 'cview' && scope.row.optDataArr" value-consists-of="ALL" append-to-body
15
+ v-model="synOptObj[scope.row.menuId]" multiple :disable-branch-nodes="true" :show-count="true"
16
+ :options="scope.row.optDataArr" placeholder="请选择" style="width: 100%;"/>
17
+ </template>
18
+ </el-table-column>
19
+ <el-table-column label="是否同步/需同步权限的角色" width="220" class-name="switch-column">
20
+ <template slot-scope="scope">
21
+ <el-switch v-model="synchroObj[scope.row.menuId]"
22
+ @change="switchChange(scope.row)" style="transform: rotate(90deg);"></el-switch>
23
+ <el-select v-if="synchroObj[scope.row.menuId]" v-model="synRoleObj[scope.row.menuId]" size="small" style="width:165px;"
24
+ multiple>
25
+ <el-option-group v-for="group in roleArr" :key="group.label" :label="group.label">
26
+ <el-option
27
+ v-for="item in group.options"
28
+ :key="item.value"
29
+ :label="item.label"
30
+ :value="item.value">
31
+ </el-option>
32
+ </el-option-group>
33
+ </el-select>
34
+ </template>
35
+ </el-table-column>
36
+ <el-table-column label="操作" align="center" width="120">
37
+ <template slot-scope="scope">
38
+ <el-button size="small" :type="synchroObj[scope.row.menuId]?'primary':'info'"
39
+ :disabled="synchroObj[scope.row.menuId]?false:true" @click="execute(scope.row)">
40
+ 执行
41
+ </el-button>
42
+ <el-button type="text" @click="ignore(scope.row)">忽略</el-button>
43
+ </template>
44
+ </el-table-column>
45
+ </el-table>
46
+
47
+ <el-row style="height: 40px;margin-top: 5px;">
48
+ <el-button class="all-do-button" size="small" :type="isSyn?'primary' : 'info'"
49
+ :disabled="isSyn?false:true" @click="executeAll()">全部执行</el-button>
50
+ </el-row>
51
+
52
+ </el-card>
53
+ </el-main>
54
+ </el-container>
55
+ </template>
56
+
57
+ <script>
58
+ export default {
59
+ name: "role-synchro-remind",
60
+ data(){
61
+ return {
62
+ crud: new this.CrudUtil({
63
+ vue: this,
64
+ entityName: "roleRemind",
65
+ url: this.api.roleRemind.url,
66
+ searchUrl:this.api.roleRemind.findByUserId,
67
+ searchForm: {userId:this.userId},
68
+ noClearSearchColumns: ["userId"],
69
+ initNoSearch: true
70
+ }),
71
+
72
+ dataArr:[],
73
+ dataObj:{},
74
+
75
+ isShow:false,
76
+ userId:"",
77
+ roleArr:[],
78
+
79
+ synOptObj:{},//要同步的操作权限
80
+ synchroObj:{},//是否同步集合
81
+ synRoleObj:{},//需同步的权限集合
82
+ needSynMenuObj:{},//需同步的菜单数据
83
+ isSyn:false,
84
+ loading:false,
85
+ showOptArr:[],
86
+ loginUser:{},
87
+ defaultProps:{children: 'children', label: 'label',id:'id'},
88
+ }
89
+ },
90
+ created(){
91
+ this.getUserId();
92
+ },
93
+ methods:{
94
+ getUserId(){
95
+ this.loginUser = this.USER_GLOBAL.getLoginUser();
96
+ this.userId = this.loginUser.id;
97
+ this.getRoleArr();
98
+ this.getData();
99
+ },
100
+
101
+ async getData(){
102
+ this.isShow = false;
103
+ let res = await this.axios.post(this.api.roleRemind.findByUserId,{userId:this.userId});
104
+ if(res && res.data){
105
+ this.dataArr = res.data || [];
106
+ this.dataArr.forEach(item => {
107
+ //绑定资源类型
108
+ if(item.bindSource){
109
+ item.bindSourceType = JSON.parse(item.bindSource)[0];
110
+ }
111
+ if(item.allPower && item.allPower.length > 0){
112
+ let paramSetting = {id:"id",pId:"parentId",children:"children"};
113
+ (item.allPower || []).forEach(power => {
114
+ power.label = power.powerName;
115
+ });
116
+ item.optDataArr = this.COMMON_FUNC.buildElTree(item.allPower,paramSetting);
117
+ }
118
+ });
119
+ this.isShow = true;
120
+ }
121
+ },
122
+
123
+
124
+ getRoleArr(){
125
+ let vm = this;
126
+ vm.axios.post(vm.api.role.find,{created:vm.userId}).then(res => {
127
+ let roleArr = [];
128
+ let empowerRoleOpArr = [];
129
+ let normalRoleOpArr = [];
130
+ res.data.forEach(item => {
131
+ let obj = {};
132
+ if(item.roleType == "empower"){
133
+ obj.value = item.id + ":empower";
134
+ obj.label = item.roleName;
135
+ empowerRoleOpArr.push(obj);
136
+ }else{
137
+ obj.value = item.id + ":normal";
138
+ obj.label = item.roleName;
139
+ normalRoleOpArr.push(obj);
140
+ }
141
+ });
142
+ let empowerRoleObj = {label:"授权角色",options:empowerRoleOpArr};
143
+ let normalRoleObj = {label:"普通角色",options:normalRoleOpArr};
144
+ roleArr.push(empowerRoleObj);
145
+ roleArr.push(normalRoleObj);
146
+ vm.roleArr = roleArr;
147
+ });
148
+ },
149
+
150
+ dealData(dataArr){
151
+ (dataArr || []).forEach(item => {
152
+ if(item.childrens && item.childrens.length > 0){
153
+ this.dealData(item)
154
+ }else{
155
+ this.showOptArr.push(item);
156
+ }
157
+ });
158
+ },
159
+
160
+ /**
161
+ * 记录需同步的菜单数据
162
+ */
163
+ switchChange(data){
164
+ let vm = this;
165
+ if (vm.synchroObj[data.menuId]){
166
+ vm.needSynMenuObj[data.menuId] = data;
167
+ } else{
168
+ vm.needSynMenuObj[data.menuId] && delete vm.needSynMenuObj[data.menuId];
169
+ }
170
+ if(Object.keys(vm.needSynMenuObj).length > 0){
171
+ vm.isSyn = true;
172
+ }else{
173
+ vm.isSyn = false;
174
+ }
175
+ },
176
+
177
+ /**
178
+ * 忽略
179
+ */
180
+ ignore(data){
181
+ let vm = this;
182
+ vm.$confirm("忽略后该菜单已有的操作权限无法再同步,确认忽略吗?", '提示', {
183
+ confirmButtonText: '确定',
184
+ cancelButtonText: '取消',
185
+ }).then(function () {
186
+ vm.axios.post(vm.api.roleRemind.update,{id:data.id,status:0}).then(res => {
187
+ vm.$message({
188
+ type: "success",
189
+ message: "忽略成功!"
190
+ });
191
+ vm.getData();
192
+ });
193
+ });
194
+ },
195
+
196
+ /**
197
+ * 刷新数据
198
+ */
199
+ searchTip(){
200
+ let vm = this;
201
+ vm.loading = true;
202
+ vm.getData();
203
+ vm.synOptObj = {};
204
+ vm.synchroObj = {};
205
+ vm.synRoleObj = {};
206
+ vm.needSynMenuObj = {};
207
+ vm.loading = false;
208
+ },
209
+
210
+ /**
211
+ * 执行
212
+ */
213
+ execute(data){
214
+ let vm = this;
215
+ vm.$confirm("确定执行吗?", '提示', {
216
+ confirmButtonText: '确定',
217
+ cancelButtonText: '取消',
218
+ }).then(function () {
219
+ let dataObj = vm.arrangeData(data.menuId);
220
+ if(!dataObj.normalRoleIds && !dataObj.empowerRoleIds){
221
+ vm.$message({
222
+ duration: 3000,
223
+ type: "warning",
224
+ message: "请选择需同步权限的角色!"
225
+ });
226
+ return;
227
+ }
228
+ dataObj.menuPath = data.menuPath;
229
+ dataObj.menuName = data.menuName;
230
+ let dataArr = [];
231
+ dataArr.push(dataObj);
232
+ vm.axios.post(vm.api.roleRemind.executeRemind,
233
+ {data:JSON.stringify(dataArr),userId:vm.loginUser.id}).then(res => {
234
+ vm.synOptObj[data.menuId] = null;
235
+ vm.synchroObj[data.menuId] = false;
236
+ vm.synRoleObj[data.menuId] = [];
237
+ vm.switchChange(data);
238
+ vm.$message({
239
+ duration: 1000,
240
+ type: "success",
241
+ message: "同步成功!"
242
+ });
243
+ vm.getData();
244
+ });
245
+ });
246
+ },
247
+
248
+ /**
249
+ * 全部执行
250
+ */
251
+ executeAll(){
252
+ let vm = this;
253
+ vm.$confirm("若未选择需同步权限的角色则不同步,确定执行吗?", '提示', {
254
+ confirmButtonText: '确定',
255
+ cancelButtonText: '取消',
256
+ }).then(function () {
257
+ let dataArr = [];
258
+ for(let [key,data] of Object.entries(vm.needSynMenuObj)){
259
+ let dataObj = vm.arrangeData(key);
260
+ dataObj.menuPath = data.menuPath;
261
+ dataObj.menuName = data.menuName;
262
+ dataArr.push(dataObj);
263
+ }
264
+ vm.axios.post(vm.api.roleRemind.executeRemind,
265
+ {data:JSON.stringify(dataArr),userId:vm.loginUser.id}).then(res => {
266
+ vm.synOptObj = {};
267
+ vm.synchroObj = {};
268
+ vm.synRoleObj = {};
269
+ vm.needSynMenuObj = {};
270
+ vm.isSyn = false;
271
+ vm.$message({
272
+ duration: 1000,
273
+ type: "success",
274
+ message: "同步成功!"
275
+ });
276
+ vm.getData();
277
+ });
278
+ });
279
+ },
280
+
281
+ /**
282
+ * 整理数据格式
283
+ * @param menuId
284
+ */
285
+ arrangeData(menuId){
286
+ let vm = this;
287
+ let dataObj = {};
288
+
289
+ //操作权限
290
+ let opts = "";
291
+ if(vm.synOptObj[menuId]){
292
+ opts = vm.synOptObj[menuId].join(",");
293
+ }
294
+ //角色权限
295
+ let empowerRoleIds = "";
296
+ let normalRoleIds = "";
297
+ let roleIdArr = vm.synRoleObj[menuId] || [];
298
+ roleIdArr.forEach(item => {
299
+ if(item.split(":")[1] == "empower"){
300
+ empowerRoleIds += "," + item.split(":")[0];
301
+ }else{
302
+ normalRoleIds += "," + item.split(":")[0];
303
+ }
304
+ });
305
+ if(empowerRoleIds){
306
+ empowerRoleIds = empowerRoleIds.substring(1);
307
+ }
308
+ if(normalRoleIds){
309
+ normalRoleIds = normalRoleIds.substring(1);
310
+ }
311
+
312
+ dataObj.opts = opts;
313
+ dataObj.menuId = menuId;
314
+ dataObj.normalRoleIds = normalRoleIds;
315
+ dataObj.empowerRoleIds = empowerRoleIds;
316
+
317
+ return dataObj;
318
+ }
319
+
320
+
321
+ }
322
+ }
323
+ </script>
324
+
325
+
326
+ <style scoped rel="stylesheet/scss" lang="scss">
327
+ .role-remind-main{
328
+
329
+ /* 滚动条宽度 */
330
+ /deep/ ::-webkit-scrollbar {
331
+ width: 2px;
332
+ }
333
+
334
+ /* 滚动槽 */
335
+ /deep/ ::-webkit-scrollbar-track {
336
+ background: none;
337
+ }
338
+
339
+ /* 滚动条滑块 */
340
+ /deep/ ::-webkit-scrollbar-thumb {
341
+ background: #a9a9a9;
342
+ border-radius: 10px;
343
+ }
344
+
345
+ .clearfix{
346
+ padding-left: 10px;
347
+ box-sizing: border-box;
348
+ }
349
+ .role-remind-card /deep/ .el-card__header {
350
+ height: 40px;
351
+ line-height: 40px;
352
+ }
353
+ .role-remind-card /deep/ .el-card__body {
354
+ height: calc(100% - 40px);
355
+ padding: 0px;
356
+ }
357
+
358
+ .all-do-button{
359
+ float: right;
360
+ margin-right: 5px;
361
+ margin-top:3px;
362
+ box-sizing: border-box;
363
+ }
364
+
365
+ /deep/ .el-select__tags {
366
+ height: 30px;
367
+ overflow-y: auto;
368
+ overflow-x: hidden;
369
+ }
370
+
371
+ /deep/ .cell{
372
+ overflow: visible;
373
+ }
374
+
375
+ .switch-column{
376
+ padding-left: 0;
377
+ }
378
+
379
+ /deep/ .el-table__row .switch-column .cell{
380
+ padding: 0;
381
+ }
382
+
383
+ .vue-treeselect /deep/ .vue-treeselect__multi-value {
384
+ overflow-x: auto;
385
+ }
386
+
387
+ // 滚动条的宽度
388
+ /deep/ .vue-treeselect__multi-value::-webkit-scrollbar {
389
+ width: 6px;
390
+ height: 2px;
391
+ }
392
+
393
+ /deep/ .vue-treeselect__multi-value-item-container {
394
+ padding-bottom: 5px;
395
+ box-sizing: border-box;
396
+ }
397
+ }
398
+
399
+ </style>