apply-clients 3.5.1 → 3.5.2

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 (44) hide show
  1. package/build/dev-server.js +142 -133
  2. package/package.json +118 -118
  3. package/src/App.vue +26 -21
  4. package/src/applyAndroid.js +58 -58
  5. package/src/components/android/AppSign.vue +152 -152
  6. package/src/components/android/AppTakePic.vue +181 -181
  7. package/src/components/android/Process/AppChargeList.vue +224 -224
  8. package/src/components/android/Process/AppExplorationUser.vue +508 -508
  9. package/src/components/product/Install/ContractCharge.vue +210 -210
  10. package/src/filiale/fugou/android/AppChargeManagement.vue +625 -625
  11. package/src/filiale/hongda/pc/FunctionServiceControl.vue +526 -525
  12. package/src/filiale/qianneng/android/AppExplorationUser.vue +441 -441
  13. package/src/filiale/qianneng/android/AppServiceControl.vue +1608 -1608
  14. package/src/filiale/qianneng/pc/Applybatchdispatch.vue +685 -685
  15. package/src/filiale/qianneng/pc/ExplorationSelect.vue +492 -492
  16. package/src/filiale/qianneng/pc/FunctionServiceControl.vue +521 -521
  17. package/src/filiale/qianneng/pc/InstallInfoSelect.vue +392 -392
  18. package/src/filiale/qianneng/pc/InstallationDetails.vue +561 -561
  19. package/src/filiale/qianneng/pc/ServiceControl.vue +1351 -1340
  20. package/src/filiale/qianneng/pc/SupervisoryList.vue +344 -344
  21. package/src/filiale/qianneng/pc/SupervisoryServiceControl.vue +871 -871
  22. package/src/filiale/qianneng/pc/chargeManagement.vue +656 -656
  23. package/src/filiale/qianneng/pc/printactivatecard.vue +295 -295
  24. package/src/filiale/qianneng/pc/supplementalAgreement.vue +344 -344
  25. package/src/filiale/yangchunboneng/android/AppAddMaterialScience.vue +390 -390
  26. package/src/filiale/yangchunboneng/android/AppChargeManagement.vue +120 -120
  27. package/src/filiale/yangchunboneng/android/AppDevicesManagement.vue +552 -552
  28. package/src/filiale/yangchunboneng/android/AppExplorationUser.vue +507 -507
  29. package/src/filiale/yangchunboneng/android/AppInstallationDetails.vue +492 -492
  30. package/src/filiale/yangchunboneng/android/AppOtherChargeManagement.vue +116 -116
  31. package/src/filiale/yangchunboneng/android/AppServiceControl.vue +1552 -1552
  32. package/src/filiale/yangchunboneng/android/AppTakePic.vue +181 -181
  33. package/src/filiale/yangchunboneng/android/chargesList.vue +170 -170
  34. package/src/filiale/yangchunboneng/android.js +16 -16
  35. package/src/filiale/yangchunboneng/pc/ExplorationSelect.vue +496 -496
  36. package/src/filiale/yangchunboneng/pc/InstallationDetails.vue +609 -609
  37. package/src/filiale/yangchunboneng/pc/ServiceControl.vue +1782 -1782
  38. package/src/filiale/yangchunboneng/pc/ServiceView.vue +1005 -1005
  39. package/src/filiale/yangchunboneng/pc/addMaterialScience.vue +374 -374
  40. package/src/filiale/yangchunboneng/pc/chargeManagement.vue +960 -960
  41. package/src/filiale/yangchunboneng/pc/devicesManagement.vue +511 -511
  42. package/src/filiale/yangchunboneng/pc/otherchargeManagement.vue +214 -214
  43. package/src/filiale/yangchunboneng/pc.js +17 -17
  44. package/src/main.js +23 -23
