safecheck-client 3.0.34-66 → 3.0.34-67

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,597 +1,597 @@
1
- <template>
2
- <div>
3
- <!-- <div :style="{'height':needRepair?'60%':'100%'}">-->
4
- <div :style="{'height': '100%'}">
5
- <criteria-paged :model="model" :pager="false" v-ref:paged>
6
- <criteria partial='criteria'>
7
- <div partial>
8
- <ul class="nav nav-tabs">
9
- <li role="presentation" class="active"><a style=" color: #5ac0d9 !important;">隐患明细</a></li>
10
- </ul>
11
- </div>
12
- </criteria>
13
- <data-grid :model="model" partial='list' class="table_sy">
14
- <template partial='head'>
15
- <tr>
16
- <!-- <th>-->
17
- <!-- <nobr>隐患设备</nobr>-->
18
- <!-- </th>-->
19
- <th>
20
- <nobr>隐患项</nobr>
21
- </th>
22
- <th>
23
- <nobr>隐患原因</nobr>
24
- </th>
25
- <th>
26
- <nobr>隐患处理方式</nobr>
27
- </th>
28
- <!-- <th>-->
29
- <!-- <nobr>审核结果</nobr>-->
30
- <!-- </th>-->
31
- <th>
32
- <nobr>备注</nobr>
33
- </th>
34
- <th>
35
- <nobr>操作</nobr>
36
- </th>
37
- </tr>
38
- </template>
39
- <template partial='body'>
40
- <!-- <td style="text-align: center">-->
41
- <!-- <nobr>{{row.f_device_type}}</nobr>-->
42
- <!-- </td>-->
43
- <td style="text-align: center">
44
- <nobr>{{row.f_item_name}}</nobr>
45
- </td>
46
- <td style="text-align: center">
47
- <nobr>{{row.f_item_value}}</nobr>
48
- </td>
49
- <td style="text-align: center">
50
- <nobr>{{row.f_repaire_type}}</nobr>
51
- </td>
52
- <td style="text-align: center">
53
- <nobr>{{row.f_deal_remark ? row.f_deal_remark : ' '}}</nobr>
54
- </td>
55
- <!-- <td style="text-align: center">-->
56
- <!-- <nobr>{{row.f_audit_results?row.f_audit_results:'暂无审核结果'}}</nobr>-->
57
- <!-- </td>-->
58
- <td style="text-align: center">
59
- <button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '已处理' && row.f_path" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.showimg(row)">隐患图片</button>
60
- <!-- <img-button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '已处理' && row.f_path" :src="'/rs/image/file/'+row.f_path" :value="'隐患图片'"></img-button>-->
61
- <button v-if="row.f_repaire_type == '已处理'" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.solveDefect( row, 'view')">处理详情</button>
62
- <button v-if="row.f_repaire_type == '未处理' || !row.f_repaire_type" class="button_spacing button_search-1" @click="$parent.$parent.$parent.solveDefect( row, 'solve')">处理隐患</button>
63
- </td>
64
- </template>
65
- </data-grid>
66
- </criteria-paged>
67
- </div>
68
-
69
- <!-- <div style="overflow-y: scroll;height: 40%" v-if="needRepair">-->
70
- <!-- <div class="form-horizontal auto">-->
71
- <!-- <ul class="nav nav-tabs">-->
72
- <!-- <li role="presentation" class="active"><a style=" color: #000 !important;font-size: 14px">转维修</a></li>-->
73
- <!-- </ul>-->
74
- <!-- <validator name='v' @valid="valid = true" @invalid="valid = false">-->
75
- <!-- <div class="row">-->
76
- <!-- <div class="col-sm-4" :class="[$v.dispatchtype.required ? 'select-error' : '']">-->
77
- <!-- <label for="dispatchtype" class="font_normal_body">派发类型</label>-->
78
- <!-- <input id="dispatchtype" type="text" v-show="false" v-model="$refs.dispatchtype.selectedItems" v-validate:dispatchtype='{required: true }'>-->
79
- <!-- <v-select :value.sync="toRepairModal.preData.dispatchType" v-model="toRepairModal.preData.dispatchType"-->
80
- <!-- :options='toRepairModal.preData.dispatchTypeOptions' placeholder='派发类型'-->
81
- <!-- close-on-select v-ref:dispatchtype>-->
82
- <!-- </v-select>-->
83
- <!-- </div>-->
84
- <!-- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给站点'">-->
85
- <!-- <label class="font_normal_body">站&nbsp;&nbsp;点</label>-->
86
- <!-- <right-tree-->
87
- <!-- islist-->
88
- <!-- :userid="$login.f.id"-->
89
- <!-- :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"-->
90
- <!-- @re-res="getSiteRes">-->
91
- <!-- </right-tree>-->
92
- <!-- </div>-->
93
- <!-- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给维修员'" :class="[$v.f_repairman.required ? 'select-error' : '']">-->
94
- <!-- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairman" v-validate:f_repairman='{required: true }'>-->
95
- <!-- <label class="font_normal_body">维修员</label>-->
96
- <!-- <v-select-->
97
- <!-- :value.sync="toRepairModal.preData.f_repairman"-->
98
- <!-- :value-single="true"-->
99
- <!-- :options='toRepairModal.preData.repairers'-->
100
- <!-- placeholder='请选择维修员'-->
101
- <!-- close-on-select></v-select>-->
102
- <!-- </div>-->
103
- <!-- <div class="col-sm-4" :class="[$v.f_repairtype.required ? 'select-error' : '']">-->
104
- <!-- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairtype" v-validate:f_repairtype='{required: true }'>-->
105
- <!-- <label class="font_normal_body">报修类型</label>-->
106
- <!-- <v-select :value.sync="toRepairModal.preData.f_repairtype" style="width:60%"-->
107
- <!-- class="select select_list"-->
108
- <!-- :value-single="true"-->
109
- <!-- :options='toRepairModal.preData.repairTypeOptions'-->
110
- <!-- close-on-select>-->
111
- <!-- </v-select>-->
112
- <!-- </div>-->
113
- <!-- </div>-->
114
- <!-- <div class="row">-->
115
- <!-- <div class="col-sm-8 form-group">-->
116
- <!-- <label class="font_normal_body" >备&emsp;&emsp;注</label>-->
117
- <!-- <input class="input_search" style="width: 60%" type="text" v-model="toRepairModal.preData.f_remarks" placeholder="备注">-->
118
-
119
- <!-- </div>-->
120
- <!-- <div class="col-sm-4" style="margin-top: 1%">-->
121
- <!-- <button class="button_search" :disabled="!valid" @click="confirm">转维修</button>-->
122
- <!-- </div>-->
123
- <!-- </div>-->
124
- <!-- </validator>-->
125
- <!-- </div>-->
126
- <!-- </div>-->
127
- <modal :show.sync="showSolveModal" v-ref:solveModal>
128
- <div slot="modal-header" class="modal-header">
129
- <h4 class="modal-title">
130
- {{solveModal.preData.type == 'view'?'处理详情':'处理隐患'}}
131
- </h4>
132
- </div>
133
- <div slot="modal-body" class="modal-body">
134
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
135
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
136
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理前</p></div>
137
- </div>
138
-
139
- <div class="col-sm-6" style="margin-top: 10px">
140
- <label class="font_normal_body">安&nbsp;检&nbsp;员</label>
141
- <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_checker_name" placeholder="安检员">
142
- </div>
143
- <div class="col-sm-6" style="margin-top: 10px">
144
- <label class="font_normal_body">安检时间</label>
145
- <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_offsite_time" placeholder="安检时间">
146
- </div>
147
- <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg">
148
- <label class="font_normal_body">隐患图片</label>
149
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg"></img-self>
150
- </div>
151
- <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg1">
152
- <label class="font_normal_body">隐患图片</label>
153
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg1"></img-self>
154
- </div>
155
- <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg2">
156
- <label class="font_normal_body">隐患图片</label>
157
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg2"></img-self>
158
- </div>
159
- <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg3">
160
- <label class="font_normal_body">隐患图片</label>
161
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg3"></img-self>
162
- </div>
163
-
164
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
165
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
166
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后</p></div>
167
- </div>
168
- <div class="col-sm-6" style="margin-top: 10px">
169
- <label class="font_normal_body">处&nbsp;理&nbsp;人</label>
170
- <input v-if="solveModal.preData.type != 'solve'" class="input_search" style="width: 60%" disabled="true" type="text" v-model="solveModal.uploadData.f_repairman" placeholder="处理人">
171
- <v-select
172
- v-if="solveModal.preData.type == 'solve'"
173
- :value.sync="solveModal.uploadData.f_repairman"
174
- :value-single="true"
175
- :options='toRepairModal.preData.repairers'
176
- placeholder='请选择维修员'
177
- close-on-select></v-select>
178
- </div>
179
- <div class="col-sm-6" style="margin-top: 10px">
180
- <label class="font_normal_body">处理时间</label>
181
- <datepicker
182
- :disabled="solveModal.preData.type == 'view'"
183
- placeholder='处理时间' style="width:60%"
184
- :disabled-days-of-week="[]"
185
- :format="'yyyy-MM-dd'"
186
- :show-rest-button="reset"
187
- :value.sync="solveModal.uploadData.f_repair_date">
188
- </datepicker>
189
- </div>
190
- <div v-if="solveModal.preData.type == 'solve'" class="col-sm-12" style="margin-bottom: 10px">
191
- <label class="font_normal_body">处理后图片</label>
192
- <avatar-upload :width="200" :height="200" :img-src.sync="solveModal.uploadData.imgSrc" :filename.sync="solveModal.uploadData.filename" v-ref:imginfo></avatar-upload>
193
- </div>
194
- <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg" class="col-sm-12" style="margin-bottom: 10px">
195
- <label class="font_normal_body">处理后图片</label>
196
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg"></img-self>
197
- </div>
198
- <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg2" class="col-sm-12" style="margin-bottom: 10px">
199
- <label class="font_normal_body">处理后图片</label>
200
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg2"></img-self>
201
- </div>
202
- <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg3" class="col-sm-12" style="margin-bottom: 10px">
203
- <label class="font_normal_body">处理后图片</label>
204
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg3"></img-self>
205
- </div>
206
- <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg4" class="col-sm-12" style="margin-bottom: 10px">
207
- <label class="font_normal_body">处理后图片</label>
208
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg4"></img-self>
209
- </div>
210
- </div>
211
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
212
- <!-- <button class="button_search" @click="auditsure('通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核通过</button>-->
213
- <!-- <button class="button_search" @click="auditsure('不通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核不通过</button>-->
214
- <button class="button_search" v-if="solveModal.preData.type == 'solve'" @click="ok">确认</button>
215
- <button class="button_search" @click="cancel">取消</button>
216
- </div>
217
- </modal>
218
- <modal :show.sync="imgshow" v-ref:modal backdrop="true">
219
- <header slot="modal-header" class="modal-header">
220
- 隐患图片
221
- </header>
222
- <article slot="modal-body" class="modal-body">
223
- <div class="from-group">
224
- <div class="row">
225
- <div class="col-md-6">
226
- <img-self-plus v-if="imgs.defectImg" :src="imgs.defectImg" width="240" height="300"></img-self-plus>
227
- </div>
228
- <div class="col-md-6">
229
- <img-self-plus v-if="imgs.defectImg1" :src="imgs.defectImg1" width="240" height="300"></img-self-plus>
230
- </div>
231
- <div class="col-md-6">
232
- <img-self-plus v-if="imgs.defectImg2" :src="imgs.defectImg2" width="240" height="300"></img-self-plus>
233
- </div>
234
- <div class="col-md-6">
235
- <img-self-plus v-if="imgs.defectImg3" :src="imgs.defectImg3" width="240" height="300"></img-self-plus>
236
- </div>
237
- </div>
238
- </div>
239
- </article>
240
- <footer slot="modal-footer" class="modal-footer" v-show="false">
241
- </footer>
242
- </modal>
243
-
244
- </div>
245
- </template>
246
-
247
- <script>
248
- import {PagedList, HttpResetClass} from 'vue-client'
249
- import * as Util from '../../../components/Util'
250
- import co from 'co'
251
-
252
- const upSolveDefect = function * (self) {
253
- let uploadData = self.solveModal.uploadData
254
- //tag)
255
- self.$resetpost('/rs/logic/pcRepairDefectNew', self.solveModal.uploadData, {resolveMsg: null, rejectMsg: null})
256
- .then(res => {
257
- if (res.data.code === 200) {
258
- self.$showMessage('隐患已处理。')
259
- self.showSolveModal = false
260
- self.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
261
- }
262
- })
263
- }
264
-
265
- const sendRepair = function* (self) {
266
- let preData = self.toRepairModal.preData
267
- let uploadData = self.toRepairModal.uploadData
268
-
269
- if (preData.dispatchType == '派发给站点') {
270
- uploadData.model.serviceacitivity[0].f_meetunit = preData.f_meetunit
271
- uploadData.model.serviceacitivity[0].f_reciever = preData.f_reciever
272
- uploadData.model.f_meetunit = preData.f_meetunit
273
- uploadData.model.f_orgstr = preData.f_reciever
274
- uploadData.model.f_outlets = preData.f_outlets
275
- } else if (preData.dispatchType == '派发给维修员') {
276
- uploadData.model.serviceacitivity[0].f_reciever = preData.f_repairman
277
- // uploadData.model.f_meetunit = self.$login.f.orgpathnames
278
- // uploadData.model.f_orgstr = self.$login.f.orgpathstr
279
- // uploadData.model.f_outlets = self.$login.f.f_parentname
280
- uploadData.model.f_meetunit = self.$login.f.deps
281
- uploadData.model.f_orgid = self.$login.f.orgid
282
- uploadData.model.f_filiale = self.$login.f.org
283
- uploadData.model.f_outlets = self.$login.f.deps
284
- uploadData.model.f_filiale_id = self.$login.f.orgid
285
- uploadData.toRepair = '一级派单'
286
- }
287
- let res = yield self.$resetpost('/rs/sql/GetUserForRepaireNew2', {data: {f_userinfo_id: self.check.f_userinfo_id}})
288
- preData.userInfo = res.data[0]
289
- uploadData.model = Object.assign(uploadData.model, preData.userInfo)
290
- uploadData.user.f_userinfo_id = preData.userInfo.f_userinfo_id
291
- uploadData.model.f_repair_date = Util.getNowDate()
292
- uploadData.model.f_repairtype = preData.f_repairtype
293
- uploadData.model.f_remarks = preData.f_remarks
294
- // 拼接failure
295
- let failure = []
296
- self.model.rows.forEach(row => {
297
- if (row.f_repaire_type == '未处理') {
298
- failure.push({
299
- f_failure_type: row.f_item_name,
300
- failurecase: row.f_item_value?row.f_item_value.split(','):''
301
- })
302
- }
303
- })
304
- uploadData.model.failure = failure
305
- // 拼接repairitems
306
- let rows = JSON.parse(JSON.stringify(self.model.rows))
307
- let repairitems = {
308
- data: []
309
- }
310
- let safecheckOptions = [{"data": "已处理"}, {"data": "未处理"}]
311
- // 取未处理的
312
- rows = rows.filter(row => row.f_repaire_type == '未处理')
313
- //tag)
314
- // 开始拼接
315
- rows.forEach(row => {
316
- let existIndex = -1
317
- // 判断该设备是否已经存在
318
- for (let i = 0; i < repairitems.data.length; i++) {
319
- if (repairitems.data[i].f_type == row.f_device_type) {
320
- existIndex = i
321
- break
322
- }
323
- }
324
- if (existIndex == -1) {
325
- // 不存在则新建
326
- let newItem = {
327
- f_type: row.f_device_type,
328
- details: [{
329
- f_defect_id: row.id,
330
- f_project: `${row.f_item_name}:${row.f_item_value}`,
331
- type: 'selector',
332
- options: safecheckOptions
333
- }]
334
- }
335
- repairitems.data.push(newItem)
336
- } else {
337
- // 存在则追加
338
- repairitems.data[existIndex].details.push({
339
- f_defect_id: row.id,
340
- f_project: `${row.f_item_name}:${row.f_item_value}`,
341
- type: 'selector',
342
- options: safecheckOptions
343
- })
344
- }
345
- })
346
- uploadData.model.f_repairitems = repairitems
347
- //tag)
348
- // 调工单接口
349
- let result = yield self.$resetpost('/rs/logic/callerSend', uploadData)
350
- //tag)
351
- if (result.data.f_service_id) {
352
- const data = {
353
- f_paper_id: rows[0].f_paper_id,
354
- f_service_id: result.data.f_service_id,
355
- itemsId: self.$login.convertToIn(rows.map(row => row.id))
356
- }
357
- //tag
358
- let updateRes = yield self.$resetpost('/rs/logic/updateDefectStateNew', data)
359
- if (updateRes.data.code == 200) {
360
- self.$showMessage('隐患已转维修。')
361
- self.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
362
- }
363
- }
364
- }
365
-
366
- export default {
367
- title: '隐患项列表',
368
- props: ['check'],
369
- data() {
370
- return {
371
- model: new PagedList('rs/sql/GetDefectByPaperIdNew2', 100, {
372
- f_paper_id: 'this.f_paper_id', f_item_value: 'this.f_item_value'
373
- }),
374
- imgshow: false,
375
- imgs: {
376
- defectImg: '',
377
- defectImg1: '',
378
- defectImg2: '',
379
- defectImg3: '',
380
- },
381
- showSolveModal: false,
382
- showToRepairModal: false,
383
- showDefectModal: false,
384
- valid: false,
385
- needRepair: true,
386
- solveModal: {
387
- uploadData:{},
388
- preData: {
389
- type: 'view',
390
- defectImg: '',
391
- defectImg1: '',
392
- defectImg2: '',
393
- defectImg3: '',
394
- repairedImg: '',
395
- repairedImg2: '',
396
- repairedImg3: '',
397
- repairedImg4: '',
398
-
399
- uploadData: {
400
- id: '',
401
- f_repairman: this.$login.f.name,
402
- f_repair_date: Util.getNowDate().substr(0, 10),
403
- f_repair_path: '',
404
- imgSrc: '',
405
- filename: ''
406
- }
407
- },
408
- toRepairModal: {
409
- preData: {
410
- dispatchTypeOptions: [{label: '派发给站点', value: '派发给站点'}, {
411
- label: '派发给维修员',
412
- value: '派发给维修员'
413
- }],
414
- repairTypeOptions: this.$appdata.getParam('报修类型'),
415
- dispatchType: '',
416
- f_repairman: '',
417
- f_repairtype: '',
418
- f_remarks: '',
419
- f_meetunit: '',
420
- f_reciever: '',
421
- f_outlets: '',
422
- userInfo: {},
423
- repairers: []
424
- },
425
- uploadData: {
426
- id:'',
427
- model: {
428
- serviceacitivity: [{
429
- f_service_acitivity_type: '派单'
430
- }],
431
- f_repairitems: {},
432
- failure: '',
433
- f_source: '安检',
434
- f_service_id: '',
435
- f_contact_phone: '',
436
- f_meetunit: '',
437
- f_phone: '',
438
- f_user_name: '',
439
- f_address: '',
440
- f_repair_date: '',
441
- f_reciever: '',
442
- f_remarks: '',
443
- f_user_type: '',
444
- f_area: '',
445
- f_unit_name: '',
446
- f_street: '',
447
- f_residential_area: '',
448
- f_building: '',
449
- f_unit: '',
450
- f_floor: '',
451
- f_room: '',
452
- aState: '',
453
- f_repairtype: '',
454
- f_userinfo_id: '',
455
- f_userinfo_code: '',
456
- f_orgstr: '',
457
- f_outlets: '',
458
- f_attendant: this.$login.f.name
459
- },
460
- loginUser: {
461
- name: this.$login.f.name,
462
- ename: this.$login.f.ename
463
- },
464
- user: {
465
- f_userinfo_id: ''
466
- },
467
- callObj: null
468
- }
469
- }
470
- }
471
- }
472
- },
473
- ready() {
474
- this.model.f_item_value = `(SELECT stuff(( SELECT ',' + f_item_value FROM t_devices_items_lists WHERE ( f_is_defect = 'true' OR di.f_is_defect = 'true') AND f_item_id = di.id FOR xml path ( '' ) ),1,1,'' ) )`
475
- if (this.check) {
476
- this.model.f_paper_id = this.check.id
477
- this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
478
- }
479
- this.getEmp()
480
- },
481
- methods: {
482
- showimg(val){
483
- this.imgs.defectImg = val.f_path?'/rs/image/file/' + val.f_path:''
484
- this.imgs.defectImg1 = val.f_p1_path?'/rs/image/file/' + val.f_p1_path:''
485
- this.imgs.defectImg2 = val.f_p2_path?'/rs/image/file/' + val.f_p2_path:''
486
- this.imgs.defectImg3 = val.f_p3_path?'/rs/image/file/' + val.f_p3_path:''
487
- this.imgshow = true
488
- },
489
- //审核通过
490
- auditsure(info){
491
- // 拿到t_devices_items 的ID,给f_audit_results中存入通过 如果未通过,需要可以再次派单,对隐患进行处理
492
- var data = {
493
- id: this.solveModal.uploadData.id,
494
- info:info
495
- }
496
- let http = new HttpResetClass()
497
- http.load('POST', 'rs/logic/DefectAuditUpdate', data, {resolveMsg: null, rejectMsg: null}).then((res) => {
498
- if(res.data.code == 200){
499
- this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
500
- this.showSolveModal = false
501
- this.showToRepairModal = false
502
- this.$showMessage('提交成功')
503
- }else{
504
- this.$showMessage('提交失败,请重试')
505
- }
506
- })
507
- },
508
- solveDefect(row, type) {
509
- this.solveModal.preData.defectImg = row.f_path?'/rs/image/file/' + row.f_path:''
510
- this.solveModal.preData.defectImg1 = row.f_p1_path?'/rs/image/file/' + row.f_p1_path:''
511
- this.solveModal.preData.defectImg2 = row.f_p2_path?'/rs/image/file/' + row.f_p2_path:''
512
- this.solveModal.preData.defectImg3 = row.f_p3_path?'/rs/image/file/' + row.f_p3_path:''
513
- this.solveModal.preData.repairedImg = '/rs/image/file/' + row.f_dealpath
514
- this.solveModal.preData.repairedImg2 = row.f_other_dealpath1 ? ('/rs/image/file/' + row.f_other_dealpath1) : ''
515
- this.solveModal.preData.repairedImg3 = row.f_other_dealpath2 ? ('/rs/image/file/' + row.f_other_dealpath2) : ''
516
- this.solveModal.preData.repairedImg4 = row.f_repair4_path ? ('/rs/image/file/' + row.f_repair4_path) : ''
517
- this.solveModal.uploadData.id = row.id
518
- this.solveModal.preData.type = type
519
- if (type == 'view') {
520
- this.solveModal.preData.f_repair_path = '/rs/image/file/' + row.f_repair_path
521
- this.solveModal.uploadData.f_repairman = row.f_repairman
522
- this.solveModal.uploadData.f_repair_date = row.f_repair_date
523
- this.$set('solveModal.f_audit_results',row.f_audit_results)
524
- } else {
525
- this.solveModal.uploadData.f_repairman = this.$login.f.name
526
- this.solveModal.uploadData.f_repair_date = Util.getNowDate().substr(0, 10)
527
- }
528
- this.showSolveModal = !this.showSolveModal
529
- },
530
- ok() {
531
- if (!(this.solveModal.uploadData.filename && this.solveModal.uploadData.filename.length > 0)) {
532
- this.$showMessage('请录入处理后照片')
533
- return
534
- }
535
- co(upSolveDefect(this))
536
- },
537
- cancel() {
538
- this.showSolveModal = false
539
- this.showToRepairModal = false
540
- },
541
- toRepair() {
542
- this.showToRepairModal = !this.showToRepairModal
543
- },
544
- getSiteRes(obj) {
545
- //tag
546
- //tag
547
- if(obj.resids[0]){
548
- this.toRepairModal.preData.f_meetunit = obj.res.join('.')
549
- this.toRepairModal.preData.f_reciever = obj.resids.join('.')
550
- }else {
551
- this.toRepairModal.preData.f_meetunit = ''
552
- this.toRepairModal.preData.f_reciever = ''
553
- this.toRepairModal.preData.f_outlets = ''
554
- }
555
- },
556
- // 获取维修员
557
- getEmp() {
558
- let val = {source: 'this.getParentByType($organization$).getChildByName($维修员$).getUsers()', userid: `${this.$login.f.id}`}
559
- let http = new HttpResetClass()
560
- http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
561
- res.data.forEach((item) => {
562
- this.toRepairModal.preData.repairers.push({label: item.name, value: item.name})
563
- })
564
- })
565
- },
566
- confirm() {
567
- if (this.toRepairModal.preData.dispatchType == '派发给站点' && !this.toRepairModal.preData.f_meetunit) {
568
- this.$showMessage('请选择站点。')
569
- return
570
- }
571
- co(sendRepair(this))
572
- }
573
- },
574
- watch: {
575
- 'check'() {
576
- this.model.f_paper_id = this.check.id
577
- this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
578
- },
579
- 'model.rows'() {
580
- if (this.model.rows.length > 0) {
581
- if (this.model.rows[0].f_repaire_type == '未处理') {
582
- this.needRepair = true
583
- return
584
- }
585
- }
586
- this.needRepair = false
587
- }
588
- }
589
- }
590
- </script>
591
- <style lang="less" scoped>
592
- .select-error {
593
- button {
594
- border-bottom: 1px solid #a94442 !important;
595
- }
596
- }
597
- </style>
1
+ <template>
2
+ <div>
3
+ <!-- <div :style="{'height':needRepair?'60%':'100%'}">-->
4
+ <div :style="{'height': '100%'}">
5
+ <criteria-paged :model="model" :pager="false" v-ref:paged>
6
+ <criteria partial='criteria'>
7
+ <div partial>
8
+ <ul class="nav nav-tabs">
9
+ <li role="presentation" class="active"><a style=" color: #5ac0d9 !important;">隐患明细</a></li>
10
+ </ul>
11
+ </div>
12
+ </criteria>
13
+ <data-grid :model="model" partial='list' class="table_sy">
14
+ <template partial='head'>
15
+ <tr>
16
+ <!-- <th>-->
17
+ <!-- <nobr>隐患设备</nobr>-->
18
+ <!-- </th>-->
19
+ <th>
20
+ <nobr>隐患项</nobr>
21
+ </th>
22
+ <th>
23
+ <nobr>隐患原因</nobr>
24
+ </th>
25
+ <th>
26
+ <nobr>隐患处理方式</nobr>
27
+ </th>
28
+ <!-- <th>-->
29
+ <!-- <nobr>审核结果</nobr>-->
30
+ <!-- </th>-->
31
+ <th>
32
+ <nobr>备注</nobr>
33
+ </th>
34
+ <th>
35
+ <nobr>操作</nobr>
36
+ </th>
37
+ </tr>
38
+ </template>
39
+ <template partial='body'>
40
+ <!-- <td style="text-align: center">-->
41
+ <!-- <nobr>{{row.f_device_type}}</nobr>-->
42
+ <!-- </td>-->
43
+ <td style="text-align: center">
44
+ <nobr>{{row.f_item_name}}</nobr>
45
+ </td>
46
+ <td style="text-align: center">
47
+ <nobr>{{row.f_item_value}}</nobr>
48
+ </td>
49
+ <td style="text-align: center">
50
+ <nobr>{{row.f_repaire_type}}</nobr>
51
+ </td>
52
+ <td style="text-align: center">
53
+ <nobr>{{row.f_deal_remark ? row.f_deal_remark : ' '}}</nobr>
54
+ </td>
55
+ <!-- <td style="text-align: center">-->
56
+ <!-- <nobr>{{row.f_audit_results?row.f_audit_results:'暂无审核结果'}}</nobr>-->
57
+ <!-- </td>-->
58
+ <td style="text-align: center">
59
+ <button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '已处理' && row.f_path" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.showimg(row)">隐患图片</button>
60
+ <!-- <img-button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '已处理' && row.f_path" :src="'/rs/image/file/'+row.f_path" :value="'隐患图片'"></img-button>-->
61
+ <button v-if="row.f_repaire_type == '已处理'" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.solveDefect( row, 'view')">处理详情</button>
62
+ <button v-if="row.f_repaire_type == '未处理' || !row.f_repaire_type" class="button_spacing button_search-1" @click="$parent.$parent.$parent.solveDefect( row, 'solve')">处理隐患</button>
63
+ </td>
64
+ </template>
65
+ </data-grid>
66
+ </criteria-paged>
67
+ </div>
68
+
69
+ <!-- <div style="overflow-y: scroll;height: 40%" v-if="needRepair">-->
70
+ <!-- <div class="form-horizontal auto">-->
71
+ <!-- <ul class="nav nav-tabs">-->
72
+ <!-- <li role="presentation" class="active"><a style=" color: #000 !important;font-size: 14px">转维修</a></li>-->
73
+ <!-- </ul>-->
74
+ <!-- <validator name='v' @valid="valid = true" @invalid="valid = false">-->
75
+ <!-- <div class="row">-->
76
+ <!-- <div class="col-sm-4" :class="[$v.dispatchtype.required ? 'select-error' : '']">-->
77
+ <!-- <label for="dispatchtype" class="font_normal_body">派发类型</label>-->
78
+ <!-- <input id="dispatchtype" type="text" v-show="false" v-model="$refs.dispatchtype.selectedItems" v-validate:dispatchtype='{required: true }'>-->
79
+ <!-- <v-select :value.sync="toRepairModal.preData.dispatchType" v-model="toRepairModal.preData.dispatchType"-->
80
+ <!-- :options='toRepairModal.preData.dispatchTypeOptions' placeholder='派发类型'-->
81
+ <!-- close-on-select v-ref:dispatchtype>-->
82
+ <!-- </v-select>-->
83
+ <!-- </div>-->
84
+ <!-- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给站点'">-->
85
+ <!-- <label class="font_normal_body">站&nbsp;&nbsp;点</label>-->
86
+ <!-- <right-tree-->
87
+ <!-- islist-->
88
+ <!-- :userid="$login.f.id"-->
89
+ <!-- :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"-->
90
+ <!-- @re-res="getSiteRes">-->
91
+ <!-- </right-tree>-->
92
+ <!-- </div>-->
93
+ <!-- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给维修员'" :class="[$v.f_repairman.required ? 'select-error' : '']">-->
94
+ <!-- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairman" v-validate:f_repairman='{required: true }'>-->
95
+ <!-- <label class="font_normal_body">维修员</label>-->
96
+ <!-- <v-select-->
97
+ <!-- :value.sync="toRepairModal.preData.f_repairman"-->
98
+ <!-- :value-single="true"-->
99
+ <!-- :options='toRepairModal.preData.repairers'-->
100
+ <!-- placeholder='请选择维修员'-->
101
+ <!-- close-on-select></v-select>-->
102
+ <!-- </div>-->
103
+ <!-- <div class="col-sm-4" :class="[$v.f_repairtype.required ? 'select-error' : '']">-->
104
+ <!-- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairtype" v-validate:f_repairtype='{required: true }'>-->
105
+ <!-- <label class="font_normal_body">报修类型</label>-->
106
+ <!-- <v-select :value.sync="toRepairModal.preData.f_repairtype" style="width:60%"-->
107
+ <!-- class="select select_list"-->
108
+ <!-- :value-single="true"-->
109
+ <!-- :options='toRepairModal.preData.repairTypeOptions'-->
110
+ <!-- close-on-select>-->
111
+ <!-- </v-select>-->
112
+ <!-- </div>-->
113
+ <!-- </div>-->
114
+ <!-- <div class="row">-->
115
+ <!-- <div class="col-sm-8 form-group">-->
116
+ <!-- <label class="font_normal_body" >备&emsp;&emsp;注</label>-->
117
+ <!-- <input class="input_search" style="width: 60%" type="text" v-model="toRepairModal.preData.f_remarks" placeholder="备注">-->
118
+
119
+ <!-- </div>-->
120
+ <!-- <div class="col-sm-4" style="margin-top: 1%">-->
121
+ <!-- <button class="button_search" :disabled="!valid" @click="confirm">转维修</button>-->
122
+ <!-- </div>-->
123
+ <!-- </div>-->
124
+ <!-- </validator>-->
125
+ <!-- </div>-->
126
+ <!-- </div>-->
127
+ <modal :show.sync="showSolveModal" v-ref:solveModal>
128
+ <div slot="modal-header" class="modal-header">
129
+ <h4 class="modal-title">
130
+ {{solveModal.preData.type == 'view'?'处理详情':'处理隐患'}}
131
+ </h4>
132
+ </div>
133
+ <div slot="modal-body" class="modal-body">
134
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
135
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
136
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理前</p></div>
137
+ </div>
138
+
139
+ <div class="col-sm-6" style="margin-top: 10px">
140
+ <label class="font_normal_body">安&nbsp;检&nbsp;员</label>
141
+ <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_checker_name" placeholder="安检员">
142
+ </div>
143
+ <div class="col-sm-6" style="margin-top: 10px">
144
+ <label class="font_normal_body">安检时间</label>
145
+ <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_offsite_time" placeholder="安检时间">
146
+ </div>
147
+ <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg">
148
+ <label class="font_normal_body">隐患图片</label>
149
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg"></img-self>
150
+ </div>
151
+ <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg1">
152
+ <label class="font_normal_body">隐患图片</label>
153
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg1"></img-self>
154
+ </div>
155
+ <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg2">
156
+ <label class="font_normal_body">隐患图片</label>
157
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg2"></img-self>
158
+ </div>
159
+ <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg3">
160
+ <label class="font_normal_body">隐患图片</label>
161
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg3"></img-self>
162
+ </div>
163
+
164
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
165
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
166
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后</p></div>
167
+ </div>
168
+ <div class="col-sm-6" style="margin-top: 10px">
169
+ <label class="font_normal_body">处&nbsp;理&nbsp;人</label>
170
+ <input v-if="solveModal.preData.type != 'solve'" class="input_search" style="width: 60%" disabled="true" type="text" v-model="solveModal.uploadData.f_repairman" placeholder="处理人">
171
+ <v-select
172
+ v-if="solveModal.preData.type == 'solve'"
173
+ :value.sync="solveModal.uploadData.f_repairman"
174
+ :value-single="true"
175
+ :options='toRepairModal.preData.repairers'
176
+ placeholder='请选择维修员'
177
+ close-on-select></v-select>
178
+ </div>
179
+ <div class="col-sm-6" style="margin-top: 10px">
180
+ <label class="font_normal_body">处理时间</label>
181
+ <datepicker
182
+ :disabled="solveModal.preData.type == 'view'"
183
+ placeholder='处理时间' style="width:60%"
184
+ :disabled-days-of-week="[]"
185
+ :format="'yyyy-MM-dd'"
186
+ :show-rest-button="reset"
187
+ :value.sync="solveModal.uploadData.f_repair_date">
188
+ </datepicker>
189
+ </div>
190
+ <div v-if="solveModal.preData.type == 'solve'" class="col-sm-12" style="margin-bottom: 10px">
191
+ <label class="font_normal_body">处理后图片</label>
192
+ <avatar-upload :width="200" :height="200" :img-src.sync="solveModal.uploadData.imgSrc" :filename.sync="solveModal.uploadData.filename" v-ref:imginfo></avatar-upload>
193
+ </div>
194
+ <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg" class="col-sm-12" style="margin-bottom: 10px">
195
+ <label class="font_normal_body">处理后图片</label>
196
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg"></img-self>
197
+ </div>
198
+ <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg2" class="col-sm-12" style="margin-bottom: 10px">
199
+ <label class="font_normal_body">处理后图片</label>
200
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg2"></img-self>
201
+ </div>
202
+ <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg3" class="col-sm-12" style="margin-bottom: 10px">
203
+ <label class="font_normal_body">处理后图片</label>
204
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg3"></img-self>
205
+ </div>
206
+ <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg4" class="col-sm-12" style="margin-bottom: 10px">
207
+ <label class="font_normal_body">处理后图片</label>
208
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg4"></img-self>
209
+ </div>
210
+ </div>
211
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
212
+ <!-- <button class="button_search" @click="auditsure('通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核通过</button>-->
213
+ <!-- <button class="button_search" @click="auditsure('不通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核不通过</button>-->
214
+ <button class="button_search" v-if="solveModal.preData.type == 'solve'" @click="ok">确认</button>
215
+ <button class="button_search" @click="cancel">取消</button>
216
+ </div>
217
+ </modal>
218
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true">
219
+ <header slot="modal-header" class="modal-header">
220
+ 隐患图片
221
+ </header>
222
+ <article slot="modal-body" class="modal-body">
223
+ <div class="from-group">
224
+ <div class="row">
225
+ <div class="col-md-6">
226
+ <img-self-plus v-if="imgs.defectImg" :src="imgs.defectImg" width="240" height="300"></img-self-plus>
227
+ </div>
228
+ <div class="col-md-6">
229
+ <img-self-plus v-if="imgs.defectImg1" :src="imgs.defectImg1" width="240" height="300"></img-self-plus>
230
+ </div>
231
+ <div class="col-md-6">
232
+ <img-self-plus v-if="imgs.defectImg2" :src="imgs.defectImg2" width="240" height="300"></img-self-plus>
233
+ </div>
234
+ <div class="col-md-6">
235
+ <img-self-plus v-if="imgs.defectImg3" :src="imgs.defectImg3" width="240" height="300"></img-self-plus>
236
+ </div>
237
+ </div>
238
+ </div>
239
+ </article>
240
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
241
+ </footer>
242
+ </modal>
243
+
244
+ </div>
245
+ </template>
246
+
247
+ <script>
248
+ import {PagedList, HttpResetClass} from 'vue-client'
249
+ import * as Util from '../../../components/Util'
250
+ import co from 'co'
251
+
252
+ const upSolveDefect = function * (self) {
253
+ let uploadData = self.solveModal.uploadData
254
+ //tag)
255
+ self.$resetpost('/rs/logic/pcRepairDefectNew', self.solveModal.uploadData, {resolveMsg: null, rejectMsg: null})
256
+ .then(res => {
257
+ if (res.data.code === 200) {
258
+ self.$showMessage('隐患已处理。')
259
+ self.showSolveModal = false
260
+ self.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
261
+ }
262
+ })
263
+ }
264
+
265
+ const sendRepair = function* (self) {
266
+ let preData = self.toRepairModal.preData
267
+ let uploadData = self.toRepairModal.uploadData
268
+
269
+ if (preData.dispatchType == '派发给站点') {
270
+ uploadData.model.serviceacitivity[0].f_meetunit = preData.f_meetunit
271
+ uploadData.model.serviceacitivity[0].f_reciever = preData.f_reciever
272
+ uploadData.model.f_meetunit = preData.f_meetunit
273
+ uploadData.model.f_orgstr = preData.f_reciever
274
+ uploadData.model.f_outlets = preData.f_outlets
275
+ } else if (preData.dispatchType == '派发给维修员') {
276
+ uploadData.model.serviceacitivity[0].f_reciever = preData.f_repairman
277
+ // uploadData.model.f_meetunit = self.$login.f.orgpathnames
278
+ // uploadData.model.f_orgstr = self.$login.f.orgpathstr
279
+ // uploadData.model.f_outlets = self.$login.f.f_parentname
280
+ uploadData.model.f_meetunit = self.$login.f.deps
281
+ uploadData.model.f_orgid = self.$login.f.orgid
282
+ uploadData.model.f_filiale = self.$login.f.org
283
+ uploadData.model.f_outlets = self.$login.f.deps
284
+ uploadData.model.f_filiale_id = self.$login.f.orgid
285
+ uploadData.toRepair = '一级派单'
286
+ }
287
+ let res = yield self.$resetpost('/rs/sql/GetUserForRepaireNew2', {data: {f_userinfo_id: self.check.f_userinfo_id}})
288
+ preData.userInfo = res.data[0]
289
+ uploadData.model = Object.assign(uploadData.model, preData.userInfo)
290
+ uploadData.user.f_userinfo_id = preData.userInfo.f_userinfo_id
291
+ uploadData.model.f_repair_date = Util.getNowDate()
292
+ uploadData.model.f_repairtype = preData.f_repairtype
293
+ uploadData.model.f_remarks = preData.f_remarks
294
+ // 拼接failure
295
+ let failure = []
296
+ self.model.rows.forEach(row => {
297
+ if (row.f_repaire_type == '未处理') {
298
+ failure.push({
299
+ f_failure_type: row.f_item_name,
300
+ failurecase: row.f_item_value?row.f_item_value.split(','):''
301
+ })
302
+ }
303
+ })
304
+ uploadData.model.failure = failure
305
+ // 拼接repairitems
306
+ let rows = JSON.parse(JSON.stringify(self.model.rows))
307
+ let repairitems = {
308
+ data: []
309
+ }
310
+ let safecheckOptions = [{"data": "已处理"}, {"data": "未处理"}]
311
+ // 取未处理的
312
+ rows = rows.filter(row => row.f_repaire_type == '未处理')
313
+ //tag)
314
+ // 开始拼接
315
+ rows.forEach(row => {
316
+ let existIndex = -1
317
+ // 判断该设备是否已经存在
318
+ for (let i = 0; i < repairitems.data.length; i++) {
319
+ if (repairitems.data[i].f_type == row.f_device_type) {
320
+ existIndex = i
321
+ break
322
+ }
323
+ }
324
+ if (existIndex == -1) {
325
+ // 不存在则新建
326
+ let newItem = {
327
+ f_type: row.f_device_type,
328
+ details: [{
329
+ f_defect_id: row.id,
330
+ f_project: `${row.f_item_name}:${row.f_item_value}`,
331
+ type: 'selector',
332
+ options: safecheckOptions
333
+ }]
334
+ }
335
+ repairitems.data.push(newItem)
336
+ } else {
337
+ // 存在则追加
338
+ repairitems.data[existIndex].details.push({
339
+ f_defect_id: row.id,
340
+ f_project: `${row.f_item_name}:${row.f_item_value}`,
341
+ type: 'selector',
342
+ options: safecheckOptions
343
+ })
344
+ }
345
+ })
346
+ uploadData.model.f_repairitems = repairitems
347
+ //tag)
348
+ // 调工单接口
349
+ let result = yield self.$resetpost('/rs/logic/callerSend', uploadData)
350
+ //tag)
351
+ if (result.data.f_service_id) {
352
+ const data = {
353
+ f_paper_id: rows[0].f_paper_id,
354
+ f_service_id: result.data.f_service_id,
355
+ itemsId: self.$login.convertToIn(rows.map(row => row.id))
356
+ }
357
+ //tag
358
+ let updateRes = yield self.$resetpost('/rs/logic/updateDefectStateNew', data)
359
+ if (updateRes.data.code == 200) {
360
+ self.$showMessage('隐患已转维修。')
361
+ self.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
362
+ }
363
+ }
364
+ }
365
+
366
+ export default {
367
+ title: '隐患项列表',
368
+ props: ['check'],
369
+ data() {
370
+ return {
371
+ model: new PagedList('rs/sql/GetDefectByPaperIdNew2', 100, {
372
+ f_paper_id: 'this.f_paper_id', f_item_value: 'this.f_item_value'
373
+ }),
374
+ imgshow: false,
375
+ imgs: {
376
+ defectImg: '',
377
+ defectImg1: '',
378
+ defectImg2: '',
379
+ defectImg3: '',
380
+ },
381
+ showSolveModal: false,
382
+ showToRepairModal: false,
383
+ showDefectModal: false,
384
+ valid: false,
385
+ needRepair: true,
386
+ solveModal: {
387
+ uploadData:{},
388
+ preData: {
389
+ type: 'view',
390
+ defectImg: '',
391
+ defectImg1: '',
392
+ defectImg2: '',
393
+ defectImg3: '',
394
+ repairedImg: '',
395
+ repairedImg2: '',
396
+ repairedImg3: '',
397
+ repairedImg4: '',
398
+
399
+ uploadData: {
400
+ id: '',
401
+ f_repairman: this.$login.f.name,
402
+ f_repair_date: Util.getNowDate().substr(0, 10),
403
+ f_repair_path: '',
404
+ imgSrc: '',
405
+ filename: ''
406
+ }
407
+ },
408
+ toRepairModal: {
409
+ preData: {
410
+ dispatchTypeOptions: [{label: '派发给站点', value: '派发给站点'}, {
411
+ label: '派发给维修员',
412
+ value: '派发给维修员'
413
+ }],
414
+ repairTypeOptions: this.$appdata.getParam('报修类型'),
415
+ dispatchType: '',
416
+ f_repairman: '',
417
+ f_repairtype: '',
418
+ f_remarks: '',
419
+ f_meetunit: '',
420
+ f_reciever: '',
421
+ f_outlets: '',
422
+ userInfo: {},
423
+ repairers: []
424
+ },
425
+ uploadData: {
426
+ id:'',
427
+ model: {
428
+ serviceacitivity: [{
429
+ f_service_acitivity_type: '派单'
430
+ }],
431
+ f_repairitems: {},
432
+ failure: '',
433
+ f_source: '安检',
434
+ f_service_id: '',
435
+ f_contact_phone: '',
436
+ f_meetunit: '',
437
+ f_phone: '',
438
+ f_user_name: '',
439
+ f_address: '',
440
+ f_repair_date: '',
441
+ f_reciever: '',
442
+ f_remarks: '',
443
+ f_user_type: '',
444
+ f_area: '',
445
+ f_unit_name: '',
446
+ f_street: '',
447
+ f_residential_area: '',
448
+ f_building: '',
449
+ f_unit: '',
450
+ f_floor: '',
451
+ f_room: '',
452
+ aState: '',
453
+ f_repairtype: '',
454
+ f_userinfo_id: '',
455
+ f_userinfo_code: '',
456
+ f_orgstr: '',
457
+ f_outlets: '',
458
+ f_attendant: this.$login.f.name
459
+ },
460
+ loginUser: {
461
+ name: this.$login.f.name,
462
+ ename: this.$login.f.ename
463
+ },
464
+ user: {
465
+ f_userinfo_id: ''
466
+ },
467
+ callObj: null
468
+ }
469
+ }
470
+ }
471
+ }
472
+ },
473
+ ready() {
474
+ this.model.f_item_value = `(SELECT stuff(( SELECT ',' + f_item_value FROM t_devices_items_lists WHERE ( f_is_defect = 'true' OR di.f_is_defect = 'true') AND f_item_id = di.id FOR xml path ( '' ) ),1,1,'' ) )`
475
+ if (this.check) {
476
+ this.model.f_paper_id = this.check.id
477
+ this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
478
+ }
479
+ this.getEmp()
480
+ },
481
+ methods: {
482
+ showimg(val){
483
+ this.imgs.defectImg = val.f_path?'/rs/image/file/' + val.f_path:''
484
+ this.imgs.defectImg1 = val.f_p1_path?'/rs/image/file/' + val.f_p1_path:''
485
+ this.imgs.defectImg2 = val.f_p2_path?'/rs/image/file/' + val.f_p2_path:''
486
+ this.imgs.defectImg3 = val.f_p3_path?'/rs/image/file/' + val.f_p3_path:''
487
+ this.imgshow = true
488
+ },
489
+ //审核通过
490
+ auditsure(info){
491
+ // 拿到t_devices_items 的ID,给f_audit_results中存入通过 如果未通过,需要可以再次派单,对隐患进行处理
492
+ var data = {
493
+ id: this.solveModal.uploadData.id,
494
+ info:info
495
+ }
496
+ let http = new HttpResetClass()
497
+ http.load('POST', 'rs/logic/DefectAuditUpdate', data, {resolveMsg: null, rejectMsg: null}).then((res) => {
498
+ if(res.data.code == 200){
499
+ this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
500
+ this.showSolveModal = false
501
+ this.showToRepairModal = false
502
+ this.$showMessage('提交成功')
503
+ }else{
504
+ this.$showMessage('提交失败,请重试')
505
+ }
506
+ })
507
+ },
508
+ solveDefect(row, type) {
509
+ this.solveModal.preData.defectImg = row.f_path?'/rs/image/file/' + row.f_path:''
510
+ this.solveModal.preData.defectImg1 = row.f_p1_path?'/rs/image/file/' + row.f_p1_path:''
511
+ this.solveModal.preData.defectImg2 = row.f_p2_path?'/rs/image/file/' + row.f_p2_path:''
512
+ this.solveModal.preData.defectImg3 = row.f_p3_path?'/rs/image/file/' + row.f_p3_path:''
513
+ this.solveModal.preData.repairedImg = '/rs/image/file/' + row.f_dealpath
514
+ this.solveModal.preData.repairedImg2 = row.f_other_dealpath1 ? ('/rs/image/file/' + row.f_other_dealpath1) : ''
515
+ this.solveModal.preData.repairedImg3 = row.f_other_dealpath2 ? ('/rs/image/file/' + row.f_other_dealpath2) : ''
516
+ this.solveModal.preData.repairedImg4 = row.f_repair4_path ? ('/rs/image/file/' + row.f_repair4_path) : ''
517
+ this.solveModal.uploadData.id = row.id
518
+ this.solveModal.preData.type = type
519
+ if (type == 'view') {
520
+ this.solveModal.preData.f_repair_path = '/rs/image/file/' + row.f_repair_path
521
+ this.solveModal.uploadData.f_repairman = row.f_repairman
522
+ this.solveModal.uploadData.f_repair_date = row.f_repair_date
523
+ this.$set('solveModal.f_audit_results',row.f_audit_results)
524
+ } else {
525
+ this.solveModal.uploadData.f_repairman = this.$login.f.name
526
+ this.solveModal.uploadData.f_repair_date = Util.getNowDate().substr(0, 10)
527
+ }
528
+ this.showSolveModal = !this.showSolveModal
529
+ },
530
+ ok() {
531
+ if (!(this.solveModal.uploadData.filename && this.solveModal.uploadData.filename.length > 0)) {
532
+ this.$showMessage('请录入处理后照片')
533
+ return
534
+ }
535
+ co(upSolveDefect(this))
536
+ },
537
+ cancel() {
538
+ this.showSolveModal = false
539
+ this.showToRepairModal = false
540
+ },
541
+ toRepair() {
542
+ this.showToRepairModal = !this.showToRepairModal
543
+ },
544
+ getSiteRes(obj) {
545
+ //tag
546
+ //tag
547
+ if(obj.resids[0]){
548
+ this.toRepairModal.preData.f_meetunit = obj.res.join('.')
549
+ this.toRepairModal.preData.f_reciever = obj.resids.join('.')
550
+ }else {
551
+ this.toRepairModal.preData.f_meetunit = ''
552
+ this.toRepairModal.preData.f_reciever = ''
553
+ this.toRepairModal.preData.f_outlets = ''
554
+ }
555
+ },
556
+ // 获取维修员
557
+ getEmp() {
558
+ let val = {source: 'this.getParentByType($organization$).getChildByName($维修员$).getUsers()', userid: `${this.$login.f.id}`}
559
+ let http = new HttpResetClass()
560
+ http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
561
+ res.data.forEach((item) => {
562
+ this.toRepairModal.preData.repairers.push({label: item.name, value: item.name})
563
+ })
564
+ })
565
+ },
566
+ confirm() {
567
+ if (this.toRepairModal.preData.dispatchType == '派发给站点' && !this.toRepairModal.preData.f_meetunit) {
568
+ this.$showMessage('请选择站点。')
569
+ return
570
+ }
571
+ co(sendRepair(this))
572
+ }
573
+ },
574
+ watch: {
575
+ 'check'() {
576
+ this.model.f_paper_id = this.check.id
577
+ this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
578
+ },
579
+ 'model.rows'() {
580
+ if (this.model.rows.length > 0) {
581
+ if (this.model.rows[0].f_repaire_type == '未处理') {
582
+ this.needRepair = true
583
+ return
584
+ }
585
+ }
586
+ this.needRepair = false
587
+ }
588
+ }
589
+ }
590
+ </script>
591
+ <style lang="less" scoped>
592
+ .select-error {
593
+ button {
594
+ border-bottom: 1px solid #a94442 !important;
595
+ }
596
+ }
597
+ </style>