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,364 @@
1
+ <template>
2
+ <el-container style="height: 100%">
3
+ <el-aside class="asideTree">
4
+ <el-input placeholder="组织名称" v-model="filterTree" style="margin-top: 5px" size="small"></el-input>
5
+ <div style="overflow-y: auto;height: calc(100% - 90px);margin-top: 5px">
6
+ <common-tree ref="orgSelectTree" :request-url="api.sysOrg.listNoPageForTrinity"
7
+ :request-param="orgSearchParam"
8
+ parent-id="orgParentId" :default-props="defaultProps" :defaultExpandAll="true"
9
+ :dealTreeData="dealTreeData"
10
+ :filterText="filterTree"
11
+ :nodeClick="nodeClick" :render-content-func="renderContentFunc" :checkbox="false"
12
+ >
13
+ </common-tree>
14
+ </div>
15
+ </el-aside>
16
+ <el-main class="detail-info">
17
+ <el-container style="height: 100%">
18
+ <el-main>
19
+ <div style="box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);height: 764px">
20
+ <div class="econTitleDiv">
21
+ <span style="">{{econTitle}}</span>
22
+ <el-button class="saveButton" type="success" size="mini" style="font-size: 14px" @click="saveData">保存配置信息
23
+ </el-button>
24
+ </div>
25
+ <div class="econContentDiv" v-for="(par,index) in parEntArr" :key="par.id" v-if="cardShow">
26
+ <div class="first_spv_main">
27
+ <div class="first_spv_title">
28
+ <el-checkbox v-model="checkedObj[par.id]" style="color: white;float: left;left: 9px"
29
+ @change="changePar(par.id,checkedObj[par.id])">{{par.name}}</el-checkbox>
30
+ </div>
31
+
32
+ <div class="first_spv_content">
33
+ <div class="econChildDiv" v-for="(child,index) in parEntObj[par.id]" :key="child.id">
34
+ <el-checkbox v-model="checkedObj[child.id]" @change="changeChild(child.id,par.id,checkedObj[child.id])">{{child.name}}</el-checkbox>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ </el-main>
41
+ </el-container>
42
+ </el-main>
43
+ </el-container>
44
+ </template>
45
+
46
+ <script>
47
+ export default {
48
+ name: "safe-org-spv",
49
+ data() {
50
+ return {
51
+ defaultProps: {children: 'children', label: 'orgName'}, // 树组件的配置信息
52
+ orgSearchParam: {},
53
+ filterTree: "",
54
+ econTitle: "",//标题
55
+ checked:true,
56
+ parEntObj:{},
57
+ parEntArr:[],
58
+ cardShow:false,
59
+ checkedObj:{},
60
+ orgId:"",
61
+ checkedBak:[],
62
+ }
63
+ },
64
+ methods: {
65
+ dealTreeData(data) {
66
+
67
+ },
68
+ nodeClick(data, node) {
69
+ this.cardShow=false;
70
+ this.orgId=data.id;
71
+ this.econTitle=data.orgName;
72
+ if (data.orgType == 'ogn') {
73
+ this.$message.error("地区节点不能配置监管行业!");
74
+ return;
75
+ }
76
+ let spvArr=[];
77
+ // 加载所有可设置数据
78
+ this.axios.post(this.api.sysOrg.getById, {id: data.orgParentId}).then(async orgRes => {
79
+ if (orgRes.data) {
80
+ let rec = orgRes.data;
81
+ if (rec.orgType == 'ogn') {// 父节点为地区节点,直接加载该监管地区下的监管信息
82
+ this.loadAreaJgxx(data.id).then(async REGION => {
83
+ let regionId = "";
84
+ if (REGION.openStatus == 1 || REGION.openStatus == 0) {// 使用默认配置的监管
85
+ regionId = await this.loadDefaultSetting();
86
+ } else if (REGION.openStatus == 9) {// 使用个性化配置
87
+ regionId = REGION.id;
88
+ }
89
+ let param = {"regionId": regionId, "order": "PARENT_ID,SPV_ORDER"};
90
+ this.axios.post(this.api.safeSpv.findAndCount, param).then(res => {
91
+ if (res.data) {
92
+ spvArr = res.data;
93
+ this.delData(spvArr);
94
+ }
95
+ })
96
+ })
97
+ } else if (rec.orgType == 'dept') {// 父节点为部门节点,需要加载父部门的配置监管信息
98
+ await this.axios.post(this.api.sysOrg.findAllSpvByOrgId, {orgId: rec.id}).then(res => {
99
+ if (res.data) {
100
+ spvArr = res.data;
101
+ this.delData(spvArr);
102
+ }
103
+ })
104
+ } else {
105
+ spvArr = [];
106
+ this.$message.error("部门节点异常!!!");
107
+ return;
108
+ }
109
+ }
110
+ })
111
+
112
+ },
113
+ /*
114
+ 处理加载的数据
115
+ */
116
+ delData(spvArr){
117
+ if(spvArr == false || spvArr.length == 0){
118
+ this.$message.error("未找到当前部门可配置的监管行业!请优先配置父级部门!");
119
+ return;
120
+ }
121
+ this.parEntObj={};
122
+ this.parEntArr=[];
123
+ let parEntObj=this.parEntObj;
124
+ let parEntArr=this.parEntArr;
125
+
126
+ //假数据
127
+ spvArr.forEach(spvData =>{
128
+ if(spvData.parentId== '-1'){
129
+ this.$set(parEntObj,spvData.id,[])
130
+ parEntArr.push(spvData);
131
+ }
132
+ })
133
+ parEntArr.forEach(parEnt=>{
134
+ spvArr.forEach(spvData =>{
135
+ if(spvData.parentId== parEnt.id){
136
+ parEntObj[parEnt.id].push(spvData);
137
+ }
138
+ })
139
+ })
140
+ this.checkedObj={};
141
+ // 加载已选择数据
142
+ this.axios.post(this.api.safeOrgSpv.find,{"orgId":this.orgId}).then( checkRes =>{
143
+ this.checkedBak=[];
144
+ if(checkRes.data){
145
+ let arr=checkRes.data || [];
146
+ arr.forEach(item =>{
147
+ this.$set(this.checkedObj,item.spvId,true);
148
+ this.checkedBak.push(item.id);
149
+ })
150
+ }
151
+ this.cardShow=true;
152
+ })
153
+ },
154
+ /**
155
+ * 功能描述:获取默认配置
156
+ */
157
+ loadDefaultSetting() {
158
+ let param = {"openStatus": "0"};
159
+ this.axios.post(this.api.safeSpv.findAndCount, param).then(res => {
160
+ if (res.data) {
161
+ return res.data[0].id;
162
+ }
163
+ })
164
+ },
165
+ loadAreaJgxx(orgId) {
166
+ return new Promise(resolve => {
167
+ this.axios.post(this.api.sysOrg.getById, {id: orgId}).then(res => {
168
+ this.axios.post(this.api.safeRegion.getById, {id: (res.data || {}).regionId}).then(regionRes => {
169
+ if (!regionRes ||!regionRes.data) {
170
+ this.$message.error("未获取到地区数据!");
171
+ }else {
172
+ resolve(regionRes.data || {});
173
+ }
174
+ })
175
+ })
176
+ })
177
+ },
178
+ renderContentFunc(h, {node, data}) {
179
+ let vm = this;
180
+ if (data.nodeType == "dept" || data.nodeType == "area") {
181
+ return (
182
+ <span>
183
+ <i class={'el-icon-tickets'}></i>
184
+ <span>{node.label}</span>
185
+ </span>
186
+ );
187
+ }
188
+ let MyComempte = (
189
+ <span>
190
+ <i class={'el-icon-coordinate'}></i>
191
+ <span>{node.label}</span>
192
+ </span>
193
+ );
194
+ return MyComempte;
195
+ },
196
+ /*
197
+ 父级勾选
198
+ */
199
+ changePar(id,status){
200
+ //checkedObj:{},
201
+ let childArr=this.parEntObj[id] || [];
202
+ if(status){//父级全选
203
+ childArr.forEach(item =>{
204
+ this.$set(this.checkedObj,item.id,true);
205
+ })
206
+ }else{//父级全不选
207
+ childArr.forEach(item =>{
208
+ this.$set(this.checkedObj,item.id,false);
209
+ })
210
+ }
211
+ },
212
+ /*
213
+ 子级勾选
214
+ */
215
+ changeChild(id,parentId,status){
216
+ let childArr=this.parEntObj[parentId] || [];
217
+ if(status){//勾选的时候判断父级是否需要全选
218
+ let index=childArr.findIndex(item =>{
219
+ if(!this.checkedObj[item.id]){
220
+ return true;
221
+ }
222
+ })
223
+ if(index <0){//同级没有未勾选的
224
+ this.$set(this.checkedObj,parentId,true);
225
+ }
226
+ }else{//取消勾选的时候判断父级是否需要取消全选
227
+ this.$set(this.checkedObj,parentId,false);
228
+ }
229
+ },
230
+ saveData(){
231
+ let checkedArr=[];//保存勾选的数据
232
+ let arr=Object.keys(this.checkedObj) || [];
233
+ arr.forEach(item =>{
234
+ if(this.checkedObj[item]){
235
+ checkedArr.push(item);
236
+ }
237
+ })
238
+ if(checkedArr.length >0){
239
+ this.axios.post(this.api.safeOrgSpv.batchAdd,{"ids":checkedArr.join(","),"orgId":this.orgId}).then(res=>{
240
+ if(res.data.operateSuccess){
241
+ this.$message({type: "success", message: "保存成功!"});
242
+ }else{
243
+ this.$message({type: "error", message: "保存失败!"});
244
+ }
245
+ })
246
+ }else{
247
+ this.axios.post(this.api.safeOrgSpv.batchDelete,{"ids":this.checkedBak.join(",")}).then(res=>{
248
+ if(res.data.operateSuccess){
249
+ this.$message({type: "success", message: "保存成功!"});
250
+ }else{
251
+ this.$message({type: "error", message: "保存失败!"});
252
+ }
253
+ })
254
+ }
255
+ },
256
+ }
257
+ }
258
+ </script>
259
+
260
+ <style scoped>
261
+ .asideTree {
262
+ width: 300px;
263
+ position: relative;
264
+ overflow-y: hidden;
265
+ padding: 5px;
266
+ box-sizing: border-box;
267
+ }
268
+
269
+ .detail-info {
270
+ height: 100%;
271
+ border-left: 1px solid #EBEEF5;
272
+ padding: 5px 0 5px 5px;
273
+ overflow-x: hidden;
274
+ box-sizing: border-box;
275
+ }
276
+
277
+ .econTitleDiv {
278
+ border-radius: 4px 4px 0px 0px;
279
+ background-color: #3498DB;
280
+ height: 36px;
281
+ color: white;
282
+ line-height: 36px;
283
+ font-weight: bold;
284
+ text-align: center;
285
+ font-size: 18px;
286
+ cursor: pointer;
287
+ transition: all 0.5s;
288
+
289
+ }
290
+
291
+ .econTitleDiv .saveButton {
292
+ position: absolute;
293
+ right: 42px;
294
+ top: 23px;
295
+ z-index: 999;
296
+ width: 120px;
297
+ height: 30px;
298
+ cursor: pointer;
299
+ }
300
+ .first_spv_main {
301
+ margin: 4px;
302
+ height: 230px;
303
+ width: 240px;
304
+ padding: 0px;
305
+ border-radius: 4px;
306
+ border: #D8DEE2 solid 1px;
307
+ box-shadow: 0 0 12px 4px #DDE5EA;
308
+ float: left;
309
+ transition: all 0.3s;
310
+ position: relative;
311
+ }
312
+ .first_spv_title{
313
+ position: relative;
314
+ border-radius: 4px 4px 0px 0px;
315
+ background-color: #3498DB;
316
+ height: 34px;
317
+ color: white;
318
+ line-height: 34px;
319
+ text-align: center;
320
+ font-size: 14px;
321
+ cursor: pointer;
322
+ transition: all 0.5s;
323
+ width: 100%;
324
+ }
325
+ /deep/ .first_spv_title .el-checkbox__label{
326
+ color: white;
327
+ }
328
+ /deep/ .first_spv_title .el-checkbox__inner{
329
+ }
330
+ .first_spv_content{
331
+ height: 190px;
332
+ padding-top: 0px;
333
+ width: 100%;
334
+ margin: 0px auto;
335
+ overflow-y: auto;
336
+ overflow-x: hidden;
337
+ }
338
+ /deep/ .first_spv_content .econChildDiv .el-checkbox is-checked .el-checkbox__label{
339
+ color: white;
340
+ }
341
+ .econChildDiv{
342
+ float: left;
343
+ height: 25px;
344
+ line-height: 25px;
345
+ border-radius: 3px;
346
+ padding: 3px 10px;
347
+ border: #E7EBEE solid 1px;
348
+ font-size: 13px;
349
+ display: block;
350
+ cursor: pointer;
351
+ font-family: "微软雅黑";
352
+ width: 200px;
353
+ margin: 5px;
354
+ white-space: nowrap;
355
+ overflow: hidden;
356
+ text-overflow: ellipsis;
357
+ }
358
+ .econChildDiv_checked {
359
+ background-color: #3498DB;
360
+ box-shadow: rgba(52, 152, 219, 0.79) 2px 2px 10px;
361
+ color: white;
362
+ border: #3498DB solid 1px;
363
+ }
364
+ </style>
@@ -0,0 +1,109 @@
1
+ <template>
2
+ <el-container style="width: 100%;height: 100%;">
3
+ <el-header class="title-header" :height="((source == '1') || isEdit) ? '82px' : '30px'">
4
+ <div class="title-div">
5
+ <span style="color:red;">{{spvTitle}}</span><span> 监管行业信息</span>
6
+ </div>
7
+ <el-row v-if="(source == '1') || isEdit" class="header-button-row">
8
+ <el-col :span="10">
9
+ <el-dropdown @command="openSafeSpvDialog">
10
+ <el-button type="success" size="mini">添加
11
+ <i class="el-icon-arrow-down el-icon--right"></i></el-button>
12
+ <el-dropdown-menu slot="dropdown">
13
+ <el-dropdown-item command="1">同级行业</el-dropdown-item>
14
+ <el-dropdown-item command="2">下级行业</el-dropdown-item>
15
+ </el-dropdown-menu>
16
+ </el-dropdown>
17
+ </el-col>
18
+ <el-col :span="7">
19
+ <el-button size="mini" type="primary" @click="openSafeSpvDialog('edit')">修改</el-button>
20
+ </el-col>
21
+ <el-col :span="7">
22
+ <el-button size="mini" type="danger" @click="removeSafeSpv()">删除</el-button>
23
+ </el-col>
24
+ </el-row>
25
+ </el-header>
26
+ <el-main :style="((source == '1') || isEdit) ? 'height: calc(100% - 82px);padding-top:10px' : 'height: calc(100% - 30px);padding-top:10px'">
27
+ <el-tree v-if="showTree" ref="spvTreeRef"
28
+ :show-checkbox="((source == '1') || isEdit)"
29
+ :expand-on-click-node="false"
30
+ :data="spvTreeDataArr" :props="defaultProps"
31
+ node-key="id" default-expand-all
32
+ :render-content="renderSpvNodeContent"
33
+ :current-node-key="currentNodeKey"
34
+ highlight-current
35
+ @node-click="nodeClick"
36
+ ></el-tree>
37
+ </el-main>
38
+ </el-container>
39
+ </template>
40
+
41
+ <script>
42
+ export default {
43
+ name: "safeSpvLeftTree",
44
+ props:{
45
+ source:{type:String,default:"1"},//来源,1-修改系统默认监管配置
46
+ spvTitle:{type:String,default:""},
47
+ showTree:{type:Boolean,default:false},
48
+ spvTreeDataArr:{type:Array,default:() => {return [];}},
49
+ currentNodeKey:{type:String,default:""},
50
+ defaultProps:{type:Object,default:() => {return {};}},
51
+ isEdit:{type:Boolean,default:false},
52
+ openSafeSpvDialog:{type:Function,default:null},
53
+ removeSafeSpv:{type:Function,default:null},
54
+ },
55
+ created(){
56
+ },
57
+ methods:{
58
+ /**
59
+ * 自定义左侧树节点显示内容
60
+ */
61
+ renderSpvNodeContent(h, { node, data, store }){
62
+ if(data.countSshy > 0){
63
+ return (
64
+ <span>
65
+ <span>{node.label}</span>
66
+ <span style="color:red">({data.countSshy})</span>
67
+ </span>
68
+ );
69
+ }else{
70
+ return (
71
+ <span>
72
+ <span>{node.label}</span>
73
+ </span>
74
+ );
75
+ }
76
+ },
77
+
78
+ /**
79
+ * 节点点击
80
+ * @param data
81
+ * @param node
82
+ */
83
+ nodeClick(data, node){
84
+ return this.$emit("nodeClick",data,node)
85
+ },
86
+
87
+
88
+ }
89
+ }
90
+ </script>
91
+
92
+ <style scoped>
93
+ .title-div {
94
+ padding-left: 10px;
95
+ padding-right: 10px;
96
+ }
97
+ .title-header{
98
+ font-size: 14px;
99
+ line-height: 30px;
100
+ font-weight: bold;
101
+ border-bottom: 1px solid #cccccc;
102
+ padding: 0;
103
+ }
104
+
105
+ .header-button-row {
106
+ border-top: 1px solid #cccccc;
107
+ padding: 10px;
108
+ }
109
+ </style>