apply-clients 3.5.5-62 → 3.5.5-63

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apply-clients",
3
- "version": "3.5.5-62",
3
+ "version": "3.5.5-63",
4
4
  "description": "报建前端模块",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -1,508 +1,508 @@
1
- <template>
2
- <div class="p-10">
3
- <criteria-paged :model="model" v-ref:cp>
4
- <criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
5
- <div partial class="auto">
6
- <div class="row form-group app-input">
7
- <label class="">客户名称:</label>
8
- <div class="col-xs-8" >
9
- <input class="" v-model=model.f_user_name condition="u.f_user_name like '%{}%'" />
10
- </div>
11
- </div>
12
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
13
- <label class="">联系电话:</label>
14
- <div class="col-xs-8" >
15
- <input class="" v-model=model.f_phone condition="u.f_phone like '%{}%'" />
16
- </div>
17
- </div>
18
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
19
- <label class="">工程编号:</label>
20
- <div class="col-xs-8" >
21
- <input class="" v-model=model.f_apply_num condition="u.f_apply_num like '%{}%'" />
22
- </div>
23
- </div>
24
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
25
- <label class="">合同编号:</label>
26
- <div class="col-xs-8" >
27
- <input class="" v-model=model.f_contract_number condition="u.f_contract_number like '%{}%'" />
28
- </div>
29
- </div>
30
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
31
- <label class="">报建类型:</label>
32
- <div class="col-xs-8" >
33
- <v-select
34
- width="100%"
35
- v-model="model.f_apply_type"
36
- placeholder='报建类型'
37
- condition="u.f_apply_type like '%{}%'"
38
- :value.sync="model.f_apply_type"
39
- :options='$parent.$parent.applytype'
40
- class="select select_list"
41
- :value-single="true"
42
- @change="$parent.$parent.applyTypeChange()"
43
- close-on-select ></v-select>
44
- </div>
45
- </div>
46
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
47
- <label class="">办理环节:</label>
48
- <div class="col-xs-8" >
49
- <v-select
50
- width="100%"
51
- v-model="model.defname"
52
- placeholder='办理环节'
53
- condition="act.defname = '{}'"
54
- :value.sync="model.defname"
55
- :options='$parent.$parent.defnames'
56
- class="select select_list"
57
- :value-single="true"
58
- close-on-select ></v-select>
59
- </div>
60
- </div>
61
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
62
- <label class="">报建性质:</label>
63
- <div class="col-xs-8" >
64
- <v-select
65
- width="100%"
66
- v-model="model.f_apply_nature"
67
- placeholder='报建性质'
68
- condition="f_apply_nature = '{}'"
69
- :value.sync="model.f_apply_nature"
70
- :options='$parent.$parent.applyNatures'
71
- class="select select_list"
72
- :value-single="true"
73
- close-on-select ></v-select>
74
- </div>
75
- </div>
76
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
77
- <label class="">用户地址:</label>
78
- <div class="col-xs-8" >
79
- <input class="" v-model=model.f_address condition="u.f_address like '%{}%'" />
80
- </div>
81
- </div>
82
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
83
- <label class="">开始时间:</label>
84
- <div class="col-xs-8" >
85
- <datepicker id="startDate" placeholder="开始日期"
86
- style="width: 100%!important;"
87
- v-model="model.startDate"
88
- :value.sync="model.startDate"
89
- :format="'yyyy-MM-dd 00:00:00'"
90
- :show-reset-button="true"
91
- condition="u.f_apply_date >= '{}'">
92
- </datepicker>
93
- </div>
94
- </div>
95
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
96
- <label class="">结束时间:</label>
97
- <div class="col-xs-8" >
98
- <datepicker id="endDate" placeholder="结束日期"
99
- style="width: 100%!important;"
100
- v-model="model.endDate"
101
- :value.sync="model.endDate"
102
- :format="'yyyy-MM-dd 23:59:59'"
103
- :show-reset-button="true"
104
- condition="f_apply_date <= '{}'">
105
- </datepicker>
106
- </div>
107
- </div>
108
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
109
- <label class="">稍后处理:</label>
110
- <div class="col-xs-8" >
111
- <v-select
112
- width="100%"
113
- v-model="model.f_no_valid"
114
- placeholder='稍后处理'
115
- condition="lp.f_no_valid = '{}'"
116
- :value.sync="model.f_no_valid"
117
- :options='$parent.$parent.laterList'
118
- class="select select_list"
119
- :value-single="true"
120
- close-on-select ></v-select>
121
- </div>
122
- </div>
123
- <div class="row form-group text-right" style="">
124
- <button class="btn btn-primary" @click="$parent.$parent.search()">查询</button>
125
- <button class="btn btn-info" @click="$parent.$parent.clear()">清空</button>
126
- <button v-if="$parent.$parent.initiateapply" class="btn btn-info" @click="$parent.$parent.showModal = !$parent.$parent.showModal">工程发起</button>
127
- <button class="btn" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"></button>
128
- </div>
129
- </div>
130
- </criteria>
131
-
132
- <list :model="model" partial='list'>
133
- <div partial class="auto app-text panel">
134
- <div class="panel-body panel-self">
135
- <div class="col-xs-12">
136
- <p class="col-xs-3 text-left font"><b>客户名称:</b></p>
137
- <p class="col-xs-9 text-left input-font">{{ row.f_user_name }}</p>
138
- </div>
139
- <div class="col-xs-12">
140
- <p class="col-xs-3 text-left font"><b>电&emsp;&emsp;话:</b></p>
141
- <p class="col-xs-9 text-left input-font">
142
- {{ row.f_phone }}&ensp;
143
- <svg @click.prevent="$parent.$parent.$parent.dialNumber(row.f_phone)" style="width: 25px;height: 25px;position: absolute;" t="1628575136009" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2374" width="200" height="200"><path d="M682.25 465.262c0 16.695 11.115 27.811 27.81 27.811s27.812-11.116 27.812-27.811A167.395 167.395 0 0 0 570.96 298.35c-16.695 0-27.811 11.116-27.811 27.811s11.16 27.812 27.811 27.812a111.597 111.597 0 0 1 111.29 111.289z m111.289 0c0 16.695 11.115 27.811 27.81 27.811s27.812-11.116 27.812-27.811c0-152.984-125.217-278.201-278.2-278.201-16.696 0-27.812 11.16-27.812 27.855s11.16 27.811 27.811 27.811c122.405 0 222.579 100.174 222.579 222.535zM417.976 367.9c30.623-30.579 33.391-77.898 5.58-111.289L337.31 148.134c-27.811-36.16-80.666-41.74-116.869-13.928-2.768 2.812-5.536 2.812-5.536 5.58l-75.13 75.13c-72.318 72.318 30.623 267.041 217.042 453.417C543.15 854.708 735.06 954.88 807.378 885.33l75.13-75.13c33.392-33.391 33.392-86.246 0-116.825l-5.536-5.58-108.52-86.246c-33.348-27.81-80.623-25.043-111.246 5.58l-47.275 47.319c-50.087-30.623-94.593-64.014-133.564-102.941-38.927-38.971-72.275-83.478-102.898-133.565l44.507-50.043z m-38.927-75.13c8.348 11.16 8.348 27.855-2.812 36.203l-61.202 63.97a29.569 29.569 0 0 0-5.536 33.392 721.425 721.425 0 0 0 122.405 164.1 721.512 721.512 0 0 0 164.1 122.405 29.569 29.569 0 0 0 33.39-5.58l63.971-63.97c11.16-11.116 25.043-11.116 36.203-2.769l108.477 89.014s2.768 0 2.768 2.768a26.889 26.889 0 0 1 0 38.971l-75.13 75.13c-36.115 36.115-208.606-55.666-372.75-217.042-164.1-161.332-253.114-336.548-216.955-372.75l77.854-77.899c11.16-8.348 30.623-8.348 38.971 5.58l86.246 108.521z" fill="#8A8A8A" p-id="2375"></path></svg>
144
- </p>
145
- </div>
146
- <div class="col-xs-12">
147
- <p class="col-xs-3 text-left font"><b>工程编号:</b></p>
148
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_num }}</p>
149
- </div>
150
- <div class="col-xs-12">
151
- <p class="col-xs-3 text-left font"><b>客户编号:</b></p>
152
- <p :class="[ row.defname =='通气点火' && (row.f_apply_nature=='热水器' || row.f_apply_nature=='壁挂炉') ? 'redy' : (row.f_apply_nature=='热水器' || row.f_apply_nature=='壁挂炉' ? 'pred': (row.defname =='通气点火' ? 'p1':''))]" class="col-xs-9 text-left input-font">{{ row.f_userinfo_code }}</p>
153
- </div>
154
- <div class="col-xs-12">
155
- <p class="col-xs-3 text-left font"><b>报建类型:</b></p>
156
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_type }}</p>
157
- </div>
158
- <div class="col-xs-12">
159
- <p class="col-xs-3 text-left font"><b>办理环节:</b></p>
160
- <p class="col-xs-9 text-left input-font">{{ row.defname }}</p>
161
- </div>
162
- <div class="col-xs-12">
163
- <p class="col-xs-3 text-left font"><b>地&emsp;&emsp;址:</b></p>
164
- <p class="col-xs-9 text-left input-font">{{ row.f_address }}</p>
165
- </div>
166
- <div class="col-xs-12" v-if="row.f_order_date != null ">
167
- <p class="col-xs-3 text-left font"><b>预约日期:</b></p>
168
- <p class="col-xs-9 text-left input-font">{{ row.f_order_date }}</p>
169
- </div>
170
- <div class="col-xs-12">
171
- <p class="col-xs-3 text-left font"><b>报建日期:</b></p>
172
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_date }}</p>
173
- </div>
174
- <div class="col-xs-12" style="color: red">
175
- <p class="col-xs-3 text-left font"><b>施工备注:</b></p>
176
- <p class="col-xs-9 text-left input-font">{{ row.f_construction_remarks }}</p>
177
- </div>
178
- <div class="col-xs-12" style="color: red" v-if="row.defname == '工程施工'||row.defname=='工程派工'">
179
- <p class="col-xs-3 text-left font"><b>报装备注:</b></p>
180
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_remarks }}</p>
181
- </div>
182
- <div class="col-xs-12" v-if="row.f_no_valid != null">
183
- <p class="col-xs-4 text-left font"><b>稍后处理备注:</b></p>
184
- <p class="col-xs-8 text-left input-font" style="color: red">{{row.f_later_remarks}}</p>
185
- </div>
186
-
187
- <div class="col-xs-12" v-if="row.f_back_reason != null">
188
- <p class="col-xs-4 text-left font"><b>退回备注:</b></p>
189
- <p class="col-xs-8 text-left input-font">
190
- <span style="color: red;font-family: 微软雅黑;font-weight: bold;font-size: 18px">请注意被退回原因为:{{row.f_back_reason}} 退回时间:{{row.f_date}}</span>
191
- </p>
192
- </div>
193
-
194
- <div class="col-xs-12 text-right">
195
- <button class="btn btn-info" type="button" @click="$parent.$parent.$parent.openLater(row) " v-if="row.f_no_valid !== '有效'">稍后处理</button>
196
- <button class="btn btn-info" @click="$parent.$parent.$parent.click(row)">处理</button>
197
- </div>
198
- </div>
199
- </div>
200
- </list>
201
-
202
- </criteria-paged>
203
- <validator name="v">
204
- <modal v-if="showLater" :show.sync="showLater" v-ref:modal :large="true" :backdrop="false" title="稍后处理">
205
- <header slot="modal-header" class="modal-header">
206
- <button type="button" class="close" @click="closeModal"><span>&times;</span></button>
207
- <h4 class="modal-title">稍后处理</h4>
208
- </header>
209
-
210
- <article slot="modal-body" class="modal-body clearfix">
211
- <div class="form-group col-sm-12">
212
- <label class="col-sm-2 control-label">稍后处理备注:</label>
213
- <div class="col-sm-10">
214
- <input type="textarea"
215
- class="form-control input_view"
216
- style="width: 100%"
217
- v-model="laterapply.f_later_remarks" />
218
- </div>
219
- </div>
220
- </article>
221
-
222
- <footer slot="modal-footer" class="modal-footer">
223
- <button type="button" class="btn btn-primary" :disabled='!$v.valid' @click="later()">稍后处理</button>
224
- </footer>
225
- </modal>
226
- </validator>
227
- <validator name="v">
228
- <modal
229
- v-if="showModal"
230
- :show.sync="showModal"
231
- backdrop="false"
232
- title="工程类型"
233
- cancel-text="取消"
234
- ok-text="确认"
235
- :callback="apply"
236
- >
237
- <div class="form-horizontal" slot="modal-body">
238
- <div class="row form-group app-input" style="margin: 10px auto">
239
- <label class="">报建类型:</label>
240
- <div class="col-sm-8">
241
- <v-select
242
- v-model="applyType"
243
- placeholder='请选择需要发起的工程类型'
244
- :value.sync="applyType"
245
- :options='applyTypes'
246
- :value-single="true"
247
- class="select select_list"
248
- :search="false"
249
- close-on-select ></v-select>
250
- </div>
251
- </div>
252
- </div>
253
- </modal>
254
- </validator>
255
- </div>
256
- </template>
257
- <script>
258
- import Vue from 'vue'
259
- import { PagedList, HttpResetClass } from 'vue-client'
260
- import {isEmpty} from '../../Util'
261
- export default {
262
- title: '报建流程',
263
- data () {
264
- return {
265
- selectdate: {},
266
- showLater: false,
267
- model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/checkuser`, 20, {
268
- data: {
269
- id: Vue.user.id,
270
- orgid: Vue.user.orgid
271
- },
272
- }),
273
- applytype:[],
274
- showModal: false,
275
- applyType: '', // 报建类型
276
- applyTypes:[],
277
- // applyTypes:[{label:'散户报建',value:'散户报建'},{label:'工商户报建',value:'工商户报建'}],
278
- criteriaShow: false,
279
- // applytype: [{label: '全部', value: ''}, {label:'团购转散户',value:'团购转散户'} ], // 所有报建类型
280
- defnames: [{label: '全部', value: ''}],
281
- applyNatures: [{label: '全部', value: ''}], // 报建性质
282
- laterList: [
283
- {label: '全部', value: ''},
284
- {label: '有效', value: '有效'}
285
- ],
286
- initiateapply:this.$appdata.getSingleValue('手机发起报建')?this.$appdata.getSingleValue('手机发起报建'):false,
287
- laterapply: {}
288
- }
289
- },
290
- ready () {
291
- this.search()
292
- //this.$refs.cp.$refs.cri.model.defname='报装缴费'
293
- //this.$refs.cp.$refs.cri.model.defname='合同签订'
294
- this.applytype =[{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')]// 所有报建类型
295
- this.applyTypes=this.$appdata.getParam("手机报建类型")
296
-
297
- },
298
- methods: {
299
- openLater (row) {
300
- this.selectdate = row
301
- this.showLater=true
302
- },
303
- async later () {
304
- let http = new HttpResetClass()
305
- let data = {
306
- laterapply: this.laterapply,
307
- selectdata: this.selectdate,
308
- user: Vue.user
309
- }
310
- let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/laterprocessing`, {data:data}, {
311
- resolveMsg: null,
312
- rejectMsg: '稍后处理记录保存失败!!!'
313
- })
314
- this.closeModal()
315
- },
316
- closeModal() {
317
- this.selectdate = null
318
- this.showLater = false
319
- this.laterapply = {}
320
- this.search()
321
- },
322
- dialNumber (phone) {
323
- this.$showMessage(`是否拨打电话:${phone}`, ['confirm']).then((res) => {
324
- if (res === 'confirm') {
325
- this.$androidUtil.makeAPhoneCall(phone)
326
- }
327
- })
328
- },
329
- clear () {
330
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
331
- this.$refs.cp.$refs.cri.model[key] = null
332
- })
333
- },
334
- // 查询
335
- search () {
336
- this.$refs.cp.$refs.cri.search()
337
- },
338
- searchCondition (args) {
339
- args.condition += `and act.defname in ${this.appDefnames}`
340
- this.model.search(args.condition, args.model)
341
- },
342
- click (row) {
343
- let _this = this
344
- this.$dispatch('gotoson', {
345
- _this: _this,
346
- title: row.defname,
347
- safe: true
348
- })
349
- this.$goto('app-service-control', {selectdata: row}, 'self', _this.search)
350
- },
351
- applyTypeChange () {
352
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
353
- let http = new HttpResetClass()
354
- http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getDefnameByType`, {
355
- // http.load('POST', 'rs/logic/getDefnameByType', {
356
- f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
357
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
358
- this.defnames = [{label: '全部', value: ''}, ...res.data]
359
-
360
- this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
361
- })
362
- } else {
363
- this.defnames = [{label: '全部', value: ''}]
364
-
365
- this.applyNatures = [{label: '全部', value: ''}]
366
- }
367
- },
368
- // 报装申请
369
- async apply () {
370
- if (this.applyType === '' || this.applyType === null) {
371
- this.$showAlert('请选择需要发起的类型', 'warning', 3000)
372
- return
373
- }
374
- let data = {
375
- f_apply_type: this.applyType
376
- }
377
- if (this.applyType === '散户报建') {
378
- data.processname = '散户报建流程'
379
- data.defname = '报装申请'
380
- } else if (this.applyType === '工商户报建') {
381
- data.processname = '工商户报建流程'
382
- data.defname = '报装申请'
383
- } else if (this.applyType === '改管报建') {
384
- data.processname = '改管报建流程'
385
- data.defname = '报装申请'
386
- } else if (this.applyType === '增容报建') {
387
- data.processname = '增容报建流程'
388
- data.defname = '报装申请'
389
- } else if (this.applyType === '团购报建') {
390
- data.processname = '团购报建流程'
391
- data.defname = '报装申请'
392
- } else if (this.applyType === '退款报建') {
393
- data.processname = '退款报建流程'
394
- data.defname = '终止报建'
395
- } else if (this.applyType === '团购转散户') {
396
- data.processname = '团购转散户报建流程'
397
- data.defname = '信息确认'
398
- }else if (this.applyType === '报警器报建') {
399
- data.processname = '报警器报建流程'
400
- data.defname = '报装申请'
401
- }else if (this.applyType === '工商业报警器报建') {
402
- data.processname = '工商业报警器报建流程'
403
- data.defname = '报装申请'
404
- } else {
405
- this.$showMessage('暂无此类报装')
406
- return
407
- }
408
-
409
- data.f_sub_state = "新增"
410
- data.f_apply_source = "线下发起"
411
- data.f_process_id = await this.getProcessId(data.processname)
412
-
413
- // 调用ExplorationUser事件
414
-
415
- this.click(data)
416
- this.applyType = null
417
- this.showModal = false
418
- },
419
- // 获取流程id
420
- async getProcessId(processname) {
421
- let data = {
422
- workname: processname
423
- }
424
- let http = new HttpResetClass()
425
- let res = await http.load(
426
- 'POST',
427
- `${this.$androidUtil.getProxyUrl()}/rs/logic/getProcessId`,
428
- {data: data},
429
- {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
430
- )
431
-
432
- return res.data
433
- },
434
- },
435
- events: {
436
- },
437
- watch: {
438
- },
439
- computed: {
440
- appDefnames () {
441
- // let list = [{label: '报装缴费', value: '报装缴费'}, {label: '通气点火', value: '通气点火'},{label: '工程施工', value: '工程施工'},{label: '工程派工', value: '工程派工'},{label: '点火派单', value: '点火派单'}]
442
- let list = this.$appdata.getParam('手机节点')
443
- return `(${list.map(item => `'${item.value}'`).toString()})`
444
- }
445
- }
446
- }
447
- </script>
448
- <style scoped>
449
- .pred{
450
- color: red;
451
- }
452
- .p1 {
453
- color: #ffaf4f;
454
- }
455
- .redy{
456
- color: deeppink;
457
- }
458
- .panel-self{
459
- border-radius: 10px;
460
- border:1px solid #499EDF;
461
- background-color: #F8F8F8;
462
- }
463
- .font{
464
- font: 15px PingFang-SC-Medium;
465
- color: #666666;
466
- }
467
-
468
- .button_shrink_top {
469
- width: 34px;
470
- height: 34px;
471
- border: solid 1px #6aa6e2;
472
- background-size: 100%;
473
- background-image: url("../../../../static/newStyle/stretch_top.png")
474
- }
475
-
476
- .button_shrink_bottom {
477
- width: 34px;
478
- height: 34px;
479
- border: solid 1px #6aa6e2;
480
- background-size: 100%;
481
- background-image: url("../../../../static/newStyle/stretch_bottom.png")
482
- }
483
- </style>
484
- <style lang="less">
485
- .app-input {
486
- label {
487
- float: left;
488
- }
489
- .select {
490
- button {
491
- border: none;
492
- outline: none;
493
- text-align: left;
494
- .btn-placeholder {
495
- color: #ACA899
496
- }
497
- }
498
- }
499
- .datepicker {
500
- .form-control:focus {
501
- border: none!important;
502
- outline: none!important;
503
- -webkit-box-shadow: none;
504
- box-shadow: none;
505
- }
506
- }
507
- }
508
- </style>
1
+ <template>
2
+ <div class="p-10">
3
+ <criteria-paged :model="model" v-ref:cp>
4
+ <criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
5
+ <div partial class="auto">
6
+ <div class="row form-group app-input">
7
+ <label class="">客户名称:</label>
8
+ <div class="col-xs-8" >
9
+ <input class="" v-model=model.f_user_name condition="u.f_user_name like '%{}%'" />
10
+ </div>
11
+ </div>
12
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
13
+ <label class="">联系电话:</label>
14
+ <div class="col-xs-8" >
15
+ <input class="" v-model=model.f_phone condition="u.f_phone like '%{}%'" />
16
+ </div>
17
+ </div>
18
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
19
+ <label class="">工程编号:</label>
20
+ <div class="col-xs-8" >
21
+ <input class="" v-model=model.f_apply_num condition="u.f_apply_num like '%{}%'" />
22
+ </div>
23
+ </div>
24
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
25
+ <label class="">合同编号:</label>
26
+ <div class="col-xs-8" >
27
+ <input class="" v-model=model.f_contract_number condition="u.f_contract_number like '%{}%'" />
28
+ </div>
29
+ </div>
30
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
31
+ <label class="">报建类型:</label>
32
+ <div class="col-xs-8" >
33
+ <v-select
34
+ width="100%"
35
+ v-model="model.f_apply_type"
36
+ placeholder='报建类型'
37
+ condition="u.f_apply_type like '%{}%'"
38
+ :value.sync="model.f_apply_type"
39
+ :options='$parent.$parent.applytype'
40
+ class="select select_list"
41
+ :value-single="true"
42
+ @change="$parent.$parent.applyTypeChange()"
43
+ close-on-select ></v-select>
44
+ </div>
45
+ </div>
46
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
47
+ <label class="">办理环节:</label>
48
+ <div class="col-xs-8" >
49
+ <v-select
50
+ width="100%"
51
+ v-model="model.defname"
52
+ placeholder='办理环节'
53
+ condition="act.defname = '{}'"
54
+ :value.sync="model.defname"
55
+ :options='$parent.$parent.defnames'
56
+ class="select select_list"
57
+ :value-single="true"
58
+ close-on-select ></v-select>
59
+ </div>
60
+ </div>
61
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
62
+ <label class="">报建性质:</label>
63
+ <div class="col-xs-8" >
64
+ <v-select
65
+ width="100%"
66
+ v-model="model.f_apply_nature"
67
+ placeholder='报建性质'
68
+ condition="f_apply_nature = '{}'"
69
+ :value.sync="model.f_apply_nature"
70
+ :options='$parent.$parent.applyNatures'
71
+ class="select select_list"
72
+ :value-single="true"
73
+ close-on-select ></v-select>
74
+ </div>
75
+ </div>
76
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
77
+ <label class="">用户地址:</label>
78
+ <div class="col-xs-8" >
79
+ <input class="" v-model=model.f_address condition="u.f_address like '%{}%'" />
80
+ </div>
81
+ </div>
82
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
83
+ <label class="">开始时间:</label>
84
+ <div class="col-xs-8" >
85
+ <datepicker id="startDate" placeholder="开始日期"
86
+ style="width: 100%!important;"
87
+ v-model="model.startDate"
88
+ :value.sync="model.startDate"
89
+ :format="'yyyy-MM-dd 00:00:00'"
90
+ :show-reset-button="true"
91
+ condition="u.f_apply_date >= '{}'">
92
+ </datepicker>
93
+ </div>
94
+ </div>
95
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
96
+ <label class="">结束时间:</label>
97
+ <div class="col-xs-8" >
98
+ <datepicker id="endDate" placeholder="结束日期"
99
+ style="width: 100%!important;"
100
+ v-model="model.endDate"
101
+ :value.sync="model.endDate"
102
+ :format="'yyyy-MM-dd 23:59:59'"
103
+ :show-reset-button="true"
104
+ condition="f_apply_date <= '{}'">
105
+ </datepicker>
106
+ </div>
107
+ </div>
108
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
109
+ <label class="">稍后处理:</label>
110
+ <div class="col-xs-8" >
111
+ <v-select
112
+ width="100%"
113
+ v-model="model.f_no_valid"
114
+ placeholder='稍后处理'
115
+ condition="lp.f_no_valid = '{}'"
116
+ :value.sync="model.f_no_valid"
117
+ :options='$parent.$parent.laterList'
118
+ class="select select_list"
119
+ :value-single="true"
120
+ close-on-select ></v-select>
121
+ </div>
122
+ </div>
123
+ <div class="row form-group text-right" style="">
124
+ <button class="btn btn-primary" @click="$parent.$parent.search()">查询</button>
125
+ <button class="btn btn-info" @click="$parent.$parent.clear()">清空</button>
126
+ <button v-if="$parent.$parent.initiateapply" class="btn btn-info" @click="$parent.$parent.showModal = !$parent.$parent.showModal">工程发起</button>
127
+ <button class="btn" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"></button>
128
+ </div>
129
+ </div>
130
+ </criteria>
131
+
132
+ <list :model="model" partial='list'>
133
+ <div partial class="auto app-text panel">
134
+ <div class="panel-body panel-self">
135
+ <div class="col-xs-12">
136
+ <p class="col-xs-3 text-left font"><b>客户名称:</b></p>
137
+ <p class="col-xs-9 text-left input-font">{{ row.f_user_name }}</p>
138
+ </div>
139
+ <div class="col-xs-12">
140
+ <p class="col-xs-3 text-left font"><b>电&emsp;&emsp;话:</b></p>
141
+ <p class="col-xs-9 text-left input-font">
142
+ {{ row.f_phone }}&ensp;
143
+ <svg @click.prevent="$parent.$parent.$parent.dialNumber(row.f_phone)" style="width: 25px;height: 25px;position: absolute;" t="1628575136009" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2374" width="200" height="200"><path d="M682.25 465.262c0 16.695 11.115 27.811 27.81 27.811s27.812-11.116 27.812-27.811A167.395 167.395 0 0 0 570.96 298.35c-16.695 0-27.811 11.116-27.811 27.811s11.16 27.812 27.811 27.812a111.597 111.597 0 0 1 111.29 111.289z m111.289 0c0 16.695 11.115 27.811 27.81 27.811s27.812-11.116 27.812-27.811c0-152.984-125.217-278.201-278.2-278.201-16.696 0-27.812 11.16-27.812 27.855s11.16 27.811 27.811 27.811c122.405 0 222.579 100.174 222.579 222.535zM417.976 367.9c30.623-30.579 33.391-77.898 5.58-111.289L337.31 148.134c-27.811-36.16-80.666-41.74-116.869-13.928-2.768 2.812-5.536 2.812-5.536 5.58l-75.13 75.13c-72.318 72.318 30.623 267.041 217.042 453.417C543.15 854.708 735.06 954.88 807.378 885.33l75.13-75.13c33.392-33.391 33.392-86.246 0-116.825l-5.536-5.58-108.52-86.246c-33.348-27.81-80.623-25.043-111.246 5.58l-47.275 47.319c-50.087-30.623-94.593-64.014-133.564-102.941-38.927-38.971-72.275-83.478-102.898-133.565l44.507-50.043z m-38.927-75.13c8.348 11.16 8.348 27.855-2.812 36.203l-61.202 63.97a29.569 29.569 0 0 0-5.536 33.392 721.425 721.425 0 0 0 122.405 164.1 721.512 721.512 0 0 0 164.1 122.405 29.569 29.569 0 0 0 33.39-5.58l63.971-63.97c11.16-11.116 25.043-11.116 36.203-2.769l108.477 89.014s2.768 0 2.768 2.768a26.889 26.889 0 0 1 0 38.971l-75.13 75.13c-36.115 36.115-208.606-55.666-372.75-217.042-164.1-161.332-253.114-336.548-216.955-372.75l77.854-77.899c11.16-8.348 30.623-8.348 38.971 5.58l86.246 108.521z" fill="#8A8A8A" p-id="2375"></path></svg>
144
+ </p>
145
+ </div>
146
+ <div class="col-xs-12">
147
+ <p class="col-xs-3 text-left font"><b>工程编号:</b></p>
148
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_num }}</p>
149
+ </div>
150
+ <div class="col-xs-12">
151
+ <p class="col-xs-3 text-left font"><b>客户编号:</b></p>
152
+ <p :class="[ row.defname =='通气点火' && (row.f_apply_nature=='热水器' || row.f_apply_nature=='壁挂炉') ? 'redy' : (row.f_apply_nature=='热水器' || row.f_apply_nature=='壁挂炉' ? 'pred': (row.defname =='通气点火' ? 'p1':''))]" class="col-xs-9 text-left input-font">{{ row.f_userinfo_code }}</p>
153
+ </div>
154
+ <div class="col-xs-12">
155
+ <p class="col-xs-3 text-left font"><b>报建类型:</b></p>
156
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_type }}</p>
157
+ </div>
158
+ <div class="col-xs-12">
159
+ <p class="col-xs-3 text-left font"><b>办理环节:</b></p>
160
+ <p class="col-xs-9 text-left input-font">{{ row.defname }}</p>
161
+ </div>
162
+ <div class="col-xs-12">
163
+ <p class="col-xs-3 text-left font"><b>地&emsp;&emsp;址:</b></p>
164
+ <p class="col-xs-9 text-left input-font">{{ row.f_address }}</p>
165
+ </div>
166
+ <div class="col-xs-12" v-if="row.f_order_date != null ">
167
+ <p class="col-xs-3 text-left font"><b>预约日期:</b></p>
168
+ <p class="col-xs-9 text-left input-font">{{ row.f_order_date }}</p>
169
+ </div>
170
+ <div class="col-xs-12">
171
+ <p class="col-xs-3 text-left font"><b>报建日期:</b></p>
172
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_date }}</p>
173
+ </div>
174
+ <div class="col-xs-12" style="color: red">
175
+ <p class="col-xs-3 text-left font"><b>施工备注:</b></p>
176
+ <p class="col-xs-9 text-left input-font">{{ row.f_construction_remarks }}</p>
177
+ </div>
178
+ <div class="col-xs-12" style="color: red" v-if="row.defname == '工程施工'||row.defname=='工程派工'">
179
+ <p class="col-xs-3 text-left font"><b>报装备注:</b></p>
180
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_remarks }}</p>
181
+ </div>
182
+ <div class="col-xs-12" v-if="row.f_no_valid != null">
183
+ <p class="col-xs-4 text-left font"><b>稍后处理备注:</b></p>
184
+ <p class="col-xs-8 text-left input-font" style="color: red">{{row.f_later_remarks}}</p>
185
+ </div>
186
+
187
+ <div class="col-xs-12" v-if="row.f_back_reason != null">
188
+ <p class="col-xs-4 text-left font"><b>退回备注:</b></p>
189
+ <p class="col-xs-8 text-left input-font">
190
+ <span style="color: red;font-family: 微软雅黑;font-weight: bold;font-size: 18px">请注意被退回原因为:{{row.f_back_reason}} 退回时间:{{row.f_date}}</span>
191
+ </p>
192
+ </div>
193
+
194
+ <div class="col-xs-12 text-right">
195
+ <button class="btn btn-info" type="button" @click="$parent.$parent.$parent.openLater(row) " v-if="row.f_no_valid !== '有效'">稍后处理</button>
196
+ <button class="btn btn-info" @click="$parent.$parent.$parent.click(row)">处理</button>
197
+ </div>
198
+ </div>
199
+ </div>
200
+ </list>
201
+
202
+ </criteria-paged>
203
+ <validator name="v">
204
+ <modal v-if="showLater" :show.sync="showLater" v-ref:modal :large="true" :backdrop="false" title="稍后处理">
205
+ <header slot="modal-header" class="modal-header">
206
+ <button type="button" class="close" @click="closeModal"><span>&times;</span></button>
207
+ <h4 class="modal-title">稍后处理</h4>
208
+ </header>
209
+
210
+ <article slot="modal-body" class="modal-body clearfix">
211
+ <div class="form-group col-sm-12">
212
+ <label class="col-sm-2 control-label">稍后处理备注:</label>
213
+ <div class="col-sm-10">
214
+ <input type="textarea"
215
+ class="form-control input_view"
216
+ style="width: 100%"
217
+ v-model="laterapply.f_later_remarks" />
218
+ </div>
219
+ </div>
220
+ </article>
221
+
222
+ <footer slot="modal-footer" class="modal-footer">
223
+ <button type="button" class="btn btn-primary" :disabled='!$v.valid' @click="later()">稍后处理</button>
224
+ </footer>
225
+ </modal>
226
+ </validator>
227
+ <validator name="v">
228
+ <modal
229
+ v-if="showModal"
230
+ :show.sync="showModal"
231
+ backdrop="false"
232
+ title="工程类型"
233
+ cancel-text="取消"
234
+ ok-text="确认"
235
+ :callback="apply"
236
+ >
237
+ <div class="form-horizontal" slot="modal-body">
238
+ <div class="row form-group app-input" style="margin: 10px auto">
239
+ <label class="">报建类型:</label>
240
+ <div class="col-sm-8">
241
+ <v-select
242
+ v-model="applyType"
243
+ placeholder='请选择需要发起的工程类型'
244
+ :value.sync="applyType"
245
+ :options='applyTypes'
246
+ :value-single="true"
247
+ class="select select_list"
248
+ :search="false"
249
+ close-on-select ></v-select>
250
+ </div>
251
+ </div>
252
+ </div>
253
+ </modal>
254
+ </validator>
255
+ </div>
256
+ </template>
257
+ <script>
258
+ import Vue from 'vue'
259
+ import { PagedList, HttpResetClass } from 'vue-client'
260
+ import {isEmpty} from '../../Util'
261
+ export default {
262
+ title: '报建流程',
263
+ data () {
264
+ return {
265
+ selectdate: {},
266
+ showLater: false,
267
+ model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/checkuser`, 50, {
268
+ data: {
269
+ id: Vue.user.id,
270
+ orgid: Vue.user.orgid
271
+ },
272
+ }),
273
+ applytype:[],
274
+ showModal: false,
275
+ applyType: '', // 报建类型
276
+ applyTypes:[],
277
+ // applyTypes:[{label:'散户报建',value:'散户报建'},{label:'工商户报建',value:'工商户报建'}],
278
+ criteriaShow: false,
279
+ // applytype: [{label: '全部', value: ''}, {label:'团购转散户',value:'团购转散户'} ], // 所有报建类型
280
+ defnames: [{label: '全部', value: ''}],
281
+ applyNatures: [{label: '全部', value: ''}], // 报建性质
282
+ laterList: [
283
+ {label: '全部', value: ''},
284
+ {label: '有效', value: '有效'}
285
+ ],
286
+ initiateapply:this.$appdata.getSingleValue('手机发起报建')?this.$appdata.getSingleValue('手机发起报建'):false,
287
+ laterapply: {}
288
+ }
289
+ },
290
+ ready () {
291
+ this.search()
292
+ //this.$refs.cp.$refs.cri.model.defname='报装缴费'
293
+ //this.$refs.cp.$refs.cri.model.defname='合同签订'
294
+ this.applytype =[{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')]// 所有报建类型
295
+ this.applyTypes=this.$appdata.getParam("手机报建类型")
296
+
297
+ },
298
+ methods: {
299
+ openLater (row) {
300
+ this.selectdate = row
301
+ this.showLater=true
302
+ },
303
+ async later () {
304
+ let http = new HttpResetClass()
305
+ let data = {
306
+ laterapply: this.laterapply,
307
+ selectdata: this.selectdate,
308
+ user: Vue.user
309
+ }
310
+ let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/laterprocessing`, {data:data}, {
311
+ resolveMsg: null,
312
+ rejectMsg: '稍后处理记录保存失败!!!'
313
+ })
314
+ this.closeModal()
315
+ },
316
+ closeModal() {
317
+ this.selectdate = null
318
+ this.showLater = false
319
+ this.laterapply = {}
320
+ this.search()
321
+ },
322
+ dialNumber (phone) {
323
+ this.$showMessage(`是否拨打电话:${phone}`, ['confirm']).then((res) => {
324
+ if (res === 'confirm') {
325
+ this.$androidUtil.makeAPhoneCall(phone)
326
+ }
327
+ })
328
+ },
329
+ clear () {
330
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
331
+ this.$refs.cp.$refs.cri.model[key] = null
332
+ })
333
+ },
334
+ // 查询
335
+ search () {
336
+ this.$refs.cp.$refs.cri.search()
337
+ },
338
+ searchCondition (args) {
339
+ args.condition += `and act.defname in ${this.appDefnames}`
340
+ this.model.search(args.condition, args.model)
341
+ },
342
+ click (row) {
343
+ let _this = this
344
+ this.$dispatch('gotoson', {
345
+ _this: _this,
346
+ title: row.defname,
347
+ safe: true
348
+ })
349
+ this.$goto('app-service-control', {selectdata: row}, 'self', _this.search)
350
+ },
351
+ applyTypeChange () {
352
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
353
+ let http = new HttpResetClass()
354
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getDefnameByType`, {
355
+ // http.load('POST', 'rs/logic/getDefnameByType', {
356
+ f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
357
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
358
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
359
+
360
+ this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
361
+ })
362
+ } else {
363
+ this.defnames = [{label: '全部', value: ''}]
364
+
365
+ this.applyNatures = [{label: '全部', value: ''}]
366
+ }
367
+ },
368
+ // 报装申请
369
+ async apply () {
370
+ if (this.applyType === '' || this.applyType === null) {
371
+ this.$showAlert('请选择需要发起的类型', 'warning', 3000)
372
+ return
373
+ }
374
+ let data = {
375
+ f_apply_type: this.applyType
376
+ }
377
+ if (this.applyType === '散户报建') {
378
+ data.processname = '散户报建流程'
379
+ data.defname = '报装申请'
380
+ } else if (this.applyType === '工商户报建') {
381
+ data.processname = '工商户报建流程'
382
+ data.defname = '报装申请'
383
+ } else if (this.applyType === '改管报建') {
384
+ data.processname = '改管报建流程'
385
+ data.defname = '报装申请'
386
+ } else if (this.applyType === '增容报建') {
387
+ data.processname = '增容报建流程'
388
+ data.defname = '报装申请'
389
+ } else if (this.applyType === '团购报建') {
390
+ data.processname = '团购报建流程'
391
+ data.defname = '报装申请'
392
+ } else if (this.applyType === '退款报建') {
393
+ data.processname = '退款报建流程'
394
+ data.defname = '终止报建'
395
+ } else if (this.applyType === '团购转散户') {
396
+ data.processname = '团购转散户报建流程'
397
+ data.defname = '信息确认'
398
+ }else if (this.applyType === '报警器报建') {
399
+ data.processname = '报警器报建流程'
400
+ data.defname = '报装申请'
401
+ }else if (this.applyType === '工商业报警器报建') {
402
+ data.processname = '工商业报警器报建流程'
403
+ data.defname = '报装申请'
404
+ } else {
405
+ this.$showMessage('暂无此类报装')
406
+ return
407
+ }
408
+
409
+ data.f_sub_state = "新增"
410
+ data.f_apply_source = "线下发起"
411
+ data.f_process_id = await this.getProcessId(data.processname)
412
+
413
+ // 调用ExplorationUser事件
414
+
415
+ this.click(data)
416
+ this.applyType = null
417
+ this.showModal = false
418
+ },
419
+ // 获取流程id
420
+ async getProcessId(processname) {
421
+ let data = {
422
+ workname: processname
423
+ }
424
+ let http = new HttpResetClass()
425
+ let res = await http.load(
426
+ 'POST',
427
+ `${this.$androidUtil.getProxyUrl()}/rs/logic/getProcessId`,
428
+ {data: data},
429
+ {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
430
+ )
431
+
432
+ return res.data
433
+ },
434
+ },
435
+ events: {
436
+ },
437
+ watch: {
438
+ },
439
+ computed: {
440
+ appDefnames () {
441
+ // let list = [{label: '报装缴费', value: '报装缴费'}, {label: '通气点火', value: '通气点火'},{label: '工程施工', value: '工程施工'},{label: '工程派工', value: '工程派工'},{label: '点火派单', value: '点火派单'}]
442
+ let list = this.$appdata.getParam('手机节点')
443
+ return `(${list.map(item => `'${item.value}'`).toString()})`
444
+ }
445
+ }
446
+ }
447
+ </script>
448
+ <style scoped>
449
+ .pred{
450
+ color: red;
451
+ }
452
+ .p1 {
453
+ color: #ffaf4f;
454
+ }
455
+ .redy{
456
+ color: deeppink;
457
+ }
458
+ .panel-self{
459
+ border-radius: 10px;
460
+ border:1px solid #499EDF;
461
+ background-color: #F8F8F8;
462
+ }
463
+ .font{
464
+ font: 15px PingFang-SC-Medium;
465
+ color: #666666;
466
+ }
467
+
468
+ .button_shrink_top {
469
+ width: 34px;
470
+ height: 34px;
471
+ border: solid 1px #6aa6e2;
472
+ background-size: 100%;
473
+ background-image: url("../../../../static/newStyle/stretch_top.png")
474
+ }
475
+
476
+ .button_shrink_bottom {
477
+ width: 34px;
478
+ height: 34px;
479
+ border: solid 1px #6aa6e2;
480
+ background-size: 100%;
481
+ background-image: url("../../../../static/newStyle/stretch_bottom.png")
482
+ }
483
+ </style>
484
+ <style lang="less">
485
+ .app-input {
486
+ label {
487
+ float: left;
488
+ }
489
+ .select {
490
+ button {
491
+ border: none;
492
+ outline: none;
493
+ text-align: left;
494
+ .btn-placeholder {
495
+ color: #ACA899
496
+ }
497
+ }
498
+ }
499
+ .datepicker {
500
+ .form-control:focus {
501
+ border: none!important;
502
+ outline: none!important;
503
+ -webkit-box-shadow: none;
504
+ box-shadow: none;
505
+ }
506
+ }
507
+ }
508
+ </style>