apply-clients 7.1.36-yuchuan-56 → 7.1.36-yuchuan-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 (68) hide show
  1. package/android.html +27 -27
  2. package/build/dev-server.js +192 -192
  3. package/package.json +1 -1
  4. package/src/apply.js +163 -163
  5. package/src/applyAndroid.js +98 -98
  6. package/src/components/android/AppSign.vue +232 -232
  7. package/src/components/android/Ignition/VentilationIgnition.vue +409 -409
  8. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +472 -472
  9. package/src/components/android/Process/AppExplorationUser.vue +454 -454
  10. package/src/components/android/Process/AppServiceControl.vue +1434 -1434
  11. package/src/components/android/Process/Processes/AppInstallationDetails.vue +1026 -1026
  12. package/src/components/android/Process/Processes/newAppInstallationDetails.vue +671 -671
  13. package/src/components/android/SealBind.vue +382 -382
  14. package/src/components/android/SealManage.vue +278 -278
  15. package/src/components/android/Sign/AppSignTask.vue +183 -183
  16. package/src/components/android/Supervisory/AppProcessSupervisory.vue +344 -344
  17. package/src/components/android/Task/Build/BuildTsak.vue +117 -117
  18. package/src/components/android/Task/BuildIgnition/BuildIgnition.vue +114 -114
  19. package/src/components/android/Task/GuanXianJianShe/AppExplorationGuanXian.vue +317 -317
  20. package/src/components/android/Task/RepairFromSend/RepairFrom.vue +124 -124
  21. package/src/components/android/Task/RepairFromSend/RepairSend.vue +124 -124
  22. package/src/components/android/Task/ShiGongXinXi/AppShowBuildUser.vue +431 -431
  23. package/src/components/android/Task/Survey/SurveyTsak.vue +141 -141
  24. package/src/components/android/Task/yiban/AppShowDone.vue +442 -442
  25. package/src/components/android/newPackage/customerServiceManager.vue +218 -218
  26. package/src/components/android/newPackage/projectPrice.vue +218 -218
  27. package/src/components/product/ApplyCharge/ApplyChargeList.vue +1101 -1101
  28. package/src/components/product/ApplyGuanXian/GuanXianExplorationSelect.vue +325 -325
  29. package/src/components/product/ApplyGuanXian/GuanXianExplorationUser.vue +142 -142
  30. package/src/components/product/ApplyGuanXian/GuanXianSupervisoryhCart.vue +119 -119
  31. package/src/components/product/ApplyMap/AppMapLocation.vue +829 -829
  32. package/src/components/product/ApplyMap/ApplyMapInputSearch.vue +335 -335
  33. package/src/components/product/ChongZheng/ApplyChongZhengList.vue +417 -417
  34. package/src/components/product/Function/InstallFunction.vue +132 -132
  35. package/src/components/product/Function/InstallInfoSelect.vue +374 -374
  36. package/src/components/product/Function/Service/FunctionServiceControl.vue +581 -581
  37. package/src/components/product/Ignition/IgnitionDispatch.vue +90 -90
  38. package/src/components/product/Ignition/IgnitionListManage.vue +604 -604
  39. package/src/components/product/Ignition/IgnitionRecord.vue +380 -380
  40. package/src/components/product/InsuranceApply/InsuranceReport.vue +188 -188
  41. package/src/components/product/List/OldShowDevices.vue +272 -272
  42. package/src/components/product/List/ShowAllActivity.vue +541 -541
  43. package/src/components/product/List/ShowDevices.vue +279 -279
  44. package/src/components/product/Print/BuildOrder/buildOrderList.vue +446 -446
  45. package/src/components/product/Process/ExplorationSelect.vue +593 -593
  46. package/src/components/product/Process/ExplorationUser.vue +154 -154
  47. package/src/components/product/Process/New1ExplorationUser.vue +196 -196
  48. package/src/components/product/Process/NewExplorationSelect.vue +587 -587
  49. package/src/components/product/Process/NewExplorationUser.vue +216 -216
  50. package/src/components/product/Process/Processes/Print/printCharge.vue +250 -250
  51. package/src/components/product/Process/Processes/Print/printGaiXianCharge.vue +244 -244
  52. package/src/components/product/Process/Processes/chargeManagement.vue +2 -1
  53. package/src/components/product/Process/Processes/selectApply.vue +250 -250
  54. package/src/components/product/Process/Processes/selectChaiChuUserinfo.vue +230 -230
  55. package/src/components/product/Process/Processes/selectOldUserinfo.vue +241 -241
  56. package/src/components/product/Process/Processes/selectUserinfo.vue +234 -234
  57. package/src/components/product/Process/Service/ShowBackReason.vue +33 -33
  58. package/src/components/product/ServiceView.vue +644 -644
  59. package/src/components/product/Stop/StopApplyList.vue +224 -224
  60. package/src/components/product/Supervisory/NewSupervisoryhCart.vue +175 -175
  61. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +593 -593
  62. package/src/components/product/Supervisory/SupervisoryControl.vue +114 -114
  63. package/src/components/product/Supervisory/SupervisoryList.vue +586 -586
  64. package/src/components/product/Supervisory/SupervisoryhCart.vue +120 -120
  65. package/src/components/product/Supervisory/YiBanSupervisoryControl.vue +111 -111
  66. package/src/components/product/Supervisory/YiBanSupervisoryList.vue +539 -539
  67. package/src/components/product/VueUtils/ApplyUpload.vue +303 -303
  68. package/src/main.js +27 -27
