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,927 @@
1
+ <!--三位一体配置页面-->
2
+ <template>
3
+ <el-container class="top_contain">
4
+ <!--查询条件 -->
5
+ <el-header style="height: auto;">
6
+ <div class="search-form-parent el-card">
7
+ <el-form :inline="true" :model="crud.searchForm" class="demo-form-inline" @keyup.enter.native="crud.doSearch()" size="small">
8
+ <el-form-item label="行政区划" prop="title">
9
+ <safe-cascade-select :search-form="crud.searchForm"
10
+ field="province,city,area,street"
11
+ type-id="522eb83216004493b0e0eb729c564941"
12
+ :defaultValue="defaultValue"
13
+ :disabled="disableArr.join(',')"
14
+ size="small">
15
+ </safe-cascade-select>
16
+ </el-form-item>
17
+ <el-form-item label="是否允许个性化定制" prop="isOpen">
18
+ <el-select v-model="crud.searchForm.isOpen" placeholder="请选择" size="small">
19
+ <el-option label="关闭" value="0"></el-option>
20
+ <el-option label="开启" value="1"></el-option>
21
+ </el-select>
22
+ </el-form-item>
23
+ <el-form-item label="配置类型" prop="openStatus">
24
+ <el-select v-model="crud.searchForm.openStatus" placeholder="请选择" size="small">
25
+ <el-option v-for="(openStatus,index) in openStatusArr"
26
+ :key="index" :label="openStatus.label" :value="openStatus.value">
27
+ </el-option>
28
+ </el-select>
29
+ </el-form-item>
30
+ <el-form-item>
31
+ <el-button type="primary" icon="el-icon-search" size="small" @click="doSearch()">查询</el-button>
32
+ <el-button icon="el-icon-close" @click="crud.resetSearch()" size="small">清空</el-button>
33
+ </el-form-item>
34
+ </el-form>
35
+ </div>
36
+ </el-header>
37
+
38
+ <!--查询体 列表展示-->
39
+ <el-main id="tableMain" style="height: 100%;">
40
+ <el-container style="height: 100%;" class="table-list-container">
41
+ <el-header style="height: auto;" size="small">
42
+ <el-button type="primary" size="small" round icon="el-icon-edit" @click="editDefaultPz()" >修改系统默认监管配置</el-button>
43
+ <el-switch
44
+ style="margin-left: 15px;margin-right: 15px"
45
+ v-model="econOneToMany"
46
+ @change="changeEconOneToMany()"
47
+ active-text="关闭"
48
+ active-value="Y"
49
+ active-color="#f205"
50
+ inactive-text="开启"
51
+ inactive-value="N">
52
+ </el-switch>
53
+ <el-button type="warning" size="small" round icon="el-icon-s-tools" @click="initRegion()" >初始化</el-button>
54
+ <el-button type="primary" size="small" round icon="el-icon-lock" @click="menuMore()" >权限管理</el-button>
55
+ <el-button type="primary" size="small" round icon="saspiconfont pl-icon-fuzhibidui" @click="validRegion()" >数据校验</el-button>
56
+
57
+ </el-header>
58
+ <!--列表-->
59
+ <el-main style="height: 100%;" ref="tableMain" >
60
+ <el-table :data="crud.dataStore.records" :ref="crud.tableRef" stripe border height="100%" style="width: 100%;">
61
+ <el-table-column type="selection" width="40" align="center"></el-table-column>
62
+ <el-table-column type="index" label="序号" align="center" width="60"></el-table-column>
63
+ <el-table-column label="地区名称" prop="pzName" align="center"></el-table-column>
64
+ <el-table-column label="是否允许个性化配置" prop="isOpenName" align="center" width="200">
65
+ </el-table-column>
66
+ <el-table-column label="配置类型" prop="openStatusName" align="center" width="180" >
67
+ </el-table-column>
68
+ <!--<el-table-column label="地区内安委会成员单位数" prop="orgCount" align="center" width="180" >-->
69
+ <!--<template slot-scope="scope">-->
70
+ <!--<el-popover placement="bottom" width="400" trigger="click">-->
71
+ <!--<span slot="reference">{{formatterOrgCount(scope.row)}}</span>-->
72
+ <!--</el-popover>-->
73
+ <!--</template>-->
74
+ <!--</el-table-column>-->
75
+ <el-table-column label="操作" align="center" width="460" >
76
+ <template slot-scope="scope" >
77
+ <el-button size="small"
78
+ v-if="scope.row.province.length > 0"
79
+ icon="el-icon-zoom-in" type="primary" @click="regionCrudView(scope.row)">
80
+ 查看
81
+ </el-button>
82
+ <el-button size="small"
83
+ v-if="scope.row.province.length > 0"
84
+ icon="el-icon-caret-right" type="primary" @click="gxhqxFunc(scope.row)">
85
+ {{scope.row.isOpen=='0'?'开启':'关闭'}}个性化配置权限
86
+ </el-button>
87
+ <el-button size="small" icon="el-icon-zoom-in" type="primary" @click="openSpvEconSet(scope.row)">
88
+ 监管行业信息
89
+ </el-button>
90
+ </template>
91
+ </el-table-column>
92
+ </el-table>
93
+ </el-main>
94
+ </el-container>
95
+ </el-main>
96
+
97
+ <!--底部分页-->
98
+ <el-footer>
99
+ <el-pagination
100
+ :ref="crud.pageRef"
101
+ :page-sizes="crud.pageSizes"
102
+ :page-size="crud.pageSize"
103
+ :current-page="crud.page"
104
+ :total="crud.dataStore.total"
105
+ @size-change="crud.sizeChange()"
106
+ @current-change="crud.currentPage()"
107
+ layout="total, sizes, prev, pager, next, jumper">
108
+ </el-pagination>
109
+ </el-footer>
110
+
111
+ <!--监管行业配置 start-->
112
+ <el-dialog :close-on-click-modal=false :title="spvSetDialogTitle" width="90%" height="90%" top="5vh"
113
+ :visible.sync="spvSetDialog">
114
+ <safe-spv-econ-view
115
+ v-if="refreshSpvEcon"
116
+ :safe-spv-info="safeSpvInfo"
117
+ :source="safeSpvEconSource"
118
+ :default-region-id="defaultRegionId"
119
+ :econ-data-arr="econDataArr"
120
+ :econ-data-obj="econDataObj"
121
+ :econ-one-to-many="econOneToMany"
122
+ :from-open-person="fromOpenPerson"
123
+ :refreshEconSet="refreshEconSet"
124
+ :change-from-open-person="changeFromOpenPerson">
125
+ </safe-spv-econ-view>
126
+ </el-dialog>
127
+ <!--监管行业配置 end-->
128
+
129
+ <!--查看 地区监管信息-->
130
+ <el-dialog class="notice-info-dialog" :close-on-click-modal=false title="查看地区监管信息" height="400px" top="15vh" lock-scroll
131
+ :visible.sync="showSafeRegionDetail">
132
+ <el-form :data="safeRegionViewData" label-width="200px" style="width: 100%;">
133
+ <table class="formTable" cellspacing="0" cellpadding="0">
134
+ <tr >
135
+ <td :colspan="1" :rowspan="1" style="background-color: #EEE;" class="td-title">
136
+ <span style="padding-right: 10px;">省</span>
137
+ </td>
138
+ <td :colspan="3" :rowspan="1" style="padding: 8px;" >{{safeRegionViewData.provinceName}}</td>
139
+ <td :colspan="1" :rowspan="1" style="background-color: #EEE;" class="td-title">
140
+ <span style="padding-right: 10px;">市</span>
141
+ </td>
142
+ <td :colspan="3" :rowspan="1" style="padding: 8px;" >{{safeRegionViewData.cityName}}</td>
143
+ </tr>
144
+ <tr>
145
+ <td :colspan="1" :rowspan="1" style="background-color: #EEE;" class="td-title">
146
+ <span style="padding-right: 10px;">区县</span>
147
+ </td>
148
+ <td :colspan="3" :rowspan="1" style="padding: 8px;" >{{safeRegionViewData.areaName}}</td>
149
+ <td :colspan="1" :rowspan="1" style="background-color: #EEE;" class="td-title">
150
+ <span style="padding-right: 10px;">街道</span>
151
+ </td>
152
+ <td :colspan="3" :rowspan="1" style="padding: 8px;" >{{safeRegionViewData.streetName}}</td>
153
+ </tr>
154
+ <tr>
155
+ <td :colspan="1" :rowspan="1" style="background-color: #EEE;" class="td-title">
156
+ <span style="padding-right: 10px;">是否允许个性化配置</span>
157
+ </td>
158
+ <td :colspan="3" :rowspan="1" style="padding: 8px;" >{{safeRegionViewData.isOpenName}}</td>
159
+ <td :colspan="1" :rowspan="1" style="background-color: #EEE;" class="td-title">
160
+ <span style="padding-right: 10px;">配置类型</span>
161
+ </td>
162
+ <td :colspan="3" :rowspan="1" style="padding: 8px;" >{{safeRegionViewData.openStatusName}}</td>
163
+ </tr>
164
+ <tr>
165
+ <td :colspan="1" :rowspan="1" style="background-color: #EEE;" class="td-title">
166
+ <span style="padding-right: 10px;">备注信息</span>
167
+ </td>
168
+ <td :colspan="7" :rowspan="1" style="padding: 8px;" >{{safeRegionViewData.mark}}</td>
169
+ </tr>
170
+ </table>
171
+ </el-form>
172
+ </el-dialog>
173
+
174
+ <!--权限管理相关操作-->
175
+ <el-dialog :close-on-click-modal=false title="权限管理相关操作" width="85%" height="85%" top="5vh"
176
+ :visible.sync="roleOptDialog" class="roleOptDialog">
177
+ <safe-menu-manage :update="update"></safe-menu-manage>
178
+ </el-dialog>
179
+
180
+ <!--初始化三位一体-->
181
+ <el-dialog :close-on-click-modal=false :close-on-press-escape="false" title="初始化相关操作" width="55%" height="70%" top="15vh"
182
+ :visible.sync="initRegionDialog" class="initRegionDialog">
183
+ <safe-init-region
184
+ v-if="initRegionDialog"
185
+ :refresh-safe="refreshSafe"
186
+ :default-value="defaultValue"
187
+ :disable-str="disableArr.join(',')"></safe-init-region>
188
+ </el-dialog>
189
+
190
+ <!--数据校验-->
191
+ <el-dialog :close-on-click-modal=false title="监管地区数据校验"
192
+ :close-on-press-escape="false"
193
+ width="55%" height="70%" top="15vh"
194
+ :visible.sync="validRegionDialog" class="validRegionDialog">
195
+ <safe-validate-region
196
+ v-if="validRegionDialog"
197
+ :refresh-safe="refreshSafe"
198
+ :sys-community="sysCommunity"
199
+ :sys-province="sysProvince"
200
+ :sys-city="sysCity"
201
+ :sys-area="sysArea"
202
+ :sys-street="sysStreet"></safe-validate-region>
203
+ </el-dialog>
204
+ </el-container>
205
+ </template>
206
+
207
+ <script>
208
+ import {Replace} from "sasp-base";
209
+ import SafeInitRegion from "./init/safeInitRegion";
210
+ import SafeMenuManage from "./safeMenuManage";
211
+ import SafeValidateRegion from "./safeValidateRegion";
212
+ import SafeCascadeSelect from "./compoment/safeCascadeSelect";
213
+ import SafeSpvEconView from "./safeSpvEconView";
214
+ export default {
215
+ components: {SafeSpvEconView, SafeCascadeSelect, SafeValidateRegion, SafeMenuManage, SafeInitRegion},
216
+ name:"safeManager",
217
+ show:true,
218
+ data() {
219
+ return {
220
+ releaseStatus:'1', //发布状态
221
+ releaseStatusDefault:'0',
222
+ uploadstatus:false,
223
+ conditionMap:{},
224
+ crud: new this.CrudUtil({
225
+ vue: this,
226
+ entityName:"safeRegion",
227
+ url: this.api.safeRegion.url,
228
+ initNoSearch:true,
229
+ formData:{
230
+ receiveObjName: ''
231
+ },
232
+ }),
233
+ showSafeRegionDetail:false, //查看详情
234
+ formDataDialog:false,
235
+ title:"", //表单标题
236
+ formData:{
237
+ id:"", 'title':"",'content':"",'uploadfile':"",'receiveObj':"",'receiveObjName':"",
238
+ 'receiveUserIds':"",'receiveOrgIds':"",'receiveOrgName':"",'receivePosIds':"",'receivePosName':""
239
+ }, //弹出框初始值
240
+ rules: {
241
+ title:[
242
+ {
243
+ required:true,
244
+ message:'必填',
245
+ trigger: 'blur'
246
+ }
247
+ ],
248
+ receiveObj:this.plValidate('required'),
249
+ receiveObjName:[
250
+ {
251
+ required:true,
252
+ message:'必填',
253
+ trigger: 'blur'
254
+ }
255
+ ]
256
+ },//弹窗输入校验
257
+ safeRegionViewData:{}, //通知公告详情页
258
+ receiveObjStr:"", //接收对象集合
259
+ receiveObjNameStr:"",//接收对象名称集合
260
+ receiveUserIdsStr:"", //接收用户组结合
261
+ receivePosIdsStr:"", //岗位对象id
262
+ receivePosNameStr:"", //岗位对象名称
263
+ receiveOrgIdsStr:"", //组织对象id
264
+ receiveOrgNameStr:"",//组织对象名称
265
+ receiveEntTypeStr:"",
266
+ noticeFkId:"",
267
+ dataFreshTemple:"", //属性刷新凭证
268
+ noticeOperate:"", //操作类型
269
+ defaultChooseIds:"", //选中的操作对象
270
+ uuIdKey:'', //唯一标志 UUID
271
+ removeFileStatus:false,//删除附件 保存时判断
272
+ removeFileArr:[],
273
+
274
+ menuId: this.$route.query.menuId,
275
+ resourceId:'',
276
+ resourceObj:{},//资源池信息
277
+ loginUser:{},//当前登录信息
278
+ update:true,//是否有更新操作权限
279
+ openStatusArr:[
280
+ {label:"系统默认配置",value:"0"},
281
+ {label:"使用默认",value:"1"},
282
+ {label:"个性化配置",value:"9"},
283
+ ],
284
+ econOneToMany:"N",
285
+ roleOptDialog:false, //权限管理dialog
286
+ initRegionDialog:false,//初始化dialog
287
+ defaultValue:'', //地区默认选中
288
+ disableArr:["false","false","false","false"],//默认
289
+ sysProvince:'', //系统默认省份
290
+ sysCity:'',//系统默认city
291
+ sysArea:'', //系统默认地区
292
+ sysStreet:'', //系统默认地区
293
+ sysCommunity:'',//社区
294
+ validRegionDialog:false,//数据校验dialog
295
+ spvSetDialogTitle:"",//监管行业配置弹出框标题
296
+ spvSetDialog:false,//监管行业弹出框显示
297
+ safeSpvInfo:{},//当前行数据
298
+ safeSpvEconSource:"1",//监管行业配置来源,1-默认配置,2-监管行业信息(行按钮)
299
+ defaultRegionId:"",
300
+ defaultProps:{"children":"children","label":"name"},//树数据显示配置
301
+ econDataArr:[],//所属行业元数据
302
+ econDataObj:{},//所属行业元数据第一层对应的第四层数据
303
+ refreshSpvEcon:false,
304
+ fromOpenPerson:false,//来自于开启个性化
305
+ }
306
+ },
307
+
308
+ created(){
309
+ this.init();
310
+ this.initParamSet();
311
+ this.getDefaultSafe();
312
+ this.getSafeSpvData();
313
+ },
314
+ watch: {
315
+ spvSetDialog(){
316
+ this.refreshEconSet(this.spvSetDialog);
317
+ }
318
+ },
319
+ methods: {
320
+ /**
321
+ * 获取默认配置及左侧树数据
322
+ * */
323
+ async getDefaultSafe(){
324
+ let res = await this.axios.post(this.api.safeRegion.find,{openStatus:"0"});
325
+ if(res && res.data){
326
+ let defaultSafe = res.data[0] || {};
327
+ this.defaultRegionId = defaultSafe.id;
328
+ }
329
+ },
330
+
331
+ /**
332
+ * 获取监管行业数据
333
+ */
334
+ getSafeSpvData(){
335
+ //所属行业数据
336
+ this.DATA_GLOBAL.getTreeDatas("65677081c5de4613ac6f5c3ecd422b11").then(econData => {
337
+ this.econDataArr = JSON.parse(JSON.stringify(econData));
338
+
339
+ this.econDataArr.forEach(econData => {
340
+ this.getChildrenEconData(econData.children,econData.id);
341
+ });
342
+ });
343
+ },
344
+
345
+ /**
346
+ * 递归获取第一层对应的最后一层数据
347
+ */
348
+ getChildrenEconData(dataArr,key){
349
+ dataArr.forEach(data => {
350
+ if(!data.children || data.children.length == 0){
351
+ if(this.econDataObj[key]){
352
+ this.econDataObj[key].push(data);
353
+ }else{
354
+ this.econDataObj[key] = [data];
355
+ }
356
+ // this.econFourLevelObj[data.id] = data;
357
+ }else{
358
+ this.getChildrenEconData(data.children,key);
359
+ }
360
+ });
361
+ },
362
+
363
+ /**
364
+ * 初始化获取系统参数
365
+ */
366
+ initParamSet(){
367
+ this.defaultValue = ",,,";
368
+ this.crud.noClearSearchColumns = ["orgCount","notStreet","order"];
369
+
370
+ //获取街道
371
+ this.PARAM_GLOBAL.getValByKeyAsync("sysCommunity").then(community => {
372
+ if(community && community != 'sysCommunity'){
373
+ this.sysCommunity = community || '';
374
+ }
375
+ });
376
+
377
+ //获取系统默认省
378
+ this.PARAM_GLOBAL.getValByKeyAsync("sysProvince").then(province => {
379
+ if(province && province != 'sysProvince'){
380
+ this.sysProvince = province || '';
381
+ this.crud.searchForm["province"] = province || '';
382
+ this.crud.noClearSearchColumns.push("province");
383
+ this.disableArr[0] = "true";
384
+ }else {
385
+ delete this.crud.searchForm["province"];
386
+ }
387
+ //获取系统默认市
388
+ this.PARAM_GLOBAL.getValByKeyAsync("sysCity").then(city => {
389
+ if(city && city!='sysCity'){
390
+ this.sysCity = city || '';
391
+ this.crud.searchForm["city"] = city || '';
392
+ this.crud.noClearSearchColumns.push("city");
393
+ this.disableArr[1] = "true";
394
+ }else {
395
+ delete this.crud.searchForm["city"];
396
+ }
397
+ //获取系统默认地区
398
+ this.PARAM_GLOBAL.getValByKeyAsync("sysArea").then(area => {
399
+ if(area && area != 'sysArea'){
400
+ this.sysArea = area || '';
401
+ this.crud.searchForm["area"] = area;
402
+ this.crud.noClearSearchColumns.push("area");
403
+ this.disableArr[2] = "true";
404
+ }else {
405
+ delete this.crud.searchForm["area"];
406
+ }
407
+ //获取系统默认街道
408
+ this.PARAM_GLOBAL.getValByKeyAsync("sysStreet").then(street => {
409
+ if(street && street != 'sysStreet'){
410
+ this.sysStreet = street || '';
411
+ this.crud.searchForm["street"] = street || '';
412
+ this.crud.noClearSearchColumns.push("street");
413
+ this.disableArr[3] = "true";
414
+ }else {
415
+ delete this.crud.searchForm["street"];
416
+ }
417
+ this.defaultValue = this.sysProvince+","+this.sysCity+","+this.sysArea+","+this.sysStreet;
418
+ this.crud.searchForm["orgCount"] = true;
419
+ this.crud.searchForm["notStreet"] = true;
420
+ this.crud.searchForm["order"] = "PROVINCE DESC,CITY DESC,AREA DESC,STREET DESC,COMMUNITY DESC";
421
+ this.crud.search();
422
+ });
423
+ });
424
+ });
425
+ });
426
+ },
427
+
428
+ //初始化
429
+ init(){
430
+ //初始化一对多开关
431
+ //获取资源池权限
432
+ let vm = this;
433
+ vm.loginUser = vm.USER_GLOBAL.getLoginUser();//获取登录用户信息
434
+ //查看当前系统登录 权限 是否有 查看通知和接收通知的权限
435
+ vm.resourceId = vm.$route.query["resourceId"];
436
+ vm.update = true;
437
+ vm.RES_GLOBAL.getById(vm.resourceId).then(resData => {
438
+ if(resData){
439
+ let menuObj = {};
440
+ vm.resourceObj = resData; //当前资源池
441
+ let resourceObj = this.resourceObj;
442
+ //根据 formDefineKey 查询 最新的的
443
+ if(window.menuIdToMenuObj){
444
+ menuObj = window.menuIdToMenuObj[this.menuId];
445
+ }else{
446
+ //新窗口打开时查询菜单信息
447
+ this.axios.post(this.api.menu.getById,{id:this.menuId}).then(function (res) {
448
+ if(res && res.data){
449
+ menuObj = res.data;
450
+ }
451
+ });
452
+ }
453
+ if(vm.loginUser.userType == 'sup'){ //开发者
454
+ //查询操作权限
455
+ let operatePermisList = ((menuObj || {}).operatePermis || '').split(",");
456
+ operatePermisList.forEach(key =>{
457
+ (vm.resourceObj.operatePermisList || []).forEach(item =>{
458
+ if(key == item.id){
459
+ vm[item.powerCode] = true; //操作权限
460
+ }
461
+ });
462
+ });
463
+
464
+ }else{ //根据 resourceId查询当前用户是否存在资源权限 如果存在获取操作权限
465
+ vm.RES_GLOBAL.getUserOwnMenuOpt().then(datas =>{
466
+ if(datas){
467
+ let roleOptArr = [];
468
+ (datas || []).forEach(item =>{
469
+ if(vm.menuId == item.menuId){
470
+ roleOptArr.push(item);
471
+ }
472
+ });
473
+ if(roleOptArr.length > 0){
474
+ //查询操作权限
475
+ let optPowerArr = [];
476
+ roleOptArr.forEach(item =>{
477
+ if(item.optPower){
478
+ optPowerArr = optPowerArr.concat(item.optPower.split(",") || []);
479
+ }
480
+ });
481
+ optPowerArr.forEach(key => {
482
+ (vm.resourceObj.operatePermisList || []).forEach(item =>{
483
+ if(key == item.id){
484
+ vm[item.powerCode] = true; //操作权限
485
+ }
486
+ });
487
+ });
488
+ }else{
489
+ //强制跳转到首页
490
+ let url = "/commonHome/welcome";
491
+ vm.routerPush(url);
492
+ }
493
+ }
494
+ });
495
+ }
496
+ }else{
497
+ //强制跳转到首页
498
+ let url = "/commonHome/welcome";
499
+ vm.routerPush(url);
500
+ }
501
+ });
502
+
503
+ },
504
+ /**
505
+ * 执行查询
506
+ */
507
+ doSearch(){
508
+ if(!this.crud.searchForm["province"]){
509
+ delete this.crud.searchForm["province"];
510
+ }
511
+ if(!this.crud.searchForm["city"]){
512
+ delete this.crud.searchForm["city"];
513
+ }
514
+ if(!this.crud.searchForm["area"]){
515
+ delete this.crud.searchForm["area"];
516
+ }
517
+ if(!this.crud.searchForm["street"]){
518
+ delete this.crud.searchForm["street"];
519
+ }
520
+ this.crud.doSearch();
521
+ },
522
+ /**
523
+ * 系统默监管信息配置
524
+ */
525
+ editDefaultPz(){
526
+ this.spvSetDialogTitle = "系统默认监管信息配置";
527
+ this.safeSpvEconSource = "1";
528
+ this.spvSetDialog = true;
529
+ },
530
+
531
+ /**
532
+ * 初始化
533
+ */
534
+ initRegion(){
535
+ this.initRegionDialog = true;
536
+ },
537
+
538
+ /**
539
+ * 权限管理
540
+ */
541
+ menuMore(){
542
+ this.roleOptDialog = true;
543
+ },
544
+
545
+ /**
546
+ * 数据校验
547
+ */
548
+ validRegion(){
549
+ this.validRegionDialog = true;
550
+ },
551
+
552
+ //切换一对多开关开启/关闭
553
+ changeEconOneToMany(){
554
+ let confirmMsg = this.econOneToMany == "Y"?
555
+ "是否确定关闭此开关!关闭状态下不允许一对多的关系" : "是否确定开启此开关!开启状态下允许一对多的关系";
556
+ this.$confirm(confirmMsg, '警告', {
557
+ confirmButtonText: '确定',
558
+ cancelButtonText: '取消',
559
+ type: 'warning'
560
+ }).then(() => {
561
+ this.axios.post(this.api.safeRegion.switchEconOneToMany,{'econOneToMany':this.econOneToMany == "Y"? 'N':'Y'}).then(res=>{
562
+ if(res.data.operateSuccess){
563
+ this.$message({
564
+ duration: 1000,
565
+ type: 'success',
566
+ message: "修改成功!"
567
+ }
568
+ );
569
+ }else {
570
+ this.$message({
571
+ duration: 1000,
572
+ type: 'error',
573
+ message: "系统异常,修改失败!"
574
+ }
575
+ );
576
+ }
577
+ });
578
+ }).catch((e) => {
579
+ this.econOneToMany = this.econOneToMany == "Y"? "N":"Y";//重置开关
580
+ });
581
+ },
582
+
583
+
584
+ //查看通知 详情
585
+ regionCrudView(row){
586
+ let vm = this;
587
+ if(!row.id){ // 行数据id不存在
588
+ vm.$message("数据异常,请重新加载页面!");
589
+ return;
590
+ }
591
+ //格式化备注信息
592
+ row.content = Replace.textToHTML(row.mark);
593
+ //这里直接调用更新方法
594
+ vm.safeRegionViewData = row;
595
+ vm.uploadstatus=true;
596
+ vm.showSafeRegionDetail = true;
597
+
598
+ },
599
+ //监管行业信息
600
+ openSpvEconSet(row){
601
+ if(!row.id){ // 行数据id不存在
602
+ this.$message("数据异常,请重新加载页面!");
603
+ return;
604
+ }
605
+ if(row.province.length > 0){
606
+ this.spvSetDialogTitle = '"' + row.pzName + '"' + '监管配置信息';
607
+ }else{
608
+ this.spvSetDialogTitle = "系统默认配置";
609
+ }
610
+ this.safeSpvEconSource = "2";
611
+ this.safeSpvInfo = row;
612
+ this.spvSetDialog = true;
613
+ },
614
+
615
+
616
+ //保存对象 (排除掉已经存在的 对象)
617
+
618
+
619
+ //重置查询条件
620
+ resetSearch() {
621
+ let vm = this;
622
+ let crud = vm.crud;
623
+ let objData = {};
624
+ let searchForm = crud.searchForm;
625
+ crud.noClearSearchColumns && crud.noClearSearchColumns.forEach(function (key) {
626
+ objData[key] = searchForm[key];
627
+ });
628
+ objData["page"] = "1";
629
+ crud.searchForm = Object.assign({}, objData);
630
+ crud.search(vm.checkSelectedMsg);
631
+ },
632
+
633
+ //开启关闭个性化权限配置
634
+ gxhqxFunc(row){
635
+ let vm = this;
636
+ let type = row.isOpen == "1" ? "关闭":"开启";
637
+ let isOpen = row.isOpen == "1"? "0":"1";
638
+ this.$confirm('确定'+type+'此配置信息?', '警告', {
639
+ confirmButtonText: '确定',
640
+ cancelButtonText: '取消',
641
+ type: 'warning'
642
+ }).then(() => {
643
+ vm.axios.post(this.api.safeRegion.updateIsOpen,{'id':row.id,'isOpen':isOpen}).then(res => {
644
+ if(res.data.operateSuccess){
645
+ vm.$message({
646
+ duration: 1000,
647
+ type: 'success',
648
+ message: type + "成功!"
649
+ }
650
+ );
651
+ }else {
652
+ vm.$message({
653
+ duration: 1000,
654
+ type: 'error',
655
+ message: type + "失败!"
656
+ }
657
+ );
658
+ }
659
+ //重置请求方法
660
+ vm.resetSearch();
661
+ })
662
+ }).catch(() => {
663
+ this.$message({
664
+ type: 'info',
665
+ message: '已取消'
666
+ });
667
+ });
668
+ },
669
+
670
+
671
+ //正则过滤所有html标签,只留文字的方法
672
+ removeHTMLTag(str) {
673
+ str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag
674
+ str = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白
675
+ str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行
676
+ str=str.replace(/&nbsp;/ig,'');//去掉&nbsp;
677
+ return str;
678
+ },
679
+
680
+ /**
681
+ * 重新刷新类型
682
+ */
683
+ refreshSafe(){
684
+ this.crud.search();
685
+ },
686
+
687
+ /**
688
+ * 格式化单位数量
689
+ */
690
+ formatterOrgCount(row){
691
+ //获取当前一对多开关
692
+ this.econOneToMany = row.econOneToMany;
693
+ // 切换一对多关系的开关图标
694
+ return row.orgCount;
695
+ },
696
+
697
+
698
+ refreshEconSet(value){
699
+ this.refreshSpvEcon = value;
700
+ },
701
+
702
+ changeFromOpenPerson(value){
703
+ this.fromOpenPerson = value;
704
+ }
705
+ }
706
+ }
707
+ </script>
708
+
709
+ <style scoped lang="scss">
710
+ // 滚动条的宽度
711
+ /deep/ .el-table__body-wrapper::-webkit-scrollbar {
712
+ width: 6px; // 横向滚动条
713
+ height: 6px; // 纵向滚动条 必写
714
+ }
715
+ // 滚动条的滑块
716
+ /deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
717
+ background-color: #a9a9a9;
718
+ border-radius: 3px;
719
+ }
720
+ /* 滚动槽 */
721
+ /deep/ .el-table__body-wrapper::-webkit-scrollbar-track {
722
+ background: #eee;
723
+ }
724
+
725
+ legend{
726
+ font-size: 14px;
727
+ }
728
+ .button_header{
729
+ position: absolute;
730
+ height: 60px!important;
731
+ text-align: center;
732
+ line-height: 60px;
733
+ bottom: 0;
734
+ border-top: 1px solid #f2f2f2;
735
+ background-color: white;
736
+ margin: auto;
737
+ width: 100%;
738
+ right: 0;
739
+ z-index: 99;
740
+ }
741
+ .control_box{
742
+ padding-right: 100px;
743
+ position: relative;
744
+ }
745
+ .control_box_zero{
746
+ padding-right: 0;
747
+ position: relative;
748
+ }
749
+ .operate_div{
750
+ position: absolute;
751
+ right: 0;
752
+ top: 0;
753
+ bottom: 0;
754
+ margin: auto;
755
+ width: 100px;
756
+ }
757
+ .operate_div i{
758
+ /*margin-right: 20px;*/
759
+ cursor: pointer;
760
+ width: 30px;
761
+ height: 30px;
762
+ padding-top: 15px;
763
+ padding-left: 15px;
764
+ float: left;
765
+ }
766
+ .top_contain{
767
+ height: 100%;
768
+ /*border-radius:8px;*/
769
+ overflow-y: hidden;
770
+ }
771
+ .top_contain::-webkit-scrollbar{
772
+ width: 0;
773
+ }
774
+
775
+ .notice-info-dialog{
776
+ /deep/ {
777
+ //滚动条
778
+ ::-webkit-scrollbar {
779
+ width: 4px;
780
+ }
781
+ /* 滚动槽 */
782
+ ::-webkit-scrollbar-track {
783
+ background: #eee;
784
+ }
785
+ /* 滚动条滑块 */
786
+ ::-webkit-scrollbar-thumb {
787
+ background: #a9a9a9;
788
+ }
789
+ }
790
+ }
791
+ </style>
792
+ <style scoped>
793
+ .black .el-form-item__label{
794
+ color: black;
795
+ }
796
+ .green .el-form-item__label{
797
+ color: #27B5C3;
798
+ }
799
+ .settingClass{
800
+ width: 100%;
801
+ height: 40px;
802
+ position: relative;
803
+ }
804
+ .settingClass span{
805
+ position: absolute;
806
+ top:0;left:0;
807
+ right: 0;bottom: 0;
808
+ margin: auto;line-height: 40px;
809
+ }
810
+ .receiveObjNameLeft{
811
+ float: left;
812
+ width: 90%;
813
+ }
814
+ .receiveObjNameRight{
815
+ position: absolute;
816
+ float: right;
817
+ top: 16px !important;
818
+ width: auto !important;
819
+ margin-left: 6px;
820
+ }
821
+ .formTable{
822
+ margin: 20px auto;
823
+ width: 96%;
824
+ border-left: 1px solid #ddd;
825
+ border-top: 1px solid #ddd;
826
+ }
827
+ .formTable .td-title{
828
+ width: 20%;
829
+ font-size: 13px;
830
+ font-weight: bold;
831
+ text-align: right;
832
+ font-family: "微软雅黑", serif;
833
+ border-color: #d8d7d7;
834
+ min-height: 50px;
835
+ line-height: 50px;
836
+ }
837
+
838
+ .formTable tr {
839
+ padding: 10px;
840
+ }
841
+
842
+ .formTable .td-con{
843
+ padding: 5px;
844
+ }
845
+
846
+ .formTable td{
847
+ border-right: 1px solid #ddd;
848
+ border-bottom: 1px solid #ddd;
849
+ text-align: left;
850
+ vertical-align: middle;
851
+ }
852
+
853
+ /**自定义样式**/
854
+ .el-dialog-table-label .el-form-item__label{
855
+ width: 20%;
856
+ font-size: 13px;
857
+ font-weight: bold;
858
+ text-align: right;
859
+ font-family: "微软雅黑", serif;
860
+ border-color: #d8d7d7;
861
+ background-color: #EEE;
862
+ border-right: 1px solid #ddd;
863
+ border-bottom: 1px solid #ddd;
864
+ }
865
+
866
+ .el-dialog-table-form {
867
+ border-top: 1px solid #cccccc;
868
+ border-left: 1px solid #cccccc;
869
+ border-right: 1px solid #cccccc;
870
+ }
871
+ .el-dialog-table-label{
872
+ margin-bottom: 0px;
873
+ /*border-right: 1px solid #ddd;*/
874
+ border-bottom: 1px solid #ddd;
875
+ }
876
+
877
+ .el-dialog-table-label .el-input__inner{
878
+ height: 30px;
879
+ line-height: 30px;
880
+
881
+ }
882
+ /deep/.el-dialog-table-label .el-form-item__content{
883
+ /*padding: 0 10px 0 10px;*/
884
+ padding: 10px;
885
+ background-color: white;
886
+ }
887
+
888
+ .el-form-item__error {
889
+ left: auto;
890
+ right: 10px;
891
+ top: 14px;
892
+ }
893
+ .receiveObjName .el-form-item__error{
894
+ left: auto;
895
+ right: 92px;
896
+ top: 14px;
897
+ }
898
+
899
+ .el-form-item__error {
900
+ padding: 1px 5px;
901
+ margin-left: -10px;
902
+ }
903
+
904
+ .dialog-tr-td{
905
+ width: 20%;
906
+ font-size: 13px;
907
+ font-weight: bold;
908
+ text-align: right;
909
+ font-family: "微软雅黑", serif;
910
+ border-right: 1px solid #ddd;
911
+ border-bottom: 1px solid #ddd;
912
+ }
913
+
914
+ .notice-info-dialog .el-dialog__body{
915
+ padding: 0 20px !important;
916
+ }
917
+ /deep/.el-form-item__error {
918
+ left: auto;
919
+ right: 16px;
920
+ top: 19px;
921
+ }
922
+ /deep/.receiveObjName .el-form-item__error {
923
+ left: auto;
924
+ right: 96px;
925
+ top: 21px;
926
+ }
927
+ </style>