telephone-clients 4.0.0-1-89 → 4.0.0-1-90
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 +1103 -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,477 +1,477 @@
|
|
|
1
|
-
<style scoped>
|
|
2
|
-
.bg {
|
|
3
|
-
background-color: blue;
|
|
4
|
-
height: 1px;
|
|
5
|
-
border: 0;
|
|
6
|
-
}
|
|
7
|
-
.app-row {
|
|
8
|
-
background-color: white;
|
|
9
|
-
padding: 10px 10px 0 10px;
|
|
10
|
-
border-bottom: 1px solid rgba(235, 235, 235, 0.5);
|
|
11
|
-
}
|
|
12
|
-
.search_input {
|
|
13
|
-
border: 0;
|
|
14
|
-
outline: none;
|
|
15
|
-
}
|
|
16
|
-
.font{
|
|
17
|
-
font: 15px PingFang-SC-Medium;
|
|
18
|
-
color: #666666;
|
|
19
|
-
}
|
|
20
|
-
.input-font{
|
|
21
|
-
font: 15px PingFang-SC-Medium;
|
|
22
|
-
color: #333333;
|
|
23
|
-
}
|
|
24
|
-
.btn-font{
|
|
25
|
-
font:600 16px PingFang-SC-Bold;
|
|
26
|
-
color: #499EDF;
|
|
27
|
-
}
|
|
28
|
-
.btn-color{
|
|
29
|
-
background-color: #FFFFFF;
|
|
30
|
-
border-radius: 10px ;
|
|
31
|
-
border: 1px solid #499EDF;
|
|
32
|
-
}
|
|
33
|
-
.app-text {
|
|
34
|
-
font-size: 12px;
|
|
35
|
-
}
|
|
36
|
-
.panel-self{
|
|
37
|
-
border-radius: 10px;
|
|
38
|
-
border:1px solid #499EDF;
|
|
39
|
-
background-color: #F8F8F8;
|
|
40
|
-
}
|
|
41
|
-
.yybtn-color{
|
|
42
|
-
background-color:#499edf;
|
|
43
|
-
border-radius: 4px ;
|
|
44
|
-
border: 1px solid #499EDF;
|
|
45
|
-
color: #FFFFFF;
|
|
46
|
-
font: 14px PingFang-SC-Bold;
|
|
47
|
-
}
|
|
48
|
-
.qxbtn-color{
|
|
49
|
-
background-color: #FFFFFF;
|
|
50
|
-
border-radius: 4px ;
|
|
51
|
-
color: #499edf;
|
|
52
|
-
font: 14px PingFang-SC-Bold;
|
|
53
|
-
border: 1px solid #499EDF;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.button_shrink_top {width: 35px; height: 35px; background-size:100%;background-image: url("../../../../static/newStyle/stretch_top.png")}
|
|
57
|
-
.button_shrink_bottom {width: 35px; height: 35px; background-size:100%;background-image: url("../../../../static/newStyle/stretch_bottom.png")}
|
|
58
|
-
.button_shrink_left {width: 35px; height: 35px; background-size:100%;background-image: url("../../../../static/newStyle/stretch_left.png")}
|
|
59
|
-
.button_shrink_right {width: 35px; height: 35px; background-size:100%;background-image: url("../../../../static/newStyle/stretch_right.png")}
|
|
60
|
-
</style>
|
|
61
|
-
|
|
62
|
-
<template>
|
|
63
|
-
<div style="height: auto;width: 100%">
|
|
64
|
-
<criteria-paged :model="model" v-ref:paged>
|
|
65
|
-
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
66
|
-
<div partial>
|
|
67
|
-
<div class="row app-row">
|
|
68
|
-
<div class="col-xs-4">
|
|
69
|
-
<img src="../../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
70
|
-
<label class="font text-left">用户姓名:</label>
|
|
71
|
-
</div>
|
|
72
|
-
<div class="col-xs-8" >
|
|
73
|
-
<input class="search_input input-font" v-model=model.f_user_name condition="f_user_name like '%{}%'" />
|
|
74
|
-
</div>
|
|
75
|
-
</div>
|
|
76
|
-
<div class="row app-row">
|
|
77
|
-
<div class="col-xs-4">
|
|
78
|
-
<img src="../../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
79
|
-
<label class="font text-left">话务员:</label>
|
|
80
|
-
</div>
|
|
81
|
-
<div class="col-xs-8" >
|
|
82
|
-
<input class="search_input input-font" v-model=model.f_attendant condition="f_attendant like '%{}%'" />
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
<div class="row app-row">
|
|
86
|
-
<div class="col-xs-4">
|
|
87
|
-
<img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
88
|
-
<label for="f_userinfo_code" class="font text-left">用户编号:</label>
|
|
89
|
-
</div>
|
|
90
|
-
<div class="col-xs-8" >
|
|
91
|
-
<input id="f_userinfo_code" class="search_input input-font"
|
|
92
|
-
v-model=model.f_userinfo_code condition="f_userinfo_code = '%{}%'" />
|
|
93
|
-
</div>
|
|
94
|
-
</div>
|
|
95
|
-
<div class="row app-row" >
|
|
96
|
-
<div class="col-xs-4">
|
|
97
|
-
<img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
98
|
-
<label class="font text-left">用户地址:</label>
|
|
99
|
-
</div>
|
|
100
|
-
<div class="col-xs-8" >
|
|
101
|
-
<input class="search_input input-font"
|
|
102
|
-
v-model=model.f_address condition="f_address like '%{}%'" />
|
|
103
|
-
</div>
|
|
104
|
-
</div>
|
|
105
|
-
<div class="row app-row">
|
|
106
|
-
<div class="col-xs-4">
|
|
107
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
108
|
-
<label class="font text-left">工单编号:</label>
|
|
109
|
-
</div>
|
|
110
|
-
<div class="col-xs-8" >
|
|
111
|
-
<input class="search_input input-font" v-model=model.f_service_id condition="f_service_id like '%{}%'" />
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
<div class="row app-row">
|
|
115
|
-
<div class="col-xs-4">
|
|
116
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
117
|
-
<label class="font text-left">来电电话:</label>
|
|
118
|
-
</div>
|
|
119
|
-
<div class="col-xs-8" >
|
|
120
|
-
<input class="search_input input-font"
|
|
121
|
-
v-model=model.f_phone condition="f_phone = '%{}%'" />
|
|
122
|
-
</div>
|
|
123
|
-
</div>
|
|
124
|
-
|
|
125
|
-
<div class="row app-row">
|
|
126
|
-
<div class="col-xs-4">
|
|
127
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
128
|
-
<label for="f_state" class="font text-left">起始时间:</label>
|
|
129
|
-
</div>
|
|
130
|
-
<datepicker id="f_start_date"
|
|
131
|
-
placeholder= '起始时间'
|
|
132
|
-
:value.sync="model.f_start_date"
|
|
133
|
-
:disabled-days-of-Week="[]"
|
|
134
|
-
v-model="model.f_start_date"
|
|
135
|
-
class="input-font"
|
|
136
|
-
style="width:60%"
|
|
137
|
-
condition="f_created_date > '{}'"
|
|
138
|
-
:format="'yyyy-MM-dd 00:00:00'"
|
|
139
|
-
:show-reset-button="reset">
|
|
140
|
-
</datepicker>
|
|
141
|
-
</div>
|
|
142
|
-
<div class="row app-row">
|
|
143
|
-
<div class="col-xs-4">
|
|
144
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
145
|
-
<label for="f_state" class="font text-left">结束时间:</label>
|
|
146
|
-
</div>
|
|
147
|
-
<datepicker id="f_end_date"
|
|
148
|
-
placeholder= '结束时间'
|
|
149
|
-
:value.sync="model.f_end_date"
|
|
150
|
-
:disabled-days-of-Week="[]"
|
|
151
|
-
v-model="model.f_end_date"
|
|
152
|
-
class="input-font"
|
|
153
|
-
style="width:60%"
|
|
154
|
-
condition="f_created_date < '{}'"
|
|
155
|
-
:format="'yyyy-MM-dd 23:59:00'"
|
|
156
|
-
:show-reset-button="reset">
|
|
157
|
-
</datepicker>
|
|
158
|
-
</div>
|
|
159
|
-
<div class="row app-row">
|
|
160
|
-
<div class="col-xs-4">
|
|
161
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
162
|
-
<label for="f_state" class="font text-left">完工时间:</label>
|
|
163
|
-
</div>
|
|
164
|
-
<datepicker id="f_start_date"
|
|
165
|
-
placeholder= '起始时间'
|
|
166
|
-
:value.sync="model.f_start_date1"
|
|
167
|
-
:disabled-days-of-Week="[]"
|
|
168
|
-
v-model="model.f_start_date1"
|
|
169
|
-
class="input-font"
|
|
170
|
-
style="width:60%"
|
|
171
|
-
condition="f_date > '{}'"
|
|
172
|
-
:format="'yyyy-MM-dd 00:00:00'"
|
|
173
|
-
:show-reset-button="reset">
|
|
174
|
-
</datepicker>
|
|
175
|
-
</div>
|
|
176
|
-
<div class="row app-row">
|
|
177
|
-
<div class="col-xs-4">
|
|
178
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
179
|
-
<label for="f_state" class="font text-left">完工时间:</label>
|
|
180
|
-
</div>
|
|
181
|
-
<datepicker id="f_end_date"
|
|
182
|
-
placeholder= '结束时间'
|
|
183
|
-
:value.sync="model.f_end_date1"
|
|
184
|
-
:disabled-days-of-Week="[]"
|
|
185
|
-
v-model="model.f_end_date1"
|
|
186
|
-
class="input-font"
|
|
187
|
-
style="width:60%"
|
|
188
|
-
condition="f_date < '{}'"
|
|
189
|
-
:format="'yyyy-MM-dd 23:59:00'"
|
|
190
|
-
:show-reset-button="reset">
|
|
191
|
-
</datepicker>
|
|
192
|
-
</div>
|
|
193
|
-
<div class="row app-row">
|
|
194
|
-
<div class="col-xs-4">
|
|
195
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
196
|
-
<label for="safechecktype" class="font text-left">报修类型:</label>
|
|
197
|
-
</div>
|
|
198
|
-
<v-select id="safechecktype" :value.sync="model.f_repairtype" class="input-font"
|
|
199
|
-
:width="'60%'"
|
|
200
|
-
:options='$parent.$parent.repairtypes' placeholder='请选择报修类型'
|
|
201
|
-
v-model="model.f_repairtype" condition="f_repairtype ='{}'" close-on-select clear-button></v-select>
|
|
202
|
-
</div>
|
|
203
|
-
<div class="row app-row">
|
|
204
|
-
<div class="col-xs-4">
|
|
205
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
206
|
-
<label for="safechecktype" class="font text-left">工单状态:</label>
|
|
207
|
-
</div>
|
|
208
|
-
<v-select id="safechecktype" :value.sync="model.defname" class="input-font"
|
|
209
|
-
:width="'60%'"
|
|
210
|
-
:options='$parent.$parent.defnames' placeholder='请选择工单状态'
|
|
211
|
-
v-model="model.defname" condition="sa.defname = '{}'" close-on-select clear-button></v-select>
|
|
212
|
-
</div>
|
|
213
|
-
<div class="row app-row">
|
|
214
|
-
<div class="col-xs-4">
|
|
215
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
216
|
-
<label for="safechecktype" class="font text-left">故障类型:</label>
|
|
217
|
-
</div>
|
|
218
|
-
<v-select :value.sync="model.failure"
|
|
219
|
-
:multiple="true"
|
|
220
|
-
:options='$parent.$parent.failures'
|
|
221
|
-
placeholder='故障类型'
|
|
222
|
-
class="input-font"
|
|
223
|
-
:width="'60%'"
|
|
224
|
-
@change="$parent.$parent.getFailures"></v-select>
|
|
225
|
-
</div>
|
|
226
|
-
<div class="row app-row">
|
|
227
|
-
<div class="col-xs-4">
|
|
228
|
-
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
229
|
-
<label for="checker" class="font text-left">维修员:</label>
|
|
230
|
-
</div>
|
|
231
|
-
<v-select id="checker" :value.sync="model.f_order_man" class="input-font"
|
|
232
|
-
:width="'60%'"
|
|
233
|
-
:options='$parent.$parent.checkerOptions' placeholder='请选择维修员'
|
|
234
|
-
:value-single="true"
|
|
235
|
-
condition="f_order_man ='{}'"
|
|
236
|
-
v-model="model.f_order_man" close-on-select clear-button></v-select>
|
|
237
|
-
</div>
|
|
238
|
-
<div class="row app-row">
|
|
239
|
-
<div class="col-xs-4">
|
|
240
|
-
<img src="../../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
241
|
-
<label class="font text-left">故障明细:</label>
|
|
242
|
-
</div>
|
|
243
|
-
<div class="col-xs-8" >
|
|
244
|
-
<input class="search_input input-font" v-model=model.failure_str condition="failure_str like '%{}%'" />
|
|
245
|
-
</div>
|
|
246
|
-
</div>
|
|
247
|
-
<div class="row app-row">
|
|
248
|
-
<div class="col-xs-4">
|
|
249
|
-
<img src="../../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
250
|
-
<label class="font text-left">工单备注:</label>
|
|
251
|
-
</div>
|
|
252
|
-
<div class="col-xs-8" >
|
|
253
|
-
<input class="search_input input-font" v-model=model.f_remarks condition="f_remarks like '%{}%'" />
|
|
254
|
-
</div>
|
|
255
|
-
</div>
|
|
256
|
-
<div class="row text-center" style="margin-top: 20px;">
|
|
257
|
-
<button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;" @click="search(),$dispatch('search')">查询</button>
|
|
258
|
-
</div>
|
|
259
|
-
|
|
260
|
-
<div class="col-sm-12">
|
|
261
|
-
|
|
262
|
-
</div>
|
|
263
|
-
|
|
264
|
-
<div style="height:30px;"></div>
|
|
265
|
-
</div>
|
|
266
|
-
</criteria>
|
|
267
|
-
<list :model="model" partial='list'>
|
|
268
|
-
<div partial>
|
|
269
|
-
<div class="auto app-text" style="margin-top: 5px;">
|
|
270
|
-
<div class="panel" style="padding: 10px 10px 5px 10px;">
|
|
271
|
-
<div class="panel-body panel-self">
|
|
272
|
-
|
|
273
|
-
<div class="col-xs-12">
|
|
274
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
|
|
275
|
-
<p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
|
|
276
|
-
</div>
|
|
277
|
-
<div class="col-xs-12">
|
|
278
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>工单类型:</b></p>
|
|
279
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_workorder_type }}</p>
|
|
280
|
-
</div>
|
|
281
|
-
<div class="col-xs-12">
|
|
282
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>报修类型:</b></p>
|
|
283
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_repairtype }}</p>
|
|
284
|
-
</div>
|
|
285
|
-
<div class="col-xs-12">
|
|
286
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
|
|
287
|
-
<p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
|
|
288
|
-
</div>
|
|
289
|
-
<div class="col-xs-12">
|
|
290
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 23%;float: left"><b>来电电话:</b></p>
|
|
291
|
-
<p class="panel-title text-left input-font" style="width: 77%">{{ row.f_phone }}
|
|
292
|
-
</p>
|
|
293
|
-
</div>
|
|
294
|
-
<div class="col-xs-12">
|
|
295
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 23%;float: left"><b>联系电话:</b></p>
|
|
296
|
-
<p class="panel-title text-left input-font" style="width: 77%">{{ row.f_contact_phone }}
|
|
297
|
-
</p>
|
|
298
|
-
</div>
|
|
299
|
-
<div class="col-xs-12">
|
|
300
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
|
|
301
|
-
<p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
|
|
302
|
-
</div>
|
|
303
|
-
<div class="col-xs-12">
|
|
304
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>工单编号:</b></p>
|
|
305
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_service_id }}
|
|
306
|
-
</p>
|
|
307
|
-
</div>
|
|
308
|
-
<div class="col-xs-12">
|
|
309
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>故障明细:</b></p>
|
|
310
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ $parent.$parent.$parent.trouble(row.failure) }}</p>
|
|
311
|
-
</div>
|
|
312
|
-
<div class="col-xs-12">
|
|
313
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>工单状态:</b></p>
|
|
314
|
-
<p class="panel-title col-xs-7 text-left input-font"> {{ row.f_state ? row.f_state : (row.defname ? row.defname : '完成') }}</p>
|
|
315
|
-
</div>
|
|
316
|
-
<div class="col-xs-12">
|
|
317
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>工单结果:</b></p>
|
|
318
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_result_status }}</p>
|
|
319
|
-
</div>
|
|
320
|
-
<div class="col-xs-12">
|
|
321
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>派发时间:</b></p>
|
|
322
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_created_date }}</p>
|
|
323
|
-
</div>
|
|
324
|
-
<div class="col-xs-12">
|
|
325
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>截止天数:</b></p>
|
|
326
|
-
<p class="panel-title col-xs-7 text-left input-font">{{Math.floor((new Date(row.f_finish_date.substring(0,10)).getTime() - new Date(row.f_created_date.substring(0,10)).getTime()) / 86400000)}}</p>
|
|
327
|
-
</div>
|
|
328
|
-
<div class="col-xs-12">
|
|
329
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>截止日期:</b></p>
|
|
330
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_finish_date }}</p>
|
|
331
|
-
</div>
|
|
332
|
-
<div class="col-xs-12">
|
|
333
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>上传时间:</b></p>
|
|
334
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_date }}</p>
|
|
335
|
-
</div>
|
|
336
|
-
<div class="col-xs-12">
|
|
337
|
-
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>备注信息:</b></p>
|
|
338
|
-
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_remarks }}</p>
|
|
339
|
-
</div>
|
|
340
|
-
<div class="col-xs-12">
|
|
341
|
-
<button v-if="row.f_workorder_type == '报修单' && row.defname == '维修完成'" type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: left" @click="$parent.$parent.$parent.gotocheckpaper(row)">安检记录</button>
|
|
342
|
-
<button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right" @click="$parent.$parent.$parent.history(row)">流转记录</button>
|
|
343
|
-
</div>
|
|
344
|
-
</div>
|
|
345
|
-
</div>
|
|
346
|
-
</div>
|
|
347
|
-
</div>
|
|
348
|
-
</list>
|
|
349
|
-
</criteria-paged>
|
|
350
|
-
</div>
|
|
351
|
-
|
|
352
|
-
</template>
|
|
353
|
-
|
|
354
|
-
<script>
|
|
355
|
-
import Vue from 'vue'
|
|
356
|
-
import { PagedList,HttpResetClass } from 'vue-client'
|
|
357
|
-
import * as Util from '../../../components/Util'
|
|
358
|
-
|
|
359
|
-
export default {
|
|
360
|
-
title: '工单在线查询',
|
|
361
|
-
data() {
|
|
362
|
-
return {
|
|
363
|
-
f_filialeids:'',
|
|
364
|
-
model:new PagedList( `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/serviceDetails`,10),
|
|
365
|
-
criteriaShow: false,
|
|
366
|
-
condition:'',
|
|
367
|
-
f_preset_dt : Util.to3339TimeString(),
|
|
368
|
-
checkerOptions: [],
|
|
369
|
-
selfFailures: [],
|
|
370
|
-
repairtypes: this.$appdata.getParam('报修类型'),
|
|
371
|
-
failures: this.$appdata.getParam('呼叫故障类型'),
|
|
372
|
-
defnames :[{label: '全部', value: ''}, ...this.$appdata.getParam('呼叫工单状态')]
|
|
373
|
-
}
|
|
374
|
-
},
|
|
375
|
-
ready(){
|
|
376
|
-
this.getCheckers()
|
|
377
|
-
this.$refs.paged.$refs.cri.model.f_start_date=`${Util.toStandardDateString()} 00:00:00`
|
|
378
|
-
this.$refs.paged.$refs.cri.model.f_order_man = Vue.user.name
|
|
379
|
-
},
|
|
380
|
-
methods: {
|
|
381
|
-
getFailures(val) {
|
|
382
|
-
this.selfFailures = val
|
|
383
|
-
},
|
|
384
|
-
trouble(val) {
|
|
385
|
-
let failureall = ''
|
|
386
|
-
let failure = JSON.parse(val)
|
|
387
|
-
for (let i = 0; i < failure.length; i++) {
|
|
388
|
-
if (failure[i].failurecase.length > 0) {
|
|
389
|
-
failureall += failure[i].f_failure_type + ":"
|
|
390
|
-
for (let j = 0; j < failure[i].failurecase.length; j++) {
|
|
391
|
-
failureall += failure[i].failurecase[j]
|
|
392
|
-
if (j + 1 != failure[i].failurecase.length) {
|
|
393
|
-
failureall += ","
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
} else {
|
|
398
|
-
failureall += failure[i].f_failure_type
|
|
399
|
-
}
|
|
400
|
-
if (i + 1 != failure.length) {
|
|
401
|
-
failureall += ';'
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
return failureall
|
|
405
|
-
},
|
|
406
|
-
gotocheckpaper(row){
|
|
407
|
-
if (row.f_workorder_type == '报修单' && row.defname == '维修完成'){
|
|
408
|
-
let pardate = {
|
|
409
|
-
_this:this,
|
|
410
|
-
title:'维修信息',
|
|
411
|
-
safe:false
|
|
412
|
-
}
|
|
413
|
-
let curActivity = {
|
|
414
|
-
id:row.id
|
|
415
|
-
}
|
|
416
|
-
this.$dispatch('gotoson',pardate)
|
|
417
|
-
this.$goto('repair-paper-andorid', {service:row,curActivity: curActivity}, 'self')
|
|
418
|
-
}
|
|
419
|
-
},
|
|
420
|
-
history(row){
|
|
421
|
-
let pardate = {
|
|
422
|
-
_this:this,
|
|
423
|
-
title:'工单历史记录',
|
|
424
|
-
safe:false
|
|
425
|
-
}
|
|
426
|
-
this.$dispatch('gotoson',pardate)
|
|
427
|
-
this.$goto('app-work-history', {rowOne:row}, 'self')
|
|
428
|
-
},
|
|
429
|
-
async getCheckers() {
|
|
430
|
-
console.log('Vue.user=', JSON.stringify(Vue.user))
|
|
431
|
-
let res = await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {
|
|
432
|
-
data: {
|
|
433
|
-
source: `root.getResourceById($${Vue.user.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1)`,
|
|
434
|
-
userid: Vue.user.id + ''
|
|
435
|
-
}
|
|
436
|
-
})
|
|
437
|
-
console.log('res=', JSON.stringify(res))
|
|
438
|
-
console.log('res.data.length=', res.data.length)
|
|
439
|
-
const a = []
|
|
440
|
-
const checkerOptions = []
|
|
441
|
-
for (let item of res.data) {
|
|
442
|
-
if (a.indexOf(item.id) < 0){
|
|
443
|
-
checkerOptions.push({
|
|
444
|
-
label: item.name,
|
|
445
|
-
value: item.name
|
|
446
|
-
})
|
|
447
|
-
a.push(item.id)
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
this.checkerOptions = checkerOptions
|
|
451
|
-
console.log('this.checkerOptions=', JSON.stringify(this.checkerOptions))
|
|
452
|
-
},
|
|
453
|
-
search (args) {
|
|
454
|
-
args.condition += ` and f_filiale_id = '${Vue.user.orgid}'`
|
|
455
|
-
return this.model.search(args.condition, args.model)
|
|
456
|
-
},
|
|
457
|
-
selfSearch (args) {
|
|
458
|
-
if(this.$refs.paged.$refs.cri.model.f_order_man){
|
|
459
|
-
args.condition += ` and f_order_man = '${this.$refs.paged.$refs.cri.model.f_order_man}'`
|
|
460
|
-
}
|
|
461
|
-
if (this.selfFailures && this.selfFailures.length > 0) {
|
|
462
|
-
let failurestr = ''
|
|
463
|
-
this.selfFailures.forEach(res => {
|
|
464
|
-
failurestr += ` or failure like '%${res}%'`
|
|
465
|
-
})
|
|
466
|
-
let value = failurestr.replace('or', '')
|
|
467
|
-
args.condition += ` and (${value})`
|
|
468
|
-
}
|
|
469
|
-
args.condition += ` and f_filiale_id = '${Vue.user.orgid}'`
|
|
470
|
-
this.model.search(args.condition, args.model)
|
|
471
|
-
},
|
|
472
|
-
hidden() {
|
|
473
|
-
this.criteriaShow = !this.criteriaShow
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
</script>
|
|
1
|
+
<style scoped>
|
|
2
|
+
.bg {
|
|
3
|
+
background-color: blue;
|
|
4
|
+
height: 1px;
|
|
5
|
+
border: 0;
|
|
6
|
+
}
|
|
7
|
+
.app-row {
|
|
8
|
+
background-color: white;
|
|
9
|
+
padding: 10px 10px 0 10px;
|
|
10
|
+
border-bottom: 1px solid rgba(235, 235, 235, 0.5);
|
|
11
|
+
}
|
|
12
|
+
.search_input {
|
|
13
|
+
border: 0;
|
|
14
|
+
outline: none;
|
|
15
|
+
}
|
|
16
|
+
.font{
|
|
17
|
+
font: 15px PingFang-SC-Medium;
|
|
18
|
+
color: #666666;
|
|
19
|
+
}
|
|
20
|
+
.input-font{
|
|
21
|
+
font: 15px PingFang-SC-Medium;
|
|
22
|
+
color: #333333;
|
|
23
|
+
}
|
|
24
|
+
.btn-font{
|
|
25
|
+
font:600 16px PingFang-SC-Bold;
|
|
26
|
+
color: #499EDF;
|
|
27
|
+
}
|
|
28
|
+
.btn-color{
|
|
29
|
+
background-color: #FFFFFF;
|
|
30
|
+
border-radius: 10px ;
|
|
31
|
+
border: 1px solid #499EDF;
|
|
32
|
+
}
|
|
33
|
+
.app-text {
|
|
34
|
+
font-size: 12px;
|
|
35
|
+
}
|
|
36
|
+
.panel-self{
|
|
37
|
+
border-radius: 10px;
|
|
38
|
+
border:1px solid #499EDF;
|
|
39
|
+
background-color: #F8F8F8;
|
|
40
|
+
}
|
|
41
|
+
.yybtn-color{
|
|
42
|
+
background-color:#499edf;
|
|
43
|
+
border-radius: 4px ;
|
|
44
|
+
border: 1px solid #499EDF;
|
|
45
|
+
color: #FFFFFF;
|
|
46
|
+
font: 14px PingFang-SC-Bold;
|
|
47
|
+
}
|
|
48
|
+
.qxbtn-color{
|
|
49
|
+
background-color: #FFFFFF;
|
|
50
|
+
border-radius: 4px ;
|
|
51
|
+
color: #499edf;
|
|
52
|
+
font: 14px PingFang-SC-Bold;
|
|
53
|
+
border: 1px solid #499EDF;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.button_shrink_top {width: 35px; height: 35px; background-size:100%;background-image: url("../../../../static/newStyle/stretch_top.png")}
|
|
57
|
+
.button_shrink_bottom {width: 35px; height: 35px; background-size:100%;background-image: url("../../../../static/newStyle/stretch_bottom.png")}
|
|
58
|
+
.button_shrink_left {width: 35px; height: 35px; background-size:100%;background-image: url("../../../../static/newStyle/stretch_left.png")}
|
|
59
|
+
.button_shrink_right {width: 35px; height: 35px; background-size:100%;background-image: url("../../../../static/newStyle/stretch_right.png")}
|
|
60
|
+
</style>
|
|
61
|
+
|
|
62
|
+
<template>
|
|
63
|
+
<div style="height: auto;width: 100%">
|
|
64
|
+
<criteria-paged :model="model" v-ref:paged>
|
|
65
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
66
|
+
<div partial>
|
|
67
|
+
<div class="row app-row">
|
|
68
|
+
<div class="col-xs-4">
|
|
69
|
+
<img src="../../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
70
|
+
<label class="font text-left">用户姓名:</label>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="col-xs-8" >
|
|
73
|
+
<input class="search_input input-font" v-model=model.f_user_name condition="f_user_name like '%{}%'" />
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
<div class="row app-row">
|
|
77
|
+
<div class="col-xs-4">
|
|
78
|
+
<img src="../../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
79
|
+
<label class="font text-left">话务员:</label>
|
|
80
|
+
</div>
|
|
81
|
+
<div class="col-xs-8" >
|
|
82
|
+
<input class="search_input input-font" v-model=model.f_attendant condition="f_attendant like '%{}%'" />
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
<div class="row app-row">
|
|
86
|
+
<div class="col-xs-4">
|
|
87
|
+
<img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
88
|
+
<label for="f_userinfo_code" class="font text-left">用户编号:</label>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="col-xs-8" >
|
|
91
|
+
<input id="f_userinfo_code" class="search_input input-font"
|
|
92
|
+
v-model=model.f_userinfo_code condition="f_userinfo_code = '%{}%'" />
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
<div class="row app-row" >
|
|
96
|
+
<div class="col-xs-4">
|
|
97
|
+
<img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
98
|
+
<label class="font text-left">用户地址:</label>
|
|
99
|
+
</div>
|
|
100
|
+
<div class="col-xs-8" >
|
|
101
|
+
<input class="search_input input-font"
|
|
102
|
+
v-model=model.f_address condition="f_address like '%{}%'" />
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="row app-row">
|
|
106
|
+
<div class="col-xs-4">
|
|
107
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
108
|
+
<label class="font text-left">工单编号:</label>
|
|
109
|
+
</div>
|
|
110
|
+
<div class="col-xs-8" >
|
|
111
|
+
<input class="search_input input-font" v-model=model.f_service_id condition="f_service_id like '%{}%'" />
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
<div class="row app-row">
|
|
115
|
+
<div class="col-xs-4">
|
|
116
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
117
|
+
<label class="font text-left">来电电话:</label>
|
|
118
|
+
</div>
|
|
119
|
+
<div class="col-xs-8" >
|
|
120
|
+
<input class="search_input input-font"
|
|
121
|
+
v-model=model.f_phone condition="f_phone = '%{}%'" />
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
<div class="row app-row">
|
|
126
|
+
<div class="col-xs-4">
|
|
127
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
128
|
+
<label for="f_state" class="font text-left">起始时间:</label>
|
|
129
|
+
</div>
|
|
130
|
+
<datepicker id="f_start_date"
|
|
131
|
+
placeholder= '起始时间'
|
|
132
|
+
:value.sync="model.f_start_date"
|
|
133
|
+
:disabled-days-of-Week="[]"
|
|
134
|
+
v-model="model.f_start_date"
|
|
135
|
+
class="input-font"
|
|
136
|
+
style="width:60%"
|
|
137
|
+
condition="f_created_date > '{}'"
|
|
138
|
+
:format="'yyyy-MM-dd 00:00:00'"
|
|
139
|
+
:show-reset-button="reset">
|
|
140
|
+
</datepicker>
|
|
141
|
+
</div>
|
|
142
|
+
<div class="row app-row">
|
|
143
|
+
<div class="col-xs-4">
|
|
144
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
145
|
+
<label for="f_state" class="font text-left">结束时间:</label>
|
|
146
|
+
</div>
|
|
147
|
+
<datepicker id="f_end_date"
|
|
148
|
+
placeholder= '结束时间'
|
|
149
|
+
:value.sync="model.f_end_date"
|
|
150
|
+
:disabled-days-of-Week="[]"
|
|
151
|
+
v-model="model.f_end_date"
|
|
152
|
+
class="input-font"
|
|
153
|
+
style="width:60%"
|
|
154
|
+
condition="f_created_date < '{}'"
|
|
155
|
+
:format="'yyyy-MM-dd 23:59:00'"
|
|
156
|
+
:show-reset-button="reset">
|
|
157
|
+
</datepicker>
|
|
158
|
+
</div>
|
|
159
|
+
<div class="row app-row">
|
|
160
|
+
<div class="col-xs-4">
|
|
161
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
162
|
+
<label for="f_state" class="font text-left">完工时间:</label>
|
|
163
|
+
</div>
|
|
164
|
+
<datepicker id="f_start_date"
|
|
165
|
+
placeholder= '起始时间'
|
|
166
|
+
:value.sync="model.f_start_date1"
|
|
167
|
+
:disabled-days-of-Week="[]"
|
|
168
|
+
v-model="model.f_start_date1"
|
|
169
|
+
class="input-font"
|
|
170
|
+
style="width:60%"
|
|
171
|
+
condition="f_date > '{}'"
|
|
172
|
+
:format="'yyyy-MM-dd 00:00:00'"
|
|
173
|
+
:show-reset-button="reset">
|
|
174
|
+
</datepicker>
|
|
175
|
+
</div>
|
|
176
|
+
<div class="row app-row">
|
|
177
|
+
<div class="col-xs-4">
|
|
178
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
179
|
+
<label for="f_state" class="font text-left">完工时间:</label>
|
|
180
|
+
</div>
|
|
181
|
+
<datepicker id="f_end_date"
|
|
182
|
+
placeholder= '结束时间'
|
|
183
|
+
:value.sync="model.f_end_date1"
|
|
184
|
+
:disabled-days-of-Week="[]"
|
|
185
|
+
v-model="model.f_end_date1"
|
|
186
|
+
class="input-font"
|
|
187
|
+
style="width:60%"
|
|
188
|
+
condition="f_date < '{}'"
|
|
189
|
+
:format="'yyyy-MM-dd 23:59:00'"
|
|
190
|
+
:show-reset-button="reset">
|
|
191
|
+
</datepicker>
|
|
192
|
+
</div>
|
|
193
|
+
<div class="row app-row">
|
|
194
|
+
<div class="col-xs-4">
|
|
195
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
196
|
+
<label for="safechecktype" class="font text-left">报修类型:</label>
|
|
197
|
+
</div>
|
|
198
|
+
<v-select id="safechecktype" :value.sync="model.f_repairtype" class="input-font"
|
|
199
|
+
:width="'60%'"
|
|
200
|
+
:options='$parent.$parent.repairtypes' placeholder='请选择报修类型'
|
|
201
|
+
v-model="model.f_repairtype" condition="f_repairtype ='{}'" close-on-select clear-button></v-select>
|
|
202
|
+
</div>
|
|
203
|
+
<div class="row app-row">
|
|
204
|
+
<div class="col-xs-4">
|
|
205
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
206
|
+
<label for="safechecktype" class="font text-left">工单状态:</label>
|
|
207
|
+
</div>
|
|
208
|
+
<v-select id="safechecktype" :value.sync="model.defname" class="input-font"
|
|
209
|
+
:width="'60%'"
|
|
210
|
+
:options='$parent.$parent.defnames' placeholder='请选择工单状态'
|
|
211
|
+
v-model="model.defname" condition="sa.defname = '{}'" close-on-select clear-button></v-select>
|
|
212
|
+
</div>
|
|
213
|
+
<div class="row app-row">
|
|
214
|
+
<div class="col-xs-4">
|
|
215
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
216
|
+
<label for="safechecktype" class="font text-left">故障类型:</label>
|
|
217
|
+
</div>
|
|
218
|
+
<v-select :value.sync="model.failure"
|
|
219
|
+
:multiple="true"
|
|
220
|
+
:options='$parent.$parent.failures'
|
|
221
|
+
placeholder='故障类型'
|
|
222
|
+
class="input-font"
|
|
223
|
+
:width="'60%'"
|
|
224
|
+
@change="$parent.$parent.getFailures"></v-select>
|
|
225
|
+
</div>
|
|
226
|
+
<div class="row app-row">
|
|
227
|
+
<div class="col-xs-4">
|
|
228
|
+
<img src="../../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
229
|
+
<label for="checker" class="font text-left">维修员:</label>
|
|
230
|
+
</div>
|
|
231
|
+
<v-select id="checker" :value.sync="model.f_order_man" class="input-font"
|
|
232
|
+
:width="'60%'"
|
|
233
|
+
:options='$parent.$parent.checkerOptions' placeholder='请选择维修员'
|
|
234
|
+
:value-single="true"
|
|
235
|
+
condition="f_order_man ='{}'"
|
|
236
|
+
v-model="model.f_order_man" close-on-select clear-button></v-select>
|
|
237
|
+
</div>
|
|
238
|
+
<div class="row app-row">
|
|
239
|
+
<div class="col-xs-4">
|
|
240
|
+
<img src="../../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
241
|
+
<label class="font text-left">故障明细:</label>
|
|
242
|
+
</div>
|
|
243
|
+
<div class="col-xs-8" >
|
|
244
|
+
<input class="search_input input-font" v-model=model.failure_str condition="failure_str like '%{}%'" />
|
|
245
|
+
</div>
|
|
246
|
+
</div>
|
|
247
|
+
<div class="row app-row">
|
|
248
|
+
<div class="col-xs-4">
|
|
249
|
+
<img src="../../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
250
|
+
<label class="font text-left">工单备注:</label>
|
|
251
|
+
</div>
|
|
252
|
+
<div class="col-xs-8" >
|
|
253
|
+
<input class="search_input input-font" v-model=model.f_remarks condition="f_remarks like '%{}%'" />
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
<div class="row text-center" style="margin-top: 20px;">
|
|
257
|
+
<button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;" @click="search(),$dispatch('search')">查询</button>
|
|
258
|
+
</div>
|
|
259
|
+
|
|
260
|
+
<div class="col-sm-12">
|
|
261
|
+
|
|
262
|
+
</div>
|
|
263
|
+
|
|
264
|
+
<div style="height:30px;"></div>
|
|
265
|
+
</div>
|
|
266
|
+
</criteria>
|
|
267
|
+
<list :model="model" partial='list'>
|
|
268
|
+
<div partial>
|
|
269
|
+
<div class="auto app-text" style="margin-top: 5px;">
|
|
270
|
+
<div class="panel" style="padding: 10px 10px 5px 10px;">
|
|
271
|
+
<div class="panel-body panel-self">
|
|
272
|
+
|
|
273
|
+
<div class="col-xs-12">
|
|
274
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
|
|
275
|
+
<p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
|
|
276
|
+
</div>
|
|
277
|
+
<div class="col-xs-12">
|
|
278
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>工单类型:</b></p>
|
|
279
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_workorder_type }}</p>
|
|
280
|
+
</div>
|
|
281
|
+
<div class="col-xs-12">
|
|
282
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>报修类型:</b></p>
|
|
283
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_repairtype }}</p>
|
|
284
|
+
</div>
|
|
285
|
+
<div class="col-xs-12">
|
|
286
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
|
|
287
|
+
<p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
|
|
288
|
+
</div>
|
|
289
|
+
<div class="col-xs-12">
|
|
290
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 23%;float: left"><b>来电电话:</b></p>
|
|
291
|
+
<p class="panel-title text-left input-font" style="width: 77%">{{ row.f_phone }}
|
|
292
|
+
</p>
|
|
293
|
+
</div>
|
|
294
|
+
<div class="col-xs-12">
|
|
295
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 23%;float: left"><b>联系电话:</b></p>
|
|
296
|
+
<p class="panel-title text-left input-font" style="width: 77%">{{ row.f_contact_phone }}
|
|
297
|
+
</p>
|
|
298
|
+
</div>
|
|
299
|
+
<div class="col-xs-12">
|
|
300
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
|
|
301
|
+
<p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
|
|
302
|
+
</div>
|
|
303
|
+
<div class="col-xs-12">
|
|
304
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>工单编号:</b></p>
|
|
305
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_service_id }}
|
|
306
|
+
</p>
|
|
307
|
+
</div>
|
|
308
|
+
<div class="col-xs-12">
|
|
309
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>故障明细:</b></p>
|
|
310
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ $parent.$parent.$parent.trouble(row.failure) }}</p>
|
|
311
|
+
</div>
|
|
312
|
+
<div class="col-xs-12">
|
|
313
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>工单状态:</b></p>
|
|
314
|
+
<p class="panel-title col-xs-7 text-left input-font"> {{ row.f_state ? row.f_state : (row.defname ? row.defname : '完成') }}</p>
|
|
315
|
+
</div>
|
|
316
|
+
<div class="col-xs-12">
|
|
317
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>工单结果:</b></p>
|
|
318
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_result_status }}</p>
|
|
319
|
+
</div>
|
|
320
|
+
<div class="col-xs-12">
|
|
321
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>派发时间:</b></p>
|
|
322
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_created_date }}</p>
|
|
323
|
+
</div>
|
|
324
|
+
<div class="col-xs-12">
|
|
325
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>截止天数:</b></p>
|
|
326
|
+
<p class="panel-title col-xs-7 text-left input-font">{{Math.floor((new Date(row.f_finish_date.substring(0,10)).getTime() - new Date(row.f_created_date.substring(0,10)).getTime()) / 86400000)}}</p>
|
|
327
|
+
</div>
|
|
328
|
+
<div class="col-xs-12">
|
|
329
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>截止日期:</b></p>
|
|
330
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_finish_date }}</p>
|
|
331
|
+
</div>
|
|
332
|
+
<div class="col-xs-12">
|
|
333
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>上传时间:</b></p>
|
|
334
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_date }}</p>
|
|
335
|
+
</div>
|
|
336
|
+
<div class="col-xs-12">
|
|
337
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>备注信息:</b></p>
|
|
338
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_remarks }}</p>
|
|
339
|
+
</div>
|
|
340
|
+
<div class="col-xs-12">
|
|
341
|
+
<button v-if="row.f_workorder_type == '报修单' && row.defname == '维修完成'" type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: left" @click="$parent.$parent.$parent.gotocheckpaper(row)">安检记录</button>
|
|
342
|
+
<button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right" @click="$parent.$parent.$parent.history(row)">流转记录</button>
|
|
343
|
+
</div>
|
|
344
|
+
</div>
|
|
345
|
+
</div>
|
|
346
|
+
</div>
|
|
347
|
+
</div>
|
|
348
|
+
</list>
|
|
349
|
+
</criteria-paged>
|
|
350
|
+
</div>
|
|
351
|
+
|
|
352
|
+
</template>
|
|
353
|
+
|
|
354
|
+
<script>
|
|
355
|
+
import Vue from 'vue'
|
|
356
|
+
import { PagedList,HttpResetClass } from 'vue-client'
|
|
357
|
+
import * as Util from '../../../components/Util'
|
|
358
|
+
|
|
359
|
+
export default {
|
|
360
|
+
title: '工单在线查询',
|
|
361
|
+
data() {
|
|
362
|
+
return {
|
|
363
|
+
f_filialeids:'',
|
|
364
|
+
model:new PagedList( `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/serviceDetails`,10),
|
|
365
|
+
criteriaShow: false,
|
|
366
|
+
condition:'',
|
|
367
|
+
f_preset_dt : Util.to3339TimeString(),
|
|
368
|
+
checkerOptions: [],
|
|
369
|
+
selfFailures: [],
|
|
370
|
+
repairtypes: this.$appdata.getParam('报修类型'),
|
|
371
|
+
failures: this.$appdata.getParam('呼叫故障类型'),
|
|
372
|
+
defnames :[{label: '全部', value: ''}, ...this.$appdata.getParam('呼叫工单状态')]
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
ready(){
|
|
376
|
+
this.getCheckers()
|
|
377
|
+
this.$refs.paged.$refs.cri.model.f_start_date=`${Util.toStandardDateString()} 00:00:00`
|
|
378
|
+
this.$refs.paged.$refs.cri.model.f_order_man = Vue.user.name
|
|
379
|
+
},
|
|
380
|
+
methods: {
|
|
381
|
+
getFailures(val) {
|
|
382
|
+
this.selfFailures = val
|
|
383
|
+
},
|
|
384
|
+
trouble(val) {
|
|
385
|
+
let failureall = ''
|
|
386
|
+
let failure = JSON.parse(val)
|
|
387
|
+
for (let i = 0; i < failure.length; i++) {
|
|
388
|
+
if (failure[i].failurecase.length > 0) {
|
|
389
|
+
failureall += failure[i].f_failure_type + ":"
|
|
390
|
+
for (let j = 0; j < failure[i].failurecase.length; j++) {
|
|
391
|
+
failureall += failure[i].failurecase[j]
|
|
392
|
+
if (j + 1 != failure[i].failurecase.length) {
|
|
393
|
+
failureall += ","
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
} else {
|
|
398
|
+
failureall += failure[i].f_failure_type
|
|
399
|
+
}
|
|
400
|
+
if (i + 1 != failure.length) {
|
|
401
|
+
failureall += ';'
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
return failureall
|
|
405
|
+
},
|
|
406
|
+
gotocheckpaper(row){
|
|
407
|
+
if (row.f_workorder_type == '报修单' && row.defname == '维修完成'){
|
|
408
|
+
let pardate = {
|
|
409
|
+
_this:this,
|
|
410
|
+
title:'维修信息',
|
|
411
|
+
safe:false
|
|
412
|
+
}
|
|
413
|
+
let curActivity = {
|
|
414
|
+
id:row.id
|
|
415
|
+
}
|
|
416
|
+
this.$dispatch('gotoson',pardate)
|
|
417
|
+
this.$goto('repair-paper-andorid', {service:row,curActivity: curActivity}, 'self')
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
history(row){
|
|
421
|
+
let pardate = {
|
|
422
|
+
_this:this,
|
|
423
|
+
title:'工单历史记录',
|
|
424
|
+
safe:false
|
|
425
|
+
}
|
|
426
|
+
this.$dispatch('gotoson',pardate)
|
|
427
|
+
this.$goto('app-work-history', {rowOne:row}, 'self')
|
|
428
|
+
},
|
|
429
|
+
async getCheckers() {
|
|
430
|
+
console.log('Vue.user=', JSON.stringify(Vue.user))
|
|
431
|
+
let res = await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {
|
|
432
|
+
data: {
|
|
433
|
+
source: `root.getResourceById($${Vue.user.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1)`,
|
|
434
|
+
userid: Vue.user.id + ''
|
|
435
|
+
}
|
|
436
|
+
})
|
|
437
|
+
console.log('res=', JSON.stringify(res))
|
|
438
|
+
console.log('res.data.length=', res.data.length)
|
|
439
|
+
const a = []
|
|
440
|
+
const checkerOptions = []
|
|
441
|
+
for (let item of res.data) {
|
|
442
|
+
if (a.indexOf(item.id) < 0){
|
|
443
|
+
checkerOptions.push({
|
|
444
|
+
label: item.name,
|
|
445
|
+
value: item.name
|
|
446
|
+
})
|
|
447
|
+
a.push(item.id)
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
this.checkerOptions = checkerOptions
|
|
451
|
+
console.log('this.checkerOptions=', JSON.stringify(this.checkerOptions))
|
|
452
|
+
},
|
|
453
|
+
search (args) {
|
|
454
|
+
args.condition += ` and f_filiale_id = '${Vue.user.orgid}'`
|
|
455
|
+
return this.model.search(args.condition, args.model)
|
|
456
|
+
},
|
|
457
|
+
selfSearch (args) {
|
|
458
|
+
if(this.$refs.paged.$refs.cri.model.f_order_man){
|
|
459
|
+
args.condition += ` and f_order_man = '${this.$refs.paged.$refs.cri.model.f_order_man}'`
|
|
460
|
+
}
|
|
461
|
+
if (this.selfFailures && this.selfFailures.length > 0) {
|
|
462
|
+
let failurestr = ''
|
|
463
|
+
this.selfFailures.forEach(res => {
|
|
464
|
+
failurestr += ` or failure like '%${res}%'`
|
|
465
|
+
})
|
|
466
|
+
let value = failurestr.replace('or', '')
|
|
467
|
+
args.condition += ` and (${value})`
|
|
468
|
+
}
|
|
469
|
+
args.condition += ` and f_filiale_id = '${Vue.user.orgid}'`
|
|
470
|
+
this.model.search(args.condition, args.model)
|
|
471
|
+
},
|
|
472
|
+
hidden() {
|
|
473
|
+
this.criteriaShow = !this.criteriaShow
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
</script>
|