telephone-clients 4.0.0-1-89 → 4.0.0-1-91

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 (32) hide show
  1. package/package.json +2 -2
  2. package/src/components/pc/MaintenanceWorker.vue +152 -0
  3. package/src/components/pc/NewRepairPaper.vue +704 -704
  4. package/src/components/pc/NewRepairTablePaper.vue +442 -442
  5. package/src/components/pc/WorkHistory.vue +650 -650
  6. package/src/components/pc/WorkListNew.vue +838 -838
  7. package/src/components/sendsingle/onlinecharge.vue +424 -424
  8. package/src/components/workorder/ChangeMeterPageNew.vue +663 -663
  9. package/src/components/workorder/ChangeMeterUserInfo.vue +130 -130
  10. package/src/components/workorder/RepairFirstV.vue +736 -736
  11. package/src/components/workorder/RepairInfo.vue +178 -178
  12. package/src/components/workorder/RepairOrderT.vue +713 -713
  13. package/src/components/workorder/oldMeterPage.vue +104 -104
  14. package/src/components/workorder/repairFirstTable.vue +715 -715
  15. package/src/filiale/jinhong/android/FaultAll.vue +936 -936
  16. package/src/filiale/jinhong/android/ZHihuanFirst.vue +540 -540
  17. package/src/filiale/jinhong/pc/WorkListAllNew.vue +884 -884
  18. package/src/filiale/jinhong/telephone.js +10 -10
  19. package/src/filiale/jinhong/telephoneAndroid.js +13 -13
  20. package/src/filiale/meihekou/android/Othercharge.vue +454 -454
  21. package/src/filiale/meihekou/android/PhoneStandWorkNew.vue +692 -692
  22. package/src/filiale/meihekou/android/ServiceOnlineQuery.vue +477 -477
  23. package/src/filiale/meihekou/pc/WorkListAllNew.vue +925 -901
  24. package/src/filiale/meihekou/pc/WorkListNew.vue +1113 -1049
  25. package/src/filiale/meihekou/telephoneAndroid.js +26 -26
  26. package/src/filiale/xinjiangdexin/telephone.js +16 -16
  27. package/src/filiale/xinliansihui/android/FaultAll.vue +923 -923
  28. package/src/filiale/xinliansihui/android/RepairFirstV.vue +734 -734
  29. package/src/filiale/xinliansihui/android/RepairOrderT.vue +713 -713
  30. package/src/main.js +1 -1
  31. package/src/telephone-android.js +425 -425
  32. package/src/telephone.js +799 -796
