telephone-clients 4.0.0-1-89 → 4.0.0-1-90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/package.json +2 -2
  2. package/src/components/pc/MaintenanceWorker.vue +152 -0
  3. package/src/components/pc/NewRepairPaper.vue +704 -704
  4. package/src/components/pc/NewRepairTablePaper.vue +442 -442
  5. package/src/components/pc/WorkHistory.vue +650 -650
  6. package/src/components/pc/WorkListNew.vue +838 -838
  7. package/src/components/sendsingle/onlinecharge.vue +424 -424
  8. package/src/components/workorder/ChangeMeterPageNew.vue +663 -663
  9. package/src/components/workorder/ChangeMeterUserInfo.vue +130 -130
  10. package/src/components/workorder/RepairFirstV.vue +736 -736
  11. package/src/components/workorder/RepairInfo.vue +178 -178
  12. package/src/components/workorder/RepairOrderT.vue +713 -713
  13. package/src/components/workorder/oldMeterPage.vue +104 -104
  14. package/src/components/workorder/repairFirstTable.vue +715 -715
  15. package/src/filiale/jinhong/android/FaultAll.vue +936 -936
  16. package/src/filiale/jinhong/android/ZHihuanFirst.vue +540 -540
  17. package/src/filiale/jinhong/pc/WorkListAllNew.vue +884 -884
  18. package/src/filiale/jinhong/telephone.js +10 -10
  19. package/src/filiale/jinhong/telephoneAndroid.js +13 -13
  20. package/src/filiale/meihekou/android/Othercharge.vue +454 -454
  21. package/src/filiale/meihekou/android/PhoneStandWorkNew.vue +692 -692
  22. package/src/filiale/meihekou/android/ServiceOnlineQuery.vue +477 -477
  23. package/src/filiale/meihekou/pc/WorkListAllNew.vue +925 -901
  24. package/src/filiale/meihekou/pc/WorkListNew.vue +1103 -1049
  25. package/src/filiale/meihekou/telephoneAndroid.js +26 -26
  26. package/src/filiale/xinjiangdexin/telephone.js +16 -16
  27. package/src/filiale/xinliansihui/android/FaultAll.vue +923 -923
  28. package/src/filiale/xinliansihui/android/RepairFirstV.vue +734 -734
  29. package/src/filiale/xinliansihui/android/RepairOrderT.vue +713 -713
  30. package/src/main.js +1 -1
  31. package/src/telephone-android.js +425 -425
  32. package/src/telephone.js +799 -796
