apply-clients 3.4.9 → 3.4.10

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.
@@ -8,8 +8,8 @@ var compiler = webpack(config)
8
8
  // var proxy = httpProxy.createProxyServer()
9
9
  // var ldap = 'http://121.36.79.201:8400'
10
10
  // var applyinstall = 'http://121.36.79.201:8400'
11
- var ldap = 'http://117.33.181.102:8400/'
12
- var applyinstall = 'http://117.33.181.102:8400/'
11
+ var ldap = 'http://117.33.181.102:8401/'
12
+ var applyinstall = 'http://117.33.181.102:8401/'
13
13
 
14
14
  var proxyTable = {
15
15
  '/rs/logic/getSaleInitData': {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apply-clients",
3
- "version": "3.4.9",
3
+ "version": "3.4.10",
4
4
  "description": "报建前端模块",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -331,7 +331,7 @@ export default {
331
331
  this.$refs.cp.$refs.cri.search()
332
332
  },
333
333
  searchCondition (args) {
334
- args.condition = args.condition + `and (act.defname!='信息确认') `
334
+ args.condition = args.condition + `and (act.defname in ('工程施工','通气点火','现场勘察')) `
335
335
  this.model.search(args.condition, args.model)
336
336
  },
337
337
  click (row) {
@@ -331,8 +331,51 @@
331
331
  this.applytype= [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
332
332
  // 调用查询
333
333
  this.search()
334
+ // this.getOrgName()
334
335
  },
335
336
  methods: {
337
+ // 获取所有组织名称
338
+ async getOrgName() {
339
+ let http = new HttpResetClass()
340
+ let org = this.$login.f.orgs === '重庆盛焰集团' || this.$login.f.orgs === '湖南燎原燃气有限公司' ? " 1 = 1" : " name = '" + this.$login.f.orgs + "'"
341
+ let data = {
342
+ tablename: 't_organization',
343
+ condition: " name != '组织机构' and " + org
344
+
345
+ }
346
+ let res = await http.load('POST','rs/sql/applysingleTable',{data:data}, {
347
+ resolveMsg: null,
348
+ rejectMsg: '获取公司名称失败'
349
+ })
350
+ for (let i = 0; i < res.data.length; i++) {
351
+ // 所属公司
352
+ let data1 = []
353
+ let array1 = []
354
+ data1 = res.data.map(item => {
355
+ return item.name;
356
+ })
357
+ for (let q = 0; q < data1.length; q++) {
358
+ let arraydata = {
359
+ 'label': data1[q],
360
+ 'value': data1[q]
361
+ }
362
+ if (array1.length != 0) {
363
+ for (let w = 0; w < array1.length; w++) {
364
+ if (array1[w].label == data1[q]) {
365
+ break
366
+ }
367
+ while (w == array1.length - 1) {
368
+ array1.push(arraydata)
369
+ break
370
+ }
371
+ }
372
+ } else {
373
+ array1.push(arraydata)
374
+ }
375
+ }
376
+ this.apply_org = array1
377
+ }
378
+ },
336
379
  openLater (row) {
337
380
  this.$dispatch('openLater', row)
338
381
  },
@@ -372,10 +415,10 @@
372
415
  }
373
416
  if(this.f_user_type==='民用'){
374
417
  data.processname = "报建初装居民流程"
375
- data.defname = "用户建档"
418
+ data.defname = "报装申请"
376
419
  } else if(this.f_user_type==='非民用'){
377
420
  data.processname = "报建初装流程"
378
- data.defname = "用户建档"
421
+ data.defname = "报装申请"
379
422
  }
380
423
  else {
381
424
  this.$showMessage('暂无此类报装')
@@ -41,30 +41,137 @@
41
41
  },
42
42
  ready () {
43
43
  this.refurbish()
44
- this.servicer()
44
+ // this.ceshi()
45
45
  },
46
46
  methods: {
47
- async servicer(){
48
- debugger
49
- let data = {
50
- tablename: 't_user',
51
- condition: `1=1`
52
- }
53
- let http = new HttpResetClass()
54
- let res = await http.load(
55
- 'POST',
56
- `rs/sql/singleTable`,
57
- {data: data},
58
- {resolveMsg: null, rejectMsg: '服务人查询失败!!!'}
59
- )
60
- debugger
61
- this.setLabelOptions('服务人', res.data.map(item => {
62
- return {
63
- label: item.name,
64
- value: item.name
47
+ async ceshi(){
48
+ for (let i = 0; i < this.show_data.fields.length; i++) {
49
+ //新用户时处理逻辑
50
+ if (this.selectdata.f_apply_type == '新用户') {
51
+ this.show_data.fields[i].required = false
65
52
  }
66
- }))
67
- },
53
+
54
+ //对勘察时间进行转换
55
+ /* if (this.selectdata.defname == '现场勘察') {
56
+ if (this.show_data.fields[i].label === '勘察时间') {
57
+ this.show_data.fields[i].value = new Date().Format("yyyy-MM-dd HH:mm:ss")
58
+ }
59
+ } */
60
+
61
+
62
+ //所属公司和自动生成项目编号
63
+ debugger
64
+ if (this.selectdata.defname == '用户建档') {
65
+ if (this.show_data.fields[i].label === '所属公司') {
66
+ this.show_data.fields[i].value = this.$login.f.orgs
67
+ }
68
+ console.log("预约的id为:"+this.selectdata.f_order_id)
69
+ console.dir("推送的数据:"+JSON.stringify(this.selectdata))
70
+ if (this.show_data.fields[i].label === '项目编号') {
71
+
72
+ if(this.selectdata.f_order_id !=''&&this.selectdata.f_order_id !=null ){
73
+ console.log("生成的项目编号为:" + this.selectdata.f_entry_num)
74
+ this.show_data.fields[i].value = this.selectdata.f_entry_num
75
+ }else{
76
+ let http2 = new HttpResetClass()
77
+ let entryNum = await http2.load('POST', 'rs/logic/getProjectNo', {
78
+ data: {
79
+ f_filiale: this.$login.f.orgs,
80
+ f_order_id: this.selectdata.f_order_id
81
+ }
82
+ }, {resolveMsg: null, rejectMsg: null})
83
+ console.log("生成的项目编号为:" + entryNum.data)
84
+ this.show_data.fields[i].value = entryNum.data
85
+ }
86
+
87
+
88
+ }
89
+ if (this.show_data.fields[i].label === '报建编号') {
90
+ if(this.selectdata.f_order_id !=''&&this.selectdata.f_order_id !=null ){
91
+ console.log("生成的报建编号为:" + this.selectdata.f_apply_num)
92
+ this.show_data.fields[i].value = this.selectdata.f_apply_num
93
+ }else{
94
+ let http2 = new HttpResetClass()
95
+ let applyNum = await http2.load('POST', 'rs/logic/getConstructionNo', {
96
+ data: {
97
+ f_filiale: this.$login.f.orgs,
98
+ f_order_id: this.selectdata.f_order_id
99
+ }
100
+ }, {resolveMsg: null, rejectMsg: null})
101
+ console.log("生成的报建编号为:" + applyNum.data)
102
+ this.show_data.fields[i].value = applyNum.data
103
+ }
104
+
105
+
106
+ }
107
+ //placeholder required
108
+ if (this.selectdata.f_apply_type == '新用户') {
109
+ if (this.show_data.fields[i].label === '项目名称' ||
110
+ this.show_data.fields[i].label === '营业所' ||
111
+ this.show_data.fields[i].label === '项目编号' ||
112
+ this.show_data.fields[i].label === '用气性质' ||
113
+ this.show_data.fields[i].label === '项目类型' ||
114
+ this.show_data.fields[i].label === '花名册') {
115
+ this.show_data.fields[i].required = true
116
+ }
117
+ }
118
+
119
+ }
120
+
121
+ //如果报建类型是新用户到了核对时的逻辑
122
+ // if (this.selectdata.f_apply_type == '新用户' && this.selectdata.defname == '核对'
123
+ // && this.show_data.fields[i].label != '用气性质' && this.show_data.fields[i].label != '报建类型'
124
+ // && this.show_data.fields[i].label != '项目名称' && this.show_data.fields[i].label != '项目编号'
125
+ // && this.show_data.fields[i].label != '所属公司' && this.selectdata.f_roster == '有') {
126
+ // this.show_data.fields[i].hidden = true
127
+ // }
128
+ // if (this.selectdata.f_apply_type == '新用户' && this.selectdata.defname == '核对' && this.selectdata.f_roster == '有'
129
+ // && this.show_data.fields[i].label == '应交金额合计') {
130
+ // this.show_data.fields[i].value = this.sum.toFixed(2)
131
+ // this.show_data.fields[i].hidden = false
132
+ // }
133
+ // if (this.selectdata.f_apply_type == '新用户' && this.selectdata.defname == '核对' && this.selectdata.f_roster == '有'
134
+ // && this.show_data.fields[i].label == '累计交费金额合计') {
135
+ // this.show_data.fields[i].value = this.$refs.charge.f_cumulative_money_sum()
136
+ // console.log(this.show_data.fields[i].value + "-------------------------累计交费金额合计-------------------------:" + this.$refs.charge.f_cumulative_money_sum())
137
+ // this.show_data.fields[i].hidden = false
138
+ // }
139
+ // 工商业处理逻辑
140
+ if (this.selectdata.defname == '报建缴费' && this.selectdata.f_apply_type == '工商业') {
141
+ if (this.show_data.fields[i].label == '超长距离' || this.show_data.fields[i].label != '超长费') {
142
+ this.show_data.fields[i].required = false
143
+ }
144
+ }
145
+ // if (this.selectdata.defname == '核对' && this.selectdata.f_apply_type == '工商业') {
146
+ // if (this.show_data.fields[i].label == '超长距离' || this.show_data.fields[i].label != '超长费') {
147
+ // this.show_data.fields[i].required = false
148
+ // this.show_data.fields[i].readonly = false
149
+ // }
150
+ // }
151
+
152
+
153
+ }},
154
+ // async servicer(){
155
+ // debugger
156
+ // let data = {
157
+ // tablename: 't_user',
158
+ // condition: `1=1`
159
+ // }
160
+ // let http = new HttpResetClass()
161
+ // let res = await http.load(
162
+ // 'POST',
163
+ // `rs/sql/singleTable`,
164
+ // {data: data},
165
+ // {resolveMsg: null, rejectMsg: '服务人查询失败!!!'}
166
+ // )
167
+ // debugger
168
+ // this.setLabelOptions('服务人', res.data.map(item => {
169
+ // return {
170
+ // label: item.name,
171
+ // value: item.name
172
+ // }
173
+ // }))
174
+ // },
68
175
  // 组件初始化操作
69
176
  async refurbish() {
70
177
  this.json_datas = this.$workflow_vue
@@ -283,7 +390,6 @@
283
390
  })
284
391
  }
285
392
  }
286
-
287
393
  // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
288
394
  let temp = JSON.parse(JSON.stringify(this.selectdata))
289
395
  console.log('打印下temp',temp)
@@ -727,27 +833,27 @@
727
833
  }
728
834
  throw '用户信息确认!!!'
729
835
  },
