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,565 @@
1
+ <template>
2
+ <el-container style="height: 100%">
3
+ <el-header style="height: auto;">
4
+ <div class="search-form-parent el-card">
5
+ <el-form :inline="true" :model="crud.searchForm" size="small" class="demo-form-inline"
6
+ @keyup.enter.native="crud.doSearch()" onSubmit="return false;">
7
+ <el-form-item label="菜单名称">
8
+ <el-input v-model="crud.searchForm.menuName"></el-input>
9
+ </el-form-item>
10
+ <el-form-item label="菜单类型">
11
+ <el-select v-model="crud.searchForm.menuType" clearable style="width: 150px">
12
+ <el-option label="自定义表单" value="form"></el-option>
13
+ <el-option label="复合视图" value="cview"></el-option>
14
+ </el-select>
15
+ </el-form-item>
16
+ <el-form-item label="菜单权限开关">
17
+ <el-select v-model="crud.searchForm.isMenuOpt" clearable style="width: 150px">
18
+ <el-option value="0" label="关闭"></el-option>
19
+ <el-option value="1" label="开启行业子菜单"></el-option>
20
+ <el-option value="2" label="开启地区子菜单"></el-option>
21
+ <el-option value="3" label="权限禁用"></el-option>
22
+ <el-option value="4" label="未设置"></el-option>
23
+ </el-select>
24
+ </el-form-item>
25
+ <el-form-item label="行业数据权限开关">
26
+ <el-select v-model="crud.searchForm.isDataOpt" clearable style="width: 150px">
27
+ <el-option value="0" label="关闭"></el-option>
28
+ <el-option value="1" label="开启"></el-option>
29
+ <el-option value="2" label="权限禁用"></el-option>
30
+ <el-option value="3" label="未设置"></el-option>
31
+ </el-select>
32
+ </el-form-item>
33
+ <el-form-item label="区域数据权限开关">
34
+ <el-select v-model="crud.searchForm.isRegionOpt" clearable style="width: 150px">
35
+ <el-option value="0" label="关闭"></el-option>
36
+ <el-option value="1" label="开启"></el-option>
37
+ <el-option value="2" label="权限禁用"></el-option>
38
+ <el-option value="3" label="未设置"></el-option>
39
+ </el-select>
40
+ </el-form-item>
41
+ <el-form-item label="隶属关系数据权限开关">
42
+ <el-select v-model="crud.searchForm.isAffOpt" clearable style="width: 150px">
43
+ <el-option value="0" label="关闭"></el-option>
44
+ <el-option value="1" label="开启"></el-option>
45
+ <el-option value="2" label="权限禁用"></el-option>
46
+ <el-option value="3" label="未设置"></el-option>
47
+ </el-select>
48
+ </el-form-item>
49
+ <el-form-item label="菜单名称所属等级">
50
+ <el-select v-model="crud.searchForm.menuLevel" clearable style="width: 150px">
51
+ <el-option value="2" label="二级菜单"></el-option>
52
+ <el-option value="3" label="三级菜单"></el-option>
53
+ <el-option value="4" label="四级菜单"></el-option>
54
+ </el-select>
55
+ </el-form-item>
56
+
57
+ <el-form-item>
58
+ <el-button type="primary" icon="el-icon-search" @click="crud.doSearch()">查询</el-button>
59
+ <el-button icon="el-icon-close" @click="crud.resetSearch()">清空</el-button>
60
+ </el-form-item>
61
+ </el-form>
62
+ </div>
63
+ </el-header>
64
+
65
+ <el-main id="tableMain" style="height: 100%">
66
+ <el-container style="height:100%" class="table-list-container">
67
+ <el-header style="height: auto;" size="medium">
68
+ <el-button type="primary" size="small" round icon="el-icon-setting" @click="bindField()">数据字段绑定
69
+ </el-button>
70
+ </el-header>
71
+ <el-main style="height: 100%;" ref="tableMain">
72
+ <el-table :data="crud.dataStore.list" :ref="crud.tableRef" stripe border height="100%"
73
+ style="width: 100%;">
74
+ <el-table-column type="selection" width="40" align="center"></el-table-column>
75
+ <el-table-column type="index" label="序号" align="center" width="60"></el-table-column>
76
+ <el-table-column label="菜单名称" min-width="300" prop="menuAllSjName"
77
+ align="center"></el-table-column>
78
+ <el-table-column label="菜单类型" min-width="150" prop="rSource" align="center">
79
+ <template slot-scope="scope">
80
+ <div v-if="scope.row.bindSource.indexOf('cview') > -1">
81
+ {{'复合视图'}}
82
+ </div>
83
+ <div v-else>
84
+ {{'智能建表'}}
85
+ </div>
86
+ </template>
87
+ </el-table-column>
88
+ <el-table-column label="菜单权限开关" min-width="100" :formatter="optFormatter" prop="isMenuOptName"
89
+ align="center"></el-table-column>
90
+ <el-table-column label="行业数据权限开关" min-width="100" :formatter="optFormatter" prop="isDataOptName"
91
+ align="center"></el-table-column>
92
+ <el-table-column label="区域数据权限开关" min-width="100" :formatter="optFormatter"
93
+ prop="isRegionOptName" align="center"></el-table-column>
94
+ <el-table-column label="隶属关系数据权限开关" min-width="100" :formatter="optFormatter"
95
+ prop="isAffOptName" align="center"></el-table-column>
96
+ <el-table-column label="选项卡权限开关" min-width="100" :formatter="configureFormatter"
97
+ prop="isConfigure" align="center"></el-table-column>
98
+ <el-table-column label="操作" align="center" width="350">
99
+ <template slot-scope="scope">
100
+ <el-button size="small" icon="el-icon-setting" type="warning"
101
+ @click="openTabManager(scope.row)" v-if="scope.row.bindSource.indexOf('cview') > -1">
102
+ 设置选项卡权限
103
+ </el-button>
104
+ <el-button size="small" icon="el-icon-setting" type="primary"
105
+ @click="updateOpt(scope.row)" v-else>
106
+ 设置菜单权限
107
+ </el-button>
108
+ <el-button size="small" icon="el-icon-delete" type="danger"
109
+ @click="deleteOpt(scope.row)">
110
+ 清空配置
111
+ </el-button>
112
+ </template>
113
+ </el-table-column>
114
+ </el-table>
115
+ </el-main>
116
+ </el-container>
117
+ </el-main>
118
+
119
+ <el-footer>
120
+ <el-pagination
121
+ :ref="crud.pageRef"
122
+ :page-sizes="crud.pageSizes"
123
+ :page-size="crud.pageSize"
124
+ :current-page="crud.page"
125
+ :total="crud.dataStore.total"
126
+ @size-change="crud.sizeChange()"
127
+ @current-change="crud.currentPage()"
128
+ layout="total, sizes, prev, pager, next, jumper">
129
+ </el-pagination>
130
+ </el-footer>
131
+
132
+ <el-dialog :close-on-click-modal=false title="数据字段绑定设置"
133
+ append-to-body
134
+ top="5vh" height="90%" width="90%"
135
+ :visible.sync="bindFieldDialog">
136
+ <el-container style="height:100%" class="table-list-container">
137
+ <el-main style="height: 100%;" ref="tableMain">
138
+ <el-table :data="bindData" stripe border height="100%" style="width: 100%;">
139
+ <el-table-column type="selection" width="40" align="center"></el-table-column>
140
+ <el-table-column type="index" label="序号" align="center" width="60"></el-table-column>
141
+ <el-table-column label="参数名" min-width="100" prop="name" align="center"></el-table-column>
142
+ <el-table-column label="参数值" min-width="100" prop="value" align="center">
143
+ <template slot-scope="scope">
144
+ <el-input v-model="scope.row.value" placeholder="请输入"></el-input>
145
+ </template>
146
+ </el-table-column>
147
+ <el-table-column label="参数描述" min-width="300" prop="content" align="center">
148
+ <template slot-scope="scope">
149
+ <el-input v-model="scope.row.content" placeholder="请输入"></el-input>
150
+ </template>
151
+ </el-table-column>
152
+ </el-table>
153
+ </el-main>
154
+ </el-container>
155
+ <div slot="footer" class="dialog-footer">
156
+ <el-button type="primary" @click="saveBindField" size="small" icon="el-icon-error">保存
157
+ </el-button>
158
+ <el-button @click="bindFieldDialog = false" size="small" icon="el-icon-error">关闭
159
+ </el-button>
160
+ </div>
161
+ </el-dialog>
162
+
163
+ <el-dialog :close-on-click-modal=false
164
+ append-to-body
165
+ title="修改用户菜单-三位一体权限管理信息" top="5vh" height="500px" width="800px"
166
+ :visible.sync="updateOptDialog">
167
+ <el-form :model="formData" label-width="160px" label-position="right">
168
+ <el-row>
169
+ <el-col :span="12">
170
+ <el-form-item label="菜单权限开关">
171
+ <el-select v-model="formData.isMenuOpt" style="width: 100%" clearable>
172
+ <el-option label="关闭" value="0"></el-option>
173
+ <el-option label="开启行业子菜单" value="1"></el-option>
174
+ <el-option label="开启地区子菜单" value="2"></el-option>
175
+ </el-select>
176
+ </el-form-item>
177
+ </el-col>
178
+ <el-col :span="12">
179
+ <el-form-item label="行业数据权限开关">
180
+ <el-select v-model="formData.isDataOpt" style="width: 100%" clearable>
181
+ <el-option label="关闭" value="0"></el-option>
182
+ <el-option label="开启" value="1"></el-option>
183
+ </el-select>
184
+ </el-form-item>
185
+ </el-col>
186
+ <el-col :span="12">
187
+ <el-form-item label="区域数据权限开关">
188
+ <el-select v-model="formData.isRegionOpt" style="width: 100%" clearable>
189
+ <el-option label="关闭" value="0"></el-option>
190
+ <el-option label="开启" value="1"></el-option>
191
+ </el-select>
192
+ </el-form-item>
193
+ </el-col>
194
+ <el-col :span="12">
195
+ <el-form-item label="隶属关系数据权限开关">
196
+ <el-select v-model="formData.isAffOpt" style="width: 100%" clearable>
197
+ <el-option label="关闭" value="0"></el-option>
198
+ <el-option label="开启" value="1"></el-option>
199
+ </el-select>
200
+ </el-form-item>
201
+ </el-col>
202
+ <el-col :span="24">
203
+ <el-form-item label="备注信息">
204
+ <el-input v-model="formData.mark" type="textarea" :autosize="{minRows:3,maxRows:5}">
205
+ </el-input>
206
+ </el-form-item>
207
+ </el-col>
208
+ </el-row>
209
+ </el-form>
210
+ <div slot="footer" class="dialog-footer">
211
+ <el-button type="primary" @click="saveOpt" size="small" icon="el-icon-error">保存
212
+ </el-button>
213
+ <el-button @click="updateOptDialog = false" size="small" icon="el-icon-error">关闭
214
+ </el-button>
215
+ </div>
216
+ </el-dialog>
217
+ <el-dialog :close-on-click-modal=false title="复合视图选项卡权限管理相关操作" @close="crud.search()"
218
+ append-to-body
219
+ top="5vh" height="90%" width="90%" :visible.sync="complexDialog">
220
+ <el-container style="height:100%" class="table-list-container">
221
+ <el-main style="height: 100%;" ref="tableMain">
222
+ <el-table :data="complexList" stripe border height="100%" style="width: 100%;">
223
+ <el-table-column type="selection" width="40" align="center"></el-table-column>
224
+ <el-table-column type="index" label="序号" align="center" width="60"></el-table-column>
225
+ <el-table-column label="视图名称" min-width="300" prop="complexTabName"
226
+ align="center"></el-table-column>
227
+ <el-table-column label="行业数据权限开关" min-width="100" :formatter="complexOptFormatter"
228
+ prop="isSpvOptName" align="center"></el-table-column>
229
+ <el-table-column label="区域数据权限开关" min-width="100" :formatter="complexOptFormatter"
230
+ prop="isRegionOptName" align="center"></el-table-column>
231
+ <el-table-column label="隶属关系数据权限开关" min-width="100" :formatter="complexOptFormatter"
232
+ prop="isAffOptName" align="center"></el-table-column>
233
+ <el-table-column label="操作" align="center" width="350">
234
+ <template slot-scope="scope">
235
+ <el-button size="small" icon="el-icon-setting" type="primary"
236
+ @click="updateComplexOpt(scope.row)">
237
+ 设置菜单权限
238
+ </el-button>
239
+ <el-button size="small" icon="el-icon-delete" type="danger"
240
+ @click="deleteComplexOpt(scope.row)">
241
+ 清空配置
242
+ </el-button>
243
+ </template>
244
+ </el-table-column>
245
+ </el-table>
246
+ </el-main>
247
+ </el-container>
248
+ <div slot="footer" class="dialog-footer">
249
+ <el-button @click="complexDialog = false" size="small" icon="el-icon-error">关闭
250
+ </el-button>
251
+ </div>
252
+ </el-dialog>
253
+
254
+ <el-dialog :close-on-click-modal=false title="修改复合视图权限管理信息"
255
+ append-to-body
256
+ top="5vh" height="500px" width="800px"
257
+ :visible.sync="complexUpdateOptDialog">
258
+ <el-form :model="complexFormData" label-width="160px" label-position="right">
259
+ <el-row>
260
+ <el-col :span="12">
261
+ <el-form-item label="行业数据权限开关">
262
+ <el-select v-model="complexFormData.isSpvOpt" style="width: 100%" clearable>
263
+ <el-option label="关闭" value="0"></el-option>
264
+ <el-option label="开启" value="1"></el-option>
265
+ </el-select>
266
+ </el-form-item>
267
+ </el-col>
268
+ <el-col :span="12">
269
+ <el-form-item label="区域数据权限开关">
270
+ <el-select v-model="complexFormData.isRegionOpt" style="width: 100%" clearable>
271
+ <el-option label="关闭" value="0"></el-option>
272
+ <el-option label="开启" value="1"></el-option>
273
+ </el-select>
274
+ </el-form-item>
275
+ </el-col>
276
+ <el-col :span="12">
277
+ <el-form-item label="隶属关系数据权限开关">
278
+ <el-select v-model="complexFormData.isAffOpt" style="width: 100%" clearable>
279
+ <el-option label="关闭" value="0"></el-option>
280
+ <el-option label="开启" value="1"></el-option>
281
+ </el-select>
282
+ </el-form-item>
283
+ </el-col>
284
+ <el-col :span="24">
285
+ <el-form-item label="备注信息">
286
+ <el-input v-model="complexFormData.mark" type="textarea" :autosize="{minRows:3,maxRows:5}">
287
+ </el-input>
288
+ </el-form-item>
289
+ </el-col>
290
+ </el-row>
291
+ </el-form>
292
+ <div slot="footer" class="dialog-footer">
293
+ <el-button type="primary" @click="saveComplexOpt" size="small" icon="el-icon-error">保存
294
+ </el-button>
295
+ <el-button @click="complexUpdateOptDialog = false" size="small" icon="el-icon-error">关闭
296
+ </el-button>
297
+ </div>
298
+ </el-dialog>
299
+ </el-container>
300
+ </template>
301
+
302
+ <script>
303
+ export default {
304
+ name: "safe-menu-manage",
305
+ props: {
306
+ update: {type: Boolean, default: true},//操作权限
307
+ },
308
+ data() {
309
+ return {
310
+ crud: new this.CrudUtil({
311
+ vue: this,
312
+ entityName: "safeMenuSetting",
313
+ url: this.api.safeMenuSetting.url,
314
+ searchUrl: this.api.safeMenuSetting.findUserMenu,
315
+ searchForm: {}, // 加上排序
316
+ noClearSearchColumns: [],
317
+ addDefaultData: {},
318
+ initNoSearch: false,
319
+ }),
320
+ bindFieldDialog: false,
321
+ bindData: [{
322
+ "name": "province",
323
+ "value": "",
324
+ "content": "",
325
+ }, {
326
+ "name": "city",
327
+ "value": "",
328
+ "content": "",
329
+ }, {
330
+ "name": "area",
331
+ "value": "",
332
+ "content": "",
333
+ }, {
334
+ "name": "street",
335
+ "value": "",
336
+ "content": "",
337
+ }, {
338
+ "name": "econ",
339
+ "value": "",
340
+ "content": "",
341
+ }, {
342
+ "name": "affiliation",
343
+ "value": "",
344
+ "content": "",
345
+ }],
346
+ editable: false,
347
+ formData:{},
348
+ updateOptDialog:false,
349
+ complexDialog:false,
350
+ complexViewId:"",
351
+ complexMenuId:"",
352
+ complexList:[],
353
+ complexUpdateOptDialog:false,
354
+ complexFormData:{},
355
+ }
356
+ },
357
+ methods: {
358
+ optFormatter(rowData, column, cellValue) {
359
+ if (rowData.bindSource.indexOf('cview') > -1) {
360
+ return <span style='color:red;'>权限禁用</span>;
361
+ }
362
+ return cellValue;
363
+ },
364
+ configureFormatter(rowData) {
365
+ if (rowData.bindSource.indexOf('form') > -1) {
366
+ return <span style='color:red;'>权限禁用</span>;
367
+ } else {
368
+ if (rowData.settingTabNum > 0) {
369
+ return "已配置";
370
+ } else {
371
+ return "未配置";
372
+ }
373
+ }
374
+ },
375
+ /**
376
+ * 数据字段绑定
377
+ */
378
+ bindField() {
379
+ this.axios.post(this.api.safeColumnSetting.find,{status:'1'}).then(res => {
380
+ if((res.data || []).length > 0){
381
+ let bindObj = {};
382
+ res.data.forEach(item => {
383
+ bindObj[item.name] = item;
384
+ })
385
+ bindObj = this.initBindObj(bindObj);
386
+ this.bindData = [];
387
+ Object.keys(bindObj).forEach(key => {
388
+ this.bindData.push(bindObj[key]);
389
+ })
390
+ }
391
+ this.bindFieldDialog = true;
392
+ })
393
+ },
394
+ initBindObj(bindObj){
395
+ let arr = ["province","city","area","street","econ","affiliation"];
396
+ arr.forEach(key => {
397
+ if(!bindObj[key]){
398
+ bindObj[key] = {
399
+ "name":key,
400
+ "value":"",
401
+ "content":""
402
+ }
403
+ }
404
+ })
405
+ return bindObj;
406
+ },
407
+ /**
408
+ * 保存数据字段绑定
409
+ */
410
+ saveBindField() {
411
+ let url = this.api.safeColumnSetting.url;
412
+ this.bindData.forEach(item => {
413
+ let tempUrl = url;
414
+ if(item.id){
415
+ tempUrl += "/update";
416
+ }else{
417
+ tempUrl += "/add";
418
+ }
419
+ this.axios.post(tempUrl,item);
420
+ })
421
+ this.$message.success("绑定完成!");
422
+ this.bindFieldDialog = false;
423
+ },
424
+ /**
425
+ * 设置菜单权限
426
+ */
427
+ updateOpt(row) {
428
+ let fieldArr = ['id','menuId','isMenuOpt','isDataOpt','isRegionOpt','isAffOpt','mark'];
429
+ this.formData = {};
430
+ fieldArr.forEach(key => {
431
+ this.$set(this.formData,key,row[key] || "");
432
+ })
433
+ this.updateOptDialog = true;
434
+ },
435
+ /**
436
+ * 保存菜单权限
437
+ */
438
+ saveOpt(){
439
+ let url = this.formData.id ? this.api.safeMenuSetting.update : this.api.safeMenuSetting.add;
440
+ this.axios.post(url,this.formData).then(res => {
441
+ if(res.data.operateSuccess){
442
+ this.$message.success("保存成功!");
443
+ this.crud.search();
444
+ this.updateOptDialog = false;
445
+ }else{
446
+ this.$message.error(res.data.operateMessage);
447
+ }
448
+ })
449
+
450
+ },
451
+ /**
452
+ * 设置复合视图菜单权限
453
+ */
454
+ updateComplexOpt(row) {
455
+ let fieldArr = ['id','complexTabId','isSpvOpt','isRegionOpt','isAffOpt','mark'];
456
+ this.complexFormData = {"menuId":this.complexMenuId};
457
+ fieldArr.forEach(key => {
458
+ this.$set(this.complexFormData,key,row[key] || "");
459
+ })
460
+ this.complexUpdateOptDialog = true;
461
+ },
462
+ /**
463
+ * 保存复合视图菜单权限
464
+ */
465
+ saveComplexOpt(){
466
+ let url = this.complexFormData.id ? this.api.safeTabSetting.update : this.api.safeTabSetting.add;
467
+ this.axios.post(url,this.complexFormData).then(res => {
468
+ if(res.data.operateSuccess){
469
+ this.$message.success("保存成功!");
470
+ this.loadComplexTab();
471
+ this.complexUpdateOptDialog = false;
472
+ }else{
473
+ this.$message.error(res.data.operateMessage);
474
+ }
475
+ })
476
+
477
+ },
478
+ /**
479
+ * 复合视图菜单权限设置
480
+ */
481
+ openTabManager(row) {
482
+ // 获取资源池id
483
+ let bindSource = JSON.parse(row.bindSource || "[]");
484
+ let resourceId = bindSource[2];
485
+ if(!resourceId){
486
+ this.$message.error("没有获取到资源池id!");
487
+ return;
488
+ }
489
+ this.axios.post(this.api.resources.getById,{id:resourceId}).then(res => {
490
+ if(!res.data.rkey){
491
+ this.$message.error("没有获取到资源池数据!");
492
+ return;
493
+ }
494
+ this.complexViewId = res.data.rkey;
495
+ this.complexMenuId = row.menuId;
496
+ this.loadComplexTab();
497
+ })
498
+ },
499
+ loadComplexTab(){
500
+ this.axios.post(this.api.safeTabSetting.findComplexTab,{viewId:this.complexViewId}).then(complexRes => {
501
+ this.complexList = complexRes.data || [];
502
+ this.complexDialog = true;
503
+ })
504
+ },
505
+ /**
506
+ * 清空配置
507
+ */
508
+ deleteOpt(row) {
509
+ if(row.bindSource.indexOf('form') > -1){ // 智能建表自定义列表
510
+ if(!row.id){
511
+ this.$message.success("清空成功!");
512
+ return;
513
+ }
514
+ this.axios.post(this.api.safeMenuSetting.delete,{ids:row.id}).then(res => {
515
+ if(res.data.operateSuccess){
516
+ this.$message.success("清空成功!");
517
+ this.crud.search();
518
+ }else{
519
+ this.$message.error(res.data.operateMessage);
520
+ }
521
+ })
522
+ }else{ // 复合视图
523
+ this.axios.post(this.api.safeTabSetting.deleteByMenuId,{menuId:row.menuId}).then(res => {
524
+ if(res.data.operateSuccess){
525
+ this.$message.success("清空成功!");
526
+ this.crud.search();
527
+ }else{
528
+ this.$message.error(res.data.operateMessage);
529
+ }
530
+ })
531
+ }
532
+ },
533
+ /**
534
+ * 清空复合视图配置
535
+ */
536
+ deleteComplexOpt(row){
537
+ if(!row.id){
538
+ this.$message.success("清空成功!");
539
+ return;
540
+ }
541
+ this.axios.post(this.api.safeTabSetting.delete,{ids:row.id}).then(res => {
542
+ if(res.data.operateSuccess){
543
+ this.$message.success("清空成功!");
544
+ this.loadComplexTab();
545
+ }else{
546
+ this.$message.error(res.data.operateMessage);
547
+ }
548
+ })
549
+ },
550
+ /**
551
+ * 复合视图列格式化
552
+ */
553
+ complexOptFormatter(rowData, column, cellValue){
554
+ if(rowData.urlType.indexOf("form") == -1){
555
+ return "<span style='color:red;'>权限禁用</span>";
556
+ }
557
+ return cellValue;
558
+ }
559
+ }
560
+ }
561
+ </script>
562
+
563
+ <style scoped>
564
+
565
+ </style>