@@ -1,593 +1,593 @@
1
- <template>
2
- <div class="auto clearfix">
3
- <show-back-reason :selectdata="show_data"></show-back-reason>
4
- </div>
5
- <service-view v-ref:service_show :data="show_data" v-if="showview"></service-view>
6
- </template>
7
- <script>
8
- import Vue from 'vue'
9
- import {HttpResetClass} from 'vue-client'
10
- import {isEmpty} from "../../../Util";
11
- // Date格式化
12
- Date.prototype.Format = function (fmt) {
13
- var o = {
14
- 'M+': this.getMonth() + 1, // 月份
15
- 'd+': this.getDate(), // 日
16
- 'H+': this.getHours(), // 小时
17
- 'm+': this.getMinutes(), // 分
18
- 's+': this.getSeconds(), // 秒
19
- 'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
20
- 'S': this.getMilliseconds() // 毫秒
21
- }
22
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
23
- for (var k in o) {
24
- if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
25
- }
26
- return fmt
27
- }
28
- export default {
29
- title: '报建监控控制层',
30
- props: {
31
- selectdata: {
32
- type: Object
33
- },
34
- nodeSnapshot: {
35
- type: Boolean,
36
- default: false
37
- }
38
- },
39
- data() {
40
- return {
41
- data: null, // 展示的数据
42
- json_datas: null, // json配置数据结构
43
- showview: false, // 控制显示层显示
44
- show_data: null
45
- }
46
- },
47
- created () {
48
- this.refurbish()
49
- },
50
- methods: {
51
- // 初始化模块
52
- async refurbish() {
53
- this.json_datas = this.$workflow_vue
54
- let sum = 0
55
- let jsonData = {}
56
- if (!this.json_datas || !this.json_datas.activitys || this.json_datas.activitys.length === 0) {
57
- this.$showMessage("网络故障,请刷新页面")
58
- return
59
- }
60
- this.json_datas.activitys.forEach(item => {
61
- if (this.selectdata.defname === item.title) {
62
- jsonData = item // 拿到当前节点的json配置信息
63
- sum++ // 节点名一样的个数
64
- }
65
- return this.selectdata.defname === item.title // 拿到当前节点的json配置信息
66
- })
67
- if (sum === 0) {
68
- this.$showMessage(`没有在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置`)
69
- return
70
- }
71
- if (sum > 1) {
72
- this.$showMessage(`在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置:${sum}个`)
73
- return
74
- }
75
-
76
- this.data = null
77
- this.data = jsonData
78
- this.data = Object.assign({}, this.data, this.selectdata)
79
-
80
- // fields 字段填充值
81
- for (const item of this.data.fields) {
82
- if (this.selectdata[item.field]) {
83
- item.value = this.selectdata[item.field]
84
- }
85
- if (this.selectdata[item.field] === 0) {
86
- item.value = 0
87
- }
88
- item.readonly = true
89
- item.disabled = true
90
- if (item.logo) {
91
- if (item.ready) {
92
- item.options = await this[item.ready]()
93
- }
94
- }
95
- if (item.param) {
96
- let temp = this.$appdata.getParam(item.label)
97
-
98
- if (temp && temp.length > 0) {
99
- item.options = temp
100
- }
101
-
102
- if (item.paramLabel) {
103
- temp = this.$appdata.getParam(item.paramLabel)
104
- if (temp && temp.length > 0) {
105
- item.options = temp
106
- }
107
- }
108
- }
109
- }
110
-
111
- // 控制组件
112
- if (this.data.components) {
113
- this.data.components.forEach(item => {
114
- item.mark = 1
115
- })
116
- }
117
-
118
- // onetomany 数据获取
119
- if (this.data.onetomany) {
120
- for (const item of this.data.onetomany) {
121
- let res = null
122
- if (item.queryEvent) {
123
- res = this[item.queryEvent]()
124
- } else {
125
- let data = {
126
- tablename: item.tables[0],
127
- condition: `f_process_id='${this.selectdata.f_process_id}'`
128
- }
129
- res = await this.$resetpost(
130
- 'rs/sql/applySingleTable',
131
- {data: data},
132
- {resolveMsg: null, rejectMsg: 'onetomany查询失败'}
133
- )
134
- }
135
-
136
- item.rows = res.data
137
-
138
- // 隐藏所有操作
139
- item.hiddenOperate = true
140
- }
141
- }
142
-
143
- // 去除button
144
- this.data.buttons = null
145
-
146
- // 完成时间和完成人,部门,分公司
147
- if (this.selectdata.state === '结束') {
148
- this.data.operate_date = new Date(this.selectdata.finishtime).Format('yyyy-MM-dd')
149
- this.data.operator = this.selectdata.person
150
-
151
- let http = new HttpResetClass()
152
- try {
153
- let res = await http.load('POST', 'rs/search', {
154
- source: 'this.getInfo()',
155
- userid: this.selectdata.userid
156
- }, {resolveMsg: null, rejectMsg: null})
157
- let user = res.data
158
- debugger
159
- this.data.orgs = user.orgs
160
- this.data.parentname = user.deps
161
- } catch (e) {
162
- this.data.orgs = "榆林."+this.$login.f.orgs
163
- this.data.parentname = this.$login.f.deps
164
- }
165
- }
166
- if (this.selectdata.f_apply_nature === '散户') {
167
- this.hideLabels('营业执照', '小区')
168
- this.electiveLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
169
- }
170
- if (this.selectdata.f_apply_nature === '小区') {
171
- this.showLabels('营业执照', '小区', '小区名称')
172
- this.requiredLabels( '小区')
173
- }
174
- if (this.selectdata.f_dispatching_type === '施工工队') {
175
- this.showLabels('现场项目负责人', '安装单位', '建设单位', '监理单位', '土建单位', '检测单位')
176
- this.requiredLabels( '小区')
177
- }
178
- // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
179
- let temp = JSON.parse(JSON.stringify(this.data))
180
-
181
- this.show_data = temp
182
- this.$nextTick(() => {
183
- if ((this.show_data.defname==='报装缴费' || this.show_data.defname==='收费标准') && !(this.$login.f.rolesnames.includes('营业厅报装')||this.$login.f.rolesnames.includes('市场部报装'))){
184
- this.showview = false
185
- this.$showMessage("对不起,您没有查看此节点的权限!")
186
- }else {
187
- this.showview = true
188
- }
189
- })
190
- },
191
- // json配置数据处理
192
- async initializtion() {
193
- // 查询是否有当前节点快照信息,如果有使用快照数据,没有则展示最新数据
194
- if (this.nodeSnapshot && this.data.nodeSnapshot) {
195
- let http = new HttpResetClass()
196
- let data = {
197
- tablename: 't_node_snapshot',
198
- condition: `actid = '${this.selectdata.actid}' and f_process_id='${this.selectdata.f_process_id}'`
199
- }
200
- let res = await http.load('POST', 'rs/sql/applySingleTable', {data: data}, {
201
- resolveMsg: null,
202
- rejectMsg: null
203
- })
204
- if (res.data.length > 0) {
205
- data = JSON.parse(res.data[0].f_node_data)
206
-
207
- this.data.fields = data.fields
208
- this.data.onetomany = data.onetomany
209
- this.data.title = data.title
210
- }
211
- }
212
- },
213
- hideLabels(...labels) {
214
- console.log('报建性质1')
215
- for (const item of this.data.fields) {
216
- if (labels.includes(item.label)) {
217
- item.hidden = true
218
- }
219
- }
220
- },
221
- electiveLabels(...labels) {
222
- console.log('报建性质2')
223
- for (const item of this.data.fields) {
224
- if (labels.includes(item.label)) {
225
- item.required = false
226
- }
227
- }
228
- },
229
- showLabels(...labels) {
230
- console.log('报建性质3')
231
- for (const item of this.data.fields) {
232
- if (labels.includes(item.label)) {
233
- item.hidden = false
234
- }
235
- }
236
- },
237
- requiredLabels(...labels) {
238
- console.log('报建性质4')
239
- for (const item of this.data.fields) {
240
- if (labels.includes(item.label)) {
241
- item.required = true
242
- }
243
- }
244
- },
245
- setLabelOptions(label, options) {
246
- for (const item of this.show_data.fields) {
247
- if (item.label === label) {
248
- item.options = options
249
- }
250
- }
251
- },
252
- // 获取小区
253
- async getResidentialArea () {
254
- let data = {
255
- tablename: 't_area_address',
256
- condition: `f_filiale like '%${"榆林."+this.$login.f.orgs}%' and f_area_status = '启用'`
257
- }
258
- let http = new HttpResetClass()
259
- let res = await http.load(
260
- 'POST',
261
- `rs/sql/applySingleTable`,
262
- {data: data},
263
- {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
264
- )
265
- return res.data.map(item => {
266
- return {
267
- label: item.f_residential_area,
268
- value: item.id
269
- }
270
- })
271
- },
272
- // 获取气表品牌
273
- async getMeterBrand () {
274
- let data = {
275
- }
276
-
277
- let http = new HttpResetClass()
278
- let res = await http.load(
279
- 'POST',
280
- `rs/sql/getMeterBrand1`,
281
- {data: data},
282
- {resolveMsg: null, rejectMsg: '气表品牌查询失败!!!'}
283
- )
284
-
285
- return res.data
286
- },
287
- async meterBrandChenge (index) {
288
- if (isEmpty(this.selectdata.f_meter_brand)) {
289
- console.log("测试无表具")
290
- return
291
- }
292
- let data = {
293
- f_gasbrand_id: this.selectdata.f_meter_brand
294
- }
295
- let http = new HttpResetClass()
296
- let res = await http.load(
297
- 'POST',
298
- `rs/sql/getGasModel`,
299
- {data: data},
300
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
301
- )
302
- console.log("测试有表具",res.data)
303
- return res.data
304
- },
305
- async getUserName() {
306
- console.log('用户姓名查询')
307
- if(this.selectdata.f_construction_unit_id){
308
- let data = {
309
- tablename: 't_user',
310
- condition: `id='${this.selectdata.f_construction_unit_id}'`
311
- }
312
- let res = await this.$resetpost(
313
- 'rs/sql/applySingleTable',
314
- {data: data},
315
- {resolveMsg: null, rejectMsg: null}
316
- )
317
- return res.data.map(item => {
318
- return {
319
- label: item.name,
320
- value: item.id
321
- }
322
- })
323
- }
324
- return
325
- },
326
- async getConstructionWorker(){
327
- let data = {
328
- source: 'this.getParentByType($organization$).getChildByName($建设单位$).getChildren()',
329
- userid: this.$login.f.id
330
- }
331
-
332
- let res = await this.$resetpost(
333
- `rs/search`,
334
- {data: data},
335
- {resolveMsg: null, rejectMsg: '现场负责人查询失败!!!'}
336
- )
337
-
338
- return res.data.map(item => {
339
- return {
340
- label: item.name,
341
- value: item.id
342
- }
343
- })
344
- },
345
- // 安装单位签字人
346
- async getConstructionUnitId () {
347
- if (this.selectdata.f_construction_unit_id){
348
- let data = {
349
- tablename: 't_user',
350
- condition: `id='${this.selectdata.f_construction_unit_id}'`
351
- }
352
- let res = await this.$resetpost(
353
- 'rs/sql/applySingleTable',
354
- {data: data},
355
- {resolveMsg: null, rejectMsg: null}
356
- )
357
- return res.data.map(item => {
358
- return {
359
- label: item.name,
360
- value: item.id
361
- }
362
- })
363
- }
364
- },
365
- // 安装单位负责人
366
- async getConstructionUnit () {
367
- let data = {
368
- source: 'this.getParentByType($organization$).getChildByName($工程施工队$).getChildren()',
369
- userid: this.$login.f.id
370
- }
371
-
372
- let res = await this.$resetpost(
373
- 'rs/search',
374
- {data: data},
375
- {resolveMsg: null, rejectMsg: '安装单位负责人查询失败!!!'}
376
- )
377
-
378
- return res.data.map(item => {
379
- return {
380
- label: item.name,
381
- value: item.id
382
- }
383
- })
384
- },
385
- // 建设单位
386
- async getConstructOperator () {
387
- let data = {
388
- source: 'this.getParentByType($organization$).getChildByName($建设单位$).getChildren()',
389
- userid: this.$login.f.id
390
- }
391
-
392
- let res = await this.$resetpost(
393
- 'rs/search',
394
- {data: data},
395
- {resolveMsg: null, rejectMsg: '建设单位人员查询失败!!!'}
396
- )
397
-
398
- return res.data.map(item => {
399
- return {
400
- label: item.name,
401
- value: item.id
402
- }
403
- })
404
- },
405
- // 监理单位
406
- async getSupervisorOperator () {
407
- let data = {
408
- source: 'this.getParentByType($organization$).getChildByName($监理单位$).getChildren()',
409
- userid: this.$login.f.id
410
- }
411
-
412
- let res = await this.$resetpost(
413
- 'rs/search',
414
- {data: data},
415
- {resolveMsg: null, rejectMsg: '监理单位人员查询失败!!!'}
416
- )
417
- return res.data.map(item => {
418
- return {
419
- label: item.name,
420
- value: item.id
421
- }
422
- })
423
- },
424
- // 监理现场负责人
425
- async getSupervisorOperatorId () {
426
- let data = {
427
- source: 'this.getParentByType($organization$).getChildByName($监理班组$).getChildren()',
428
- userid: this.$login.f.id
429
- }
430
- let res = await this.$resetpost(
431
- 'rs/search',
432
- {data: data},
433
- {resolveMsg: null, rejectMsg: '监理单位人员查询失败!!!'}
434
- )
435
- return res.data.map(item => {
436
- return {
437
- label: item.name,
438
- value: item.id
439
- }
440
- })
441
- },
442
- // 土建单位
443
- async getEngineeringOperator () {
444
- let data = {
445
- source: 'this.getParentByType($organization$).getChildByName($土建单位$).getChildren()',
446
- userid: this.$login.f.id
447
- }
448
-
449
- let res = await this.$resetpost(
450
- 'rs/search',
451
- {data: data},
452
- {resolveMsg: null, rejectMsg: '土建单位人员查询失败!!!'}
453
- )
454
- let result = res.data.map(item => {
455
- return {
456
- label: item.name,
457
- value: item.id
458
- }
459
- })
460
- result.push({label:'用户自理',value:'用户自理'})
461
- result.push({label:'无',value:'无'})
462
- return result
463
- },
464
- // 检测单位
465
- async getCheckOperator () {
466
- let data = {
467
- source: 'this.getParentByType($organization$).getChildByName($检测单位$).getChildren()',
468
- userid: this.$login.f.id
469
- }
470
-
471
- let res = await this.$resetpost(
472
- 'rs/search',
473
- {data: data},
474
- {resolveMsg: null, rejectMsg: '检测单位人员查询失败!!!'}
475
- )
476
-
477
- let result = res.data.map(item => {
478
- return {
479
- label: item.name,
480
- value: item.id
481
- }
482
- })
483
- result.push({label:'无',value:'无'})
484
- return result
485
- },
486
- // 户内出单日期
487
- async getOutdoorsTime () {
488
- for (const item of this.data.fields) {
489
- if (item.label === '户内出单日期') {
490
- item.value = this.data.f_release_date
491
- this.data[item.field] = item.value
492
- }else if(item.label === '庭院出单日期'){
493
- item.value = this.data.f_release_date
494
- this.data[item.field] = item.value
495
- }
496
- }
497
- },
498
- async getChargeDate() {
499
- let data = {
500
- tablename: 'activityins',
501
- condition: `processid = '${this.data.f_process_id}' and defname = '报装缴费'`,
502
- }
503
-
504
- let http = new HttpResetClass()
505
- let res = await http.load(
506
- 'POST',
507
- `rs/sql/applySingleTable`,
508
- {data: data},
509
- {resolveMsg: null, rejectMsg: null}
510
- )
511
- if (res.data[0]){
512
- for (const item of this.data.fields) {
513
- if (item.label === '缴费日期') {
514
- item.value = res.data[0].finishtime
515
- this.data[item.field] = item.value
516
- }
517
- }
518
- }
519
- },
520
- async getSingAct() {
521
- let data = {
522
- f_process_id: this.data.f_process_id
523
- }
524
- let http = new HttpResetClass()
525
- let res = await http.load(
526
- 'POST',
527
- `rs/sql/getSingAct`,
528
- {data: data},
529
- {resolveMsg: null, rejectMsg: '签字状态查询失败!!!'}
530
- )
531
- if (res.data.length > 0) {
532
- for (const item of this.data.fields) {
533
- if (item.label === '签字所在环节') {
534
- item.value = res.data[0].defname
535
- this.data[item.field] = item.value
536
- }
537
- }
538
- }
539
- }
540
- },
541
- events:{
542
- // 工程派工初始化
543
- async 'dispatchReadyEvent' () {
544
- console.log("cscc")
545
- if (isEmpty(this.show_data.f_meter_brand)) {
546
- return
547
- }
548
- let data = {
549
- f_gasbrand_id: this.show_data.f_meter_brand
550
- }
551
- let http = new HttpResetClass()
552
- let res = await http.load(
553
- 'POST',
554
- `rs/sql/getGasModel`,
555
- {data: data},
556
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
557
- )
558
-
559
- this.setLabelOptions('气表型号', res.data)
560
- },
561
- async 'buildReadyEvent' () {
562
- console.log("cscc")
563
- if (isEmpty(this.show_data.f_meter_brand)) {
564
- return
565
- }
566
- let data = {
567
- f_gasbrand_id: this.show_data.f_meter_brand
568
- }
569
- let http = new HttpResetClass()
570
- let res = await http.load(
571
- 'POST',
572
- `rs/sql/getGasModel`,
573
- {data: data},
574
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
575
- )
576
-
577
- this.setLabelOptions('气表型号', res.data)
578
- }
579
- },
580
- watch: {
581
- deep: true
582
- }
583
- }
584
- </script>
585
- <style scoped>
586
- /*清除model中的浮动*/
587
- .clearfix:after,.clearfix:before{
588
- display: table;
589
- }
590
- .clearfix:after{
591
- clear: both;
592
- }
593
- </style>
1
+ <template>
2
+ <div class="auto clearfix">
3
+ <show-back-reason :selectdata="show_data"></show-back-reason>
4
+ </div>
5
+ <service-view v-ref:service_show :data="show_data" v-if="showview"></service-view>
6
+ </template>
7
+ <script>
8
+ import Vue from 'vue'
9
+ import {HttpResetClass} from 'vue-client'
10
+ import {isEmpty} from "../../../Util";
11
+ // Date格式化
12
+ Date.prototype.Format = function (fmt) {
13
+ var o = {
14
+ 'M+': this.getMonth() + 1, // 月份
15
+ 'd+': this.getDate(), // 日
16
+ 'H+': this.getHours(), // 小时
17
+ 'm+': this.getMinutes(), // 分
18
+ 's+': this.getSeconds(), // 秒
19
+ 'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
20
+ 'S': this.getMilliseconds() // 毫秒
21
+ }
22
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
23
+ for (var k in o) {
24
+ if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
25
+ }
26
+ return fmt
27
+ }
28
+ export default {
29
+ title: '报建监控控制层',
30
+ props: {
31
+ selectdata: {
32
+ type: Object
33
+ },
34
+ nodeSnapshot: {
35
+ type: Boolean,
36
+ default: false
37
+ }
38
+ },
39
+ data() {
40
+ return {
41
+ data: null, // 展示的数据
42
+ json_datas: null, // json配置数据结构
43
+ showview: false, // 控制显示层显示
44
+ show_data: null
45
+ }
46
+ },
47
+ created () {
48
+ this.refurbish()
49
+ },
50
+ methods: {
51
+ // 初始化模块
52
+ async refurbish() {
53
+ this.json_datas = this.$workflow_vue
54
+ let sum = 0
55
+ let jsonData = {}
56
+ if (!this.json_datas || !this.json_datas.activitys || this.json_datas.activitys.length === 0) {
57
+ this.$showMessage("网络故障,请刷新页面")
58
+ return
59
+ }
60
+ this.json_datas.activitys.forEach(item => {
61
+ if (this.selectdata.defname === item.title) {
62
+ jsonData = item // 拿到当前节点的json配置信息
63
+ sum++ // 节点名一样的个数
64
+ }
65
+ return this.selectdata.defname === item.title // 拿到当前节点的json配置信息
66
+ })
67
+ if (sum === 0) {
68
+ this.$showMessage(`没有在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置`)
69
+ return
70
+ }
71
+ if (sum > 1) {
72
+ this.$showMessage(`在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置:${sum}个`)
73
+ return
74
+ }
75
+
76
+ this.data = null
77
+ this.data = jsonData
78
+ this.data = Object.assign({}, this.data, this.selectdata)
79
+
80
+ // fields 字段填充值
81
+ for (const item of this.data.fields) {
82
+ if (this.selectdata[item.field]) {
83
+ item.value = this.selectdata[item.field]
84
+ }
85
+ if (this.selectdata[item.field] === 0) {
86
+ item.value = 0
87
+ }
88
+ item.readonly = true
89
+ item.disabled = true
90
+ if (item.logo) {
91
+ if (item.ready) {
92
+ item.options = await this[item.ready]()
93
+ }
94
+ }
95
+ if (item.param) {
96
+ let temp = this.$appdata.getParam(item.label)
97
+
98
+ if (temp && temp.length > 0) {
99
+ item.options = temp
100
+ }
101
+
102
+ if (item.paramLabel) {
103
+ temp = this.$appdata.getParam(item.paramLabel)
104
+ if (temp && temp.length > 0) {
105
+ item.options = temp
106
+ }
107
+ }
108
+ }
109
+ }
110
+
111
+ // 控制组件
112
+ if (this.data.components) {
113
+ this.data.components.forEach(item => {
114
+ item.mark = 1
115
+ })
116
+ }
117
+
118
+ // onetomany 数据获取
119
+ if (this.data.onetomany) {
120
+ for (const item of this.data.onetomany) {
121
+ let res = null
122
+ if (item.queryEvent) {
123
+ res = this[item.queryEvent]()
124
+ } else {
125
+ let data = {
126
+ tablename: item.tables[0],
127
+ condition: `f_process_id='${this.selectdata.f_process_id}'`
128
+ }
129
+ res = await this.$resetpost(
130
+ 'rs/sql/applySingleTable',
131
+ {data: data},
132
+ {resolveMsg: null, rejectMsg: 'onetomany查询失败'}
133
+ )
134
+ }
135
+
136
+ item.rows = res.data
137
+
138
+ // 隐藏所有操作
139
+ item.hiddenOperate = true
140
+ }
141
+ }
142
+
143
+ // 去除button
144
+ this.data.buttons = null
145
+
146
+ // 完成时间和完成人,部门,分公司
147
+ if (this.selectdata.state === '结束') {
148
+ this.data.operate_date = new Date(this.selectdata.finishtime).Format('yyyy-MM-dd')
149
+ this.data.operator = this.selectdata.person
150
+
151
+ let http = new HttpResetClass()
152
+ try {
153
+ let res = await http.load('POST', 'rs/search', {
154
+ source: 'this.getInfo()',
155
+ userid: this.selectdata.userid
156
+ }, {resolveMsg: null, rejectMsg: null})
157
+ let user = res.data
158
+ debugger
159
+ this.data.orgs = user.orgs
160
+ this.data.parentname = user.deps
161
+ } catch (e) {
162
+ this.data.orgs = "榆林."+this.$login.f.orgs
163
+ this.data.parentname = this.$login.f.deps
164
+ }
165
+ }
166
+ if (this.selectdata.f_apply_nature === '散户') {
167
+ this.hideLabels('营业执照', '小区')
168
+ this.electiveLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
169
+ }
170
+ if (this.selectdata.f_apply_nature === '小区') {
171
+ this.showLabels('营业执照', '小区', '小区名称')
172
+ this.requiredLabels( '小区')
173
+ }
174
+ if (this.selectdata.f_dispatching_type === '施工工队') {
175
+ this.showLabels('现场项目负责人', '安装单位', '建设单位', '监理单位', '土建单位', '检测单位')
176
+ this.requiredLabels( '小区')
177
+ }
178
+ // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
179
+ let temp = JSON.parse(JSON.stringify(this.data))
180
+
181
+ this.show_data = temp
182
+ this.$nextTick(() => {
183
+ if ((this.show_data.defname==='报装缴费' || this.show_data.defname==='收费标准') && !(this.$login.f.rolesnames.includes('营业厅报装')||this.$login.f.rolesnames.includes('市场部报装'))){
184
+ this.showview = false
185
+ this.$showMessage("对不起,您没有查看此节点的权限!")
186
+ }else {
187
+ this.showview = true
188
+ }
189
+ })
190
+ },
191
+ // json配置数据处理
192
+ async initializtion() {
193
+ // 查询是否有当前节点快照信息,如果有使用快照数据,没有则展示最新数据
194
+ if (this.nodeSnapshot && this.data.nodeSnapshot) {
195
+ let http = new HttpResetClass()
196
+ let data = {
197
+ tablename: 't_node_snapshot',
198
+ condition: `actid = '${this.selectdata.actid}' and f_process_id='${this.selectdata.f_process_id}'`
199
+ }
200
+ let res = await http.load('POST', 'rs/sql/applySingleTable', {data: data}, {
201
+ resolveMsg: null,
202
+ rejectMsg: null
203
+ })
204
+ if (res.data.length > 0) {
205
+ data = JSON.parse(res.data[0].f_node_data)
206
+
207
+ this.data.fields = data.fields
208
+ this.data.onetomany = data.onetomany
209
+ this.data.title = data.title
210
+ }
211
+ }
212
+ },
213
+ hideLabels(...labels) {
214
+ console.log('报建性质1')
215
+ for (const item of this.data.fields) {
216
+ if (labels.includes(item.label)) {
217
+ item.hidden = true
218
+ }
219
+ }
220
+ },
221
+ electiveLabels(...labels) {
222
+ console.log('报建性质2')
223
+ for (const item of this.data.fields) {
224
+ if (labels.includes(item.label)) {
225
+ item.required = false
226
+ }
227
+ }
228
+ },
229
+ showLabels(...labels) {
230
+ console.log('报建性质3')
231
+ for (const item of this.data.fields) {
232
+ if (labels.includes(item.label)) {
233
+ item.hidden = false
234
+ }
235
+ }
236
+ },
237
+ requiredLabels(...labels) {
238
+ console.log('报建性质4')
239
+ for (const item of this.data.fields) {
240
+ if (labels.includes(item.label)) {
241
+ item.required = true
242
+ }
243
+ }
244
+ },
245
+ setLabelOptions(label, options) {
246
+ for (const item of this.show_data.fields) {
247
+ if (item.label === label) {
248
+ item.options = options
249
+ }
250
+ }
251
+ },
252
+ // 获取小区
253
+ async getResidentialArea () {
254
+ let data = {
255
+ tablename: 't_area_address',
256
+ condition: `f_filiale like '%${"榆林."+this.$login.f.orgs}%' and f_area_status = '启用'`
257
+ }
258
+ let http = new HttpResetClass()
259
+ let res = await http.load(
260
+ 'POST',
261
+ `rs/sql/applySingleTable`,
262
+ {data: data},
263
+ {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
264
+ )
265
+ return res.data.map(item => {
266
+ return {
267
+ label: item.f_residential_area,
268
+ value: item.id
269
+ }
270
+ })
271
+ },
272
+ // 获取气表品牌
273
+ async getMeterBrand () {
274
+ let data = {
275
+ }
276
+
277
+ let http = new HttpResetClass()
278
+ let res = await http.load(
279
+ 'POST',
280
+ `rs/sql/getMeterBrand1`,
281
+ {data: data},
282
+ {resolveMsg: null, rejectMsg: '气表品牌查询失败!!!'}
283
+ )
284
+
285
+ return res.data
286
+ },
287
+ async meterBrandChenge (index) {
288
+ if (isEmpty(this.selectdata.f_meter_brand)) {
289
+ console.log("测试无表具")
290
+ return
291
+ }
292
+ let data = {
293
+ f_gasbrand_id: this.selectdata.f_meter_brand
294
+ }
295
+ let http = new HttpResetClass()
296
+ let res = await http.load(
297
+ 'POST',
298
+ `rs/sql/getGasModel`,
299
+ {data: data},
300
+ {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
301
+ )
302
+ console.log("测试有表具",res.data)
303
+ return res.data
304
+ },
305
+ async getUserName() {
306
+ console.log('用户姓名查询')
307
+ if(this.selectdata.f_construction_unit_id){
308
+ let data = {
309
+ tablename: 't_user',
310
+ condition: `id='${this.selectdata.f_construction_unit_id}'`
311
+ }
312
+ let res = await this.$resetpost(
313
+ 'rs/sql/applySingleTable',
314
+ {data: data},
315
+ {resolveMsg: null, rejectMsg: null}
316
+ )
317
+ return res.data.map(item => {
318
+ return {
319
+ label: item.name,
320
+ value: item.id
321
+ }
322
+ })
323
+ }
324
+ return
325
+ },
326
+ async getConstructionWorker(){
327
+ let data = {
328
+ source: 'this.getParentByType($organization$).getChildByName($建设单位$).getChildren()',
329
+ userid: this.$login.f.id
330
+ }
331
+
332
+ let res = await this.$resetpost(
333
+ `rs/search`,
334
+ {data: data},
335
+ {resolveMsg: null, rejectMsg: '现场负责人查询失败!!!'}
336
+ )
337
+
338
+ return res.data.map(item => {
339
+ return {
340
+ label: item.name,
341
+ value: item.id
342
+ }
343
+ })
344
+ },
345
+ // 安装单位签字人
346
+ async getConstructionUnitId () {
347
+ if (this.selectdata.f_construction_unit_id){
348
+ let data = {
349
+ tablename: 't_user',
350
+ condition: `id='${this.selectdata.f_construction_unit_id}'`
351
+ }
352
+ let res = await this.$resetpost(
353
+ 'rs/sql/applySingleTable',
354
+ {data: data},
355
+ {resolveMsg: null, rejectMsg: null}
356
+ )
357
+ return res.data.map(item => {
358
+ return {
359
+ label: item.name,
360
+ value: item.id
361
+ }
362
+ })
363
+ }
364
+ },
365
+ // 安装单位负责人
366
+ async getConstructionUnit () {
367
+ let data = {
368
+ source: 'this.getParentByType($organization$).getChildByName($工程施工队$).getChildren()',
369
+ userid: this.$login.f.id
370
+ }
371
+
372
+ let res = await this.$resetpost(
373
+ 'rs/search',
374
+ {data: data},
375
+ {resolveMsg: null, rejectMsg: '安装单位负责人查询失败!!!'}
376
+ )
377
+
378
+ return res.data.map(item => {
379
+ return {
380
+ label: item.name,
381
+ value: item.id
382
+ }
383
+ })
384
+ },
385
+ // 建设单位
386
+ async getConstructOperator () {
387
+ let data = {
388
+ source: 'this.getParentByType($organization$).getChildByName($建设单位$).getChildren()',
389
+ userid: this.$login.f.id
390
+ }
391
+
392
+ let res = await this.$resetpost(
393
+ 'rs/search',
394
+ {data: data},
395
+ {resolveMsg: null, rejectMsg: '建设单位人员查询失败!!!'}
396
+ )
397
+
398
+ return res.data.map(item => {
399
+ return {
400
+ label: item.name,
401
+ value: item.id
402
+ }
403
+ })
404
+ },
405
+ // 监理单位
406
+ async getSupervisorOperator () {
407
+ let data = {
408
+ source: 'this.getParentByType($organization$).getChildByName($监理单位$).getChildren()',
409
+ userid: this.$login.f.id
410
+ }
411
+
412
+ let res = await this.$resetpost(
413
+ 'rs/search',
414
+ {data: data},
415
+ {resolveMsg: null, rejectMsg: '监理单位人员查询失败!!!'}
416
+ )
417
+ return res.data.map(item => {
418
+ return {
419
+ label: item.name,
420
+ value: item.id
421
+ }
422
+ })
423
+ },
424
+ // 监理现场负责人
425
+ async getSupervisorOperatorId () {
426
+ let data = {
427
+ source: 'this.getParentByType($organization$).getChildByName($监理班组$).getChildren()',
428
+ userid: this.$login.f.id
429
+ }
430
+ let res = await this.$resetpost(
431
+ 'rs/search',
432
+ {data: data},
433
+ {resolveMsg: null, rejectMsg: '监理单位人员查询失败!!!'}
434
+ )
435
+ return res.data.map(item => {
436
+ return {
437
+ label: item.name,
438
+ value: item.id
439
+ }
440
+ })
441
+ },
442
+ // 土建单位
443
+ async getEngineeringOperator () {
444
+ let data = {
445
+ source: 'this.getParentByType($organization$).getChildByName($土建单位$).getChildren()',
446
+ userid: this.$login.f.id
447
+ }
448
+
449
+ let res = await this.$resetpost(
450
+ 'rs/search',
451
+ {data: data},
452
+ {resolveMsg: null, rejectMsg: '土建单位人员查询失败!!!'}
453
+ )
454
+ let result = res.data.map(item => {
455
+ return {
456
+ label: item.name,
457
+ value: item.id
458
+ }
459
+ })
460
+ result.push({label:'用户自理',value:'用户自理'})
461
+ result.push({label:'无',value:'无'})
462
+ return result
463
+ },
464
+ // 检测单位
465
+ async getCheckOperator () {
466
+ let data = {
467
+ source: 'this.getParentByType($organization$).getChildByName($检测单位$).getChildren()',
468
+ userid: this.$login.f.id
469
+ }
470
+
471
+ let res = await this.$resetpost(
472
+ 'rs/search',
473
+ {data: data},
474
+ {resolveMsg: null, rejectMsg: '检测单位人员查询失败!!!'}
475
+ )
476
+
477
+ let result = res.data.map(item => {
478
+ return {
479
+ label: item.name,
480
+ value: item.id
481
+ }
482
+ })
483
+ result.push({label:'无',value:'无'})
484
+ return result
485
+ },
486
+ // 户内出单日期
487
+ async getOutdoorsTime () {
488
+ for (const item of this.data.fields) {
489
+ if (item.label === '户内出单日期') {
490
+ item.value = this.data.f_release_date
491
+ this.data[item.field] = item.value
492
+ }else if(item.label === '庭院出单日期'){
493
+ item.value = this.data.f_release_date
494
+ this.data[item.field] = item.value
495
+ }
496
+ }
497
+ },
498
+ async getChargeDate() {
499
+ let data = {
500
+ tablename: 'activityins',
501
+ condition: `processid = '${this.data.f_process_id}' and defname = '报装缴费'`,
502
+ }
503
+
504
+ let http = new HttpResetClass()
505
+ let res = await http.load(
506
+ 'POST',
507
+ `rs/sql/applySingleTable`,
508
+ {data: data},
509
+ {resolveMsg: null, rejectMsg: null}
510
+ )
511
+ if (res.data[0]){
512
+ for (const item of this.data.fields) {
513
+ if (item.label === '缴费日期') {
514
+ item.value = res.data[0].finishtime
515
+ this.data[item.field] = item.value
516
+ }
517
+ }
518
+ }
519
+ },
520
+ async getSingAct() {
521
+ let data = {
522
+ f_process_id: this.data.f_process_id
523
+ }
524
+ let http = new HttpResetClass()
525
+ let res = await http.load(
526
+ 'POST',
527
+ `rs/sql/getSingAct`,
528
+ {data: data},
529
+ {resolveMsg: null, rejectMsg: '签字状态查询失败!!!'}
530
+ )
531
+ if (res.data.length > 0) {
532
+ for (const item of this.data.fields) {
533
+ if (item.label === '签字所在环节') {
534
+ item.value = res.data[0].defname
535
+ this.data[item.field] = item.value
536
+ }
537
+ }
538
+ }
539
+ }
540
+ },
541
+ events:{
542
+ // 工程派工初始化
543
+ async 'dispatchReadyEvent' () {
544
+ console.log("cscc")
545
+ if (isEmpty(this.show_data.f_meter_brand)) {
546
+ return
547
+ }
548
+ let data = {
549
+ f_gasbrand_id: this.show_data.f_meter_brand
550
+ }
551
+ let http = new HttpResetClass()
552
+ let res = await http.load(
553
+ 'POST',
554
+ `rs/sql/getGasModel`,
555
+ {data: data},
556
+ {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
557
+ )
558
+
559
+ this.setLabelOptions('气表型号', res.data)
560
+ },
561
+ async 'buildReadyEvent' () {
562
+ console.log("cscc")
563
+ if (isEmpty(this.show_data.f_meter_brand)) {
564
+ return
565
+ }
566
+ let data = {
567
+ f_gasbrand_id: this.show_data.f_meter_brand
568
+ }
569
+ let http = new HttpResetClass()
570
+ let res = await http.load(
571
+ 'POST',
572
+ `rs/sql/getGasModel`,
573
+ {data: data},
574
+ {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
575
+ )
576
+
577
+ this.setLabelOptions('气表型号', res.data)
578
+ }
579
+ },
580
+ watch: {
581
+ deep: true
582
+ }
583
+ }
584
+ </script>
585
+ <style scoped>
586
+ /*清除model中的浮动*/
587
+ .clearfix:after,.clearfix:before{
588
+ display: table;
589
+ }
590
+ .clearfix:after{
591
+ clear: both;
592
+ }
593
+ </style>