apply-clients 3.4.98-2 → 3.4.98-21

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 (73) hide show
  1. package/build/dev-server.js +2 -10
  2. package/package.json +3 -2
  3. package/src/App.vue +6 -11
  4. package/src/applyAndroid.js +1 -0
  5. package/src/components/android/AppSign.vue +9 -10
  6. package/src/components/android/Ignition/VentilationIgnition.vue +312 -312
  7. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +353 -353
  8. package/src/components/android/Process/AppServiceControl.vue +1738 -1734
  9. package/src/components/product/ApplyCharge/ApplyChargeList.vue +476 -476
  10. package/src/components/product/Function/InstallInfoSelect.vue +326 -326
  11. package/src/components/product/Ignition/IgnitionListManage.vue +420 -420
  12. package/src/components/product/Install/ContractCharge.vue +210 -210
  13. package/src/components/product/Material/MaterialDetailed.vue +268 -268
  14. package/src/components/product/Material/Materiallist.vue +74 -74
  15. package/src/components/product/Material/Materialmanger.vue +58 -58
  16. package/src/components/product/Process/ExplorationSelect.vue +491 -491
  17. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +203 -203
  18. package/src/components/product/Process/Service/ServiceControl.vue +2 -2
  19. package/src/components/product/Process/ShowBackReason.vue +40 -40
  20. package/src/components/product/Stop/StopApplyList.vue +278 -278
  21. package/src/components/product/Supervisory/SupervisoryControl.vue +140 -140
  22. package/src/components/product/Supervisory/SupervisoryList.vue +27 -0
  23. package/src/filiale/gongyi/pc/ServiceControl.vue +1926 -0
  24. package/src/filiale/gongyi/pc.js +6 -0
  25. package/src/filiale/guzhou/pc/ServiceControl.vue +1926 -0
  26. package/src/filiale/guzhou/pc.js +6 -0
  27. package/src/filiale/hongda/pc/FunctionServiceControl.vue +21 -0
  28. package/src/filiale/hongda/pc/printChargepc.vue +114 -114
  29. package/src/filiale/hongda/pc/printactivatecard.vue +151 -151
  30. package/src/filiale/hongda/pc/printrefit.vue +3 -1
  31. package/src/filiale/huayinyihua/pc/StopApplyList.vue +271 -0
  32. package/src/filiale/huayinyihua/pc/SupervisoryList.vue +363 -0
  33. package/src/filiale/huayinyihua/pc.js +7 -0
  34. package/src/filiale/linzhou/pc/ApplyChargeList.vue +486 -486
  35. package/src/filiale/linzhou/pc/ServiceControl.vue +1968 -1968
  36. package/src/filiale/linzhou/pc/devicesManagement.vue +494 -494
  37. package/src/filiale/linzhou/pc.js +10 -10
  38. package/src/filiale/qianneng/android/AppAddMaterialScience.vue +477 -477
  39. package/src/filiale/qianneng/android/AppExplorationUser.vue +447 -447
  40. package/src/filiale/qianneng/android/AppServiceControl.vue +1608 -1608
  41. package/src/filiale/qianneng/android/AppServiceView.vue +761 -761
  42. package/src/filiale/qianneng/android/AppSign.vue +152 -152
  43. package/src/filiale/qianneng/android/AppTakePic.vue +140 -140
  44. package/src/filiale/qianneng/android.js +12 -12
  45. package/src/filiale/qianneng/pc/ApplyUpload.vue +290 -290
  46. package/src/filiale/qianneng/pc/Applybatchdispatch.vue +685 -685
  47. package/src/filiale/qianneng/pc/ExplorationUser.vue +189 -189
  48. package/src/filiale/qianneng/pc/InstallationDetails.vue +561 -561
  49. package/src/filiale/qianneng/pc/ServiceView.vue +1118 -1118
  50. package/src/filiale/qianneng/pc/SupervisoryList.vue +344 -344
  51. package/src/filiale/qianneng/pc/SupervisoryhCart.vue +127 -127
  52. package/src/filiale/qianneng/pc/addMaterialScience.vue +464 -464
  53. package/src/filiale/qianneng/pc/addressAndUserinfoManagement.vue +389 -389
  54. package/src/filiale/qianneng/pc/devicesManagement.vue +484 -484
  55. package/src/filiale/qianneng/pc/printactivatecard.vue +295 -295
  56. package/src/filiale/qianneng/pc.js +26 -26
  57. package/src/filiale/yangchunboneng/android/AppAddMaterialScience.vue +390 -0
  58. package/src/filiale/yangchunboneng/android/AppChargeManagement.vue +108 -0
  59. package/src/filiale/yangchunboneng/android/AppDevicesManagement.vue +552 -0
  60. package/src/filiale/yangchunboneng/android/AppExplorationUser.vue +507 -0
  61. package/src/filiale/yangchunboneng/android/chargesList.vue +173 -0
  62. package/src/filiale/yangchunboneng/android.js +6 -0
  63. package/src/filiale/yangchunboneng/pc/ApplyChargeList.vue +594 -546
  64. package/src/filiale/yangchunboneng/pc/ApplyUpload.vue +375 -375
  65. package/src/filiale/yangchunboneng/pc/ExplorationSelect.vue +469 -469
  66. package/src/filiale/yangchunboneng/pc/InstallInfoSelect.vue +364 -357
  67. package/src/filiale/yangchunboneng/pc/ServiceControl.vue +1739 -1734
  68. package/src/filiale/yangchunboneng/pc/ServiceView.vue +1004 -0
  69. package/src/filiale/yangchunboneng/pc/addMaterialScience.vue +374 -0
  70. package/src/filiale/yangchunboneng/pc/chargeManagement.vue +955 -1011
  71. package/src/filiale/yangchunboneng/pc/devicesManagement.vue +511 -0
  72. package/src/filiale/yangchunboneng/pc.js +16 -13
  73. package/src/main.js +1 -1