@@ -1,704 +1,704 @@
1
- <template>
2
- <div class="basic-main" style="height: 100%">
3
- <div class="page-header app-header auto" style="padding: 15px;margin-right: 10px;right: 0%;height: 7%">
4
- <div @click="back()">
5
- <img src="../../assets/back.png" style="margin: 0px"/>
6
- </div>
7
- </div>
8
- <div v-show="showPdfDownload" class="page-header app-header auto"
9
- style="padding: 15px;margin-right: 3.7%;right: 0%;height: 7%">
10
- <div @click="exportToPDF()">
11
- <img src="../../assets/下载_.png" style="margin: 0px;width: 30px"/>
12
- </div>
13
- </div>
14
- <work-busy :is-busy="loading"></work-busy>
15
- <div class="container-fluid" style="overflow: scroll">
16
- <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
17
- <div style="width: 100%;margin: auto">
18
- <table class="table table-striped table-bordered" style="margin-bottom: 6px">
19
- <thead>
20
- <tr>
21
- <th colspan="6" style="text-align: center;background-color: #dfedfb;color:black;">客户工单信息</th>
22
- </tr>
23
- </thead>
24
- <tbody>
25
- <tr>
26
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
27
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
28
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
29
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_userinfo_code }}</td>
30
- </tr>
31
- <tr>
32
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细地址:</td>
33
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ baseuserinfo.f_address }}</td>
34
- </tr>
35
- <tr v-if="serviceall.f_workorder_type=='报修单'">
36
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">故障明细:</td>
37
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ changefailure(serviceall.f_new_failure) }}</td>
38
- </tr>
39
- <tr v-if="serviceall.f_workorder_type=='报修单'">
40
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">{{usermeter.f_collection_type=='按金额'?'累购金额:':'累购气量:'}}</td>
41
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_collection_type=='按金额'?usermeter.f_total_fee:usermeter.f_total_gas }}</td>
42
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">左&ensp;右&ensp;表:</td>
43
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_aroundmeter }}</td>
44
- </tr>
45
- <tr v-if="serviceall.f_workorder_type=='报修单'">
46
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;&emsp;&ensp;号:</td>
47
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meternumber }}</td>
48
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%"></td>
49
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%"></td>
50
- </tr>
51
- <tr v-if="serviceall.f_workorder_type=='报修单'">
52
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;品&ensp;牌:</td>
53
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_brand }}</td>
54
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;型&ensp;号:</td>
55
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_style }}</td>
56
- </tr>
57
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
58
-
59
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户姓名:</td>
60
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
61
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用气性质:</td>
62
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_gasproperties }}</td>
63
- </tr>
64
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
65
-
66
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">联系电话:</td>
67
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_phone }}</td>
68
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">住户类型:</td>
69
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_house_type }}</td>
70
- </tr>
71
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
72
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">身份证号:</td>
73
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_shenfenzheng}}</td>
74
- </tr>
75
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
76
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">用户地址:</td>
77
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_address}}</td>
78
- </tr>
79
- <!-- <tr>-->
80
-
81
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">派单时间:</td>-->
82
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_created_date }}</td>-->
83
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">完成时间:</td>-->
84
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_repair_date }}</td>-->
85
- <!-- </tr>-->
86
- <tr>
87
-
88
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
89
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_come }}</td>
90
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
91
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_leave }}</td>
92
- </tr>
93
- <tr v-if="serviceall.f_workorder_type == '置换通气单' && baseuserinfo.f_user_type == '民用'">
94
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">防盗卡号:</td>
95
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_defendcard }}</td>
96
- </tr>
97
- <tr v-if="serviceall.f_workorder_type == '置换通气单' && baseuserinfo.f_user_type == '非民用'">
98
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">铅封号:</td>
99
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_gmd_lsnumber }}</td>
100
- </tr>
101
- <tr>
102
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">备注:</td>
103
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ serviceall.f_remarks }}</td>
104
- </tr>
105
- </tbody>
106
- </table>
107
- <table class="table table-striped table-bordered">
108
- <thead>
109
- <tr>
110
- <th style="text-align: center;background-color: #dfedfb;color:black;">燃气设施全景</th>
111
- </tr>
112
- </thead>
113
- <tbody>
114
- <tr>
115
- <td style="margin: auto;text-align: center">
116
- <div class="container" style="max-width: 550px;background: #FFFFFF">
117
- <div class="img" v-for="img in serviceall.imgs">
118
- <tel-img-self-tel-plus :list="serviceall.imgs" :src="'rs/image/file/'+img.android_file" style="float: left" width="150"
119
- height="200"></tel-img-self-tel-plus>
120
- </div>
121
- </div>
122
- </td>
123
- </tr>
124
- </tbody>
125
- </table>
126
- <table class="table table-striped table-bordered">
127
- <thead>
128
- <tr>
129
- <th style="text-align: center;background-color: #dfedfb;color:black;">用户签名照片</th>
130
- </tr>
131
- </thead>
132
- <tr>
133
- <td style="margin: auto;text-align: center">
134
- <div class="container" style="max-width: 500px;background: #FFFFFF">
135
- <div class="img" style="float: none">
136
- <tel-img-self-tel-plus :src="'rs/image/file/'+serviceall.f_signname" width="400" height="300"></tel-img-self-tel-plus>
137
- </div>
138
- </div>
139
- </td>
140
- </tr>
141
- </table>
142
- <table class="table table-striped table-bordered" v-if="serviceall.f_recording_path">
143
- <thead>
144
- <tr>
145
- <th style="text-align: center;background-color: #dfedfb;color:black;">录音文件</th>
146
- </tr>
147
- </thead>
148
- <tr>
149
- <td style="margin: auto;text-align: center">
150
- <div class="container" style="max-width: 500px;background: #FFFFFF">
151
- <a class="button_spacing button_search-1"
152
- :href="'rs/image/file/'+serviceall.f_recording_path" >录音下载</a>
153
- </div>
154
- </td>
155
- </tr>
156
- </table>
157
- <table class="table table-striped table-bordered" v-if="serviceall.f_othercharge_id">
158
- <thead>
159
- <tr>
160
- <th colspan="5" style="text-align: center;background-color: #dfedfb;color:black;">其他收费</th>
161
- </tr>
162
- </thead>
163
- <tr>
164
- <td style="margin: auto;text-align: center">
165
- 收费类型
166
- </td>
167
- <td style="margin: auto;text-align: center">
168
- 单价
169
- </td>
170
- <td style="margin: auto;text-align: center">
171
- 数量
172
- </td>
173
- <td style="margin: auto;text-align: center">
174
- 付款方式
175
- </td>
176
- <td style="margin: auto;text-align: center">
177
- 收费日期
178
- </td>
179
- </tr>
180
- <tr v-for="item in othercharge">
181
- <td style="margin: auto;text-align: center">
182
- {{item.f_brand_spec}}
183
- </td>
184
- <td style="margin: auto;text-align: center">
185
- {{item.f_unitprice}}
186
- </td>
187
- <td style="margin: auto;text-align: center">
188
- {{item.f_number}}
189
- </td>
190
- <td style="margin: auto;text-align: center">
191
- {{item.f_payment}}
192
- </td>
193
- <td style="margin: auto;text-align: center">
194
- {{item.f_operate_date}}
195
- </td>
196
- </tr>
197
- </table>
198
-
199
- </div>
200
- </div>
201
- <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
202
- <div class="col-md-6" style="height: 100%;overflow: scroll">
203
- <div style="width: 95%;margin-left: 5%">
204
- <table class="table table-striped table-bordered" v-for=" serviceone in servicerepair">
205
- <thead>
206
- <tr>
207
- <th style="text-align: center;background-color: #dfedfb;color:black;">{{ serviceone.f_type }}</th>
208
- </tr>
209
- </thead>
210
- <tbody>
211
- <tr v-for="detail in serviceone.details">
212
- <td>
213
- <div class="row">
214
- <div class="col-md-8" style="text-align: center;" v-if="detail.f_defect_id">
215
- <a @click="showSafeImg(detail)">{{ detail.f_project }}</a>
216
- </div>
217
- <div class="col-md-8" style="text-align: center;" v-else>
218
- {{ detail.f_project }}
219
- </div>
220
- <div class="col-md-4" style="text-align: center;" v-if="detail.type!='picture'">
221
- {{ detail.f_content?detail.f_content:'无' }}
222
- </div>
223
- <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&ispicture(serviceone.imgs,detail.f_project)">
224
- <button-link style="color: black" type="button" class="btn btn-link"
225
- @click="showpath(serviceone.imgs,detail.f_project)">查看照片
226
- </button-link>
227
- </div>
228
- <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&!ispicture(serviceone.imgs,detail.f_project)">
229
- 无照片
230
- </div>
231
- </div>
232
- <!-- {{detail.f_first_imgname}}-->
233
- <!-- <div class="row" v-if="detail.f_first_imgname">
234
- <div class="container" style="max-width: 500px;background: #FFFFFF">
235
- <div class="img" style="float: none">
236
- <tel-img-self-tel-plus :src="'rs/image/file/'+detail.f_first_imgname" width="400" height="300"></tel-img-self-tel-plus>
237
- </div>
238
-
239
- </div>
240
- </div>-->
241
- </td>
242
-
243
-
244
- </tr>
245
- </tbody>
246
- </table>
247
-
248
-
249
- </div>
250
-
251
- </div>
252
- </div>
253
- <div v-show="false">
254
- <div id="toPdf" class="container-fluid row" style="overflow: scroll">
255
- <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll;width: 95%">
256
- <div style="width: 100%;margin: auto">
257
- <table class="table table-striped table-bordered" style="margin-bottom: 6px">
258
- <thead>
259
- <tr>
260
- <th colspan="6" style="text-align: center;background-color: #dfedfb;color:black;">客户工单信息</th>
261
- </tr>
262
- </thead>
263
- <tbody>
264
- <tr>
265
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
266
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
267
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
268
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_userinfo_code }}</td>
269
- </tr>
270
- <tr>
271
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细地址:</td>
272
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ baseuserinfo.f_address }}</td>
273
- </tr>
274
- <tr v-if="serviceall.f_workorder_type=='报修单'">
275
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">故障明细:</td>
276
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ changefailure(serviceall.f_new_failure) }}</td>
277
- </tr>
278
- <tr v-if="serviceall.f_workorder_type=='报修单'">
279
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">{{usermeter.f_collection_type=='按金额'?'累购金额:':'累购气量:'}}</td>
280
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_collection_type=='按金额'?usermeter.f_total_fee:usermeter.f_total_gas }}</td>
281
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">左&ensp;右&ensp;表:</td>
282
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_aroundmeter }}</td>
283
- </tr>
284
- <tr v-if="serviceall.f_workorder_type=='报修单'">
285
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;&emsp;&ensp;号:</td>
286
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meternumber }}</td>
287
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%"></td>
288
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%"></td>
289
- </tr>
290
- <tr v-if="serviceall.f_workorder_type=='报修单'">
291
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;品&ensp;牌:</td>
292
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_brand }}</td>
293
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;型&ensp;号:</td>
294
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_style }}</td>
295
- </tr>
296
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
297
-
298
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户姓名:</td>
299
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
300
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用气性质:</td>
301
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_gasproperties }}</td>
302
- </tr>
303
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
304
-
305
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">联系电话:</td>
306
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_phone }}</td>
307
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">住户类型:</td>
308
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_house_type }}</td>
309
- </tr>
310
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
311
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">身份证号:</td>
312
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_shenfenzheng}}</td>
313
- </tr>
314
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
315
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">用户地址:</td>
316
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_address}}</td>
317
- </tr>
318
- <!-- <tr>-->
319
-
320
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">派单时间:</td>-->
321
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_created_date }}</td>-->
322
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">完成时间:</td>-->
323
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_repair_date }}</td>-->
324
- <!-- </tr>-->
325
- <tr>
326
-
327
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
328
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_come }}</td>
329
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
330
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_leave }}</td>
331
- </tr>
332
- <tr v-if="serviceall.f_workorder_type == '置换通气单' && baseuserinfo.f_user_type == '民用'">
333
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">防盗卡号:</td>
334
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_defendcard }}</td>
335
- </tr>
336
- <tr v-if="serviceall.f_workorder_type == '置换通气单' && baseuserinfo.f_user_type == '非民用'">
337
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">铅封号:</td>
338
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_gmd_lsnumber }}</td>
339
- </tr>
340
- <tr>
341
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">备注:</td>
342
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ serviceall.f_remarks }}</td>
343
- </tr>
344
- </tbody>
345
- </table>
346
- <table class="table table-striped table-bordered">
347
- <thead>
348
- <tr>
349
- <th style="text-align: center;background-color: #dfedfb;color:black;">燃气设施全景</th>
350
- </tr>
351
- </thead>
352
- <tbody>
353
- <tr>
354
- <td style="margin: auto;text-align: center">
355
- <div class="container" style="max-width: 550px;background: #FFFFFF">
356
- <div class="img" v-for="img in serviceall.imgs">
357
- <tel-img-self-tel-plus :src="'rs/image/file/'+img.android_file" style="float: left" width="150"
358
- height="200"></tel-img-self-tel-plus>
359
- </div>
360
- </div>
361
- </td>
362
- </tr>
363
- </tbody>
364
- </table>
365
- <table class="table table-striped table-bordered">
366
- <thead>
367
- <tr>
368
- <th style="text-align: center;background-color: #dfedfb;color:black;">用户签名照片</th>
369
- </tr>
370
- </thead>
371
- <tr>
372
- <td style="margin: auto;text-align: center">
373
- <div class="container" style="max-width: 500px;background: #FFFFFF">
374
- <div class="img" style="float: none">
375
- <tel-img-self-tel-plus :src="'rs/image/file/'+serviceall.f_signname" width="400" height="300"></tel-img-self-tel-plus>
376
- </div>
377
- </div>
378
- </td>
379
- </tr>
380
- </table>
381
- <table class="table table-striped table-bordered" v-if="serviceall.f_othercharge_id">
382
- <thead>
383
- <tr>
384
- <th colspan="5" style="text-align: center;background-color: #dfedfb;color:black;">其他收费</th>
385
- </tr>
386
- </thead>
387
- <tr>
388
- <td style="margin: auto;text-align: center">
389
- 收费类型
390
- </td>
391
- <td style="margin: auto;text-align: center">
392
- 单价
393
- </td>
394
- <td style="margin: auto;text-align: center">
395
- 数量
396
- </td>
397
- <td style="margin: auto;text-align: center">
398
- 付款方式
399
- </td>
400
- <td style="margin: auto;text-align: center">
401
- 收费日期
402
- </td>
403
- </tr>
404
- <tr v-for="item in othercharge">
405
- <td style="margin: auto;text-align: center">
406
- {{item.f_brand_spec}}
407
- </td>
408
- <td style="margin: auto;text-align: center">
409
- {{item.f_unitprice}}
410
- </td>
411
- <td style="margin: auto;text-align: center">
412
- {{item.f_number}}
413
- </td>
414
- <td style="margin: auto;text-align: center">
415
- {{item.f_payment}}
416
- </td>
417
- <td style="margin: auto;text-align: center">
418
- {{item.f_operate_date}}
419
- </td>
420
- </tr>
421
- </table>
422
-
423
- </div>
424
- </div>
425
- <div style="height: 100%;width: 95%;overflow: scroll">
426
- <div style="width: 95%;margin-left: 5%">
427
- <table class="table table-striped table-bordered" v-for=" serviceone in servicerepair">
428
- <thead>
429
- <tr>
430
- <th style="text-align: center;background-color: #dfedfb;color:black;">{{ serviceone.f_type }}</th>
431
- </tr>
432
- </thead>
433
- <tbody>
434
- <tr v-for="detail in serviceone.details">
435
- <td>
436
- <div class="row">
437
- <div class="col-md-8" style="text-align: center;">{{ detail.f_project }}</div>
438
- <div class="col-md-4" style="text-align: center;" v-if="detail.type!='picture'">
439
- {{ detail.f_content?detail.f_content:'无' }}
440
- </div>
441
- <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&ispicture(serviceone.imgs,detail.f_project)">
442
- <button-link style="color: black" type="button" class="btn btn-link"
443
- @click="showpath(serviceone.imgs,detail.f_project)">查看照片
444
- </button-link>
445
- </div>
446
- <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&!ispicture(serviceone.imgs,detail.f_project)">
447
- 无照片
448
- </div>
449
- </div>
450
- <!-- {{detail.f_first_imgname}}-->
451
- <!-- <div class="row" v-if="detail.f_first_imgname">
452
- <div class="container" style="max-width: 500px;background: #FFFFFF">
453
- <div class="img" style="float: none">
454
- <tel-img-self-tel-plus :src="'rs/image/file/'+detail.f_first_imgname" width="400" height="300"></tel-img-self-tel-plus>
455
- </div>
456
-
457
- </div>
458
- </div>-->
459
- </td>
460
-
461
-
462
- </tr>
463
- </tbody>
464
- </table>
465
-
466
-
467
- </div>
468
-
469
- </div>
470
- </div>
471
- </div>
472
- </div>
473
- <modal :show.sync="imgshow" v-ref:modal backdrop="true">
474
- <header slot="modal-header" class="modal-header" style="font-size: 20px;text-align: center">
475
- {{ picturename }}
476
- </header>
477
- <article slot="modal-body" class="modal-body">
478
- <div class="from-group">
479
- <div class="row">
480
- <div class="col-md-6" v-for="item in showimgs">
481
- <tel-img-self-tel-plus :src="item" width="300" height="400"></tel-img-self-tel-plus>
482
- </div>
483
- </div>
484
- </div>
485
- </article>
486
- <footer slot="modal-footer" class="modal-footer" v-show="false">
487
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
488
- </footer>
489
- </modal>
490
- </template>
491
-
492
- <script>
493
- import html2pdf from 'html2pdf.js'
494
- import {HttpResetClass} from 'vue-client'
495
-
496
- export default {
497
- title: '工单详情',
498
- props: ['curactivity', 'service'],
499
- data () {
500
- return {
501
- showPdfDownload: this.$appdata.getSingleValue('工单结果pdf下载') ? this.$appdata.getSingleValue('工单结果pdf下载') : false,
502
- othercharge:[],
503
- imgshow:false,
504
- picturename:'',
505
- showimg:'',
506
- baseuserinfo: {},
507
- showimgs:[],
508
- allimgs: [],
509
- servicerepair: [],
510
- serviceall: {},
511
- usermeter:{},
512
- loading: false
513
- }
514
- },
515
- ready () {
516
- this.loading=true
517
- ////tag
518
- ////tag)
519
- let http = new HttpResetClass()
520
- ////tag
521
- http.load('POST', 'af-telephone/rs/path/serviceWork', {data: {id: this.curactivity.id}}, {
522
- resolveMsg: null,
523
- rejectMsg: null
524
- }).then(res => {
525
- ////tag)
526
- for (let i = 0; i < res.data.length; i++) {
527
- if (res.data[i].id == this.curactivity.id) {
528
- this.serviceall = res.data[i]
529
- this.baseuserinfo = res.data[i].baseuserinfo
530
- this.servicerepair = res.data[i].servicerepair
531
- this.allimgs = res.data[i].imgs
532
- http.load('post','af-telephone/rs/sql/getBaseMeterInfo',{data:{f_userinfo_id:this.baseuserinfo.f_userinfo_id}},{
533
- resolveMsg: null,
534
- rejectMsg: null
535
- }).then(res=>{
536
- this.usermeter=res.data[0]
537
- })
538
- if (res.data[i].f_othercharge_id){
539
- let condition = {
540
- items: 'od.f_brand_spec,od.f_unitprice,od.f_number,o.f_payment,o.f_operate_date',
541
- tablename: 't_othercharge o left join t_othercharge_detail od on od.f_othercharge_id = o.id',
542
- condition: `o.id = '${res.data[i].f_othercharge_id}'`,
543
- orderitem: '1'
544
- }
545
- new HttpResetClass().load('post','af-telephone/rs/sql/tel_singleTable_OrderBy',{data:condition},{
546
- resolveMsg: null,
547
- rejectMsg: null
548
- }).then(res=>{
549
- this.othercharge=res.data
550
- })
551
- }
552
- }
553
- }
554
-
555
- ////tag)
556
- ////tag)
557
- ////tag)
558
- ////tag)
559
- this.loading=false
560
- })
561
- },
562
- methods: {
563
- showSafeImg(detail){
564
- this.picturename = ''
565
- this.showimgs = []
566
- if (detail.f_defect_id){
567
- let data = {
568
- items: '*',
569
- tablename: 't_devices_items',
570
- condition: `id = '${detail.f_defect_id}'`,
571
- orderitem: '1'
572
- }
573
- let http = new HttpResetClass()
574
- http.load('post','af-telephone/rs/sql/tel_singleTable_OrderBy',{data:data},{
575
- resolveMsg: null,
576
- rejectMsg: null
577
- }).then(res=>{
578
- this.picturename = '隐患照片/维修照片'
579
- if (res.data[0].f_path){
580
- this.showimgs.push('rs/image/file/'+res.data[0].f_path)
581
- }
582
- if(detail.f_first_imgname){
583
- this.showimgs.push('rs/image/file/'+detail.f_first_imgname)
584
- }
585
- this.imgshow = true
586
- })
587
- }else {
588
-
589
- }
590
- },
591
- exportToPDF() {
592
- const element = document.getElementById('toPdf') // 替换为您要导出的页面元素的ID
593
- html2pdf(element)
594
- },
595
- changefailure(val){
596
- let failureall=''
597
- // val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
598
- let failure = JSON.parse(val)
599
- for (let i = 0; i <failure.length; i++) {
600
- if (failure[i].failurecase.length>0){
601
- failureall+=failure[i].f_failure_type+":"
602
- for (let j = 0; j < failure[i].failurecase.length; j++) {
603
- failureall+=failure[i].failurecase[j]
604
- if (j+1!=failure[i].failurecase.length){
605
- failureall+=","
606
- }
607
- }
608
-
609
- }else{
610
- failureall+=failure[i].f_failure_type
611
- }
612
- if (i+1!=failure.length){
613
- failureall+=';'
614
- }
615
- }
616
- return failureall
617
- },
618
- imgclose(){
619
- this.imgshow=false
620
- },
621
- ispicture(imgs,imgid){
622
- let imgstr=''
623
- let imgpath=''
624
- for (let i = 0; i < imgs.length; i++) {
625
- if (imgs[i].imgpath==imgid){
626
- imgstr=imgs[i].android_file
627
- imgpath=imgs[i].imgpath
628
- }
629
- }
630
- ////tag
631
- ////tag
632
- if (imgstr){
633
- return true
634
- }
635
- return false
636
- },
637
- showpath (imgs,imgid) {
638
- this.picturename = ''
639
- const img = imgs.filter(res => res.imgpath === imgid).map(res => 'rs/image/file/' + res.android_file)
640
- if (img.length > 0) {
641
- this.showimgs = img
642
- this.picturename = imgid
643
- this.imgshow = true
644
- }
645
- },
646
- back () {
647
- this.$back()
648
- }
649
- }
650
- }
651
- </script>
652
-
653
- <style scoped>
654
- .img {
655
- border: 1px solid #9773ed;
656
- width: auto;
657
- height: auto;
658
- float: left;
659
- text-align: center;
660
- margin: 6px;
661
- }
662
-
663
- img {
664
- margin: 6px;
665
- }
666
-
667
-
668
- .container {
669
- margin: 10px auto;
670
- width: 80%;
671
- height: auto;
672
- }
673
-
674
- div::-webkit-scrollbar {
675
- width: 0 !important;
676
- height: 0 !important;
677
- }
678
-
679
- div {
680
- -ms-overflow-style: none;
681
- overflow: -moz-scrollbars-none;
682
- }
683
-
684
- .divmask {
685
- pointer-events: none;
686
- }
687
-
688
- .app-header {
689
- border-radius: 50%;
690
- background: rgba(73, 158, 223, 0.4);
691
- color: #FFF;
692
- padding: 20px;
693
- text-align: center;
694
- font-size: 1.2em;
695
- z-index: 10;
696
- opacity: 0.5;
697
- bottom: 50px;
698
- margin-top: -20px;
699
- position: absolute;
700
- top: 10%;
701
- right: 2%;
702
- height: 8%;
703
- }
704
- </style>
1
+ <template>
2
+ <div class="basic-main" style="height: 100%">
3
+ <div class="page-header app-header auto" style="padding: 15px;margin-right: 10px;right: 0%;height: 7%">
4
+ <div @click="back()">
5
+ <img src="../../assets/back.png" style="margin: 0px"/>
6
+ </div>
7
+ </div>
8
+ <div v-show="showPdfDownload" class="page-header app-header auto"
9
+ style="padding: 15px;margin-right: 3.7%;right: 0%;height: 7%">
10
+ <div @click="exportToPDF()">
11
+ <img src="../../assets/下载_.png" style="margin: 0px;width: 30px"/>
12
+ </div>
13
+ </div>
14
+ <work-busy :is-busy="loading"></work-busy>
15
+ <div class="container-fluid" style="overflow: scroll">
16
+ <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
17
+ <div style="width: 100%;margin: auto">
18
+ <table class="table table-striped table-bordered" style="margin-bottom: 6px">
19
+ <thead>
20
+ <tr>
21
+ <th colspan="6" style="text-align: center;background-color: #dfedfb;color:black;">客户工单信息</th>
22
+ </tr>
23
+ </thead>
24
+ <tbody>
25
+ <tr>
26
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
27
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
28
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
29
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_userinfo_code }}</td>
30
+ </tr>
31
+ <tr>
32
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细地址:</td>
33
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ baseuserinfo.f_address }}</td>
34
+ </tr>
35
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
36
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">故障明细:</td>
37
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ changefailure(serviceall.f_new_failure) }}</td>
38
+ </tr>
39
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
40
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">{{usermeter.f_collection_type=='按金额'?'累购金额:':'累购气量:'}}</td>
41
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_collection_type=='按金额'?usermeter.f_total_fee:usermeter.f_total_gas }}</td>
42
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">左&ensp;右&ensp;表:</td>
43
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_aroundmeter }}</td>
44
+ </tr>
45
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
46
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;&emsp;&ensp;号:</td>
47
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meternumber }}</td>
48
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%"></td>
49
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%"></td>
50
+ </tr>
51
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
52
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;品&ensp;牌:</td>
53
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_brand }}</td>
54
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;型&ensp;号:</td>
55
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_style }}</td>
56
+ </tr>
57
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
58
+
59
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户姓名:</td>
60
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
61
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用气性质:</td>
62
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_gasproperties }}</td>
63
+ </tr>
64
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
65
+
66
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">联系电话:</td>
67
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_phone }}</td>
68
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">住户类型:</td>
69
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_house_type }}</td>
70
+ </tr>
71
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
72
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">身份证号:</td>
73
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_shenfenzheng}}</td>
74
+ </tr>
75
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
76
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">用户地址:</td>
77
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_address}}</td>
78
+ </tr>
79
+ <!-- <tr>-->
80
+
81
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">派单时间:</td>-->
82
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_created_date }}</td>-->
83
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">完成时间:</td>-->
84
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_repair_date }}</td>-->
85
+ <!-- </tr>-->
86
+ <tr>
87
+
88
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
89
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_come }}</td>
90
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
91
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_leave }}</td>
92
+ </tr>
93
+ <tr v-if="serviceall.f_workorder_type == '置换通气单' && baseuserinfo.f_user_type == '民用'">
94
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">防盗卡号:</td>
95
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_defendcard }}</td>
96
+ </tr>
97
+ <tr v-if="serviceall.f_workorder_type == '置换通气单' && baseuserinfo.f_user_type == '非民用'">
98
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">铅封号:</td>
99
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_gmd_lsnumber }}</td>
100
+ </tr>
101
+ <tr>
102
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">备注:</td>
103
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ serviceall.f_remarks }}</td>
104
+ </tr>
105
+ </tbody>
106
+ </table>
107
+ <table class="table table-striped table-bordered">
108
+ <thead>
109
+ <tr>
110
+ <th style="text-align: center;background-color: #dfedfb;color:black;">燃气设施全景</th>
111
+ </tr>
112
+ </thead>
113
+ <tbody>
114
+ <tr>
115
+ <td style="margin: auto;text-align: center">
116
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
117
+ <div class="img" v-for="img in serviceall.imgs">
118
+ <tel-img-self-tel-plus :list="serviceall.imgs" :src="'rs/image/file/'+img.android_file" style="float: left" width="150"
119
+ height="200"></tel-img-self-tel-plus>
120
+ </div>
121
+ </div>
122
+ </td>
123
+ </tr>
124
+ </tbody>
125
+ </table>
126
+ <table class="table table-striped table-bordered">
127
+ <thead>
128
+ <tr>
129
+ <th style="text-align: center;background-color: #dfedfb;color:black;">用户签名照片</th>
130
+ </tr>
131
+ </thead>
132
+ <tr>
133
+ <td style="margin: auto;text-align: center">
134
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
135
+ <div class="img" style="float: none">
136
+ <tel-img-self-tel-plus :src="'rs/image/file/'+serviceall.f_signname" width="400" height="300"></tel-img-self-tel-plus>
137
+ </div>
138
+ </div>
139
+ </td>
140
+ </tr>
141
+ </table>
142
+ <table class="table table-striped table-bordered" v-if="serviceall.f_recording_path">
143
+ <thead>
144
+ <tr>
145
+ <th style="text-align: center;background-color: #dfedfb;color:black;">录音文件</th>
146
+ </tr>
147
+ </thead>
148
+ <tr>
149
+ <td style="margin: auto;text-align: center">
150
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
151
+ <a class="button_spacing button_search-1"
152
+ :href="'rs/image/file/'+serviceall.f_recording_path" >录音下载</a>
153
+ </div>
154
+ </td>
155
+ </tr>
156
+ </table>
157
+ <table class="table table-striped table-bordered" v-if="serviceall.f_othercharge_id">
158
+ <thead>
159
+ <tr>
160
+ <th colspan="5" style="text-align: center;background-color: #dfedfb;color:black;">其他收费</th>
161
+ </tr>
162
+ </thead>
163
+ <tr>
164
+ <td style="margin: auto;text-align: center">
165
+ 收费类型
166
+ </td>
167
+ <td style="margin: auto;text-align: center">
168
+ 单价
169
+ </td>
170
+ <td style="margin: auto;text-align: center">
171
+ 数量
172
+ </td>
173
+ <td style="margin: auto;text-align: center">
174
+ 付款方式
175
+ </td>
176
+ <td style="margin: auto;text-align: center">
177
+ 收费日期
178
+ </td>
179
+ </tr>
180
+ <tr v-for="item in othercharge">
181
+ <td style="margin: auto;text-align: center">
182
+ {{item.f_brand_spec}}
183
+ </td>
184
+ <td style="margin: auto;text-align: center">
185
+ {{item.f_unitprice}}
186
+ </td>
187
+ <td style="margin: auto;text-align: center">
188
+ {{item.f_number}}
189
+ </td>
190
+ <td style="margin: auto;text-align: center">
191
+ {{item.f_payment}}
192
+ </td>
193
+ <td style="margin: auto;text-align: center">
194
+ {{item.f_operate_date}}
195
+ </td>
196
+ </tr>
197
+ </table>
198
+
199
+ </div>
200
+ </div>
201
+ <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
202
+ <div class="col-md-6" style="height: 100%;overflow: scroll">
203
+ <div style="width: 95%;margin-left: 5%">
204
+ <table class="table table-striped table-bordered" v-for=" serviceone in servicerepair">
205
+ <thead>
206
+ <tr>
207
+ <th style="text-align: center;background-color: #dfedfb;color:black;">{{ serviceone.f_type }}</th>
208
+ </tr>
209
+ </thead>
210
+ <tbody>
211
+ <tr v-for="detail in serviceone.details">
212
+ <td>
213
+ <div class="row">
214
+ <div class="col-md-8" style="text-align: center;" v-if="detail.f_defect_id">
215
+ <a @click="showSafeImg(detail)">{{ detail.f_project }}</a>
216
+ </div>
217
+ <div class="col-md-8" style="text-align: center;" v-else>
218
+ {{ detail.f_project }}
219
+ </div>
220
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type!='picture'">
221
+ {{ detail.f_content?detail.f_content:'无' }}
222
+ </div>
223
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&ispicture(serviceone.imgs,detail.f_project)">
224
+ <button-link style="color: black" type="button" class="btn btn-link"
225
+ @click="showpath(serviceone.imgs,detail.f_project)">查看照片
226
+ </button-link>
227
+ </div>
228
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&!ispicture(serviceone.imgs,detail.f_project)">
229
+ 无照片
230
+ </div>
231
+ </div>
232
+ <!-- {{detail.f_first_imgname}}-->
233
+ <!-- <div class="row" v-if="detail.f_first_imgname">
234
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
235
+ <div class="img" style="float: none">
236
+ <tel-img-self-tel-plus :src="'rs/image/file/'+detail.f_first_imgname" width="400" height="300"></tel-img-self-tel-plus>
237
+ </div>
238
+
239
+ </div>
240
+ </div>-->
241
+ </td>
242
+
243
+
244
+ </tr>
245
+ </tbody>
246
+ </table>
247
+
248
+
249
+ </div>
250
+
251
+ </div>
252
+ </div>
253
+ <div v-show="false">
254
+ <div id="toPdf" class="container-fluid row" style="overflow: scroll">
255
+ <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll;width: 95%">
256
+ <div style="width: 100%;margin: auto">
257
+ <table class="table table-striped table-bordered" style="margin-bottom: 6px">
258
+ <thead>
259
+ <tr>
260
+ <th colspan="6" style="text-align: center;background-color: #dfedfb;color:black;">客户工单信息</th>
261
+ </tr>
262
+ </thead>
263
+ <tbody>
264
+ <tr>
265
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
266
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
267
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
268
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_userinfo_code }}</td>
269
+ </tr>
270
+ <tr>
271
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细地址:</td>
272
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ baseuserinfo.f_address }}</td>
273
+ </tr>
274
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
275
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">故障明细:</td>
276
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ changefailure(serviceall.f_new_failure) }}</td>
277
+ </tr>
278
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
279
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">{{usermeter.f_collection_type=='按金额'?'累购金额:':'累购气量:'}}</td>
280
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_collection_type=='按金额'?usermeter.f_total_fee:usermeter.f_total_gas }}</td>
281
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">左&ensp;右&ensp;表:</td>
282
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_aroundmeter }}</td>
283
+ </tr>
284
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
285
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;&emsp;&ensp;号:</td>
286
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meternumber }}</td>
287
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%"></td>
288
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%"></td>
289
+ </tr>
290
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
291
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;品&ensp;牌:</td>
292
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_brand }}</td>
293
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;型&ensp;号:</td>
294
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_style }}</td>
295
+ </tr>
296
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
297
+
298
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户姓名:</td>
299
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
300
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用气性质:</td>
301
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_gasproperties }}</td>
302
+ </tr>
303
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
304
+
305
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">联系电话:</td>
306
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_phone }}</td>
307
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">住户类型:</td>
308
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_house_type }}</td>
309
+ </tr>
310
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
311
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">身份证号:</td>
312
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_shenfenzheng}}</td>
313
+ </tr>
314
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
315
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">用户地址:</td>
316
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_address}}</td>
317
+ </tr>
318
+ <!-- <tr>-->
319
+
320
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">派单时间:</td>-->
321
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_created_date }}</td>-->
322
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">完成时间:</td>-->
323
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_repair_date }}</td>-->
324
+ <!-- </tr>-->
325
+ <tr>
326
+
327
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
328
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_come }}</td>
329
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
330
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_leave }}</td>
331
+ </tr>
332
+ <tr v-if="serviceall.f_workorder_type == '置换通气单' && baseuserinfo.f_user_type == '民用'">
333
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">防盗卡号:</td>
334
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_defendcard }}</td>
335
+ </tr>
336
+ <tr v-if="serviceall.f_workorder_type == '置换通气单' && baseuserinfo.f_user_type == '非民用'">
337
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">铅封号:</td>
338
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_gmd_lsnumber }}</td>
339
+ </tr>
340
+ <tr>
341
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">备注:</td>
342
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ serviceall.f_remarks }}</td>
343
+ </tr>
344
+ </tbody>
345
+ </table>
346
+ <table class="table table-striped table-bordered">
347
+ <thead>
348
+ <tr>
349
+ <th style="text-align: center;background-color: #dfedfb;color:black;">燃气设施全景</th>
350
+ </tr>
351
+ </thead>
352
+ <tbody>
353
+ <tr>
354
+ <td style="margin: auto;text-align: center">
355
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
356
+ <div class="img" v-for="img in serviceall.imgs">
357
+ <tel-img-self-tel-plus :src="'rs/image/file/'+img.android_file" style="float: left" width="150"
358
+ height="200"></tel-img-self-tel-plus>
359
+ </div>
360
+ </div>
361
+ </td>
362
+ </tr>
363
+ </tbody>
364
+ </table>
365
+ <table class="table table-striped table-bordered">
366
+ <thead>
367
+ <tr>
368
+ <th style="text-align: center;background-color: #dfedfb;color:black;">用户签名照片</th>
369
+ </tr>
370
+ </thead>
371
+ <tr>
372
+ <td style="margin: auto;text-align: center">
373
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
374
+ <div class="img" style="float: none">
375
+ <tel-img-self-tel-plus :src="'rs/image/file/'+serviceall.f_signname" width="400" height="300"></tel-img-self-tel-plus>
376
+ </div>
377
+ </div>
378
+ </td>
379
+ </tr>
380
+ </table>
381
+ <table class="table table-striped table-bordered" v-if="serviceall.f_othercharge_id">
382
+ <thead>
383
+ <tr>
384
+ <th colspan="5" style="text-align: center;background-color: #dfedfb;color:black;">其他收费</th>
385
+ </tr>
386
+ </thead>
387
+ <tr>
388
+ <td style="margin: auto;text-align: center">
389
+ 收费类型
390
+ </td>
391
+ <td style="margin: auto;text-align: center">
392
+ 单价
393
+ </td>
394
+ <td style="margin: auto;text-align: center">
395
+ 数量
396
+ </td>
397
+ <td style="margin: auto;text-align: center">
398
+ 付款方式
399
+ </td>
400
+ <td style="margin: auto;text-align: center">
401
+ 收费日期
402
+ </td>
403
+ </tr>
404
+ <tr v-for="item in othercharge">
405
+ <td style="margin: auto;text-align: center">
406
+ {{item.f_brand_spec}}
407
+ </td>
408
+ <td style="margin: auto;text-align: center">
409
+ {{item.f_unitprice}}
410
+ </td>
411
+ <td style="margin: auto;text-align: center">
412
+ {{item.f_number}}
413
+ </td>
414
+ <td style="margin: auto;text-align: center">
415
+ {{item.f_payment}}
416
+ </td>
417
+ <td style="margin: auto;text-align: center">
418
+ {{item.f_operate_date}}
419
+ </td>
420
+ </tr>
421
+ </table>
422
+
423
+ </div>
424
+ </div>
425
+ <div style="height: 100%;width: 95%;overflow: scroll">
426
+ <div style="width: 95%;margin-left: 5%">
427
+ <table class="table table-striped table-bordered" v-for=" serviceone in servicerepair">
428
+ <thead>
429
+ <tr>
430
+ <th style="text-align: center;background-color: #dfedfb;color:black;">{{ serviceone.f_type }}</th>
431
+ </tr>
432
+ </thead>
433
+ <tbody>
434
+ <tr v-for="detail in serviceone.details">
435
+ <td>
436
+ <div class="row">
437
+ <div class="col-md-8" style="text-align: center;">{{ detail.f_project }}</div>
438
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type!='picture'">
439
+ {{ detail.f_content?detail.f_content:'无' }}
440
+ </div>
441
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&ispicture(serviceone.imgs,detail.f_project)">
442
+ <button-link style="color: black" type="button" class="btn btn-link"
443
+ @click="showpath(serviceone.imgs,detail.f_project)">查看照片
444
+ </button-link>
445
+ </div>
446
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&!ispicture(serviceone.imgs,detail.f_project)">
447
+ 无照片
448
+ </div>
449
+ </div>
450
+ <!-- {{detail.f_first_imgname}}-->
451
+ <!-- <div class="row" v-if="detail.f_first_imgname">
452
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
453
+ <div class="img" style="float: none">
454
+ <tel-img-self-tel-plus :src="'rs/image/file/'+detail.f_first_imgname" width="400" height="300"></tel-img-self-tel-plus>
455
+ </div>
456
+
457
+ </div>
458
+ </div>-->
459
+ </td>
460
+
461
+
462
+ </tr>
463
+ </tbody>
464
+ </table>
465
+
466
+
467
+ </div>
468
+
469
+ </div>
470
+ </div>
471
+ </div>
472
+ </div>
473
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true">
474
+ <header slot="modal-header" class="modal-header" style="font-size: 20px;text-align: center">
475
+ {{ picturename }}
476
+ </header>
477
+ <article slot="modal-body" class="modal-body">
478
+ <div class="from-group">
479
+ <div class="row">
480
+ <div class="col-md-6" v-for="item in showimgs">
481
+ <tel-img-self-tel-plus :src="item" width="300" height="400"></tel-img-self-tel-plus>
482
+ </div>
483
+ </div>
484
+ </div>
485
+ </article>
486
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
487
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
488
+ </footer>
489
+ </modal>
490
+ </template>
491
+
492
+ <script>
493
+ import html2pdf from 'html2pdf.js'
494
+ import {HttpResetClass} from 'vue-client'
495
+
496
+ export default {
497
+ title: '工单详情',
498
+ props: ['curactivity', 'service'],
499
+ data () {
500
+ return {
501
+ showPdfDownload: this.$appdata.getSingleValue('工单结果pdf下载') ? this.$appdata.getSingleValue('工单结果pdf下载') : false,
502
+ othercharge:[],
503
+ imgshow:false,
504
+ picturename:'',
505
+ showimg:'',
506
+ baseuserinfo: {},
507
+ showimgs:[],
508
+ allimgs: [],
509
+ servicerepair: [],
510
+ serviceall: {},
511
+ usermeter:{},
512
+ loading: false
513
+ }
514
+ },
515
+ ready () {
516
+ this.loading=true
517
+ ////tag
518
+ ////tag)
519
+ let http = new HttpResetClass()
520
+ ////tag
521
+ http.load('POST', 'af-telephone/rs/path/serviceWork', {data: {id: this.curactivity.id}}, {
522
+ resolveMsg: null,
523
+ rejectMsg: null
524
+ }).then(res => {
525
+ ////tag)
526
+ for (let i = 0; i < res.data.length; i++) {
527
+ if (res.data[i].id == this.curactivity.id) {
528
+ this.serviceall = res.data[i]
529
+ this.baseuserinfo = res.data[i].baseuserinfo
530
+ this.servicerepair = res.data[i].servicerepair
531
+ this.allimgs = res.data[i].imgs
532
+ http.load('post','af-telephone/rs/sql/getBaseMeterInfo',{data:{f_userinfo_id:this.baseuserinfo.f_userinfo_id}},{
533
+ resolveMsg: null,
534
+ rejectMsg: null
535
+ }).then(res=>{
536
+ this.usermeter=res.data[0]
537
+ })
538
+ if (res.data[i].f_othercharge_id){
539
+ let condition = {
540
+ items: 'od.f_brand_spec,od.f_unitprice,od.f_number,o.f_payment,o.f_operate_date',
541
+ tablename: 't_othercharge o left join t_othercharge_detail od on od.f_othercharge_id = o.id',
542
+ condition: `o.id = '${res.data[i].f_othercharge_id}'`,
543
+ orderitem: '1'
544
+ }
545
+ new HttpResetClass().load('post','af-telephone/rs/sql/tel_singleTable_OrderBy',{data:condition},{
546
+ resolveMsg: null,
547
+ rejectMsg: null
548
+ }).then(res=>{
549
+ this.othercharge=res.data
550
+ })
551
+ }
552
+ }
553
+ }
554
+
555
+ ////tag)
556
+ ////tag)
557
+ ////tag)
558
+ ////tag)
559
+ this.loading=false
560
+ })
561
+ },
562
+ methods: {
563
+ showSafeImg(detail){
564
+ this.picturename = ''
565
+ this.showimgs = []
566
+ if (detail.f_defect_id){
567
+ let data = {
568
+ items: '*',
569
+ tablename: 't_devices_items',
570
+ condition: `id = '${detail.f_defect_id}'`,
571
+ orderitem: '1'
572
+ }
573
+ let http = new HttpResetClass()
574
+ http.load('post','af-telephone/rs/sql/tel_singleTable_OrderBy',{data:data},{
575
+ resolveMsg: null,
576
+ rejectMsg: null
577
+ }).then(res=>{
578
+ this.picturename = '隐患照片/维修照片'
579
+ if (res.data[0].f_path){
580
+ this.showimgs.push('rs/image/file/'+res.data[0].f_path)
581
+ }
582
+ if(detail.f_first_imgname){
583
+ this.showimgs.push('rs/image/file/'+detail.f_first_imgname)
584
+ }
585
+ this.imgshow = true
586
+ })
587
+ }else {
588
+
589
+ }
590
+ },
591
+ exportToPDF() {
592
+ const element = document.getElementById('toPdf') // 替换为您要导出的页面元素的ID
593
+ html2pdf(element)
594
+ },
595
+ changefailure(val){
596
+ let failureall=''
597
+ // val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
598
+ let failure = JSON.parse(val)
599
+ for (let i = 0; i <failure.length; i++) {
600
+ if (failure[i].failurecase.length>0){
601
+ failureall+=failure[i].f_failure_type+":"
602
+ for (let j = 0; j < failure[i].failurecase.length; j++) {
603
+ failureall+=failure[i].failurecase[j]
604
+ if (j+1!=failure[i].failurecase.length){
605
+ failureall+=","
606
+ }
607
+ }
608
+
609
+ }else{
610
+ failureall+=failure[i].f_failure_type
611
+ }
612
+ if (i+1!=failure.length){
613
+ failureall+=';'
614
+ }
615
+ }
616
+ return failureall
617
+ },
618
+ imgclose(){
619
+ this.imgshow=false
620
+ },
621
+ ispicture(imgs,imgid){
622
+ let imgstr=''
623
+ let imgpath=''
624
+ for (let i = 0; i < imgs.length; i++) {
625
+ if (imgs[i].imgpath==imgid){
626
+ imgstr=imgs[i].android_file
627
+ imgpath=imgs[i].imgpath
628
+ }
629
+ }
630
+ ////tag
631
+ ////tag
632
+ if (imgstr){
633
+ return true
634
+ }
635
+ return false
636
+ },
637
+ showpath (imgs,imgid) {
638
+ this.picturename = ''
639
+ const img = imgs.filter(res => res.imgpath === imgid).map(res => 'rs/image/file/' + res.android_file)
640
+ if (img.length > 0) {
641
+ this.showimgs = img
642
+ this.picturename = imgid
643
+ this.imgshow = true
644
+ }
645
+ },
646
+ back () {
647
+ this.$back()
648
+ }
649
+ }
650
+ }
651
+ </script>
652
+
653
+ <style scoped>
654
+ .img {
655
+ border: 1px solid #9773ed;
656
+ width: auto;
657
+ height: auto;
658
+ float: left;
659
+ text-align: center;
660
+ margin: 6px;
661
+ }
662
+
663
+ img {
664
+ margin: 6px;
665
+ }
666
+
667
+
668
+ .container {
669
+ margin: 10px auto;
670
+ width: 80%;
671
+ height: auto;
672
+ }
673
+
674
+ div::-webkit-scrollbar {
675
+ width: 0 !important;
676
+ height: 0 !important;
677
+ }
678
+
679
+ div {
680
+ -ms-overflow-style: none;
681
+ overflow: -moz-scrollbars-none;
682
+ }
683
+
684
+ .divmask {
685
+ pointer-events: none;
686
+ }
687
+
688
+ .app-header {
689
+ border-radius: 50%;
690
+ background: rgba(73, 158, 223, 0.4);
691
+ color: #FFF;
692
+ padding: 20px;
693
+ text-align: center;
694
+ font-size: 1.2em;
695
+ z-index: 10;
696
+ opacity: 0.5;
697
+ bottom: 50px;
698
+ margin-top: -20px;
699
+ position: absolute;
700
+ top: 10%;
701
+ right: 2%;
702
+ height: 8%;
703
+ }
704
+ </style>