telephone-clients 3.0.102 → 3.0.103

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 (39) hide show
  1. package/package.json +1 -1
  2. package/src/App.vue +56 -52
  3. package/src/components/MaterialsManage/MaterialsBase.vue +177 -177
  4. package/src/components/Util/RightTreeSafe.vue +346 -346
  5. package/src/components/pc/NewRepairPaper.vue +370 -370
  6. package/src/components/pc/SiteSend.vue +281 -281
  7. package/src/components/pc/WorkCenterList.vue +292 -292
  8. package/src/components/pc/WorkListAllNew.vue +700 -700
  9. package/src/components/temp/ChangemeterInfo.vue +87 -87
  10. package/src/components/temp/DeviceInfo.vue +82 -82
  11. package/src/components/workorder/FaultAll.vue +826 -826
  12. package/src/components/workorder/PhoneStandWork.vue +354 -354
  13. package/src/components/workorder/RepairOrderV.vue +1446 -1446
  14. package/src/filiale/furuike/pc/ComplainWork.vue +348 -348
  15. package/src/filiale/furuike/pc/Seekwork.vue +352 -352
  16. package/src/filiale/gongyi/android/RepairOrderV.vue +1415 -1415
  17. package/src/filiale/liaoyuan/android/RepairOrderV.vue +831 -831
  18. package/src/filiale/qianneng/android/FaultAll.vue +883 -883
  19. package/src/filiale/qianneng/android/MaterIialOne.vue +123 -123
  20. package/src/filiale/qianneng/android/RepairOrderV.vue +874 -874
  21. package/src/filiale/qianneng/android/chargesList.vue +161 -161
  22. package/src/filiale/qianneng/pc/NewRepairPaper.vue +467 -467
  23. package/src/filiale/qianneng/pc/RepairsWork.vue +982 -982
  24. package/src/filiale/qianneng/pc/WorkListAllNew.vue +701 -701
  25. package/src/filiale/shanxian/pc/WorkList.vue +823 -823
  26. package/src/filiale/shanxian/telephone.js +12 -12
  27. package/src/filiale/shexian/android/AddMyTask.vue +347 -0
  28. package/src/filiale/shexian/android/Outlay.vue +249 -249
  29. package/src/filiale/shexian/pc/WorkList.vue +740 -0
  30. package/src/filiale/shexian/telephone.js +18 -17
  31. package/src/filiale/shexian/telephoneAndroid.js +26 -23
  32. package/src/filiale/tongchuan/pc/UserWork.vue +805 -805
  33. package/src/filiale/wenxi/android/RepairOrderV.vue +1419 -1419
  34. package/src/filiale/wuan/android/RepairOrderV.vue +1384 -1384
  35. package/src/filiale/zhongsheng/android/RepairOrderV.vue +1430 -1430
  36. package/src/filiale/zhongsheng/pc/RepairsWork.vue +775 -775
  37. package/src/filiale/zhongsheng/telephone.js +23 -23
  38. package/src/main.js +1 -1
  39. package/yarn-error.log +7872 -0
