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.
- package/package.json +2 -2
- package/src/components/pc/MaintenanceWorker.vue +152 -0
- package/src/components/pc/NewRepairPaper.vue +704 -704
- package/src/components/pc/NewRepairTablePaper.vue +442 -442
- package/src/components/pc/WorkHistory.vue +650 -650
- package/src/components/pc/WorkListNew.vue +838 -838
- package/src/components/sendsingle/onlinecharge.vue +424 -424
- package/src/components/workorder/ChangeMeterPageNew.vue +663 -663
- package/src/components/workorder/ChangeMeterUserInfo.vue +130 -130
- package/src/components/workorder/RepairFirstV.vue +736 -736
- package/src/components/workorder/RepairInfo.vue +178 -178
- package/src/components/workorder/RepairOrderT.vue +713 -713
- package/src/components/workorder/oldMeterPage.vue +104 -104
- package/src/components/workorder/repairFirstTable.vue +715 -715
- package/src/filiale/jinhong/android/FaultAll.vue +936 -936
- package/src/filiale/jinhong/android/ZHihuanFirst.vue +540 -540
- package/src/filiale/jinhong/pc/WorkListAllNew.vue +884 -884
- package/src/filiale/jinhong/telephone.js +10 -10
- package/src/filiale/jinhong/telephoneAndroid.js +13 -13
- package/src/filiale/meihekou/android/Othercharge.vue +454 -454
- package/src/filiale/meihekou/android/PhoneStandWorkNew.vue +692 -692
- package/src/filiale/meihekou/android/ServiceOnlineQuery.vue +477 -477
- package/src/filiale/meihekou/pc/WorkListAllNew.vue +925 -901
- package/src/filiale/meihekou/pc/WorkListNew.vue +1113 -1049
- package/src/filiale/meihekou/telephoneAndroid.js +26 -26
- package/src/filiale/xinjiangdexin/telephone.js +16 -16
- package/src/filiale/xinliansihui/android/FaultAll.vue +923 -923
- package/src/filiale/xinliansihui/android/RepairFirstV.vue +734 -734
- package/src/filiale/xinliansihui/android/RepairOrderT.vue +713 -713
- package/src/main.js +1 -1
- package/src/telephone-android.js +425 -425
- package/src/telephone.js +799 -796
|
@@ -1,692 +1,692 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div style="height: auto;width: 100%" class="repair-bg">
|
|
3
|
-
<div class="bq-parent">
|
|
4
|
-
<blockquote style="color: #499edf;border-left-color: #499edf;font-size: 16px">
|
|
5
|
-
<p>
|
|
6
|
-
待派发工单<span v-if="rows">({{rows.length}}单)</span>
|
|
7
|
-
<span v-if="!rows">(暂无待派发工单)</span>
|
|
8
|
-
</p>
|
|
9
|
-
</blockquote>
|
|
10
|
-
</div>
|
|
11
|
-
|
|
12
|
-
<div>
|
|
13
|
-
<form>
|
|
14
|
-
<!-- 查询条件-->
|
|
15
|
-
<div class="row app-row">
|
|
16
|
-
<div class="col-xs-4">
|
|
17
|
-
<img src="../../../assets/用户姓名-蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
18
|
-
<label for="f_userinfo_code" class="font text-left">用户姓名:</label>
|
|
19
|
-
</div>
|
|
20
|
-
<div class="col-xs-8" >
|
|
21
|
-
<input type="text" v-model="username" placeholder='用户姓名'
|
|
22
|
-
class="search_input input-font" />
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
<div class="row app-row">
|
|
26
|
-
<div class="col-xs-4">
|
|
27
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
28
|
-
<label for="f_userinfo_code" class="font text-left">用户地址:</label>
|
|
29
|
-
</div>
|
|
30
|
-
<div class="col-xs-8" >
|
|
31
|
-
<input type="text" id="f_userinfo_code" class="search_input input-font"
|
|
32
|
-
v-model="address" placeholder='用户地址' />
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
<div class="row app-row">
|
|
36
|
-
<div class="col-xs-4">
|
|
37
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
38
|
-
<label class="font text-left">接单站点:</label>
|
|
39
|
-
</div>
|
|
40
|
-
<input style="width: 60%" type="text" v-show="false" v-model="f_meetunit">
|
|
41
|
-
<right-tree islist :userid="userid" :source="source" v-on:re-res="reres2" >
|
|
42
|
-
</right-tree>
|
|
43
|
-
</div>
|
|
44
|
-
<div class="row app-row" >
|
|
45
|
-
<div class="col-xs-4">
|
|
46
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
47
|
-
<label class="font text-left">维修区域:</label>
|
|
48
|
-
</div>
|
|
49
|
-
<div class="col-xs-8" >
|
|
50
|
-
<v-select :value.sync="f_slice_area_id"
|
|
51
|
-
v-model="f_slice_area_id"
|
|
52
|
-
:options='sliceArea'
|
|
53
|
-
placeholder='请选择'
|
|
54
|
-
close-on-select
|
|
55
|
-
:multiple="false"
|
|
56
|
-
></v-select>
|
|
57
|
-
</div>
|
|
58
|
-
</div>
|
|
59
|
-
<div class="row app-row" >
|
|
60
|
-
<div class="col-xs-4">
|
|
61
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
62
|
-
<label class="font text-left">报修类型:</label>
|
|
63
|
-
</div>
|
|
64
|
-
<div class="col-xs-8" >
|
|
65
|
-
<v-select :value.sync="f_repairtype"
|
|
66
|
-
v-model="f_repairtype"
|
|
67
|
-
:options='baoxiuType'
|
|
68
|
-
placeholder='请选择'
|
|
69
|
-
close-on-select
|
|
70
|
-
:multiple="false"
|
|
71
|
-
></v-select>
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
<div class="row app-row" >
|
|
75
|
-
<div class="col-xs-4">
|
|
76
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
77
|
-
<label class="font text-left">用户类型:</label>
|
|
78
|
-
</div>
|
|
79
|
-
<div class="col-xs-8" >
|
|
80
|
-
<v-select :value.sync="f_user_type"
|
|
81
|
-
v-model="f_user_type"
|
|
82
|
-
:options='userType'
|
|
83
|
-
placeholder='请选择'
|
|
84
|
-
:multiple="false"
|
|
85
|
-
close-on-select
|
|
86
|
-
></v-select>
|
|
87
|
-
</div>
|
|
88
|
-
</div>
|
|
89
|
-
<div class="row app-row">
|
|
90
|
-
<div class="col-xs-4">
|
|
91
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
92
|
-
<label class="font text-left">截止时间:</label>
|
|
93
|
-
</div>
|
|
94
|
-
<div class="col-xs-8" style="display: flex; justify-content: space-between;">
|
|
95
|
-
<datepicker id="f_finish_date_start"
|
|
96
|
-
placeholder= '起始时间'
|
|
97
|
-
:value.sync="f_finish_date_start"
|
|
98
|
-
:disabled-days-of-Week="[]"
|
|
99
|
-
v-model="f_finish_date_start"
|
|
100
|
-
class="input-font"
|
|
101
|
-
style="width:60%"
|
|
102
|
-
:format="'yyyy-MM-dd 00:00:00'"
|
|
103
|
-
:show-reset-button="reset">
|
|
104
|
-
</datepicker>
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
<div class="row app-row">
|
|
108
|
-
<div class="col-xs-4">
|
|
109
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
110
|
-
<label class="font text-left">截止时间:</label>
|
|
111
|
-
</div>
|
|
112
|
-
<div class="col-xs-8" style="display: flex; justify-content: space-between;">
|
|
113
|
-
<datepicker id="f_finish_date_end"
|
|
114
|
-
placeholder= '结束时间'
|
|
115
|
-
:value.sync="f_finish_date_end"
|
|
116
|
-
:disabled-days-of-Week="[]"
|
|
117
|
-
v-model="f_finish_date_end"
|
|
118
|
-
class="input-font"
|
|
119
|
-
style="width:60%"
|
|
120
|
-
:format="'yyyy-MM-dd 23:59:00'"
|
|
121
|
-
:show-reset-button="reset">
|
|
122
|
-
</datepicker>
|
|
123
|
-
</div>
|
|
124
|
-
</div>
|
|
125
|
-
<div class="row app-row">
|
|
126
|
-
<div class="col-xs-4 col-sm-3">
|
|
127
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
128
|
-
<label class="font text-left">逾期天数:</label>
|
|
129
|
-
</div>
|
|
130
|
-
<div class="col-xs-8 col-sm-9">
|
|
131
|
-
<div class="row">
|
|
132
|
-
<div class="col-xs-4">
|
|
133
|
-
<input type="number" min="0" v-model.number="f_over_start"
|
|
134
|
-
class="form-control form-control-sm" placeholder="起始天数">
|
|
135
|
-
</div>
|
|
136
|
-
<div class="col-xs-2 text-center">
|
|
137
|
-
<span class="font">至</span>
|
|
138
|
-
</div>
|
|
139
|
-
<div class="col-xs-4">
|
|
140
|
-
<input type="number" min="0" v-model.number="f_over_end"
|
|
141
|
-
class="form-control form-control-sm" placeholder="结束天数">
|
|
142
|
-
</div>
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
|
-
</div>
|
|
146
|
-
<div class="row app-row">
|
|
147
|
-
<div class="col-xs-4">
|
|
148
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
149
|
-
<label for="f_userinfo_code" class="font text-left">报修内容:</label>
|
|
150
|
-
</div>
|
|
151
|
-
<div class="col-xs-8" >
|
|
152
|
-
<input type="text" id="f_userinfo_code" class="search_input input-font"
|
|
153
|
-
v-model="f_failure" placeholder='报修内容' />
|
|
154
|
-
</div>
|
|
155
|
-
</div>
|
|
156
|
-
<!-- 分割按钮和条件的高度 -->
|
|
157
|
-
<div class="row app-row" style="height: 10px;"></div>
|
|
158
|
-
<!-- 按钮 -->
|
|
159
|
-
<div class="row text-center app-row">
|
|
160
|
-
<button type="button" class="btn btn-lg btn-font btn-color" @click="ifsearch()" style="min-width: 25%;">查询</button>
|
|
161
|
-
</div>
|
|
162
|
-
<div style="height:30px;" class="app-row"></div>
|
|
163
|
-
</form>
|
|
164
|
-
</div>
|
|
165
|
-
<!-- 列表 -->
|
|
166
|
-
<div class="panel panel-default repair-info-content auto">
|
|
167
|
-
<div class="panel-body">
|
|
168
|
-
<div class="panel panel-default well panel-blue-border" :class="row.failure.indexOf('漏气') !== -1 ? 'class-a':''" v-for="row in listData.list" >
|
|
169
|
-
<div class="panel-body" style="padding: 10px">
|
|
170
|
-
<div class="row form-group">
|
|
171
|
-
<div class="col-sm-12 col-xs-12 col-md-12">
|
|
172
|
-
<div class="row" >
|
|
173
|
-
<div :class="{'text-danger': row.f_remindersign}" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
174
|
-
工单编号: {{row.f_service_id}}<span v-if="row.f_remindersign">(催单 {{row.f_reminderdata}}) </span>
|
|
175
|
-
</div>
|
|
176
|
-
<div :class="{'text-danger': row.f_remindersign}" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
177
|
-
接单站点: {{row.f_meetunit}}<span v-if="row.f_remindersign">(催单 {{row.f_reminderdata}}) </span>
|
|
178
|
-
</div>
|
|
179
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
180
|
-
派发时间: {{row.f_created_date}}
|
|
181
|
-
</div>
|
|
182
|
-
<div v-show="false" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="worktype == '置换通气单'||worktype == '安装单'">
|
|
183
|
-
预约时间: {{row.f_yuyue_date}}
|
|
184
|
-
</div>
|
|
185
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_repairtype">
|
|
186
|
-
报修类型: {{row.f_repairtype}}
|
|
187
|
-
</div>
|
|
188
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_finish_date">
|
|
189
|
-
截止天数: {{Math.floor((new Date(row.f_finish_date.substring(0,10)).getTime() - new Date(row.f_created_date.substring(0,10)).getTime()) / 86400000)}}
|
|
190
|
-
</div>
|
|
191
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_finish_date">
|
|
192
|
-
截止日期: {{row.f_finish_date}}
|
|
193
|
-
</div>
|
|
194
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_finish_date">
|
|
195
|
-
逾期天数:
|
|
196
|
-
{{Math.max(0, Math.floor((new Date().getTime() - new Date(row.f_finish_date.substring(0,10)).getTime()) / 86400000))}}
|
|
197
|
-
</div>
|
|
198
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_userinfo_code">
|
|
199
|
-
用户编号: {{row.f_userinfo_code}}
|
|
200
|
-
</div>
|
|
201
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_enter_number">
|
|
202
|
-
用户证号: {{row.f_enter_number}}
|
|
203
|
-
</div>
|
|
204
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
205
|
-
用户姓名: {{row.f_user_name}}
|
|
206
|
-
</div>
|
|
207
|
-
<div v-show="false" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
208
|
-
来电电话: {{row.f_phone}}
|
|
209
|
-
<img src="../../../assets/telphonesend.png" style="width: 12px;" @click.stop.prevent='makeAPhoneCall(row.f_phone)'>
|
|
210
|
-
</div>
|
|
211
|
-
<div class="col-sm-12 col-xs-12 col-md-12">
|
|
212
|
-
联系电话: {{row.f_contact_phone}}
|
|
213
|
-
<img src="../../../assets/telphonesend.png" style="width: 12px;" @click.stop.prevent='makeAPhoneCall(row.f_contact_phone)'>
|
|
214
|
-
</div>
|
|
215
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
216
|
-
用户地址: {{row.f_address}}
|
|
217
|
-
</div>
|
|
218
|
-
<div v-show="row.f_remarks" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
219
|
-
备注信息: {{row.f_remarks}}
|
|
220
|
-
</div>
|
|
221
|
-
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.failure">
|
|
222
|
-
<failure-show :value='row.failure'>
|
|
223
|
-
</failure-show>
|
|
224
|
-
</div>
|
|
225
|
-
</div>
|
|
226
|
-
</div>
|
|
227
|
-
<div class="col-sm-12 col-xs-12 col-md-12">
|
|
228
|
-
<button type="button" name="button" class="btn btn-primary btn-sm" style="float: right;margin-right: 5px;" @click="selected(row)">下派</button>
|
|
229
|
-
<button type="button" name="button" class="btn btn-primary btn-sm" style="float: right;margin-right: 5px;" @click="returnOrder(row)">退回</button>
|
|
230
|
-
<button type="button" name="button" class="btn btn-primary btn-sm" style="float: right;margin-right: 5px;" @click="caseend(row)">结案</button>
|
|
231
|
-
</div>
|
|
232
|
-
</div>
|
|
233
|
-
</div>
|
|
234
|
-
</div>
|
|
235
|
-
<div style="height:auto;width: 100%;text-align: center">
|
|
236
|
-
<a v-if="!listData.isEnd" @click="showMore()">展开更多......</a>
|
|
237
|
-
<span v-if="listData.isEnd">到底了......</span>
|
|
238
|
-
</div>
|
|
239
|
-
</div>
|
|
240
|
-
<modal :show.sync="return_modal" v-ref:modalCase backdrop="false">
|
|
241
|
-
<header slot="modal-header" class="modal-header">
|
|
242
|
-
工单退回
|
|
243
|
-
</header>
|
|
244
|
-
<article slot="modal-body" class="modal-body">
|
|
245
|
-
<div class="col-sm-12 form-group">
|
|
246
|
-
<label class="control-label col-sm-2">退回备注</label>
|
|
247
|
-
<div class="col-sm-9">
|
|
248
|
-
<input class="form-control" type="text" v-model="return_modal_data.serviceacitivity[0].f_site_back_reason"/>
|
|
249
|
-
</div>
|
|
250
|
-
</div>
|
|
251
|
-
</article>
|
|
252
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
253
|
-
<button type="button" class="btn btn-success" @click='returnOrderBack()'>确定</button>
|
|
254
|
-
<button type="button" class="btn btn-success" @click='returnModalClose()'>关闭</button>
|
|
255
|
-
</footer>
|
|
256
|
-
</modal>
|
|
257
|
-
<modal :show.sync="sendshow" v-ref:modal :backdrop="false">
|
|
258
|
-
<div slot="modal-header" class="modal-header">
|
|
259
|
-
<h4 class="modal-title">
|
|
260
|
-
派发工单
|
|
261
|
-
</h4>
|
|
262
|
-
</div>
|
|
263
|
-
<div slot="modal-body" class="modal-body">
|
|
264
|
-
<div class="row" style="margin-top: 6px">
|
|
265
|
-
<label class="col-xs-4 col-md-4 control-label font text-left">派单方式</label>
|
|
266
|
-
<div class="col-xs-8">
|
|
267
|
-
<v-select :value-single="true" :value.sync="f_handlingtype" v-model="f_handlingtype"
|
|
268
|
-
:options='repairerType' placeholder='请选择派单方式'
|
|
269
|
-
close-on-select></v-select>
|
|
270
|
-
</div>
|
|
271
|
-
</div>
|
|
272
|
-
<div class="row" style="margin-top: 6px" v-if="f_handlingtype == '转维修员'">
|
|
273
|
-
<label class="col-xs-4 col-md-4 control-label font text-left">维修员</label>
|
|
274
|
-
<div class="col-xs-8">
|
|
275
|
-
<v-select :value="sendselected.serviceacitivity[0].f_reciever" :value-single="true"
|
|
276
|
-
:options='repairers' placeholder='请选择维修员'
|
|
277
|
-
close-on-select v-on:change="repiarmancg"></v-select>
|
|
278
|
-
</div>
|
|
279
|
-
</div>
|
|
280
|
-
<div class="row" style="margin-top: 6px" v-if="f_handlingtype == '转站点'">
|
|
281
|
-
<label class="col-xs-4 col-md-4 control-label font text-left">站点</label>
|
|
282
|
-
<input style="width: 60%" type="text" v-show="false" v-model="sendselected.serviceacitivity[0].f_reciever">
|
|
283
|
-
<right-tree islist :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员">
|
|
284
|
-
|
|
285
|
-
</right-tree>
|
|
286
|
-
</div>
|
|
287
|
-
<div class="row" style="margin-top: 6px">
|
|
288
|
-
<label class="control-label font text-left col-md-4 col-xs-4">备注</label>
|
|
289
|
-
<div class="col-xs-8 col-md-8">
|
|
290
|
-
<input type="text" v-model="sendselected.f_advice"/>
|
|
291
|
-
</div>
|
|
292
|
-
</div>
|
|
293
|
-
</div>
|
|
294
|
-
<div slot="modal-footer" class="modal-footer">
|
|
295
|
-
<button type="button" class="btn btn-default" @click="worksend()">确定</button>
|
|
296
|
-
<button type="button" class="btn btn-default" @click="undo()">取消</button>
|
|
297
|
-
</div>
|
|
298
|
-
</modal>
|
|
299
|
-
<modal :show.sync="caseshow" v-ref:modalCase backdrop="false">
|
|
300
|
-
<header slot="modal-header" class="modal-header">
|
|
301
|
-
工单结案
|
|
302
|
-
</header>
|
|
303
|
-
<article slot="modal-body" class="modal-body">
|
|
304
|
-
<div class="col-sm-12 form-group">
|
|
305
|
-
<label class="control-label col-sm-2">结案备注</label>
|
|
306
|
-
<div class="col-sm-9">
|
|
307
|
-
<input class="form-control" type="text" v-model="f_caseremarks"/>
|
|
308
|
-
</div>
|
|
309
|
-
</div>
|
|
310
|
-
</article>
|
|
311
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
312
|
-
<button type="button" class="btn btn-success" @click='caseok'>确定</button>
|
|
313
|
-
<button type="button" class="btn btn-success" @click='caseclose'>关闭</button>
|
|
314
|
-
</footer>
|
|
315
|
-
</modal>
|
|
316
|
-
</div>
|
|
317
|
-
</div>
|
|
318
|
-
</template>
|
|
319
|
-
<script>
|
|
320
|
-
import FailureShow from '../../../components/pc/FailureShow'
|
|
321
|
-
import { HttpResetClass } from 'vue-client'
|
|
322
|
-
import Vue from 'vue'
|
|
323
|
-
import * as Util from "../../../components/Util";
|
|
324
|
-
|
|
325
|
-
export default{
|
|
326
|
-
title: '移动端站点派发',
|
|
327
|
-
data () {
|
|
328
|
-
return {
|
|
329
|
-
return_modal:false,
|
|
330
|
-
return_modal_data:{},
|
|
331
|
-
userid: Vue.user.id,
|
|
332
|
-
source:
|
|
333
|
-
'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
|
|
334
|
-
'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
|
|
335
|
-
repairName: '',
|
|
336
|
-
f_handlingtype:'转维修员',
|
|
337
|
-
baoxiuType:this.$appdata.getParam('报修类型'),
|
|
338
|
-
repairerType:[{label: '转维修员', value: '转维修员'}, {label: '转站点', value: '转站点'}],
|
|
339
|
-
userType:[{label: '全部', value: ''},{label: '民用', value: '民用'}, {label: '非民用', value: '非民用'}],
|
|
340
|
-
repairerStands:[],
|
|
341
|
-
f_caseremarks:'',
|
|
342
|
-
selectone:'',
|
|
343
|
-
rows: [],
|
|
344
|
-
sliceArea :[],
|
|
345
|
-
username:'',
|
|
346
|
-
address:'',
|
|
347
|
-
f_meetunit: '',
|
|
348
|
-
f_slice_area_id: '',
|
|
349
|
-
f_user_type: '',
|
|
350
|
-
f_finish_date_start: '',
|
|
351
|
-
f_finish_date_end: '',
|
|
352
|
-
f_over_start: '',
|
|
353
|
-
f_over_end: '',
|
|
354
|
-
f_failure:'',
|
|
355
|
-
sendshow:false,
|
|
356
|
-
repairers: [],
|
|
357
|
-
areas: [],
|
|
358
|
-
caseshow:false,
|
|
359
|
-
sendselected:{
|
|
360
|
-
serviceacitivity:[
|
|
361
|
-
{
|
|
362
|
-
f_service_acitivity_type: '派单',
|
|
363
|
-
f_reciever:''
|
|
364
|
-
}
|
|
365
|
-
],
|
|
366
|
-
f_advice:''
|
|
367
|
-
},
|
|
368
|
-
number:0,
|
|
369
|
-
listData: {
|
|
370
|
-
list: [],
|
|
371
|
-
isEnd: true,
|
|
372
|
-
index: 0
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
},
|
|
376
|
-
props: {
|
|
377
|
-
},
|
|
378
|
-
methods: {
|
|
379
|
-
gerzone(){
|
|
380
|
-
new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
|
|
381
|
-
items: 'name,id',
|
|
382
|
-
tablename: 't_zone',
|
|
383
|
-
condition: `f_orgid='${ Vue.user.orgid}'`,
|
|
384
|
-
orderitem: 'id'
|
|
385
|
-
}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
386
|
-
this.sliceArea=[]
|
|
387
|
-
this.sliceArea.push({
|
|
388
|
-
label:'全部',
|
|
389
|
-
value:''
|
|
390
|
-
})
|
|
391
|
-
res.data.forEach(ress=>{
|
|
392
|
-
this.sliceArea.push({
|
|
393
|
-
label:ress.name,
|
|
394
|
-
value:ress.id
|
|
395
|
-
})
|
|
396
|
-
})
|
|
397
|
-
})
|
|
398
|
-
},
|
|
399
|
-
returnOrderBack(){
|
|
400
|
-
new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/logic/siteBack`, {model: this.return_modal_data, loginUser: {name: Vue.user.name, ename: Vue.user.ename, id: Vue.user.id}}).then((res) => {
|
|
401
|
-
this.returnModalClose()
|
|
402
|
-
this.$showMessage(`退回成功`)
|
|
403
|
-
})
|
|
404
|
-
},
|
|
405
|
-
returnModalClose(){
|
|
406
|
-
this.return_modal_data = {}
|
|
407
|
-
this.return_modal = false
|
|
408
|
-
},
|
|
409
|
-
returnOrder(row){
|
|
410
|
-
row.serviceacitivity = [
|
|
411
|
-
{
|
|
412
|
-
"f_service_acitivity_type": "打回",
|
|
413
|
-
"f_site_back_reason": ""
|
|
414
|
-
}
|
|
415
|
-
]
|
|
416
|
-
this.return_modal_data = row
|
|
417
|
-
this.return_modal = true
|
|
418
|
-
},
|
|
419
|
-
reres(val){
|
|
420
|
-
if(val.res == undefined || val.res[0] == undefined || val.res[0] == ''){
|
|
421
|
-
return
|
|
422
|
-
}
|
|
423
|
-
this.sendselected.serviceacitivity[0].f_meetunit = val.res[0]
|
|
424
|
-
this.sendselected.f_meetunit = val.res[0]
|
|
425
|
-
this.sendselected.f_filiale_id = val.orgobj[0].parentid
|
|
426
|
-
this.sendselected.f_filiale = val.orgobj[0].parentname
|
|
427
|
-
this.sendselected.f_outlets = val.res[0]
|
|
428
|
-
this.sendselected.serviceacitivity[0].f_reciever = val.resids[0]
|
|
429
|
-
},
|
|
430
|
-
reres2(val){
|
|
431
|
-
if(val.res == undefined || val.res[0] == undefined || val.res[0] == ''){
|
|
432
|
-
return
|
|
433
|
-
}
|
|
434
|
-
this.f_meetunit=val.res[0]
|
|
435
|
-
},
|
|
436
|
-
caseend(val){
|
|
437
|
-
this.selectone = val
|
|
438
|
-
this.caseshow = true
|
|
439
|
-
},
|
|
440
|
-
// 结案确认
|
|
441
|
-
caseok(){
|
|
442
|
-
// 工单结案操作
|
|
443
|
-
let data = {model: this.selectone, loginUser: {name: Vue.user.name, ename: Vue.user.ename},f_caseremarks:this.f_caseremarks}
|
|
444
|
-
let HttpReset1 = new HttpResetClass()
|
|
445
|
-
// 将数据发送给业务逻辑
|
|
446
|
-
HttpReset1.load('POST',`${this.$androidUtil.getProxyUrl()}/af-telephone/rs/logic/serviceCase`, data).then((res) => {
|
|
447
|
-
this.f_caseremarks = ''
|
|
448
|
-
this.caseshow = false
|
|
449
|
-
this.ifsearch()
|
|
450
|
-
})
|
|
451
|
-
},
|
|
452
|
-
// 结案返回
|
|
453
|
-
caseclose(){
|
|
454
|
-
this.f_caseremarks = ''
|
|
455
|
-
this.caseshow = false
|
|
456
|
-
this.selectone = ''
|
|
457
|
-
},
|
|
458
|
-
worksend() {
|
|
459
|
-
if (!this.sendselected.serviceacitivity[0].f_reciever) {
|
|
460
|
-
this.$showMessage(`请选择接单人员!`, ['confirm'])
|
|
461
|
-
return
|
|
462
|
-
}
|
|
463
|
-
let data = {
|
|
464
|
-
model: this.sendselected,
|
|
465
|
-
loginUser: {name: Vue.user.name, ename: Vue.user.ename},
|
|
466
|
-
f_handlingtype: this.f_handlingtype
|
|
467
|
-
}
|
|
468
|
-
let HttpReset = new HttpResetClass()
|
|
469
|
-
// 将数据发送给业务逻辑
|
|
470
|
-
HttpReset.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/logic/siteSend`, data).then((res) => {
|
|
471
|
-
if (res.data.code == 300) {
|
|
472
|
-
this.sendshow = false
|
|
473
|
-
this.sendselected = {
|
|
474
|
-
serviceacitivity: [
|
|
475
|
-
{
|
|
476
|
-
f_service_acitivity_type: '派单',
|
|
477
|
-
f_reciever: ''
|
|
478
|
-
}
|
|
479
|
-
],
|
|
480
|
-
f_advice: ''
|
|
481
|
-
}
|
|
482
|
-
this.ifsearch()
|
|
483
|
-
this.$showMessage(`该单已被派发!`, ['confirm'])
|
|
484
|
-
return
|
|
485
|
-
} else {
|
|
486
|
-
this.sendshow = false
|
|
487
|
-
this.sendselected = {
|
|
488
|
-
serviceacitivity: [
|
|
489
|
-
{
|
|
490
|
-
f_service_acitivity_type: '派单',
|
|
491
|
-
f_reciever: ''
|
|
492
|
-
}
|
|
493
|
-
],
|
|
494
|
-
f_advice: ''
|
|
495
|
-
}
|
|
496
|
-
this.ifsearch()
|
|
497
|
-
this.$showMessage(`派发成功!`, ['confirm'])
|
|
498
|
-
return
|
|
499
|
-
}
|
|
500
|
-
})
|
|
501
|
-
},
|
|
502
|
-
repiarmancg(val){
|
|
503
|
-
this.sendselected.serviceacitivity[0].f_reciever = val
|
|
504
|
-
},
|
|
505
|
-
// 获取维修员
|
|
506
|
-
getEmp () {
|
|
507
|
-
// 获取接单人数组
|
|
508
|
-
let http = new HttpResetClass()
|
|
509
|
-
var val = {source: `this.getParentByType($organization$).getChildByName($维修员$).getUsers()`, userid: `${Vue.user.id}`}
|
|
510
|
-
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
511
|
-
res.data.forEach((item) => {
|
|
512
|
-
this.repairers.push({label: `${item.name}`, value: item.name})
|
|
513
|
-
})
|
|
514
|
-
})
|
|
515
|
-
},
|
|
516
|
-
ifsearch(){
|
|
517
|
-
this.listData.list = []
|
|
518
|
-
this.listData.index = 0
|
|
519
|
-
this.listData.isEnd = true
|
|
520
|
-
var condition = `1 = 1 and tswo.f_workorder_type = '报修单'`
|
|
521
|
-
if(this.username != ''){
|
|
522
|
-
condition += " and tswo.f_user_name like '%" + this.username + "%'"
|
|
523
|
-
}
|
|
524
|
-
if(this.address != ''){
|
|
525
|
-
condition += " and tswo.f_address like '%" + this.address + "%'"
|
|
526
|
-
}
|
|
527
|
-
if(this.f_meetunit != ''){
|
|
528
|
-
condition += `and ts.f_meetunit = '${this.f_meetunit}' `
|
|
529
|
-
}
|
|
530
|
-
if(this.f_repairtype != ''){
|
|
531
|
-
condition += `and tswo.f_repairtype = '${this.f_repairtype}' `
|
|
532
|
-
}
|
|
533
|
-
if(this.f_user_type != ''){
|
|
534
|
-
condition += `and tswo.f_user_type = '${this.f_user_type}' `
|
|
535
|
-
}
|
|
536
|
-
if(this.f_finish_date_start != ''){
|
|
537
|
-
condition += `and tswo.f_finish_date >= '${this.f_finish_date_start}' `
|
|
538
|
-
}
|
|
539
|
-
if(this.f_finish_date_end != ''){
|
|
540
|
-
condition += `and tswo.f_finish_date <= '${this.f_finish_date_end}' `
|
|
541
|
-
}
|
|
542
|
-
if(this.f_slice_area_id != ''){
|
|
543
|
-
condition += `and tua.f_slice_area_id = '${this.f_slice_area_id}' `
|
|
544
|
-
}
|
|
545
|
-
if(this.f_failure != ''){
|
|
546
|
-
condition += `and tswo.failure_str like '%${this.f_failure}%' `
|
|
547
|
-
}
|
|
548
|
-
// 逾期天数筛选(SQL Server 语法)
|
|
549
|
-
if (this.f_over_start !== '' || this.f_over_end !== '') {
|
|
550
|
-
const dateDiffExpr = `DATEDIFF(DAY, CONVERT(DATE, tswo.f_finish_date), CONVERT(DATE, GETDATE()))`;
|
|
551
|
-
if (this.f_over_start !== '' && this.f_over_end !== '') {
|
|
552
|
-
// 区间筛选
|
|
553
|
-
condition += ` AND ${dateDiffExpr} BETWEEN ${this.f_over_start} AND ${this.f_over_end}`;
|
|
554
|
-
} else if (this.f_over_start !== '') {
|
|
555
|
-
// 最小逾期天数
|
|
556
|
-
condition += ` AND ${dateDiffExpr} >= ${this.f_over_start}`;
|
|
557
|
-
} else if (this.f_over_end !== '') {
|
|
558
|
-
// 最大逾期天数
|
|
559
|
-
condition += ` AND ${dateDiffExpr} <= ${this.f_over_end}`;
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
var val = {
|
|
563
|
-
condition:{
|
|
564
|
-
condition:condition,
|
|
565
|
-
sign:'1 = 1'
|
|
566
|
-
},
|
|
567
|
-
userid:Vue.user.name
|
|
568
|
-
}
|
|
569
|
-
let http = new HttpResetClass()
|
|
570
|
-
http.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/operatorServiceNew`, {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
571
|
-
this.rows = res.data
|
|
572
|
-
this.showMore()
|
|
573
|
-
})
|
|
574
|
-
},
|
|
575
|
-
selected (row) {
|
|
576
|
-
this.sendselected = Object.assign({}, this.sendselected, row)
|
|
577
|
-
this.sendshow =true
|
|
578
|
-
},
|
|
579
|
-
undo(){
|
|
580
|
-
this.sendselected ={
|
|
581
|
-
serviceacitivity:[
|
|
582
|
-
{
|
|
583
|
-
f_service_acitivity_type: '派单',
|
|
584
|
-
f_reciever:''
|
|
585
|
-
}
|
|
586
|
-
],
|
|
587
|
-
f_advice:''
|
|
588
|
-
}
|
|
589
|
-
this.sendshow = false
|
|
590
|
-
this.ifsearch()
|
|
591
|
-
},
|
|
592
|
-
makeAPhoneCall(phoneNumber) {
|
|
593
|
-
this.$androidUtil.makeAPhoneCall(phoneNumber)
|
|
594
|
-
},
|
|
595
|
-
showMore() {
|
|
596
|
-
if (!this.rows) {
|
|
597
|
-
return
|
|
598
|
-
}
|
|
599
|
-
let endIndex = this.listData.index + 10
|
|
600
|
-
if (endIndex > this.rows.length) {
|
|
601
|
-
endIndex = this.rows.length
|
|
602
|
-
}
|
|
603
|
-
for (; this.listData.index < endIndex; this.listData.index++) {
|
|
604
|
-
this.listData.list.push(this.rows[this.listData.index])
|
|
605
|
-
}
|
|
606
|
-
if(this.listData.index == this.rows.length){
|
|
607
|
-
this.listData.isEnd = true
|
|
608
|
-
}else {
|
|
609
|
-
this.listData.isEnd = false
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
},
|
|
613
|
-
ready () {
|
|
614
|
-
this.gerzone()
|
|
615
|
-
this.getEmp()
|
|
616
|
-
this.ifsearch()
|
|
617
|
-
},
|
|
618
|
-
components: {
|
|
619
|
-
FailureShow,
|
|
620
|
-
'failure-show': FailureShow
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
</script>
|
|
624
|
-
<style scoped>
|
|
625
|
-
/* 在 <style> 部分添加 */
|
|
626
|
-
.form-control-sm {
|
|
627
|
-
padding: 0.25rem 0.5rem;
|
|
628
|
-
font-size: 0.875rem;
|
|
629
|
-
}
|
|
630
|
-
|
|
631
|
-
.input-group-addon {
|
|
632
|
-
padding: 0.375rem 0.75rem;
|
|
633
|
-
font-weight: 500;
|
|
634
|
-
color: #666;
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
@media (max-width: 768px) {
|
|
638
|
-
.app-row .form-control {
|
|
639
|
-
width: 100%;
|
|
640
|
-
margin-bottom: 0.5rem;
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
.searBtn {
|
|
644
|
-
background: #FFFFFF;
|
|
645
|
-
color: #0096fb;
|
|
646
|
-
border: 1px solid #0096fb;
|
|
647
|
-
border-radius: 5px;
|
|
648
|
-
padding: 8px;
|
|
649
|
-
text-align: center;
|
|
650
|
-
font-size: 1.2em;
|
|
651
|
-
z-index: 10;
|
|
652
|
-
opacity:0.5;
|
|
653
|
-
bottom: 50px;
|
|
654
|
-
margin-top: -10px;
|
|
655
|
-
height: 40px;
|
|
656
|
-
}
|
|
657
|
-
.bg {
|
|
658
|
-
background-color: #499edf;
|
|
659
|
-
height: 1px;
|
|
660
|
-
border: 0;
|
|
661
|
-
}
|
|
662
|
-
.app-row {
|
|
663
|
-
background-color: white;
|
|
664
|
-
padding: 10px 10px 0 10px;
|
|
665
|
-
border-bottom: 1px solid rgba(235, 235, 235, 0.5);
|
|
666
|
-
}
|
|
667
|
-
.search_input {
|
|
668
|
-
border: 0;
|
|
669
|
-
outline: none;
|
|
670
|
-
}
|
|
671
|
-
.font{
|
|
672
|
-
font: 15px PingFang-SC-Medium;
|
|
673
|
-
color: #666666;
|
|
674
|
-
}
|
|
675
|
-
.input-font{
|
|
676
|
-
font: 15px PingFang-SC-Medium;
|
|
677
|
-
color: #333333;
|
|
678
|
-
}
|
|
679
|
-
.btn-font{
|
|
680
|
-
font:600 16px PingFang-SC-Bold;
|
|
681
|
-
color: #499EDF;
|
|
682
|
-
}
|
|
683
|
-
.btn-color{
|
|
684
|
-
background-color: #FFFFFF;
|
|
685
|
-
border-radius: 10px ;
|
|
686
|
-
border: 1px solid #499EDF;
|
|
687
|
-
}
|
|
688
|
-
.panel-blue-border {
|
|
689
|
-
border: 1px solid #499edf;
|
|
690
|
-
border-radius: 5px;
|
|
691
|
-
}
|
|
692
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div style="height: auto;width: 100%" class="repair-bg">
|
|
3
|
+
<div class="bq-parent">
|
|
4
|
+
<blockquote style="color: #499edf;border-left-color: #499edf;font-size: 16px">
|
|
5
|
+
<p>
|
|
6
|
+
待派发工单<span v-if="rows">({{rows.length}}单)</span>
|
|
7
|
+
<span v-if="!rows">(暂无待派发工单)</span>
|
|
8
|
+
</p>
|
|
9
|
+
</blockquote>
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
<div>
|
|
13
|
+
<form>
|
|
14
|
+
<!-- 查询条件-->
|
|
15
|
+
<div class="row app-row">
|
|
16
|
+
<div class="col-xs-4">
|
|
17
|
+
<img src="../../../assets/用户姓名-蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
18
|
+
<label for="f_userinfo_code" class="font text-left">用户姓名:</label>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="col-xs-8" >
|
|
21
|
+
<input type="text" v-model="username" placeholder='用户姓名'
|
|
22
|
+
class="search_input input-font" />
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="row app-row">
|
|
26
|
+
<div class="col-xs-4">
|
|
27
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
28
|
+
<label for="f_userinfo_code" class="font text-left">用户地址:</label>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="col-xs-8" >
|
|
31
|
+
<input type="text" id="f_userinfo_code" class="search_input input-font"
|
|
32
|
+
v-model="address" placeholder='用户地址' />
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="row app-row">
|
|
36
|
+
<div class="col-xs-4">
|
|
37
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
38
|
+
<label class="font text-left">接单站点:</label>
|
|
39
|
+
</div>
|
|
40
|
+
<input style="width: 60%" type="text" v-show="false" v-model="f_meetunit">
|
|
41
|
+
<right-tree islist :userid="userid" :source="source" v-on:re-res="reres2" >
|
|
42
|
+
</right-tree>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="row app-row" >
|
|
45
|
+
<div class="col-xs-4">
|
|
46
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
47
|
+
<label class="font text-left">维修区域:</label>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="col-xs-8" >
|
|
50
|
+
<v-select :value.sync="f_slice_area_id"
|
|
51
|
+
v-model="f_slice_area_id"
|
|
52
|
+
:options='sliceArea'
|
|
53
|
+
placeholder='请选择'
|
|
54
|
+
close-on-select
|
|
55
|
+
:multiple="false"
|
|
56
|
+
></v-select>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="row app-row" >
|
|
60
|
+
<div class="col-xs-4">
|
|
61
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
62
|
+
<label class="font text-left">报修类型:</label>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="col-xs-8" >
|
|
65
|
+
<v-select :value.sync="f_repairtype"
|
|
66
|
+
v-model="f_repairtype"
|
|
67
|
+
:options='baoxiuType'
|
|
68
|
+
placeholder='请选择'
|
|
69
|
+
close-on-select
|
|
70
|
+
:multiple="false"
|
|
71
|
+
></v-select>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
<div class="row app-row" >
|
|
75
|
+
<div class="col-xs-4">
|
|
76
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
77
|
+
<label class="font text-left">用户类型:</label>
|
|
78
|
+
</div>
|
|
79
|
+
<div class="col-xs-8" >
|
|
80
|
+
<v-select :value.sync="f_user_type"
|
|
81
|
+
v-model="f_user_type"
|
|
82
|
+
:options='userType'
|
|
83
|
+
placeholder='请选择'
|
|
84
|
+
:multiple="false"
|
|
85
|
+
close-on-select
|
|
86
|
+
></v-select>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="row app-row">
|
|
90
|
+
<div class="col-xs-4">
|
|
91
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
92
|
+
<label class="font text-left">截止时间:</label>
|
|
93
|
+
</div>
|
|
94
|
+
<div class="col-xs-8" style="display: flex; justify-content: space-between;">
|
|
95
|
+
<datepicker id="f_finish_date_start"
|
|
96
|
+
placeholder= '起始时间'
|
|
97
|
+
:value.sync="f_finish_date_start"
|
|
98
|
+
:disabled-days-of-Week="[]"
|
|
99
|
+
v-model="f_finish_date_start"
|
|
100
|
+
class="input-font"
|
|
101
|
+
style="width:60%"
|
|
102
|
+
:format="'yyyy-MM-dd 00:00:00'"
|
|
103
|
+
:show-reset-button="reset">
|
|
104
|
+
</datepicker>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="row app-row">
|
|
108
|
+
<div class="col-xs-4">
|
|
109
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
110
|
+
<label class="font text-left">截止时间:</label>
|
|
111
|
+
</div>
|
|
112
|
+
<div class="col-xs-8" style="display: flex; justify-content: space-between;">
|
|
113
|
+
<datepicker id="f_finish_date_end"
|
|
114
|
+
placeholder= '结束时间'
|
|
115
|
+
:value.sync="f_finish_date_end"
|
|
116
|
+
:disabled-days-of-Week="[]"
|
|
117
|
+
v-model="f_finish_date_end"
|
|
118
|
+
class="input-font"
|
|
119
|
+
style="width:60%"
|
|
120
|
+
:format="'yyyy-MM-dd 23:59:00'"
|
|
121
|
+
:show-reset-button="reset">
|
|
122
|
+
</datepicker>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
<div class="row app-row">
|
|
126
|
+
<div class="col-xs-4 col-sm-3">
|
|
127
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
128
|
+
<label class="font text-left">逾期天数:</label>
|
|
129
|
+
</div>
|
|
130
|
+
<div class="col-xs-8 col-sm-9">
|
|
131
|
+
<div class="row">
|
|
132
|
+
<div class="col-xs-4">
|
|
133
|
+
<input type="number" min="0" v-model.number="f_over_start"
|
|
134
|
+
class="form-control form-control-sm" placeholder="起始天数">
|
|
135
|
+
</div>
|
|
136
|
+
<div class="col-xs-2 text-center">
|
|
137
|
+
<span class="font">至</span>
|
|
138
|
+
</div>
|
|
139
|
+
<div class="col-xs-4">
|
|
140
|
+
<input type="number" min="0" v-model.number="f_over_end"
|
|
141
|
+
class="form-control form-control-sm" placeholder="结束天数">
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
<div class="row app-row">
|
|
147
|
+
<div class="col-xs-4">
|
|
148
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
149
|
+
<label for="f_userinfo_code" class="font text-left">报修内容:</label>
|
|
150
|
+
</div>
|
|
151
|
+
<div class="col-xs-8" >
|
|
152
|
+
<input type="text" id="f_userinfo_code" class="search_input input-font"
|
|
153
|
+
v-model="f_failure" placeholder='报修内容' />
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
<!-- 分割按钮和条件的高度 -->
|
|
157
|
+
<div class="row app-row" style="height: 10px;"></div>
|
|
158
|
+
<!-- 按钮 -->
|
|
159
|
+
<div class="row text-center app-row">
|
|
160
|
+
<button type="button" class="btn btn-lg btn-font btn-color" @click="ifsearch()" style="min-width: 25%;">查询</button>
|
|
161
|
+
</div>
|
|
162
|
+
<div style="height:30px;" class="app-row"></div>
|
|
163
|
+
</form>
|
|
164
|
+
</div>
|
|
165
|
+
<!-- 列表 -->
|
|
166
|
+
<div class="panel panel-default repair-info-content auto">
|
|
167
|
+
<div class="panel-body">
|
|
168
|
+
<div class="panel panel-default well panel-blue-border" :class="row.failure.indexOf('漏气') !== -1 ? 'class-a':''" v-for="row in listData.list" >
|
|
169
|
+
<div class="panel-body" style="padding: 10px">
|
|
170
|
+
<div class="row form-group">
|
|
171
|
+
<div class="col-sm-12 col-xs-12 col-md-12">
|
|
172
|
+
<div class="row" >
|
|
173
|
+
<div :class="{'text-danger': row.f_remindersign}" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
174
|
+
工单编号: {{row.f_service_id}}<span v-if="row.f_remindersign">(催单 {{row.f_reminderdata}}) </span>
|
|
175
|
+
</div>
|
|
176
|
+
<div :class="{'text-danger': row.f_remindersign}" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
177
|
+
接单站点: {{row.f_meetunit}}<span v-if="row.f_remindersign">(催单 {{row.f_reminderdata}}) </span>
|
|
178
|
+
</div>
|
|
179
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
180
|
+
派发时间: {{row.f_created_date}}
|
|
181
|
+
</div>
|
|
182
|
+
<div v-show="false" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="worktype == '置换通气单'||worktype == '安装单'">
|
|
183
|
+
预约时间: {{row.f_yuyue_date}}
|
|
184
|
+
</div>
|
|
185
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_repairtype">
|
|
186
|
+
报修类型: {{row.f_repairtype}}
|
|
187
|
+
</div>
|
|
188
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_finish_date">
|
|
189
|
+
截止天数: {{Math.floor((new Date(row.f_finish_date.substring(0,10)).getTime() - new Date(row.f_created_date.substring(0,10)).getTime()) / 86400000)}}
|
|
190
|
+
</div>
|
|
191
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_finish_date">
|
|
192
|
+
截止日期: {{row.f_finish_date}}
|
|
193
|
+
</div>
|
|
194
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_finish_date">
|
|
195
|
+
逾期天数:
|
|
196
|
+
{{Math.max(0, Math.floor((new Date().getTime() - new Date(row.f_finish_date.substring(0,10)).getTime()) / 86400000))}}
|
|
197
|
+
</div>
|
|
198
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_userinfo_code">
|
|
199
|
+
用户编号: {{row.f_userinfo_code}}
|
|
200
|
+
</div>
|
|
201
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.f_enter_number">
|
|
202
|
+
用户证号: {{row.f_enter_number}}
|
|
203
|
+
</div>
|
|
204
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
205
|
+
用户姓名: {{row.f_user_name}}
|
|
206
|
+
</div>
|
|
207
|
+
<div v-show="false" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
208
|
+
来电电话: {{row.f_phone}}
|
|
209
|
+
<img src="../../../assets/telphonesend.png" style="width: 12px;" @click.stop.prevent='makeAPhoneCall(row.f_phone)'>
|
|
210
|
+
</div>
|
|
211
|
+
<div class="col-sm-12 col-xs-12 col-md-12">
|
|
212
|
+
联系电话: {{row.f_contact_phone}}
|
|
213
|
+
<img src="../../../assets/telphonesend.png" style="width: 12px;" @click.stop.prevent='makeAPhoneCall(row.f_contact_phone)'>
|
|
214
|
+
</div>
|
|
215
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
216
|
+
用户地址: {{row.f_address}}
|
|
217
|
+
</div>
|
|
218
|
+
<div v-show="row.f_remarks" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
|
|
219
|
+
备注信息: {{row.f_remarks}}
|
|
220
|
+
</div>
|
|
221
|
+
<div class="col-sm-12 col-xs-12 col-md-12 padd-div-shu" v-if="row.failure">
|
|
222
|
+
<failure-show :value='row.failure'>
|
|
223
|
+
</failure-show>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
<div class="col-sm-12 col-xs-12 col-md-12">
|
|
228
|
+
<button type="button" name="button" class="btn btn-primary btn-sm" style="float: right;margin-right: 5px;" @click="selected(row)">下派</button>
|
|
229
|
+
<button type="button" name="button" class="btn btn-primary btn-sm" style="float: right;margin-right: 5px;" @click="returnOrder(row)">退回</button>
|
|
230
|
+
<button type="button" name="button" class="btn btn-primary btn-sm" style="float: right;margin-right: 5px;" @click="caseend(row)">结案</button>
|
|
231
|
+
</div>
|
|
232
|
+
</div>
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
235
|
+
<div style="height:auto;width: 100%;text-align: center">
|
|
236
|
+
<a v-if="!listData.isEnd" @click="showMore()">展开更多......</a>
|
|
237
|
+
<span v-if="listData.isEnd">到底了......</span>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
<modal :show.sync="return_modal" v-ref:modalCase backdrop="false">
|
|
241
|
+
<header slot="modal-header" class="modal-header">
|
|
242
|
+
工单退回
|
|
243
|
+
</header>
|
|
244
|
+
<article slot="modal-body" class="modal-body">
|
|
245
|
+
<div class="col-sm-12 form-group">
|
|
246
|
+
<label class="control-label col-sm-2">退回备注</label>
|
|
247
|
+
<div class="col-sm-9">
|
|
248
|
+
<input class="form-control" type="text" v-model="return_modal_data.serviceacitivity[0].f_site_back_reason"/>
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
</article>
|
|
252
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
253
|
+
<button type="button" class="btn btn-success" @click='returnOrderBack()'>确定</button>
|
|
254
|
+
<button type="button" class="btn btn-success" @click='returnModalClose()'>关闭</button>
|
|
255
|
+
</footer>
|
|
256
|
+
</modal>
|
|
257
|
+
<modal :show.sync="sendshow" v-ref:modal :backdrop="false">
|
|
258
|
+
<div slot="modal-header" class="modal-header">
|
|
259
|
+
<h4 class="modal-title">
|
|
260
|
+
派发工单
|
|
261
|
+
</h4>
|
|
262
|
+
</div>
|
|
263
|
+
<div slot="modal-body" class="modal-body">
|
|
264
|
+
<div class="row" style="margin-top: 6px">
|
|
265
|
+
<label class="col-xs-4 col-md-4 control-label font text-left">派单方式</label>
|
|
266
|
+
<div class="col-xs-8">
|
|
267
|
+
<v-select :value-single="true" :value.sync="f_handlingtype" v-model="f_handlingtype"
|
|
268
|
+
:options='repairerType' placeholder='请选择派单方式'
|
|
269
|
+
close-on-select></v-select>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
<div class="row" style="margin-top: 6px" v-if="f_handlingtype == '转维修员'">
|
|
273
|
+
<label class="col-xs-4 col-md-4 control-label font text-left">维修员</label>
|
|
274
|
+
<div class="col-xs-8">
|
|
275
|
+
<v-select :value="sendselected.serviceacitivity[0].f_reciever" :value-single="true"
|
|
276
|
+
:options='repairers' placeholder='请选择维修员'
|
|
277
|
+
close-on-select v-on:change="repiarmancg"></v-select>
|
|
278
|
+
</div>
|
|
279
|
+
</div>
|
|
280
|
+
<div class="row" style="margin-top: 6px" v-if="f_handlingtype == '转站点'">
|
|
281
|
+
<label class="col-xs-4 col-md-4 control-label font text-left">站点</label>
|
|
282
|
+
<input style="width: 60%" type="text" v-show="false" v-model="sendselected.serviceacitivity[0].f_reciever">
|
|
283
|
+
<right-tree islist :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员">
|
|
284
|
+
|
|
285
|
+
</right-tree>
|
|
286
|
+
</div>
|
|
287
|
+
<div class="row" style="margin-top: 6px">
|
|
288
|
+
<label class="control-label font text-left col-md-4 col-xs-4">备注</label>
|
|
289
|
+
<div class="col-xs-8 col-md-8">
|
|
290
|
+
<input type="text" v-model="sendselected.f_advice"/>
|
|
291
|
+
</div>
|
|
292
|
+
</div>
|
|
293
|
+
</div>
|
|
294
|
+
<div slot="modal-footer" class="modal-footer">
|
|
295
|
+
<button type="button" class="btn btn-default" @click="worksend()">确定</button>
|
|
296
|
+
<button type="button" class="btn btn-default" @click="undo()">取消</button>
|
|
297
|
+
</div>
|
|
298
|
+
</modal>
|
|
299
|
+
<modal :show.sync="caseshow" v-ref:modalCase backdrop="false">
|
|
300
|
+
<header slot="modal-header" class="modal-header">
|
|
301
|
+
工单结案
|
|
302
|
+
</header>
|
|
303
|
+
<article slot="modal-body" class="modal-body">
|
|
304
|
+
<div class="col-sm-12 form-group">
|
|
305
|
+
<label class="control-label col-sm-2">结案备注</label>
|
|
306
|
+
<div class="col-sm-9">
|
|
307
|
+
<input class="form-control" type="text" v-model="f_caseremarks"/>
|
|
308
|
+
</div>
|
|
309
|
+
</div>
|
|
310
|
+
</article>
|
|
311
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
312
|
+
<button type="button" class="btn btn-success" @click='caseok'>确定</button>
|
|
313
|
+
<button type="button" class="btn btn-success" @click='caseclose'>关闭</button>
|
|
314
|
+
</footer>
|
|
315
|
+
</modal>
|
|
316
|
+
</div>
|
|
317
|
+
</div>
|
|
318
|
+
</template>
|
|
319
|
+
<script>
|
|
320
|
+
import FailureShow from '../../../components/pc/FailureShow'
|
|
321
|
+
import { HttpResetClass } from 'vue-client'
|
|
322
|
+
import Vue from 'vue'
|
|
323
|
+
import * as Util from "../../../components/Util";
|
|
324
|
+
|
|
325
|
+
export default{
|
|
326
|
+
title: '移动端站点派发',
|
|
327
|
+
data () {
|
|
328
|
+
return {
|
|
329
|
+
return_modal:false,
|
|
330
|
+
return_modal_data:{},
|
|
331
|
+
userid: Vue.user.id,
|
|
332
|
+
source:
|
|
333
|
+
'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
|
|
334
|
+
'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
|
|
335
|
+
repairName: '',
|
|
336
|
+
f_handlingtype:'转维修员',
|
|
337
|
+
baoxiuType:this.$appdata.getParam('报修类型'),
|
|
338
|
+
repairerType:[{label: '转维修员', value: '转维修员'}, {label: '转站点', value: '转站点'}],
|
|
339
|
+
userType:[{label: '全部', value: ''},{label: '民用', value: '民用'}, {label: '非民用', value: '非民用'}],
|
|
340
|
+
repairerStands:[],
|
|
341
|
+
f_caseremarks:'',
|
|
342
|
+
selectone:'',
|
|
343
|
+
rows: [],
|
|
344
|
+
sliceArea :[],
|
|
345
|
+
username:'',
|
|
346
|
+
address:'',
|
|
347
|
+
f_meetunit: '',
|
|
348
|
+
f_slice_area_id: '',
|
|
349
|
+
f_user_type: '',
|
|
350
|
+
f_finish_date_start: '',
|
|
351
|
+
f_finish_date_end: '',
|
|
352
|
+
f_over_start: '',
|
|
353
|
+
f_over_end: '',
|
|
354
|
+
f_failure:'',
|
|
355
|
+
sendshow:false,
|
|
356
|
+
repairers: [],
|
|
357
|
+
areas: [],
|
|
358
|
+
caseshow:false,
|
|
359
|
+
sendselected:{
|
|
360
|
+
serviceacitivity:[
|
|
361
|
+
{
|
|
362
|
+
f_service_acitivity_type: '派单',
|
|
363
|
+
f_reciever:''
|
|
364
|
+
}
|
|
365
|
+
],
|
|
366
|
+
f_advice:''
|
|
367
|
+
},
|
|
368
|
+
number:0,
|
|
369
|
+
listData: {
|
|
370
|
+
list: [],
|
|
371
|
+
isEnd: true,
|
|
372
|
+
index: 0
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
props: {
|
|
377
|
+
},
|
|
378
|
+
methods: {
|
|
379
|
+
gerzone(){
|
|
380
|
+
new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
|
|
381
|
+
items: 'name,id',
|
|
382
|
+
tablename: 't_zone',
|
|
383
|
+
condition: `f_orgid='${ Vue.user.orgid}'`,
|
|
384
|
+
orderitem: 'id'
|
|
385
|
+
}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
386
|
+
this.sliceArea=[]
|
|
387
|
+
this.sliceArea.push({
|
|
388
|
+
label:'全部',
|
|
389
|
+
value:''
|
|
390
|
+
})
|
|
391
|
+
res.data.forEach(ress=>{
|
|
392
|
+
this.sliceArea.push({
|
|
393
|
+
label:ress.name,
|
|
394
|
+
value:ress.id
|
|
395
|
+
})
|
|
396
|
+
})
|
|
397
|
+
})
|
|
398
|
+
},
|
|
399
|
+
returnOrderBack(){
|
|
400
|
+
new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/logic/siteBack`, {model: this.return_modal_data, loginUser: {name: Vue.user.name, ename: Vue.user.ename, id: Vue.user.id}}).then((res) => {
|
|
401
|
+
this.returnModalClose()
|
|
402
|
+
this.$showMessage(`退回成功`)
|
|
403
|
+
})
|
|
404
|
+
},
|
|
405
|
+
returnModalClose(){
|
|
406
|
+
this.return_modal_data = {}
|
|
407
|
+
this.return_modal = false
|
|
408
|
+
},
|
|
409
|
+
returnOrder(row){
|
|
410
|
+
row.serviceacitivity = [
|
|
411
|
+
{
|
|
412
|
+
"f_service_acitivity_type": "打回",
|
|
413
|
+
"f_site_back_reason": ""
|
|
414
|
+
}
|
|
415
|
+
]
|
|
416
|
+
this.return_modal_data = row
|
|
417
|
+
this.return_modal = true
|
|
418
|
+
},
|
|
419
|
+
reres(val){
|
|
420
|
+
if(val.res == undefined || val.res[0] == undefined || val.res[0] == ''){
|
|
421
|
+
return
|
|
422
|
+
}
|
|
423
|
+
this.sendselected.serviceacitivity[0].f_meetunit = val.res[0]
|
|
424
|
+
this.sendselected.f_meetunit = val.res[0]
|
|
425
|
+
this.sendselected.f_filiale_id = val.orgobj[0].parentid
|
|
426
|
+
this.sendselected.f_filiale = val.orgobj[0].parentname
|
|
427
|
+
this.sendselected.f_outlets = val.res[0]
|
|
428
|
+
this.sendselected.serviceacitivity[0].f_reciever = val.resids[0]
|
|
429
|
+
},
|
|
430
|
+
reres2(val){
|
|
431
|
+
if(val.res == undefined || val.res[0] == undefined || val.res[0] == ''){
|
|
432
|
+
return
|
|
433
|
+
}
|
|
434
|
+
this.f_meetunit=val.res[0]
|
|
435
|
+
},
|
|
436
|
+
caseend(val){
|
|
437
|
+
this.selectone = val
|
|
438
|
+
this.caseshow = true
|
|
439
|
+
},
|
|
440
|
+
// 结案确认
|
|
441
|
+
caseok(){
|
|
442
|
+
// 工单结案操作
|
|
443
|
+
let data = {model: this.selectone, loginUser: {name: Vue.user.name, ename: Vue.user.ename},f_caseremarks:this.f_caseremarks}
|
|
444
|
+
let HttpReset1 = new HttpResetClass()
|
|
445
|
+
// 将数据发送给业务逻辑
|
|
446
|
+
HttpReset1.load('POST',`${this.$androidUtil.getProxyUrl()}/af-telephone/rs/logic/serviceCase`, data).then((res) => {
|
|
447
|
+
this.f_caseremarks = ''
|
|
448
|
+
this.caseshow = false
|
|
449
|
+
this.ifsearch()
|
|
450
|
+
})
|
|
451
|
+
},
|
|
452
|
+
// 结案返回
|
|
453
|
+
caseclose(){
|
|
454
|
+
this.f_caseremarks = ''
|
|
455
|
+
this.caseshow = false
|
|
456
|
+
this.selectone = ''
|
|
457
|
+
},
|
|
458
|
+
worksend() {
|
|
459
|
+
if (!this.sendselected.serviceacitivity[0].f_reciever) {
|
|
460
|
+
this.$showMessage(`请选择接单人员!`, ['confirm'])
|
|
461
|
+
return
|
|
462
|
+
}
|
|
463
|
+
let data = {
|
|
464
|
+
model: this.sendselected,
|
|
465
|
+
loginUser: {name: Vue.user.name, ename: Vue.user.ename},
|
|
466
|
+
f_handlingtype: this.f_handlingtype
|
|
467
|
+
}
|
|
468
|
+
let HttpReset = new HttpResetClass()
|
|
469
|
+
// 将数据发送给业务逻辑
|
|
470
|
+
HttpReset.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/logic/siteSend`, data).then((res) => {
|
|
471
|
+
if (res.data.code == 300) {
|
|
472
|
+
this.sendshow = false
|
|
473
|
+
this.sendselected = {
|
|
474
|
+
serviceacitivity: [
|
|
475
|
+
{
|
|
476
|
+
f_service_acitivity_type: '派单',
|
|
477
|
+
f_reciever: ''
|
|
478
|
+
}
|
|
479
|
+
],
|
|
480
|
+
f_advice: ''
|
|
481
|
+
}
|
|
482
|
+
this.ifsearch()
|
|
483
|
+
this.$showMessage(`该单已被派发!`, ['confirm'])
|
|
484
|
+
return
|
|
485
|
+
} else {
|
|
486
|
+
this.sendshow = false
|
|
487
|
+
this.sendselected = {
|
|
488
|
+
serviceacitivity: [
|
|
489
|
+
{
|
|
490
|
+
f_service_acitivity_type: '派单',
|
|
491
|
+
f_reciever: ''
|
|
492
|
+
}
|
|
493
|
+
],
|
|
494
|
+
f_advice: ''
|
|
495
|
+
}
|
|
496
|
+
this.ifsearch()
|
|
497
|
+
this.$showMessage(`派发成功!`, ['confirm'])
|
|
498
|
+
return
|
|
499
|
+
}
|
|
500
|
+
})
|
|
501
|
+
},
|
|
502
|
+
repiarmancg(val){
|
|
503
|
+
this.sendselected.serviceacitivity[0].f_reciever = val
|
|
504
|
+
},
|
|
505
|
+
// 获取维修员
|
|
506
|
+
getEmp () {
|
|
507
|
+
// 获取接单人数组
|
|
508
|
+
let http = new HttpResetClass()
|
|
509
|
+
var val = {source: `this.getParentByType($organization$).getChildByName($维修员$).getUsers()`, userid: `${Vue.user.id}`}
|
|
510
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
511
|
+
res.data.forEach((item) => {
|
|
512
|
+
this.repairers.push({label: `${item.name}`, value: item.name})
|
|
513
|
+
})
|
|
514
|
+
})
|
|
515
|
+
},
|
|
516
|
+
ifsearch(){
|
|
517
|
+
this.listData.list = []
|
|
518
|
+
this.listData.index = 0
|
|
519
|
+
this.listData.isEnd = true
|
|
520
|
+
var condition = `1 = 1 and tswo.f_workorder_type = '报修单'`
|
|
521
|
+
if(this.username != ''){
|
|
522
|
+
condition += " and tswo.f_user_name like '%" + this.username + "%'"
|
|
523
|
+
}
|
|
524
|
+
if(this.address != ''){
|
|
525
|
+
condition += " and tswo.f_address like '%" + this.address + "%'"
|
|
526
|
+
}
|
|
527
|
+
if(this.f_meetunit != ''){
|
|
528
|
+
condition += `and ts.f_meetunit = '${this.f_meetunit}' `
|
|
529
|
+
}
|
|
530
|
+
if(this.f_repairtype != ''){
|
|
531
|
+
condition += `and tswo.f_repairtype = '${this.f_repairtype}' `
|
|
532
|
+
}
|
|
533
|
+
if(this.f_user_type != ''){
|
|
534
|
+
condition += `and tswo.f_user_type = '${this.f_user_type}' `
|
|
535
|
+
}
|
|
536
|
+
if(this.f_finish_date_start != ''){
|
|
537
|
+
condition += `and tswo.f_finish_date >= '${this.f_finish_date_start}' `
|
|
538
|
+
}
|
|
539
|
+
if(this.f_finish_date_end != ''){
|
|
540
|
+
condition += `and tswo.f_finish_date <= '${this.f_finish_date_end}' `
|
|
541
|
+
}
|
|
542
|
+
if(this.f_slice_area_id != ''){
|
|
543
|
+
condition += `and tua.f_slice_area_id = '${this.f_slice_area_id}' `
|
|
544
|
+
}
|
|
545
|
+
if(this.f_failure != ''){
|
|
546
|
+
condition += `and tswo.failure_str like '%${this.f_failure}%' `
|
|
547
|
+
}
|
|
548
|
+
// 逾期天数筛选(SQL Server 语法)
|
|
549
|
+
if (this.f_over_start !== '' || this.f_over_end !== '') {
|
|
550
|
+
const dateDiffExpr = `DATEDIFF(DAY, CONVERT(DATE, tswo.f_finish_date), CONVERT(DATE, GETDATE()))`;
|
|
551
|
+
if (this.f_over_start !== '' && this.f_over_end !== '') {
|
|
552
|
+
// 区间筛选
|
|
553
|
+
condition += ` AND ${dateDiffExpr} BETWEEN ${this.f_over_start} AND ${this.f_over_end}`;
|
|
554
|
+
} else if (this.f_over_start !== '') {
|
|
555
|
+
// 最小逾期天数
|
|
556
|
+
condition += ` AND ${dateDiffExpr} >= ${this.f_over_start}`;
|
|
557
|
+
} else if (this.f_over_end !== '') {
|
|
558
|
+
// 最大逾期天数
|
|
559
|
+
condition += ` AND ${dateDiffExpr} <= ${this.f_over_end}`;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
var val = {
|
|
563
|
+
condition:{
|
|
564
|
+
condition:condition,
|
|
565
|
+
sign:'1 = 1'
|
|
566
|
+
},
|
|
567
|
+
userid:Vue.user.name
|
|
568
|
+
}
|
|
569
|
+
let http = new HttpResetClass()
|
|
570
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/operatorServiceNew`, {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
571
|
+
this.rows = res.data
|
|
572
|
+
this.showMore()
|
|
573
|
+
})
|
|
574
|
+
},
|
|
575
|
+
selected (row) {
|
|
576
|
+
this.sendselected = Object.assign({}, this.sendselected, row)
|
|
577
|
+
this.sendshow =true
|
|
578
|
+
},
|
|
579
|
+
undo(){
|
|
580
|
+
this.sendselected ={
|
|
581
|
+
serviceacitivity:[
|
|
582
|
+
{
|
|
583
|
+
f_service_acitivity_type: '派单',
|
|
584
|
+
f_reciever:''
|
|
585
|
+
}
|
|
586
|
+
],
|
|
587
|
+
f_advice:''
|
|
588
|
+
}
|
|
589
|
+
this.sendshow = false
|
|
590
|
+
this.ifsearch()
|
|
591
|
+
},
|
|
592
|
+
makeAPhoneCall(phoneNumber) {
|
|
593
|
+
this.$androidUtil.makeAPhoneCall(phoneNumber)
|
|
594
|
+
},
|
|
595
|
+
showMore() {
|
|
596
|
+
if (!this.rows) {
|
|
597
|
+
return
|
|
598
|
+
}
|
|
599
|
+
let endIndex = this.listData.index + 10
|
|
600
|
+
if (endIndex > this.rows.length) {
|
|
601
|
+
endIndex = this.rows.length
|
|
602
|
+
}
|
|
603
|
+
for (; this.listData.index < endIndex; this.listData.index++) {
|
|
604
|
+
this.listData.list.push(this.rows[this.listData.index])
|
|
605
|
+
}
|
|
606
|
+
if(this.listData.index == this.rows.length){
|
|
607
|
+
this.listData.isEnd = true
|
|
608
|
+
}else {
|
|
609
|
+
this.listData.isEnd = false
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
ready () {
|
|
614
|
+
this.gerzone()
|
|
615
|
+
this.getEmp()
|
|
616
|
+
this.ifsearch()
|
|
617
|
+
},
|
|
618
|
+
components: {
|
|
619
|
+
FailureShow,
|
|
620
|
+
'failure-show': FailureShow
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
</script>
|
|
624
|
+
<style scoped>
|
|
625
|
+
/* 在 <style> 部分添加 */
|
|
626
|
+
.form-control-sm {
|
|
627
|
+
padding: 0.25rem 0.5rem;
|
|
628
|
+
font-size: 0.875rem;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
.input-group-addon {
|
|
632
|
+
padding: 0.375rem 0.75rem;
|
|
633
|
+
font-weight: 500;
|
|
634
|
+
color: #666;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
@media (max-width: 768px) {
|
|
638
|
+
.app-row .form-control {
|
|
639
|
+
width: 100%;
|
|
640
|
+
margin-bottom: 0.5rem;
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
.searBtn {
|
|
644
|
+
background: #FFFFFF;
|
|
645
|
+
color: #0096fb;
|
|
646
|
+
border: 1px solid #0096fb;
|
|
647
|
+
border-radius: 5px;
|
|
648
|
+
padding: 8px;
|
|
649
|
+
text-align: center;
|
|
650
|
+
font-size: 1.2em;
|
|
651
|
+
z-index: 10;
|
|
652
|
+
opacity:0.5;
|
|
653
|
+
bottom: 50px;
|
|
654
|
+
margin-top: -10px;
|
|
655
|
+
height: 40px;
|
|
656
|
+
}
|
|
657
|
+
.bg {
|
|
658
|
+
background-color: #499edf;
|
|
659
|
+
height: 1px;
|
|
660
|
+
border: 0;
|
|
661
|
+
}
|
|
662
|
+
.app-row {
|
|
663
|
+
background-color: white;
|
|
664
|
+
padding: 10px 10px 0 10px;
|
|
665
|
+
border-bottom: 1px solid rgba(235, 235, 235, 0.5);
|
|
666
|
+
}
|
|
667
|
+
.search_input {
|
|
668
|
+
border: 0;
|
|
669
|
+
outline: none;
|
|
670
|
+
}
|
|
671
|
+
.font{
|
|
672
|
+
font: 15px PingFang-SC-Medium;
|
|
673
|
+
color: #666666;
|
|
674
|
+
}
|
|
675
|
+
.input-font{
|
|
676
|
+
font: 15px PingFang-SC-Medium;
|
|
677
|
+
color: #333333;
|
|
678
|
+
}
|
|
679
|
+
.btn-font{
|
|
680
|
+
font:600 16px PingFang-SC-Bold;
|
|
681
|
+
color: #499EDF;
|
|
682
|
+
}
|
|
683
|
+
.btn-color{
|
|
684
|
+
background-color: #FFFFFF;
|
|
685
|
+
border-radius: 10px ;
|
|
686
|
+
border: 1px solid #499EDF;
|
|
687
|
+
}
|
|
688
|
+
.panel-blue-border {
|
|
689
|
+
border: 1px solid #499edf;
|
|
690
|
+
border-radius: 5px;
|
|
691
|
+
}
|
|
692
|
+
</style>
|