@@ -1,1049 +1,1113 @@
1
- <template>
2
- <div class="flex">
3
- <work-busy :is-busy="saveing" v-show="saveing"></work-busy>
4
- <criteria-paged :model="model" v-ref:paged>
5
- <criteria partial='criteria' v-ref:criteria @condition-changed='$parent.search'>
6
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
- <div class="row">
8
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
9
- <label class="font_normal_body" style="width: 40%">工单编号</label>
10
- <input type="text" class="input_search" v-model="model.f_service_id" placeholder='工单编号'
11
- condition="tswo.f_service_id like '%{}%'"
12
- :size="model.f_service_id ? model.f_service_id.length : 6"
13
- >
14
- </div>
15
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
16
- <label class="font_normal_body" style="width: 40%">用户编号</label>
17
- <input type="text" class="input_search" v-model="model.f_userinfo_code" placeholder='用户编号'
18
- condition="tswo.f_userinfo_code like '%{}%'"
19
- :size="model.f_userinfo_code ? model.f_userinfo_code.length : 6"
20
- >
21
- </div>
22
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
23
- <label class="font_normal_body" style="width: 40%">用户姓名</label>
24
- <input type="text" class="input_search" v-model="model.f_user_name" placeholder='用户姓名'
25
- condition="tswo.f_user_name like '%{}%'"
26
- :size="model.f_user_name ? model.f_user_name.length : 6"
27
- >
28
- </div>
29
- <div class="form-group col-sm-6 button-range" style="margin-right: 10px">
30
-
31
- <button class="button_search button_spacing" @click="search(),$dispatch('search')"
32
- style="margin-right: 9px">查询
33
- </button>
34
- <button class="button_search button_spacing" @click="$parent.$parent.repairSendAll()"
35
- style="margin-right: 9px">批量下发
36
- </button>
37
- <button class="button_search button_spacing" @click="$parent.$parent.repairendAll()"
38
- style="margin-right: 9px">批量结案
39
- </button>
40
-
41
- <export-excel-tel
42
- :data="$parent.$parent.searchData"
43
- :field="$parent.$parent.excelHeaders"
44
- sqlurl="af-telephone/rs/logic/telephoneExport" sql-name="operatorService" template-name='工单导出'
45
- :choose-col="true"></export-excel-tel>
46
- <div style="float: right;" class="button_spacing"
47
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
48
- @click="$parent.$parent.hidden()"></div>
49
-
50
- </div>
51
- </div>
52
- <div class="row" v-show="$parent.$parent.criteriaShow">
53
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
54
- <label class="font_normal_body" style="width: 40%">来电电话</label>
55
- <input type="text" class="input_search" v-model="model.f_phone" placeholder='来电电话'
56
- condition="tswo.f_phone like '%{}%'"
57
- :size="model.f_phone ? model.f_phone.length : 6"
58
- >
59
- </div>
60
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
61
- <label class="font_normal_body" style="width: 40%">联系电话</label>
62
- <input type="text" class="input_search" v-model="model.f_contact_phone" placeholder='联系电话'
63
- condition="tswo.f_contact_phone = '{}'"
64
- :size="model.f_contact_phone ? model.f_contact_phone.length : 6"
65
- >
66
- </div>
67
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
68
- <label class="font_normal_body" style="width: 40%">地&emsp;&emsp;址</label>
69
- <input type="text" class="input_search" v-model="model.f_address" placeholder='地址'
70
- condition="tswo.f_address like '%{}%'"
71
- :size="model.f_address ? model.f_address.length : 6"
72
- >
73
- </div>
74
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
75
- <label class="font_normal_body" style="width: 40%">受&ensp;理&ensp;人</label>
76
- <input type="text" class="input_search" v-model="model.f_attendant" placeholder='受理人'
77
- condition="tswo.f_attendant like '%{}%'"
78
- :size="model.f_attendant ? model.f_attendant.length : 6"
79
- >
80
- </div>
81
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
82
- <label class="font_normal_body" style="width: 40%">接&ensp;单&ensp;人</label>
83
- <input type="text" class="input_search" v-model="model.f_order_man" placeholder='接单人'
84
- condition="tswo.f_order_man like '%{}%'"
85
- :size="model.f_order_man ? model.f_order_man.length : 6"
86
- >
87
- </div>
88
- </div>
89
- <div class="row" v-show="$parent.$parent.criteriaShow">
90
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
91
- <label class=" font_normal_body" for="f_workorder_type" style="width: 40%">工单类型</label>
92
- <v-select id="f_workorder_type" :value.sync="model.f_workorder_type" :value-single="true"
93
- v-model="model.f_workorder_type"
94
- :options='$parent.$parent.serviceorders' placeholder='工单类型'
95
- condition="tswo.f_workorder_type = '{}'"
96
- close-on-select>
97
- </v-select>
98
- </div>
99
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
100
- <label class=" font_normal_body" style="width: 40%">报修类型</label>
101
- <v-select :value.sync="model.f_repairtype" :value-single="true"
102
- v-model="model.f_repairtype"
103
- :options='$parent.$parent.repairstypes' placeholder='报修类型'
104
- condition="tswo.f_repairtype = '{}'"
105
- close-on-select>
106
- </v-select>
107
- </div>
108
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
109
- <label class="font_normal_body" style="width: 40%">派单时间</label>
110
- <datepicker placeholder="起始派单时间"
111
- :value.sync="model.f_created_date"
112
- v-model="model.f_created_date"
113
- :format="'yyyy-MM-dd 00:00:00'"
114
- condition="tswo.f_created_date > '{}'"
115
- ></datepicker>
116
- </div>
117
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
118
- <label class="font_normal_body" style="width: 40%">派单时间</label>
119
- <datepicker placeholder="终止派单时间"
120
- :value.sync="model.f_finish_date"
121
- v-model="model.f_finish_date"
122
- :format="'yyyy-MM-dd 23:59:59'"
123
- condition="tswo.f_created_date < '{}'"
124
- ></datepicker>
125
- </div>
126
- <div class="col-sm-2 form-group form-input-group" style="float:right;width: 15%;margin-left: 20px">
127
- <input type="radio" id="one" value="wait" style="float: left" v-model="$parent.$parent.picked">
128
- <label for="one" style="margin-top: 10px;float: left">待办</label>
129
- <input type="radio" id="two" value="done" style="float: left" v-model="$parent.$parent.picked">
130
- <label for="two" style="margin-top: 10px;float: left">已办</label>
131
- </div>
132
-
133
- </div>
134
- <div class="row" v-show="$parent.$parent.criteriaShow">
135
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
136
- <label class="font_normal_body" style="width: 40%">片&emsp;&emsp;区</label>
137
- <v-select :value.sync="model.f_slice_area" v-model='model.f_slice_area'
138
- :value-single="true"
139
- :options='$parent.$parent.slice_areas' placeholder='片区'
140
- close-on-select
141
- condition="f_slice_area = '{}'"></v-select>
142
- </div>
143
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
144
- <label class=" font_normal_body" style="width: 40%">工单状态</label>
145
- <v-select :value.sync="model.defname" :value-single="true"
146
- v-model="model.defname"
147
- :options='$parent.$parent.defnames' placeholder='工单状态'
148
- condition="sa.defname = '{}'"
149
- close-on-select>
150
- </v-select>
151
- </div>
152
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
153
- <label class=" font_normal_body" style="width: 40%">用户类型</label>
154
- <v-select :value.sync="model.f_user_type" :value-single="true"
155
- v-model="model.f_user_type"
156
- :options='$parent.$parent.userType' placeholder='用户类型'
157
- condition="tswo.f_user_type = '{}'"
158
- close-on-select>
159
- </v-select>
160
- </div>
161
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
162
- <label class="font_normal_body" style="width: 40%">故障明细</label>
163
- <input type="text" class="input_search" v-model="model.f_failure" placeholder='故障明细'
164
- condition="tswo.failure like '%{}%'"
165
- :size="model.f_failure ? model.f_failure.length : 6"
166
- >
167
- </div>
168
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
169
- <label class="font_normal_body" style="width: 40%">工单备注</label>
170
- <input type="text" class="input_search" v-model="model.fo_remarks" placeholder='工单备注'
171
- condition="tswo.f_remarks like '%{}%'"
172
- :size="model.fo_remarks ? model.fo_remarks.length : 6"
173
- >
174
- </div>
175
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
176
- <label class="font_normal_body" style="width: 40%">截止日期</label>
177
- <datepicker placeholder="起始截止时间"
178
- :value.sync="model.f_finishstr_date"
179
- v-model="model.f_finishstr_date"
180
- :format="'yyyy-MM-dd 00:00:00'"
181
- condition="tswo.f_finish_date > '{}'"
182
- ></datepicker>
183
- </div>
184
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
185
- <label class="font_normal_body" style="width: 40%">截止日期</label>
186
- <datepicker placeholder="终止截止时间"
187
- :value.sync="model.f_finishend_date"
188
- v-model="model.f_finishend_date"
189
- :format="'yyyy-MM-dd 23:59:59'"
190
- condition="tswo.f_finish_date < '{}'"
191
- ></datepicker>
192
- </div>
193
- <div class="col-sm-3 form-group form-input-group" style="width: 20%">
194
- <label class="font_normal_body" style="width: 40%" >逾期天数</label>
195
- <v-select :value.sync="model.overday" :value-single="true" v-model="model.overday"
196
- :options='$parent.$parent.overdays' placeholder='逾期天数'
197
- close-on-select>
198
- </v-select>
199
- </div>
200
- </div>
201
-
202
-
203
- </div>
204
- </criteria>
205
- <data-grid partial='list' v-ref:grid :model="model" class="list_area table_sy"
206
- :classname="'table tablenew table-bordered table-striped table-hover'">
207
- <template partial='head'>
208
- <tr>
209
- <th>
210
- <nobr><input type="checkbox" v-model="$parent.$parent.$parent.checkAll"/> 全选</nobr>
211
- </th>
212
-
213
- <th><nobr>
214
- 工单类型
215
- </nobr></th>
216
- <th><nobr>
217
- 工单编号
218
- </nobr></th>
219
- <th><nobr>
220
- 派单时间
221
- </nobr></th>
222
- <th><nobr>
223
- 所属片区
224
- </nobr></th>
225
- <th><nobr>
226
- 用户信息
227
- </nobr></th>
228
- <th><nobr>
229
- 用户类型
230
- </nobr></th>
231
- <th><nobr>
232
- 来电电话
233
- </nobr></th>
234
- <th><nobr>
235
- 联系电话
236
- </nobr></th>
237
- <th><nobr>
238
- 工单状态
239
- </nobr></th>
240
- <th><nobr>
241
- 报修类型
242
- </nobr></th>
243
- <th><nobr>
244
- 报修内容
245
- </nobr></th>
246
- <th><nobr>
247
- 故障明细
248
- </nobr></th>
249
- <th><nobr>
250
- 工单备注
251
- </nobr></th>
252
- <th><nobr>
253
- 截止日期
254
- </nobr></th>
255
- <th><nobr>
256
- 操作
257
- </nobr></th>
258
- </tr>
259
- </template>
260
- <template partial='body'>
261
- <td style="text-align: center;white-space:nowrap;"><input class="rowCheckbox" type="checkbox"
262
- v-if="row.defname === '站点接单'"
263
- onClick="event.cancelBubble = true"
264
- :checked="$parent.$parent.$parent.isChecked(row.id)"
265
- @change="$parent.$parent.$parent.setCheckes(row)"/><nobr></nobr>
266
- </td>
267
-
268
- <td
269
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
270
- {{ row.f_workorder_type }}<span style="color: red" v-if="row.f_remindersign==='true'">(催单)</span>
271
- <nobr><span style="color: red" v-if="row.f_state==='打回'">(打回)</span>
272
- </nobr></td>
273
- <td
274
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
275
- <nobr>{{ row.f_service_id }}</nobr>
276
- </td>
277
- <td
278
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
279
- <nobr>{{ row.f_created_date }}</nobr>
280
- </td>
281
- <td
282
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
283
- <nobr>{{ row.f_slice_area }}</nobr>
284
- </td>
285
- <td
286
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
287
- <nobr> {{ row.f_user_name }}&nbsp;&nbsp;&nbsp;{{ row.f_address }}&nbsp;&nbsp;&nbsp;{{ row.f_contact_name }}</nobr>
288
- </td>
289
- <td
290
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
291
- <nobr> {{ row.f_user_type }}</nobr>
292
- </td>
293
- <td
294
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
295
- <nobr>{{ row.f_phone }}</nobr>
296
- </td>
297
- <td
298
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
299
- <nobr>{{ row.f_contact_phone }}</nobr>
300
- </td>
301
- <td
302
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
303
- <nobr>{{ row.defname }}</nobr>
304
- </td>
305
- <td
306
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
307
- <nobr>{{ row.f_repairtype }}</nobr>
308
- </td>
309
- <td
310
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
311
- <nobr>{{ row.f_repairtype + ':' + row.f_json}}</nobr>
312
- </td>
313
- <td
314
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
315
- <nobr>{{ $parent.$parent.$parent.trouble(row.failure) }}</nobr>
316
- </td>
317
- <td
318
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
319
- <nobr>{{ row.f_remarks}}</nobr>
320
- </td>
321
- <td
322
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
323
- <nobr>{{ row.f_finish_date}}</nobr>
324
- </td>
325
- <td
326
- :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''"
327
- style="text-align: center;"><nobr>
328
- <div
329
- v-show="row.defname === '站点接单' && $parent.$parent.$parent.picked === 'wait' && row.f_workorder_type != '投诉单'&&row.f_workorder_type != '咨询单'">
330
- <button type="button" name="button" class="button_spacing button_search-2"
331
- @click.stop="$parent.$parent.$parent.proc(row, '结案')">结案
332
- </button>
333
- <button type="button" name="button" class="button_spacing button_search-2"
334
- @click.stop="$parent.$parent.$parent.proc(row, '工单退回')">退回
335
- </button>
336
- <button type="button" name="button" class="button_spacing button_search-2"
337
- @click.stop="$parent.$parent.$parent.proc(row, '工单下发')">下发
338
- </button>
339
- <div v-if="row.f_single_path">
340
- <button type="button" name="button" class="button_spacing button_search-2"
341
- @click.stop="$parent.$parent.$parent.showpicture(row)">抢修图片
342
- </button>
343
- </div>
344
- </div>
345
- <div
346
- v-show="row.defname === '站点接单' && $parent.$parent.$parent.picked === 'wait' && row.f_workorder_type == '投诉单'">
347
- <button type="button" name="button" class="button_spacing button_search-2"
348
- @click.stop="$parent.$parent.$parent.complanReview(row, '投诉处理')">
349
- 投诉处理
350
- </button>
351
- </div>
352
-
353
- <div
354
- v-show="row.defname === '站点接单' && $parent.$parent.$parent.picked === 'wait' && row.f_workorder_type == '咨询单'">
355
- <button type="button" name="button" class="button_spacing button_search-2"
356
- @click.stop="$parent.$parent.$parent.seekworkReview(row, '咨询处理')">
357
- 咨询处理
358
- </button>
359
- </div>
360
- </nobr></td>
361
- </template>
362
- </data-grid>
363
- </criteria-paged>
364
- </div>
365
- <modal :show.sync="editflag==='工单退回'||editflag==='工单下发'" v-ref:modal backdrop="false">
366
- <header slot="modal-header" class="modal-header">
367
- {{ editflag }}
368
- </header>
369
- <article slot="modal-body" class="modal-body">
370
- <div v-if="editflag==='工单退回'" class="form-inline">
371
- <site-back :row="selectone" @success="selfSearch()" @cancel='editflag = null'></site-back>
372
- </div>
373
- <div v-if="editflag==='工单下发'">
374
- <site-send :row="selectone" :rowlist="serlist" @success="selfSearch()" @cancel="editflag = null"></site-send>
375
- </div>
376
- </article>
377
- <footer slot="modal-footer" class="modal-footer" v-show="false">
378
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
379
- </footer>
380
- </modal>
381
- <modal :show.sync="editflag==='结案' || editflag==='批量结案'" v-ref:modalCase backdrop="false">
382
- <header slot="modal-header" class="modal-header">
383
- 工单结案
384
- </header>
385
- <article slot="modal-body" class="modal-body">
386
- <div class="col-sm-12 form-group">
387
- <label class="control-label col-sm-2">结案备注</label>
388
- <div class="col-sm-9">
389
- <input class="form-control" type="text" v-model="f_caseremarks"/>
390
- </div>
391
- </div>
392
- </article>
393
- <footer slot="modal-footer" class="modal-footer">
394
- <button type="button" class="btn btn-success" @click='caseok'>确定</button>
395
- <button type="button" class="btn btn-success" @click='caseclose'>关闭</button>
396
- </footer>
397
- </modal>
398
- <modal :show.sync="imgshow" v-ref:modal backdrop="true">
399
- <header slot="modal-header" class="modal-header">
400
- 在线抢修照片
401
- </header>
402
- <article slot="modal-body" class="modal-body">
403
- <div class="from-group" style="display: flex">
404
- <img-self :src="'rs/image/file/'+imgfilename" width="220" height="300"></img-self>
405
- <img-self v-if="imgfilename1" :src="'rs/image/file/'+imgfilename1" style="margin-left: 10px" width="220"
406
- height="300"></img-self>
407
- <img-self v-if="imgfilename2" :src="'rs/image/file/'+imgfilename2" style="margin-left: 10px" width="220"
408
- height="300"></img-self>
409
- </div>
410
- </article>
411
- <footer slot="modal-footer" class="modal-footer">
412
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
413
- </footer>
414
- </modal>
415
- <!-- 投诉单处理弹窗 -->
416
- <modal :show.sync="isComplanReview" v-ref:complanModal backdrop="false">
417
- <header slot="modal-header" class="modal-header">
418
- 投诉审核
419
- </header>
420
- <article slot="modal-body" class="modal-body">
421
- <div class="select-overspread form-horizontal auto workOrderInfo">
422
- <div class="row">
423
- <div class="col-sm-12 form-group form-input-group">
424
- <label class="font_normal_body" style="width: 10%">工单编号</label>
425
- <h5 style="padding: 0px">{{ showModalComplan.f_service_id }}</h5>
426
- </div>
427
- <div class="col-sm-12 form-input-group">
428
- <label class="font_normal_body" style="width: 10%">投诉内容</label>
429
- <textarea name="name" rows="3" v-model="showModalComplan.f_content"
430
- class="form-control ver-textarea" id="f_content" name="f_content" readonly="readonly"></textarea>
431
- </div>
432
- <div class="col-sm-4 form-group form-input-group">
433
- <label class="font_normal_body" style="width: 30%">来电电话</label>
434
- <input type="text" name="" v-model='showModalComplan.f_phone'
435
- class="form-control" readonly="readonly">
436
- </div>
437
- <div class="col-sm-4 form-group form-input-group">
438
- <label class="font_normal_body" style="width: 30%">联系人</label>
439
- <input type="text" name="" v-model='showModalComplan.f_user_name'
440
- class="form-control" readonly="readonly">
441
- </div>
442
- <div class="col-sm-4 form-group form-input-group">
443
- <label class="font_normal_body" style="width: 30%">联系电话</label>
444
- <input type="text" name="" v-model='showModalComplan.f_contact_phone'
445
- class="form-control" readonly="readonly">
446
- </div>
447
-
448
- <div class="col-sm-12 form-input-group">
449
- <label class="font_normal_body" style="width: 10%">描述</label>
450
- <textarea name="name" rows="3" v-model="showModalComplan.f_remarks"
451
- class="form-control ver-textarea" readonly="readonly"></textarea>
452
- </div>
453
- <div class="col-sm-12 form-input-group">
454
- <label class="font_normal_body" style="width: 10%">处理结果</label>
455
- <textarea name="name" rows="4" v-model="f_complaint_results"
456
- class="form-control ver-textarea"></textarea>
457
- </div>
458
- </div>
459
- </div>
460
- </article>
461
- <footer slot="modal-footer" class="modal-footer">
462
- <button type="button" name="button"
463
- class="button_search button_spacing" @click='inputCompainInfo()'>提交
464
- </button>
465
- <button type="button" name="button" style="background-color: #5ac0d9;border-radius: 4px;"
466
- class="button_spacing button_search" @click='isComplanReview=false;showModalComplan = {}'>取消
467
- </button>
468
- </footer>
469
- </modal>
470
- <!-- 咨询处理弹窗 -->
471
- <modal :show.sync="isSeekWork" v-ref:seekWorkModel backdrop="false">
472
- <header slot="modal-header" class="modal-header">
473
- 咨询审核
474
- </header>
475
- <article slot="modal-body" class="modal-body">
476
- <div class="select-overspread form-horizontal auto workOrderInfo">
477
- <div class="row">
478
- <div class="col-sm-12 form-group form-input-group">
479
- <label class="font_normal_body" style="width: 10%">工单编号</label>
480
- <h5 style="padding: 0px">{{ showModalSeekWork.f_service_id }}</h5>
481
- </div>
482
- <div class="col-sm-12 form-input-group">
483
- <label class="font_normal_body" style="width: 10%">咨询内容</label>
484
- <textarea name="name" rows="3" v-model="showModalSeekWork.f_content"
485
- class="form-control ver-textarea" id="f_content1" name="f_content" readonly="readonly"></textarea>
486
- </div>
487
- <div class="col-sm-4 form-group form-input-group">
488
- <label class="font_normal_body" style="width: 30%">来电电话</label>
489
- <input type="text" name="" v-model='showModalSeekWork.f_phone'
490
- class="form-control" readonly="readonly">
491
- </div>
492
- <div class="col-sm-4 form-group form-input-group">
493
- <label class="font_normal_body" style="width: 30%">联系人</label>
494
- <input type="text" name="" v-model='showModalSeekWork.f_user_name'
495
- class="form-control" readonly="readonly">
496
- </div>
497
- <div class="col-sm-4 form-group form-input-group">
498
- <label class="font_normal_body" style="width: 30%">联系电话</label>
499
- <input type="text" name="" v-model='showModalSeekWork.f_contact_phone'
500
- class="form-control" readonly="readonly">
501
- </div>
502
-
503
- <div class="col-sm-12 form-input-group">
504
- <label class="font_normal_body" style="width: 10%">描述</label>
505
- <textarea name="name" rows="3" v-model="showModalSeekWork.f_remarks"
506
- class="form-control ver-textarea" readonly="readonly"></textarea>
507
- </div>
508
- <div class="col-sm-12 form-input-group">
509
- <label class="font_normal_body" style="width: 10%">处理结果</label>
510
- <textarea name="name" rows="4" v-model="f_complaint_seekwork_results"
511
- class="form-control ver-textarea"></textarea>
512
- </div>
513
- </div>
514
- </div>
515
- </article>
516
- <footer slot="modal-footer" class="modal-footer">
517
-
518
- <button type="button" name="button"
519
- class="button_search button_spacing" @click='inputSeekWorkInfo()'>提交
520
- </button>
521
- <button type="button" name="button" style="background-color: #5ac0d9;border-radius: 4px;"
522
- class="button_spacing button_search" @click='isSeekWork=false;showModalSeekWork = {}'>取消
523
- </button>
524
- </footer>
525
- </modal>
526
- <progress-bar v-if="btnshow" :label="bartext" :color="barcolor" :percentage="barperc"
527
- :height="barheight"></progress-bar>
528
- </template>
529
-
530
- <script>
531
- import {PagedList, HttpResetClass} from 'vue-client'
532
-
533
- export default {
534
- title: '工单列表',
535
- data() {
536
- return {
537
- slice_areas:[],
538
- // 结案备注
539
- f_caseremarks: '',
540
- criteriaShow: false,
541
- f_complaint_results: '',
542
- serlist: [],
543
- userType:this.$appdata.getParam('用户类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]:[{label: '全部', value: ''}],
544
- overdays:[{label: '全部', value: ''}, {label: '一级(7天以上)', value: '一级'}, {label: '二级(7天内)', value: '二级'}],
545
- checkes: [],
546
- remakes: null,
547
- editflag: null,
548
- selectone: '',
549
- model: new PagedList('af-telephone/rs/sql/operatorService', 20,{overday:'this.overday'}),
550
- row: null,
551
- orderMan: '',
552
- checkAll: false,
553
- msgs: [],
554
- service: Object,
555
- pendingCount: 0,
556
- imgfilename: '',
557
- imgfilename1: '',
558
- imgfilename2: '',
559
- select: {
560
- defname: ''
561
- },
562
- btnshow: false,
563
- bartext: '',
564
- barperc: 0,
565
- barheight: 15,
566
- barcolor: '#7697c4',
567
- saveing:false,
568
- rowlist: [],
569
- // 待办/已办选择
570
- picked: 'wait',
571
- imgshow: false,
572
- isComplanReview: false,
573
- // defname:this.$appdata.getParam('工单状态'),
574
- searchData: {
575
- condition: {
576
- condition: '1=1',
577
- sign: '1=1'
578
- },
579
- userid: this.$login.f.name,
580
- overday: ''
581
- },
582
- excelHeaders: {
583
- 'f_workorder_type': '工单类型',
584
- 'f_service_id': '工单编号',
585
- 'f_created_date': '派单时间',
586
- 'f_slice_area':'所属片区',
587
- 'f_user_name': '用户姓名',
588
- 'f_address': '用户地址',
589
- 'f_user_type': '用户类型',
590
- 'f_contact_name': '联系人',
591
- 'f_phone': '来电电话',
592
- 'f_contact_phone': '联系电话',
593
- 'f_repairtype' : '报修类型',
594
- 'f_json': '故障明细',
595
- 'f_finish_date':'截止日期',
596
- 'f_remarks': '工单备注'
597
- },
598
- //投诉单在modal框显示的信息
599
- showModalComplan: {
600
- serviceacitivity: [{f_complaint_results: ''}]
601
- },
602
- isSeekWork: false,
603
- /*咨询单信息*/
604
- showModalSeekWork: {
605
- serviceacitivity: [{f_complaint_results: ''}]
606
- },
607
- /*咨询单结果*/
608
- f_complaint_seekwork_results: ''
609
- }
610
-
611
- },
612
- props: {
613
- user: {
614
- type: Object
615
- },
616
- maintenance: [],
617
- // serviceId : [String, Number]
618
- serviceId: '',
619
- // 工单状态 工单位置
620
- defname: {
621
- type: String
622
- }
623
- },
624
- ready() {
625
- // this.getEmp()
626
- let messageTime = 60
627
- const time = this.$appdata.getSingleValue("站点提醒时间")
628
- if (time && time > 60) {
629
- messageTime = time
630
- }
631
- setInterval(() => {
632
- const data = {
633
- condition: {
634
- condition: '1=1',
635
- sign: '1=1'
636
- },
637
- userid: this.$login.f.name
638
- }
639
- new HttpResetClass().load('post', 'af-telephone/rs/sql/operatorService', {data: data}, {
640
- resolveMsg: null,
641
- rejectMsg: null
642
- }).then(res => {
643
- if (res.data && res.data.length > 0) {
644
- this.$showMessage("您有" + res.data.length + "条工单待处理,请及时处理")
645
- }
646
- })
647
- }, messageTime * 1000)
648
- this.initSliceAreas()
649
- this.selfSearch().then(() => {
650
- this.$emit('ready')
651
- }).catch((error) => {
652
- this.$emit('error', error)
653
- })
654
- // 开启轮询查询是否由自己的工单
655
- // this.pollQuery()
656
- },
657
- watch: {
658
- 'serviceId'() {
659
- this.selfSearch()
660
- },
661
- // 待办/已办选择变化后,根据选择内容,重新设置path查询路径,进行查询
662
- 'picked'() {
663
- this.serlist = []
664
- if (this.picked) {
665
- if (this.picked === 'wait') {
666
- this.model.url = 'af-telephone/rs/sql/operatorService'
667
- } else if (this.picked === 'done') {
668
- this.model.url = 'af-telephone/rs/sql/doneService'
669
- }
670
- this.model.rows = []
671
- this.selfSearch()
672
- }
673
- }
674
- },
675
- methods: {
676
- initSliceAreas(){
677
- let criteria = {
678
- items: 'name',
679
- tablename: 't_zone',
680
- condition: `name IS NOT NULL and f_orgid = '${this.$login.f.orgid}'`,
681
- groupitem: 'name'
682
- }
683
- new HttpResetClass().load('POST', `af-telephone/rs/sql/tel_singleTable_GroupBy`, {data: criteria}, {
684
- warnMsg: null,
685
- resolveMsg: null
686
- }).then((result)=>{
687
- result.data.forEach(item => this.slice_areas.push({
688
- label: item.name,
689
- value: item.name
690
- }))
691
- })
692
- },
693
- // 结案确认
694
- async caseok(){
695
- if(this.editflag == '批量结案' && this.serlist.length > 0 && this.serlist.length <100 ){
696
- this.bartext = '正在批量结案' + this.serlist.length + '个单子'
697
- this.btnshow = true
698
- this.$showAlert('正在批量结案,请稍等!!!!!', 'warning', 2000)
699
- this.saveing = true
700
- for (var index in this.serlist) {
701
- this.barperc = ((parseInt(index) + 1) * 100) / (parseInt(this.serlist.length))
702
- let userdata = Object.assign({}, userdata, this.serlist[index])
703
- userdata.f_advice = this.f_advice
704
- let data = {
705
- model: userdata,
706
- f_caseremarks:this.f_caseremarks,
707
- loginUser: {name: this.$login.f.name, ename: this.$login.f.ename}
708
- }
709
- try {
710
- let http = new HttpResetClass()
711
- let resChannel = await http.load('POST', `af-telephone/rs/logic/serviceCase`, data, {resolveMsg: null, rejectMsg: null})
712
- } catch (e) {
713
- this.$showAlert('结案失败' + data.model.f_service_id)
714
- }
715
- }
716
- this.saveing = false
717
- this.btnshow = false
718
- this.barperc = 0
719
- this.$showMessage('批量结案' + this.serlist.length + '个单子成功', ['confirm']).then((res) => {
720
- if (res === 'confirm') {
721
- this.f_caseremarks = ''
722
- // 刷新界面
723
- this.selfSearch()
724
- }
725
- })
726
- }
727
- if(this.editflag == '结案'){
728
- // 工单结案操作
729
- let data = {model: this.selectone, loginUser: {name: this.$login.f.name, ename: this.$login.f.ename},f_caseremarks:this.f_caseremarks}
730
- this.$resetpost(`af-telephone/rs/logic/serviceCase`, data).then(() => {
731
- this.f_caseremarks = ''
732
- // 刷新界面
733
- this.selfSearch()
734
- })
735
- }
736
- },
737
- repairendAll(){
738
- //tag
739
- if (!this.$refs.paged.$refs.criteria.model.f_workorder_type){
740
- this.$showMessage('必须选择工单类型后查询')
741
- return
742
- }
743
- this.selectone={
744
- f_workorder_type:this.$refs.paged.$refs.criteria.model.f_workorder_type
745
- }
746
-
747
- if (this.checkAll){
748
- //如果全选,根据条件去查询数据
749
- let data={
750
- condition:this.model.params.condition,
751
- userid:this.$login.f.name
752
- }
753
- new HttpResetClass().load('post','af-telephone/rs/sql/operatorService',{data:data},{resolveMsg:null,rejectMsg:null}).then(res=>{
754
- const results=res.data
755
- this.rowlist=results.filter(result=>{
756
- //tag)
757
- console.log("999",result,JSON.stringify(result).indexOf('站点接单')!=-1)
758
- return JSON.stringify(result).indexOf('站点接单')!=-1
759
- })
760
- console.log(this.rowlist)
761
- //tag
762
- this.serlist=JSON.parse(JSON.stringify(this.rowlist))
763
- this.editflag ='批量结案'
764
- })
765
-
766
- }else{
767
- if (this.rowlist.length===0){
768
- this.$showMessage('请选择工单')
769
- return
770
- }
771
- //不全选,去取数据
772
- this.serlist=JSON.parse(JSON.stringify(this.rowlist))
773
- console.log("752752",this.rowlist)
774
- this.editflag ='批量结案'
775
- }
776
- },
777
- trouble (val) {
778
- let failureall=''
779
- // val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
780
-
781
- let failure = JSON.parse(val)
782
- for (let i = 0; i <failure.length; i++) {
783
- if (failure[i].failurecase.length>0){
784
- failureall+=failure[i].f_failure_type+":"
785
- for (let j = 0; j < failure[i].failurecase.length; j++) {
786
- failureall+=failure[i].failurecase[j]
787
- if (j+1!=failure[i].failurecase.length){
788
- failureall+=","
789
- }
790
- }
791
-
792
- }else{
793
- failureall+=failure[i].f_failure_type
794
- }
795
- if (i+1!=failure.length){
796
- failureall+=';'
797
- }
798
- }
799
- return failureall
800
- },
801
- // 结案返回
802
- caseclose() {
803
- this.f_caseremarks = ''
804
- this.editflag = null
805
- },
806
- repairSendAll() {
807
- //tag
808
- if (!this.$refs.paged.$refs.criteria.model.f_workorder_type) {
809
- this.$showMessage('必须选择工单类型后查询')
810
- return
811
- }
812
- this.selectone = {
813
- f_workorder_type: this.$refs.paged.$refs.criteria.model.f_workorder_type
814
- }
815
-
816
- if (this.checkAll) {
817
- //如果全选,根据条件去查询数据
818
- let data = {
819
- condition: this.model.params.condition,
820
- userid: this.$login.f.name
821
- }
822
- new HttpResetClass().load('post', 'af-telephone/rs/sql/operatorService', {data: data}, {
823
- resolveMsg: null,
824
- rejectMsg: null
825
- }).then(res => {
826
- const results = res.data
827
- this.rowlist = results.filter(result => {
828
- //tag)
829
- console.log("999", result, JSON.stringify(result).indexOf('站点接单') != -1)
830
- return JSON.stringify(result).indexOf('站点接单') != -1
831
- })
832
- console.log(this.rowlist)
833
- //tag
834
- this.serlist = JSON.parse(JSON.stringify(this.rowlist))
835
- this.editflag = '工单下发'
836
- })
837
-
838
- } else {
839
- if (this.rowlist.length === 0) {
840
- this.$showMessage('请选择工单')
841
- return
842
- }
843
- //不全选,去取数据
844
- this.serlist = JSON.parse(JSON.stringify(this.rowlist))
845
- console.log("752752", this.rowlist)
846
- this.editflag = '工单下发'
847
- }
848
- },
849
- isChecked(v) {
850
- // 如果全选,不在的按选中算,否则,在的按选中算
851
- if (this.checkAll) {
852
- return true
853
- } else {
854
- return this.rowlist.includes(v)
855
- }
856
- },
857
-
858
- setCheckes(row) {
859
- if (!this.checkAll) {
860
- let index = this.checkes.indexOf(row.id)
861
- if (index < 0) {
862
- this.checkes.push(row.id)
863
- this.rowlist.push(row)
864
- } else {
865
- this.checkes.splice(index, 1)
866
- this.rowlist.splice(this.rowlist.findIndex(res => {
867
- return res.id === row.id
868
- }), 1)
869
- }
870
- }
871
- },
872
- hidden() {
873
- this.criteriaShow = !this.criteriaShow
874
- },
875
- // 提交投诉单内容
876
- inputCompainInfo() {
877
- if (this.f_complaint_results != '') {
878
- this.showModalComplan.serviceacitivity[0].f_complaint_results = this.f_complaint_results
879
- this.$resetpost('af-telephone/rs/logic/saveComplaintResult', {
880
- showModalComplan: this.showModalComplan,
881
- loginUser: {name: this.$login.f.name, ename: this.$login.f.ename, loginid: this.$login.f.id}
882
- }).then((res) => {
883
- this.isComplanReview = false
884
- this.showModalComplan = {}
885
- this.$refs.paged.$refs.criteria.search()
886
- })
887
- } else {
888
- //tag
889
- return this.$showAlert('请填写投诉单结果!', 'warning', 2000)
890
- }
891
-
892
- },
893
- //提交咨询单内容
894
- inputSeekWorkInfo() {
895
- if (this.f_complaint_seekwork_results != '') {
896
- this.showModalSeekWork.serviceacitivity[0].f_complaint_results = this.f_complaint_seekwork_results
897
- this.$resetpost('af-telephone/rs/logic/saveConsultResult', {
898
- model: this.showModalSeekWork,
899
- loginUser: {name: this.$login.f.name, ename: this.$login.f.ename, loginid: this.$login.f.id}
900
- }).then((res) => {
901
- this.isSeekWork = false
902
- this.showModalSeekWork = {}
903
- this.f_complaint_seekwork_results = ''
904
- this.$refs.paged.$refs.criteria.search()
905
- })
906
- } else {
907
- //tag
908
- return this.$showAlert('请填写咨询单结果!', 'warning', 2000)
909
- }
910
- },
911
- imgclose() {
912
- this.imgshow = false
913
- },
914
- //检查是否为同一类型
915
- addInList(val) {
916
- if (!this.checkInList(val)) {
917
- this.serlist.push(val)
918
- //tag
919
- } else {
920
- var copyserlist = []
921
- for (var index in this.serlist) {
922
- if (this.serlist[index].f_service_id != val.f_service_id) {
923
- copyserlist.push(this.serlist[index])
924
- }
925
- }
926
- this.serlist = copyserlist
927
- //tag
928
- }
929
- },
930
- checkInList(val) {
931
- var checkstr = false
932
- this.serlist.forEach((item) => {
933
- if (item.f_service_id == val.f_service_id) {
934
- checkstr = true
935
- }
936
- })
937
- return checkstr
938
- },
939
- isInList(val) {
940
- var checkstr = false
941
- this.serlist.forEach((item) => {
942
- if (item.f_service_id == val.f_service_id) {
943
- checkstr = true
944
- }
945
- })
946
- return checkstr
947
- },
948
- proc(selectone, type) {
949
- this.editflag = type
950
- this.selectone = selectone
951
- },
952
- complanReview(itemVal, type) {
953
- //tag
954
- this.showModalComplan = itemVal
955
- this.showModalComplan.serviceacitivity = [
956
- {f_service_acitivity_type: '投诉单', f_result_status: '已完成'}]
957
- this.showModalComplan.id_back = this.showModalComplan.id
958
- this.isComplanReview = true
959
- },
960
- seekworkReview(itemVal, type) {
961
- //tag
962
- this.showModalSeekWork = itemVal
963
- this.showModalSeekWork.serviceacitivity = [
964
- {f_service_acitivity_type: '投诉单', f_result_status: '已完成'}]
965
- this.showModalSeekWork.id_back = this.showModalSeekWork.id
966
- this.isSeekWork = true
967
- },
968
- showpicture(val) {
969
- //tag
970
- //tag)
971
- this.imgshow = true
972
- this.imgfilename = val.f_single_path
973
- this.imgfilename1 = val.f_singlea_path
974
- this.imgfilename2 = val.f_singleb_path
975
- },
976
- search(args) {
977
- this.serlist = []
978
- this.checkes = []
979
- //tag
980
- let data = {}
981
- if(args.model.overday){
982
- if(args.model.overday == '一级'){
983
- this.model.overday = ` and overday > 604800 and (f_state != '撤销' or f_state is null)`
984
- }
985
- if(args.model.overday == '二级'){
986
- this.model.overday = ` and overday <= 604800 and overday > 0 and (f_state != '撤销' or f_state is null)`
987
- }
988
- }
989
- data.condition = this.$refs.paged.$refs.criteria.condition ? this.$refs.paged.$refs.criteria.condition : '1=1'
990
- data.sign = this.$refs.paged.$refs.criteria.select ? `defname = '${this.$refs.paged.$refs.criteria.select.defname[0]}'` : '1=1'
991
- data.condition += ` and tswo.f_filiale_id = '${this.$login.f.orgid}'`
992
- this.searchData.condition = data
993
- this.searchData.overday = this.model.overday
994
- data.overday = this.model.overday
995
- this.searchData = Object.assign(this.searchData, args.model)
996
- return this.model.search(data, args.model)
997
- },
998
- clearAllCheckboxes() {
999
- const checkboxes = document.querySelectorAll('.rowCheckbox');
1000
- checkboxes.forEach(checkbox => {
1001
- checkbox.checked = false;
1002
- });
1003
- },
1004
- selfSearch() {
1005
- this.clearAllCheckboxes()
1006
- // 取消编辑状态
1007
- this.serlist = []
1008
- this.rowlist = []
1009
- this.checkes = []
1010
- this.editflag = null
1011
-
1012
- this.model.paramSource = {
1013
- userid: '\'' + this.$login.f.name + '\''
1014
- }
1015
- //tag
1016
- let data = {}
1017
- data.condition = ` 1 = 1 and tswo.f_filiale_id = '${this.$login.f.orgid}'`
1018
- data.sign = '1=1'
1019
- return this.model.search(data)
1020
- },
1021
- },
1022
- computed: {
1023
- serviceorders() {
1024
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('工单类型')]
1025
- },
1026
- repairstypes() {
1027
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('报修类型')]
1028
- },
1029
- defnames() {
1030
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('工单状态')]
1031
- }
1032
-
1033
- }
1034
- }
1035
- </script>
1036
- <style scoped lang="less">
1037
- .workOrderInfo {
1038
- .row {
1039
- div {
1040
- margin-top: 10px;
1041
-
1042
- [readonly] {
1043
- background-color: #eeeeee;
1044
- }
1045
- }
1046
- }
1047
- }
1048
- </style>
1049
-
1
+ <template>
2
+ <div class="flex">
3
+ <work-busy :is-busy="saveing" v-show="saveing"></work-busy>
4
+ <criteria-paged :model="model" v-ref:paged>
5
+ <criteria partial='criteria' v-ref:criteria @condition-changed='$parent.search'>
6
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
+ <div class="row">
8
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
9
+ <label class="font_normal_body" style="width: 40%">工单编号</label>
10
+ <input type="text" class="input_search" v-model="model.f_service_id" placeholder='工单编号'
11
+ condition="tswo.f_service_id like '%{}%'"
12
+ :size="model.f_service_id ? model.f_service_id.length : 6"
13
+ >
14
+ </div>
15
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
16
+ <label class="font_normal_body" style="width: 40%">用户编号</label>
17
+ <input type="text" class="input_search" v-model="model.f_userinfo_code" placeholder='用户编号'
18
+ condition="tswo.f_userinfo_code like '%{}%'"
19
+ :size="model.f_userinfo_code ? model.f_userinfo_code.length : 6"
20
+ >
21
+ </div>
22
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
23
+ <label class="font_normal_body" style="width: 40%">用户姓名</label>
24
+ <input type="text" class="input_search" v-model="model.f_user_name" placeholder='用户姓名'
25
+ condition="tswo.f_user_name like '%{}%'"
26
+ :size="model.f_user_name ? model.f_user_name.length : 6"
27
+ >
28
+ </div>
29
+ <div class="form-group col-sm-6 button-range" style="margin-right: 10px">
30
+
31
+ <button class="button_search button_spacing" @click="search(),$dispatch('search')"
32
+ style="margin-right: 9px">查询
33
+ </button>
34
+ <button class="button_search button_spacing" @click="$parent.$parent.repairSendAll()"
35
+ style="margin-right: 9px">批量下发
36
+ </button>
37
+ <button class="button_search button_spacing" @click="$parent.$parent.repairendAll()"
38
+ style="margin-right: 9px">批量结案
39
+ </button>
40
+
41
+ <export-excel-tel
42
+ :data="$parent.$parent.searchData"
43
+ :field="$parent.$parent.excelHeaders"
44
+ sqlurl="af-telephone/rs/logic/telephoneExport" sql-name="operatorService" template-name='工单导出'
45
+ :choose-col="true"></export-excel-tel>
46
+ <div style="float: right;" class="button_spacing"
47
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
48
+ @click="$parent.$parent.hidden()"></div>
49
+
50
+ </div>
51
+ </div>
52
+ <div class="row" v-show="$parent.$parent.criteriaShow">
53
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
54
+ <label class="font_normal_body" style="width: 40%">来电电话</label>
55
+ <input type="text" class="input_search" v-model="model.f_phone" placeholder='来电电话'
56
+ condition="tswo.f_phone like '%{}%'"
57
+ :size="model.f_phone ? model.f_phone.length : 6"
58
+ >
59
+ </div>
60
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
61
+ <label class="font_normal_body" style="width: 40%">联系电话</label>
62
+ <input type="text" class="input_search" v-model="model.f_contact_phone" placeholder='联系电话'
63
+ condition="tswo.f_contact_phone = '{}'"
64
+ :size="model.f_contact_phone ? model.f_contact_phone.length : 6"
65
+ >
66
+ </div>
67
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
68
+ <label class="font_normal_body" style="width: 40%">地&emsp;&emsp;址</label>
69
+ <input type="text" class="input_search" v-model="model.f_address" placeholder='地址'
70
+ condition="tswo.f_address like '%{}%'"
71
+ :size="model.f_address ? model.f_address.length : 6"
72
+ >
73
+ </div>
74
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
75
+ <label class="font_normal_body" style="width: 40%">受&ensp;理&ensp;人</label>
76
+ <input type="text" class="input_search" v-model="model.f_attendant" placeholder='受理人'
77
+ condition="tswo.f_attendant like '%{}%'"
78
+ :size="model.f_attendant ? model.f_attendant.length : 6"
79
+ >
80
+ </div>
81
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
82
+ <label class="font_normal_body" style="width: 40%">接&ensp;单&ensp;人</label>
83
+ <input type="text" class="input_search" v-model="model.f_order_man" placeholder='接单人'
84
+ condition="tswo.f_order_man like '%{}%'"
85
+ :size="model.f_order_man ? model.f_order_man.length : 6"
86
+ >
87
+ </div>
88
+ </div>
89
+ <div class="row" v-show="$parent.$parent.criteriaShow">
90
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
91
+ <label class=" font_normal_body" for="f_workorder_type" style="width: 40%">工单类型</label>
92
+ <v-select id="f_workorder_type" :value.sync="model.f_workorder_type" :value-single="true"
93
+ v-model="model.f_workorder_type"
94
+ :options='$parent.$parent.serviceorders' placeholder='工单类型'
95
+ condition="tswo.f_workorder_type = '{}'"
96
+ close-on-select>
97
+ </v-select>
98
+ </div>
99
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
100
+ <label class=" font_normal_body" style="width: 40%">报修类型</label>
101
+ <v-select :value.sync="model.f_repairtype" :value-single="true"
102
+ v-model="model.f_repairtype"
103
+ :options='$parent.$parent.repairstypes' placeholder='报修类型'
104
+ condition="tswo.f_repairtype = '{}'"
105
+ close-on-select>
106
+ </v-select>
107
+ </div>
108
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
109
+ <label class="font_normal_body" style="width: 40%">派单时间</label>
110
+ <datepicker placeholder="起始派单时间"
111
+ :value.sync="model.f_created_date"
112
+ v-model="model.f_created_date"
113
+ :format="'yyyy-MM-dd 00:00:00'"
114
+ condition="tswo.f_created_date > '{}'"
115
+ ></datepicker>
116
+ </div>
117
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
118
+ <label class="font_normal_body" style="width: 40%">派单时间</label>
119
+ <datepicker placeholder="终止派单时间"
120
+ :value.sync="model.f_finish_date"
121
+ v-model="model.f_finish_date"
122
+ :format="'yyyy-MM-dd 23:59:59'"
123
+ condition="tswo.f_created_date < '{}'"
124
+ ></datepicker>
125
+ </div>
126
+ <div class="col-sm-2 form-group form-input-group" style="float:right;width: 15%;margin-left: 20px">
127
+ <input type="radio" id="one" value="wait" style="float: left" v-model="$parent.$parent.picked">
128
+ <label for="one" style="margin-top: 10px;float: left">待办</label>
129
+ <input type="radio" id="two" value="done" style="float: left" v-model="$parent.$parent.picked">
130
+ <label for="two" style="margin-top: 10px;float: left">已办</label>
131
+ </div>
132
+
133
+ </div>
134
+ <div class="row" v-show="$parent.$parent.criteriaShow">
135
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
136
+ <label class="font_normal_body" style="width: 40%">片&emsp;&emsp;区</label>
137
+ <v-select :value.sync="model.f_slice_area" v-model='model.f_slice_area'
138
+ :value-single="true"
139
+ :options='$parent.$parent.slice_areas' placeholder='片区'
140
+ close-on-select
141
+ condition="f_slice_area = '{}'"></v-select>
142
+ </div>
143
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
144
+ <label class=" font_normal_body" style="width: 40%">工单状态</label>
145
+ <v-select :value.sync="model.defname" :value-single="true"
146
+ v-model="model.defname"
147
+ :options='$parent.$parent.defnames' placeholder='工单状态'
148
+ condition="sa.defname = '{}'"
149
+ close-on-select>
150
+ </v-select>
151
+ </div>
152
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
153
+ <label class=" font_normal_body" style="width: 40%">用户类型</label>
154
+ <v-select :value.sync="model.f_user_type" :value-single="true"
155
+ v-model="model.f_user_type"
156
+ :options='$parent.$parent.userType' placeholder='用户类型'
157
+ condition="tswo.f_user_type = '{}'"
158
+ close-on-select>
159
+ </v-select>
160
+ </div>
161
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
162
+ <label class="font_normal_body" style="width: 40%">故障明细</label>
163
+ <input type="text" class="input_search" v-model="model.f_failure" placeholder='故障明细'
164
+ condition="tswo.failure like '%{}%'"
165
+ :size="model.f_failure ? model.f_failure.length : 6"
166
+ >
167
+ </div>
168
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
169
+ <label class="font_normal_body" style="width: 40%">工单备注</label>
170
+ <input type="text" class="input_search" v-model="model.fo_remarks" placeholder='工单备注'
171
+ condition="tswo.f_remarks like '%{}%'"
172
+ :size="model.fo_remarks ? model.fo_remarks.length : 6"
173
+ >
174
+ </div>
175
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
176
+ <label class="font_normal_body" style="width: 40%">截止日期</label>
177
+ <datepicker placeholder="起始截止时间"
178
+ :value.sync="model.f_finishstr_date"
179
+ v-model="model.f_finishstr_date"
180
+ :format="'yyyy-MM-dd 00:00:00'"
181
+ condition="tswo.f_finish_date > '{}'"
182
+ ></datepicker>
183
+ </div>
184
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
185
+ <label class="font_normal_body" style="width: 40%">截止日期</label>
186
+ <datepicker placeholder="终止截止时间"
187
+ :value.sync="model.f_finishend_date"
188
+ v-model="model.f_finishend_date"
189
+ :format="'yyyy-MM-dd 23:59:59'"
190
+ condition="tswo.f_finish_date < '{}'"
191
+ ></datepicker>
192
+ </div>
193
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
194
+ <label class="font_normal_body" style="width: 40%" >逾期天数</label>
195
+ <v-select :value.sync="model.overday" :value-single="true" v-model="model.overday"
196
+ :options='$parent.$parent.overdays' placeholder='逾期天数'
197
+ close-on-select>
198
+ </v-select>
199
+ </div>
200
+ <div class="col-sm-3 form-group form-input-group" style="width: 20%">
201
+ <label class="font_normal_body" style="width: 40%" >接单站点</label>
202
+ <v-select :value.sync="model.f_outlets" v-model='model.f_outlets'
203
+ multiple="false"
204
+ :options='$parent.$parent.outlets'
205
+ condition="tswo.f_outlets = '{}'"
206
+ placeholder='接单站点'
207
+ close-on-select></v-select>
208
+ </div>
209
+ </div>
210
+
211
+
212
+ </div>
213
+ </criteria>
214
+ <data-grid partial='list' v-ref:grid :model="model" class="list_area table_sy"
215
+ :classname="'table tablenew table-bordered table-striped table-hover'">
216
+ <template partial='head'>
217
+ <tr>
218
+ <th>
219
+ <nobr><input type="checkbox" v-model="$parent.$parent.$parent.checkAll"/> 全选</nobr>
220
+ </th>
221
+
222
+ <th><nobr>
223
+ 工单类型
224
+ </nobr></th>
225
+ <th><nobr>
226
+ 工单编号
227
+ </nobr></th>
228
+ <th><nobr>
229
+ 派单时间
230
+ </nobr></th>
231
+ <th><nobr>
232
+ 所属片区
233
+ </nobr></th>
234
+ <th><nobr>
235
+ 用户信息
236
+ </nobr></th>
237
+ <th><nobr>
238
+ 用户类型
239
+ </nobr></th>
240
+ <th><nobr>
241
+ 来电电话
242
+ </nobr></th>
243
+ <th><nobr>
244
+ 联系电话
245
+ </nobr></th>
246
+ <th><nobr>
247
+ 工单状态
248
+ </nobr></th>
249
+ <th><nobr>
250
+ 报修类型
251
+ </nobr></th>
252
+ <th><nobr>
253
+ 报修内容
254
+ </nobr></th>
255
+ <th><nobr>
256
+ 故障明细
257
+ </nobr></th>
258
+ <th><nobr>
259
+ 工单备注
260
+ </nobr></th>
261
+ <th><nobr>
262
+ 截止日期
263
+ </nobr></th>
264
+ <th><nobr>
265
+ 操作
266
+ </nobr></th>
267
+ </tr>
268
+ </template>
269
+ <template partial='body'>
270
+ <td style="text-align: center;white-space:nowrap;"><input class="rowCheckbox" type="checkbox"
271
+ v-if="row.defname === '站点接单'"
272
+ onClick="event.cancelBubble = true"
273
+ :checked="$parent.$parent.$parent.isChecked(row.id)"
274
+ @change="$parent.$parent.$parent.setCheckes(row)"/><nobr></nobr>
275
+ </td>
276
+
277
+ <td
278
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
279
+ {{ row.f_workorder_type }}<span style="color: red" v-if="row.f_remindersign==='true'">(催单)</span>
280
+ <nobr><span style="color: red" v-if="row.f_state==='打回'">(打回)</span>
281
+ </nobr></td>
282
+ <td
283
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
284
+ <nobr>{{ row.f_service_id }}</nobr>
285
+ </td>
286
+ <td
287
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
288
+ <nobr>{{ row.f_created_date }}</nobr>
289
+ </td>
290
+ <td
291
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
292
+ <nobr>{{ row.f_slice_area }}</nobr>
293
+ </td>
294
+ <td
295
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
296
+ <nobr> {{ row.f_user_name }}&nbsp;&nbsp;&nbsp;{{ row.f_address }}&nbsp;&nbsp;&nbsp;{{ row.f_contact_name }}</nobr>
297
+ </td>
298
+ <td
299
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
300
+ <nobr> {{ row.f_user_type }}</nobr>
301
+ </td>
302
+ <td
303
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
304
+ <nobr>{{ row.f_phone }}</nobr>
305
+ </td>
306
+ <td
307
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
308
+ <nobr>{{ row.f_contact_phone }}</nobr>
309
+ </td>
310
+ <td
311
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
312
+ <nobr>{{ row.defname }}</nobr>
313
+ </td>
314
+ <td
315
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
316
+ <nobr>{{ row.f_repairtype }}</nobr>
317
+ </td>
318
+ <td
319
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
320
+ <nobr>{{ row.f_repairtype + ':' + row.f_json}}</nobr>
321
+ </td>
322
+ <td
323
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
324
+ <nobr>{{ $parent.$parent.$parent.trouble(row.failure) }}</nobr>
325
+ </td>
326
+ <td
327
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
328
+ <nobr>{{ row.f_remarks}}</nobr>
329
+ </td>
330
+ <td
331
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''">
332
+ <nobr>{{ row.f_finish_date}}</nobr>
333
+ </td>
334
+ <td
335
+ :style="Math.floor((new Date().getTime() - new Date(row.f_created_date).getTime())/1000/60/60)>3&&row.defname=='站点接单'?'background-color: #f1eecb':''"
336
+ style="text-align: center;"><nobr>
337
+ <div
338
+ v-show="row.defname === '站点接单' && $parent.$parent.$parent.picked === 'wait' && row.f_workorder_type != '投诉单'&&row.f_workorder_type != '咨询单'">
339
+ <button type="button" name="button" class="button_spacing button_search-2"
340
+ @click.stop="$parent.$parent.$parent.proc(row, '结案')">结案
341
+ </button>
342
+ <button type="button" name="button" class="button_spacing button_search-2"
343
+ @click.stop="$parent.$parent.$parent.proc(row, '工单退回')">退回
344
+ </button>
345
+ <button type="button" name="button" class="button_spacing button_search-2"
346
+ @click.stop="$parent.$parent.$parent.proc(row, '工单下发')">下发
347
+ </button>
348
+ <div v-if="row.f_single_path">
349
+ <button type="button" name="button" class="button_spacing button_search-2"
350
+ @click.stop="$parent.$parent.$parent.showpicture(row)">抢修图片
351
+ </button>
352
+ </div>
353
+ </div>
354
+ <div
355
+ v-show="row.defname === '站点接单' && $parent.$parent.$parent.picked === 'wait' && row.f_workorder_type == '投诉单'">
356
+ <button type="button" name="button" class="button_spacing button_search-2"
357
+ @click.stop="$parent.$parent.$parent.complanReview(row, '投诉处理')">
358
+ 投诉处理
359
+ </button>
360
+ </div>
361
+
362
+ <div
363
+ v-show="row.defname === '站点接单' && $parent.$parent.$parent.picked === 'wait' && row.f_workorder_type == '咨询单'">
364
+ <button type="button" name="button" class="button_spacing button_search-2"
365
+ @click.stop="$parent.$parent.$parent.seekworkReview(row, '咨询处理')">
366
+ 咨询处理
367
+ </button>
368
+ </div>
369
+ </nobr></td>
370
+ </template>
371
+ </data-grid>
372
+ </criteria-paged>
373
+ </div>
374
+ <modal :show.sync="editflag==='工单退回'||editflag==='工单下发'" v-ref:modal backdrop="false">
375
+ <header slot="modal-header" class="modal-header">
376
+ {{ editflag }}
377
+ </header>
378
+ <article slot="modal-body" class="modal-body">
379
+ <div v-if="editflag==='工单退回'" class="form-inline">
380
+ <site-back :row="selectone" @success="selfSearch()" @cancel='editflag = null'></site-back>
381
+ </div>
382
+ <div v-if="editflag==='工单下发'">
383
+ <site-send :search_source="source" :row="selectone" :rowlist="serlist" @success="selfSearch()" @cancel="editflag = null"></site-send>
384
+ </div>
385
+ </article>
386
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
387
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
388
+ </footer>
389
+ </modal>
390
+ <modal :show.sync="editflag==='结案' || editflag==='批量结案'" v-ref:modalCase backdrop="false">
391
+ <header slot="modal-header" class="modal-header">
392
+ 工单结案
393
+ </header>
394
+ <article slot="modal-body" class="modal-body">
395
+ <div class="col-sm-12 form-group">
396
+ <label class="control-label col-sm-2">结案备注</label>
397
+ <div class="col-sm-9">
398
+ <input class="form-control" type="text" v-model="f_caseremarks"/>
399
+ </div>
400
+ </div>
401
+ </article>
402
+ <footer slot="modal-footer" class="modal-footer">
403
+ <button type="button" class="btn btn-success" @click='caseok'>确定</button>
404
+ <button type="button" class="btn btn-success" @click='caseclose'>关闭</button>
405
+ </footer>
406
+ </modal>
407
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true">
408
+ <header slot="modal-header" class="modal-header">
409
+ 在线抢修照片
410
+ </header>
411
+ <article slot="modal-body" class="modal-body">
412
+ <div class="from-group" style="display: flex">
413
+ <img-self :src="'rs/image/file/'+imgfilename" width="220" height="300"></img-self>
414
+ <img-self v-if="imgfilename1" :src="'rs/image/file/'+imgfilename1" style="margin-left: 10px" width="220"
415
+ height="300"></img-self>
416
+ <img-self v-if="imgfilename2" :src="'rs/image/file/'+imgfilename2" style="margin-left: 10px" width="220"
417
+ height="300"></img-self>
418
+ </div>
419
+ </article>
420
+ <footer slot="modal-footer" class="modal-footer">
421
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
422
+ </footer>
423
+ </modal>
424
+ <!-- 投诉单处理弹窗 -->
425
+ <modal :show.sync="isComplanReview" v-ref:complanModal backdrop="false">
426
+ <header slot="modal-header" class="modal-header">
427
+ 投诉审核
428
+ </header>
429
+ <article slot="modal-body" class="modal-body">
430
+ <div class="select-overspread form-horizontal auto workOrderInfo">
431
+ <div class="row">
432
+ <div class="col-sm-12 form-group form-input-group">
433
+ <label class="font_normal_body" style="width: 10%">工单编号</label>
434
+ <h5 style="padding: 0px">{{ showModalComplan.f_service_id }}</h5>
435
+ </div>
436
+ <div class="col-sm-12 form-input-group">
437
+ <label class="font_normal_body" style="width: 10%">投诉内容</label>
438
+ <textarea name="name" rows="3" v-model="showModalComplan.f_content"
439
+ class="form-control ver-textarea" id="f_content" name="f_content" readonly="readonly"></textarea>
440
+ </div>
441
+ <div class="col-sm-4 form-group form-input-group">
442
+ <label class="font_normal_body" style="width: 30%">来电电话</label>
443
+ <input type="text" name="" v-model='showModalComplan.f_phone'
444
+ class="form-control" readonly="readonly">
445
+ </div>
446
+ <div class="col-sm-4 form-group form-input-group">
447
+ <label class="font_normal_body" style="width: 30%">联系人</label>
448
+ <input type="text" name="" v-model='showModalComplan.f_user_name'
449
+ class="form-control" readonly="readonly">
450
+ </div>
451
+ <div class="col-sm-4 form-group form-input-group">
452
+ <label class="font_normal_body" style="width: 30%">联系电话</label>
453
+ <input type="text" name="" v-model='showModalComplan.f_contact_phone'
454
+ class="form-control" readonly="readonly">
455
+ </div>
456
+
457
+ <div class="col-sm-12 form-input-group">
458
+ <label class="font_normal_body" style="width: 10%">描述</label>
459
+ <textarea name="name" rows="3" v-model="showModalComplan.f_remarks"
460
+ class="form-control ver-textarea" readonly="readonly"></textarea>
461
+ </div>
462
+ <div class="col-sm-12 form-input-group">
463
+ <label class="font_normal_body" style="width: 10%">处理结果</label>
464
+ <textarea name="name" rows="4" v-model="f_complaint_results"
465
+ class="form-control ver-textarea"></textarea>
466
+ </div>
467
+ </div>
468
+ </div>
469
+ </article>
470
+ <footer slot="modal-footer" class="modal-footer">
471
+ <button type="button" name="button"
472
+ class="button_search button_spacing" @click='inputCompainInfo()'>提交
473
+ </button>
474
+ <button type="button" name="button" style="background-color: #5ac0d9;border-radius: 4px;"
475
+ class="button_spacing button_search" @click='isComplanReview=false;showModalComplan = {}'>取消
476
+ </button>
477
+ </footer>
478
+ </modal>
479
+ <!-- 咨询处理弹窗 -->
480
+ <modal :show.sync="isSeekWork" v-ref:seekWorkModel backdrop="false">
481
+ <header slot="modal-header" class="modal-header">
482
+ 咨询审核
483
+ </header>
484
+ <article slot="modal-body" class="modal-body">
485
+ <div class="select-overspread form-horizontal auto workOrderInfo">
486
+ <div class="row">
487
+ <div class="col-sm-12 form-group form-input-group">
488
+ <label class="font_normal_body" style="width: 10%">工单编号</label>
489
+ <h5 style="padding: 0px">{{ showModalSeekWork.f_service_id }}</h5>
490
+ </div>
491
+ <div class="col-sm-12 form-input-group">
492
+ <label class="font_normal_body" style="width: 10%">咨询内容</label>
493
+ <textarea name="name" rows="3" v-model="showModalSeekWork.f_content"
494
+ class="form-control ver-textarea" id="f_content1" name="f_content" readonly="readonly"></textarea>
495
+ </div>
496
+ <div class="col-sm-4 form-group form-input-group">
497
+ <label class="font_normal_body" style="width: 30%">来电电话</label>
498
+ <input type="text" name="" v-model='showModalSeekWork.f_phone'
499
+ class="form-control" readonly="readonly">
500
+ </div>
501
+ <div class="col-sm-4 form-group form-input-group">
502
+ <label class="font_normal_body" style="width: 30%">联系人</label>
503
+ <input type="text" name="" v-model='showModalSeekWork.f_user_name'
504
+ class="form-control" readonly="readonly">
505
+ </div>
506
+ <div class="col-sm-4 form-group form-input-group">
507
+ <label class="font_normal_body" style="width: 30%">联系电话</label>
508
+ <input type="text" name="" v-model='showModalSeekWork.f_contact_phone'
509
+ class="form-control" readonly="readonly">
510
+ </div>
511
+
512
+ <div class="col-sm-12 form-input-group">
513
+ <label class="font_normal_body" style="width: 10%">描述</label>
514
+ <textarea name="name" rows="3" v-model="showModalSeekWork.f_remarks"
515
+ class="form-control ver-textarea" readonly="readonly"></textarea>
516
+ </div>
517
+ <div class="col-sm-12 form-input-group">
518
+ <label class="font_normal_body" style="width: 10%">处理结果</label>
519
+ <textarea name="name" rows="4" v-model="f_complaint_seekwork_results"
520
+ class="form-control ver-textarea"></textarea>
521
+ </div>
522
+ </div>
523
+ </div>
524
+ </article>
525
+ <footer slot="modal-footer" class="modal-footer">
526
+
527
+ <button type="button" name="button"
528
+ class="button_search button_spacing" @click='inputSeekWorkInfo()'>提交
529
+ </button>
530
+ <button type="button" name="button" style="background-color: #5ac0d9;border-radius: 4px;"
531
+ class="button_spacing button_search" @click='isSeekWork=false;showModalSeekWork = {}'>取消
532
+ </button>
533
+ </footer>
534
+ </modal>
535
+ <progress-bar v-if="btnshow" :label="bartext" :color="barcolor" :percentage="barperc"
536
+ :height="barheight"></progress-bar>
537
+ </template>
538
+
539
+ <script>
540
+ import {PagedList, HttpResetClass} from 'vue-client'
541
+
542
+ export default {
543
+ title: '工单列表',
544
+ data() {
545
+ return {
546
+ outlets:this.$appdata.getParam('呼叫所属部门')? [{label: '全部', value: ''}, ...this.$appdata.getParam('呼叫所属部门')]:this.$appdata.getParam('呼叫所属部门'),
547
+ slice_areas:[],
548
+ // 结案备注
549
+ f_caseremarks: '',
550
+ criteriaShow: false,
551
+ f_complaint_results: '',
552
+ serlist: [],
553
+ userType:this.$appdata.getParam('用户类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]:[{label: '全部', value: ''}],
554
+ overdays:[{label: '全部', value: ''}, {label: '一级(7天以上)', value: '一级'}, {label: '二级(7天内)', value: '二级'}],
555
+ checkes: [],
556
+ remakes: null,
557
+ editflag: null,
558
+ selectone: '',
559
+ model: this.$login.f.rolesnames.includes('工单专派') ? new PagedList('af-telephone/rs/sql/roleOperatorService', 20,{overday:'this.overday'}):new PagedList('af-telephone/rs/sql/operatorService', 20,{overday:'this.overday'}),
560
+ source: this.$login.f.rolesnames.includes('工单专派')?`this.getResourceById($${this.$login.f.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($维修员$)!=-1)`:'',
561
+ row: null,
562
+ orderMan: '',
563
+ checkAll: false,
564
+ msgs: [],
565
+ service: Object,
566
+ pendingCount: 0,
567
+ imgfilename: '',
568
+ imgfilename1: '',
569
+ imgfilename2: '',
570
+ select: {
571
+ defname: ''
572
+ },
573
+ btnshow: false,
574
+ bartext: '',
575
+ barperc: 0,
576
+ barheight: 15,
577
+ barcolor: '#7697c4',
578
+ saveing:false,
579
+ rowlist: [],
580
+ // 待办/已办选择
581
+ picked: 'wait',
582
+ imgshow: false,
583
+ isComplanReview: false,
584
+ // defname:this.$appdata.getParam('工单状态'),
585
+ searchData: {
586
+ condition: {
587
+ condition: '1=1',
588
+ sign: '1=1'
589
+ },
590
+ userid: this.$login.f.name,
591
+ overday: ''
592
+ },
593
+ excelHeaders: {
594
+ 'f_workorder_type': '工单类型',
595
+ 'f_service_id': '工单编号',
596
+ 'f_created_date': '派单时间',
597
+ 'f_slice_area':'所属片区',
598
+ 'f_user_name': '用户姓名',
599
+ 'f_address': '用户地址',
600
+ 'f_user_type': '用户类型',
601
+ 'f_contact_name': '联系人',
602
+ 'f_phone': '来电电话',
603
+ 'f_contact_phone': '联系电话',
604
+ 'f_repairtype' : '报修类型',
605
+ 'f_json': '故障明细',
606
+ 'f_finish_date':'截止日期',
607
+ 'f_remarks': '工单备注'
608
+ },
609
+ //投诉单在modal框显示的信息
610
+ showModalComplan: {
611
+ serviceacitivity: [{f_complaint_results: ''}]
612
+ },
613
+ isSeekWork: false,
614
+ /*咨询单信息*/
615
+ showModalSeekWork: {
616
+ serviceacitivity: [{f_complaint_results: ''}]
617
+ },
618
+ /*咨询单结果*/
619
+ f_complaint_seekwork_results: ''
620
+ }
621
+
622
+ },
623
+ props: {
624
+ user: {
625
+ type: Object
626
+ },
627
+ maintenance: [],
628
+ // serviceId : [String, Number]
629
+ serviceId: '',
630
+ // 工单状态 工单位置
631
+ defname: {
632
+ type: String
633
+ }
634
+ },
635
+ ready() {
636
+ // this.getEmp()
637
+ let messageTime = 60
638
+ const time = this.$appdata.getSingleValue("站点提醒时间")
639
+ if (time && time > 60) {
640
+ messageTime = time
641
+ }
642
+ setInterval(() => {
643
+ const data = {
644
+ condition: {
645
+ condition: '1=1',
646
+ sign: '1=1'
647
+ },
648
+ userid: this.$login.f.name
649
+ }
650
+ if(this.$login.f.rolesnames.includes('工单专派')){
651
+ new HttpResetClass().load('post', 'af-telephone/rs/sql/roleOperatorService', {data: data}, {
652
+ resolveMsg: null,
653
+ rejectMsg: null
654
+ }).then(res => {
655
+ if (res.data && res.data.length > 0) {
656
+ this.$showMessage("您有" + res.data.length + "条工单待处理,请及时处理")
657
+ }
658
+ })
659
+ }else{
660
+ new HttpResetClass().load('post', 'af-telephone/rs/sql/operatorService', {data: data}, {
661
+ resolveMsg: null,
662
+ rejectMsg: null
663
+ }).then(res => {
664
+ if (res.data && res.data.length > 0) {
665
+ this.$showMessage("您有" + res.data.length + "条工单待处理,请及时处理")
666
+ }
667
+ })
668
+ }
669
+ }, messageTime * 1000)
670
+ this.initSliceAreas()
671
+ this.selfSearch().then(() => {
672
+ this.$emit('ready')
673
+ }).catch((error) => {
674
+ this.$emit('error', error)
675
+ })
676
+ // 开启轮询查询是否由自己的工单
677
+ // this.pollQuery()
678
+ },
679
+ watch: {
680
+ 'serviceId'() {
681
+ this.selfSearch()
682
+ },
683
+ // 待办/已办选择变化后,根据选择内容,重新设置path查询路径,进行查询
684
+ 'picked'() {
685
+ this.serlist = []
686
+ if (this.picked) {
687
+ if (this.picked === 'wait') {
688
+ if(this.$login.f.rolesnames.includes('工单专派')){
689
+ this.model.url = 'af-telephone/rs/sql/roleOperatorService'
690
+ }else{
691
+ this.model.url = 'af-telephone/rs/sql/operatorService'
692
+ }
693
+
694
+ } else if (this.picked === 'done') {
695
+ if(this.$login.f.rolesnames.includes('工单专派')){
696
+ this.model.url = 'af-telephone/rs/sql/roleDoneService'
697
+ }else{
698
+ this.model.url = 'af-telephone/rs/sql/doneService'
699
+ }
700
+ }
701
+ this.model.rows = []
702
+ this.selfSearch()
703
+ }
704
+ }
705
+ },
706
+ methods: {
707
+ initSliceAreas(){
708
+ let criteria = {
709
+ items: 'name',
710
+ tablename: 't_zone',
711
+ condition: `name IS NOT NULL and f_orgid = '${this.$login.f.orgid}'`,
712
+ groupitem: 'name'
713
+ }
714
+ new HttpResetClass().load('POST', `af-telephone/rs/sql/tel_singleTable_GroupBy`, {data: criteria}, {
715
+ warnMsg: null,
716
+ resolveMsg: null
717
+ }).then((result)=>{
718
+ result.data.forEach(item => this.slice_areas.push({
719
+ label: item.name,
720
+ value: item.name
721
+ }))
722
+ })
723
+ },
724
+ // 结案确认
725
+ async caseok(){
726
+ if(this.editflag == '批量结案' && this.serlist.length > 0 && this.serlist.length <100 ){
727
+ this.bartext = '正在批量结案' + this.serlist.length + '个单子'
728
+ this.btnshow = true
729
+ this.$showAlert('正在批量结案,请稍等!!!!!', 'warning', 2000)
730
+ this.saveing = true
731
+ for (var index in this.serlist) {
732
+ this.barperc = ((parseInt(index) + 1) * 100) / (parseInt(this.serlist.length))
733
+ let userdata = Object.assign({}, userdata, this.serlist[index])
734
+ userdata.f_advice = this.f_advice
735
+ userdata.f_caseremarks = this.f_caseremarks
736
+ let data = {
737
+ model: userdata,
738
+ f_caseremarks:this.f_caseremarks,
739
+ loginUser: {name: this.$login.f.name, ename: this.$login.f.ename}
740
+ }
741
+ try {
742
+ let http = new HttpResetClass()
743
+ let resChannel = await http.load('POST', `af-telephone/rs/logic/serviceCase`, data, {resolveMsg: null, rejectMsg: null})
744
+ } catch (e) {
745
+ this.$showAlert('结案失败' + data.model.f_service_id)
746
+ }
747
+ }
748
+ this.saveing = false
749
+ this.btnshow = false
750
+ this.barperc = 0
751
+ this.$showMessage('批量结案' + this.serlist.length + '个单子成功', ['confirm']).then((res) => {
752
+ if (res === 'confirm') {
753
+ this.f_caseremarks = ''
754
+ // 刷新界面
755
+ this.selfSearch()
756
+ }
757
+ })
758
+ }
759
+ if(this.editflag == '结案'){
760
+ // 工单结案操作
761
+ this.selectone.f_caseremarks=this.f_caseremarks
762
+ let data = {model: this.selectone, loginUser: {name: this.$login.f.name, ename: this.$login.f.ename},f_caseremarks:this.f_caseremarks}
763
+ this.$resetpost(`af-telephone/rs/logic/serviceCase`, data).then(() => {
764
+ this.f_caseremarks = ''
765
+ // 刷新界面
766
+ this.selfSearch()
767
+ })
768
+ }
769
+ },
770
+ repairendAll(){
771
+ //tag
772
+ if (!this.$refs.paged.$refs.criteria.model.f_workorder_type){
773
+ this.$showMessage('必须选择工单类型后查询')
774
+ return
775
+ }
776
+ this.selectone={
777
+ f_workorder_type:this.$refs.paged.$refs.criteria.model.f_workorder_type
778
+ }
779
+
780
+ if (this.checkAll){
781
+ //如果全选,根据条件去查询数据
782
+ let data={
783
+ condition:this.model.params.condition,
784
+ userid:this.$login.f.name
785
+ }
786
+ if(this.$login.f.rolesnames.includes('工单专派')){
787
+ new HttpResetClass().load('post','af-telephone/rs/sql/roleOperatorService',{data:data},{resolveMsg:null,rejectMsg:null}).then(res=>{
788
+ const results=res.data
789
+ this.rowlist=results.filter(result=>{
790
+ //tag)
791
+ console.log("999",result,JSON.stringify(result).indexOf('站点接单')!=-1)
792
+ return JSON.stringify(result).indexOf('站点接单')!=-1
793
+ })
794
+ console.log(this.rowlist)
795
+ //tag
796
+ this.serlist=JSON.parse(JSON.stringify(this.rowlist))
797
+ this.editflag ='批量结案'
798
+ })
799
+ }else{
800
+ new HttpResetClass().load('post','af-telephone/rs/sql/operatorService',{data:data},{resolveMsg:null,rejectMsg:null}).then(res=>{
801
+ const results=res.data
802
+ this.rowlist=results.filter(result=>{
803
+ //tag)
804
+ console.log("999",result,JSON.stringify(result).indexOf('站点接单')!=-1)
805
+ return JSON.stringify(result).indexOf('站点接单')!=-1
806
+ })
807
+ console.log(this.rowlist)
808
+ //tag
809
+ this.serlist=JSON.parse(JSON.stringify(this.rowlist))
810
+ this.editflag ='批量结案'
811
+ })
812
+ }
813
+ }else{
814
+ if (this.rowlist.length===0){
815
+ this.$showMessage('请选择工单')
816
+ return
817
+ }
818
+ //不全选,去取数据
819
+ this.serlist=JSON.parse(JSON.stringify(this.rowlist))
820
+ console.log("752752",this.rowlist)
821
+ this.editflag ='批量结案'
822
+ }
823
+ },
824
+ trouble (val) {
825
+ let failureall=''
826
+ // val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
827
+
828
+ let failure = JSON.parse(val)
829
+ for (let i = 0; i <failure.length; i++) {
830
+ if (failure[i].failurecase.length>0){
831
+ failureall+=failure[i].f_failure_type+":"
832
+ for (let j = 0; j < failure[i].failurecase.length; j++) {
833
+ failureall+=failure[i].failurecase[j]
834
+ if (j+1!=failure[i].failurecase.length){
835
+ failureall+=","
836
+ }
837
+ }
838
+
839
+ }else{
840
+ failureall+=failure[i].f_failure_type
841
+ }
842
+ if (i+1!=failure.length){
843
+ failureall+=';'
844
+ }
845
+ }
846
+ return failureall
847
+ },
848
+ // 结案返回
849
+ caseclose() {
850
+ this.f_caseremarks = ''
851
+ this.editflag = null
852
+ },
853
+ repairSendAll() {
854
+ //tag
855
+ if (!this.$refs.paged.$refs.criteria.model.f_workorder_type) {
856
+ this.$showMessage('必须选择工单类型后查询')
857
+ return
858
+ }
859
+ this.selectone = {
860
+ f_workorder_type: this.$refs.paged.$refs.criteria.model.f_workorder_type
861
+ }
862
+
863
+ if (this.checkAll) {
864
+ //如果全选,根据条件去查询数据
865
+ let data = {
866
+ condition: this.model.params.condition,
867
+ userid: this.$login.f.name
868
+ }
869
+ if(this.$login.f.rolesnames.includes('工单专派')){
870
+ new HttpResetClass().load('post', 'af-telephone/rs/sql/roleOperatorService', {data: data}, {
871
+ resolveMsg: null,
872
+ rejectMsg: null
873
+ }).then(res => {
874
+ const results = res.data
875
+ this.rowlist = results.filter(result => {
876
+ //tag)
877
+ console.log("999", result, JSON.stringify(result).indexOf('站点接单') != -1)
878
+ return JSON.stringify(result).indexOf('站点接单') != -1
879
+ })
880
+ console.log(this.rowlist)
881
+ //tag
882
+ this.serlist = JSON.parse(JSON.stringify(this.rowlist))
883
+ this.editflag = '工单下发'
884
+ })
885
+ }else{
886
+ new HttpResetClass().load('post', 'af-telephone/rs/sql/operatorService', {data: data}, {
887
+ resolveMsg: null,
888
+ rejectMsg: null
889
+ }).then(res => {
890
+ const results = res.data
891
+ this.rowlist = results.filter(result => {
892
+ //tag)
893
+ console.log("999", result, JSON.stringify(result).indexOf('站点接单') != -1)
894
+ return JSON.stringify(result).indexOf('站点接单') != -1
895
+ })
896
+ console.log(this.rowlist)
897
+ //tag
898
+ this.serlist = JSON.parse(JSON.stringify(this.rowlist))
899
+ this.editflag = '工单下发'
900
+ })
901
+ }
902
+ } else {
903
+ if (this.rowlist.length === 0) {
904
+ this.$showMessage('请选择工单')
905
+ return
906
+ }
907
+ //不全选,去取数据
908
+ this.serlist = JSON.parse(JSON.stringify(this.rowlist))
909
+ console.log("752752", this.rowlist)
910
+ this.editflag = '工单下发'
911
+ }
912
+ },
913
+ isChecked(v) {
914
+ // 如果全选,不在的按选中算,否则,在的按选中算
915
+ if (this.checkAll) {
916
+ return true
917
+ } else {
918
+ return this.rowlist.includes(v)
919
+ }
920
+ },
921
+
922
+ setCheckes(row) {
923
+ if (!this.checkAll) {
924
+ let index = this.checkes.indexOf(row.id)
925
+ if (index < 0) {
926
+ this.checkes.push(row.id)
927
+ this.rowlist.push(row)
928
+ } else {
929
+ this.checkes.splice(index, 1)
930
+ this.rowlist.splice(this.rowlist.findIndex(res => {
931
+ return res.id === row.id
932
+ }), 1)
933
+ }
934
+ }
935
+ },
936
+ hidden() {
937
+ this.criteriaShow = !this.criteriaShow
938
+ },
939
+ // 提交投诉单内容
940
+ inputCompainInfo() {
941
+ if (this.f_complaint_results != '') {
942
+ this.showModalComplan.serviceacitivity[0].f_complaint_results = this.f_complaint_results
943
+ this.$resetpost('af-telephone/rs/logic/saveComplaintResult', {
944
+ showModalComplan: this.showModalComplan,
945
+ loginUser: {name: this.$login.f.name, ename: this.$login.f.ename, loginid: this.$login.f.id}
946
+ }).then((res) => {
947
+ this.isComplanReview = false
948
+ this.showModalComplan = {}
949
+ this.$refs.paged.$refs.criteria.search()
950
+ })
951
+ } else {
952
+ //tag
953
+ return this.$showAlert('请填写投诉单结果!', 'warning', 2000)
954
+ }
955
+
956
+ },
957
+ //提交咨询单内容
958
+ inputSeekWorkInfo() {
959
+ if (this.f_complaint_seekwork_results != '') {
960
+ this.showModalSeekWork.serviceacitivity[0].f_complaint_results = this.f_complaint_seekwork_results
961
+ this.$resetpost('af-telephone/rs/logic/saveConsultResult', {
962
+ model: this.showModalSeekWork,
963
+ loginUser: {name: this.$login.f.name, ename: this.$login.f.ename, loginid: this.$login.f.id}
964
+ }).then((res) => {
965
+ this.isSeekWork = false
966
+ this.showModalSeekWork = {}
967
+ this.f_complaint_seekwork_results = ''
968
+ this.$refs.paged.$refs.criteria.search()
969
+ })
970
+ } else {
971
+ //tag
972
+ return this.$showAlert('请填写咨询单结果!', 'warning', 2000)
973
+ }
974
+ },
975
+ imgclose() {
976
+ this.imgshow = false
977
+ },
978
+ //检查是否为同一类型
979
+ addInList(val) {
980
+ if (!this.checkInList(val)) {
981
+ this.serlist.push(val)
982
+ //tag
983
+ } else {
984
+ var copyserlist = []
985
+ for (var index in this.serlist) {
986
+ if (this.serlist[index].f_service_id != val.f_service_id) {
987
+ copyserlist.push(this.serlist[index])
988
+ }
989
+ }
990
+ this.serlist = copyserlist
991
+ //tag
992
+ }
993
+ },
994
+ checkInList(val) {
995
+ var checkstr = false
996
+ this.serlist.forEach((item) => {
997
+ if (item.f_service_id == val.f_service_id) {
998
+ checkstr = true
999
+ }
1000
+ })
1001
+ return checkstr
1002
+ },
1003
+ isInList(val) {
1004
+ var checkstr = false
1005
+ this.serlist.forEach((item) => {
1006
+ if (item.f_service_id == val.f_service_id) {
1007
+ checkstr = true
1008
+ }
1009
+ })
1010
+ return checkstr
1011
+ },
1012
+ proc(selectone, type) {
1013
+ this.editflag = type
1014
+ this.selectone = selectone
1015
+ },
1016
+ complanReview(itemVal, type) {
1017
+ //tag
1018
+ this.showModalComplan = itemVal
1019
+ this.showModalComplan.serviceacitivity = [
1020
+ {f_service_acitivity_type: '投诉单', f_result_status: '已完成'}]
1021
+ this.showModalComplan.id_back = this.showModalComplan.id
1022
+ this.isComplanReview = true
1023
+ },
1024
+ seekworkReview(itemVal, type) {
1025
+ //tag
1026
+ this.showModalSeekWork = itemVal
1027
+ this.showModalSeekWork.serviceacitivity = [
1028
+ {f_service_acitivity_type: '投诉单', f_result_status: '已完成'}]
1029
+ this.showModalSeekWork.id_back = this.showModalSeekWork.id
1030
+ this.isSeekWork = true
1031
+ },
1032
+ showpicture(val) {
1033
+ //tag
1034
+ //tag)
1035
+ this.imgshow = true
1036
+ this.imgfilename = val.f_single_path
1037
+ this.imgfilename1 = val.f_singlea_path
1038
+ this.imgfilename2 = val.f_singleb_path
1039
+ },
1040
+ search(args) {
1041
+ this.serlist = []
1042
+ this.checkes = []
1043
+ //tag
1044
+ let data = {}
1045
+ if(args.model.overday){
1046
+ if(args.model.overday == '一级'){
1047
+ this.model.overday = ` and overday > 604800 and (f_state != '撤销' or f_state is null)`
1048
+ }
1049
+ if(args.model.overday == '二级'){
1050
+ this.model.overday = ` and overday <= 604800 and overday > 0 and (f_state != '撤销' or f_state is null)`
1051
+ }
1052
+ }
1053
+ data.condition = this.$refs.paged.$refs.criteria.condition ? this.$refs.paged.$refs.criteria.condition : '1=1'
1054
+ data.sign = this.$refs.paged.$refs.criteria.select ? `defname = '${this.$refs.paged.$refs.criteria.select.defname[0]}'` : '1=1'
1055
+ data.condition += ` and tswo.f_filiale_id = '${this.$login.f.orgid}'`
1056
+ this.searchData.condition = data
1057
+ this.searchData.overday = this.model.overday
1058
+ data.overday = this.model.overday
1059
+ this.searchData = Object.assign(this.searchData, args.model)
1060
+ return this.model.search(data, args.model)
1061
+ },
1062
+ clearAllCheckboxes() {
1063
+ const checkboxes = document.querySelectorAll('.rowCheckbox');
1064
+ checkboxes.forEach(checkbox => {
1065
+ checkbox.checked = false;
1066
+ });
1067
+ },
1068
+ selfSearch() {
1069
+ this.clearAllCheckboxes()
1070
+ // 取消编辑状态
1071
+ this.serlist = []
1072
+ this.rowlist = []
1073
+ this.checkes = []
1074
+ this.editflag = null
1075
+
1076
+ this.model.paramSource = {
1077
+ userid: '\'' + this.$login.f.name + '\''
1078
+ }
1079
+ //tag
1080
+ let data = {}
1081
+ data.condition = ` 1 = 1 and tswo.f_filiale_id = '${this.$login.f.orgid}'`
1082
+ data.sign = '1=1'
1083
+ return this.model.search(data)
1084
+ },
1085
+ },
1086
+ computed: {
1087
+ serviceorders() {
1088
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('工单类型')]
1089
+ },
1090
+ repairstypes() {
1091
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('报修类型')]
1092
+ },
1093
+ defnames() {
1094
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('工单状态')]
1095
+ }
1096
+
1097
+ }
1098
+ }
1099
+ </script>
1100
+ <style scoped lang="less">
1101
+ .workOrderInfo {
1102
+ .row {
1103
+ div {
1104
+ margin-top: 10px;
1105
+
1106
+ [readonly] {
1107
+ background-color: #eeeeee;
1108
+ }
1109
+ }
1110
+ }
1111
+ }
1112
+ </style>
1113
+