730
- async getDesignerPeople () {
731
- let data = {
732
- source: 'this.getParentByType($organization$).getChildByName($设计部报装$).getChildren()',
733
- userid: this.$login.f.id
734
- }
735
-
736
- let http = new HttpResetClass()
737
- let res = await http.load(
738
- 'POST',
739
- `rs/search`,
740
- {data: data},
741
- {resolveMsg: null, rejectMsg: '设计人员查询失败!!!'}
742
- )
743
-
744
- return res.data.map(item => {
745
- return {
746
- label: item.name,
747
- value: item.id
748
- }
749
- })
750
- },
836
+ // async getDesignerPeople () {
837
+ // let data = {
838
+ // source: 'this.getParentByType($organization$).getChildByName($设计部报装$).getChildren()',
839
+ // userid: this.$login.f.id
840
+ // }
841
+ //
842
+ // let http = new HttpResetClass()
843
+ // let res = await http.load(
844
+ // 'POST',
845
+ // `rs/search`,
846
+ // {data: data},
847
+ // {resolveMsg: null, rejectMsg: '设计人员查询失败!!!'}
848
+ // )
849
+ //
850
+ // return res.data.map(item => {
851
+ // return {
852
+ // label: item.name,
853
+ // value: item.id
854
+ // }
855
+ // })
856
+ // },
751
857
  async surveyStopApply () {
752
858
  console.log('终止报建!!!!!')
753
859
 
@@ -0,0 +1,884 @@
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 "../../../../../components/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
+ config: {}
46
+ }
47
+ },
48
+ created () {
49
+ this.refurbish()
50
+ },
51
+ methods: {
52
+ // 初始化模块
53
+ async refurbish() {
54
+ this.json_datas = this.$workflow_vue
55
+ let sum = 0
56
+ let jsonData = {}
57
+ if (!this.json_datas || !this.json_datas.activitys || this.json_datas.activitys.length === 0) {
58
+ this.$showMessage("网络故障,请刷新页面")
59
+ return
60
+ }
61
+ this.json_datas.activitys.forEach(item => {
62
+ if (this.selectdata.defname === item.title) {
63
+ jsonData = item // 拿到当前节点的json配置信息
64
+ sum++ // 节点名一样的个数
65
+ }
66
+ return this.selectdata.defname === item.title // 拿到当前节点的json配置信息
67
+ })
68
+
69
+ if (sum === 0) {
70
+ this.$showMessage(`没有在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置`)
71
+ return
72
+ }
73
+ if (sum > 1) {
74
+ this.$showMessage(`在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置:${sum}个`)
75
+ return
76
+ }
77
+
78
+ this.selectdata = Object.assign({}, this.selectdata, jsonData)
79
+
80
+ // fields 字段填充值
81
+ for (const item of this.selectdata.fields) {
82
+ if (!item.value) {
83
+ item.value = null
84
+ }
85
+
86
+ if (!item.value && (item.default || item.default === 0) && item.type !== 'datepicker') {
87
+ if (item.eval) {
88
+ item.value = eval(item.default)
89
+ } else {
90
+ item.value = item.default
91
+ }
92
+ }
93
+
94
+ if (this.selectdata[item.field]) {
95
+ // 将json字符串格式化赋值给value
96
+ if (String(this.selectdata[item.field]).startsWith("{")) {
97
+ item.value = JSON.parse(this.selectdata[item.field])
98
+ } else {
99
+ item.value = this.selectdata[item.field]
100
+ }
101
+ }
102
+ if (this.selectdata[item.field] === 0) {
103
+ item.value = 0
104
+ }
105
+
106
+ // datepicker
107
+ if (item.type === 'datepicker' && !item.value && item.default) {
108
+ item.value = new Date().Format(`${item.format ? item.format : 'yyyy-MM-dd HH:mm:ss'}`)
109
+ }
110
+
111
+ // 如果配置类型为select,优先从参数列表获取options
112
+ if (item.type === 'select' || item.type === 'checkbox') {
113
+ if (item.param) {
114
+ let temp = this.$appdata.getParam(item.label)
115
+
116
+ if (temp && temp.length > 0) {
117
+ item.options = temp
118
+ }
119
+
120
+ if (item.paramLabel) {
121
+ temp = this.$appdata.getParam(item.paramLabel)
122
+ if (temp && temp.length > 0) {
123
+ item.options = temp
124
+ }
125
+ }
126
+ }
127
+
128
+ if (item.ready) {
129
+ item.options = await this[item.ready]()
130
+ }
131
+ }
132
+
133
+
134
+ if (item.type === 'checkbox') {
135
+ if (this.selectdata[item.field]) {
136
+ item.value = JSON.parse(this.selectdata[item.field])
137
+ } else {
138
+ item.value = []
139
+ }
140
+ }
141
+
142
+ this.selectdata[item.field] = item.value
143
+
144
+ item.readonly = true
145
+ item.disabled = true
146
+ }
147
+
148
+ // 控制组件
149
+ if (this.selectdata.components) {
150
+ this.selectdata.components.forEach(item => {
151
+ item.mark = 1
152
+ if (item.supervisory && this[item.supervisory]()) {
153
+ item.mark = 0
154
+ }
155
+ })
156
+ }
157
+
158
+ // 初始化onetomany
159
+ if (this.selectdata.onetomany) {
160
+ for (const item of this.selectdata.onetomany) {
161
+ let res = null
162
+ if (item.queryEvent) {
163
+ res = this[item.queryEvent]()
164
+ } else {
165
+ let data = {
166
+ tablename: item.tables[0],
167
+ condition: `f_process_id='${this.selectdata.f_process_id}'`
168
+ }
169
+ res = await this.$resetpost(
170
+ 'rs/sql/singleTable',
171
+ {data: data},
172
+ {resolveMsg: null, rejectMsg: 'onetomany查询失败'}
173
+ )
174
+ }
175
+
176
+ item.rows = res.data
177
+
178
+ // 初始化onetomany中的fields
179
+ for (const field of item.fields) {
180
+ if (!field.value) {
181
+ if (field.value !== 0) {
182
+ field.value = null
183
+ }
184
+ }
185
+
186
+ if (field.default || field.default === 0) {
187
+ field.value = field.default
188
+ }
189
+
190
+ // datepicker
191
+ if (field.type === 'datepicker' && !field.value && field.default) {
192
+ field.value = new Date().Format(`${field.format ? field.format : 'yyyy-MM-dd HH:mm:ss'}`)
193
+ }
194
+
195
+ if (field.type === 'select') {
196
+
197
+ let temp = this.$appdata.getParam(field.label)
198
+
199
+ if (temp && temp.length > 0) {
200
+ field.options = temp
201
+ }
202
+
203
+ if (field.paramLabel) {
204
+ temp = this.$appdata.getParam(field.paramLabel)
205
+ if (temp && temp.length > 0) {
206
+ item.options = temp
207
+ }
208
+ }
209
+
210
+ }
211
+ }
212
+
213
+ // 隐藏所有操作
214
+ item.hiddenOperate = true
215
+ if (item.supervisory && this[item.supervisory]()) {
216
+ item.hiddenOperate = false
217
+ }
218
+ }
219
+ }
220
+
221
+ // 去除button
222
+ this.selectdata.buttons = null
223
+
224
+ // 完成时间和完成人,部门,分公司
225
+ if (this.selectdata.state === '结束') {
226
+ let http = new HttpResetClass()
227
+ let res = await http.load('POST', 'rs/search', {
228
+ source: 'this.getInfo()',
229
+ userid: this.selectdata.userid
230
+ }, {resolveMsg: null, rejectMsg: '处理人员获取失败!!!'})
231
+ let user = res.data
232
+ this.selectdata.operate_date = new Date(this.selectdata.finishtime).Format('yyyy-MM-dd')
233
+ this.selectdata.operator = this.selectdata.person
234
+ this.selectdata.orgs = user.orgs
235
+ this.selectdata.parentname = user.deps
236
+ }
237
+
238
+ // 未结束且是下发查看指定人员
239
+ if (this.selectdata.state !== '结束' && this.selectdata.actorexpression !== null && this.selectdata.actorexpression.indexOf('PI') === 0) {
240
+ let http = new HttpResetClass()
241
+ let res = await http.load('POST', 'rs/search', {
242
+ source: 'this',
243
+ userid: this.selectdata.actorexpression.substring(3, this.selectdata.actorexpression.length-1)
244
+ }, {resolveMsg: null, rejectMsg: '处理人员获取失败!!!'})
245
+ let user = res.data
246
+ this.selectdata.operate_date = new Date().Format('yyyy-MM-dd')
247
+ this.selectdata.operator = user.name
248
+ this.selectdata.orgs = user.orgs
249
+ this.selectdata.parentname = user.f_department_name
250
+ }
251
+
252
+ // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
253
+ let temp = JSON.parse(JSON.stringify(this.selectdata))
254
+
255
+ this.show_data = temp
256
+ this.$nextTick(() => {
257
+ this.showview = true
258
+ })
259
+ },
260
+ // 金额转大写
261
+ smalltoBIG(n) {
262
+ let fraction = ['角', '分'];
263
+ let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
264
+ let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
265
+ let head = n < 0 ? '欠' : '';
266
+ n = Math.abs(n);
267
+
268
+ let s = '';
269
+
270
+ for (var i = 0; i < fraction.length; i++) {
271
+ s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
272
+ }
273
+ s = s || '整';
274
+ n = Math.floor(n);
275
+
276
+ for (var i = 0; i < unit[0].length && n > 0; i++) {
277
+ let p = '';
278
+ for (var j = 0; j < unit[1].length && n > 0; j++) {
279
+ p = digit[n % 10] + unit[1][j] + p;
280
+ n = Math.floor(n / 10);
281
+ }
282
+ s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
283
+ }
284
+ return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
285
+ },
286
+ getLableValue(label) {
287
+ for (const item of this.show_data.fields) {
288
+ if (item.label === label && item.type !== 'number') {
289
+ return item.value || ''
290
+ }
291
+ if (item.label === label && item.type === 'number') {
292
+ return item.value || 0
293
+ }
294
+ }
295
+ },
296
+ getLableOptions(label) {
297
+ for (const item of this.show_data.fields) {
298
+ if (item.label === label) {
299
+ return item.options
300
+ }
301
+ }
302
+ },
303
+ setLabelValue(label, value) {
304
+ for (const item of this.show_data.fields) {
305
+ if (item.label === label) {
306
+ item.value = value
307
+ this.show_data[item.field] = value
308
+ }
309
+ }
310
+ },
311
+ setLabelOptions(label, options) {
312
+ for (const item of this.show_data.fields) {
313
+ if (item.label === label) {
314
+ item.options = options
315
+ }
316
+ }
317
+ },
318
+ showLabels(...labels) {
319
+ for (const item of this.show_data.fields) {
320
+ if (labels.includes(item.label)) {
321
+ item.hidden = false
322
+ }
323
+ }
324
+ },
325
+ hideLabels(...labels) {
326
+ for (const item of this.show_data.fields) {
327
+ if (labels.includes(item.label)) {
328
+ item.hidden = true
329
+ }
330
+ }
331
+ },
332
+ requiredLabels(...labels) {
333
+ for (const item of this.show_data.fields) {
334
+ if (labels.includes(item.label)) {
335
+ item.required = true
336
+ }
337
+ }
338
+ },
339
+ electiveLabels(...labels) {
340
+ for (const item of this.show_data.fields) {
341
+ if (labels.includes(item.label)) {
342
+ item.required = false
343
+ }
344
+ }
345
+ },
346
+ readonlyLabels(...labels) {
347
+ for (const item of this.show_data.fields) {
348
+ if (labels.includes(item.label)) {
349
+ item.readonly = true
350
+ item.disabled = true
351
+ }
352
+ }
353
+ },
354
+ readwriteLabels(...labels) {
355
+ for (const item of this.show_data.fields) {
356
+ if (labels.includes(item.label)) {
357
+ item.readonly = false
358
+ item.disabled = false
359
+ }
360
+ }
361
+ },
362
+ disabledButtons(...buttons) {
363
+ for (const item of this.show_data.buttons) {
364
+ if (buttons.includes(item.button_name)) {
365
+ item.disabled = true
366
+ }
367
+ }
368
+ },
369
+ enableButtons(...buttons) {
370
+ for (const item of this.show_data.buttons) {
371
+ if (buttons.includes(item.button_name)) {
372
+ item.disabled = false
373
+ }
374
+ }
375
+ },
376
+ showButtons(...buttons) {
377
+ for (const item of this.show_data.buttons) {
378
+ if (buttons.includes(item.button_name)) {
379
+ item.hidden = false
380
+ }
381
+ }
382
+ },
383
+ hideButtons(...buttons) {
384
+ for (const item of this.show_data.buttons) {
385
+ if (buttons.includes(item.button_name)) {
386
+ item.hidden = true
387
+ }
388
+ }
389
+ },
390
+ async checkDuplicate(index) {
391
+ let http = new HttpResetClass()
392
+ let data = {
393
+ tablename: 't_apply',
394
+ condition: `${this.show_data.fields[index].field} = '${this.show_data.fields[index].value}'`
395
+ }
396
+ let res = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
397
+ resolveMsg: null,
398
+ rejectMsg: `${this.show_data.fields[index].label}查询失败`
399
+ })
400
+ if (res.data.length > 0) {
401
+ this.show_data.fields[index].value = null
402
+ this.$showAlert(`${this.show_data.fields[index].label}已存在!!!`, 'warning', 3000)
403
+ }
404
+ },
405
+ // 获取片区
406
+ async getSliceArea () {
407
+ let data = {
408
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
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
+
418
+ return res.data.map(item => {
419
+ return {
420
+ label: item.name,
421
+ value: item.name
422
+ }
423
+ })
424
+ },
425
+ // 获取区县
426
+ async getPcd () {
427
+ let data = {
428
+ tablename: 't_pcd',
429
+ condition: `f_filialeid = '${this.$login.f.orgid}'`
430
+ }
431
+ let res = await this.$resetpost(
432
+ `rs/sql/singleTable`,
433
+ {data: data},
434
+ {resolveMsg: null, rejectMsg: '区县查询失败!!!'}
435
+ )
436
+
437
+ return res.data.map(item => {
438
+ return {
439
+ label: item.f_pcd,
440
+ value: item.f_pcd
441
+ }
442
+ })
443
+ },
444
+ // 缴费前置
445
+ chargeBefore () {
446
+ if (Number(this.show_data.f_due_money) > Number(this.show_data.f_cumulative_payment_money) || Number(this.show_data.f_surplus_money) > 0) {
447
+ this.$showAlert('费用未结清!!!', 'warning', 3000)
448
+ throw null
449
+ }
450
+ },
451
+ // 施工前置
452
+ async constructionBefore () {
453
+ let http = new HttpResetClass()
454
+ let data = {
455
+ condition: `ui.f_process_id = '${this.show_data.f_process_id}' and uf.f_table_state = '待开通'`
456
+ }
457
+ let res = await http.load(
458
+ 'POST',
459
+ 'rs/sql/countApplyUserinfo',
460
+ {data: data},
461
+ {
462
+ resolveMsg: null,
463
+ rejectMsg: '安装明细查询失败!!!'
464
+ })
465
+ if (res.data[0].num > 0) {
466
+ this.$showAlert(`还有${res.data[0].num}户未安装,无法提交`, 'warning', 3000)
467
+ throw `还有${res.data[0].num}户未安装,无法提交`
468
+ }
469
+ },
470
+ changePipeBuild () {
471
+ if (this.selectdata.f_process_dep === '工程部') {
472
+ return 'this.getParentByType($organization$).getChildByName($工程部报装$).getChildren()'
473
+ }
474
+ if (this.selectdata.f_process_dep === '运营部') {
475
+ return 'this.getParentByType($organization$).getChildByName($运营部报装$).getChildren()'
476
+ }
477
+ },
478
+ async getDevInfo () {
479
+ let data = {
480
+ tablename: 't_dev_info',
481
+ condition: `f_orgid = '${this.$login.f.orgid}'`
482
+ }
483
+ let res = await this.$resetpost(
484
+ `rs/sql/singleTable`,
485
+ {data: data},
486
+ {resolveMsg: null, rejectMsg: '公司查询失败!!!'}
487
+ )
488
+
489
+ return res.data.map(item => {
490
+ return {
491
+ label: item.f_dev_name,
492
+ value: item.f_dev_name
493
+ }
494
+ })
495
+ },
496
+ async getPrice (f_price_id) {
497
+ console.log('=======================')
498
+ console.log(f_price_id)
499
+
500
+ let data = {
501
+ condition: `sp.f_orgid = '${this.$login.f.orgid}'`
502
+ }
503
+
504
+ if (!isEmpty(f_price_id)) {
505
+ data.condition = `sp.f_orgid = '${this.$login.f.orgid}' and sp.f_price_id = ${f_price_id}`
506
+ }
507
+ let http = new HttpResetClass()
508
+ let res = await http.load(
509
+ 'POST',
510
+ `rs/sql/applyGetPrice`,
511
+ {data: data},
512
+ {resolveMsg: null, rejectMsg: '气价查询失败!!!'}
513
+ )
514
+
515
+ return res.data.map(item => {
516
+ return {
517
+ label: item.f_price_name,
518
+ value: item
519
+ }
520
+ })
521
+ },
522
+ materialSupervisory () {
523
+ if (this.selectdata.userid === this.$login.f.id) {
524
+ return true
525
+ }
526
+ return false
527
+ },
528
+ // async getDesignerPeople () {
529
+ // let data = {
530
+ // source: 'this.getParentByType($organization$).getChildByName($设计部报装$).getChildren()',
531
+ // userid: this.$login.f.id
532
+ // }
533
+ //
534
+ // let http = new HttpResetClass()
535
+ // let res = await http.load(
536
+ // 'POST',
537
+ // `rs/search`,
538
+ // {data: data},
539
+ // {resolveMsg: null, rejectMsg: '设计人员查询失败!!!'}
540
+ // )
541
+ //
542
+ // return res.data.map(item => {
543
+ // return {
544
+ // label: item.name,
545
+ // value: item.id
546
+ // }
547
+ // })
548
+ // },
549
+ // 获取区县
550
+ async getArea () {
551
+ let data = {
552
+ tablename: 't_area',
553
+ condition: `f_filialeid = '${this.$login.f.orgid}'`
554
+ }
555
+ let http = new HttpResetClass()
556
+ let res = await http.load(
557
+ 'POST',
558
+ `rs/sql/singleTable`,
559
+ {data: data},
560
+ {resolveMsg: null, rejectMsg: '集收单位查询失败!!!'}
561
+ )
562
+
563
+ return res.data.map(item => {
564
+ return {
565
+ label: item.f_residential_area,
566
+ value: item.f_residential_area
567
+ }
568
+ })
569
+ }
570
+ },
571
+ events:{
572
+ 'complyInstallation' (index) {
573
+ if (this.show_data.f_is_have === '否') {
574
+ this.hideButtons('提交', '出图', '缴费')
575
+ this.showButtons('终止')
576
+ }
577
+ if (this.show_data.f_is_have === '是') {
578
+ this.hideButtons('终止')
579
+ this.showButtons('提交', '出图', '缴费')
580
+ }
581
+ },
582
+ // 选择材料
583
+ async materialNameChenge (index, fieldIndex) {
584
+ let material = this.show_data.onetomany[index].fields[fieldIndex].value
585
+
586
+ this.show_data.onetomany[index].fields.forEach(item => {
587
+ if (material[item.field]) {
588
+ item.value = material[item.field]
589
+ }
590
+ })
591
+ },
592
+ // 打开模态框获取材料
593
+ async 'getMaterialName' (index) {
594
+ let data = {
595
+ condition: `1=1`
596
+ }
597
+ let http = new HttpResetClass()
598
+ let res = await http.load(
599
+ 'POST',
600
+ `rs/sql/getStockMaterial`,
601
+ {data: data},
602
+ {resolveMsg: null, rejectMsg: '材料查询失败!!!'}
603
+ )
604
+
605
+ this.show_data.onetomany[index].fields.forEach(field => {
606
+ if (field.label === '选择材料') {
607
+ field.options = res.data.map(item => {
608
+ return {
609
+ 'label': `${item.f_material_name}--${item.f_material_style}--${item.f_material_unit}`,
610
+ 'value': item
611
+ }
612
+ })
613
+ }
614
+ })
615
+ },
616
+ // 终止报建初始化·
617
+ async 'stopApplyReadyEvent' () {
618
+
619
+ let f_is_stop = this.getLableValue('是否终止')
620
+
621
+ for (const item of this.show_data.fields) {
622
+ if (f_is_stop === '是') {
623
+ if (item.label === '终止原因') {
624
+ item.hidden = false
625
+ item.required = true
626
+ }
627
+ } else {
628
+ if (item.label === '终止原因') {
629
+ item.hidden = true
630
+ item.required = false
631
+ }
632
+ }
633
+ }
634
+
635
+ if (isEmpty(this.show_data.f_parent_process_id)) {
636
+ return
637
+ }
638
+ let data = {
639
+ condition: `f_process_id = '${this.show_data.f_parent_process_id}'`,
640
+ data: {
641
+ id: this.$login.f.id,
642
+ orgid: this.$login.f.orgid
643
+ }
644
+ }
645
+ let res = await this.$resetpost(
646
+ `rs/sql/supervisory`,
647
+ {data: data},
648
+ {resolveMsg: null, rejectMsg: '项目查询失败!!!'}
649
+ )
650
+ this.show_data.parentApply = res.data[0]
651
+ },
652
+ // 通气点火初始化
653
+ async 'gasReadyEvent' () {
654
+ if (!isEmpty(this.show_data.f_price_id)) {
655
+ let priceList = await this.getPrice(this.show_data.f_price_id)
656
+ this.setLabelValue('气价名称', priceList[0].value)
657
+ }
658
+
659
+
660
+ // 保险初始化显示内容
661
+ let f_is_insure = this.getLableValue('是否购买保险')
662
+ for (const item of this.show_data.fields) {
663
+ if (f_is_insure === '是') {
664
+ if (item.label === '保费开始日期' || item.label === '保费结束日期' || item.label === '险种' || item.label === '保费金额') {
665
+ item.hidden = false
666
+ item.required = true
667
+ }
668
+ if (item.label === '保险备注') {
669
+ item.hidden = false
670
+ }
671
+ } else {
672
+ if (item.label === '保费开始日期' || item.label === '保费结束日期' || item.label === '险种' || item.label === '保费金额') {
673
+ item.hidden = true
674
+ item.required = false
675
+ }
676
+ if (item.label === '保险备注') {
677
+ item.hidden = true
678
+ }
679
+ }
680
+ }
681
+ },
682
+ // 申请节点初始化
683
+ 'applyReadyEvent' () {
684
+ this.$getConfig(this, 'UserAddress')
685
+
686
+ let f_address_type = this.show_data.f_address_type
687
+
688
+ for (const item of this.show_data.fields) {
689
+ if (f_address_type === '民用市区') {
690
+ if (item.label === '区/县' || item.label === '街道/乡镇' || item.label === '集收单位' || item.label === '门牌号') {
691
+ item.hidden = false
692
+ item.required = true
693
+ }
694
+ if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层') {
695
+ item.hidden = false
696
+ item.required = false
697
+ }
698
+ if (item.label === '地址') {
699
+ item.readonly = true
700
+ }
701
+ }
702
+ if (f_address_type === '民用乡镇') {
703
+ if (item.label === '区/县' || item.label === '街道/乡镇' || item.label === '集收单位' || item.label === '门牌号') {
704
+ item.hidden = false
705
+ item.required = true
706
+ }
707
+ if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层') {
708
+ item.hidden = false
709
+ item.required = false
710
+ }
711
+ if (item.label === '楼层') {
712
+ item.hidden = true
713
+ item.required = false
714
+ }
715
+ if (item.label === '地址') {
716
+ item.readonly = true
717
+ }
718
+ }
719
+ if (f_address_type === '特殊地址') {
720
+ if (item.label === '区/县' || item.label === '街道/乡镇') {
721
+ item.hidden = false
722
+ item.required = true
723
+ }
724
+ if (item.label === '集收单位') {
725
+ item.hidden = false
726
+ item.required = false
727
+ }
728
+ if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层' || item.label === '门牌号') {
729
+ item.hidden = true
730
+ item.required = false
731
+ }
732
+ if (item.label === '地址') {
733
+ item.readonly = false
734
+ }
735
+ }
736
+
737
+ if (this.show_data.f_apply_source === '线下发起' && item.label === '预约地址') {
738
+ item.hidden = true
739
+ }
740
+ }
741
+ },
742
+ // 失去焦点出触发事件
743
+ 'onchange' (index) {
744
+ if (this.show_data.defname === '报装申请' || this.show_data.defname === '信息确认') {
745
+ if (
746
+ this.show_data.fields[index].label === '区/县' ||
747
+ this.show_data.fields[index].label === '街道/乡镇' ||
748
+ this.show_data.fields[index].label === '集收单位' ||
749
+ this.show_data.fields[index].label === '楼号/组' ||
750
+ this.show_data.fields[index].label === '单元/排' ||
751
+ this.show_data.fields[index].label === '楼层' ||
752
+ this.show_data.fields[index].label === '门牌号'
753
+ ) {
754
+
755
+ let f_pcd = this.getLableValue('区/县') || ''
756
+ let f_street = this.getLableValue('街道/乡镇') || ''
757
+ let f_residential_area = this.getLableValue('集收单位') || ''
758
+ let f_building = this.getLableValue('楼号/组') || ''
759
+ let f_building_suffix = f_building ? this.config.f_building_suffix : ''
760
+ let f_unit = this.getLableValue('单元/排') || ''
761
+ let f_unit_suffix = f_unit ? this.config.f_unit_suffix : ''
762
+ let f_floor = this.getLableValue('楼层') || ''
763
+ let f_floor_suffix = f_floor ? this.config.f_floor_suffix : ''
764
+ let f_room = this.getLableValue('门牌号') || ''
765
+ let f_room_suffix = f_room ? this.config.f_room_suffix : ''
766
+
767
+ let f_address = f_pcd + f_street + f_residential_area + f_building + f_building_suffix + f_unit + f_unit_suffix + f_floor + f_floor_suffix + f_room + f_room_suffix
768
+ this.setLabelValue("地址", f_address)
769
+ }
770
+ }
771
+ },
772
+ // =============================
773
+ selectSearch (val, index) {},
774
+ 'onblur' (index) {},
775
+ 'oninput' (index) {},
776
+ 'initializtionView' () {},
777
+ async 'onchangeModal' (index, fieldIndex) {
778
+ },
779
+ async 'onblurModal' (index, fieldIndex) {
780
+
781
+ },
782
+ async 'oninputModal' (index, fieldIndex) {
783
+
784
+ },
785
+ async 'onetomanydelete' (index, rowIndex) {
786
+
787
+ let http = new HttpResetClass()
788
+
789
+ let res = await http.load(
790
+ 'DELETE',
791
+ `rs/entity/${this.show_data.onetomany[index].tables[0]}/${this.show_data.onetomany[index].rows[rowIndex].id}`,
792
+ null,
793
+ {resolveMsg: null, rejectMsg: '删除失败!!!'}
794
+ )
795
+
796
+ res = await this.$resetpost(
797
+ 'rs/entity/t_apply',
798
+ this.show_data
799
+ )
800
+
801
+ this.$dispatch('breakControl', this.show_data)
802
+ },
803
+ async 'onetomanyupdate' (index, rowIndex) {
804
+ let data = this.show_data.onetomany[index].rows[rowIndex]
805
+
806
+ this.show_data.onetomany[index].fields.forEach(item => {
807
+ data[item.field] = item.value
808
+ })
809
+ let res = await this.$resetpost(
810
+ `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
811
+ data
812
+ )
813
+
814
+ res = await this.$resetpost(
815
+ 'rs/entity/t_apply',
816
+ this.show_data
817
+ )
818
+
819
+ this.$dispatch('breakControl', this.show_data)
820
+ },
821
+ async 'onetomanyadd' (index) {
822
+ let data = {
823
+ f_process_id : this.show_data.f_process_id,
824
+ f_operator_id: this.$login.f.id,
825
+ f_operator: this.$login.f.name,
826
+ f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
827
+ f_orgid: this.$login.f.orgid,
828
+ f_orgname: this.$login.f.orgs
829
+ }
830
+ this.show_data.onetomany[index].fields.forEach(item => {
831
+ data[item.field] = item.value
832
+ })
833
+ let res = await this.$resetpost(
834
+ `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
835
+ data
836
+ )
837
+
838
+ res = await this.$resetpost(
839
+ 'rs/entity/t_apply',
840
+ this.show_data
841
+ )
842
+
843
+ this.$dispatch('breakControl', this.show_data)
844
+ },
845
+ async 'importEvent' (index, table, configName, filepath) {
846
+ let data = {
847
+ selectdata: this.show_data,
848
+ table: table,
849
+ filepath: filepath,
850
+ configName: configName,
851
+ user: this.$login.f
852
+ }
853
+
854
+ let res = await this.$resetpost(
855
+ `rs/logic/importEvent`,
856
+ data
857
+ )
858
+
859
+ this.$dispatch('breakControl', this.show_data)
860
+ },
861
+ 'onbutchange' (index) {
862
+
863
+ },
864
+ 'onbutblur' (index) {
865
+
866
+ },
867
+ 'onbutinput' (index) {
868
+
869
+ }
870
+ },
871
+ watch: {
872
+ deep: true
873
+ }
874
+ }
875
+ </script>
876
+ <style scoped>
877
+ /*清除model中的浮动*/
878
+ .clearfix:after,.clearfix:before{
879
+ display: table;
880
+ }
881
+ .clearfix:after{
882
+ clear: both;
883
+ }
884
+ </style>
@@ -3,6 +3,7 @@ import Vue from 'vue'
3
3
  let specialComp = {
4
4
  'exploration-user': (resolve) => { require(['./pc/Process/ExplorationUser'], resolve) },
5
5
  'exploration-select': (resolve) => { require(['./pc/Process/ExplorationSelect'], resolve) },
6
+ 'supervisory-service-control': (resolve) => { require(['./pc/Process/Service/SupervisoryServiceControl'], resolve) },
6
7
  'service-control': (resolve) => { require(['./pc/Process/Service/ServiceControl'], resolve) },
7
8
  'apply-charge-list': (resolve) => { require(['./pc/ApplyCharge/ApplyChargeList'], resolve) },
8
9
  'apply-charge-search': (resolve) => { require(['./pc/ApplyCharge/ApplyChargeSearch'], resolve) }