telephone-clients 4.0.0-1-1 → 4.0.0-1-3

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.
@@ -1,644 +1,644 @@
1
- <template>
2
- <div class="select-overspread repair-bg auto" style="padding-bottom:5px;">
3
- <div class="bq-parent" v-if="shutype == 'heng'">
4
- <blockquote class="blockquote">
5
- <p><span>{{repairitem.header}}</span><a @click="mute()" style="float:right" href="javascript:void(0)" class="repair-mute-class"><img src="../../assets/novoice.png" width="25px;" alt=""><span style="margin-left:10px;color: #304A66">关闭声音</span></a></p>
6
- </blockquote>
7
- </div>
8
- <div class="panel panel-default auto repair-info-content">
9
- <div class="panel-body">
10
- <!-- 维修项内容 -->
11
- <div class="auto repair-info-content compatible">
12
- <div class="row auto">
13
- <div class="{{shuclass}}" v-if="!show && Detail.f_remarks == '设备'">
14
- <button type="button" name="button" class="btn btn-primary" @click='adddetails()' :disabled="issee">增加</button>
15
- </div>
16
- <div class="{{shuclass}}" v-if="!show && Detail.f_remarks == '设备' && candelete">
17
- <button type="button" name="button" class="btn btn-primary" @click='deletedetails()' :disabled="issee">删除</button>
18
- </div>
19
- <div class="{{service.f_source == '安检'?shuclass1:shuclass}}" v-for="row in Detail.details">
20
- <label :class="[row.f_project.length > 6 ? 'fivelabel' : 'lb-left text-justify', service.f_source == '安检'?'tel_del_lable':'']" @click='getCheckImg(row.f_defect_id)' :style="gettextstyle(row.f_project) == 'false'? textstyle:''" v-if="((row.type != 'checkbox') && (ischecked == '有')) || show">{{row.f_project}}</label>
21
- <span v-show="ischecked == '有'" v-if="show" style="font-weight:bold">{{row.f_content}}</span>
22
- <datepicker v-show="ischecked == '有'"
23
- placeholder="请选择时间"
24
- :value.sync="row.f_content"
25
- v-model="row.f_content"
26
- :format="'yyyy-MM-dd'"
27
- v-if="!show && row.type == 'date'"
28
- :disabled="(!(ischecked == '有')) && issee"
29
- :readonly="true"
30
- ></datepicker>
31
- <input v-show="ischecked == '有'" type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project.indexOf('表号') == -1" :disabled="(!(ischecked == '有')) || issee" :readonly="issee">
32
- <input v-show="ischecked == '有'" type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project.indexOf('表号') != -1 " :disabled="(!(ischecked == '有')) || issee" :readonly="issee" >
33
- <button v-show="ischecked == '有'" type="button" name="button" class="btn btn-primary" @click="scan(row.f_project)" v-if="!show && row.f_project.indexOf('表号') != -1 && row.type == 'string'">扫码</button>
34
- <v-select v-show="ischecked == '有'"
35
- :value.sync="row.f_content"
36
- :options='getOptions(row.f_project)'
37
- placeholder='请选择'
38
- :disabled="(!(ischecked == '有')) || issee" close-on-select
39
- :value-single="true" v-if="!show && row.type == 'selector' && row.f_project != '气表品牌' && row.f_project != '气价名称'"
40
- ></v-select>
41
-
42
- <div style="clear: both" v-if="service.f_source == '安检' && row.f_content=='已处理'">
43
- <div class="form-group col-sm-12" style="display: flex;flex-wrap: wrap">
44
- <div class="auto" style="margin:1px">
45
- <div class="panel">
46
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 150px;height: 150px;position: relative">
47
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
48
- <div class="col-sm-4" v-show="row.f_first_repairimg">
49
- <img-self :src="row.f_first_repairimg" width="140" height="140"></img-self>
50
- </div>
51
- <div class="col-sm-4" v-show="!row.f_first_repairimg" @click="takePic($index, row.f_project,1)">
52
- <img src="../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
53
- </div>
54
- <img v-show="row.f_first_repairimg" src="../../assets/remove.png" :class="style__" @click="delfile($index, row.f_first_repairimg,1)" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
55
- </div>
56
- </div>
57
- </div>
58
- </div>
59
- <div class="auto" style="margin:1px">
60
- <div class="panel">
61
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 150px;height: 150px;position: relative">
62
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
63
- <div class="col-sm-4" v-show="row.f_second_repairimg">
64
- <img-self :src="row.f_second_repairimg" :alt="row.f_project" width="140" height="140"></img-self>
65
- </div>
66
- <div class="col-sm-4" v-show="!row.f_second_repairimg" @click="takePic($index, row.f_project,2)">
67
- <img src="../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
68
- </div>
69
- <img v-show="row.f_second_repairimg" src="../../assets/remove.png" :class="style__" @click="delfile($index, row.f_second_repairimg,2)" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
70
- </div>
71
- </div>
72
- </div>
73
- </div>
74
- <div class="auto" style="margin:1px">
75
- <div class="panel">
76
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 150px;height: 150px;position: relative">
77
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
78
- <div class="col-sm-4" v-show="row.f_three_repairimg">
79
- <img-self :src="row.f_three_repairimg" :alt="row.f_project" width="140" height="140"></img-self>
80
- </div>
81
- <div class="col-sm-4" v-show="!row.f_three_repairimg" @click="takePic($index, row.f_project,3)">
82
- <img src="../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
83
- </div>
84
- <img v-show="row.f_three_repairimg" src="../../assets/remove.png" :class="style__" @click="delfile($index, row.f_three_repairimg,3)" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
85
- </div>
86
- </div>
87
- </div>
88
- </div>
89
- </div>
90
- </div>
91
- <div v-show="row.f_defect_remark" class="{{shuclass}}" >
92
- <div style="margin-left: 5px;font-weight: bolder;">
93
- 备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注: {{row.f_defect_remark}}
94
- </div>
95
- </div>
96
- <v-select
97
- v-show="ischecked == '有'"
98
- :value.sync="row.f_content"
99
- :options='getOptions(row.f_project)'
100
- @change="getgasmodel" placeholder='请选择'
101
- :disabled="(!(ischecked == '有')) || issee" close-on-select
102
- :value-single="true" v-if="!show && row.type == 'selector' && row.f_project == '气表品牌'"
103
- ></v-select>
104
- <v-select
105
- v-show="ischecked == '有'"
106
- :value.sync="row.f_content"
107
- :options='pricelists'
108
- @change="getgasmodel" placeholder='请选择'
109
- :disabled="(!(ischecked == '有')) || issee" close-on-select
110
- :value-single="true" v-if="!show && row.type == 'selector' && row.f_project == '气价名称'"
111
- ></v-select>
112
- <div v-show="ischecked == '有'" class="form-control" v-if="!show && row.type == 'radio'" style="border-color: white;align-self: center" >
113
- <div class="col-xs-6 col-sm-6 col-md-6">
114
- <input type="radio" id="one" value="是" v-model="row.f_content" :disabled="(!(ischecked == '有')) || issee" @click="getradios(row.f_project,'是')" >
115
- <span for="one">是</span>
116
- </div>
117
- <div class="col-xs-6 col-sm-6 col-md-6">
118
- <input type="radio" id="two" value="否" v-model="row.f_content" :disabled="(!(ischecked == '有')) || issee" @click="getradios(row.f_project,'否')">
119
- <span for="two">否</span>
120
- </div>
121
- </div>
122
- <div class="auto" v-if="!show && row.type == 'checkbox' ">
123
- <input class="magic-checkbox" type="checkbox" id="shebeicheckbox"
124
- :checked="row.f_content == '有'"
125
- @click="switchDetails(row.f_project, $event)" :disabled="issee"/>
126
- <label for="shebeicheckbox" style="width:150px;padding-bottom: 10px">{{row.f_project}}</label>
127
- </div>
128
- <div class="auto" v-if="row.type == 'devices'">
129
- <button type="button" name="button" class="btn btn-primary" @click='goToPhoneUpDetail()' :disabled="issee">维护</button>
130
- </div>
131
- <div class="auto" v-if="row.type == 'information'">
132
- <button type="button" name="button" class="btn btn-primary" @click='goToPhoneUpDetailPlus()' :disabled="issee">维护</button>
133
- </div>
134
- <input v-show="ischecked == '有'" type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'number'" onkeyup="value=value.replace(/[^\d\.]/g,'')" :readonly="issee">
135
- <img-area v-show="ischecked == '有'" :model="Detail.imgs" :sutitle="row.f_project" v-if="row.type == 'picture'" :disabled="issee"></img-area>
136
- </div>
137
- </div>
138
- </div>
139
- </div>
140
- </div>
141
- <modal :show.sync="showModal" :backdrop="false">
142
- <div slot="modal-header" class="modal-header">
143
- <h4 class="modal-title">
144
- 隐患照片
145
- </h4>
146
- </div>
147
- <div slot="modal-body" class="modal-body">
148
- <div class="from-group">
149
- <div class="row" style="display: flex;flex-direction: column;align-items: center;">
150
- <div class="col-md-6" v-for="row in defectImgs">
151
- <img-self :src="row" style="margin: 5px" width="200" height="250"></img-self>
152
- </div>
153
- </div>
154
- </div>
155
- </div>
156
- <div slot="modal-footer" class="modal-footer">
157
- <button type="button" class="btn btn-default" @click="closeshowModal">确认</button>
158
- </div>
159
- </modal>
160
- </div>
161
- </template>
162
- <script>
163
- import Vue from 'vue'
164
- import {HttpResetClass} from "vue-client";
165
- import * as Util from '../Util'
166
-
167
-
168
- export default {
169
- title: '维修列表信息',
170
- data() {
171
- return {
172
- is_has_jingweidu: this.$appdata.getSingleValue('照片水印加经纬度') || 'false',
173
- telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
174
- meterstyle:[],
175
- shuclass:'col-xs-6 col-sm-6 col-md-6 form-input-group mg8',
176
- labels:[],
177
- meternum:'',
178
- ischecked:'有',
179
- gasmodel:'',
180
- textstyle:'color: red',
181
- codedata:'',
182
- defectImgs: [],
183
- showModal:false
184
- }
185
- },
186
- props: {
187
- // 维修对应的用户数据收集
188
- model: {
189
- type: Object
190
- },
191
- service:{
192
- type: Object
193
- },
194
- show: {
195
- type: Boolean,
196
- default: false
197
- },
198
- repairitem:{
199
- type: Object
200
- },
201
- shutype:'heng',
202
- tabs:{
203
- type: Object
204
- },
205
- repairdetails:{
206
- type: Object
207
- },
208
- faultshow:{
209
- type: Object
210
- },
211
- issee:'',
212
- pricelists: {
213
- type: Array
214
- }
215
- },
216
- methods: {
217
- closeshowModal(){
218
- this.showModal=false
219
- },
220
- getCheckImg(defectid){
221
- if(defectid){
222
- this.defectImgs=[]
223
- let http = new HttpResetClass()
224
- http.load('POST',this.$androidUtil.getProxyUrl()+'/af-telephone/rs/sql/tel_singleTable_OrderBy', {data: {
225
- items: '*',
226
- tablename: 't_devices_items',
227
- condition: `id = '${defectid}'`,
228
- orderitem: 'id'
229
- }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
230
- //tag)
231
- if(res.data[0].f_path){
232
- this.defectImgs.push(`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+res.data[0].f_path)
233
- }
234
- if(res.data[0].f_p1_path){
235
- this.defectImgs.push(`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+res.data[0].f_p1_path)
236
- }
237
- if(res.data[0].f_p2_path){
238
- this.defectImgs.push(`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+res.data[0].f_p2_path)
239
- }
240
- if(res.data[0].f_p3_path){
241
- this.defectImgs.push(`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+res.data[0].f_p3_path)
242
- }
243
- this.showModal=true
244
- })
245
- }
246
- },
247
- goToPhoneUpDetail(){
248
- this.$dispatch('gotoson', {
249
- _this: this.$parent.$parent,
250
- title: '设备信息变更',
251
- safe: false
252
- })
253
- this.$parent.$parent.$goto('PhoneUpDetail-tel', {f_userinfo_id: this.model.baseuserinfo.f_userinfo_id,f_source:'维修'})
254
- },
255
- goToPhoneUpDetailPlus(){
256
- this.$dispatch('gotoson', {
257
- _this: this.$parent.$parent,
258
- title: '设备信息变更',
259
- safe: false
260
- })
261
- this.$parent.$parent.$goto('PhoneUpUserinfoTel', {f_userinfo_id: this.model.baseuserinfo.f_userinfo_id,f_source:'维修'})
262
- },
263
- switchDetails(detailsType, event){
264
- if (event.srcElement.checked) {
265
- for(var i = 0;i<this.Detail.details.length;i++){
266
- if(this.Detail.details[i].f_project == detailsType){
267
- this.Detail.details[i].f_content = '有'
268
- this.ischecked = '有'
269
- return
270
- }
271
- }
272
- } else {
273
- this.Detail.imgs = []
274
- for(var i = 0;i<this.Detail.details.length;i++){
275
- if(this.Detail.details[i].f_project == detailsType){
276
- this.Detail.details[i].f_content = '无'
277
- this.ischecked = '无'
278
- }else{
279
- this.Detail.details[i].f_content = ''
280
- }
281
- }
282
- }
283
- },
284
- scan(val){
285
- this.codedata = val
286
- HostApp.__this__=this,
287
- HostApp.scanCode({callback:"javascript:HostApp.__this__.getCode();"})
288
- },
289
- getCode(){
290
- var datapa = HostApp.getCode().data;
291
- //tag
292
- //tag
293
- for(var i = 0;i<this.Detail.details.length;i++){
294
- if(this.Detail.details[i].f_project == this.codedata){
295
- //tag
296
- // this.meternum = datapa
297
- this.$set('Detail.details['+i+'].f_content',datapa)
298
- this.codedata = ''
299
- //tag
300
- return
301
- }
302
- }
303
- },
304
- getDetail(value){
305
- if (this.model && this.model.details.length > 0) {
306
- let result = this.model.details.find((row) => {
307
- return row.f_project === value
308
- })
309
- //tag
310
- //tag)
311
- return result
312
- }
313
- },
314
- getgasmodel(val){
315
- this.gasmodel = val
316
- },
317
- getOptions(val){
318
- if(val == '气表品牌'){
319
- //tag
320
- return this.$appdata.saleParams.gasbrands
321
- }
322
- if(val == '气表型号'){
323
- //tag
324
- //tag
325
- return this.$appdata.getParam(this.gasmodel)
326
- }
327
- let Reoptions = []
328
- let OptionItem = []
329
- for (let i = 0;i<this.repairdetails.length;i++) {
330
- var t = false
331
- if(this.repairdetails[i].f_type == this.repairitem.header ){
332
- for(var j =0;j<this.repairdetails[i].details.length;j++){
333
- if(this.repairdetails[i].details[j].f_project == val ){
334
- Reoptions = this.repairdetails[i].details[j].options
335
- t = true
336
- break
337
- }
338
- }
339
- }
340
- if(t){
341
- break
342
- }
343
- }
344
- for(let j = 0;j<Reoptions.length;j++){
345
- OptionItem.push({
346
- label: Reoptions[j].data,
347
- value: Reoptions[j].data
348
- })
349
- }
350
- return OptionItem
351
- },
352
- getradios(val,flag){
353
- let Reoptions = []
354
- for (let i = 0;i<this.repairdetails.length;i++) {
355
- var t = false
356
- if(this.repairdetails[i].f_type == this.repairitem.header ){
357
- for(var j =0;j<this.repairdetails[i].details.length;j++){
358
- if(this.repairdetails[i].details[j].f_project == val ){
359
- Reoptions = this.repairdetails[i].details[j].options
360
- t = true
361
- break
362
- }
363
- }
364
- }
365
- if(t){
366
- break
367
- }
368
- }
369
- for(let j = 0;j<Reoptions.length;j++){
370
- if(Reoptions[j].data == flag){
371
- for(var e = 0;e<this.Detail.details.length;e++){
372
- if(this.Detail.details[e].f_project == val){
373
- this.Detail.details[e].f_status = Reoptions[j].f_status
374
- return
375
- }
376
- }
377
- break
378
- }
379
- }
380
- },
381
- mute () {
382
- HostApp.mute()
383
- },
384
- deletedetails(){
385
- this.$showMessage('该操作会删除所填信息,是否继续!', ['confirm', 'cancel']).then((res) => {
386
- if (res === 'confirm') {
387
- for(var i = 0;i<this.tabs.length;i++){
388
- if(this.tabs[i].number == this.repairitem.number){
389
- this.tabs.splice(i, 1)
390
- this.model.servicerepair.splice(this.repairitem.number, 1)
391
- for(let t = i;t < this.tabs.length;t++ ) {
392
- this.tabs[t].number -= 1
393
- }
394
- return
395
- }
396
- }
397
- }
398
- })
399
- },
400
- adddetails(){
401
- // 下标作为序号,取值用。 增加 序号得依次增加
402
- if(this.tabs.length > 0){
403
- for(let i = this.tabs.length-1;i > 0 ;i-- ){
404
- if(this.tabs[i].header == this.repairitem.header){
405
- if(this.model.servicerepair.length > 0){
406
- for(let j = this.model.servicerepair.length -1;j > -1;j-- ){
407
- if(this.model.servicerepair[j].f_type == this.repairitem.header){
408
- this.model.servicerepair.splice(j+1, 0, Object.assign({}, JSON.parse(JSON.stringify(this.tabs[i].details))))
409
- this.tabs.splice(i+1, 0, {header: `${this.repairitem.header}`,details:this.tabs[i].details,complete:'repair-details',class:'repair-details-class',number:j+1,items:this.tabs[i].items})
410
- for(let t = i+2;t < this.tabs.length;t++ ) {
411
- this.tabs[t].number += 1
412
- }
413
- this.faultshow.number += this.faultshow.number + 1
414
- return
415
- }
416
- }
417
- }
418
- }
419
- }
420
- }
421
- },
422
- takePic(prop, title,order) {
423
- HostApp.__callback__ = this.cameraCallBack
424
- HostApp.__this__ = this
425
- //tag
426
- let fileName
427
- if(order==1 && (!this.Detail.details[prop].f_first_repairimg || this.Detail.details[prop][prop].f_first_repairimg.includes("nopic.png"))) {
428
- fileName = Util.guid() + '-' + 'details'+prop + '-' +'f_items'+prop+ '.jpg'
429
- }else if(order==2 && (!this.Detail.details[prop].f_second_repairimg || this.Detail.details[prop].f_second_repairimg.includes("nopic.png"))) {
430
- fileName = Util.guid() + '-' + 'details'+prop + '-' +'f_items'+prop+ '.jpg'
431
- }else if(order==3 && (!this.Detail.details[prop].f_three_repairimg || this.Detail.details[prop].f_three_repairimg.includes("nopic.png"))) {
432
- fileName = Util.guid() + '-' + 'details'+prop + '-' +'f_items'+prop+ '.jpg'
433
- }
434
- let jingweidu = ''
435
- if (this.is_has_jingweidu == 'true'){
436
- const obj = HostApp.getGpsDetailAddress()
437
- jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
438
- }
439
- HostApp._open_a_page({type: 'boomerang',
440
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
441
- param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'", "%s",'+order+');', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name +jingweidu}
442
- })
443
- },
444
- cameraCallBack(prop, fileName,order) {
445
- //tag
446
- if(order==2){
447
- HostApp.__this__.$set( 'Detail.details['+prop+'].f_second_repairimg', fileName)
448
- HostApp.__this__.$set( 'Detail.details['+prop+'].f_second_imgname', fileName.substring(fileName.lastIndexOf('/')+1,fileName.length))
449
- //tag
450
- //tag
451
- }else if(order==3){
452
- HostApp.__this__.$set( 'Detail.details['+prop+'].f_three_repairimg', fileName)
453
- HostApp.__this__.$set( 'Detail.details['+prop+'].f_three_imgname', fileName.substring(fileName.lastIndexOf('/')+1,fileName.length))
454
- //tag
455
- //tag
456
- } else{
457
- HostApp.__this__.$set( 'Detail.details['+prop+'].f_first_repairimg', fileName)
458
- HostApp.__this__.$set( 'Detail.details['+prop+'].f_first_imgname', fileName.substring(fileName.lastIndexOf('/')+1,fileName.length))
459
- //tag
460
- //tag
461
- }
462
- HostApp.__callback__ = null
463
- HostApp.__this__ = null
464
- },
465
- delfile(prop, fileName,order) {
466
- //tag
467
- //tag)
468
- if(fileName == Vue.nopic)
469
- return
470
- else {
471
- if(order==2){
472
- HostApp.delfile(fileName)
473
- this.Detail.details[prop].f_second_repairimg = Vue.nopic
474
- }else if(order==3){
475
- HostApp.delfile(fileName)
476
- this.Detail.details[prop].f_three_repairimg = Vue.nopic
477
- }else{
478
- HostApp.delfile(fileName)
479
- this.Detail.details[prop].f_first_repairimg = Vue.nopic
480
- }
481
- }
482
- }
483
- },
484
- ready() {
485
- //tag)
486
- // 表号扫码
487
- //tag)
488
- for(let i = 0;i<this.Detail.details.length;i++){
489
- if(this.Detail.details[i].f_project.indexOf('表号') != -1){
490
- //tag
491
- this.meternum = this.Detail.details[i].f_content
492
- //tag
493
- }
494
- }
495
- // 回写 控制checkbox
496
- for(let i = 0;i<this.Detail.details.length;i++){
497
- if(this.Detail.details[i].type == 'checkbox'){
498
- if(this.Detail.details[i].f_content){
499
- this.ischecked = this.Detail.details[i].f_content
500
- return
501
- }else{
502
- this.ischecked = '无'
503
- this.Detail.details[i].f_content = '无'
504
- return
505
- }
506
- }
507
- }
508
- // 刷新气表型号
509
- for (let i = 0; i < this.Detail.details.length; i++) {
510
- if (this.Detail.details[i].f_project == '气表品牌') {
511
- //tag
512
- this.getgasmodel(this.Detail.details[i].f_content)
513
- }
514
- }
515
-
516
- // 赋予默认值
517
- for (let a = 0; a < this.repairdetails.length; a++) {
518
- for (let i = 0; i < this.repairdetails[a].details.length; i++) {
519
- let f_item_value = ''
520
- if ((this.repairdetails[a].details[i].type == 'selector' && !this.repairdetails[a].details[i].multiple) || this.repairdetails[a].details[i].type == 'radio' ){
521
- if (this.repairdetails[a].details[i].options) {
522
- for (let j = 0; j < this.repairdetails[a].details[i].options.length; j++) {
523
- if (this.repairdetails[a].details[i].options[j].isdefault) {
524
- f_item_value = this.repairdetails[a].details[i].options[j].data
525
- }
526
- }
527
- }
528
- } else if (this.repairdetails[a].details[i].type == 'string' && this.repairdetails[a].details[i].isdefault) {
529
- f_item_value = this.repairdetails[a].details[i].isdefault
530
- }
531
- for (let k = 0; k < this.Detail.details.length; k++) {
532
- if (this.Detail.details[k].f_project == this.repairdetails[a].details[i].f_project) {
533
- this.Detail.details[k].f_content = this.Detail.details[k].f_content?this.Detail.details[k].f_content:f_item_value
534
- break
535
- }
536
- }
537
- }
538
- }
539
- },
540
- watch: {
541
- 'valid' () {
542
- this.savevalid.uservalid = this.$v.valid
543
- },
544
- // 'meternum'(val){
545
- // if(val == undefined || val == ''){
546
- // return
547
- // }
548
- // this.$resetpost(`${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/get_meterinfo`,
549
- // {data: {
550
- // condition:`f_meternumber = '${val}'`}}, {resolveMsg: "获取成功", rejectMsg: null}).then((res) => {
551
- // if (res.data.length > 0) {
552
- // for (var i = 0; i < this.Detail.details.length; i++) {
553
- // if (this.Detail.details[i].f_project == '气表品牌') {
554
- // //tag
555
- // //tag
556
- // this.f_meter_brand = res.data[0].f_meter_brand
557
- // this.Detail.details[i].f_content = res.data[0].f_meter_brand
558
- // //tag
559
- // }
560
- // if (this.Detail.details[i].f_project == '气表型号') {
561
- // //tag
562
- // this.f_meter_style = res.data[0].f_meter_style
563
- // this.Detail.details[i].f_content = res.data[0].f_meter_style,
564
- // //tag
565
- // }
566
- // if (this.Detail.details[i].f_project == '表类型') {
567
- // //tag
568
- // this.f_meter_type = res.data[0].f_meter_type
569
- // this.Detail.details[i].f_content = res.data[0].f_meter_type
570
- // //tag
571
- // }
572
- // }
573
- // }
574
- // })
575
- // for(var i = 0;i<this.Detail.details.length;i++){
576
- // if(this.Detail.details[i].f_project.indexOf('表号') != -1){
577
- // //tag
578
- // this.Detail.details[i].f_content = val
579
- // return
580
- // }
581
- // }
582
- // },
583
- 'shutype'(val){
584
- if(val == 'shu'){
585
- this.shuclass = 'col-xs-12 col-sm-12 col-md-12 form-input-group mg8'
586
- }
587
- }
588
- },
589
- computed:{
590
- gettextstyle: function () {
591
- return function (val) {
592
- for(var e = 0;e<this.Detail.details.length;e++){
593
- if(this.Detail.details[e].f_project == val){
594
- return this.Detail.details[e].f_status
595
- }
596
- }
597
- }
598
- },
599
- Detail(){
600
- if (this.model && this.model.servicerepair.length > 0) {
601
- let result = this.model.servicerepair.find((row,index) => {
602
- return index === this.repairitem.number
603
- })
604
- return result
605
- }
606
- },
607
- candelete(){
608
- var number = 0
609
- if (this.model && this.model.servicerepair.length > 0) {
610
- for(var i = 0;i<this.model.servicerepair.length;i++){
611
- if(this.model.servicerepair[i].f_type == this.repairitem.header){
612
- number +=1
613
- if(number > 1){
614
- return true
615
- }
616
- }
617
- }
618
- return false
619
- }
620
- }
621
- }
622
-
623
- }
624
- </script>
625
- <style lang="less" scoped>
626
- .class-erro {
627
- color: #a94442;
628
- }
629
- .tel_del_lable {
630
- color: #0000ff99;
631
- text-decoration: underline;
632
- }
633
- .fivelabel{
634
- padding-left: 8px;
635
- border: none;
636
- border-left: 5px solid #A2C2EB;
637
- width:110px;
638
- text-align: left;
639
- }
640
- .spanrodio{
641
- margin-right: 10px;
642
- }
643
- </style>
644
-
1
+ <template>
2
+ <div class="select-overspread repair-bg auto" style="padding-bottom:5px;">
3
+ <div class="bq-parent" v-if="shutype == 'heng'">
4
+ <blockquote class="blockquote">
5
+ <p><span>{{repairitem.header}}</span><a @click="mute()" style="float:right" href="javascript:void(0)" class="repair-mute-class"><img src="../../assets/novoice.png" width="25px;" alt=""><span style="margin-left:10px;color: #304A66">关闭声音</span></a></p>
6
+ </blockquote>
7
+ </div>
8
+ <div class="panel panel-default auto repair-info-content">
9
+ <div class="panel-body">
10
+ <!-- 维修项内容 -->
11
+ <div class="auto repair-info-content compatible">
12
+ <div class="row auto">
13
+ <div class="{{shuclass}}" v-if="!show && Detail.f_remarks == '设备'">
14
+ <button type="button" name="button" class="btn btn-primary" @click='adddetails()' :disabled="issee">增加</button>
15
+ </div>
16
+ <div class="{{shuclass}}" v-if="!show && Detail.f_remarks == '设备' && candelete">
17
+ <button type="button" name="button" class="btn btn-primary" @click='deletedetails()' :disabled="issee">删除</button>
18
+ </div>
19
+ <div class="{{service.f_source == '安检'?shuclass1:shuclass}}" v-for="row in Detail.details">
20
+ <label :class="[row.f_project.length > 6 ? 'fivelabel' : 'lb-left text-justify', service.f_source == '安检'?'tel_del_lable':'']" @click='getCheckImg(row.f_defect_id)' :style="gettextstyle(row.f_project) == 'false'? textstyle:''" v-if="((row.type != 'checkbox') && (ischecked == '有')) || show">{{row.f_project}}</label>
21
+ <span v-show="ischecked == '有'" v-if="show" style="font-weight:bold">{{row.f_content}}</span>
22
+ <datepicker v-show="ischecked == '有'"
23
+ placeholder="请选择时间"
24
+ :value.sync="row.f_content"
25
+ v-model="row.f_content"
26
+ :format="'yyyy-MM-dd'"
27
+ v-if="!show && row.type == 'date'"
28
+ :disabled="(!(ischecked == '有')) && issee"
29
+ :readonly="true"
30
+ ></datepicker>
31
+ <input v-show="ischecked == '有'" type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project.indexOf('表号') == -1" :disabled="(!(ischecked == '有')) || issee" :readonly="issee">
32
+ <input v-show="ischecked == '有'" type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project.indexOf('表号') != -1 " :disabled="(!(ischecked == '有')) || issee" :readonly="issee" >
33
+ <button v-show="ischecked == '有'" type="button" name="button" class="btn btn-primary" @click="scan(row.f_project)" v-if="!show && row.f_project.indexOf('表号') != -1 && row.type == 'string'">扫码</button>
34
+ <v-select v-show="ischecked == '有'"
35
+ :value.sync="row.f_content"
36
+ :options='getOptions(row.f_project)'
37
+ placeholder='请选择'
38
+ :disabled="(!(ischecked == '有')) || issee" close-on-select
39
+ :value-single="true" v-if="!show && row.type == 'selector' && row.f_project != '气表品牌' && row.f_project != '气价名称'"
40
+ ></v-select>
41
+
42
+ <div style="clear: both" v-if="service.f_source == '安检' && row.f_content=='已处理'">
43
+ <div class="form-group col-sm-12" style="display: flex;flex-wrap: wrap">
44
+ <div class="auto" style="margin:1px">
45
+ <div class="panel">
46
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 150px;height: 150px;position: relative">
47
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
48
+ <div class="col-sm-4" v-show="row.f_first_repairimg">
49
+ <img-self :src="row.f_first_repairimg" width="140" height="140"></img-self>
50
+ </div>
51
+ <div class="col-sm-4" v-show="!row.f_first_repairimg" @click="takePic($index, row.f_project,1)">
52
+ <img src="../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
53
+ </div>
54
+ <img v-show="row.f_first_repairimg" src="../../assets/remove.png" :class="style__" @click="delfile($index, row.f_first_repairimg,1)" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ <div class="auto" style="margin:1px">
60
+ <div class="panel">
61
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 150px;height: 150px;position: relative">
62
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
63
+ <div class="col-sm-4" v-show="row.f_second_repairimg">
64
+ <img-self :src="row.f_second_repairimg" :alt="row.f_project" width="140" height="140"></img-self>
65
+ </div>
66
+ <div class="col-sm-4" v-show="!row.f_second_repairimg" @click="takePic($index, row.f_project,2)">
67
+ <img src="../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
68
+ </div>
69
+ <img v-show="row.f_second_repairimg" src="../../assets/remove.png" :class="style__" @click="delfile($index, row.f_second_repairimg,2)" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ <div class="auto" style="margin:1px">
75
+ <div class="panel">
76
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 150px;height: 150px;position: relative">
77
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
78
+ <div class="col-sm-4" v-show="row.f_three_repairimg">
79
+ <img-self :src="row.f_three_repairimg" :alt="row.f_project" width="140" height="140"></img-self>
80
+ </div>
81
+ <div class="col-sm-4" v-show="!row.f_three_repairimg" @click="takePic($index, row.f_project,3)">
82
+ <img src="../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
83
+ </div>
84
+ <img v-show="row.f_three_repairimg" src="../../assets/remove.png" :class="style__" @click="delfile($index, row.f_three_repairimg,3)" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
85
+ </div>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ </div>
91
+ <div v-show="row.f_defect_remark" class="{{shuclass}}" >
92
+ <div style="margin-left: 5px;font-weight: bolder;">
93
+ 备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注: {{row.f_defect_remark}}
94
+ </div>
95
+ </div>
96
+ <v-select
97
+ v-show="ischecked == '有'"
98
+ :value.sync="row.f_content"
99
+ :options='getOptions(row.f_project)'
100
+ @change="getgasmodel" placeholder='请选择'
101
+ :disabled="(!(ischecked == '有')) || issee" close-on-select
102
+ :value-single="true" v-if="!show && row.type == 'selector' && row.f_project == '气表品牌'"
103
+ ></v-select>
104
+ <v-select
105
+ v-show="ischecked == '有'"
106
+ :value.sync="row.f_content"
107
+ :options='pricelists'
108
+ @change="getgasmodel" placeholder='请选择'
109
+ :disabled="(!(ischecked == '有')) || issee" close-on-select
110
+ :value-single="true" v-if="!show && row.type == 'selector' && row.f_project == '气价名称'"
111
+ ></v-select>
112
+ <div v-show="ischecked == '有'" class="form-control" v-if="!show && row.type == 'radio'" style="border-color: white;align-self: center" >
113
+ <div class="col-xs-6 col-sm-6 col-md-6">
114
+ <input type="radio" id="one" value="是" v-model="row.f_content" :disabled="(!(ischecked == '有')) || issee" @click="getradios(row.f_project,'是')" >
115
+ <span for="one">是</span>
116
+ </div>
117
+ <div class="col-xs-6 col-sm-6 col-md-6">
118
+ <input type="radio" id="two" value="否" v-model="row.f_content" :disabled="(!(ischecked == '有')) || issee" @click="getradios(row.f_project,'否')">
119
+ <span for="two">否</span>
120
+ </div>
121
+ </div>
122
+ <div class="auto" v-if="!show && row.type == 'checkbox' ">
123
+ <input class="magic-checkbox" type="checkbox" id="shebeicheckbox"
124
+ :checked="row.f_content == '有'"
125
+ @click="switchDetails(row.f_project, $event)" :disabled="issee"/>
126
+ <label for="shebeicheckbox" style="width:150px;padding-bottom: 10px">{{row.f_project}}</label>
127
+ </div>
128
+ <div class="auto" v-if="row.type == 'devices'">
129
+ <button type="button" name="button" class="btn btn-primary" @click='goToPhoneUpDetail()' :disabled="issee">维护</button>
130
+ </div>
131
+ <div class="auto" v-if="row.type == 'information'">
132
+ <button type="button" name="button" class="btn btn-primary" @click='goToPhoneUpDetailPlus()' :disabled="issee">维护</button>
133
+ </div>
134
+ <input v-show="ischecked == '有'" type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'number'" onkeyup="value=value.replace(/[^\d\.]/g,'')" :readonly="issee">
135
+ <img-area v-show="ischecked == '有'" :model="Detail.imgs" :sutitle="row.f_project" v-if="row.type == 'picture'" :disabled="issee"></img-area>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ </div>
140
+ </div>
141
+ <modal :show.sync="showModal" :backdrop="false">
142
+ <div slot="modal-header" class="modal-header">
143
+ <h4 class="modal-title">
144
+ 隐患照片
145
+ </h4>
146
+ </div>
147
+ <div slot="modal-body" class="modal-body">
148
+ <div class="from-group">
149
+ <div class="row" style="display: flex;flex-direction: column;align-items: center;">
150
+ <div class="col-md-6" v-for="row in defectImgs">
151
+ <img-self :src="row" style="margin: 5px" width="200" height="250"></img-self>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ <div slot="modal-footer" class="modal-footer">
157
+ <button type="button" class="btn btn-default" @click="closeshowModal">确认</button>
158
+ </div>
159
+ </modal>
160
+ </div>
161
+ </template>
162
+ <script>
163
+ import Vue from 'vue'
164
+ import {HttpResetClass} from "vue-client";
165
+ import * as Util from '../Util'
166
+
167
+
168
+ export default {
169
+ title: '维修列表信息',
170
+ data() {
171
+ return {
172
+ is_has_jingweidu: this.$appdata.getSingleValue('照片水印加经纬度') || 'false',
173
+ telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
174
+ meterstyle:[],
175
+ shuclass:'col-xs-6 col-sm-6 col-md-6 form-input-group mg8',
176
+ labels:[],
177
+ meternum:'',
178
+ ischecked:'有',
179
+ gasmodel:'',
180
+ textstyle:'color: red',
181
+ codedata:'',
182
+ defectImgs: [],
183
+ showModal:false
184
+ }
185
+ },
186
+ props: {
187
+ // 维修对应的用户数据收集
188
+ model: {
189
+ type: Object
190
+ },
191
+ service:{
192
+ type: Object
193
+ },
194
+ show: {
195
+ type: Boolean,
196
+ default: false
197
+ },
198
+ repairitem:{
199
+ type: Object
200
+ },
201
+ shutype:'heng',
202
+ tabs:{
203
+ type: Object
204
+ },
205
+ repairdetails:{
206
+ type: Object
207
+ },
208
+ faultshow:{
209
+ type: Object
210
+ },
211
+ issee:'',
212
+ pricelists: {
213
+ type: Array
214
+ }
215
+ },
216
+ methods: {
217
+ closeshowModal(){
218
+ this.showModal=false
219
+ },
220
+ getCheckImg(defectid){
221
+ if(defectid){
222
+ this.defectImgs=[]
223
+ let http = new HttpResetClass()
224
+ http.load('POST',this.$androidUtil.getProxyUrl()+'/af-telephone/rs/sql/tel_singleTable_OrderBy', {data: {
225
+ items: '*',
226
+ tablename: 't_devices_items',
227
+ condition: `id = '${defectid}'`,
228
+ orderitem: 'id'
229
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
230
+ //tag)
231
+ if(res.data[0].f_path){
232
+ this.defectImgs.push(`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+res.data[0].f_path)
233
+ }
234
+ if(res.data[0].f_p1_path){
235
+ this.defectImgs.push(`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+res.data[0].f_p1_path)
236
+ }
237
+ if(res.data[0].f_p2_path){
238
+ this.defectImgs.push(`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+res.data[0].f_p2_path)
239
+ }
240
+ if(res.data[0].f_p3_path){
241
+ this.defectImgs.push(`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+res.data[0].f_p3_path)
242
+ }
243
+ this.showModal=true
244
+ })
245
+ }
246
+ },
247
+ goToPhoneUpDetail(){
248
+ this.$dispatch('gotoson', {
249
+ _this: this.$parent.$parent,
250
+ title: '设备信息变更',
251
+ safe: false
252
+ })
253
+ this.$parent.$parent.$goto('PhoneUpDetail-tel', {f_userinfo_id: this.model.baseuserinfo.f_userinfo_id,f_source:'维修'})
254
+ },
255
+ goToPhoneUpDetailPlus(){
256
+ this.$dispatch('gotoson', {
257
+ _this: this.$parent.$parent,
258
+ title: '设备信息变更',
259
+ safe: false
260
+ })
261
+ this.$parent.$parent.$goto('PhoneUpUserinfoTel', {f_userinfo_id: this.model.baseuserinfo.f_userinfo_id,f_source:'维修'})
262
+ },
263
+ switchDetails(detailsType, event){
264
+ if (event.srcElement.checked) {
265
+ for(var i = 0;i<this.Detail.details.length;i++){
266
+ if(this.Detail.details[i].f_project == detailsType){
267
+ this.Detail.details[i].f_content = '有'
268
+ this.ischecked = '有'
269
+ return
270
+ }
271
+ }
272
+ } else {
273
+ this.Detail.imgs = []
274
+ for(var i = 0;i<this.Detail.details.length;i++){
275
+ if(this.Detail.details[i].f_project == detailsType){
276
+ this.Detail.details[i].f_content = '无'
277
+ this.ischecked = '无'
278
+ }else{
279
+ this.Detail.details[i].f_content = ''
280
+ }
281
+ }
282
+ }
283
+ },
284
+ scan(val){
285
+ this.codedata = val
286
+ HostApp.__this__=this,
287
+ HostApp.scanCode({callback:"javascript:HostApp.__this__.getCode();"})
288
+ },
289
+ getCode(){
290
+ var datapa = HostApp.getCode().data;
291
+ //tag
292
+ //tag
293
+ for(var i = 0;i<this.Detail.details.length;i++){
294
+ if(this.Detail.details[i].f_project == this.codedata){
295
+ //tag
296
+ // this.meternum = datapa
297
+ this.$set('Detail.details['+i+'].f_content',datapa)
298
+ this.codedata = ''
299
+ //tag
300
+ return
301
+ }
302
+ }
303
+ },
304
+ getDetail(value){
305
+ if (this.model && this.model.details.length > 0) {
306
+ let result = this.model.details.find((row) => {
307
+ return row.f_project === value
308
+ })
309
+ //tag
310
+ //tag)
311
+ return result
312
+ }
313
+ },
314
+ getgasmodel(val){
315
+ this.gasmodel = val
316
+ },
317
+ getOptions(val){
318
+ if(val == '气表品牌'){
319
+ //tag
320
+ return this.$appdata.saleParams.gasbrands
321
+ }
322
+ if(val == '气表型号'){
323
+ //tag
324
+ //tag
325
+ return this.$appdata.getParam(this.gasmodel)
326
+ }
327
+ let Reoptions = []
328
+ let OptionItem = []
329
+ for (let i = 0;i<this.repairdetails.length;i++) {
330
+ var t = false
331
+ if(this.repairdetails[i].f_type == this.repairitem.header ){
332
+ for(var j =0;j<this.repairdetails[i].details.length;j++){
333
+ if(this.repairdetails[i].details[j].f_project == val ){
334
+ Reoptions = this.repairdetails[i].details[j].options
335
+ t = true
336
+ break
337
+ }
338
+ }
339
+ }
340
+ if(t){
341
+ break
342
+ }
343
+ }
344
+ for(let j = 0;j<Reoptions.length;j++){
345
+ OptionItem.push({
346
+ label: Reoptions[j].data,
347
+ value: Reoptions[j].data
348
+ })
349
+ }
350
+ return OptionItem
351
+ },
352
+ getradios(val,flag){
353
+ let Reoptions = []
354
+ for (let i = 0;i<this.repairdetails.length;i++) {
355
+ var t = false
356
+ if(this.repairdetails[i].f_type == this.repairitem.header ){
357
+ for(var j =0;j<this.repairdetails[i].details.length;j++){
358
+ if(this.repairdetails[i].details[j].f_project == val ){
359
+ Reoptions = this.repairdetails[i].details[j].options
360
+ t = true
361
+ break
362
+ }
363
+ }
364
+ }
365
+ if(t){
366
+ break
367
+ }
368
+ }
369
+ for(let j = 0;j<Reoptions.length;j++){
370
+ if(Reoptions[j].data == flag){
371
+ for(var e = 0;e<this.Detail.details.length;e++){
372
+ if(this.Detail.details[e].f_project == val){
373
+ this.Detail.details[e].f_status = Reoptions[j].f_status
374
+ return
375
+ }
376
+ }
377
+ break
378
+ }
379
+ }
380
+ },
381
+ mute () {
382
+ HostApp.mute()
383
+ },
384
+ deletedetails(){
385
+ this.$showMessage('该操作会删除所填信息,是否继续!', ['confirm', 'cancel']).then((res) => {
386
+ if (res === 'confirm') {
387
+ for(var i = 0;i<this.tabs.length;i++){
388
+ if(this.tabs[i].number == this.repairitem.number){
389
+ this.tabs.splice(i, 1)
390
+ this.model.servicerepair.splice(this.repairitem.number, 1)
391
+ for(let t = i;t < this.tabs.length;t++ ) {
392
+ this.tabs[t].number -= 1
393
+ }
394
+ return
395
+ }
396
+ }
397
+ }
398
+ })
399
+ },
400
+ adddetails(){
401
+ // 下标作为序号,取值用。 增加 序号得依次增加
402
+ if(this.tabs.length > 0){
403
+ for(let i = this.tabs.length-1;i > 0 ;i-- ){
404
+ if(this.tabs[i].header == this.repairitem.header){
405
+ if(this.model.servicerepair.length > 0){
406
+ for(let j = this.model.servicerepair.length -1;j > -1;j-- ){
407
+ if(this.model.servicerepair[j].f_type == this.repairitem.header){
408
+ this.model.servicerepair.splice(j+1, 0, Object.assign({}, JSON.parse(JSON.stringify(this.tabs[i].details))))
409
+ this.tabs.splice(i+1, 0, {header: `${this.repairitem.header}`,details:this.tabs[i].details,complete:'repair-details',class:'repair-details-class',number:j+1,items:this.tabs[i].items})
410
+ for(let t = i+2;t < this.tabs.length;t++ ) {
411
+ this.tabs[t].number += 1
412
+ }
413
+ this.faultshow.number += this.faultshow.number + 1
414
+ return
415
+ }
416
+ }
417
+ }
418
+ }
419
+ }
420
+ }
421
+ },
422
+ takePic(prop, title,order) {
423
+ HostApp.__callback__ = this.cameraCallBack
424
+ HostApp.__this__ = this
425
+ //tag
426
+ let fileName
427
+ if(order==1 && (!this.Detail.details[prop].f_first_repairimg || this.Detail.details[prop][prop].f_first_repairimg.includes("nopic.png"))) {
428
+ fileName = Util.guid() + '-' + 'details'+prop + '-' +'f_items'+prop+ '.jpg'
429
+ }else if(order==2 && (!this.Detail.details[prop].f_second_repairimg || this.Detail.details[prop].f_second_repairimg.includes("nopic.png"))) {
430
+ fileName = Util.guid() + '-' + 'details'+prop + '-' +'f_items'+prop+ '.jpg'
431
+ }else if(order==3 && (!this.Detail.details[prop].f_three_repairimg || this.Detail.details[prop].f_three_repairimg.includes("nopic.png"))) {
432
+ fileName = Util.guid() + '-' + 'details'+prop + '-' +'f_items'+prop+ '.jpg'
433
+ }
434
+ let jingweidu = ''
435
+ if (this.is_has_jingweidu == 'true'){
436
+ const obj = HostApp.getGpsDetailAddress()
437
+ jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
438
+ }
439
+ HostApp._open_a_page({type: 'boomerang',
440
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
441
+ param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'", "%s",'+order+');', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name +jingweidu}
442
+ })
443
+ },
444
+ cameraCallBack(prop, fileName,order) {
445
+ //tag
446
+ if(order==2){
447
+ HostApp.__this__.$set( 'Detail.details['+prop+'].f_second_repairimg', fileName)
448
+ HostApp.__this__.$set( 'Detail.details['+prop+'].f_second_imgname', fileName.substring(fileName.lastIndexOf('/')+1,fileName.length))
449
+ //tag
450
+ //tag
451
+ }else if(order==3){
452
+ HostApp.__this__.$set( 'Detail.details['+prop+'].f_three_repairimg', fileName)
453
+ HostApp.__this__.$set( 'Detail.details['+prop+'].f_three_imgname', fileName.substring(fileName.lastIndexOf('/')+1,fileName.length))
454
+ //tag
455
+ //tag
456
+ } else{
457
+ HostApp.__this__.$set( 'Detail.details['+prop+'].f_first_repairimg', fileName)
458
+ HostApp.__this__.$set( 'Detail.details['+prop+'].f_first_imgname', fileName.substring(fileName.lastIndexOf('/')+1,fileName.length))
459
+ //tag
460
+ //tag
461
+ }
462
+ HostApp.__callback__ = null
463
+ HostApp.__this__ = null
464
+ },
465
+ delfile(prop, fileName,order) {
466
+ //tag
467
+ //tag)
468
+ if(fileName == Vue.nopic)
469
+ return
470
+ else {
471
+ if(order==2){
472
+ HostApp.delfile(fileName)
473
+ this.Detail.details[prop].f_second_repairimg = Vue.nopic
474
+ }else if(order==3){
475
+ HostApp.delfile(fileName)
476
+ this.Detail.details[prop].f_three_repairimg = Vue.nopic
477
+ }else{
478
+ HostApp.delfile(fileName)
479
+ this.Detail.details[prop].f_first_repairimg = Vue.nopic
480
+ }
481
+ }
482
+ }
483
+ },
484
+ ready() {
485
+ //tag)
486
+ // 表号扫码
487
+ //tag)
488
+ for(let i = 0;i<this.Detail.details.length;i++){
489
+ if(this.Detail.details[i].f_project.indexOf('表号') != -1){
490
+ //tag
491
+ this.meternum = this.Detail.details[i].f_content
492
+ //tag
493
+ }
494
+ }
495
+ // 回写 控制checkbox
496
+ for(let i = 0;i<this.Detail.details.length;i++){
497
+ if(this.Detail.details[i].type == 'checkbox'){
498
+ if(this.Detail.details[i].f_content){
499
+ this.ischecked = this.Detail.details[i].f_content
500
+ return
501
+ }else{
502
+ this.ischecked = '无'
503
+ this.Detail.details[i].f_content = '无'
504
+ return
505
+ }
506
+ }
507
+ }
508
+ // 刷新气表型号
509
+ for (let i = 0; i < this.Detail.details.length; i++) {
510
+ if (this.Detail.details[i].f_project == '气表品牌') {
511
+ //tag
512
+ this.getgasmodel(this.Detail.details[i].f_content)
513
+ }
514
+ }
515
+
516
+ // 赋予默认值
517
+ for (let a = 0; a < this.repairdetails.length; a++) {
518
+ for (let i = 0; i < this.repairdetails[a].details.length; i++) {
519
+ let f_item_value = ''
520
+ if ((this.repairdetails[a].details[i].type == 'selector' && !this.repairdetails[a].details[i].multiple) || this.repairdetails[a].details[i].type == 'radio' ){
521
+ if (this.repairdetails[a].details[i].options) {
522
+ for (let j = 0; j < this.repairdetails[a].details[i].options.length; j++) {
523
+ if (this.repairdetails[a].details[i].options[j].isdefault) {
524
+ f_item_value = this.repairdetails[a].details[i].options[j].data
525
+ }
526
+ }
527
+ }
528
+ } else if (this.repairdetails[a].details[i].type == 'string' && this.repairdetails[a].details[i].isdefault) {
529
+ f_item_value = this.repairdetails[a].details[i].isdefault
530
+ }
531
+ for (let k = 0; k < this.Detail.details.length; k++) {
532
+ if (this.Detail.details[k].f_project == this.repairdetails[a].details[i].f_project) {
533
+ this.Detail.details[k].f_content = this.Detail.details[k].f_content?this.Detail.details[k].f_content:f_item_value
534
+ break
535
+ }
536
+ }
537
+ }
538
+ }
539
+ },
540
+ watch: {
541
+ 'valid' () {
542
+ this.savevalid.uservalid = this.$v.valid
543
+ },
544
+ // 'meternum'(val){
545
+ // if(val == undefined || val == ''){
546
+ // return
547
+ // }
548
+ // this.$resetpost(`${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/get_meterinfo`,
549
+ // {data: {
550
+ // condition:`f_meternumber = '${val}'`}}, {resolveMsg: "获取成功", rejectMsg: null}).then((res) => {
551
+ // if (res.data.length > 0) {
552
+ // for (var i = 0; i < this.Detail.details.length; i++) {
553
+ // if (this.Detail.details[i].f_project == '气表品牌') {
554
+ // //tag
555
+ // //tag
556
+ // this.f_meter_brand = res.data[0].f_meter_brand
557
+ // this.Detail.details[i].f_content = res.data[0].f_meter_brand
558
+ // //tag
559
+ // }
560
+ // if (this.Detail.details[i].f_project == '气表型号') {
561
+ // //tag
562
+ // this.f_meter_style = res.data[0].f_meter_style
563
+ // this.Detail.details[i].f_content = res.data[0].f_meter_style,
564
+ // //tag
565
+ // }
566
+ // if (this.Detail.details[i].f_project == '表类型') {
567
+ // //tag
568
+ // this.f_meter_type = res.data[0].f_meter_type
569
+ // this.Detail.details[i].f_content = res.data[0].f_meter_type
570
+ // //tag
571
+ // }
572
+ // }
573
+ // }
574
+ // })
575
+ // for(var i = 0;i<this.Detail.details.length;i++){
576
+ // if(this.Detail.details[i].f_project.indexOf('表号') != -1){
577
+ // //tag
578
+ // this.Detail.details[i].f_content = val
579
+ // return
580
+ // }
581
+ // }
582
+ // },
583
+ 'shutype'(val){
584
+ if(val == 'shu'){
585
+ this.shuclass = 'col-xs-12 col-sm-12 col-md-12 form-input-group mg8'
586
+ }
587
+ }
588
+ },
589
+ computed:{
590
+ gettextstyle: function () {
591
+ return function (val) {
592
+ for(var e = 0;e<this.Detail.details.length;e++){
593
+ if(this.Detail.details[e].f_project == val){
594
+ return this.Detail.details[e].f_status
595
+ }
596
+ }
597
+ }
598
+ },
599
+ Detail(){
600
+ if (this.model && this.model.servicerepair.length > 0) {
601
+ let result = this.model.servicerepair.find((row,index) => {
602
+ return index === this.repairitem.number
603
+ })
604
+ return result
605
+ }
606
+ },
607
+ candelete(){
608
+ var number = 0
609
+ if (this.model && this.model.servicerepair.length > 0) {
610
+ for(var i = 0;i<this.model.servicerepair.length;i++){
611
+ if(this.model.servicerepair[i].f_type == this.repairitem.header){
612
+ number +=1
613
+ if(number > 1){
614
+ return true
615
+ }
616
+ }
617
+ }
618
+ return false
619
+ }
620
+ }
621
+ }
622
+
623
+ }
624
+ </script>
625
+ <style lang="less" scoped>
626
+ .class-erro {
627
+ color: #a94442;
628
+ }
629
+ .tel_del_lable {
630
+ color: #0000ff99;
631
+ text-decoration: underline;
632
+ }
633
+ .fivelabel{
634
+ padding-left: 8px;
635
+ border: none;
636
+ border-left: 5px solid #A2C2EB;
637
+ width:110px;
638
+ text-align: left;
639
+ }
640
+ .spanrodio{
641
+ margin-right: 10px;
642
+ }
643
+ </style>
644
+