apply-clients 3.4.91 → 3.4.93

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 +133 -133
  2. package/package.json +117 -117
  3. package/src/App.vue +26 -21
  4. package/src/components/android/Ignition/VentilationIgnition.vue +312 -312
  5. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +353 -353
  6. package/src/components/product/ApplyCharge/ApplyChargeList.vue +476 -476
  7. package/src/components/product/Function/InstallInfoSelect.vue +326 -326
  8. package/src/components/product/Ignition/IgnitionListManage.vue +420 -420
  9. package/src/components/product/Material/MaterialDetailed.vue +268 -268
  10. package/src/components/product/Material/Materiallist.vue +74 -74
  11. package/src/components/product/Material/Materialmanger.vue +58 -58
  12. package/src/components/product/Process/ExplorationSelect.vue +491 -491
  13. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +203 -203
  14. package/src/components/product/Process/ShowBackReason.vue +40 -40
  15. package/src/components/product/Stop/StopApplyList.vue +278 -278
  16. package/src/components/product/Supervisory/SupervisoryControl.vue +140 -140
  17. package/src/filiale/hongda/pc/printChargepc.vue +114 -114
  18. package/src/filiale/hongda/pc/printactivatecard.vue +151 -151
  19. package/src/filiale/linzhou/pc/ApplyChargeList.vue +486 -486
  20. package/src/filiale/linzhou/pc/ServiceControl.vue +1968 -1968
  21. package/src/filiale/linzhou/pc/devicesManagement.vue +494 -494
  22. package/src/filiale/linzhou/pc.js +10 -10
  23. package/src/filiale/qianneng/android/AppAddMaterialScience.vue +477 -477
  24. package/src/filiale/qianneng/android/AppExplorationUser.vue +447 -447
  25. package/src/filiale/qianneng/android/AppServiceControl.vue +1608 -1608
  26. package/src/filiale/qianneng/android/AppServiceView.vue +761 -761
  27. package/src/filiale/qianneng/android/AppSign.vue +152 -152
  28. package/src/filiale/qianneng/android/AppTakePic.vue +140 -140
  29. package/src/filiale/qianneng/android.js +12 -12
  30. package/src/filiale/qianneng/pc/ApplyUpload.vue +290 -290
  31. package/src/filiale/qianneng/pc/Applybatchdispatch.vue +685 -685
  32. package/src/filiale/qianneng/pc/ExplorationUser.vue +189 -189
  33. package/src/filiale/qianneng/pc/InstallationDetails.vue +561 -561
  34. package/src/filiale/qianneng/pc/ServiceView.vue +1118 -1121
  35. package/src/filiale/qianneng/pc/SupervisoryList.vue +344 -344
  36. package/src/filiale/qianneng/pc/SupervisoryhCart.vue +127 -127
  37. package/src/filiale/qianneng/pc/addMaterialScience.vue +464 -464
  38. package/src/filiale/qianneng/pc/addressAndUserinfoManagement.vue +389 -389
  39. package/src/filiale/qianneng/pc/devicesManagement.vue +484 -484
  40. package/src/filiale/qianneng/pc/printactivatecard.vue +295 -295
  41. package/src/filiale/qianneng/pc.js +26 -26
  42. package/src/filiale/yangchunboneng/pc/ApplyChargeList.vue +516 -0
  43. package/src/filiale/yangchunboneng/pc.js +13 -12
  44. package/src/main.js +23 -23
@@ -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>