@@ -1,420 +1,420 @@
1
- <template>
2
- <div class="flex-row">
3
- <div class="basic-main">
4
- <criteria-paged :model="model" v-ref:cp>
5
- <criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
6
- <div class="form-horizontal select-overspread container-fluid auto" partial>
7
- <div class="row">
8
- <div class="form-group col-sm-2">
9
- <label class="font_normal_body">片&emsp;&emsp;区:</label>
10
- <v-select
11
- v-model="model.f_slice_area"
12
- placeholder='片区'
13
- condition="ui.f_slice_area = '{}'"
14
- :value.sync="model.f_slice_area"
15
- :options='$parent.$parent.sliceareas'
16
- class="select select_list"
17
- :value-single="true"
18
- close-on-select >
19
- </v-select>
20
- </div>
21
- <div class="form-group col-sm-2">
22
- <label class="font_normal_body">发卡状态:</label>
23
- <v-select
24
- v-model="model.f_whether_hairpin"
25
- placeholder='发卡状态'
26
- condition="uf.f_whether_hairpin = '{}'"
27
- :value.sync="model.f_whether_hairpin"
28
- :options='$parent.$parent.whether_hairpin'
29
- class="select select_list"
30
- :value-single="true"
31
- close-on-select >
32
- </v-select>
33
- </div>
34
- <div class="form-group col-sm-2">
35
- <label for="startDate" class="font_normal_body">发卡时间:</label>
36
- <datepicker id="startDate" placeholder="开始日期"
37
- style="width: 60%!important;"
38
- v-model="model.startDate"
39
- :value.sync="model.startDate"
40
- :format="'yyyy-MM-dd 00:00:00'"
41
- :show-reset-button="true"
42
- condition="uf.f_open_date >= '{}'">
43
- </datepicker>
44
- </div>
45
- <div class="form-group col-sm-2">
46
- <label for="endDate" class="font_normal_body">发卡时间:</label>
47
- <datepicker id="endDate" placeholder="结束日期"
48
- style="width: 60%!important;"
49
- v-model="model.endDate"
50
- :value.sync="model.endDate"
51
- :format="'yyyy-MM-dd 23:59:59'"
52
- :show-reset-button="true"
53
- condition="uf.f_open_date <= '{}'">
54
- </datepicker>
55
- </div>
56
- <div class="form-group col-sm-3 button-range">
57
- <button class="button_export button_spacing" @click="$parent.$parent.openOperatorModal()">批量派单</button>
58
- <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
59
- <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
60
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
61
- <div
62
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
63
- @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
64
- class="button_spacing"
65
- style="float: right">
66
- </div>
67
- </div>
68
- </div>
69
- <div class="row" v-show="$parent.$parent.criteriaShow">
70
- <div class="form-group col-sm-2">
71
- <label class="font_normal_body">工程编号:</label>
72
- <input type="text" class="input_search" style="width: 60%" v-model="model.f_applycode"
73
- v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_applycode = '{}'" placeholder='工程编号'>
74
- </div>
75
- <div class="form-group col-sm-2">
76
- <label class="font_normal_body">用户类型:</label>
77
- <v-select
78
- v-model="model.f_user_type"
79
- placeholder='用户类型'
80
- condition="uf.f_user_type = '{}'"
81
- :value.sync="model.f_user_type"
82
- :options='$parent.$parent.usertype'
83
- class="select select_list"
84
- :value-single="true"
85
- close-on-select >
86
- </v-select>
87
- </div>
88
- <div class="form-group col-sm-2">
89
- <label class="font_normal_body">用户编号:</label>
90
- <input type="text" class="input_search" style="width: 60%" v-model="model.f_userinfo_id"
91
- v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_userinfo_id = '{}'" placeholder='用户编号'>
92
- </div>
93
- <div class="form-group col-sm-2">
94
- <label class="font_normal_body">用&ensp;户&ensp;名:</label>
95
- <input type="text" class="input_search" style="width: 60%" v-model="model.f_user_name"
96
- v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_user_name = '{}'" placeholder='用户名'>
97
- </div>
98
- <div class="form-group col-sm-2">
99
- <label class="font_normal_body">电&emsp;&emsp;话:</label>
100
- <input type="text" class="input_search" style="width: 60%" v-model="model.f_user_phone"
101
- v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_user_phone = '{}'" placeholder='电话'>
102
- </div>
103
- <div class="form-group col-sm-2">
104
- <label class="font_normal_body">小&emsp;&emsp;区:</label>
105
- <input type="text" class="input_search" style="width: 60%" v-model="model.f_residential_area"
106
- v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_residential_area = '{}'" placeholder='小区'>
107
- </div>
108
- </div>
109
- </div>
110
- </criteria>
111
- <data-grid :model="model" optional partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
112
- <template partial='head'>
113
- <tr>
114
- <th style="white-space: nowrap;">序号</th>
115
- <th style="white-space: nowrap;">报建编号</th>
116
- <th style="white-space: nowrap;">用户编号</th>
117
- <th style="white-space: nowrap;">用户姓名</th>
118
- <th style="white-space: nowrap;">联系电话</th>
119
- <th style="white-space: nowrap;">用户类型</th>
120
- <th style="white-space: nowrap;">地址</th>
121
- <th style="white-space: nowrap;">片区</th>
122
- <!-- <th>定位地址</th>-->
123
- <th style="white-space: nowrap;">气表分类</th>
124
- <th style="white-space: nowrap;">表号</th>
125
- <th style="white-space: nowrap;">气表品牌</th>
126
- <th style="white-space: nowrap;">气表型号</th>
127
- <th style="white-space: nowrap;">发卡状态</th>
128
- <th style="white-space: nowrap;">发卡时间</th>
129
- <th style="white-space: nowrap;">报建人</th>
130
- <th style="white-space: nowrap;">报建联系电话</th>
131
- </tr>
132
- </template>
133
- <template partial='body'>
134
- <tr >
135
- <td style="text-align: center;">
136
- <nobr><font>{{$index+1}}</font></nobr>
137
- </td>
138
- <td style="text-align: center;">
139
- <nobr><font>{{row.f_apply_num}}</font></nobr>
140
- </td>
141
- <td style="text-align: center;">
142
- <nobr><font>{{row.f_userinfo_code}}</font></nobr>
143
- </td>
144
- <td style="text-align: center;">
145
- <nobr><font>{{row.f_user_name}}</font></nobr>
146
- </td>
147
- <td style="text-align: center;">
148
- <nobr><font>{{row.f_user_phone}}</font></nobr>
149
- </td>
150
- <td style="text-align: center;">
151
- <nobr><font>{{row.f_user_type}}</font></nobr>
152
- </td>
153
- <td style="text-align: center;">
154
- <nobr><font>{{row.f_address}}{{row.f_address_detail}}</font></nobr>
155
- </td>
156
- <td style="text-align: center;">
157
- <nobr><font>{{row.f_area}}</font></nobr>
158
- </td>
159
- <!-- <td style="text-align: center;">-->
160
- <!-- <nobr><font>-->
161
- <!-- <a @click="$parent.$parent.$parent.openAmap(row)" style="text-decoration: none">-->
162
- <!-- {{row.f_location_address}}-->
163
- <!-- </a>-->
164
- <!-- </font></nobr>-->
165
- <!-- </td>-->
166
- <td style="text-align: center;">
167
- <nobr><font>{{row.f_meter_classify}}</font></nobr>
168
- </td>
169
- <td style="text-align: center;">
170
- <nobr><font>{{row.f_meternumber}}</font></nobr>
171
- </td>
172
- <td style="text-align: center;">
173
- <nobr><font>{{row.f_meter_brand}}</font></nobr>
174
- </td>
175
- <td style="text-align: center;">
176
- <nobr><font>{{row.f_meter_style}}</font></nobr>
177
- </td>
178
- <td style="text-align: center;">
179
- <nobr><font>{{row.f_whether_hairpin}}</font></nobr>
180
- </td>
181
- <td style="text-align: center;">
182
- <nobr><font>{{row.f_faka_date}}</font></nobr>
183
- </td>
184
- <td style="text-align: center;">
185
- <nobr><font>{{row.f_contact}}</font></nobr>
186
- </td>
187
- <td style="text-align: center;">
188
- <nobr><font>{{row.f_phone}}</font></nobr>
189
- </td>
190
- </tr>
191
- </template>
192
- </data-grid>
193
- </criteria-paged>
194
- </div>
195
- </div>
196
-
197
- <modal v-if="showAmap" :show.sync="showAmap" v-ref:amap :large="true" :backdrop="false" title="定位信息">
198
- <header slot="modal-header" class="modal-header">
199
- <button type="button" class="close" @click="closeModal"><span>&times;</span></button>
200
- <h4 class="modal-title">定位信息</h4>
201
- </header>
202
- <article slot="modal-body" class="modal-body clearfix" style="height: 500px">
203
- <amap-location
204
- :isshowsearch="false"
205
- :mylocationinfo="false"
206
- :isshowmapmodel="false"
207
- :islocation="false"
208
- mapmodel="dragMarker"
209
- :labelmarksarray="labelmarksarray"
210
- ></amap-location>
211
- </article>
212
- <footer slot="modal-footer" class="modal-footer">
213
- </footer>
214
- </modal>
215
-
216
- <validator name="v">
217
- <modal v-if="showOperator" :show.sync="showOperator" v-ref:operator :large="true" :backdrop="false" title="批量派单">、
218
- <header slot="modal-header" class="modal-header">
219
- <button type="button" class="close" @click="closeModal('details')"><span>&times;</span></button>
220
- <h4 class="modal-title">批量派单</h4>
221
- </header>
222
- <article slot="modal-body" class="modal-body clearfix">
223
- <!-- 基本信息 -->
224
- <div class="form-group col-sm-12" :class="[$v.operator.required ? 'has-error' : '']">
225
- <label class="col-sm-2 control-label">操作人:</label>
226
- <div class="col-sm-10">
227
- <input type="text" v-show="false" v-model="operator.id" :value.sync="operator.id" v-validate:operator = "['required']" >
228
- <input-select
229
- class="select select_list"
230
- :value.sync="operator"
231
- v-model="operator"
232
- :options="operatorList"></input-select>
233
- </div>
234
- </div>
235
- <div class="form-group col-sm-12">
236
- <label class="col-sm-2 control-label">是否共享:</label>
237
- <div class="col-sm-10">
238
- <input-select
239
- class="select select_list"
240
- :value.sync="f_shared_dispatch"
241
- v-model="f_shared_dispatch"
242
- :options="sharedOptions"></input-select>
243
- </div>
244
- </div>
245
- </article>
246
- <footer slot="modal-footer" class="modal-footer">
247
- <button type="button" class="btn btn-primary" @click="batchDispatch()" :disabled="!$v.valid">确定</button>
248
- </footer>
249
- </modal>
250
- </validator>
251
-
252
- </template>
253
-
254
- <script>
255
- import {HttpResetClass, PagedList} from 'vue-client'
256
-
257
- export default {
258
- title: '点火派单',
259
- props: ['showData'],
260
- data () {
261
- return {
262
- model: new PagedList('rs/sql/getWaitIgnitionTask', 20, null),
263
- criteriaShow: false,
264
- source: 'this.getParentByType($organization$).getChildByName($通气组报装$).getChildren()',
265
- operatorList: [],
266
- showOperator: false,
267
- operator: null,
268
- f_shared_dispatch:'否',
269
- sharedOptions:[{label: "是", value: "是"}, {label: "否", value: "否" }],
270
- showAmap: false,
271
- labelmarksarray: [],
272
- sliceareas: [], // 片区
273
- whether_hairpin: [{label: "全部", value: ""}, {label: "已发卡", value: "已发"}, {label: "未发卡", value: "未发"}],//发卡状态
274
- usertype:[{label: "全部", value: ""}, {label: "民用", value: "民用"}, {label: "非民用", value: "非民用"}]//用户类型
275
- }
276
- },
277
- ready () {
278
- this.search()
279
- this.getOperator()
280
- setTimeout (this.getsliceareas,500)
281
- },
282
- methods: {
283
- loadPage () {
284
- this.$dispatch('loadPage')
285
- },
286
- openAmap (row) {
287
- this.labelmarksarray = [{
288
- data: {
289
- data: this.selectdata,
290
- label: `<div style="background: #fff;border-radius: 5px;height: 100px;padding: 5px">
291
- <h5>${row.f_user_name}</h5>
292
- <h5>${row.f_user_phone}</h5>
293
- <h5>${row.f_location_address}</h5>
294
- </div>`
295
- },
296
- position: [row.f_lng, row.f_lat],
297
- isclearmarker: false
298
- }]
299
-
300
- this.showAmap = true
301
- },
302
- async batchDispatch () {
303
- let selectdata = this.$refs.cp.$refs.grid.getRowData()
304
- if (selectdata.length > 0) {
305
- for (let i = 0; i < selectdata.length; i++){
306
- if(selectdata[i].f_whether_hairpin === '未发' && (!selectdata[i].f_user_name.includes('原处') || !selectdata[i].f_contact.includes('原处'))){
307
- let res = await this.$showMessage(`第${selectdata.length}条数据未开户,无法派单!`)
308
- if (res == 'confirm') {
309
- return
310
- }
311
- }
312
- // if(selectdata[i].f_surplus_money > 0 ){
313
- // let res = await this.$showMessage(`第${selectdata.length}条报建费用未结清,无法派单!`)
314
- // if (res == 'confirm') {
315
- // return
316
- // }
317
- // }
318
- }
319
- let data = {
320
- operator: this.$login.f,
321
- f_userinfo_ids: selectdata.map(item => {
322
- return {
323
- f_apply_num: item.f_apply_num,
324
- f_userinfo_id: item.f_userinfo_id
325
- }
326
- }),
327
- ignitionOperator: this.operator,
328
- f_shared_dispatch:this.f_shared_dispatch
329
- }
330
-
331
- let res = await this.$resetpost(
332
- 'rs/logic/batchDispatchGas',
333
- {data: data},
334
- {resolveMsg: null, rejectMsg: '批量派单失败!!!'}
335
- )
336
-
337
- this.closeModal('details')
338
- this.search()
339
- } else {
340
- this.$showAlert('至少选择1个工单', 'warning', 3000)
341
- }
342
- },
343
- async getsliceareas () {
344
- let data = {
345
- source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
346
- userid: this.$login.f.id
347
- }
348
-
349
- let http = new HttpResetClass()
350
- let res = await http.load(
351
- 'POST',
352
- `rs/search`,
353
- {data: data},
354
- {resolveMsg: null, rejectMsg: '片区查询失败!!!'}
355
- )
356
- this.sliceareas = [{label: '全部', value: ''}, ...res.data]
357
- },
358
- async openOperatorModal () {
359
- let selectdata = this.$refs.cp.$refs.grid.getRowData()
360
- if (selectdata.length > 0) {
361
- let res = await this.$showMessage(`当前数据条数: ${selectdata.length}, 条数过大时派单时间可能会过长, 是否确认派单?`)
362
- if (res == 'confirm') {
363
- this.showOperator = true
364
- }
365
- } else {
366
- this.$showAlert('至少选择1个工单', 'warning', 3000)
367
- }
368
- },
369
- async getOperator () {
370
- let data = {
371
- source: this.source,
372
- userid: this.$login.f.id
373
- }
374
-
375
- let res = await this.$resetpost(
376
- 'rs/search',
377
- {data: data},
378
- {resolveMsg: null, rejectMsg: '点火人员查询失败!!!'}
379
- )
380
-
381
- this.operatorList = res.data.map(item => {
382
- return {
383
- label: item.name,
384
- value: item
385
- }
386
- })
387
- },
388
- searchCondition (args) {
389
- args.condition = args.condition + ` and ir.id is null`
390
- console.log("this.showDatade",this.showData)
391
- // args.condition = args.condition + ` and ui.f_process_id = '${this.showData.f_process_id}'`
392
- args.condition = args.condition + ` and ui.f_process_id is not null`
393
- this.model.search(args.condition, args.model)
394
- },
395
- // 查询
396
- search () {
397
- this.$refs.cp.$refs.cri.search()
398
- },
399
- clear () {
400
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
401
- this.$refs.cp.$refs.cri.model[key] = null
402
- })
403
- },
404
- closeModal (type) {
405
- this.showAmap = false
406
- this.showOperator = false
407
-
408
- this.labelmarksarray = []
409
- this.operator = null
410
-
411
- if (type === 'details') {
412
- this.$refs.cp.$refs.grid.selectInit()
413
- }
414
- }
415
- }
416
- }
417
- </script>
418
-
419
- <style scoped>
420
- </style>
1
+ <template>
2
+ <div class="flex-row">
3
+ <div class="basic-main">
4
+ <criteria-paged :model="model" v-ref:cp>
5
+ <criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
6
+ <div class="form-horizontal select-overspread container-fluid auto" partial>
7
+ <div class="row">
8
+ <div class="form-group col-sm-2">
9
+ <label class="font_normal_body">片&emsp;&emsp;区:</label>
10
+ <v-select
11
+ v-model="model.f_slice_area"
12
+ placeholder='片区'
13
+ condition="ui.f_slice_area = '{}'"
14
+ :value.sync="model.f_slice_area"
15
+ :options='$parent.$parent.sliceareas'
16
+ class="select select_list"
17
+ :value-single="true"
18
+ close-on-select >
19
+ </v-select>
20
+ </div>
21
+ <div class="form-group col-sm-2">
22
+ <label class="font_normal_body">发卡状态:</label>
23
+ <v-select
24
+ v-model="model.f_whether_hairpin"
25
+ placeholder='发卡状态'
26
+ condition="uf.f_whether_hairpin = '{}'"
27
+ :value.sync="model.f_whether_hairpin"
28
+ :options='$parent.$parent.whether_hairpin'
29
+ class="select select_list"
30
+ :value-single="true"
31
+ close-on-select >
32
+ </v-select>
33
+ </div>
34
+ <div class="form-group col-sm-2">
35
+ <label for="startDate" class="font_normal_body">发卡时间:</label>
36
+ <datepicker id="startDate" placeholder="开始日期"
37
+ style="width: 60%!important;"
38
+ v-model="model.startDate"
39
+ :value.sync="model.startDate"
40
+ :format="'yyyy-MM-dd 00:00:00'"
41
+ :show-reset-button="true"
42
+ condition="uf.f_open_date >= '{}'">
43
+ </datepicker>
44
+ </div>
45
+ <div class="form-group col-sm-2">
46
+ <label for="endDate" class="font_normal_body">发卡时间:</label>
47
+ <datepicker id="endDate" placeholder="结束日期"
48
+ style="width: 60%!important;"
49
+ v-model="model.endDate"
50
+ :value.sync="model.endDate"
51
+ :format="'yyyy-MM-dd 23:59:59'"
52
+ :show-reset-button="true"
53
+ condition="uf.f_open_date <= '{}'">
54
+ </datepicker>
55
+ </div>
56
+ <div class="form-group col-sm-3 button-range">
57
+ <button class="button_export button_spacing" @click="$parent.$parent.openOperatorModal()">批量派单</button>
58
+ <button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
59
+ <button class="button_search button_spacing" @click="$parent.$parent.loadPage()">返回</button>
60
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
61
+ <div
62
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
63
+ @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
64
+ class="button_spacing"
65
+ style="float: right">
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <div class="row" v-show="$parent.$parent.criteriaShow">
70
+ <div class="form-group col-sm-2">
71
+ <label class="font_normal_body">工程编号:</label>
72
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_applycode"
73
+ v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_applycode = '{}'" placeholder='工程编号'>
74
+ </div>
75
+ <div class="form-group col-sm-2">
76
+ <label class="font_normal_body">用户类型:</label>
77
+ <v-select
78
+ v-model="model.f_user_type"
79
+ placeholder='用户类型'
80
+ condition="uf.f_user_type = '{}'"
81
+ :value.sync="model.f_user_type"
82
+ :options='$parent.$parent.usertype'
83
+ class="select select_list"
84
+ :value-single="true"
85
+ close-on-select >
86
+ </v-select>
87
+ </div>
88
+ <div class="form-group col-sm-2">
89
+ <label class="font_normal_body">用户编号:</label>
90
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_userinfo_id"
91
+ v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_userinfo_id = '{}'" placeholder='用户编号'>
92
+ </div>
93
+ <div class="form-group col-sm-2">
94
+ <label class="font_normal_body">用&ensp;户&ensp;名:</label>
95
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_user_name"
96
+ v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_user_name = '{}'" placeholder='用户名'>
97
+ </div>
98
+ <div class="form-group col-sm-2">
99
+ <label class="font_normal_body">电&emsp;&emsp;话:</label>
100
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_user_phone"
101
+ v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_user_phone = '{}'" placeholder='电话'>
102
+ </div>
103
+ <div class="form-group col-sm-2">
104
+ <label class="font_normal_body">小&emsp;&emsp;区:</label>
105
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_residential_area"
106
+ v-on:keyup.enter="$parent.$parent.search()" condition="ui.f_residential_area = '{}'" placeholder='小区'>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ </criteria>
111
+ <data-grid :model="model" optional partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
112
+ <template partial='head'>
113
+ <tr>
114
+ <th style="white-space: nowrap;">序号</th>
115
+ <th style="white-space: nowrap;">报建编号</th>
116
+ <th style="white-space: nowrap;">用户编号</th>
117
+ <th style="white-space: nowrap;">用户姓名</th>
118
+ <th style="white-space: nowrap;">联系电话</th>
119
+ <th style="white-space: nowrap;">用户类型</th>
120
+ <th style="white-space: nowrap;">地址</th>
121
+ <th style="white-space: nowrap;">片区</th>
122
+ <!-- <th>定位地址</th>-->
123
+ <th style="white-space: nowrap;">气表分类</th>
124
+ <th style="white-space: nowrap;">表号</th>
125
+ <th style="white-space: nowrap;">气表品牌</th>
126
+ <th style="white-space: nowrap;">气表型号</th>
127
+ <th style="white-space: nowrap;">发卡状态</th>
128
+ <th style="white-space: nowrap;">发卡时间</th>
129
+ <th style="white-space: nowrap;">报建人</th>
130
+ <th style="white-space: nowrap;">报建联系电话</th>
131
+ </tr>
132
+ </template>
133
+ <template partial='body'>
134
+ <tr >
135
+ <td style="text-align: center;">
136
+ <nobr><font>{{$index+1}}</font></nobr>
137
+ </td>
138
+ <td style="text-align: center;">
139
+ <nobr><font>{{row.f_apply_num}}</font></nobr>
140
+ </td>
141
+ <td style="text-align: center;">
142
+ <nobr><font>{{row.f_userinfo_code}}</font></nobr>
143
+ </td>
144
+ <td style="text-align: center;">
145
+ <nobr><font>{{row.f_user_name}}</font></nobr>
146
+ </td>
147
+ <td style="text-align: center;">
148
+ <nobr><font>{{row.f_user_phone}}</font></nobr>
149
+ </td>
150
+ <td style="text-align: center;">
151
+ <nobr><font>{{row.f_user_type}}</font></nobr>
152
+ </td>
153
+ <td style="text-align: center;">
154
+ <nobr><font>{{row.f_address}}{{row.f_address_detail}}</font></nobr>
155
+ </td>
156
+ <td style="text-align: center;">
157
+ <nobr><font>{{row.f_area}}</font></nobr>
158
+ </td>
159
+ <!-- <td style="text-align: center;">-->
160
+ <!-- <nobr><font>-->
161
+ <!-- <a @click="$parent.$parent.$parent.openAmap(row)" style="text-decoration: none">-->
162
+ <!-- {{row.f_location_address}}-->
163
+ <!-- </a>-->
164
+ <!-- </font></nobr>-->
165
+ <!-- </td>-->
166
+ <td style="text-align: center;">
167
+ <nobr><font>{{row.f_meter_classify}}</font></nobr>
168
+ </td>
169
+ <td style="text-align: center;">
170
+ <nobr><font>{{row.f_meternumber}}</font></nobr>
171
+ </td>
172
+ <td style="text-align: center;">
173
+ <nobr><font>{{row.f_meter_brand}}</font></nobr>
174
+ </td>
175
+ <td style="text-align: center;">
176
+ <nobr><font>{{row.f_meter_style}}</font></nobr>
177
+ </td>
178
+ <td style="text-align: center;">
179
+ <nobr><font>{{row.f_whether_hairpin}}</font></nobr>
180
+ </td>
181
+ <td style="text-align: center;">
182
+ <nobr><font>{{row.f_faka_date}}</font></nobr>
183
+ </td>
184
+ <td style="text-align: center;">
185
+ <nobr><font>{{row.f_contact}}</font></nobr>
186
+ </td>
187
+ <td style="text-align: center;">
188
+ <nobr><font>{{row.f_phone}}</font></nobr>
189
+ </td>
190
+ </tr>
191
+ </template>
192
+ </data-grid>
193
+ </criteria-paged>
194
+ </div>
195
+ </div>
196
+
197
+ <modal v-if="showAmap" :show.sync="showAmap" v-ref:amap :large="true" :backdrop="false" title="定位信息">
198
+ <header slot="modal-header" class="modal-header">
199
+ <button type="button" class="close" @click="closeModal"><span>&times;</span></button>
200
+ <h4 class="modal-title">定位信息</h4>
201
+ </header>
202
+ <article slot="modal-body" class="modal-body clearfix" style="height: 500px">
203
+ <amap-location
204
+ :isshowsearch="false"
205
+ :mylocationinfo="false"
206
+ :isshowmapmodel="false"
207
+ :islocation="false"
208
+ mapmodel="dragMarker"
209
+ :labelmarksarray="labelmarksarray"
210
+ ></amap-location>
211
+ </article>
212
+ <footer slot="modal-footer" class="modal-footer">
213
+ </footer>
214
+ </modal>
215
+
216
+ <validator name="v">
217
+ <modal v-if="showOperator" :show.sync="showOperator" v-ref:operator :large="true" :backdrop="false" title="批量派单">、
218
+ <header slot="modal-header" class="modal-header">
219
+ <button type="button" class="close" @click="closeModal('details')"><span>&times;</span></button>
220
+ <h4 class="modal-title">批量派单</h4>
221
+ </header>
222
+ <article slot="modal-body" class="modal-body clearfix">
223
+ <!-- 基本信息 -->
224
+ <div class="form-group col-sm-12" :class="[$v.operator.required ? 'has-error' : '']">
225
+ <label class="col-sm-2 control-label">操作人:</label>
226
+ <div class="col-sm-10">
227
+ <input type="text" v-show="false" v-model="operator.id" :value.sync="operator.id" v-validate:operator = "['required']" >
228
+ <input-select
229
+ class="select select_list"
230
+ :value.sync="operator"
231
+ v-model="operator"
232
+ :options="operatorList"></input-select>
233
+ </div>
234
+ </div>
235
+ <div class="form-group col-sm-12">
236
+ <label class="col-sm-2 control-label">是否共享:</label>
237
+ <div class="col-sm-10">
238
+ <input-select
239
+ class="select select_list"
240
+ :value.sync="f_shared_dispatch"
241
+ v-model="f_shared_dispatch"
242
+ :options="sharedOptions"></input-select>
243
+ </div>
244
+ </div>
245
+ </article>
246
+ <footer slot="modal-footer" class="modal-footer">
247
+ <button type="button" class="btn btn-primary" @click="batchDispatch()" :disabled="!$v.valid">确定</button>
248
+ </footer>
249
+ </modal>
250
+ </validator>
251
+
252
+ </template>
253
+
254
+ <script>
255
+ import {HttpResetClass, PagedList} from 'vue-client'
256
+
257
+ export default {
258
+ title: '点火派单',
259
+ props: ['showData'],
260
+ data () {
261
+ return {
262
+ model: new PagedList('rs/sql/getWaitIgnitionTask', 20, null),
263
+ criteriaShow: false,
264
+ source: 'this.getParentByType($organization$).getChildByName($通气组报装$).getChildren()',
265
+ operatorList: [],
266
+ showOperator: false,
267
+ operator: null,
268
+ f_shared_dispatch:'否',
269
+ sharedOptions:[{label: "是", value: "是"}, {label: "否", value: "否" }],
270
+ showAmap: false,
271
+ labelmarksarray: [],
272
+ sliceareas: [], // 片区
273
+ whether_hairpin: [{label: "全部", value: ""}, {label: "已发卡", value: "已发"}, {label: "未发卡", value: "未发"}],//发卡状态
274
+ usertype:[{label: "全部", value: ""}, {label: "民用", value: "民用"}, {label: "非民用", value: "非民用"}]//用户类型
275
+ }
276
+ },
277
+ ready () {
278
+ this.search()
279
+ this.getOperator()
280
+ setTimeout (this.getsliceareas,500)
281
+ },
282
+ methods: {
283
+ loadPage () {
284
+ this.$dispatch('loadPage')
285
+ },
286
+ openAmap (row) {
287
+ this.labelmarksarray = [{
288
+ data: {
289
+ data: this.selectdata,
290
+ label: `<div style="background: #fff;border-radius: 5px;height: 100px;padding: 5px">
291
+ <h5>${row.f_user_name}</h5>
292
+ <h5>${row.f_user_phone}</h5>
293
+ <h5>${row.f_location_address}</h5>
294
+ </div>`
295
+ },
296
+ position: [row.f_lng, row.f_lat],
297
+ isclearmarker: false
298
+ }]
299
+
300
+ this.showAmap = true
301
+ },
302
+ async batchDispatch () {
303
+ let selectdata = this.$refs.cp.$refs.grid.getRowData()
304
+ if (selectdata.length > 0) {
305
+ for (let i = 0; i < selectdata.length; i++){
306
+ if(selectdata[i].f_whether_hairpin === '未发' && (!selectdata[i].f_user_name.includes('原处') || !selectdata[i].f_contact.includes('原处'))){
307
+ let res = await this.$showMessage(`第${selectdata.length}条数据未开户,无法派单!`)
308
+ if (res == 'confirm') {
309
+ return
310
+ }
311
+ }
312
+ // if(selectdata[i].f_surplus_money > 0 ){
313
+ // let res = await this.$showMessage(`第${selectdata.length}条报建费用未结清,无法派单!`)
314
+ // if (res == 'confirm') {
315
+ // return
316
+ // }
317
+ // }
318
+ }
319
+ let data = {
320
+ operator: this.$login.f,
321
+ f_userinfo_ids: selectdata.map(item => {
322
+ return {
323
+ f_apply_num: item.f_apply_num,
324
+ f_userinfo_id: item.f_userinfo_id
325
+ }
326
+ }),
327
+ ignitionOperator: this.operator,
328
+ f_shared_dispatch:this.f_shared_dispatch
329
+ }
330
+
331
+ let res = await this.$resetpost(
332
+ 'rs/logic/batchDispatchGas',
333
+ {data: data},
334
+ {resolveMsg: null, rejectMsg: '批量派单失败!!!'}
335
+ )
336
+
337
+ this.closeModal('details')
338
+ this.search()
339
+ } else {
340
+ this.$showAlert('至少选择1个工单', 'warning', 3000)
341
+ }
342
+ },
343
+ async getsliceareas () {
344
+ let data = {
345
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
346
+ userid: this.$login.f.id
347
+ }
348
+
349
+ let http = new HttpResetClass()
350
+ let res = await http.load(
351
+ 'POST',
352
+ `rs/search`,
353
+ {data: data},
354
+ {resolveMsg: null, rejectMsg: '片区查询失败!!!'}
355
+ )
356
+ this.sliceareas = [{label: '全部', value: ''}, ...res.data]
357
+ },
358
+ async openOperatorModal () {
359
+ let selectdata = this.$refs.cp.$refs.grid.getRowData()
360
+ if (selectdata.length > 0) {
361
+ let res = await this.$showMessage(`当前数据条数: ${selectdata.length}, 条数过大时派单时间可能会过长, 是否确认派单?`)
362
+ if (res == 'confirm') {
363
+ this.showOperator = true
364
+ }
365
+ } else {
366
+ this.$showAlert('至少选择1个工单', 'warning', 3000)
367
+ }
368
+ },
369
+ async getOperator () {
370
+ let data = {
371
+ source: this.source,
372
+ userid: this.$login.f.id
373
+ }
374
+
375
+ let res = await this.$resetpost(
376
+ 'rs/search',
377
+ {data: data},
378
+ {resolveMsg: null, rejectMsg: '点火人员查询失败!!!'}
379
+ )
380
+
381
+ this.operatorList = res.data.map(item => {
382
+ return {
383
+ label: item.name,
384
+ value: item
385
+ }
386
+ })
387
+ },
388
+ searchCondition (args) {
389
+ args.condition = args.condition + ` and ir.id is null`
390
+ console.log("this.showDatade",this.showData)
391
+ // args.condition = args.condition + ` and ui.f_process_id = '${this.showData.f_process_id}'`
392
+ args.condition = args.condition + ` and ui.f_process_id is not null`
393
+ this.model.search(args.condition, args.model)
394
+ },
395
+ // 查询
396
+ search () {
397
+ this.$refs.cp.$refs.cri.search()
398
+ },
399
+ clear () {
400
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
401
+ this.$refs.cp.$refs.cri.model[key] = null
402
+ })
403
+ },
404
+ closeModal (type) {
405
+ this.showAmap = false
406
+ this.showOperator = false
407
+
408
+ this.labelmarksarray = []
409
+ this.operator = null
410
+
411
+ if (type === 'details') {
412
+ this.$refs.cp.$refs.grid.selectInit()
413
+ }
414
+ }
415
+ }
416
+ }
417
+ </script>
418
+
419
+ <style scoped>
420
+ </style>