@@ -1,370 +1,370 @@
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
- <work-busy :is-busy="loading"></work-busy>
9
- <div class="container-fluid" style="overflow: scroll">
10
- <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
11
- <div style="width: 100%;margin: auto">
12
- <table class="table table-striped table-bordered" style="margin-bottom: 6px">
13
- <thead>
14
- <tr>
15
- <th colspan="6" style="text-align: center;background-color: #dfedfb;color:black;">客户工单信息</th>
16
- </tr>
17
- </thead>
18
- <tbody>
19
- <tr>
20
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
21
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
22
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
23
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_userinfo_code }}</td>
24
- </tr>
25
- <tr>
26
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细地址:</td>
27
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ baseuserinfo.f_address }}</td>
28
- </tr>
29
- <tr v-if="serviceall.f_workorder_type=='报修单'">
30
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">故障明细:</td>
31
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ changefailure(serviceall.f_new_failure) }}</td>
32
- </tr>
33
- <tr v-if="serviceall.f_workorder_type=='报修单'">
34
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">{{usermeter.f_collection_type=='按金额'?'累购金额:':'累购气量:'}}</td>
35
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_collection_type=='按金额'?usermeter.f_total_fee:usermeter.f_total_gas }}</td>
36
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">左&ensp;右&ensp;表:</td>
37
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_aroundmeter }}</td>
38
- </tr>
39
- <tr v-if="serviceall.f_workorder_type=='报修单'">
40
-
41
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;品&ensp;牌:</td>
42
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_brand }}</td>
43
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;型&ensp;号:</td>
44
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_style }}</td>
45
- </tr>
46
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
47
-
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%">{{ baseuserinfo.f_user_name }}</td>
50
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用气性质:</td>
51
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_gasproperties }}</td>
52
- </tr>
53
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
54
-
55
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">联系电话:</td>
56
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_phone }}</td>
57
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">住户类型:</td>
58
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_house_type }}</td>
59
- </tr>
60
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
61
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">身份证号:</td>
62
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_shenfenzheng}}</td>
63
- </tr>
64
- <tr v-if="serviceall.f_workorder_type=='置换通气单'">
65
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">用户地址:</td>
66
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_address}}</td>
67
- </tr>
68
- <!-- <tr>-->
69
-
70
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">派单时间:</td>-->
71
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_created_date }}</td>-->
72
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">完成时间:</td>-->
73
- <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_repair_date }}</td>-->
74
- <!-- </tr>-->
75
- <tr>
76
-
77
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
78
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_come }}</td>
79
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
80
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_leave }}</td>
81
- </tr>
82
- <tr>
83
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">备注:</td>
84
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ serviceall.f_remarks }}</td>
85
- </tr>
86
- </tbody>
87
- </table>
88
- <table class="table table-striped table-bordered">
89
- <thead>
90
- <tr>
91
- <th style="text-align: center;background-color: #dfedfb;color:black;">燃气设施全景</th>
92
- </tr>
93
- </thead>
94
- <tbody>
95
- <tr>
96
- <td style="margin: auto;text-align: center">
97
- <div class="container" style="max-width: 550px;background: #FFFFFF">
98
- <div class="img" v-for="img in serviceall.imgs">
99
- <img-self-tel :src="'rs/image/file/'+img.android_file" style="float: left" width="150"
100
- height="200"></img-self-tel>
101
- </div>
102
- </div>
103
- </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
- <tr>
114
- <td style="margin: auto;text-align: center">
115
- <div class="container" style="max-width: 500px;background: #FFFFFF">
116
- <div class="img" style="float: none">
117
- <img-self-tel :src="'rs/image/file/'+serviceall.f_signname" width="400" height="300"></img-self-tel>
118
- </div>
119
- </div>
120
- </td>
121
- </tr>
122
- </table>
123
- <table class="table table-striped table-bordered" v-if="serviceall.f_recording_path">
124
- <thead>
125
- <tr>
126
- <th style="text-align: center;background-color: #dfedfb;color:black;">录音文件</th>
127
- </tr>
128
- </thead>
129
- <tr>
130
- <td style="margin: auto;text-align: center">
131
- <div class="container" style="max-width: 500px;background: #FFFFFF">
132
- <a class="button_spacing button_search-1"
133
- :href="'rs/image/file/'+serviceall.f_recording_path" >录音下载</a>
134
- </div>
135
- </td>
136
- </tr>
137
- </table>
138
-
139
- </div>
140
- </div>
141
- <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
142
- <div class="col-md-6" style="height: 100%;overflow: scroll">
143
- <div style="width: 95%;margin-left: 5%">
144
- <table class="table table-striped table-bordered" v-for=" serviceone in servicerepair">
145
- <thead>
146
- <tr>
147
- <th style="text-align: center;background-color: #dfedfb;color:black;">{{ serviceone.f_type }}</th>
148
- </tr>
149
- </thead>
150
- <tbody>
151
- <tr v-for="detail in serviceone.details">
152
- <td>
153
- <div class="row">
154
- <div class="col-md-8" style="text-align: center;">{{ detail.f_project }}</div>
155
- <div class="col-md-4" style="text-align: center;" v-if="detail.type!='picture'">
156
- {{ detail.f_content?detail.f_content:'无' }}
157
- </div>
158
- <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&ispicture(serviceone.imgs,detail.f_project)">
159
- <button-link style="color: black" type="button" class="btn btn-link"
160
- @click="showpath(serviceone.imgs,detail.f_project)">查看照片
161
- </button-link>
162
- </div>
163
- <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&!ispicture(serviceone.imgs,detail.f_project)">
164
- 无照片
165
- </div>
166
- </div>
167
- <!-- {{detail.f_first_imgname}}-->
168
- <div class="row" v-if="detail.f_first_imgname">
169
- <div class="container" style="max-width: 500px;background: #FFFFFF">
170
- <div class="img" style="float: none">
171
- <img-self-tel :src="'rs/image/file/'+detail.f_first_imgname" width="400" height="300"></img-self-tel>
172
- </div>
173
-
174
- </div>
175
- </div>
176
- </td>
177
-
178
-
179
- </tr>
180
- </tbody>
181
- </table>
182
-
183
-
184
- </div>
185
-
186
- </div>
187
- </div>
188
- </div>
189
- <modal :show.sync="imgshow" v-ref:modal backdrop="true">
190
- <header slot="modal-header" class="modal-header">
191
- {{ picturename }}
192
- </header>
193
- <article slot="modal-body" class="modal-body">
194
- <div class="from-group">
195
- <div class="row">
196
- <div class="col-md-6" v-for="item in showimgs">
197
- <img-self-tel :src="item" width="300" height="400"></img-self-tel>
198
- </div>
199
- </div>
200
- </div>
201
- </article>
202
- <footer slot="modal-footer" class="modal-footer" v-show="false">
203
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
204
- </footer>
205
- </modal>
206
- </template>
207
-
208
- <script>
209
- import {HttpResetClass} from 'vue-client'
210
-
211
- export default {
212
- title: '工单详情',
213
- props: ['curActivity', 'service'],
214
- data () {
215
- return {
216
- imgshow:false,
217
- picturename:'',
218
- showimg:'',
219
- baseuserinfo: {},
220
- showimgs:[],
221
- allimgs: [],
222
- servicerepair: [],
223
- serviceall: {},
224
- usermeter:{},
225
- loading: false
226
- }
227
- },
228
- ready () {
229
- this.loading=true
230
- ////tag
231
- ////tag)
232
- let http = new HttpResetClass()
233
- ////tag
234
- http.load('POST', 'rs/path/serviceWork', {data: {id: this.curActivity.id}}, {
235
- resolveMsg: null,
236
- rejectMsg: null
237
- }).then(res => {
238
- ////tag)
239
- for (let i = 0; i < res.data.length; i++) {
240
- if (res.data[i].id == this.curActivity.id) {
241
- this.serviceall = res.data[i]
242
- this.baseuserinfo = res.data[i].baseuserinfo
243
- this.servicerepair = res.data[i].servicerepair
244
- this.allimgs = res.data[i].imgs
245
- http.load('post','rs/sql/getBaseMeterInfo',{data:{f_userinfo_id:this.baseuserinfo.f_userinfo_id}},{
246
- resolveMsg: null,
247
- rejectMsg: null
248
- }).then(res=>{
249
- this.usermeter=res.data[0]
250
- })
251
- }
252
- }
253
-
254
- ////tag)
255
- ////tag)
256
- ////tag)
257
- ////tag)
258
- this.loading=false
259
- })
260
- },
261
- methods: {
262
- changefailure(val){
263
- let failureall=''
264
- // val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
265
- let failure = JSON.parse(val)
266
- for (let i = 0; i <failure.length; i++) {
267
- if (failure[i].failurecase.length>0){
268
- failureall+=failure[i].f_failure_type+":"
269
- for (let j = 0; j < failure[i].failurecase.length; j++) {
270
- failureall+=failure[i].failurecase[j]
271
- if (j+1!=failure[i].failurecase.length){
272
- failureall+=","
273
- }
274
- }
275
-
276
- }else{
277
- failureall+=failure[i].f_failure_type
278
- }
279
- if (i+1!=failure.length){
280
- failureall+=';'
281
- }
282
- }
283
- return failureall
284
- },
285
- imgclose(){
286
- this.imgshow=false
287
- },
288
- ispicture(imgs,imgid){
289
- let imgstr=''
290
- let imgpath=''
291
- for (let i = 0; i < imgs.length; i++) {
292
- if (imgs[i].imgpath==imgid){
293
- imgstr=imgs[i].android_file
294
- imgpath=imgs[i].imgpath
295
- }
296
- }
297
- ////tag
298
- ////tag
299
- if (imgstr){
300
- return true
301
- }
302
- return false
303
- },
304
- showpath (imgs,imgid) {
305
- const img = imgs.filter(res => res.imgpath === imgid).map(res => 'rs/image/file/' + res.android_file)
306
- if (img.length > 0) {
307
- this.showimgs = img
308
- this.picturename = imgid
309
- this.imgshow = true
310
- }
311
- },
312
- back () {
313
- this.$back()
314
- }
315
- }
316
- }
317
- </script>
318
-
319
- <style scoped>
320
- .img {
321
- border: 1px solid #9773ed;
322
- width: auto;
323
- height: auto;
324
- float: left;
325
- text-align: center;
326
- margin: 6px;
327
- }
328
-
329
- img {
330
- margin: 6px;
331
- }
332
-
333
-
334
- .container {
335
- margin: 10px auto;
336
- width: 80%;
337
- height: auto;
338
- }
339
-
340
- div::-webkit-scrollbar {
341
- width: 0 !important;
342
- height: 0 !important;
343
- }
344
-
345
- div {
346
- -ms-overflow-style: none;
347
- overflow: -moz-scrollbars-none;
348
- }
349
-
350
- .divmask {
351
- pointer-events: none;
352
- }
353
-
354
- .app-header {
355
- border-radius: 50%;
356
- background: rgba(73, 158, 223, 0.4);
357
- color: #FFF;
358
- padding: 20px;
359
- text-align: center;
360
- font-size: 1.2em;
361
- z-index: 10;
362
- opacity: 0.5;
363
- bottom: 50px;
364
- margin-top: -20px;
365
- position: absolute;
366
- top: 10%;
367
- right: 2%;
368
- height: 8%;
369
- }
370
- </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
+ <work-busy :is-busy="loading"></work-busy>
9
+ <div class="container-fluid" style="overflow: scroll">
10
+ <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
11
+ <div style="width: 100%;margin: auto">
12
+ <table class="table table-striped table-bordered" style="margin-bottom: 6px">
13
+ <thead>
14
+ <tr>
15
+ <th colspan="6" style="text-align: center;background-color: #dfedfb;color:black;">客户工单信息</th>
16
+ </tr>
17
+ </thead>
18
+ <tbody>
19
+ <tr>
20
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
21
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
22
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
23
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_userinfo_code }}</td>
24
+ </tr>
25
+ <tr>
26
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细地址:</td>
27
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ baseuserinfo.f_address }}</td>
28
+ </tr>
29
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
30
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">故障明细:</td>
31
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ changefailure(serviceall.f_new_failure) }}</td>
32
+ </tr>
33
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
34
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">{{usermeter.f_collection_type=='按金额'?'累购金额:':'累购气量:'}}</td>
35
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_collection_type=='按金额'?usermeter.f_total_fee:usermeter.f_total_gas }}</td>
36
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">左&ensp;右&ensp;表:</td>
37
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_aroundmeter }}</td>
38
+ </tr>
39
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
40
+
41
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;品&ensp;牌:</td>
42
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_brand }}</td>
43
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">表&ensp;型&ensp;号:</td>
44
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_meter_style }}</td>
45
+ </tr>
46
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
47
+
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%">{{ baseuserinfo.f_user_name }}</td>
50
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用气性质:</td>
51
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_gasproperties }}</td>
52
+ </tr>
53
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
54
+
55
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">联系电话:</td>
56
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_phone }}</td>
57
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">住户类型:</td>
58
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_house_type }}</td>
59
+ </tr>
60
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
61
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">身份证号:</td>
62
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_shenfenzheng}}</td>
63
+ </tr>
64
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
65
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">用户地址:</td>
66
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_address}}</td>
67
+ </tr>
68
+ <!-- <tr>-->
69
+
70
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">派单时间:</td>-->
71
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_created_date }}</td>-->
72
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">完成时间:</td>-->
73
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_repair_date }}</td>-->
74
+ <!-- </tr>-->
75
+ <tr>
76
+
77
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
78
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_come }}</td>
79
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
80
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_leave }}</td>
81
+ </tr>
82
+ <tr>
83
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">备注:</td>
84
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ serviceall.f_remarks }}</td>
85
+ </tr>
86
+ </tbody>
87
+ </table>
88
+ <table class="table table-striped table-bordered">
89
+ <thead>
90
+ <tr>
91
+ <th style="text-align: center;background-color: #dfedfb;color:black;">燃气设施全景</th>
92
+ </tr>
93
+ </thead>
94
+ <tbody>
95
+ <tr>
96
+ <td style="margin: auto;text-align: center">
97
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
98
+ <div class="img" v-for="img in serviceall.imgs">
99
+ <img-self-tel :src="'rs/image/file/'+img.android_file" style="float: left" width="150"
100
+ height="200"></img-self-tel>
101
+ </div>
102
+ </div>
103
+ </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
+ <tr>
114
+ <td style="margin: auto;text-align: center">
115
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
116
+ <div class="img" style="float: none">
117
+ <img-self-tel :src="'rs/image/file/'+serviceall.f_signname" width="400" height="300"></img-self-tel>
118
+ </div>
119
+ </div>
120
+ </td>
121
+ </tr>
122
+ </table>
123
+ <table class="table table-striped table-bordered" v-if="serviceall.f_recording_path">
124
+ <thead>
125
+ <tr>
126
+ <th style="text-align: center;background-color: #dfedfb;color:black;">录音文件</th>
127
+ </tr>
128
+ </thead>
129
+ <tr>
130
+ <td style="margin: auto;text-align: center">
131
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
132
+ <a class="button_spacing button_search-1"
133
+ :href="'rs/image/file/'+serviceall.f_recording_path" >录音下载</a>
134
+ </div>
135
+ </td>
136
+ </tr>
137
+ </table>
138
+
139
+ </div>
140
+ </div>
141
+ <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
142
+ <div class="col-md-6" style="height: 100%;overflow: scroll">
143
+ <div style="width: 95%;margin-left: 5%">
144
+ <table class="table table-striped table-bordered" v-for=" serviceone in servicerepair">
145
+ <thead>
146
+ <tr>
147
+ <th style="text-align: center;background-color: #dfedfb;color:black;">{{ serviceone.f_type }}</th>
148
+ </tr>
149
+ </thead>
150
+ <tbody>
151
+ <tr v-for="detail in serviceone.details">
152
+ <td>
153
+ <div class="row">
154
+ <div class="col-md-8" style="text-align: center;">{{ detail.f_project }}</div>
155
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type!='picture'">
156
+ {{ detail.f_content?detail.f_content:'无' }}
157
+ </div>
158
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&ispicture(serviceone.imgs,detail.f_project)">
159
+ <button-link style="color: black" type="button" class="btn btn-link"
160
+ @click="showpath(serviceone.imgs,detail.f_project)">查看照片
161
+ </button-link>
162
+ </div>
163
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&!ispicture(serviceone.imgs,detail.f_project)">
164
+ 无照片
165
+ </div>
166
+ </div>
167
+ <!-- {{detail.f_first_imgname}}-->
168
+ <div class="row" v-if="detail.f_first_imgname">
169
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
170
+ <div class="img" style="float: none">
171
+ <img-self-tel :src="'rs/image/file/'+detail.f_first_imgname" width="400" height="300"></img-self-tel>
172
+ </div>
173
+
174
+ </div>
175
+ </div>
176
+ </td>
177
+
178
+
179
+ </tr>
180
+ </tbody>
181
+ </table>
182
+
183
+
184
+ </div>
185
+
186
+ </div>
187
+ </div>
188
+ </div>
189
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true">
190
+ <header slot="modal-header" class="modal-header">
191
+ {{ picturename }}
192
+ </header>
193
+ <article slot="modal-body" class="modal-body">
194
+ <div class="from-group">
195
+ <div class="row">
196
+ <div class="col-md-6" v-for="item in showimgs">
197
+ <img-self-tel :src="item" width="300" height="400"></img-self-tel>
198
+ </div>
199
+ </div>
200
+ </div>
201
+ </article>
202
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
203
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
204
+ </footer>
205
+ </modal>
206
+ </template>
207
+
208
+ <script>
209
+ import {HttpResetClass} from 'vue-client'
210
+
211
+ export default {
212
+ title: '工单详情',
213
+ props: ['curActivity', 'service'],
214
+ data () {
215
+ return {
216
+ imgshow:false,
217
+ picturename:'',
218
+ showimg:'',
219
+ baseuserinfo: {},
220
+ showimgs:[],
221
+ allimgs: [],
222
+ servicerepair: [],
223
+ serviceall: {},
224
+ usermeter:{},
225
+ loading: false
226
+ }
227
+ },
228
+ ready () {
229
+ this.loading=true
230
+ ////tag
231
+ ////tag)
232
+ let http = new HttpResetClass()
233
+ ////tag
234
+ http.load('POST', 'rs/path/serviceWork', {data: {id: this.curActivity.id}}, {
235
+ resolveMsg: null,
236
+ rejectMsg: null
237
+ }).then(res => {
238
+ ////tag)
239
+ for (let i = 0; i < res.data.length; i++) {
240
+ if (res.data[i].id == this.curActivity.id) {
241
+ this.serviceall = res.data[i]
242
+ this.baseuserinfo = res.data[i].baseuserinfo
243
+ this.servicerepair = res.data[i].servicerepair
244
+ this.allimgs = res.data[i].imgs
245
+ http.load('post','rs/sql/getBaseMeterInfo',{data:{f_userinfo_id:this.baseuserinfo.f_userinfo_id}},{
246
+ resolveMsg: null,
247
+ rejectMsg: null
248
+ }).then(res=>{
249
+ this.usermeter=res.data[0]
250
+ })
251
+ }
252
+ }
253
+
254
+ ////tag)
255
+ ////tag)
256
+ ////tag)
257
+ ////tag)
258
+ this.loading=false
259
+ })
260
+ },
261
+ methods: {
262
+ changefailure(val){
263
+ let failureall=''
264
+ // val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
265
+ let failure = JSON.parse(val)
266
+ for (let i = 0; i <failure.length; i++) {
267
+ if (failure[i].failurecase.length>0){
268
+ failureall+=failure[i].f_failure_type+":"
269
+ for (let j = 0; j < failure[i].failurecase.length; j++) {
270
+ failureall+=failure[i].failurecase[j]
271
+ if (j+1!=failure[i].failurecase.length){
272
+ failureall+=","
273
+ }
274
+ }
275
+
276
+ }else{
277
+ failureall+=failure[i].f_failure_type
278
+ }
279
+ if (i+1!=failure.length){
280
+ failureall+=';'
281
+ }
282
+ }
283
+ return failureall
284
+ },
285
+ imgclose(){
286
+ this.imgshow=false
287
+ },
288
+ ispicture(imgs,imgid){
289
+ let imgstr=''
290
+ let imgpath=''
291
+ for (let i = 0; i < imgs.length; i++) {
292
+ if (imgs[i].imgpath==imgid){
293
+ imgstr=imgs[i].android_file
294
+ imgpath=imgs[i].imgpath
295
+ }
296
+ }
297
+ ////tag
298
+ ////tag
299
+ if (imgstr){
300
+ return true
301
+ }
302
+ return false
303
+ },
304
+ showpath (imgs,imgid) {
305
+ const img = imgs.filter(res => res.imgpath === imgid).map(res => 'rs/image/file/' + res.android_file)
306
+ if (img.length > 0) {
307
+ this.showimgs = img
308
+ this.picturename = imgid
309
+ this.imgshow = true
310
+ }
311
+ },
312
+ back () {
313
+ this.$back()
314
+ }
315
+ }
316
+ }
317
+ </script>
318
+
319
+ <style scoped>
320
+ .img {
321
+ border: 1px solid #9773ed;
322
+ width: auto;
323
+ height: auto;
324
+ float: left;
325
+ text-align: center;
326
+ margin: 6px;
327
+ }
328
+
329
+ img {
330
+ margin: 6px;
331
+ }
332
+
333
+
334
+ .container {
335
+ margin: 10px auto;
336
+ width: 80%;
337
+ height: auto;
338
+ }
339
+
340
+ div::-webkit-scrollbar {
341
+ width: 0 !important;
342
+ height: 0 !important;
343
+ }
344
+
345
+ div {
346
+ -ms-overflow-style: none;
347
+ overflow: -moz-scrollbars-none;
348
+ }
349
+
350
+ .divmask {
351
+ pointer-events: none;
352
+ }
353
+
354
+ .app-header {
355
+ border-radius: 50%;
356
+ background: rgba(73, 158, 223, 0.4);
357
+ color: #FFF;
358
+ padding: 20px;
359
+ text-align: center;
360
+ font-size: 1.2em;
361
+ z-index: 10;
362
+ opacity: 0.5;
363
+ bottom: 50px;
364
+ margin-top: -20px;
365
+ position: absolute;
366
+ top: 10%;
367
+ right: 2%;
368
+ height: 8%;
369
+ }
370
+ </style>