telephone-clients 4.0.0-1-88 → 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,650 +1,650 @@
|
|
|
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 style="padding:0px 0px 10px 0px;margin-left: 20px;overflow: auto;" id="work-history">-->
|
|
9
|
-
|
|
10
|
-
<div class="row">
|
|
11
|
-
<label class="col-sm-4 ">工单编号:</label>
|
|
12
|
-
<span class="col-sm-8">{{ service?service.f_service_id:'***********' }}</span>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="row"
|
|
15
|
-
v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
16
|
-
<label class="col-sm-4 ">当前状态:</label>
|
|
17
|
-
<span class="col-sm-8">{{ rowOne.defname }}</span>
|
|
18
|
-
</div>
|
|
19
|
-
<div class="row">
|
|
20
|
-
<label class="col-sm-4 ">工单时间:</label>
|
|
21
|
-
<span class="col-sm-8">{{ service?service.f_created_date:'****年**月**日' }}</span>
|
|
22
|
-
</div>
|
|
23
|
-
<div class="row" v-if="service.f_workorder_type=='置换通气单'||service.f_workorder_type=='安装单'">
|
|
24
|
-
<label class="col-sm-4 ">预约时间:</label>
|
|
25
|
-
<span class="col-sm-8">{{ service.f_yuyue_date == '1900-01-01 00:00:00' ? '' : service.f_yuyue_date }}</span>
|
|
26
|
-
</div>
|
|
27
|
-
<div class="row">
|
|
28
|
-
<label class="col-sm-4 ">客户姓名:</label>
|
|
29
|
-
<span class="col-sm-8">{{ service?service.f_user_name:'***' }}</span>
|
|
30
|
-
</div>
|
|
31
|
-
<div class="row">
|
|
32
|
-
<label class="col-sm-4 ">来电电话:</label>
|
|
33
|
-
<span class="col-sm-8">{{ service?service.f_phone:'***********' }}</span>
|
|
34
|
-
</div>
|
|
35
|
-
<div class="row">
|
|
36
|
-
<label class="col-sm-4 ">联系电话:</label>
|
|
37
|
-
<span class="col-sm-8">{{ service?service.f_contact_phone:'***********' }}</span>
|
|
38
|
-
</div>
|
|
39
|
-
<div class="row" v-if="service.f_workorder_type=='报修单'">
|
|
40
|
-
<label class="col-sm-4 ">报修类型:</label>
|
|
41
|
-
<span class="col-sm-8">{{ service.f_repairtype }}</span>
|
|
42
|
-
</div>
|
|
43
|
-
<!-- <p>工单编号: <span class="fwb">{{service.f_service_id}}</span></p>-->
|
|
44
|
-
<!-- <p v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'" >当前状态: <span class="fwb">{{rowOne.processins.activities[0].defname}}</span></p>-->
|
|
45
|
-
<!-- <p>工单时间: <span class="fwb">{{service.f_created_date}}</span></p>-->
|
|
46
|
-
<!-- <p v-if="service.f_workorder_type=='置换通气单'||service.f_workorder_type=='安装单'" >预约时间: <span class="fwb">{{service.f_yuyue_date}}</span></p>-->
|
|
47
|
-
<!-- <p>客户姓名: <span class="fwb">{{service.f_user_name}}</span></p>-->
|
|
48
|
-
<!-- <p>来电电话: <span class="fwb">{{service.f_phone}}</span></p>-->
|
|
49
|
-
<!-- <p v-if="service.f_workorder_type=='报修单'">报修类型: <span class="fwb">{{service.f_repairtype}}</span></p>-->
|
|
50
|
-
<div class="row"
|
|
51
|
-
v-if="service.f_workorder_type!=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
52
|
-
<label class="col-sm-4 ">工单内容:</label>
|
|
53
|
-
<span class="col-sm-8">{{ service.f_content }}</span>
|
|
54
|
-
</div>
|
|
55
|
-
<div class="row">
|
|
56
|
-
<label class="col-sm-4 ">客户编号:</label>
|
|
57
|
-
<span class="col-sm-8">{{ service.f_userinfo_code }}</span>
|
|
58
|
-
</div>
|
|
59
|
-
<div class="row" v-if="service.f_workorder_type=='报修单'">
|
|
60
|
-
<label class="col-sm-4 ">客户表号:</label>
|
|
61
|
-
<span class="col-sm-8">{{ service.f_meternumber }}</span>
|
|
62
|
-
</div>
|
|
63
|
-
<div class="row">
|
|
64
|
-
<label class="col-sm-4 ">用户地址:</label>
|
|
65
|
-
<span class="col-sm-8">{{ service.f_address }}</span>
|
|
66
|
-
</div>
|
|
67
|
-
<div class="row">
|
|
68
|
-
<label class="col-sm-4 ">工单备注:</label>
|
|
69
|
-
<span class="col-sm-8">{{ service.f_remarks }}</span>
|
|
70
|
-
</div>
|
|
71
|
-
<!-- <p v-if="service.f_workorder_type!=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'" >工单内容: <span class="fwb">{{service.f_content}}</span></p>-->
|
|
72
|
-
<!-- <p v-if="service.f_workorder_type=='报修单'" >客户编号: <span class="fwb">{{service.f_userinfo_code}}</span></p>-->
|
|
73
|
-
<!-- <p v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'" >用户地址: <span class="fwb">{{service.f_address}}</span></p>-->
|
|
74
|
-
<!-- <p >备注: <span class="fwb">{{service.f_remarks}}</span></p>-->
|
|
75
|
-
|
|
76
|
-
<!-- <p v-if="rowOne.f_single_path||rowOne.f_singlea_path ||rowOne.f_singleb_path"> <button-link type="button" class="btn btn-link" @click="showpicture(rowOne)">抢修图片-->
|
|
77
|
-
<!-- </button-link></p>-->
|
|
78
|
-
<!--<button v-if="service.f_workorder_type=='报修单'" class="btn btn-success" @click="discuss">评价</button>-->
|
|
79
|
-
<div class="row"
|
|
80
|
-
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
81
|
-
<label class="col-sm-4 ">指导建议:</label>
|
|
82
|
-
<span class="col-sm-8">{{ service.f_advice }}</span>
|
|
83
|
-
</div>
|
|
84
|
-
<div class="row"
|
|
85
|
-
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
86
|
-
<label class="col-sm-4 ">故障明细:</label>
|
|
87
|
-
<span class="col-sm-8">{{ service.f_source == '物联网表异常' ? service.f_error_msg : trouble(service.failure)}}</span>
|
|
88
|
-
</div>
|
|
89
|
-
<div class="row" v-if="service">
|
|
90
|
-
<label class="col-sm-4 ">信息维护:</label>
|
|
91
|
-
<span class="col-sm-8">
|
|
92
|
-
<button type="button" class="btn-link btn"
|
|
93
|
-
@click="infoadd()">工单信息补充
|
|
94
|
-
</button>
|
|
95
|
-
</span>
|
|
96
|
-
</div>
|
|
97
|
-
<!-- 工单的流转时间轴信息,每个活动的内容各不相同 -->
|
|
98
|
-
</div>
|
|
99
|
-
<div class="panel-heading auto" style="text-align: center" v-show="service.serviceacitivity.length>0">
|
|
100
|
-
<h4 style="display:inline-block;margin-top: auto">工单历史</h4>
|
|
101
|
-
</div>
|
|
102
|
-
<div class="tab-content span">
|
|
103
|
-
<timeline style="margin-left: 20px"
|
|
104
|
-
v-if="service.f_workorder_type=='换表单' ||service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'|| service.f_workorder_type=='投诉单'||service.f_workorder_type=='咨询单'">
|
|
105
|
-
<timeline-item-tel v-for="activity in service.serviceacitivity"
|
|
106
|
-
:color="$index === service.serviceacitivity.length - 1 ? 'blue' : 'default'"
|
|
107
|
-
:isblue="$index === service.serviceacitivity.length - 1 ? true : false">
|
|
108
|
-
<!-- 派单 -->
|
|
109
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_servicesend'">
|
|
110
|
-
<p>{{ activity.f_date }}</p>
|
|
111
|
-
<p>{{ activity.f_name }}派单给{{ getReciever(activity) }}</p>
|
|
112
|
-
</div>
|
|
113
|
-
<!-- 工单打回 -->
|
|
114
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_service_back'">
|
|
115
|
-
<p>{{ activity.f_date }}</p>
|
|
116
|
-
<p>{{ activity.f_operator }}将工单{{activity.f_back_type}}</p>
|
|
117
|
-
<p v-if="activity.f_remarks">原因:{{ activity.f_remarks }}</p>
|
|
118
|
-
</div>
|
|
119
|
-
<!-- 工单打回 工单打回旧版使用t_site_back,兼容之前的逻辑。新版本无需调整此项-->
|
|
120
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_site_back'">
|
|
121
|
-
<p>{{ activity.f_site_back_date }}</p>
|
|
122
|
-
<p>{{ activity.f_site_back_name }}将工单打回</p>
|
|
123
|
-
<p>原因:{{ activity.f_site_back_reason }}</p>
|
|
124
|
-
</div>
|
|
125
|
-
<!-- 未维修,属于维修员打回 兼容之前的逻辑。新版本无需调整此项 -->
|
|
126
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_notwork'">
|
|
127
|
-
<p>{{ activity.f_date }}</p>
|
|
128
|
-
<p>{{ activity.f_name }}未处理</p>
|
|
129
|
-
<p>原因:{{ activity.f_reason }}</p>
|
|
130
|
-
</div>
|
|
131
|
-
<!-- 用户催单 -->
|
|
132
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_reminder'">
|
|
133
|
-
<p>用户催单</p>
|
|
134
|
-
<p>{{ activity.f_reminder_date }}</p>
|
|
135
|
-
<p>操作人:{{ activity.f_operator_name }}</p>
|
|
136
|
-
<p>催单内容:{{ activity.f_content }}</p>
|
|
137
|
-
</div>
|
|
138
|
-
<!-- 工单撤回 -->
|
|
139
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_recall'">
|
|
140
|
-
<p>{{ activity.f_recall_date }}</p>
|
|
141
|
-
<p>{{ activity.f_recall_name }}撤回工单</p>
|
|
142
|
-
<p>备注:{{ activity.f_remarks }}</p>
|
|
143
|
-
<button
|
|
144
|
-
v-if="activity.f_return_path || activity.f_return_record"
|
|
145
|
-
type="button" name="button" style="margin-left: 0px" class="button_spacing button_search-1"
|
|
146
|
-
@click="showAttachment(activity)">附件查看
|
|
147
|
-
</button>
|
|
148
|
-
</div>
|
|
149
|
-
<!-- 工单信息补充 -->
|
|
150
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_telinformation'">
|
|
151
|
-
<p>{{ activity.f_information_date }}</p>
|
|
152
|
-
<p>{{ activity.f_operator_name }}进行信息补充</p>
|
|
153
|
-
<p>维护内容:{{ activity.f_content }}</p>
|
|
154
|
-
</div>
|
|
155
|
-
<!-- 一次维修 -->
|
|
156
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_servicework'">
|
|
157
|
-
<p>入户时间: {{ activity.f_date_come }}</p>
|
|
158
|
-
<p>离开时间: {{ activity.f_date_leave }}</p>
|
|
159
|
-
<!--<img-self v-for="img in activity.imgs" :src="`rs/file/getfile/${img.imgid}`" alt="测试" :width="150"-->
|
|
160
|
-
<!--:height="200"></img-self>-->
|
|
161
|
-
<p>接单员: {{ activity.f_name }} 完成结果: {{ activity.f_result_status }}
|
|
162
|
-
</p>
|
|
163
|
-
<p v-if="activity.f_result_status === '未完成'">原因: {{ activity.f_reason }}
|
|
164
|
-
</p>
|
|
165
|
-
<button
|
|
166
|
-
v-if="activity.f_result_status !== '未完成'"
|
|
167
|
-
type="button" name="button"style="margin-left: 0px" class="button_spacing button_search-1"
|
|
168
|
-
@click="repairlist($index)">查看详情
|
|
169
|
-
</button>
|
|
170
|
-
<!-- <span class="btn btn-link add-postition" >详情</span>-->
|
|
171
|
-
</div>
|
|
172
|
-
<!-- 工单结案 -->
|
|
173
|
-
<div style="margin-top: 5px" v-if="activity.type === 't_serviceend'">
|
|
174
|
-
<p>{{ activity.f_date }}</p>
|
|
175
|
-
<p>{{ activity.f_name }}结束工单,备注:{{ activity.f_caseremarks }} {{activity.f_remakes}}</p>
|
|
176
|
-
<span class="btn btn-link add-postition" v-if="activity.f_caseimgs" @click="getcaseimgs(activity.f_caseimgs)">结案照片</span>
|
|
177
|
-
</div>
|
|
178
|
-
<!-- 投诉处理 -->
|
|
179
|
-
<div style="margin-top: 5px" v-if="rowOne.f_workorder_type === '投诉单' && activity.type === 't_complanintend'">
|
|
180
|
-
<p>{{ activity.f_date }}</p>
|
|
181
|
-
<p>{{ activity.f_name }}处理了投诉单</p>
|
|
182
|
-
<span class="btn btn-link add-postition" @click="reqComplanResult($index)">详情</span>
|
|
183
|
-
</div>
|
|
184
|
-
<!--咨询单处理 -->
|
|
185
|
-
<div style="margin-top: 5px" v-if="rowOne.f_workorder_type === '咨询单'&& activity.type === 't_complanintend'">
|
|
186
|
-
<p>{{ activity.f_date }}</p>
|
|
187
|
-
<p>{{ activity.f_name }}处理了咨询单</p>
|
|
188
|
-
<span class="btn btn-link add-postition" @click="reqComplanResult($index)">详情</span>
|
|
189
|
-
</div>
|
|
190
|
-
</timeline-item-tel>
|
|
191
|
-
</timeline>
|
|
192
|
-
<!--<button v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'" class="btn btn-success" @click="discuss">评价</button>-->
|
|
193
|
-
<!--<button v-if="service"class="btn btn-success" @click="takett">操作</button>-->
|
|
194
|
-
<div v-show="service.f_record_sound.length>0">
|
|
195
|
-
<button-link type="button" class="btn btn-link" @click="playWav(service.f_record_sound)">播放录音</button-link>
|
|
196
|
-
</div>
|
|
197
|
-
<!-- <evaluate-list :evaluate="evaluate" :shownum="num" v-ref:evaluate></evaluate-list>-->
|
|
198
|
-
<modal :show.sync="repaierShow" large="true" v-ref:modal backdrop="false">
|
|
199
|
-
<header slot="modal-header" class="modal-header">
|
|
200
|
-
工单详情
|
|
201
|
-
</header>
|
|
202
|
-
<article slot="modal-body" class="modal-body">
|
|
203
|
-
<div class="from-group col-smm-12 col-md-12 col-xs-12" v-if="repaierShow">
|
|
204
|
-
<repair-order :show="true" :row="service" system="pc" :repair="curactivity">
|
|
205
|
-
</repair-order>
|
|
206
|
-
</div>
|
|
207
|
-
</article>
|
|
208
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
209
|
-
<button type="button" class="btn btn-success" @click='close'>确认</button>
|
|
210
|
-
</footer>
|
|
211
|
-
</modal>
|
|
212
|
-
<modal :show.sync="caseimgshow" large="true" backdrop="false">
|
|
213
|
-
<header slot="modal-header" class="modal-header">
|
|
214
|
-
结案照片
|
|
215
|
-
</header>
|
|
216
|
-
<article slot="modal-body" class="modal-body">
|
|
217
|
-
<div class="row">
|
|
218
|
-
<div class="img col-sm-4 " v-for="file in caseimgs">
|
|
219
|
-
<img-self-tel-plus :src="'/'+file.substring(3)" width="120" height="150"></img-self-tel-plus>
|
|
220
|
-
</div>
|
|
221
|
-
</div>
|
|
222
|
-
</article>
|
|
223
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
224
|
-
<button type="button" class="btn btn-success" @click='caseclose'>确认</button>
|
|
225
|
-
</footer>
|
|
226
|
-
</modal>
|
|
227
|
-
<div v-if="show">
|
|
228
|
-
<modal :show.sync="show" v-ref:modal1 backdrop="false">
|
|
229
|
-
<header slot="modal-header" class="modal-header">
|
|
230
|
-
<h2 class="modal-title">正在播放{{ wavflie }}语音文件</h2>
|
|
231
|
-
</header>
|
|
232
|
-
<article slot="modal-body" class="modal-body">
|
|
233
|
-
<audio controls>
|
|
234
|
-
<source src="{{'/Dual/GetWAV/'+wavflie+'.wav'}}" type="audio/wav">
|
|
235
|
-
您的浏览器不支持 audio 元素。
|
|
236
|
-
</audio>
|
|
237
|
-
</article>
|
|
238
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
239
|
-
<button type="button" class="btn btn-default" @click='closemodel'>返回</button>
|
|
240
|
-
</footer>
|
|
241
|
-
</modal>
|
|
242
|
-
</div>
|
|
243
|
-
<!-- <div style="height: 60px;" v-if="show"class="form-inline">
|
|
244
|
-
<audio controls style="margin-top: 10px;">
|
|
245
|
-
<source src="{{'/Dual/GetWAV/'+wavflie+'.wav'}}" type="audio/wav" >
|
|
246
|
-
您的浏览器不支持 audio 元素。
|
|
247
|
-
</audio>
|
|
248
|
-
<div class="form-group">
|
|
249
|
-
<button type="button" class="btn btn-default" @click='closemodel'>返回</button>
|
|
250
|
-
</div>
|
|
251
|
-
</div> -->
|
|
252
|
-
<!-- <modal :show.sync="takeshow" large="true" v-ref:modal2 backdrop="false">-->
|
|
253
|
-
<!-- <article slot="modal-body" class="modal-body">-->
|
|
254
|
-
<!-- <server-appendix-info @clean="clean" @success="renew" :row="service"></server-appendix-info>-->
|
|
255
|
-
<!-- </article>-->
|
|
256
|
-
<!-- <footer slot="modal-footer" class="modal-footer">-->
|
|
257
|
-
<!-- </footer>-->
|
|
258
|
-
<!-- </modal>-->
|
|
259
|
-
<!-- <evaluate-model :evaluate="evaluate" :isshow="isshow" @closeevaluate="closeevaluate" @saveevaluate="saveevaluate"></evaluate-model>-->
|
|
260
|
-
<!-- </div>-->
|
|
261
|
-
|
|
262
|
-
</div>
|
|
263
|
-
|
|
264
|
-
</div>
|
|
265
|
-
</partial-view-tel>
|
|
266
|
-
|
|
267
|
-
<modal :show.sync="imgshow" v-ref:modal backdrop="true">
|
|
268
|
-
<header slot="modal-header" class="modal-header">
|
|
269
|
-
在线抢修照片
|
|
270
|
-
</header>
|
|
271
|
-
<article slot="modal-body" class="modal-body">
|
|
272
|
-
<div class="from-group">
|
|
273
|
-
<img-self v-if="rowOne.f_single_path" :src="imgfilename" width="500" height="500"></img-self>
|
|
274
|
-
<img-self v-if="rowOne.f_singlea_path" :src="imgfilenamea" width="500" height="500"></img-self>
|
|
275
|
-
<img-self v-if="rowOne.f_singleb_path" :src="imgfilenameb" width="500" height="500"></img-self>
|
|
276
|
-
</div>
|
|
277
|
-
</article>
|
|
278
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
279
|
-
<button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
|
|
280
|
-
</footer>
|
|
281
|
-
</modal>
|
|
282
|
-
|
|
283
|
-
<modal :show.sync="showinfo" v-ref:infomodal backdrop="true">
|
|
284
|
-
<header slot="modal-header" class="modal-header">
|
|
285
|
-
工单信息补充
|
|
286
|
-
</header>
|
|
287
|
-
<article slot="modal-body" class="modal-body">
|
|
288
|
-
<div class="from-group">
|
|
289
|
-
<label class="font_normal_body" style="width: 15%">维护内容</label>
|
|
290
|
-
<textarea style="width: 80%" name="name" rows="3" class="ver-textarea" class="form-control" v-model='information'></textarea>
|
|
291
|
-
</div>
|
|
292
|
-
</article>
|
|
293
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
294
|
-
<button type="button" class="btn btn-success" @click='infoaddsure'>添加</button>
|
|
295
|
-
<button type="button" class="btn btn-success" @click='infoclose'>取消</button>
|
|
296
|
-
</footer>
|
|
297
|
-
</modal>
|
|
298
|
-
<modal :show.sync="attachmentShow" v-ref:infomodal backdrop="true">
|
|
299
|
-
<header slot="modal-header" class="modal-header">
|
|
300
|
-
附件查看
|
|
301
|
-
</header>
|
|
302
|
-
<article slot="modal-body" class="modal-body">
|
|
303
|
-
<div class="row">
|
|
304
|
-
<table class="table table-striped table-bordered">
|
|
305
|
-
<thead>
|
|
306
|
-
<tr>
|
|
307
|
-
<th style="text-align: center;background-color: #dfedfb;color:black;">附件照片</th>
|
|
308
|
-
</tr>
|
|
309
|
-
</thead>
|
|
310
|
-
<tr>
|
|
311
|
-
<td style="margin: auto;text-align: center">
|
|
312
|
-
<div class="container" style="max-width: 500px;background: #FFFFFF">
|
|
313
|
-
<div class="img" style="float: none">
|
|
314
|
-
<img-self-tel :src="'rs/image/file/'+attachment.f_return_path" width="400" height="300"></img-self-tel>
|
|
315
|
-
</div>
|
|
316
|
-
</div>
|
|
317
|
-
</td>
|
|
318
|
-
</tr>
|
|
319
|
-
</table>
|
|
320
|
-
<table class="table table-striped table-bordered" v-if="attachment.f_return_record">
|
|
321
|
-
<thead>
|
|
322
|
-
<tr>
|
|
323
|
-
<th style="text-align: center;background-color: #dfedfb;color:black;">附件录音</th>
|
|
324
|
-
</tr>
|
|
325
|
-
</thead>
|
|
326
|
-
<tr>
|
|
327
|
-
<td style="margin: auto;text-align: center">
|
|
328
|
-
<div class="container" style="max-width: 500px;background: #FFFFFF;height: 100px;">
|
|
329
|
-
<a class="button_spacing button_search-1"
|
|
330
|
-
:href="'rs/image/file/'+attachment.f_return_record" >录音下载</a>
|
|
331
|
-
</div>
|
|
332
|
-
</td>
|
|
333
|
-
</tr>
|
|
334
|
-
</table>
|
|
335
|
-
</div>
|
|
336
|
-
</article>
|
|
337
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
338
|
-
<button type="button" class="btn btn-success" @click='attachmentShow = false'>关闭</button>
|
|
339
|
-
</footer>
|
|
340
|
-
</modal>
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
<!-- 投诉单咨询单详情 -->
|
|
344
|
-
<modal :show.sync="iscomplanAllInfo" v-ref:modal_complan backdrop="true">
|
|
345
|
-
<header slot="modal-header" class="modal-header">
|
|
346
|
-
工单详情
|
|
347
|
-
</header>
|
|
348
|
-
<article slot="modal-body" class="modal-body">
|
|
349
|
-
<div class="select-overspread form-horizontal auto workOrderInfo">
|
|
350
|
-
<div class="row">
|
|
351
|
-
<div class="col-sm-12 form-group form-input-group" >
|
|
352
|
-
<label class="font_normal_body" style="width: 10%">工单编号</label>
|
|
353
|
-
<h5 style="padding: 0px">{{ rowOne.f_service_id }}</h5>
|
|
354
|
-
</div>
|
|
355
|
-
<div class="col-sm-12 form-input-group" >
|
|
356
|
-
<label class="font_normal_body" style="width: 10%" v-if="rowOne.f_workorder_type === '咨询单'">咨询内容</label>
|
|
357
|
-
<label class="font_normal_body" style="width: 10%" v-if="rowOne.f_workorder_type === '投诉单'">投诉内容</label>
|
|
358
|
-
<textarea name="name" rows="3" v-model="rowOne.f_content || service.f_content"
|
|
359
|
-
class="form-control ver-textarea" id="f_content" name="f_content" readonly="readonly"></textarea>
|
|
360
|
-
</div>
|
|
361
|
-
<div class="col-sm-4 form-group form-input-group" >
|
|
362
|
-
<label class="font_normal_body" style="width: 30%">来电电话</label>
|
|
363
|
-
<input type="text" name="" v-model='rowOne.f_phone'
|
|
364
|
-
class="form-control" readonly="readonly">
|
|
365
|
-
</div>
|
|
366
|
-
<div class="col-sm-4 form-group form-input-group" >
|
|
367
|
-
<label class="font_normal_body" style="width: 30%">联系人</label>
|
|
368
|
-
<input type="text" name="" v-model='rowOne.f_user_name'
|
|
369
|
-
class="form-control" readonly="readonly">
|
|
370
|
-
</div>
|
|
371
|
-
<div class="col-sm-4 form-group form-input-group" >
|
|
372
|
-
<label class="font_normal_body" style="width: 30%">联系电话</label>
|
|
373
|
-
<input type="text" name="" v-model='rowOne.f_contact_phone'
|
|
374
|
-
class="form-control" readonly="readonly">
|
|
375
|
-
</div>
|
|
376
|
-
<div class="col-sm-12 form-input-group" >
|
|
377
|
-
<label class="font_normal_body" style="width: 10%">备注</label>
|
|
378
|
-
<textarea name="name" rows="3" v-model="rowOne.f_remarks"
|
|
379
|
-
class="form-control ver-textarea" readonly="readonly"></textarea>
|
|
380
|
-
</div>
|
|
381
|
-
<div class="col-sm-12 form-input-group">
|
|
382
|
-
<label class="font_normal_body" style="width: 10%">处理结果</label>
|
|
383
|
-
<textarea name="name" rows="3" v-model="complanResult.f_complaint_results || '已处理'"
|
|
384
|
-
class="form-control ver-textarea" readonly="readonly"></textarea>
|
|
385
|
-
</div>
|
|
386
|
-
</div>
|
|
387
|
-
</div>
|
|
388
|
-
</article>
|
|
389
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
390
|
-
<button type="button" name="button" class="button_search button_spacing"
|
|
391
|
-
@click='iscomplanAllInfo = false;complanResult={}'>确定</button>
|
|
392
|
-
</footer>
|
|
393
|
-
</modal>
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
</template>
|
|
397
|
-
<script>
|
|
398
|
-
import co from 'co'
|
|
399
|
-
import Vue from 'vue'
|
|
400
|
-
import FailureShow from './FailureShow'
|
|
401
|
-
|
|
402
|
-
let getGen = function * (self) {
|
|
403
|
-
yield self.$resetpost('af-telephone/rs/path/getService', {data: {id: self.rowOne.id}}, {resolveMsg: null, rejectMsg: null})
|
|
404
|
-
.then((res) => {
|
|
405
|
-
debugger
|
|
406
|
-
self.service = res.data[0]
|
|
407
|
-
// self.getrepair()
|
|
408
|
-
})
|
|
409
|
-
}
|
|
410
|
-
export default {
|
|
411
|
-
title: '工单历史记录',
|
|
412
|
-
data () {
|
|
413
|
-
return {
|
|
414
|
-
curactivity:{},
|
|
415
|
-
attachment:{},
|
|
416
|
-
attachmentShow:false,
|
|
417
|
-
caseimgs:[],
|
|
418
|
-
caseimgshow:false,
|
|
419
|
-
imgshow: false,
|
|
420
|
-
imgfilename: '',
|
|
421
|
-
imgfilenamea: '',
|
|
422
|
-
imgfilenameb: '',
|
|
423
|
-
service: null,
|
|
424
|
-
// 是否显示详情modal
|
|
425
|
-
repaierShow: false,
|
|
426
|
-
isshow: false,
|
|
427
|
-
show: false,
|
|
428
|
-
takeshow: false, // 操作面板显示
|
|
429
|
-
repair: {},
|
|
430
|
-
evaluate: {},
|
|
431
|
-
num: 14,
|
|
432
|
-
wavflie: '',
|
|
433
|
-
iscomplanAllInfo: false, // 是否显示投诉单详情
|
|
434
|
-
complanResult: {}, //投诉单详情信息
|
|
435
|
-
showinfo:false,
|
|
436
|
-
information:'',
|
|
437
|
-
loginUser:{
|
|
438
|
-
name:this.$login.f.name,
|
|
439
|
-
ename:this.$login.f.ename
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
},
|
|
443
|
-
props: {
|
|
444
|
-
rowOne: { // 传入一条工单信息
|
|
445
|
-
type: Object
|
|
446
|
-
}
|
|
447
|
-
},
|
|
448
|
-
methods: {
|
|
449
|
-
showAttachment(activity){
|
|
450
|
-
this.attachment = activity
|
|
451
|
-
this.attachmentShow = true
|
|
452
|
-
},
|
|
453
|
-
getcaseimgs(val){
|
|
454
|
-
if(val){
|
|
455
|
-
this.caseimgs = val.split(";")
|
|
456
|
-
}
|
|
457
|
-
this.caseimgshow= true
|
|
458
|
-
},
|
|
459
|
-
caseclose(){
|
|
460
|
-
this.caseimgshow= false
|
|
461
|
-
},
|
|
462
|
-
//添加信息维护
|
|
463
|
-
infoadd(){
|
|
464
|
-
this.showinfo = true
|
|
465
|
-
},
|
|
466
|
-
infoaddsure(){
|
|
467
|
-
if(!this.information){
|
|
468
|
-
return this.$showMessage('请填写维护内容!')
|
|
469
|
-
}
|
|
470
|
-
var data = {
|
|
471
|
-
id :this.service.id,
|
|
472
|
-
f_processid:this.service.f_processid,
|
|
473
|
-
f_content:this.information,
|
|
474
|
-
serviceacitivity : [{}]
|
|
475
|
-
}
|
|
476
|
-
// 将数据发送给业务逻辑
|
|
477
|
-
this.$resetpost('af-telephone/rs/logic/telinformation', {model: data, loginUser: this.loginUser},{resolveMsg: null, rejectMsg: null}).then(() => {
|
|
478
|
-
this.$showMessage('维护内容添加成功!',['confirm'])
|
|
479
|
-
this.information = ''
|
|
480
|
-
this.showinfo =false
|
|
481
|
-
this.selfSearch()
|
|
482
|
-
})
|
|
483
|
-
},
|
|
484
|
-
infoclose(){
|
|
485
|
-
this.showinfo =false
|
|
486
|
-
},
|
|
487
|
-
trouble (val) {
|
|
488
|
-
let failureall=''
|
|
489
|
-
// val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
|
|
490
|
-
|
|
491
|
-
let failure = JSON.parse(val)
|
|
492
|
-
for (let i = 0; i <failure.length; i++) {
|
|
493
|
-
if (failure[i].failurecase.length>0){
|
|
494
|
-
failureall+=failure[i].f_failure_type+":"
|
|
495
|
-
for (let j = 0; j < failure[i].failurecase.length; j++) {
|
|
496
|
-
failureall+=failure[i].failurecase[j]
|
|
497
|
-
if (j+1!=failure[i].failurecase.length){
|
|
498
|
-
failureall+=","
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
}else{
|
|
503
|
-
failureall+=failure[i].f_failure_type
|
|
504
|
-
}
|
|
505
|
-
if (i+1!=failure.length){
|
|
506
|
-
failureall+=';'
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
return failureall
|
|
510
|
-
},
|
|
511
|
-
// 投诉单详情
|
|
512
|
-
reqComplanResult (index) {
|
|
513
|
-
this.complanResult = Object.assign({}, this.service.serviceacitivity[index])
|
|
514
|
-
this.iscomplanAllInfo = true
|
|
515
|
-
},
|
|
516
|
-
showpicture (val) {
|
|
517
|
-
//tag
|
|
518
|
-
//tag)
|
|
519
|
-
this.imgshow = true
|
|
520
|
-
this.imgfilename = 'rs/image/file/' + val.f_single_path
|
|
521
|
-
this.imgfilenamea = 'rs/image/file/' + val.f_singlea_path
|
|
522
|
-
this.imgfilenameb = 'rs/image/file/' + val.f_singleb_path
|
|
523
|
-
},
|
|
524
|
-
imgclose () {
|
|
525
|
-
this.imgshow = false
|
|
526
|
-
},
|
|
527
|
-
renew () {
|
|
528
|
-
this.takeshow = false
|
|
529
|
-
},
|
|
530
|
-
clean () {
|
|
531
|
-
this.takeshow = false
|
|
532
|
-
},
|
|
533
|
-
takett () {
|
|
534
|
-
this.takeshow = true
|
|
535
|
-
},
|
|
536
|
-
playWav (val) {
|
|
537
|
-
let condition = `id = '${val}'`
|
|
538
|
-
let result = ''
|
|
539
|
-
this.$resetpost(`/af-telephone/rs/sql/tel_singleTable`, {
|
|
540
|
-
data: {
|
|
541
|
-
items: 'recordfile', tablename: 't_records',
|
|
542
|
-
condition: condition, orderitem: 'outltime'
|
|
543
|
-
}
|
|
544
|
-
}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
545
|
-
result = res.data
|
|
546
|
-
this.wavflie = result[0].recordfile
|
|
547
|
-
this.show = true
|
|
548
|
-
})
|
|
549
|
-
},
|
|
550
|
-
closemodel () {
|
|
551
|
-
this.wavflie = ''
|
|
552
|
-
this.show = false
|
|
553
|
-
},
|
|
554
|
-
getReciever (val) {
|
|
555
|
-
let str = val.f_reciever
|
|
556
|
-
var i = parseInt(str)
|
|
557
|
-
if (isNaN(i)) {
|
|
558
|
-
return val.f_reciever
|
|
559
|
-
}
|
|
560
|
-
return val.f_meetunit
|
|
561
|
-
},
|
|
562
|
-
selfSearch () {
|
|
563
|
-
if (!this.rowOne) {
|
|
564
|
-
return
|
|
565
|
-
}
|
|
566
|
-
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 != '投诉单' && this.rowOne.f_workorder_type != '咨询单') {
|
|
567
|
-
this.service = this.rowOne
|
|
568
|
-
} else {
|
|
569
|
-
let gen = getGen(this)
|
|
570
|
-
co(gen)
|
|
571
|
-
}
|
|
572
|
-
// if (this.rowOne.processins) {
|
|
573
|
-
// this.service = this.rowOne
|
|
574
|
-
// } else {
|
|
575
|
-
// let gen = getGen(this)
|
|
576
|
-
// co(gen)
|
|
577
|
-
// }
|
|
578
|
-
},
|
|
579
|
-
getrepair () {
|
|
580
|
-
// if(!this.rowOne) {
|
|
581
|
-
// return
|
|
582
|
-
// }
|
|
583
|
-
let gen = getrepairGen(this)
|
|
584
|
-
co(gen)
|
|
585
|
-
},
|
|
586
|
-
repairlist (index) {
|
|
587
|
-
this.curactivity = Object.assign({}, this.service.serviceacitivity[index])
|
|
588
|
-
//tag
|
|
589
|
-
//tag)
|
|
590
|
-
// this.repaierShow = true
|
|
591
|
-
if(this.rowOne.f_workorder_type=='换表单'){
|
|
592
|
-
this.$goto('new-repair-table-paper', {service:this.service,curactivity: this.curactivity,workorder:this.rowOne}, 'self')
|
|
593
|
-
}else{
|
|
594
|
-
this.$goto('new-repair-paper', {service:this.service,curactivity: this.curactivity}, 'self')
|
|
595
|
-
}
|
|
596
|
-
},
|
|
597
|
-
close () {
|
|
598
|
-
this.repaierShow = false
|
|
599
|
-
},
|
|
600
|
-
discuss () {
|
|
601
|
-
//tag
|
|
602
|
-
this.isshow = true
|
|
603
|
-
},
|
|
604
|
-
closeevaluate () {
|
|
605
|
-
this.isshow = false
|
|
606
|
-
},
|
|
607
|
-
// 评论完成
|
|
608
|
-
saveevaluate (val) {
|
|
609
|
-
//tag
|
|
610
|
-
this.isshow = false
|
|
611
|
-
this.$refs.evaluate.init(this.evaluate.f_type, this.evaluate.f_middle_id).then(() => {
|
|
612
|
-
})
|
|
613
|
-
}
|
|
614
|
-
},
|
|
615
|
-
watch: {
|
|
616
|
-
'rowOne' () {
|
|
617
|
-
this.selfSearch()
|
|
618
|
-
//tag
|
|
619
|
-
//tag
|
|
620
|
-
},
|
|
621
|
-
'service' (val) {
|
|
622
|
-
if (val) {
|
|
623
|
-
this.evaluate = {
|
|
624
|
-
f_type: val.f_workorder_type,
|
|
625
|
-
f_middle_id: val.f_service_id
|
|
626
|
-
}
|
|
627
|
-
}
|
|
628
|
-
}
|
|
629
|
-
},
|
|
630
|
-
ready () {
|
|
631
|
-
this.selfSearch()
|
|
632
|
-
|
|
633
|
-
},
|
|
634
|
-
components: {
|
|
635
|
-
'failure-show': FailureShow
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
</script>
|
|
639
|
-
<style scoped lang="less">
|
|
640
|
-
.workOrderInfo{
|
|
641
|
-
.row {
|
|
642
|
-
div {
|
|
643
|
-
margin-top: 10px;
|
|
644
|
-
[readonly] {
|
|
645
|
-
background-color:#eeeeee;
|
|
646
|
-
}
|
|
647
|
-
}
|
|
648
|
-
}
|
|
649
|
-
}
|
|
650
|
-
</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 style="padding:0px 0px 10px 0px;margin-left: 20px;overflow: auto;" id="work-history">-->
|
|
9
|
+
|
|
10
|
+
<div class="row">
|
|
11
|
+
<label class="col-sm-4 ">工单编号:</label>
|
|
12
|
+
<span class="col-sm-8">{{ service?service.f_service_id:'***********' }}</span>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="row"
|
|
15
|
+
v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
16
|
+
<label class="col-sm-4 ">当前状态:</label>
|
|
17
|
+
<span class="col-sm-8">{{ rowOne.defname }}</span>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="row">
|
|
20
|
+
<label class="col-sm-4 ">工单时间:</label>
|
|
21
|
+
<span class="col-sm-8">{{ service?service.f_created_date:'****年**月**日' }}</span>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="row" v-if="service.f_workorder_type=='置换通气单'||service.f_workorder_type=='安装单'">
|
|
24
|
+
<label class="col-sm-4 ">预约时间:</label>
|
|
25
|
+
<span class="col-sm-8">{{ service.f_yuyue_date == '1900-01-01 00:00:00' ? '' : service.f_yuyue_date }}</span>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="row">
|
|
28
|
+
<label class="col-sm-4 ">客户姓名:</label>
|
|
29
|
+
<span class="col-sm-8">{{ service?service.f_user_name:'***' }}</span>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="row">
|
|
32
|
+
<label class="col-sm-4 ">来电电话:</label>
|
|
33
|
+
<span class="col-sm-8">{{ service?service.f_phone:'***********' }}</span>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="row">
|
|
36
|
+
<label class="col-sm-4 ">联系电话:</label>
|
|
37
|
+
<span class="col-sm-8">{{ service?service.f_contact_phone:'***********' }}</span>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="row" v-if="service.f_workorder_type=='报修单'">
|
|
40
|
+
<label class="col-sm-4 ">报修类型:</label>
|
|
41
|
+
<span class="col-sm-8">{{ service.f_repairtype }}</span>
|
|
42
|
+
</div>
|
|
43
|
+
<!-- <p>工单编号: <span class="fwb">{{service.f_service_id}}</span></p>-->
|
|
44
|
+
<!-- <p v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'" >当前状态: <span class="fwb">{{rowOne.processins.activities[0].defname}}</span></p>-->
|
|
45
|
+
<!-- <p>工单时间: <span class="fwb">{{service.f_created_date}}</span></p>-->
|
|
46
|
+
<!-- <p v-if="service.f_workorder_type=='置换通气单'||service.f_workorder_type=='安装单'" >预约时间: <span class="fwb">{{service.f_yuyue_date}}</span></p>-->
|
|
47
|
+
<!-- <p>客户姓名: <span class="fwb">{{service.f_user_name}}</span></p>-->
|
|
48
|
+
<!-- <p>来电电话: <span class="fwb">{{service.f_phone}}</span></p>-->
|
|
49
|
+
<!-- <p v-if="service.f_workorder_type=='报修单'">报修类型: <span class="fwb">{{service.f_repairtype}}</span></p>-->
|
|
50
|
+
<div class="row"
|
|
51
|
+
v-if="service.f_workorder_type!=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
52
|
+
<label class="col-sm-4 ">工单内容:</label>
|
|
53
|
+
<span class="col-sm-8">{{ service.f_content }}</span>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="row">
|
|
56
|
+
<label class="col-sm-4 ">客户编号:</label>
|
|
57
|
+
<span class="col-sm-8">{{ service.f_userinfo_code }}</span>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="row" v-if="service.f_workorder_type=='报修单'">
|
|
60
|
+
<label class="col-sm-4 ">客户表号:</label>
|
|
61
|
+
<span class="col-sm-8">{{ service.f_meternumber }}</span>
|
|
62
|
+
</div>
|
|
63
|
+
<div class="row">
|
|
64
|
+
<label class="col-sm-4 ">用户地址:</label>
|
|
65
|
+
<span class="col-sm-8">{{ service.f_address }}</span>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="row">
|
|
68
|
+
<label class="col-sm-4 ">工单备注:</label>
|
|
69
|
+
<span class="col-sm-8">{{ service.f_remarks }}</span>
|
|
70
|
+
</div>
|
|
71
|
+
<!-- <p v-if="service.f_workorder_type!=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'" >工单内容: <span class="fwb">{{service.f_content}}</span></p>-->
|
|
72
|
+
<!-- <p v-if="service.f_workorder_type=='报修单'" >客户编号: <span class="fwb">{{service.f_userinfo_code}}</span></p>-->
|
|
73
|
+
<!-- <p v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'" >用户地址: <span class="fwb">{{service.f_address}}</span></p>-->
|
|
74
|
+
<!-- <p >备注: <span class="fwb">{{service.f_remarks}}</span></p>-->
|
|
75
|
+
|
|
76
|
+
<!-- <p v-if="rowOne.f_single_path||rowOne.f_singlea_path ||rowOne.f_singleb_path"> <button-link type="button" class="btn btn-link" @click="showpicture(rowOne)">抢修图片-->
|
|
77
|
+
<!-- </button-link></p>-->
|
|
78
|
+
<!--<button v-if="service.f_workorder_type=='报修单'" class="btn btn-success" @click="discuss">评价</button>-->
|
|
79
|
+
<div class="row"
|
|
80
|
+
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
81
|
+
<label class="col-sm-4 ">指导建议:</label>
|
|
82
|
+
<span class="col-sm-8">{{ service.f_advice }}</span>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="row"
|
|
85
|
+
v-if="service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'">
|
|
86
|
+
<label class="col-sm-4 ">故障明细:</label>
|
|
87
|
+
<span class="col-sm-8">{{ service.f_source == '物联网表异常' ? service.f_error_msg : trouble(service.failure)}}</span>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="row" v-if="service">
|
|
90
|
+
<label class="col-sm-4 ">信息维护:</label>
|
|
91
|
+
<span class="col-sm-8">
|
|
92
|
+
<button type="button" class="btn-link btn"
|
|
93
|
+
@click="infoadd()">工单信息补充
|
|
94
|
+
</button>
|
|
95
|
+
</span>
|
|
96
|
+
</div>
|
|
97
|
+
<!-- 工单的流转时间轴信息,每个活动的内容各不相同 -->
|
|
98
|
+
</div>
|
|
99
|
+
<div class="panel-heading auto" style="text-align: center" v-show="service.serviceacitivity.length>0">
|
|
100
|
+
<h4 style="display:inline-block;margin-top: auto">工单历史</h4>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="tab-content span">
|
|
103
|
+
<timeline style="margin-left: 20px"
|
|
104
|
+
v-if="service.f_workorder_type=='换表单' ||service.f_workorder_type=='报修单' || service.f_workorder_type=='置换通气单'|| service.f_workorder_type=='安装单'|| service.f_workorder_type=='投诉单'||service.f_workorder_type=='咨询单'">
|
|
105
|
+
<timeline-item-tel v-for="activity in service.serviceacitivity"
|
|
106
|
+
:color="$index === service.serviceacitivity.length - 1 ? 'blue' : 'default'"
|
|
107
|
+
:isblue="$index === service.serviceacitivity.length - 1 ? true : false">
|
|
108
|
+
<!-- 派单 -->
|
|
109
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_servicesend'">
|
|
110
|
+
<p>{{ activity.f_date }}</p>
|
|
111
|
+
<p>{{ activity.f_name }}派单给{{ getReciever(activity) }}</p>
|
|
112
|
+
</div>
|
|
113
|
+
<!-- 工单打回 -->
|
|
114
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_service_back'">
|
|
115
|
+
<p>{{ activity.f_date }}</p>
|
|
116
|
+
<p>{{ activity.f_operator }}将工单{{activity.f_back_type}}</p>
|
|
117
|
+
<p v-if="activity.f_remarks">原因:{{ activity.f_remarks }}</p>
|
|
118
|
+
</div>
|
|
119
|
+
<!-- 工单打回 工单打回旧版使用t_site_back,兼容之前的逻辑。新版本无需调整此项-->
|
|
120
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_site_back'">
|
|
121
|
+
<p>{{ activity.f_site_back_date }}</p>
|
|
122
|
+
<p>{{ activity.f_site_back_name }}将工单打回</p>
|
|
123
|
+
<p>原因:{{ activity.f_site_back_reason }}</p>
|
|
124
|
+
</div>
|
|
125
|
+
<!-- 未维修,属于维修员打回 兼容之前的逻辑。新版本无需调整此项 -->
|
|
126
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_notwork'">
|
|
127
|
+
<p>{{ activity.f_date }}</p>
|
|
128
|
+
<p>{{ activity.f_name }}未处理</p>
|
|
129
|
+
<p>原因:{{ activity.f_reason }}</p>
|
|
130
|
+
</div>
|
|
131
|
+
<!-- 用户催单 -->
|
|
132
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_reminder'">
|
|
133
|
+
<p>用户催单</p>
|
|
134
|
+
<p>{{ activity.f_reminder_date }}</p>
|
|
135
|
+
<p>操作人:{{ activity.f_operator_name }}</p>
|
|
136
|
+
<p>催单内容:{{ activity.f_content }}</p>
|
|
137
|
+
</div>
|
|
138
|
+
<!-- 工单撤回 -->
|
|
139
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_recall'">
|
|
140
|
+
<p>{{ activity.f_recall_date }}</p>
|
|
141
|
+
<p>{{ activity.f_recall_name }}撤回工单</p>
|
|
142
|
+
<p>备注:{{ activity.f_remarks }}</p>
|
|
143
|
+
<button
|
|
144
|
+
v-if="activity.f_return_path || activity.f_return_record"
|
|
145
|
+
type="button" name="button" style="margin-left: 0px" class="button_spacing button_search-1"
|
|
146
|
+
@click="showAttachment(activity)">附件查看
|
|
147
|
+
</button>
|
|
148
|
+
</div>
|
|
149
|
+
<!-- 工单信息补充 -->
|
|
150
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_telinformation'">
|
|
151
|
+
<p>{{ activity.f_information_date }}</p>
|
|
152
|
+
<p>{{ activity.f_operator_name }}进行信息补充</p>
|
|
153
|
+
<p>维护内容:{{ activity.f_content }}</p>
|
|
154
|
+
</div>
|
|
155
|
+
<!-- 一次维修 -->
|
|
156
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_servicework'">
|
|
157
|
+
<p>入户时间: {{ activity.f_date_come }}</p>
|
|
158
|
+
<p>离开时间: {{ activity.f_date_leave }}</p>
|
|
159
|
+
<!--<img-self v-for="img in activity.imgs" :src="`rs/file/getfile/${img.imgid}`" alt="测试" :width="150"-->
|
|
160
|
+
<!--:height="200"></img-self>-->
|
|
161
|
+
<p>接单员: {{ activity.f_name }} 完成结果: {{ activity.f_result_status }}
|
|
162
|
+
</p>
|
|
163
|
+
<p v-if="activity.f_result_status === '未完成'">原因: {{ activity.f_reason }}
|
|
164
|
+
</p>
|
|
165
|
+
<button
|
|
166
|
+
v-if="activity.f_result_status !== '未完成'"
|
|
167
|
+
type="button" name="button"style="margin-left: 0px" class="button_spacing button_search-1"
|
|
168
|
+
@click="repairlist($index)">查看详情
|
|
169
|
+
</button>
|
|
170
|
+
<!-- <span class="btn btn-link add-postition" >详情</span>-->
|
|
171
|
+
</div>
|
|
172
|
+
<!-- 工单结案 -->
|
|
173
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_serviceend'">
|
|
174
|
+
<p>{{ activity.f_date }}</p>
|
|
175
|
+
<p>{{ activity.f_name }}结束工单,备注:{{ activity.f_caseremarks }} {{activity.f_remakes}}</p>
|
|
176
|
+
<span class="btn btn-link add-postition" v-if="activity.f_caseimgs" @click="getcaseimgs(activity.f_caseimgs)">结案照片</span>
|
|
177
|
+
</div>
|
|
178
|
+
<!-- 投诉处理 -->
|
|
179
|
+
<div style="margin-top: 5px" v-if="rowOne.f_workorder_type === '投诉单' && activity.type === 't_complanintend'">
|
|
180
|
+
<p>{{ activity.f_date }}</p>
|
|
181
|
+
<p>{{ activity.f_name }}处理了投诉单</p>
|
|
182
|
+
<span class="btn btn-link add-postition" @click="reqComplanResult($index)">详情</span>
|
|
183
|
+
</div>
|
|
184
|
+
<!--咨询单处理 -->
|
|
185
|
+
<div style="margin-top: 5px" v-if="rowOne.f_workorder_type === '咨询单'&& activity.type === 't_complanintend'">
|
|
186
|
+
<p>{{ activity.f_date }}</p>
|
|
187
|
+
<p>{{ activity.f_name }}处理了咨询单</p>
|
|
188
|
+
<span class="btn btn-link add-postition" @click="reqComplanResult($index)">详情</span>
|
|
189
|
+
</div>
|
|
190
|
+
</timeline-item-tel>
|
|
191
|
+
</timeline>
|
|
192
|
+
<!--<button v-if="service.f_workorder_type=='报修单'|| service.f_workorder_type=='置换通气单'" class="btn btn-success" @click="discuss">评价</button>-->
|
|
193
|
+
<!--<button v-if="service"class="btn btn-success" @click="takett">操作</button>-->
|
|
194
|
+
<div v-show="service.f_record_sound.length>0">
|
|
195
|
+
<button-link type="button" class="btn btn-link" @click="playWav(service.f_record_sound)">播放录音</button-link>
|
|
196
|
+
</div>
|
|
197
|
+
<!-- <evaluate-list :evaluate="evaluate" :shownum="num" v-ref:evaluate></evaluate-list>-->
|
|
198
|
+
<modal :show.sync="repaierShow" large="true" v-ref:modal backdrop="false">
|
|
199
|
+
<header slot="modal-header" class="modal-header">
|
|
200
|
+
工单详情
|
|
201
|
+
</header>
|
|
202
|
+
<article slot="modal-body" class="modal-body">
|
|
203
|
+
<div class="from-group col-smm-12 col-md-12 col-xs-12" v-if="repaierShow">
|
|
204
|
+
<repair-order :show="true" :row="service" system="pc" :repair="curactivity">
|
|
205
|
+
</repair-order>
|
|
206
|
+
</div>
|
|
207
|
+
</article>
|
|
208
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
209
|
+
<button type="button" class="btn btn-success" @click='close'>确认</button>
|
|
210
|
+
</footer>
|
|
211
|
+
</modal>
|
|
212
|
+
<modal :show.sync="caseimgshow" large="true" backdrop="false">
|
|
213
|
+
<header slot="modal-header" class="modal-header">
|
|
214
|
+
结案照片
|
|
215
|
+
</header>
|
|
216
|
+
<article slot="modal-body" class="modal-body">
|
|
217
|
+
<div class="row">
|
|
218
|
+
<div class="img col-sm-4 " v-for="file in caseimgs">
|
|
219
|
+
<img-self-tel-plus :src="'/'+file.substring(3)" width="120" height="150"></img-self-tel-plus>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
</article>
|
|
223
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
224
|
+
<button type="button" class="btn btn-success" @click='caseclose'>确认</button>
|
|
225
|
+
</footer>
|
|
226
|
+
</modal>
|
|
227
|
+
<div v-if="show">
|
|
228
|
+
<modal :show.sync="show" v-ref:modal1 backdrop="false">
|
|
229
|
+
<header slot="modal-header" class="modal-header">
|
|
230
|
+
<h2 class="modal-title">正在播放{{ wavflie }}语音文件</h2>
|
|
231
|
+
</header>
|
|
232
|
+
<article slot="modal-body" class="modal-body">
|
|
233
|
+
<audio controls>
|
|
234
|
+
<source src="{{'/Dual/GetWAV/'+wavflie+'.wav'}}" type="audio/wav">
|
|
235
|
+
您的浏览器不支持 audio 元素。
|
|
236
|
+
</audio>
|
|
237
|
+
</article>
|
|
238
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
239
|
+
<button type="button" class="btn btn-default" @click='closemodel'>返回</button>
|
|
240
|
+
</footer>
|
|
241
|
+
</modal>
|
|
242
|
+
</div>
|
|
243
|
+
<!-- <div style="height: 60px;" v-if="show"class="form-inline">
|
|
244
|
+
<audio controls style="margin-top: 10px;">
|
|
245
|
+
<source src="{{'/Dual/GetWAV/'+wavflie+'.wav'}}" type="audio/wav" >
|
|
246
|
+
您的浏览器不支持 audio 元素。
|
|
247
|
+
</audio>
|
|
248
|
+
<div class="form-group">
|
|
249
|
+
<button type="button" class="btn btn-default" @click='closemodel'>返回</button>
|
|
250
|
+
</div>
|
|
251
|
+
</div> -->
|
|
252
|
+
<!-- <modal :show.sync="takeshow" large="true" v-ref:modal2 backdrop="false">-->
|
|
253
|
+
<!-- <article slot="modal-body" class="modal-body">-->
|
|
254
|
+
<!-- <server-appendix-info @clean="clean" @success="renew" :row="service"></server-appendix-info>-->
|
|
255
|
+
<!-- </article>-->
|
|
256
|
+
<!-- <footer slot="modal-footer" class="modal-footer">-->
|
|
257
|
+
<!-- </footer>-->
|
|
258
|
+
<!-- </modal>-->
|
|
259
|
+
<!-- <evaluate-model :evaluate="evaluate" :isshow="isshow" @closeevaluate="closeevaluate" @saveevaluate="saveevaluate"></evaluate-model>-->
|
|
260
|
+
<!-- </div>-->
|
|
261
|
+
|
|
262
|
+
</div>
|
|
263
|
+
|
|
264
|
+
</div>
|
|
265
|
+
</partial-view-tel>
|
|
266
|
+
|
|
267
|
+
<modal :show.sync="imgshow" v-ref:modal backdrop="true">
|
|
268
|
+
<header slot="modal-header" class="modal-header">
|
|
269
|
+
在线抢修照片
|
|
270
|
+
</header>
|
|
271
|
+
<article slot="modal-body" class="modal-body">
|
|
272
|
+
<div class="from-group">
|
|
273
|
+
<img-self v-if="rowOne.f_single_path" :src="imgfilename" width="500" height="500"></img-self>
|
|
274
|
+
<img-self v-if="rowOne.f_singlea_path" :src="imgfilenamea" width="500" height="500"></img-self>
|
|
275
|
+
<img-self v-if="rowOne.f_singleb_path" :src="imgfilenameb" width="500" height="500"></img-self>
|
|
276
|
+
</div>
|
|
277
|
+
</article>
|
|
278
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
279
|
+
<button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
|
|
280
|
+
</footer>
|
|
281
|
+
</modal>
|
|
282
|
+
|
|
283
|
+
<modal :show.sync="showinfo" v-ref:infomodal backdrop="true">
|
|
284
|
+
<header slot="modal-header" class="modal-header">
|
|
285
|
+
工单信息补充
|
|
286
|
+
</header>
|
|
287
|
+
<article slot="modal-body" class="modal-body">
|
|
288
|
+
<div class="from-group">
|
|
289
|
+
<label class="font_normal_body" style="width: 15%">维护内容</label>
|
|
290
|
+
<textarea style="width: 80%" name="name" rows="3" class="ver-textarea" class="form-control" v-model='information'></textarea>
|
|
291
|
+
</div>
|
|
292
|
+
</article>
|
|
293
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
294
|
+
<button type="button" class="btn btn-success" @click='infoaddsure'>添加</button>
|
|
295
|
+
<button type="button" class="btn btn-success" @click='infoclose'>取消</button>
|
|
296
|
+
</footer>
|
|
297
|
+
</modal>
|
|
298
|
+
<modal :show.sync="attachmentShow" v-ref:infomodal backdrop="true">
|
|
299
|
+
<header slot="modal-header" class="modal-header">
|
|
300
|
+
附件查看
|
|
301
|
+
</header>
|
|
302
|
+
<article slot="modal-body" class="modal-body">
|
|
303
|
+
<div class="row">
|
|
304
|
+
<table class="table table-striped table-bordered">
|
|
305
|
+
<thead>
|
|
306
|
+
<tr>
|
|
307
|
+
<th style="text-align: center;background-color: #dfedfb;color:black;">附件照片</th>
|
|
308
|
+
</tr>
|
|
309
|
+
</thead>
|
|
310
|
+
<tr>
|
|
311
|
+
<td style="margin: auto;text-align: center">
|
|
312
|
+
<div class="container" style="max-width: 500px;background: #FFFFFF">
|
|
313
|
+
<div class="img" style="float: none">
|
|
314
|
+
<img-self-tel :src="'rs/image/file/'+attachment.f_return_path" width="400" height="300"></img-self-tel>
|
|
315
|
+
</div>
|
|
316
|
+
</div>
|
|
317
|
+
</td>
|
|
318
|
+
</tr>
|
|
319
|
+
</table>
|
|
320
|
+
<table class="table table-striped table-bordered" v-if="attachment.f_return_record">
|
|
321
|
+
<thead>
|
|
322
|
+
<tr>
|
|
323
|
+
<th style="text-align: center;background-color: #dfedfb;color:black;">附件录音</th>
|
|
324
|
+
</tr>
|
|
325
|
+
</thead>
|
|
326
|
+
<tr>
|
|
327
|
+
<td style="margin: auto;text-align: center">
|
|
328
|
+
<div class="container" style="max-width: 500px;background: #FFFFFF;height: 100px;">
|
|
329
|
+
<a class="button_spacing button_search-1"
|
|
330
|
+
:href="'rs/image/file/'+attachment.f_return_record" >录音下载</a>
|
|
331
|
+
</div>
|
|
332
|
+
</td>
|
|
333
|
+
</tr>
|
|
334
|
+
</table>
|
|
335
|
+
</div>
|
|
336
|
+
</article>
|
|
337
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
338
|
+
<button type="button" class="btn btn-success" @click='attachmentShow = false'>关闭</button>
|
|
339
|
+
</footer>
|
|
340
|
+
</modal>
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
<!-- 投诉单咨询单详情 -->
|
|
344
|
+
<modal :show.sync="iscomplanAllInfo" v-ref:modal_complan backdrop="true">
|
|
345
|
+
<header slot="modal-header" class="modal-header">
|
|
346
|
+
工单详情
|
|
347
|
+
</header>
|
|
348
|
+
<article slot="modal-body" class="modal-body">
|
|
349
|
+
<div class="select-overspread form-horizontal auto workOrderInfo">
|
|
350
|
+
<div class="row">
|
|
351
|
+
<div class="col-sm-12 form-group form-input-group" >
|
|
352
|
+
<label class="font_normal_body" style="width: 10%">工单编号</label>
|
|
353
|
+
<h5 style="padding: 0px">{{ rowOne.f_service_id }}</h5>
|
|
354
|
+
</div>
|
|
355
|
+
<div class="col-sm-12 form-input-group" >
|
|
356
|
+
<label class="font_normal_body" style="width: 10%" v-if="rowOne.f_workorder_type === '咨询单'">咨询内容</label>
|
|
357
|
+
<label class="font_normal_body" style="width: 10%" v-if="rowOne.f_workorder_type === '投诉单'">投诉内容</label>
|
|
358
|
+
<textarea name="name" rows="3" v-model="rowOne.f_content || service.f_content"
|
|
359
|
+
class="form-control ver-textarea" id="f_content" name="f_content" readonly="readonly"></textarea>
|
|
360
|
+
</div>
|
|
361
|
+
<div class="col-sm-4 form-group form-input-group" >
|
|
362
|
+
<label class="font_normal_body" style="width: 30%">来电电话</label>
|
|
363
|
+
<input type="text" name="" v-model='rowOne.f_phone'
|
|
364
|
+
class="form-control" readonly="readonly">
|
|
365
|
+
</div>
|
|
366
|
+
<div class="col-sm-4 form-group form-input-group" >
|
|
367
|
+
<label class="font_normal_body" style="width: 30%">联系人</label>
|
|
368
|
+
<input type="text" name="" v-model='rowOne.f_user_name'
|
|
369
|
+
class="form-control" readonly="readonly">
|
|
370
|
+
</div>
|
|
371
|
+
<div class="col-sm-4 form-group form-input-group" >
|
|
372
|
+
<label class="font_normal_body" style="width: 30%">联系电话</label>
|
|
373
|
+
<input type="text" name="" v-model='rowOne.f_contact_phone'
|
|
374
|
+
class="form-control" readonly="readonly">
|
|
375
|
+
</div>
|
|
376
|
+
<div class="col-sm-12 form-input-group" >
|
|
377
|
+
<label class="font_normal_body" style="width: 10%">备注</label>
|
|
378
|
+
<textarea name="name" rows="3" v-model="rowOne.f_remarks"
|
|
379
|
+
class="form-control ver-textarea" readonly="readonly"></textarea>
|
|
380
|
+
</div>
|
|
381
|
+
<div class="col-sm-12 form-input-group">
|
|
382
|
+
<label class="font_normal_body" style="width: 10%">处理结果</label>
|
|
383
|
+
<textarea name="name" rows="3" v-model="complanResult.f_complaint_results || '已处理'"
|
|
384
|
+
class="form-control ver-textarea" readonly="readonly"></textarea>
|
|
385
|
+
</div>
|
|
386
|
+
</div>
|
|
387
|
+
</div>
|
|
388
|
+
</article>
|
|
389
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
390
|
+
<button type="button" name="button" class="button_search button_spacing"
|
|
391
|
+
@click='iscomplanAllInfo = false;complanResult={}'>确定</button>
|
|
392
|
+
</footer>
|
|
393
|
+
</modal>
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
</template>
|
|
397
|
+
<script>
|
|
398
|
+
import co from 'co'
|
|
399
|
+
import Vue from 'vue'
|
|
400
|
+
import FailureShow from './FailureShow'
|
|
401
|
+
|
|
402
|
+
let getGen = function * (self) {
|
|
403
|
+
yield self.$resetpost('af-telephone/rs/path/getService', {data: {id: self.rowOne.id}}, {resolveMsg: null, rejectMsg: null})
|
|
404
|
+
.then((res) => {
|
|
405
|
+
debugger
|
|
406
|
+
self.service = res.data[0]
|
|
407
|
+
// self.getrepair()
|
|
408
|
+
})
|
|
409
|
+
}
|
|
410
|
+
export default {
|
|
411
|
+
title: '工单历史记录',
|
|
412
|
+
data () {
|
|
413
|
+
return {
|
|
414
|
+
curactivity:{},
|
|
415
|
+
attachment:{},
|
|
416
|
+
attachmentShow:false,
|
|
417
|
+
caseimgs:[],
|
|
418
|
+
caseimgshow:false,
|
|
419
|
+
imgshow: false,
|
|
420
|
+
imgfilename: '',
|
|
421
|
+
imgfilenamea: '',
|
|
422
|
+
imgfilenameb: '',
|
|
423
|
+
service: null,
|
|
424
|
+
// 是否显示详情modal
|
|
425
|
+
repaierShow: false,
|
|
426
|
+
isshow: false,
|
|
427
|
+
show: false,
|
|
428
|
+
takeshow: false, // 操作面板显示
|
|
429
|
+
repair: {},
|
|
430
|
+
evaluate: {},
|
|
431
|
+
num: 14,
|
|
432
|
+
wavflie: '',
|
|
433
|
+
iscomplanAllInfo: false, // 是否显示投诉单详情
|
|
434
|
+
complanResult: {}, //投诉单详情信息
|
|
435
|
+
showinfo:false,
|
|
436
|
+
information:'',
|
|
437
|
+
loginUser:{
|
|
438
|
+
name:this.$login.f.name,
|
|
439
|
+
ename:this.$login.f.ename
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
props: {
|
|
444
|
+
rowOne: { // 传入一条工单信息
|
|
445
|
+
type: Object
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
methods: {
|
|
449
|
+
showAttachment(activity){
|
|
450
|
+
this.attachment = activity
|
|
451
|
+
this.attachmentShow = true
|
|
452
|
+
},
|
|
453
|
+
getcaseimgs(val){
|
|
454
|
+
if(val){
|
|
455
|
+
this.caseimgs = val.split(";")
|
|
456
|
+
}
|
|
457
|
+
this.caseimgshow= true
|
|
458
|
+
},
|
|
459
|
+
caseclose(){
|
|
460
|
+
this.caseimgshow= false
|
|
461
|
+
},
|
|
462
|
+
//添加信息维护
|
|
463
|
+
infoadd(){
|
|
464
|
+
this.showinfo = true
|
|
465
|
+
},
|
|
466
|
+
infoaddsure(){
|
|
467
|
+
if(!this.information){
|
|
468
|
+
return this.$showMessage('请填写维护内容!')
|
|
469
|
+
}
|
|
470
|
+
var data = {
|
|
471
|
+
id :this.service.id,
|
|
472
|
+
f_processid:this.service.f_processid,
|
|
473
|
+
f_content:this.information,
|
|
474
|
+
serviceacitivity : [{}]
|
|
475
|
+
}
|
|
476
|
+
// 将数据发送给业务逻辑
|
|
477
|
+
this.$resetpost('af-telephone/rs/logic/telinformation', {model: data, loginUser: this.loginUser},{resolveMsg: null, rejectMsg: null}).then(() => {
|
|
478
|
+
this.$showMessage('维护内容添加成功!',['confirm'])
|
|
479
|
+
this.information = ''
|
|
480
|
+
this.showinfo =false
|
|
481
|
+
this.selfSearch()
|
|
482
|
+
})
|
|
483
|
+
},
|
|
484
|
+
infoclose(){
|
|
485
|
+
this.showinfo =false
|
|
486
|
+
},
|
|
487
|
+
trouble (val) {
|
|
488
|
+
let failureall=''
|
|
489
|
+
// val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
|
|
490
|
+
|
|
491
|
+
let failure = JSON.parse(val)
|
|
492
|
+
for (let i = 0; i <failure.length; i++) {
|
|
493
|
+
if (failure[i].failurecase.length>0){
|
|
494
|
+
failureall+=failure[i].f_failure_type+":"
|
|
495
|
+
for (let j = 0; j < failure[i].failurecase.length; j++) {
|
|
496
|
+
failureall+=failure[i].failurecase[j]
|
|
497
|
+
if (j+1!=failure[i].failurecase.length){
|
|
498
|
+
failureall+=","
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
}else{
|
|
503
|
+
failureall+=failure[i].f_failure_type
|
|
504
|
+
}
|
|
505
|
+
if (i+1!=failure.length){
|
|
506
|
+
failureall+=';'
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
return failureall
|
|
510
|
+
},
|
|
511
|
+
// 投诉单详情
|
|
512
|
+
reqComplanResult (index) {
|
|
513
|
+
this.complanResult = Object.assign({}, this.service.serviceacitivity[index])
|
|
514
|
+
this.iscomplanAllInfo = true
|
|
515
|
+
},
|
|
516
|
+
showpicture (val) {
|
|
517
|
+
//tag
|
|
518
|
+
//tag)
|
|
519
|
+
this.imgshow = true
|
|
520
|
+
this.imgfilename = 'rs/image/file/' + val.f_single_path
|
|
521
|
+
this.imgfilenamea = 'rs/image/file/' + val.f_singlea_path
|
|
522
|
+
this.imgfilenameb = 'rs/image/file/' + val.f_singleb_path
|
|
523
|
+
},
|
|
524
|
+
imgclose () {
|
|
525
|
+
this.imgshow = false
|
|
526
|
+
},
|
|
527
|
+
renew () {
|
|
528
|
+
this.takeshow = false
|
|
529
|
+
},
|
|
530
|
+
clean () {
|
|
531
|
+
this.takeshow = false
|
|
532
|
+
},
|
|
533
|
+
takett () {
|
|
534
|
+
this.takeshow = true
|
|
535
|
+
},
|
|
536
|
+
playWav (val) {
|
|
537
|
+
let condition = `id = '${val}'`
|
|
538
|
+
let result = ''
|
|
539
|
+
this.$resetpost(`/af-telephone/rs/sql/tel_singleTable`, {
|
|
540
|
+
data: {
|
|
541
|
+
items: 'recordfile', tablename: 't_records',
|
|
542
|
+
condition: condition, orderitem: 'outltime'
|
|
543
|
+
}
|
|
544
|
+
}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
545
|
+
result = res.data
|
|
546
|
+
this.wavflie = result[0].recordfile
|
|
547
|
+
this.show = true
|
|
548
|
+
})
|
|
549
|
+
},
|
|
550
|
+
closemodel () {
|
|
551
|
+
this.wavflie = ''
|
|
552
|
+
this.show = false
|
|
553
|
+
},
|
|
554
|
+
getReciever (val) {
|
|
555
|
+
let str = val.f_reciever
|
|
556
|
+
var i = parseInt(str)
|
|
557
|
+
if (isNaN(i)) {
|
|
558
|
+
return val.f_reciever
|
|
559
|
+
}
|
|
560
|
+
return val.f_meetunit
|
|
561
|
+
},
|
|
562
|
+
selfSearch () {
|
|
563
|
+
if (!this.rowOne) {
|
|
564
|
+
return
|
|
565
|
+
}
|
|
566
|
+
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 != '投诉单' && this.rowOne.f_workorder_type != '咨询单') {
|
|
567
|
+
this.service = this.rowOne
|
|
568
|
+
} else {
|
|
569
|
+
let gen = getGen(this)
|
|
570
|
+
co(gen)
|
|
571
|
+
}
|
|
572
|
+
// if (this.rowOne.processins) {
|
|
573
|
+
// this.service = this.rowOne
|
|
574
|
+
// } else {
|
|
575
|
+
// let gen = getGen(this)
|
|
576
|
+
// co(gen)
|
|
577
|
+
// }
|
|
578
|
+
},
|
|
579
|
+
getrepair () {
|
|
580
|
+
// if(!this.rowOne) {
|
|
581
|
+
// return
|
|
582
|
+
// }
|
|
583
|
+
let gen = getrepairGen(this)
|
|
584
|
+
co(gen)
|
|
585
|
+
},
|
|
586
|
+
repairlist (index) {
|
|
587
|
+
this.curactivity = Object.assign({}, this.service.serviceacitivity[index])
|
|
588
|
+
//tag
|
|
589
|
+
//tag)
|
|
590
|
+
// this.repaierShow = true
|
|
591
|
+
if(this.rowOne.f_workorder_type=='换表单'){
|
|
592
|
+
this.$goto('new-repair-table-paper', {service:this.service,curactivity: this.curactivity,workorder:this.rowOne}, 'self')
|
|
593
|
+
}else{
|
|
594
|
+
this.$goto('new-repair-paper', {service:this.service,curactivity: this.curactivity}, 'self')
|
|
595
|
+
}
|
|
596
|
+
},
|
|
597
|
+
close () {
|
|
598
|
+
this.repaierShow = false
|
|
599
|
+
},
|
|
600
|
+
discuss () {
|
|
601
|
+
//tag
|
|
602
|
+
this.isshow = true
|
|
603
|
+
},
|
|
604
|
+
closeevaluate () {
|
|
605
|
+
this.isshow = false
|
|
606
|
+
},
|
|
607
|
+
// 评论完成
|
|
608
|
+
saveevaluate (val) {
|
|
609
|
+
//tag
|
|
610
|
+
this.isshow = false
|
|
611
|
+
this.$refs.evaluate.init(this.evaluate.f_type, this.evaluate.f_middle_id).then(() => {
|
|
612
|
+
})
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
watch: {
|
|
616
|
+
'rowOne' () {
|
|
617
|
+
this.selfSearch()
|
|
618
|
+
//tag
|
|
619
|
+
//tag
|
|
620
|
+
},
|
|
621
|
+
'service' (val) {
|
|
622
|
+
if (val) {
|
|
623
|
+
this.evaluate = {
|
|
624
|
+
f_type: val.f_workorder_type,
|
|
625
|
+
f_middle_id: val.f_service_id
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
ready () {
|
|
631
|
+
this.selfSearch()
|
|
632
|
+
|
|
633
|
+
},
|
|
634
|
+
components: {
|
|
635
|
+
'failure-show': FailureShow
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
</script>
|
|
639
|
+
<style scoped lang="less">
|
|
640
|
+
.workOrderInfo{
|
|
641
|
+
.row {
|
|
642
|
+
div {
|
|
643
|
+
margin-top: 10px;
|
|
644
|
+
[readonly] {
|
|
645
|
+
background-color:#eeeeee;
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
</style>
|