@@ -1,441 +1,441 @@
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 text-right" style="">
109
- <button class="btn btn-primary" @click="$parent.$parent.search()">查询</button>
110
- <button class="btn btn-info" @click="$parent.$parent.clear()">清空</button>
111
- <button class="btn" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"></button>
112
- </div>
113
- </div>
114
- </criteria>
115
-
116
- <list :model="model" partial='list'>
117
- <div partial class="auto app-text panel">
118
- <div class="panel-body panel-self">
119
- <div class="col-xs-12">
120
- <p class="col-xs-3 text-left font"><b>客户名称:</b></p>
121
- <p class="col-xs-9 text-left input-font">{{ row.f_user_name }}</p>
122
- </div>
123
- <div class="col-xs-12">
124
- <p class="col-xs-3 text-left font"><b>电&emsp;&emsp;话:</b></p>
125
- <p class="col-xs-9 text-left input-font">
126
- {{ row.f_phone }}&ensp;
127
- <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>
128
- </p>
129
- </div>
130
- <div class="col-xs-12">
131
- <p class="col-xs-3 text-left font"><b>工程编号:</b></p>
132
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_num }}</p>
133
- </div>
134
- <div class="col-xs-12">
135
- <p class="col-xs-3 text-left font"><b>客户编号:</b></p>
136
- <p class="col-xs-9 text-left input-font">{{ row.f_userinfo_code }}</p>
137
- </div>
138
- <div class="col-xs-12">
139
- <p class="col-xs-3 text-left font"><b>报建类型:</b></p>
140
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_type }}</p>
141
- </div>
142
- <div class="col-xs-12">
143
- <p class="col-xs-3 text-left font"><b>办理环节:</b></p>
144
- <p class="col-xs-9 text-left input-font">{{ row.defname }}</p>
145
- </div>
146
- <div class="col-xs-12">
147
- <p class="col-xs-3 text-left font"><b>地&emsp;&emsp;址:</b></p>
148
- <p class="col-xs-9 text-left input-font">{{ row.f_address }}</p>
149
- </div>
150
- <div class="col-xs-12" v-if="row.f_order_date != null ">
151
- <p class="col-xs-3 text-left font"><b>预约日期:</b></p>
152
- <p class="col-xs-9 text-left input-font">{{ row.f_order_date }}</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_date }}</p>
157
- </div>
158
- <div class="col-xs-12" style="color: red">
159
- <p class="col-xs-3 text-left font"><b>施工备注:</b></p>
160
- <p class="col-xs-9 text-left input-font">{{ row.f_construction_remarks }}</p>
161
- </div>
162
- <div class="col-xs-12" style="color: red" v-if="row.defname == '工程施工'||row.defname=='工程派工'">
163
- <p class="col-xs-3 text-left font"><b>报装备注:</b></p>
164
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_remarks }}</p>
165
- </div>
166
- <div class="col-xs-12" v-if="row.f_back_reason != null">
167
- <p class="col-xs-4 text-left font"><b>退回备注:</b></p>
168
- <p class="col-xs-8 text-left input-font">
169
- <span style="color: red;font-family: 微软雅黑;font-weight: bold;font-size: 18px">请注意被退回原因为:{{row.f_back_reason}} 退回时间:{{row.f_date}}</span>
170
- </p>
171
- </div>
172
-
173
- <div class="col-xs-12 text-right">
174
- <button class="btn btn-info" @click="$parent.$parent.$parent.click(row)">处理</button>
175
- </div>
176
- </div>
177
- </div>
178
- </list>
179
-
180
- </criteria-paged>
181
- <validator name="v">
182
- <modal
183
- v-if="showModal"
184
- :show.sync="showModal"
185
- backdrop="false"
186
- title="工程类型"
187
- cancel-text="取消"
188
- ok-text="确认"
189
- :callback="apply"
190
- >
191
- <div class="form-horizontal" slot="modal-body">
192
- <div class="row form-group app-input" style="margin: 10px auto">
193
- <label class="">报建类型:</label>
194
- <div class="col-sm-8">
195
- <v-select
196
- v-model="applyType"
197
- placeholder='请选择需要发起的工程类型'
198
- :value.sync="applyType"
199
- :options='applyTypes'
200
- :value-single="true"
201
- class="select select_list"
202
- :search="false"
203
- close-on-select ></v-select>
204
- </div>
205
- </div>
206
- </div>
207
- </modal>
208
- </validator>
209
- </div>
210
- </template>
211
- <script>
212
- import Vue from 'vue'
213
- import { PagedList, HttpResetClass } from 'vue-client'
214
- import {isEmpty} from '../../../components/Util'
215
- export default {
216
- title: '报建流程',
217
- data () {
218
- return {
219
- selectdate: {},
220
- showLater: false,
221
- model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/checkuser`, 20, {
222
- data: {
223
- id: Vue.user.id,
224
- orgid: Vue.user.orgid
225
- },
226
- }),
227
- applytype:[],
228
- showModal: false,
229
- applyType: '', // 报建类型
230
- applyTypes:[],
231
- // applyTypes:[{label:'居民用户报建',value:'居民用户报建'},{label:'非居用户报建',value:'非居用户报建'}],
232
- criteriaShow: false,
233
- // applytype: [{label: '全部', value: ''}, {label:'居民团体单户报建',value:'居民团体单户报建'} ], // 所有报建类型
234
- defnames: [{label: '全部', value: ''}],
235
- applyNatures: [{label: '全部', value: ''}], // 报建性质
236
- laterList: [
237
- {label: '全部', value: ''},
238
- {label: '有效', value: '有效'}
239
- ],
240
- laterapply: {}
241
- }
242
- },
243
- ready () {
244
- this.search()
245
- //this.$refs.cp.$refs.cri.model.defname='报装缴费'
246
- //this.$refs.cp.$refs.cri.model.defname='合同签订'
247
- this.applytype =[{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')]// 所有报建类型
248
- this.applyTypes=this.$appdata.getParam("手机报建类型")
249
-
250
- },
251
- methods: {
252
- openLater (row) {
253
- this.selectdate = row
254
- this.showLater=true
255
- },
256
- closeModal() {
257
- this.selectdate = null
258
- this.showLater = false
259
- this.laterapply = {}
260
- this.search()
261
- },
262
- dialNumber (phone) {
263
- this.$showMessage(`是否拨打电话:${phone}`, ['confirm']).then((res) => {
264
- if (res === 'confirm') {
265
- this.$androidUtil.makeAPhoneCall(phone)
266
- }
267
- })
268
- },
269
- clear () {
270
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
271
- this.$refs.cp.$refs.cri.model[key] = null
272
- })
273
- },
274
- // 查询
275
- search () {
276
- this.$refs.cp.$refs.cri.search()
277
- },
278
- searchCondition (args) {
279
- args.condition = args.condition + `and (act.defname in ('踏勘设计','工程施工','通气验收')) `
280
- this.model.search(args.condition, args.model)
281
- },
282
- click (row) {
283
- let _this = this
284
- this.$dispatch('gotoson', {
285
- _this: _this,
286
- title: row.defname,
287
- safe: true
288
- })
289
- this.$goto('app-service-control', {selectdata: row}, 'self', _this.search)
290
- },
291
- applyTypeChange () {
292
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
293
- let http = new HttpResetClass()
294
- http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getDefnameByType`, {
295
- f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
296
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
297
- this.defnames = [{label: '全部', value: ''}, ...res.data]
298
-
299
- 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}性质`)]
300
- })
301
- } else {
302
- this.defnames = [{label: '全部', value: ''}]
303
-
304
- this.applyNatures = [{label: '全部', value: ''}]
305
- }
306
- },
307
- // 报装申请
308
- async apply () {
309
- if (this.applyType === '' || this.applyType === null) {
310
- this.$showAlert('请选择需要发起的类型', 'warning', 3000)
311
- return
312
- }
313
- let data = {
314
- f_apply_type: this.applyType
315
- }
316
- if (this.applyType === '居民用户报建') {
317
- data.processname = '居民用户报建流程'
318
- data.defname = '报装申请'
319
- } else if (this.applyType === '非居用户报建') {
320
- data.processname = '非居用户报建流程'
321
- data.defname = '报装申请'
322
- } else if (this.applyType === '改管报建') {
323
- data.processname = '改管报建流程'
324
- data.defname = '报装申请'
325
- } else if (this.applyType === '增容报建') {
326
- data.processname = '增容报建流程'
327
- data.defname = '报装申请'
328
- } else if (this.applyType === '居民团体用户报建') {
329
- data.processname = '居民团体用户报建流程'
330
- data.defname = '报装申请'
331
- } else if (this.applyType === '退款报建') {
332
- data.processname = '退款报建流程'
333
- data.defname = '终止报建'
334
- } else if (this.applyType === '居民团体单户报建') {
335
- data.processname = '居民团体单户报建流程'
336
- data.defname = '信息确认'
337
- }else {
338
- this.$showMessage('暂无此类报装')
339
- return
340
- }
341
-
342
- data.f_sub_state = "新增"
343
- data.f_apply_source = "线下发起"
344
- data.f_process_id = await this.getProcessId(data.processname)
345
-
346
- // 调用ExplorationUser事件
347
-
348
- this.click(data)
349
- this.applyType = null
350
- this.showModal = false
351
- },
352
- // 获取流程id
353
- async getProcessId(processname) {
354
- let data = {
355
- workname: processname
356
- }
357
- let http = new HttpResetClass()
358
- let res = await http.load(
359
- 'POST',
360
- `${this.$androidUtil.getProxyUrl()}/rs/logic/getProcessId`,
361
- {data: data},
362
- {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
363
- )
364
-
365
- return res.data
366
- },
367
- },
368
- events: {
369
- },
370
- watch: {
371
- },
372
- computed: {
373
- appDefnames () {
374
- // let list = [{label: '报装缴费', value: '报装缴费'}, {label: '通气点火', value: '通气点火'},{label: '工程施工', value: '工程施工'},{label: '工程派工', value: '工程派工'},{label: '点火派单', value: '点火派单'}]
375
- let list = this.$appdata.getParam('手机节点')
376
- return `(${list.map(item => `'${item.value}'`).toString()})`
377
- }
378
- }
379
- }
380
- </script>
381
- <style scoped>
382
- .pred{
383
- color: red;
384
- }
385
- .p1 {
386
- color: #ffaf4f;
387
- }
388
- .redy{
389
- color: deeppink;
390
- }
391
- .panel-self{
392
- border-radius: 10px;
393
- border:1px solid #499EDF;
394
- background-color: #F8F8F8;
395
- }
396
- .font{
397
- font: 15px PingFang-SC-Medium;
398
- color: #666666;
399
- }
400
-
401
- .button_shrink_top {
402
- width: 34px;
403
- height: 34px;
404
- border: solid 1px #6aa6e2;
405
- background-size: 100%;
406
- background-image: url("../../../../static/newStyle/stretch_top.png")
407
- }
408
-
409
- .button_shrink_bottom {
410
- width: 34px;
411
- height: 34px;
412
- border: solid 1px #6aa6e2;
413
- background-size: 100%;
414
- background-image: url("../../../../static/newStyle/stretch_bottom.png")
415
- }
416
- </style>
417
- <style lang="less">
418
- .app-input {
419
- label {
420
- float: left;
421
- }
422
- .select {
423
- button {
424
- border: none;
425
- outline: none;
426
- text-align: left;
427
- .btn-placeholder {
428
- color: #ACA899
429
- }
430
- }
431
- }
432
- .datepicker {
433
- .form-control:focus {
434
- border: none!important;
435
- outline: none!important;
436
- -webkit-box-shadow: none;
437
- box-shadow: none;
438
- }
439
- }
440
- }
441
- </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 text-right" style="">
109
+ <button class="btn btn-primary" @click="$parent.$parent.search()">查询</button>
110
+ <button class="btn btn-info" @click="$parent.$parent.clear()">清空</button>
111
+ <button class="btn" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"></button>
112
+ </div>
113
+ </div>
114
+ </criteria>
115
+
116
+ <list :model="model" partial='list'>
117
+ <div partial class="auto app-text panel">
118
+ <div class="panel-body panel-self">
119
+ <div class="col-xs-12">
120
+ <p class="col-xs-3 text-left font"><b>客户名称:</b></p>
121
+ <p class="col-xs-9 text-left input-font">{{ row.f_user_name }}</p>
122
+ </div>
123
+ <div class="col-xs-12">
124
+ <p class="col-xs-3 text-left font"><b>电&emsp;&emsp;话:</b></p>
125
+ <p class="col-xs-9 text-left input-font">
126
+ {{ row.f_phone }}&ensp;
127
+ <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>
128
+ </p>
129
+ </div>
130
+ <div class="col-xs-12">
131
+ <p class="col-xs-3 text-left font"><b>工程编号:</b></p>
132
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_num }}</p>
133
+ </div>
134
+ <div class="col-xs-12">
135
+ <p class="col-xs-3 text-left font"><b>客户编号:</b></p>
136
+ <p class="col-xs-9 text-left input-font">{{ row.f_userinfo_code }}</p>
137
+ </div>
138
+ <div class="col-xs-12">
139
+ <p class="col-xs-3 text-left font"><b>报建类型:</b></p>
140
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_type }}</p>
141
+ </div>
142
+ <div class="col-xs-12">
143
+ <p class="col-xs-3 text-left font"><b>办理环节:</b></p>
144
+ <p class="col-xs-9 text-left input-font">{{ row.defname }}</p>
145
+ </div>
146
+ <div class="col-xs-12">
147
+ <p class="col-xs-3 text-left font"><b>地&emsp;&emsp;址:</b></p>
148
+ <p class="col-xs-9 text-left input-font">{{ row.f_address }}</p>
149
+ </div>
150
+ <div class="col-xs-12" v-if="row.f_order_date != null ">
151
+ <p class="col-xs-3 text-left font"><b>预约日期:</b></p>
152
+ <p class="col-xs-9 text-left input-font">{{ row.f_order_date }}</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_date }}</p>
157
+ </div>
158
+ <div class="col-xs-12" style="color: red">
159
+ <p class="col-xs-3 text-left font"><b>施工备注:</b></p>
160
+ <p class="col-xs-9 text-left input-font">{{ row.f_construction_remarks }}</p>
161
+ </div>
162
+ <div class="col-xs-12" style="color: red" v-if="row.defname == '工程施工'||row.defname=='工程派工'">
163
+ <p class="col-xs-3 text-left font"><b>报装备注:</b></p>
164
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_remarks }}</p>
165
+ </div>
166
+ <div class="col-xs-12" v-if="row.f_back_reason != null">
167
+ <p class="col-xs-4 text-left font"><b>退回备注:</b></p>
168
+ <p class="col-xs-8 text-left input-font">
169
+ <span style="color: red;font-family: 微软雅黑;font-weight: bold;font-size: 18px">请注意被退回原因为:{{row.f_back_reason}} 退回时间:{{row.f_date}}</span>
170
+ </p>
171
+ </div>
172
+
173
+ <div class="col-xs-12 text-right">
174
+ <button class="btn btn-info" @click="$parent.$parent.$parent.click(row)">处理</button>
175
+ </div>
176
+ </div>
177
+ </div>
178
+ </list>
179
+
180
+ </criteria-paged>
181
+ <validator name="v">
182
+ <modal
183
+ v-if="showModal"
184
+ :show.sync="showModal"
185
+ backdrop="false"
186
+ title="工程类型"
187
+ cancel-text="取消"
188
+ ok-text="确认"
189
+ :callback="apply"
190
+ >
191
+ <div class="form-horizontal" slot="modal-body">
192
+ <div class="row form-group app-input" style="margin: 10px auto">
193
+ <label class="">报建类型:</label>
194
+ <div class="col-sm-8">
195
+ <v-select
196
+ v-model="applyType"
197
+ placeholder='请选择需要发起的工程类型'
198
+ :value.sync="applyType"
199
+ :options='applyTypes'
200
+ :value-single="true"
201
+ class="select select_list"
202
+ :search="false"
203
+ close-on-select ></v-select>
204
+ </div>
205
+ </div>
206
+ </div>
207
+ </modal>
208
+ </validator>
209
+ </div>
210
+ </template>
211
+ <script>
212
+ import Vue from 'vue'
213
+ import { PagedList, HttpResetClass } from 'vue-client'
214
+ import {isEmpty} from '../../../components/Util'
215
+ export default {
216
+ title: '报建流程',
217
+ data () {
218
+ return {
219
+ selectdate: {},
220
+ showLater: false,
221
+ model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/checkuser`, 20, {
222
+ data: {
223
+ id: Vue.user.id,
224
+ orgid: Vue.user.orgid
225
+ },
226
+ }),
227
+ applytype:[],
228
+ showModal: false,
229
+ applyType: '', // 报建类型
230
+ applyTypes:[],
231
+ // applyTypes:[{label:'居民用户报建',value:'居民用户报建'},{label:'非居用户报建',value:'非居用户报建'}],
232
+ criteriaShow: false,
233
+ // applytype: [{label: '全部', value: ''}, {label:'居民团体单户报建',value:'居民团体单户报建'} ], // 所有报建类型
234
+ defnames: [{label: '全部', value: ''}],
235
+ applyNatures: [{label: '全部', value: ''}], // 报建性质
236
+ laterList: [
237
+ {label: '全部', value: ''},
238
+ {label: '有效', value: '有效'}
239
+ ],
240
+ laterapply: {}
241
+ }
242
+ },
243
+ ready () {
244
+ this.search()
245
+ //this.$refs.cp.$refs.cri.model.defname='报装缴费'
246
+ //this.$refs.cp.$refs.cri.model.defname='合同签订'
247
+ this.applytype =[{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')]// 所有报建类型
248
+ this.applyTypes=this.$appdata.getParam("手机报建类型")
249
+
250
+ },
251
+ methods: {
252
+ openLater (row) {
253
+ this.selectdate = row
254
+ this.showLater=true
255
+ },
256
+ closeModal() {
257
+ this.selectdate = null
258
+ this.showLater = false
259
+ this.laterapply = {}
260
+ this.search()
261
+ },
262
+ dialNumber (phone) {
263
+ this.$showMessage(`是否拨打电话:${phone}`, ['confirm']).then((res) => {
264
+ if (res === 'confirm') {
265
+ this.$androidUtil.makeAPhoneCall(phone)
266
+ }
267
+ })
268
+ },
269
+ clear () {
270
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
271
+ this.$refs.cp.$refs.cri.model[key] = null
272
+ })
273
+ },
274
+ // 查询
275
+ search () {
276
+ this.$refs.cp.$refs.cri.search()
277
+ },
278
+ searchCondition (args) {
279
+ args.condition = args.condition + `and (act.defname in ('踏勘设计','工程施工','通气验收')) `
280
+ this.model.search(args.condition, args.model)
281
+ },
282
+ click (row) {
283
+ let _this = this
284
+ this.$dispatch('gotoson', {
285
+ _this: _this,
286
+ title: row.defname,
287
+ safe: true
288
+ })
289
+ this.$goto('app-service-control', {selectdata: row}, 'self', _this.search)
290
+ },
291
+ applyTypeChange () {
292
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
293
+ let http = new HttpResetClass()
294
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getDefnameByType`, {
295
+ f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
296
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
297
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
298
+
299
+ 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}性质`)]
300
+ })
301
+ } else {
302
+ this.defnames = [{label: '全部', value: ''}]
303
+
304
+ this.applyNatures = [{label: '全部', value: ''}]
305
+ }
306
+ },
307
+ // 报装申请
308
+ async apply () {
309
+ if (this.applyType === '' || this.applyType === null) {
310
+ this.$showAlert('请选择需要发起的类型', 'warning', 3000)
311
+ return
312
+ }
313
+ let data = {
314
+ f_apply_type: this.applyType
315
+ }
316
+ if (this.applyType === '居民用户报建') {
317
+ data.processname = '居民用户报建流程'
318
+ data.defname = '报装申请'
319
+ } else if (this.applyType === '非居用户报建') {
320
+ data.processname = '非居用户报建流程'
321
+ data.defname = '报装申请'
322
+ } else if (this.applyType === '改管报建') {
323
+ data.processname = '改管报建流程'
324
+ data.defname = '报装申请'
325
+ } else if (this.applyType === '增容报建') {
326
+ data.processname = '增容报建流程'
327
+ data.defname = '报装申请'
328
+ } else if (this.applyType === '居民团体用户报建') {
329
+ data.processname = '居民团体用户报建流程'
330
+ data.defname = '报装申请'
331
+ } else if (this.applyType === '退款报建') {
332
+ data.processname = '退款报建流程'
333
+ data.defname = '终止报建'
334
+ } else if (this.applyType === '居民团体单户报建') {
335
+ data.processname = '居民团体单户报建流程'
336
+ data.defname = '信息确认'
337
+ }else {
338
+ this.$showMessage('暂无此类报装')
339
+ return
340
+ }
341
+
342
+ data.f_sub_state = "新增"
343
+ data.f_apply_source = "线下发起"
344
+ data.f_process_id = await this.getProcessId(data.processname)
345
+
346
+ // 调用ExplorationUser事件
347
+
348
+ this.click(data)
349
+ this.applyType = null
350
+ this.showModal = false
351
+ },
352
+ // 获取流程id
353
+ async getProcessId(processname) {
354
+ let data = {
355
+ workname: processname
356
+ }
357
+ let http = new HttpResetClass()
358
+ let res = await http.load(
359
+ 'POST',
360
+ `${this.$androidUtil.getProxyUrl()}/rs/logic/getProcessId`,
361
+ {data: data},
362
+ {resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
363
+ )
364
+
365
+ return res.data
366
+ },
367
+ },
368
+ events: {
369
+ },
370
+ watch: {
371
+ },
372
+ computed: {
373
+ appDefnames () {
374
+ // let list = [{label: '报装缴费', value: '报装缴费'}, {label: '通气点火', value: '通气点火'},{label: '工程施工', value: '工程施工'},{label: '工程派工', value: '工程派工'},{label: '点火派单', value: '点火派单'}]
375
+ let list = this.$appdata.getParam('手机节点')
376
+ return `(${list.map(item => `'${item.value}'`).toString()})`
377
+ }
378
+ }
379
+ }
380
+ </script>
381
+ <style scoped>
382
+ .pred{
383
+ color: red;
384
+ }
385
+ .p1 {
386
+ color: #ffaf4f;
387
+ }
388
+ .redy{
389
+ color: deeppink;
390
+ }
391
+ .panel-self{
392
+ border-radius: 10px;
393
+ border:1px solid #499EDF;
394
+ background-color: #F8F8F8;
395
+ }
396
+ .font{
397
+ font: 15px PingFang-SC-Medium;
398
+ color: #666666;
399
+ }
400
+
401
+ .button_shrink_top {
402
+ width: 34px;
403
+ height: 34px;
404
+ border: solid 1px #6aa6e2;
405
+ background-size: 100%;
406
+ background-image: url("../../../../static/newStyle/stretch_top.png")
407
+ }
408
+
409
+ .button_shrink_bottom {
410
+ width: 34px;
411
+ height: 34px;
412
+ border: solid 1px #6aa6e2;
413
+ background-size: 100%;
414
+ background-image: url("../../../../static/newStyle/stretch_bottom.png")
415
+ }
416
+ </style>
417
+ <style lang="less">
418
+ .app-input {
419
+ label {
420
+ float: left;
421
+ }
422
+ .select {
423
+ button {
424
+ border: none;
425
+ outline: none;
426
+ text-align: left;
427
+ .btn-placeholder {
428
+ color: #ACA899
429
+ }
430
+ }
431
+ }
432
+ .datepicker {
433
+ .form-control:focus {
434
+ border: none!important;
435
+ outline: none!important;
436
+ -webkit-box-shadow: none;
437
+ box-shadow: none;
438
+ }
439
+ }
440
+ }
441
+ </style>