telephone-clients 4.0.0-1-48 → 4.0.0-1-50
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 +1 -1
- package/src/components/android/AppWorkHistory.vue +394 -394
- package/src/components/pc/WorkCenterList.vue +8 -0
- package/src/filiale/meihekou/android/AppWorkHistory.vue +13 -13
- package/src/filiale/meihekou/pc/DistributeWork.vue +177 -0
- package/src/filiale/meihekou/telephone.js +2 -1
package/package.json
CHANGED
|
@@ -1,394 +1,394 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<partial-view-tel v-ref:pv>
|
|
3
|
-
<div class="panel panel-info auto" >
|
|
4
|
-
<div class="panel-heading auto" style="text-align: center">
|
|
5
|
-
<h4 style="display:inline-block;margin-top: auto">工单信息</h4>
|
|
6
|
-
</div>
|
|
7
|
-
<div class="auto info-content">
|
|
8
|
-
<div class="row">
|
|
9
|
-
<label class="col-sm-4 ">工单编号:</label>
|
|
10
|
-
<span class="col-sm-8">{{ service?service.f_service_id:'***********' }}</span>
|
|
11
|
-
</div>
|
|
12
|
-
<div class="row"
|
|
13
|
-
v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
14
|
-
<label class="col-sm-4 ">当前状态:</label>
|
|
15
|
-
<span class="col-sm-8">{{ rowOne.defname }}</span>
|
|
16
|
-
</div>
|
|
17
|
-
<div class="row">
|
|
18
|
-
<label class="col-sm-4 ">工单时间:</label>
|
|
19
|
-
<span class="col-sm-8">{{ service?service.f_created_date:'****年**月**日' }}</span>
|
|
20
|
-
</div>
|
|
21
|
-
<div class="row" v-if="service.f_workorder_type=='置换通气单'||service.f_workorder_type=='安装单'">
|
|
22
|
-
<label class="col-sm-4 ">预约时间:</label>
|
|
23
|
-
<span class="col-sm-8">{{ service.f_yuyue_date == '1900-01-01 00:00:00' ? '' : service.f_yuyue_date }}</span>
|
|
24
|
-
</div>
|
|
25
|
-
<div class="row">
|
|
26
|
-
<label class="col-sm-4 ">客户姓名:</label>
|
|
27
|
-
<span class="col-sm-8">{{ service?service.f_user_name:'***' }}</span>
|
|
28
|
-
</div>
|
|
29
|
-
<div class="row">
|
|
30
|
-
<label class="col-sm-4 ">来电电话:</label>
|
|
31
|
-
<span class="col-sm-8">{{ service?service.f_phone:'***********' }}</span>
|
|
32
|
-
</div>
|
|
33
|
-
<div class="row">
|
|
34
|
-
<label class="col-sm-4 ">联系电话:</label>
|
|
35
|
-
<span class="col-sm-8">{{ service?service.f_contact_phone:'***********' }}</span>
|
|
36
|
-
</div>
|
|
37
|
-
<div class="row" v-if="service.f_workorder_type=='报修单'">
|
|
38
|
-
<label class="col-sm-4 ">报修类型:</label>
|
|
39
|
-
<span class="col-sm-8">{{ service.f_repairtype }}</span>
|
|
40
|
-
</div>
|
|
41
|
-
<div class="row"
|
|
42
|
-
v-if="service.f_workorder_type!=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
43
|
-
<label class="col-sm-4 ">工单内容:</label>
|
|
44
|
-
<span class="col-sm-8">{{ service.f_content }}</span>
|
|
45
|
-
</div>
|
|
46
|
-
<div class="row">
|
|
47
|
-
<label class="col-sm-4 ">客户编号:</label>
|
|
48
|
-
<span class="col-sm-8">{{ service.f_userinfo_code }}</span>
|
|
49
|
-
</div>
|
|
50
|
-
<div class="row" v-if="service.f_workorder_type=='报修单'">
|
|
51
|
-
<label class="col-sm-4 ">客户表号:</label>
|
|
52
|
-
<span class="col-sm-8">{{ service.f_meternumber }}</span>
|
|
53
|
-
</div>
|
|
54
|
-
<div class="row">
|
|
55
|
-
<label class="col-sm-4 ">用户地址:</label>
|
|
56
|
-
<span class="col-sm-8">{{ service.f_address }}</span>
|
|
57
|
-
</div>
|
|
58
|
-
<div class="row">
|
|
59
|
-
<label class="col-sm-4 ">工单备注:</label>
|
|
60
|
-
<span class="col-sm-8">{{ service.f_remarks }}</span>
|
|
61
|
-
</div>
|
|
62
|
-
<div class="row"
|
|
63
|
-
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
64
|
-
<label class="col-sm-4 ">指导建议:</label>
|
|
65
|
-
<span class="col-sm-8">{{ service.f_advice }}</span>
|
|
66
|
-
</div>
|
|
67
|
-
<div class="row"
|
|
68
|
-
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
69
|
-
<label class="col-sm-4 ">故障明细:</label>
|
|
70
|
-
<span class="col-sm-8">{{ service.f_source == '物联网表异常' ? service.f_error_msg : trouble(service.failure)}}</span>
|
|
71
|
-
</div>
|
|
72
|
-
<!-- 工单的流转时间轴信息,每个活动的内容各不相同 -->
|
|
73
|
-
</div>
|
|
74
|
-
<div class="panel-heading auto" style="text-align: center" v-show="service.serviceacitivity.length>0">
|
|
75
|
-
<h4 style="display:inline-block;margin-top: auto">工单历史</h4>
|
|
76
|
-
</div>
|
|
77
|
-
<div class="tab-content span">
|
|
78
|
-
<timeline style="margin-left: 20px"
|
|
79
|
-
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'|| service.f_workorder_type=='投诉单'||service.f_workorder_type=='咨询单'">
|
|
80
|
-
<timeline-item-tel v-for="activity in service.serviceacitivity"
|
|
81
|
-
:color="$index === service.serviceacitivity.length - 1 ? 'blue' : 'default'"
|
|
82
|
-
:isblue="$index === service.serviceacitivity.length - 1 ? true : false">
|
|
83
|
-
<!-- 派单 -->
|
|
84
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_servicesend'">
|
|
85
|
-
<p>{{ activity.f_date }}</p>
|
|
86
|
-
<p>{{ activity.f_name }}派单给{{ getReciever(activity) }}</p>
|
|
87
|
-
</div>
|
|
88
|
-
<!-- 工单打回 -->
|
|
89
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_service_back'">
|
|
90
|
-
<p>{{ activity.f_date }}</p>
|
|
91
|
-
<p>{{ activity.f_operator }}将工单{{activity.f_back_type}}</p>
|
|
92
|
-
<p v-if="activity.f_remarks">原因:{{ activity.f_remarks }}</p>
|
|
93
|
-
</div>
|
|
94
|
-
<!-- 工单打回 工单打回旧版使用t_site_back,兼容之前的逻辑。新版本无需调整此项-->
|
|
95
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_site_back'">
|
|
96
|
-
<p>{{ activity.f_site_back_date }}</p>
|
|
97
|
-
<p>{{ activity.f_site_back_name }}将工单打回</p>
|
|
98
|
-
<p>原因:{{ activity.f_site_back_reason }}</p>
|
|
99
|
-
</div>
|
|
100
|
-
<!-- 未维修,属于维修员打回 兼容之前的逻辑。新版本无需调整此项 -->
|
|
101
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_notwork'">
|
|
102
|
-
<p>{{ activity.f_date }}</p>
|
|
103
|
-
<p>{{ activity.f_name }}未处理</p>
|
|
104
|
-
<p>原因:{{ activity.f_reason }}</p>
|
|
105
|
-
</div>
|
|
106
|
-
<!-- 用户催单 -->
|
|
107
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_reminder'">
|
|
108
|
-
<p>用户催单</p>
|
|
109
|
-
<p>{{ activity.f_reminder_date }}</p>
|
|
110
|
-
<p>操作人:{{ activity.f_operator_name }}</p>
|
|
111
|
-
<p>催单内容:{{ activity.f_content }}</p>
|
|
112
|
-
</div>
|
|
113
|
-
<!-- 工单撤回 -->
|
|
114
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_recall'">
|
|
115
|
-
<p>{{ activity.f_recall_date }}</p>
|
|
116
|
-
<p>{{ activity.f_recall_name }}撤回工单</p>
|
|
117
|
-
<p>备注:{{ activity.f_remarks }}</p>
|
|
118
|
-
</div>
|
|
119
|
-
<!-- 工单信息补充 -->
|
|
120
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_telinformation'">
|
|
121
|
-
<p>{{ activity.f_information_date }}</p>
|
|
122
|
-
<p>{{ activity.f_operator_name }}进行信息补充</p>
|
|
123
|
-
<p>维护内容:{{ activity.f_content }}</p>
|
|
124
|
-
</div>
|
|
125
|
-
<!-- 一次维修 -->
|
|
126
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_servicework'">
|
|
127
|
-
<p>入户时间: {{ activity.f_date_come }}</p>
|
|
128
|
-
<p>离开时间: {{ activity.f_date_leave }}</p>
|
|
129
|
-
<!--<img-self v-for="img in activity.imgs" :src="`rs/file/getfile/${img.imgid}`" alt="测试" :width="150"-->
|
|
130
|
-
<!--:height="200"></img-self>-->
|
|
131
|
-
<p>接单员: {{ activity.f_name }} 完成结果: {{ activity.f_result_status }}
|
|
132
|
-
</p>
|
|
133
|
-
<p v-if="activity.f_result_status === '未完成'">原因: {{ activity.f_reason }}
|
|
134
|
-
</p>
|
|
135
|
-
</div>
|
|
136
|
-
<!-- 工单结案 -->
|
|
137
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_serviceend'">
|
|
138
|
-
<p>{{ activity.f_date }}</p>
|
|
139
|
-
<p>{{ activity.f_name }}结束工单,备注:{{ activity.f_caseremarks }} {{activity.f_remakes}}</p>
|
|
140
|
-
<span class="btn btn-link add-postition" v-if="activity.f_caseimgs" @click="getcaseimgs(activity.f_caseimgs)">结案照片</span>
|
|
141
|
-
</div>
|
|
142
|
-
</timeline-item-tel>
|
|
143
|
-
</timeline>
|
|
144
|
-
</div>
|
|
145
|
-
</div>
|
|
146
|
-
</partial-view-tel>
|
|
147
|
-
</template>
|
|
148
|
-
<script>
|
|
149
|
-
import co from 'co'
|
|
150
|
-
import Vue from 'vue'
|
|
151
|
-
import FailureShow from '../../components/pc/FailureShow.vue'
|
|
152
|
-
|
|
153
|
-
let getGen = function * (self) {
|
|
154
|
-
yield self.$resetpost('af-telephone/rs/path/getService', {data: {id: self.rowOne.id}}, {resolveMsg: null, rejectMsg: null})
|
|
155
|
-
.then((res) => {
|
|
156
|
-
self.service = res.data[0]
|
|
157
|
-
})
|
|
158
|
-
}
|
|
159
|
-
export default {
|
|
160
|
-
title: '工单历史记录',
|
|
161
|
-
data () {
|
|
162
|
-
return {
|
|
163
|
-
curactivity:{},
|
|
164
|
-
attachment:{},
|
|
165
|
-
attachmentShow:false,
|
|
166
|
-
caseimgs:[],
|
|
167
|
-
caseimgshow:false,
|
|
168
|
-
imgshow: false,
|
|
169
|
-
imgfilename: '',
|
|
170
|
-
imgfilenamea: '',
|
|
171
|
-
imgfilenameb: '',
|
|
172
|
-
service: null,
|
|
173
|
-
repaierShow: false,
|
|
174
|
-
isshow: false,
|
|
175
|
-
show: false,
|
|
176
|
-
takeshow: false, // 操作面板显示
|
|
177
|
-
repair: {},
|
|
178
|
-
evaluate: {},
|
|
179
|
-
num: 14,
|
|
180
|
-
wavflie: '',
|
|
181
|
-
iscomplanAllInfo: false, // 是否显示投诉单详情
|
|
182
|
-
complanResult: {}, //投诉单详情信息
|
|
183
|
-
showinfo:false,
|
|
184
|
-
information:'',
|
|
185
|
-
loginUser:{
|
|
186
|
-
name:Vue.user.name,
|
|
187
|
-
ename:Vue.user.ename
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
},
|
|
191
|
-
props: {
|
|
192
|
-
rowOne: { // 传入一条工单信息
|
|
193
|
-
type: Object
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
methods: {
|
|
197
|
-
showAttachment(activity){
|
|
198
|
-
this.attachment = activity
|
|
199
|
-
this.attachmentShow = true
|
|
200
|
-
},
|
|
201
|
-
getcaseimgs(val){
|
|
202
|
-
if(val){
|
|
203
|
-
this.caseimgs = val.split(";")
|
|
204
|
-
}
|
|
205
|
-
this.caseimgshow= true
|
|
206
|
-
},
|
|
207
|
-
caseclose(){
|
|
208
|
-
this.caseimgshow= false
|
|
209
|
-
},
|
|
210
|
-
//添加信息维护
|
|
211
|
-
infoadd(){
|
|
212
|
-
this.showinfo = true
|
|
213
|
-
},
|
|
214
|
-
infoaddsure(){
|
|
215
|
-
if(!this.information){
|
|
216
|
-
return this.$showMessage('请填写维护内容!')
|
|
217
|
-
}
|
|
218
|
-
var data = {
|
|
219
|
-
id :this.service.id,
|
|
220
|
-
f_processid:this.service.f_processid,
|
|
221
|
-
f_content:this.information,
|
|
222
|
-
serviceacitivity : [{}]
|
|
223
|
-
}
|
|
224
|
-
// 将数据发送给业务逻辑
|
|
225
|
-
this.$resetpost('af-telephone/rs/logic/telinformation', {model: data, loginUser: this.loginUser},{resolveMsg: null, rejectMsg: null}).then(() => {
|
|
226
|
-
this.$showMessage('维护内容添加成功!',['confirm'])
|
|
227
|
-
this.information = ''
|
|
228
|
-
this.showinfo =false
|
|
229
|
-
this.selfSearch()
|
|
230
|
-
})
|
|
231
|
-
},
|
|
232
|
-
infoclose(){
|
|
233
|
-
this.showinfo =false
|
|
234
|
-
},
|
|
235
|
-
trouble (val) {
|
|
236
|
-
let failureall=''
|
|
237
|
-
// val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
|
|
238
|
-
|
|
239
|
-
let failure = JSON.parse(val)
|
|
240
|
-
for (let i = 0; i <failure.length; i++) {
|
|
241
|
-
if (failure[i].failurecase.length>0){
|
|
242
|
-
failureall+=failure[i].f_failure_type+":"
|
|
243
|
-
for (let j = 0; j < failure[i].failurecase.length; j++) {
|
|
244
|
-
failureall+=failure[i].failurecase[j]
|
|
245
|
-
if (j+1!=failure[i].failurecase.length){
|
|
246
|
-
failureall+=","
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
}else{
|
|
251
|
-
failureall+=failure[i].f_failure_type
|
|
252
|
-
}
|
|
253
|
-
if (i+1!=failure.length){
|
|
254
|
-
failureall+=';'
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
return failureall
|
|
258
|
-
},
|
|
259
|
-
// 投诉单详情
|
|
260
|
-
reqComplanResult (index) {
|
|
261
|
-
this.complanResult = Object.assign({}, this.service.serviceacitivity[index])
|
|
262
|
-
this.iscomplanAllInfo = true
|
|
263
|
-
},
|
|
264
|
-
showpicture (val) {
|
|
265
|
-
//tag
|
|
266
|
-
//tag)
|
|
267
|
-
this.imgshow = true
|
|
268
|
-
this.imgfilename = 'rs/image/file/' + val.f_single_path
|
|
269
|
-
this.imgfilenamea = 'rs/image/file/' + val.f_singlea_path
|
|
270
|
-
this.imgfilenameb = 'rs/image/file/' + val.f_singleb_path
|
|
271
|
-
},
|
|
272
|
-
imgclose () {
|
|
273
|
-
this.imgshow = false
|
|
274
|
-
},
|
|
275
|
-
renew () {
|
|
276
|
-
this.takeshow = false
|
|
277
|
-
},
|
|
278
|
-
clean () {
|
|
279
|
-
this.takeshow = false
|
|
280
|
-
},
|
|
281
|
-
takett () {
|
|
282
|
-
this.takeshow = true
|
|
283
|
-
},
|
|
284
|
-
playWav (val) {
|
|
285
|
-
let condition = `id = '${val}'`
|
|
286
|
-
let result = ''
|
|
287
|
-
this.$resetpost(
|
|
288
|
-
data: {
|
|
289
|
-
items: 'recordfile', tablename: 't_records',
|
|
290
|
-
condition: condition, orderitem: 'outltime'
|
|
291
|
-
}
|
|
292
|
-
}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
293
|
-
result = res.data
|
|
294
|
-
this.wavflie = result[0].recordfile
|
|
295
|
-
this.show = true
|
|
296
|
-
})
|
|
297
|
-
},
|
|
298
|
-
closemodel () {
|
|
299
|
-
this.wavflie = ''
|
|
300
|
-
this.show = false
|
|
301
|
-
},
|
|
302
|
-
getReciever (val) {
|
|
303
|
-
let str = val.f_reciever
|
|
304
|
-
var i = parseInt(str)
|
|
305
|
-
if (isNaN(i)) {
|
|
306
|
-
return val.f_reciever
|
|
307
|
-
}
|
|
308
|
-
return val.f_meetunit
|
|
309
|
-
},
|
|
310
|
-
selfSearch () {
|
|
311
|
-
if (!this.rowOne) {
|
|
312
|
-
return
|
|
313
|
-
}
|
|
314
|
-
if (this.rowOne.f_workorder_type != '报修单' && this.rowOne.f_workorder_type != '置换通气单' && this.rowOne.f_workorder_type != '安装单' && this.rowOne.f_workorder_type != '投诉单' && this.rowOne.f_workorder_type != '咨询单') {
|
|
315
|
-
this.service = this.rowOne
|
|
316
|
-
} else {
|
|
317
|
-
let gen = getGen(this)
|
|
318
|
-
co(gen)
|
|
319
|
-
}
|
|
320
|
-
// if (this.rowOne.processins) {
|
|
321
|
-
// this.service = this.rowOne
|
|
322
|
-
// } else {
|
|
323
|
-
// let gen = getGen(this)
|
|
324
|
-
// co(gen)
|
|
325
|
-
// }
|
|
326
|
-
},
|
|
327
|
-
getrepair () {
|
|
328
|
-
// if(!this.rowOne) {
|
|
329
|
-
// return
|
|
330
|
-
// }
|
|
331
|
-
let gen = getrepairGen(this)
|
|
332
|
-
co(gen)
|
|
333
|
-
},
|
|
334
|
-
repairlist (index) {
|
|
335
|
-
this.curactivity = Object.assign({}, this.service.serviceacitivity[index])
|
|
336
|
-
//tag
|
|
337
|
-
//tag)
|
|
338
|
-
// this.repaierShow = true
|
|
339
|
-
this.$goto('new-repair-paper', {service:this.service,curactivity: this.curactivity}, 'self')
|
|
340
|
-
},
|
|
341
|
-
close () {
|
|
342
|
-
this.repaierShow = false
|
|
343
|
-
},
|
|
344
|
-
discuss () {
|
|
345
|
-
//tag
|
|
346
|
-
this.isshow = true
|
|
347
|
-
},
|
|
348
|
-
closeevaluate () {
|
|
349
|
-
this.isshow = false
|
|
350
|
-
},
|
|
351
|
-
// 评论完成
|
|
352
|
-
saveevaluate (val) {
|
|
353
|
-
//tag
|
|
354
|
-
this.isshow = false
|
|
355
|
-
this.$refs.evaluate.init(this.evaluate.f_type, this.evaluate.f_middle_id).then(() => {
|
|
356
|
-
})
|
|
357
|
-
}
|
|
358
|
-
},
|
|
359
|
-
watch: {
|
|
360
|
-
'rowOne' () {
|
|
361
|
-
this.selfSearch()
|
|
362
|
-
//tag
|
|
363
|
-
//tag
|
|
364
|
-
},
|
|
365
|
-
'service' (val) {
|
|
366
|
-
if (val) {
|
|
367
|
-
this.evaluate = {
|
|
368
|
-
f_type: val.f_workorder_type,
|
|
369
|
-
f_middle_id: val.f_service_id
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
},
|
|
374
|
-
ready () {
|
|
375
|
-
this.selfSearch()
|
|
376
|
-
|
|
377
|
-
},
|
|
378
|
-
components: {
|
|
379
|
-
'failure-show': FailureShow
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
</script>
|
|
383
|
-
<style scoped lang="less">
|
|
384
|
-
.workOrderInfo{
|
|
385
|
-
.row {
|
|
386
|
-
div {
|
|
387
|
-
margin-top: 10px;
|
|
388
|
-
[readonly] {
|
|
389
|
-
background-color:#eeeeee;
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<partial-view-tel v-ref:pv>
|
|
3
|
+
<div class="panel panel-info auto" >
|
|
4
|
+
<div class="panel-heading auto" style="text-align: center">
|
|
5
|
+
<h4 style="display:inline-block;margin-top: auto">工单信息</h4>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="auto info-content">
|
|
8
|
+
<div class="row">
|
|
9
|
+
<label class="col-sm-4 ">工单编号:</label>
|
|
10
|
+
<span class="col-sm-8">{{ service?service.f_service_id:'***********' }}</span>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="row"
|
|
13
|
+
v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
14
|
+
<label class="col-sm-4 ">当前状态:</label>
|
|
15
|
+
<span class="col-sm-8">{{ rowOne.defname }}</span>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="row">
|
|
18
|
+
<label class="col-sm-4 ">工单时间:</label>
|
|
19
|
+
<span class="col-sm-8">{{ service?service.f_created_date:'****年**月**日' }}</span>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="row" v-if="service.f_workorder_type=='置换通气单'||service.f_workorder_type=='安装单'">
|
|
22
|
+
<label class="col-sm-4 ">预约时间:</label>
|
|
23
|
+
<span class="col-sm-8">{{ service.f_yuyue_date == '1900-01-01 00:00:00' ? '' : service.f_yuyue_date }}</span>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="row">
|
|
26
|
+
<label class="col-sm-4 ">客户姓名:</label>
|
|
27
|
+
<span class="col-sm-8">{{ service?service.f_user_name:'***' }}</span>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="row">
|
|
30
|
+
<label class="col-sm-4 ">来电电话:</label>
|
|
31
|
+
<span class="col-sm-8">{{ service?service.f_phone:'***********' }}</span>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="row">
|
|
34
|
+
<label class="col-sm-4 ">联系电话:</label>
|
|
35
|
+
<span class="col-sm-8">{{ service?service.f_contact_phone:'***********' }}</span>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="row" v-if="service.f_workorder_type=='报修单'">
|
|
38
|
+
<label class="col-sm-4 ">报修类型:</label>
|
|
39
|
+
<span class="col-sm-8">{{ service.f_repairtype }}</span>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="row"
|
|
42
|
+
v-if="service.f_workorder_type!=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
43
|
+
<label class="col-sm-4 ">工单内容:</label>
|
|
44
|
+
<span class="col-sm-8">{{ service.f_content }}</span>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="row">
|
|
47
|
+
<label class="col-sm-4 ">客户编号:</label>
|
|
48
|
+
<span class="col-sm-8">{{ service.f_userinfo_code }}</span>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="row" v-if="service.f_workorder_type=='报修单'">
|
|
51
|
+
<label class="col-sm-4 ">客户表号:</label>
|
|
52
|
+
<span class="col-sm-8">{{ service.f_meternumber }}</span>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="row">
|
|
55
|
+
<label class="col-sm-4 ">用户地址:</label>
|
|
56
|
+
<span class="col-sm-8">{{ service.f_address }}</span>
|
|
57
|
+
</div>
|
|
58
|
+
<div class="row">
|
|
59
|
+
<label class="col-sm-4 ">工单备注:</label>
|
|
60
|
+
<span class="col-sm-8">{{ service.f_remarks }}</span>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="row"
|
|
63
|
+
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
64
|
+
<label class="col-sm-4 ">指导建议:</label>
|
|
65
|
+
<span class="col-sm-8">{{ service.f_advice }}</span>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="row"
|
|
68
|
+
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
69
|
+
<label class="col-sm-4 ">故障明细:</label>
|
|
70
|
+
<span class="col-sm-8">{{ service.f_source == '物联网表异常' ? service.f_error_msg : trouble(service.failure)}}</span>
|
|
71
|
+
</div>
|
|
72
|
+
<!-- 工单的流转时间轴信息,每个活动的内容各不相同 -->
|
|
73
|
+
</div>
|
|
74
|
+
<div class="panel-heading auto" style="text-align: center" v-show="service.serviceacitivity.length>0">
|
|
75
|
+
<h4 style="display:inline-block;margin-top: auto">工单历史</h4>
|
|
76
|
+
</div>
|
|
77
|
+
<div class="tab-content span">
|
|
78
|
+
<timeline style="margin-left: 20px"
|
|
79
|
+
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'|| service.f_workorder_type=='投诉单'||service.f_workorder_type=='咨询单'">
|
|
80
|
+
<timeline-item-tel v-for="activity in service.serviceacitivity"
|
|
81
|
+
:color="$index === service.serviceacitivity.length - 1 ? 'blue' : 'default'"
|
|
82
|
+
:isblue="$index === service.serviceacitivity.length - 1 ? true : false">
|
|
83
|
+
<!-- 派单 -->
|
|
84
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_servicesend'">
|
|
85
|
+
<p>{{ activity.f_date }}</p>
|
|
86
|
+
<p>{{ activity.f_name }}派单给{{ getReciever(activity) }}</p>
|
|
87
|
+
</div>
|
|
88
|
+
<!-- 工单打回 -->
|
|
89
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_service_back'">
|
|
90
|
+
<p>{{ activity.f_date }}</p>
|
|
91
|
+
<p>{{ activity.f_operator }}将工单{{activity.f_back_type}}</p>
|
|
92
|
+
<p v-if="activity.f_remarks">原因:{{ activity.f_remarks }}</p>
|
|
93
|
+
</div>
|
|
94
|
+
<!-- 工单打回 工单打回旧版使用t_site_back,兼容之前的逻辑。新版本无需调整此项-->
|
|
95
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_site_back'">
|
|
96
|
+
<p>{{ activity.f_site_back_date }}</p>
|
|
97
|
+
<p>{{ activity.f_site_back_name }}将工单打回</p>
|
|
98
|
+
<p>原因:{{ activity.f_site_back_reason }}</p>
|
|
99
|
+
</div>
|
|
100
|
+
<!-- 未维修,属于维修员打回 兼容之前的逻辑。新版本无需调整此项 -->
|
|
101
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_notwork'">
|
|
102
|
+
<p>{{ activity.f_date }}</p>
|
|
103
|
+
<p>{{ activity.f_name }}未处理</p>
|
|
104
|
+
<p>原因:{{ activity.f_reason }}</p>
|
|
105
|
+
</div>
|
|
106
|
+
<!-- 用户催单 -->
|
|
107
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_reminder'">
|
|
108
|
+
<p>用户催单</p>
|
|
109
|
+
<p>{{ activity.f_reminder_date }}</p>
|
|
110
|
+
<p>操作人:{{ activity.f_operator_name }}</p>
|
|
111
|
+
<p>催单内容:{{ activity.f_content }}</p>
|
|
112
|
+
</div>
|
|
113
|
+
<!-- 工单撤回 -->
|
|
114
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_recall'">
|
|
115
|
+
<p>{{ activity.f_recall_date }}</p>
|
|
116
|
+
<p>{{ activity.f_recall_name }}撤回工单</p>
|
|
117
|
+
<p>备注:{{ activity.f_remarks }}</p>
|
|
118
|
+
</div>
|
|
119
|
+
<!-- 工单信息补充 -->
|
|
120
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_telinformation'">
|
|
121
|
+
<p>{{ activity.f_information_date }}</p>
|
|
122
|
+
<p>{{ activity.f_operator_name }}进行信息补充</p>
|
|
123
|
+
<p>维护内容:{{ activity.f_content }}</p>
|
|
124
|
+
</div>
|
|
125
|
+
<!-- 一次维修 -->
|
|
126
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_servicework'">
|
|
127
|
+
<p>入户时间: {{ activity.f_date_come }}</p>
|
|
128
|
+
<p>离开时间: {{ activity.f_date_leave }}</p>
|
|
129
|
+
<!--<img-self v-for="img in activity.imgs" :src="`rs/file/getfile/${img.imgid}`" alt="测试" :width="150"-->
|
|
130
|
+
<!--:height="200"></img-self>-->
|
|
131
|
+
<p>接单员: {{ activity.f_name }} 完成结果: {{ activity.f_result_status }}
|
|
132
|
+
</p>
|
|
133
|
+
<p v-if="activity.f_result_status === '未完成'">原因: {{ activity.f_reason }}
|
|
134
|
+
</p>
|
|
135
|
+
</div>
|
|
136
|
+
<!-- 工单结案 -->
|
|
137
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_serviceend'">
|
|
138
|
+
<p>{{ activity.f_date }}</p>
|
|
139
|
+
<p>{{ activity.f_name }}结束工单,备注:{{ activity.f_caseremarks }} {{activity.f_remakes}}</p>
|
|
140
|
+
<span class="btn btn-link add-postition" v-if="activity.f_caseimgs" @click="getcaseimgs(activity.f_caseimgs)">结案照片</span>
|
|
141
|
+
</div>
|
|
142
|
+
</timeline-item-tel>
|
|
143
|
+
</timeline>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</partial-view-tel>
|
|
147
|
+
</template>
|
|
148
|
+
<script>
|
|
149
|
+
import co from 'co'
|
|
150
|
+
import Vue from 'vue'
|
|
151
|
+
import FailureShow from '../../components/pc/FailureShow.vue'
|
|
152
|
+
|
|
153
|
+
let getGen = function * (self) {
|
|
154
|
+
yield self.$resetpost(self.$androidUtil.getProxyUrl() +'/af-telephone/rs/path/getService', {data: {id: self.rowOne.id}}, {resolveMsg: null, rejectMsg: null})
|
|
155
|
+
.then((res) => {
|
|
156
|
+
self.service = res.data[0]
|
|
157
|
+
})
|
|
158
|
+
}
|
|
159
|
+
export default {
|
|
160
|
+
title: '工单历史记录',
|
|
161
|
+
data () {
|
|
162
|
+
return {
|
|
163
|
+
curactivity:{},
|
|
164
|
+
attachment:{},
|
|
165
|
+
attachmentShow:false,
|
|
166
|
+
caseimgs:[],
|
|
167
|
+
caseimgshow:false,
|
|
168
|
+
imgshow: false,
|
|
169
|
+
imgfilename: '',
|
|
170
|
+
imgfilenamea: '',
|
|
171
|
+
imgfilenameb: '',
|
|
172
|
+
service: null,
|
|
173
|
+
repaierShow: false,
|
|
174
|
+
isshow: false,
|
|
175
|
+
show: false,
|
|
176
|
+
takeshow: false, // 操作面板显示
|
|
177
|
+
repair: {},
|
|
178
|
+
evaluate: {},
|
|
179
|
+
num: 14,
|
|
180
|
+
wavflie: '',
|
|
181
|
+
iscomplanAllInfo: false, // 是否显示投诉单详情
|
|
182
|
+
complanResult: {}, //投诉单详情信息
|
|
183
|
+
showinfo:false,
|
|
184
|
+
information:'',
|
|
185
|
+
loginUser:{
|
|
186
|
+
name:Vue.user.name,
|
|
187
|
+
ename:Vue.user.ename
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
props: {
|
|
192
|
+
rowOne: { // 传入一条工单信息
|
|
193
|
+
type: Object
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
methods: {
|
|
197
|
+
showAttachment(activity){
|
|
198
|
+
this.attachment = activity
|
|
199
|
+
this.attachmentShow = true
|
|
200
|
+
},
|
|
201
|
+
getcaseimgs(val){
|
|
202
|
+
if(val){
|
|
203
|
+
this.caseimgs = val.split(";")
|
|
204
|
+
}
|
|
205
|
+
this.caseimgshow= true
|
|
206
|
+
},
|
|
207
|
+
caseclose(){
|
|
208
|
+
this.caseimgshow= false
|
|
209
|
+
},
|
|
210
|
+
//添加信息维护
|
|
211
|
+
infoadd(){
|
|
212
|
+
this.showinfo = true
|
|
213
|
+
},
|
|
214
|
+
infoaddsure(){
|
|
215
|
+
if(!this.information){
|
|
216
|
+
return this.$showMessage('请填写维护内容!')
|
|
217
|
+
}
|
|
218
|
+
var data = {
|
|
219
|
+
id :this.service.id,
|
|
220
|
+
f_processid:this.service.f_processid,
|
|
221
|
+
f_content:this.information,
|
|
222
|
+
serviceacitivity : [{}]
|
|
223
|
+
}
|
|
224
|
+
// 将数据发送给业务逻辑
|
|
225
|
+
this.$resetpost(this.$androidUtil.getProxyUrl()+'/af-telephone/rs/logic/telinformation', {model: data, loginUser: this.loginUser},{resolveMsg: null, rejectMsg: null}).then(() => {
|
|
226
|
+
this.$showMessage('维护内容添加成功!',['confirm'])
|
|
227
|
+
this.information = ''
|
|
228
|
+
this.showinfo =false
|
|
229
|
+
this.selfSearch()
|
|
230
|
+
})
|
|
231
|
+
},
|
|
232
|
+
infoclose(){
|
|
233
|
+
this.showinfo =false
|
|
234
|
+
},
|
|
235
|
+
trouble (val) {
|
|
236
|
+
let failureall=''
|
|
237
|
+
// val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
|
|
238
|
+
|
|
239
|
+
let failure = JSON.parse(val)
|
|
240
|
+
for (let i = 0; i <failure.length; i++) {
|
|
241
|
+
if (failure[i].failurecase.length>0){
|
|
242
|
+
failureall+=failure[i].f_failure_type+":"
|
|
243
|
+
for (let j = 0; j < failure[i].failurecase.length; j++) {
|
|
244
|
+
failureall+=failure[i].failurecase[j]
|
|
245
|
+
if (j+1!=failure[i].failurecase.length){
|
|
246
|
+
failureall+=","
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
}else{
|
|
251
|
+
failureall+=failure[i].f_failure_type
|
|
252
|
+
}
|
|
253
|
+
if (i+1!=failure.length){
|
|
254
|
+
failureall+=';'
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return failureall
|
|
258
|
+
},
|
|
259
|
+
// 投诉单详情
|
|
260
|
+
reqComplanResult (index) {
|
|
261
|
+
this.complanResult = Object.assign({}, this.service.serviceacitivity[index])
|
|
262
|
+
this.iscomplanAllInfo = true
|
|
263
|
+
},
|
|
264
|
+
showpicture (val) {
|
|
265
|
+
//tag
|
|
266
|
+
//tag)
|
|
267
|
+
this.imgshow = true
|
|
268
|
+
this.imgfilename = 'rs/image/file/' + val.f_single_path
|
|
269
|
+
this.imgfilenamea = 'rs/image/file/' + val.f_singlea_path
|
|
270
|
+
this.imgfilenameb = 'rs/image/file/' + val.f_singleb_path
|
|
271
|
+
},
|
|
272
|
+
imgclose () {
|
|
273
|
+
this.imgshow = false
|
|
274
|
+
},
|
|
275
|
+
renew () {
|
|
276
|
+
this.takeshow = false
|
|
277
|
+
},
|
|
278
|
+
clean () {
|
|
279
|
+
this.takeshow = false
|
|
280
|
+
},
|
|
281
|
+
takett () {
|
|
282
|
+
this.takeshow = true
|
|
283
|
+
},
|
|
284
|
+
playWav (val) {
|
|
285
|
+
let condition = `id = '${val}'`
|
|
286
|
+
let result = ''
|
|
287
|
+
this.$resetpost(`${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/tel_singleTable`, {
|
|
288
|
+
data: {
|
|
289
|
+
items: 'recordfile', tablename: 't_records',
|
|
290
|
+
condition: condition, orderitem: 'outltime'
|
|
291
|
+
}
|
|
292
|
+
}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
293
|
+
result = res.data
|
|
294
|
+
this.wavflie = result[0].recordfile
|
|
295
|
+
this.show = true
|
|
296
|
+
})
|
|
297
|
+
},
|
|
298
|
+
closemodel () {
|
|
299
|
+
this.wavflie = ''
|
|
300
|
+
this.show = false
|
|
301
|
+
},
|
|
302
|
+
getReciever (val) {
|
|
303
|
+
let str = val.f_reciever
|
|
304
|
+
var i = parseInt(str)
|
|
305
|
+
if (isNaN(i)) {
|
|
306
|
+
return val.f_reciever
|
|
307
|
+
}
|
|
308
|
+
return val.f_meetunit
|
|
309
|
+
},
|
|
310
|
+
selfSearch () {
|
|
311
|
+
if (!this.rowOne) {
|
|
312
|
+
return
|
|
313
|
+
}
|
|
314
|
+
if (this.rowOne.f_workorder_type != '报修单' && this.rowOne.f_workorder_type != '置换通气单' && this.rowOne.f_workorder_type != '安装单' && this.rowOne.f_workorder_type != '投诉单' && this.rowOne.f_workorder_type != '咨询单') {
|
|
315
|
+
this.service = this.rowOne
|
|
316
|
+
} else {
|
|
317
|
+
let gen = getGen(this)
|
|
318
|
+
co(gen)
|
|
319
|
+
}
|
|
320
|
+
// if (this.rowOne.processins) {
|
|
321
|
+
// this.service = this.rowOne
|
|
322
|
+
// } else {
|
|
323
|
+
// let gen = getGen(this)
|
|
324
|
+
// co(gen)
|
|
325
|
+
// }
|
|
326
|
+
},
|
|
327
|
+
getrepair () {
|
|
328
|
+
// if(!this.rowOne) {
|
|
329
|
+
// return
|
|
330
|
+
// }
|
|
331
|
+
let gen = getrepairGen(this)
|
|
332
|
+
co(gen)
|
|
333
|
+
},
|
|
334
|
+
repairlist (index) {
|
|
335
|
+
this.curactivity = Object.assign({}, this.service.serviceacitivity[index])
|
|
336
|
+
//tag
|
|
337
|
+
//tag)
|
|
338
|
+
// this.repaierShow = true
|
|
339
|
+
this.$goto('new-repair-paper', {service:this.service,curactivity: this.curactivity}, 'self')
|
|
340
|
+
},
|
|
341
|
+
close () {
|
|
342
|
+
this.repaierShow = false
|
|
343
|
+
},
|
|
344
|
+
discuss () {
|
|
345
|
+
//tag
|
|
346
|
+
this.isshow = true
|
|
347
|
+
},
|
|
348
|
+
closeevaluate () {
|
|
349
|
+
this.isshow = false
|
|
350
|
+
},
|
|
351
|
+
// 评论完成
|
|
352
|
+
saveevaluate (val) {
|
|
353
|
+
//tag
|
|
354
|
+
this.isshow = false
|
|
355
|
+
this.$refs.evaluate.init(this.evaluate.f_type, this.evaluate.f_middle_id).then(() => {
|
|
356
|
+
})
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
watch: {
|
|
360
|
+
'rowOne' () {
|
|
361
|
+
this.selfSearch()
|
|
362
|
+
//tag
|
|
363
|
+
//tag
|
|
364
|
+
},
|
|
365
|
+
'service' (val) {
|
|
366
|
+
if (val) {
|
|
367
|
+
this.evaluate = {
|
|
368
|
+
f_type: val.f_workorder_type,
|
|
369
|
+
f_middle_id: val.f_service_id
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
ready () {
|
|
375
|
+
this.selfSearch()
|
|
376
|
+
|
|
377
|
+
},
|
|
378
|
+
components: {
|
|
379
|
+
'failure-show': FailureShow
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
</script>
|
|
383
|
+
<style scoped lang="less">
|
|
384
|
+
.workOrderInfo{
|
|
385
|
+
.row {
|
|
386
|
+
div {
|
|
387
|
+
margin-top: 10px;
|
|
388
|
+
[readonly] {
|
|
389
|
+
background-color:#eeeeee;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
</style>
|
|
@@ -187,6 +187,9 @@ export default {
|
|
|
187
187
|
}
|
|
188
188
|
},
|
|
189
189
|
props: {
|
|
190
|
+
user:{
|
|
191
|
+
type: Object
|
|
192
|
+
},
|
|
190
193
|
callObj: {
|
|
191
194
|
type: Object
|
|
192
195
|
},
|
|
@@ -324,6 +327,11 @@ export default {
|
|
|
324
327
|
},
|
|
325
328
|
'callObj.callNum'() {
|
|
326
329
|
this.$refs.paged.$refs.criteria.model.f_phone = this.callObj.callNum
|
|
330
|
+
this.$refs.paged.$refs.criteria.search()
|
|
331
|
+
},
|
|
332
|
+
'user'(){
|
|
333
|
+
// this.$refs.paged.$refs.criteria.model.f_phone = this.user.f_user_phone
|
|
334
|
+
// this.$refs.paged.$refs.criteria.search()
|
|
327
335
|
}
|
|
328
336
|
},
|
|
329
337
|
computed: {
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
</div>
|
|
7
7
|
<div class="tab-content span">
|
|
8
8
|
<timeline style="margin-left: 20px"
|
|
9
|
-
|
|
9
|
+
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'|| service.f_workorder_type=='投诉单'||service.f_workorder_type=='咨询单'">
|
|
10
10
|
<timeline-item-tel v-for="activity in service.serviceacitivity"
|
|
11
11
|
:color="$index === service.serviceacitivity.length - 1 ? 'blue' : 'default'"
|
|
12
|
-
|
|
12
|
+
:isblue="$index === service.serviceacitivity.length - 1 ? true : false">
|
|
13
13
|
<!-- 派单 -->
|
|
14
14
|
<div style="margin-top: 5px" v-if="activity.type === 't_servicesend'">
|
|
15
15
|
<p>{{ activity.f_date }}</p>
|
|
@@ -81,7 +81,7 @@ import Vue from 'vue'
|
|
|
81
81
|
import FailureShow from '../../../components/pc/FailureShow.vue'
|
|
82
82
|
|
|
83
83
|
let getGen = function * (self) {
|
|
84
|
-
yield self.$resetpost('af-telephone/rs/path/getService', {data: {id: self.rowOne.id}}, {resolveMsg: null, rejectMsg: null})
|
|
84
|
+
yield self.$resetpost(self.$androidUtil.getProxyUrl() +'/af-telephone/rs/path/getService', {data: {id: self.rowOne.id}}, {resolveMsg: null, rejectMsg: null})
|
|
85
85
|
.then((res) => {
|
|
86
86
|
self.service = res.data[0]
|
|
87
87
|
})
|
|
@@ -129,9 +129,9 @@ export default {
|
|
|
129
129
|
this.attachmentShow = true
|
|
130
130
|
},
|
|
131
131
|
getcaseimgs(val){
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
132
|
+
if(val){
|
|
133
|
+
this.caseimgs = val.split(";")
|
|
134
|
+
}
|
|
135
135
|
this.caseimgshow= true
|
|
136
136
|
},
|
|
137
137
|
caseclose(){
|
|
@@ -152,11 +152,11 @@ export default {
|
|
|
152
152
|
serviceacitivity : [{}]
|
|
153
153
|
}
|
|
154
154
|
// 将数据发送给业务逻辑
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
155
|
+
this.$resetpost(this.$androidUtil.getProxyUrl() +'/af-telephone/rs/logic/telinformation', {model: data, loginUser: this.loginUser},{resolveMsg: null, rejectMsg: null}).then(() => {
|
|
156
|
+
this.$showMessage('维护内容添加成功!',['confirm'])
|
|
157
|
+
this.information = ''
|
|
158
|
+
this.showinfo =false
|
|
159
|
+
this.selfSearch()
|
|
160
160
|
})
|
|
161
161
|
},
|
|
162
162
|
infoclose(){
|
|
@@ -164,7 +164,7 @@ export default {
|
|
|
164
164
|
},
|
|
165
165
|
trouble (val) {
|
|
166
166
|
let failureall=''
|
|
167
|
-
|
|
167
|
+
// val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
|
|
168
168
|
|
|
169
169
|
let failure = JSON.parse(val)
|
|
170
170
|
for (let i = 0; i <failure.length; i++) {
|
|
@@ -214,7 +214,7 @@ export default {
|
|
|
214
214
|
playWav (val) {
|
|
215
215
|
let condition = `id = '${val}'`
|
|
216
216
|
let result = ''
|
|
217
|
-
this.$resetpost(
|
|
217
|
+
this.$resetpost( `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/tel_singleTable`, {
|
|
218
218
|
data: {
|
|
219
219
|
items: 'recordfile', tablename: 't_records',
|
|
220
220
|
condition: condition, orderitem: 'outltime'
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
<template >
|
|
2
|
+
<!-- <case-container path="rs/file/vue/工单派发.vue" :data="data" :special="type"></case-container> -->
|
|
3
|
+
|
|
4
|
+
<div id="pc-diswork-page" class="flex" v-show="!saveing">
|
|
5
|
+
<work-busy :is-busy="saveing" v-show="saveing"></work-busy>
|
|
6
|
+
<!--<label class="control-label text-justify p-left-10" style="line-height: 27px; font-weight: bold;width: 80px">工单类型</label>-->
|
|
7
|
+
<!--<ul class="nav nav-tabs" style="display: inline-block;">
|
|
8
|
+
<li :class="{active: worktype === '咨询单'}" v-if="meading == '转站点'"><a class="f_size" href="javascript:void(0)" @click="handWork('咨询单')">咨询单</a></li>
|
|
9
|
+
<li :class="{active: worktype === '投诉单' }" v-if="meading == '转站点'"><a class="f_size" href="javascript:void(0)" @click="handWork('投诉单')">投诉单</a></li>
|
|
10
|
+
<li :class="{active: worktype === '报修单' }"><a class="f_size" href="javascript:void(0)" @click="handWork('报修单')">报修单</a></li>
|
|
11
|
+
<li :class="{active: worktype === '置换通气' }"><a class="f_size" href="javascript:void(0)" @click="handWork('置换通气')">置换通气</a></li>
|
|
12
|
+
<li :class="{active: worktype === '工单处理' }"><a class="f_size" href="javascript:void(0)" @click="handWork('工单处理')">工单处理</a></li>
|
|
13
|
+
<!–<li :class="{active: worktype === '安装单' }"><a href="javascript:void(0)" @click="handWork('安装单')">安装单</a></li>–>
|
|
14
|
+
</ul>-->
|
|
15
|
+
<ul class="nav nav-pills span" style="height:auto;margin:8px 0px;padding:4px 0;border-bottom: 1px solid #e7e7e7;" class="nav nav-tabs" >
|
|
16
|
+
<li v-if="meading == '转站点'"><a :style="selectFiled == '咨询单'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '咨询单','tel_f_size':selectFiled != '咨询单'}" href="javascript:void(0)" @click="setField('咨询单')">咨询单</a></li>
|
|
17
|
+
<li v-if="meading == '转站点'"><a :style="selectFiled == '投诉单'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '投诉单','tel_f_size':selectFiled != '投诉单'}" href="javascript:void(0)" @click="setField('投诉单')">投诉单</a></li>
|
|
18
|
+
<li ><a :style="selectFiled == '报修单'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '报修单','tel_f_size':selectFiled != '报修单'}" href="javascript:void(0)" @click="setField('报修单')">报修单</a></li>
|
|
19
|
+
<li v-if="asp == 'true'" ><a :style="selectFiled == '置换通气'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '置换通气','tel_f_size':selectFiled != '置换通气'}" href="javascript:void(0)" @click="setField('置换通气')">置换通气</a></li>
|
|
20
|
+
<li ><a :style="selectFiled == '工单处理'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '工单处理','tel_f_size':selectFiled != '工单处理'}" href="javascript:void(0)" @click="setField('工单处理')">工单处理</a></li>
|
|
21
|
+
</ul>
|
|
22
|
+
<div class="tab-content span" style="overflow-y: auto">
|
|
23
|
+
<seek-work v-show="worktype === '咨询单'" v-if="meading == '转站点'" :data='user' :cleantf="cleanstart" :call-obj="callObj" :login-user="loginUser" v-on:commitsus="commit"></seek-work>
|
|
24
|
+
<complain-work v-show="worktype === '投诉单'" v-if="meading == '转站点'" :data='user' :cleantf="cleanstart" :call-obj="callObj" :login-user="loginUser" v-on:commitsus="commit"></complain-work>
|
|
25
|
+
<repairs-work v-show="worktype === '报修单'" :data='user' :cleantf="cleanstart" :type="type" :call-obj="callObj" :login-user="loginUser" :meading="'转维修员'" :telsource="meading"v-on:commitsus="commit"></repairs-work>
|
|
26
|
+
<gas-work v-show="worktype === '置换通气'" :cleantf="cleanstart" :type="type" :call-obj="callObj" :login-user="loginUser" :meading="'转维修员'" v-on:saveend="saveend" v-on:saveing="savestart" v-on:commitsus="commit"></gas-work>
|
|
27
|
+
<!--<install-work v-show="worktype === '安装单'" :cleantf="cleanstart" :type="type" :call-obj="callObj" :login-user="loginUser" :meading="meading" v-on:saveend="saveend" v-on:saveing="savestart" v-on:commitsus="commit"></install-work>-->
|
|
28
|
+
<work-center v-show="worktype === '工单处理'" :data='user' :call-obj="callObj" :meading="meading"></work-center>
|
|
29
|
+
</div>
|
|
30
|
+
<!--<button type="button" name="button" class="btn btn-primary btn-sm fr btn-img-cl" @click="handWork('工单处理')" >
|
|
31
|
+
工 单 处 理
|
|
32
|
+
<span class="badge" >{{works}}</span>
|
|
33
|
+
</button>-->
|
|
34
|
+
<!--<div>
|
|
35
|
+
<seek-work v-show="worktype === '咨询单'" :data='user' :cleantf="cleanstart" :call-obj="callObj" :login-user="loginUser" v-on:commitsus="commit"></seek-work>
|
|
36
|
+
<complain-work v-show="worktype === '投诉单'" :data='user' :cleantf="cleanstart" :call-obj="callObj" :login-user="loginUser" v-on:commitsus="commit"></complain-work>
|
|
37
|
+
<repairs-work v-show="worktype === '报修单'" :data='user' :cleantf="cleanstart" :type="type" :call-obj="callObj" :login-user="loginUser" :meading="'转维修员'" v-on:commitsus="commit"></repairs-work>
|
|
38
|
+
<gas-work v-show="worktype === '置换通气'" :cleantf="cleanstart" :type="type" :call-obj="callObj" :login-user="loginUser" :meading="'转维修员'" v-on:saveend="saveend" v-on:saveing="savestart" v-on:commitsus="commit"></gas-work>
|
|
39
|
+
<!–<install-work v-show="worktype === '安装单'" :cleantf="cleanstart" :type="type" :call-obj="callObj" :login-user="loginUser" :meading="meading" v-on:saveend="saveend" v-on:saveing="savestart" v-on:commitsus="commit"></install-work>–>
|
|
40
|
+
<work-center v-show="worktype === '工单处理'" :data='user' :call-obj="callObj" :meading="meading"></work-center>
|
|
41
|
+
</div>-->
|
|
42
|
+
</div>
|
|
43
|
+
</template>
|
|
44
|
+
|
|
45
|
+
<script>
|
|
46
|
+
export default {
|
|
47
|
+
title: '工单派发',
|
|
48
|
+
data () {
|
|
49
|
+
return {
|
|
50
|
+
worktype: '工单处理',
|
|
51
|
+
row: '',
|
|
52
|
+
cleanstart:0,
|
|
53
|
+
saveing:false,
|
|
54
|
+
selectFiled:'工单处理',
|
|
55
|
+
asp:'false'
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
props: {
|
|
59
|
+
meading:{
|
|
60
|
+
type: String,
|
|
61
|
+
default: '转站点'
|
|
62
|
+
},
|
|
63
|
+
user: {},
|
|
64
|
+
type: {},
|
|
65
|
+
works: {},
|
|
66
|
+
callObj: {
|
|
67
|
+
type: Object
|
|
68
|
+
},
|
|
69
|
+
loginUser: {
|
|
70
|
+
type: Object
|
|
71
|
+
},
|
|
72
|
+
findid:{
|
|
73
|
+
type:Number
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
ready(){
|
|
77
|
+
this.asp=this.$appdata.getSingleValue('置换通气')
|
|
78
|
+
if(this.meading == '转维修员'){
|
|
79
|
+
this.worktype = '报修单'
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
methods: {
|
|
83
|
+
setField(type){
|
|
84
|
+
this.selectFiled=type
|
|
85
|
+
this.worktype = type
|
|
86
|
+
},
|
|
87
|
+
saveend(){
|
|
88
|
+
this.saveing = false
|
|
89
|
+
},
|
|
90
|
+
savestart(){
|
|
91
|
+
this.saveing = true
|
|
92
|
+
},
|
|
93
|
+
handWork (type) {
|
|
94
|
+
this.worktype = type
|
|
95
|
+
},
|
|
96
|
+
commit(val){
|
|
97
|
+
this.cleanstart += 1
|
|
98
|
+
this.$emit('commit',val)
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
events:{
|
|
102
|
+
distribute(val){
|
|
103
|
+
//tag
|
|
104
|
+
this.$dispatch('useroperate',val)
|
|
105
|
+
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
watch: {
|
|
109
|
+
'worktype' () {
|
|
110
|
+
var ev = new Event("resize", {"bubbles":true, "cancelable":false});
|
|
111
|
+
window.dispatchEvent(ev);
|
|
112
|
+
},
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
</script>
|
|
116
|
+
<style lang="less">
|
|
117
|
+
#pc-diswork-page .row, #pc-diswork-page .form-input-group {
|
|
118
|
+
margin: 5px 0px;
|
|
119
|
+
height: auto;
|
|
120
|
+
}
|
|
121
|
+
/* 禁止textarea横向拉伸 */
|
|
122
|
+
.ver-textarea {
|
|
123
|
+
resize: vertical;
|
|
124
|
+
}
|
|
125
|
+
.btn-img (@url) {
|
|
126
|
+
width: 100px;
|
|
127
|
+
background-image: url("@{url}");
|
|
128
|
+
background-size: 20px;
|
|
129
|
+
background-position: 5px;
|
|
130
|
+
text-align: right;
|
|
131
|
+
background-repeat: no-repeat;
|
|
132
|
+
border-radius:0px;
|
|
133
|
+
font-size:12px;
|
|
134
|
+
height: 28px;
|
|
135
|
+
}
|
|
136
|
+
#pc-diswork-page .btn-img-cl {
|
|
137
|
+
.btn-img('../../../assets/gongdantixing.png');
|
|
138
|
+
}
|
|
139
|
+
#pc-diswork-page .btn-img-re {
|
|
140
|
+
.btn-img('../../../assets/chongxinpaifa.png');
|
|
141
|
+
margin-right: 10px;
|
|
142
|
+
}
|
|
143
|
+
.tel_voiceActive{
|
|
144
|
+
font-family: PingFang-SC-Bold;
|
|
145
|
+
font-size: 16px;
|
|
146
|
+
font-weight: normal!important;
|
|
147
|
+
font-stretch: normal!important;
|
|
148
|
+
line-height: 18px;
|
|
149
|
+
letter-spacing: 0px;
|
|
150
|
+
color: #333333!important;
|
|
151
|
+
border-bottom: 3px solid #599fe5;
|
|
152
|
+
padding:10px 10px!important;
|
|
153
|
+
}
|
|
154
|
+
.tel_f_size{
|
|
155
|
+
font-family: PingFang-SC-Medium;
|
|
156
|
+
font-size: 16px;
|
|
157
|
+
font-weight: normal;
|
|
158
|
+
font-stretch: normal;
|
|
159
|
+
line-height: 18px;
|
|
160
|
+
letter-spacing: 0px;
|
|
161
|
+
color: #666666!important;
|
|
162
|
+
padding:10px 10px!important;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/*#pc-diswork-page {
|
|
166
|
+
position: relative;
|
|
167
|
+
margin-top: -5px;
|
|
168
|
+
}
|
|
169
|
+
#pc-diswork-page button {
|
|
170
|
+
position: absolute;
|
|
171
|
+
right: 15px;
|
|
172
|
+
bottom: 5px;
|
|
173
|
+
}
|
|
174
|
+
.form-input-group .form-control {
|
|
175
|
+
}*/
|
|
176
|
+
</style>
|
|
177
|
+
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
// 分公司特殊组件页面注册
|
|
1
|
+
// 分公司特殊组件页面注册distribute-work
|
|
2
2
|
import Vue from "vue";
|
|
3
3
|
|
|
4
4
|
//pc和手机分别注册到两个文件中
|
|
5
5
|
let specialComp = {
|
|
6
6
|
// 工单详情子组件
|
|
7
7
|
'telloss-list': (resolve) => { require(['./pc/TelLossList'], resolve) },
|
|
8
|
+
'distribute-work': (resolve) => { require(['./pc/DistributeWork'], resolve) },
|
|
8
9
|
'visit-info': (resolve) => { require(['./pc/VisitInfo'], resolve) }
|
|
9
10
|
}
|
|
10
11
|
exports.specialComp = specialComp
|