safecheck-client 3.0.35-1 → 3.0.35-11
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +1 -1
- package/src/components/Util/SafecheckUpload.vue +269 -265
- package/src/components/android/CivilCurrentCreate.vue +46 -41
- package/src/components/android/examples/UserExamples.vue +136 -136
- package/src/components/rongcheng/AspiratedPaperFeedbackm.vue +1049 -1045
- package/src/filiale/bayan/android/AddPlanItem.vue +13 -2
- package/src/filiale/bayan/android/CheckPlanDown.vue +2 -2
- package/src/filiale/bayan/android/PaperFeedback.vue +1669 -1669
- package/src/filiale/bayan/android/PhoneUpUserinfo.vue +908 -905
- package/src/filiale/bayan/android/SafecheckOrderV.vue +76 -20
- package/src/filiale/bayan/android/SafecheckUserInfo.vue +4 -0
- package/src/filiale/bayan/pc/CheckPlanAreaList.vue +42 -0
- package/src/filiale/bayan/pc/HiddenSituation.vue +295 -295
- package/src/filiale/bayan/pc/NewCheckpaper.vue +1992 -1992
- package/src/filiale/bayan/pc/PaperList.vue +900 -900
- package/src/filiale/bayan/pc/PlanManage.vue +2 -0
- package/src/filiale/bayan/pc/SelectCheckPlan.vue +58 -0
- package/src/filiale/huaran/android/CheckPlanDown.vue +212 -0
- package/src/filiale/huaran/android.js +13 -12
- package/src/filiale/shanxian/android/AddPlanItem.vue +1 -1
- package/src/filiale/shanxian/android/SafecheckOrderV.vue +1 -1
- package/src/filiale/tongchuan/android/SafecheckDevices.vue +1207 -1207
- package/src/filiale/tongchuan/android/SafecheckOrderV.vue +3035 -3035
- package/src/filiale/tongchuan/pc/CheckSearchUser.vue +1053 -1053
- package/src/filiale/tongchuan/pc/checkUserList.vue +639 -639
- package/src/filiale/xilan/android/AddPlanItem.vue +4 -0
- package/src/filiale/xilan/android/CurrentCreate.vue +6 -2
- package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +642 -642
- package/src/main.js +1 -1
@@ -1,1045 +1,1049 @@
|
|
1
|
-
<template>
|
2
|
-
<div class="auto">
|
3
|
-
<div style="width: 100%;height: 36px;background-color: #f1f8ff">
|
4
|
-
<div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
|
5
|
-
<div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">拍照选项:</p></div>
|
6
|
-
</div>
|
7
|
-
<form novalidate class="form-horizontal" style="width: 100%;margin: auto">
|
8
|
-
<div class="form-group col-sm-12 col-xs-12 col-md-12 info" style="width:100%;">
|
9
|
-
<div class="text-center">
|
10
|
-
<label class="font">检查说明:</label>
|
11
|
-
</div>
|
12
|
-
<div class="col-md-12 col-sm-12 col-xs-12" style="width: 90%;margin-left: 5px">
|
13
|
-
<ol class="showInput" style="width: 90%;margin-left: 40px">
|
14
|
-
<li>已对客户燃气设施进行了安全检查</li>
|
15
|
-
<li>已对客户进行了安全知识宣传,并发放宣传资料</li>
|
16
|
-
<li>已对客户的资料进行了登记</li>
|
17
|
-
<li>已对违章及隐患之客户下发隐患整改告知书</li>
|
18
|
-
</ol>
|
19
|
-
</div>
|
20
|
-
</div>
|
21
|
-
|
22
|
-
<div class="form-group col-sm-12" style="margin-top: 10px">
|
23
|
-
<div class="auto" style="width: 100%;float: left;" >
|
24
|
-
<label class="text-left font">总体送气照片</label>
|
25
|
-
<div class="auto">
|
26
|
-
<div class="panel">
|
27
|
-
<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
|
28
|
-
<div class="row" style="height: 240px;overflow: scroll;top: 1px">
|
29
|
-
<div class="row">
|
30
|
-
<div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 10px;margin-right: 75px" v-for="(index,img) in paper.f_overall_imgs">
|
31
|
-
<img-self :src="img.f_overall_path" alt="总体送气照片" :width="150" :height="200"></img-self>
|
32
|
-
</div>
|
33
|
-
<div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 10px;margin-right: 75px" v-for="(index,img) in fileInfoData">
|
34
|
-
<img-self :src="img.f_downloadURL" alt="总体送气照片" :width="150" :height="200"></img-self>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
</div>
|
38
|
-
<div class="row text-right div-photo">
|
39
|
-
<!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
</div>
|
44
|
-
</div>
|
45
|
-
<!--<div class="auto" style="width: 49%;float: left;margin-left: 20px">-->
|
46
|
-
<!--<label class="text-left font">总体安检照片2</label>-->
|
47
|
-
<!--<div class="auto">-->
|
48
|
-
<!--<div class="panel">-->
|
49
|
-
<!--<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">-->
|
50
|
-
<!--<div class="row" style="height: 240px;overflow: scroll;top: 1px">-->
|
51
|
-
<!--<div class="col-sm-4">-->
|
52
|
-
<!--<img-self :src="paper.f_overall2_path" alt="总体安检照片2" width="150" height="200"></img-self>-->
|
53
|
-
<!--</div>-->
|
54
|
-
<!--</div>-->
|
55
|
-
<!--<div class="row text-right div-photo">-->
|
56
|
-
<!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall2_path', '总体安检照片2')">拍照</button>-->
|
57
|
-
<!--</div>-->
|
58
|
-
<!--</div>-->
|
59
|
-
<!--</div>-->
|
60
|
-
<!--</div>-->
|
61
|
-
<!--</div>-->
|
62
|
-
</div>
|
63
|
-
<div class="form-group col-sm-12" style="margin-top: 20px">
|
64
|
-
<label class="text-left font">用户签名</label>
|
65
|
-
<div class="auto">
|
66
|
-
<div class="panel">
|
67
|
-
<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
|
68
|
-
<div class="row" style="height: 240px;overflow: scroll;top: 1px">
|
69
|
-
<div class="col-sm-4">
|
70
|
-
<img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
|
71
|
-
</div>
|
72
|
-
</div>
|
73
|
-
<!--<div class="row text-right div-photo">-->
|
74
|
-
<!--<!–<button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>–>-->
|
75
|
-
<!--</div>-->
|
76
|
-
</div>
|
77
|
-
</div>
|
78
|
-
</div>
|
79
|
-
</div>
|
80
|
-
<div class="form-group col-sm-12" v-if="paper.f_exceed_reason">
|
81
|
-
<label>送气超期原因:</label><br/>
|
82
|
-
<textarea style="width: 100%;" v-model="paper.f_exceed_reason"></textarea>
|
83
|
-
</div>
|
84
|
-
<!--<div class="form-group col-sm-12" style="margin-top: 20px">
|
85
|
-
<input type="checkbox" :readonly="true" :checked="paper.f_blacklist=='是'"/><label class="text-left font" >限制该用户购气</label>
|
86
|
-
<textarea if="paper.f_blacklist=='是'" id="el_ca_tx" v-model.trim="paper.f_blocking_cause" style="border-radius:4px;width: 100%;" >
|
87
|
-
</textarea>
|
88
|
-
</div>-->
|
89
|
-
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
90
|
-
<!--<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
91
|
-
<input type="checkbox" v-model="paper.f_defect_notified" class="showInput"/>安检通知书/隐患整改通知书
|
92
|
-
</div>
|
93
|
-
<div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
|
94
|
-
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
95
|
-
<button type="button" @click="print()">打印隐患整改单</button>
|
96
|
-
</div>
|
97
|
-
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
98
|
-
<label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
|
99
|
-
<div class="auto" >
|
100
|
-
<div class="panel" style="padding: 10px 10px 5px 10px;">
|
101
|
-
<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
|
102
|
-
<div class="row" style="height: 240px;overflow: scroll;top: 1px">
|
103
|
-
<div class="col-sm-4">
|
104
|
-
<img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
|
105
|
-
</div>
|
106
|
-
</div>
|
107
|
-
<div class="row text-right div-photo">
|
108
|
-
<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
|
109
|
-
<img src="../../assets/remove.png" :class="style__" @click="delfile('f_notified_path', this.paper.f_notified_path)" style="width: 25%;"></img>
|
110
|
-
</div>
|
111
|
-
</div>
|
112
|
-
</div>
|
113
|
-
</div>
|
114
|
-
</div>
|
115
|
-
</div>
|
116
|
-
-->
|
117
|
-
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
118
|
-
<div class="row">
|
119
|
-
<label class="text-left">请对我们的服务做出评价:</label>
|
120
|
-
</div>
|
121
|
-
<div class="col-xs-4 col-sm-4" v-for="item in radios">
|
122
|
-
<input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
|
123
|
-
</div>
|
124
|
-
</div>
|
125
|
-
<!-- <div class="form-group col-md-12 col-sm-12 col-xs-12">-->
|
126
|
-
<!-- <label class="text-left font">反馈录音:</label>-->
|
127
|
-
<!-- <div class="col-md-12 col-sm-12 col-xs-12" v-if="!paper.f_recording1_path">-->
|
128
|
-
<!-- <audio :src="paper.f_recording1_path" v-el:audio controls @click="palyAudio(row)"></audio>-->
|
129
|
-
<!-- </div>-->
|
130
|
-
<!-- </div>-->
|
131
|
-
<div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
|
132
|
-
<button type="button" v-show="$parent.actionEnabled" class="btn save-btn" @click="$parent.savePaper(true)">保存</button>
|
133
|
-
<button id="upload" type="button" v-show="$parent.actionEnabled && !$parent.isBusy" class="btn upload-btn" @click="$parent.uploadPaper" >上传</button>
|
134
|
-
<button v-if="safeCheckToRepair && $parent.actionEnabled" class="btn repair-btn btn-warning" type="button" @click="showToRepair">转维修</button>
|
135
|
-
</div>
|
136
|
-
</div>
|
137
|
-
</form>
|
138
|
-
|
139
|
-
<modal :show.sync="showCheckToRepair" v-ref:modal :backdrop="isback">
|
140
|
-
<div slot="modal-header" class="modal-header">
|
141
|
-
<h4 class="modal-title">
|
142
|
-
安检转维修
|
143
|
-
</h4>
|
144
|
-
</div>
|
145
|
-
<div slot="modal-body" class="modal-body">
|
146
|
-
<div v-if="showrepair">
|
147
|
-
<div class="row">
|
148
|
-
<label class="col-xs-4 col-md-4 control-label text-left">派单方式</label>
|
149
|
-
<div class="col-xs-8 col-md-8">
|
150
|
-
<label v-for="handling1 in handling" >
|
151
|
-
<input type="radio"
|
152
|
-
v-model="meading"
|
153
|
-
value="{{handling1.label}}">
|
154
|
-
{{handling1.label}}
|
155
|
-
</label>
|
156
|
-
</div>
|
157
|
-
</div>
|
158
|
-
<div class="row" v-if="meading == '转站点'">
|
159
|
-
<label class="col-xs-4 col-md-4 control-label font text-left" for="f_reciever">站点</label>
|
160
|
-
<div class="col-xs-8 col-md-8">
|
161
|
-
<right-tree @ready="onReady" islist :Url="Url" :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>
|
162
|
-
</right-tree>
|
163
|
-
</div>
|
164
|
-
</div>
|
165
|
-
|
166
|
-
<div class="row" style="margin-top: 6px" v-if="meading == '转维修员'">
|
167
|
-
<label class="col-xs-4 col-md-4 control-label font text-left">维修人</label>
|
168
|
-
<div class="col-xs-8">
|
169
|
-
<v-select :value="model.serviceacitivity[0].f_reciever" :value-single="true"
|
170
|
-
:options='f_repair_person' placeholder='请选择维修员'
|
171
|
-
close-on-select v-on:change="repiarmancg"></v-select>
|
172
|
-
</div>
|
173
|
-
|
174
|
-
</div>
|
175
|
-
<div class="row" style="margin-top: 6px">
|
176
|
-
<label for="f_repair" class="col-xs-4 col-md-4 control-label font text-left">报修类型</label>
|
177
|
-
<div class="col-xs-8 col-md-8">
|
178
|
-
<v-select :value.sync="model.f_repairtype" :value-single="true"
|
179
|
-
:options='repairstypes' placeholder='报修类型'
|
180
|
-
close-on-select>
|
181
|
-
</v-select>
|
182
|
-
</div>
|
183
|
-
</div>
|
184
|
-
|
185
|
-
<div class="row" style="margin-top: 6px">
|
186
|
-
<label class="control-label font text-left col-md-4 col-xs-4">备注</label>
|
187
|
-
<div class="col-xs-8 col-md-8">
|
188
|
-
<input type="text" v-model="model.f_remarks"/>
|
189
|
-
</div>
|
190
|
-
|
191
|
-
</div>
|
192
|
-
|
193
|
-
</div>
|
194
|
-
<div v-if="!showrepair">
|
195
|
-
暂无隐患设备信息
|
196
|
-
</div>
|
197
|
-
</div>
|
198
|
-
<div slot="modal-footer" class="modal-footer">
|
199
|
-
<button type="button" class="btn btn-default" @click="uploadPaper()">确定</button>
|
200
|
-
<button type="button" class="btn btn-default" @click="undo()">取消</button>
|
201
|
-
</div>
|
202
|
-
</modal>
|
203
|
-
</div>
|
204
|
-
</template>
|
205
|
-
|
206
|
-
<script>
|
207
|
-
import Vue from 'vue'
|
208
|
-
import * as Util from '../Util'
|
209
|
-
import { HttpResetClass } from 'vue-client'
|
210
|
-
import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
|
211
|
-
import Radio from 'vue-client/src/vue-strap/src/radioBtn'
|
212
|
-
import co from 'co'
|
213
|
-
|
214
|
-
let getRepairParam = function * (self){
|
215
|
-
let data = {
|
216
|
-
model: self.model, loginUser: {
|
217
|
-
name: self.role == 'view'?self.$login.f.name:Vue.user.name,
|
218
|
-
ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
|
219
|
-
}, user: self.user, callObj: self.callObj
|
220
|
-
}
|
221
|
-
if(self.meading == '转维修员'){
|
222
|
-
data.toRepair = '一级派单'
|
223
|
-
}
|
224
|
-
data.model.f_attendant = data.loginUser.name
|
225
|
-
//tag
|
226
|
-
//tag
|
227
|
-
let res
|
228
|
-
let errString = self.$parent.errorVerify()
|
229
|
-
if(errString){
|
230
|
-
//tag
|
231
|
-
if (Vue.android)
|
232
|
-
self.undo()
|
233
|
-
this.$showMessage(errString)
|
234
|
-
return
|
235
|
-
} else {
|
236
|
-
if(self.role == 'inspect'){
|
237
|
-
if(self.meading == '转维修员' && (self.model.serviceacitivity[0].f_reciever == '' || self.model.serviceacitivity[0].f_reciever == undefined)){
|
238
|
-
this.$showMessage("请选择维修员!")
|
239
|
-
return
|
240
|
-
}
|
241
|
-
if(self.meading == '转站点' && (self.model.serviceacitivity[0].f_reciever == '' || self.model.serviceacitivity[0].f_reciever == undefined)){
|
242
|
-
this.$showMessage("请选择站点!")
|
243
|
-
return
|
244
|
-
}
|
245
|
-
if(self.model.f_repairtype == ''){
|
246
|
-
this.$showMessage("请选择报修类型!")
|
247
|
-
return
|
248
|
-
}
|
249
|
-
//tag)
|
250
|
-
let checkResult = '正常'
|
251
|
-
let options = [{"data": "已处理"},{"data": "未处理"}]
|
252
|
-
let value = ''
|
253
|
-
let codata = JSON.parse(JSON.stringify(self.paper))
|
254
|
-
for(let device in codata){
|
255
|
-
//tag)
|
256
|
-
let f_device_type
|
257
|
-
if(device.startsWith("device")){
|
258
|
-
for(let item in codata[device]) {
|
259
|
-
if(codata[device].length > 1 ){
|
260
|
-
let j = Number.parseInt(item)+1
|
261
|
-
f_device_type = `${codata[device][item].f_device_type}${j}`
|
262
|
-
}else{
|
263
|
-
f_device_type = codata[device][item].f_device_type
|
264
|
-
}
|
265
|
-
// //tag
|
266
|
-
let details = []
|
267
|
-
for(let i in codata[device][item].f_items){
|
268
|
-
let items = codata[device][item].f_items[i]
|
269
|
-
//tag
|
270
|
-
if(items.f_is_defect == true || items.f_is_defect == 'true'){
|
271
|
-
checkResult = '有隐患'
|
272
|
-
//tag
|
273
|
-
let res = yield self.$resetpost(`${self.Url}/rs/sql/getDeviceItem`,{data:{f_device_id:codata[device][item].f_device_id,f_item_name:items.f_item_name}})
|
274
|
-
//tag)
|
275
|
-
self.$set('detail.f_defect_id', res.data[0].id)
|
276
|
-
self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
|
277
|
-
self.$set('detail.type',items.type)
|
278
|
-
self.$set('detail.options',options)
|
279
|
-
details.push(JSON.parse(JSON.stringify(self.detail)))
|
280
|
-
}
|
281
|
-
if(items.type == 'selector'){
|
282
|
-
items.selected = ''
|
283
|
-
}
|
284
|
-
self.detail = {}
|
285
|
-
}
|
286
|
-
//tag
|
287
|
-
self.$set('defectDevice.f_type',f_device_type)
|
288
|
-
self.$set('defectDevice.details',details)
|
289
|
-
if(self.defectDevice.details.length >0 ){
|
290
|
-
self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
|
291
|
-
}
|
292
|
-
self.defectDevice = {}
|
293
|
-
//tag
|
294
|
-
}
|
295
|
-
}
|
296
|
-
}
|
297
|
-
self.$set('model.f_repairitems.data',self.repairitems)
|
298
|
-
|
299
|
-
|
300
|
-
//tag)
|
301
|
-
res = self.$androidUtil.bzLogic('safecheckToRepair',data)
|
302
|
-
//tag
|
303
|
-
//tag
|
304
|
-
//tag
|
305
|
-
if(res.code == 200){
|
306
|
-
self.$parent.isSafeCheckToRepair = true
|
307
|
-
self.undo()
|
308
|
-
self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
|
309
|
-
//tag
|
310
|
-
self.$resetpost(`${self.Url}/rs/logic/updatePaperRepair`,{data:{f_paper_id:self.paper.f_paper_id,f_SafeToRepair_id:res.data.f_service_id}}).then((ret)=>{
|
311
|
-
//tag
|
312
|
-
if(ret.data.code ==200){
|
313
|
-
//tag
|
314
|
-
self.$parent.$back()
|
315
|
-
}else{
|
316
|
-
self.$showMessage('安检转维修失败!')
|
317
|
-
}
|
318
|
-
}).catch(v=>{
|
319
|
-
//tag)
|
320
|
-
self.$showMessage('安检转维修失败!')
|
321
|
-
})
|
322
|
-
}else{
|
323
|
-
self.$showMessage('安检转维修失败!')
|
324
|
-
}
|
325
|
-
}
|
326
|
-
}
|
327
|
-
}
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
let getRepairs = async function(self,url) {
|
332
|
-
// 获取配置信息
|
333
|
-
try {
|
334
|
-
let val = {source: 'this.getParentByType($department$).getChildByName($维修员$).getUsers()', userid: `${Vue.$login.jwt}`}
|
335
|
-
let repairs =[]
|
336
|
-
let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
|
337
|
-
res.data.forEach((item) => {
|
338
|
-
repairs.push({label: item.name, value: item})
|
339
|
-
})
|
340
|
-
self.f_repair_person = repairs
|
341
|
-
if(self.$parent.role == 'inspect'){
|
342
|
-
let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
|
343
|
-
if(res.code == 200){
|
344
|
-
self.user = res.data[0]
|
345
|
-
self.model.f_area = self.user.f_area
|
346
|
-
}
|
347
|
-
}else{
|
348
|
-
//tag
|
349
|
-
self.$resetpost(`${self.Url}/rs/sql/safeCheckgetUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
|
350
|
-
//tag
|
351
|
-
if(res.data.length != 0){
|
352
|
-
self.user = res.data[0]
|
353
|
-
self.model.f_area = self.user.f_area
|
354
|
-
}
|
355
|
-
})
|
356
|
-
// path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
|
357
|
-
}
|
358
|
-
} catch (error) {
|
359
|
-
//tag
|
360
|
-
}
|
361
|
-
}
|
362
|
-
|
363
|
-
export default {
|
364
|
-
title: '用户反馈',
|
365
|
-
data() {
|
366
|
-
return {
|
367
|
-
fileInfoData:[],
|
368
|
-
paper:this.$parent.data,
|
369
|
-
printContent:[],
|
370
|
-
radios:[
|
371
|
-
{
|
372
|
-
label: '满意',
|
373
|
-
value: 0,
|
374
|
-
isChecked: false,
|
375
|
-
},
|
376
|
-
{
|
377
|
-
label: '基本满意',
|
378
|
-
value:1,
|
379
|
-
isChecked: false,
|
380
|
-
},
|
381
|
-
{
|
382
|
-
label: '不满意',
|
383
|
-
value:2,
|
384
|
-
isChecked: false,
|
385
|
-
},
|
386
|
-
],
|
387
|
-
model: {
|
388
|
-
// 一次派单
|
389
|
-
serviceacitivity: [{
|
390
|
-
f_service_acitivity_type: '派单'
|
391
|
-
}],
|
392
|
-
f_source:'安检',
|
393
|
-
f_service_id: '',
|
394
|
-
f_contact_phone: '',
|
395
|
-
f_meetunit: '',
|
396
|
-
f_phone: '',
|
397
|
-
f_user_name: '',
|
398
|
-
f_address: '',
|
399
|
-
f_repair_date: Util.toStandardTimeString(),
|
400
|
-
f_card_id: '',
|
401
|
-
// f_department: '', 站点选择
|
402
|
-
f_reciever:'',
|
403
|
-
f_remarks: '',
|
404
|
-
f_user_type: '',
|
405
|
-
f_area: '',
|
406
|
-
f_unit_name:'',
|
407
|
-
f_street: '',
|
408
|
-
f_residential_area: '',
|
409
|
-
f_building: '',
|
410
|
-
f_unit: '',
|
411
|
-
f_floor: '',
|
412
|
-
f_room: '',
|
413
|
-
aState: null,
|
414
|
-
f_repairtype: '',
|
415
|
-
f_repairitems:{},
|
416
|
-
},
|
417
|
-
repairitems:[],
|
418
|
-
repairstypes:this.$appdata.getParam('报修类型'),
|
419
|
-
//f_repair_person: this.readRepair(),
|
420
|
-
showrepair: false,
|
421
|
-
safeCheckToRepair:'',
|
422
|
-
showCheckToRepair:false,
|
423
|
-
userid: '',
|
424
|
-
source:
|
425
|
-
'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
|
426
|
-
'tool.getFullTree(dep.where(row.getChildByName($派单员$) != null))',
|
427
|
-
isback:false,
|
428
|
-
defectDevice:{},
|
429
|
-
detail:{},
|
430
|
-
callObj:null,
|
431
|
-
user:{},
|
432
|
-
role:this.$parent.role,
|
433
|
-
handling:[{label:'转站点',value:'转站点'},{label:'转维修员',value:'转维修员'}],
|
434
|
-
meading:'转站点',
|
435
|
-
Url:this.$androidUtil.getProxyUrl()
|
436
|
-
}
|
437
|
-
},
|
438
|
-
props: ['idx','item'],
|
439
|
-
components: {
|
440
|
-
RadioGroup,
|
441
|
-
Radio
|
442
|
-
},
|
443
|
-
methods: {
|
444
|
-
//获取pc上传的送气全景照片
|
445
|
-
getGaspic() {
|
446
|
-
let data = {
|
447
|
-
tablename: 't_files',
|
448
|
-
condition: `f_blobid = '${this.item.id}' order by f_uploaddate desc `
|
449
|
-
}
|
450
|
-
let http = new HttpResetClass()
|
451
|
-
http.load('post', 'rs/sql/singleTable', {data: data}, {
|
452
|
-
resolveMsg: null,
|
453
|
-
rejectMsg: null
|
454
|
-
}).then(getFile=> {
|
455
|
-
for (var i = 0; i < getFile.data.length; i++) {
|
456
|
-
let temp = getFile.data[i].f_downloadpath
|
457
|
-
if (temp) {
|
458
|
-
let URL = temp.substring(temp.lastIndexOf(":\\") + 2)
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
this.
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
HostApp.__callback__ =
|
488
|
-
HostApp.__this__ =
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
this.
|
624
|
-
this.printContent.push(
|
625
|
-
|
626
|
-
|
627
|
-
this
|
628
|
-
this
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
this.printContent.push({type: 3, text: '
|
645
|
-
this.printContent.push({type:
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
var
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
let
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
this.model.
|
862
|
-
this.model.
|
863
|
-
|
864
|
-
|
865
|
-
this.model.
|
866
|
-
this.model.
|
867
|
-
|
868
|
-
|
869
|
-
this.model.
|
870
|
-
this.model.
|
871
|
-
this.model.
|
872
|
-
this.model.
|
873
|
-
this.model.
|
874
|
-
this.model.
|
875
|
-
this.model.
|
876
|
-
this.model.
|
877
|
-
this.model.
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
this.
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
if (!this.paper.
|
958
|
-
|
959
|
-
|
960
|
-
this.$set('paper.
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
this.$set('paper.
|
965
|
-
|
966
|
-
|
967
|
-
if(
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
|
973
|
-
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
}
|
993
|
-
.
|
994
|
-
font:
|
995
|
-
color: #
|
996
|
-
}
|
997
|
-
.
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
border:
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
height:
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1037
|
-
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1
|
+
<template>
|
2
|
+
<div class="auto">
|
3
|
+
<div style="width: 100%;height: 36px;background-color: #f1f8ff">
|
4
|
+
<div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
|
5
|
+
<div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">拍照选项:</p></div>
|
6
|
+
</div>
|
7
|
+
<form novalidate class="form-horizontal" style="width: 100%;margin: auto">
|
8
|
+
<div class="form-group col-sm-12 col-xs-12 col-md-12 info" style="width:100%;">
|
9
|
+
<div class="text-center">
|
10
|
+
<label class="font">检查说明:</label>
|
11
|
+
</div>
|
12
|
+
<div class="col-md-12 col-sm-12 col-xs-12" style="width: 90%;margin-left: 5px">
|
13
|
+
<ol class="showInput" style="width: 90%;margin-left: 40px">
|
14
|
+
<li>已对客户燃气设施进行了安全检查</li>
|
15
|
+
<li>已对客户进行了安全知识宣传,并发放宣传资料</li>
|
16
|
+
<li>已对客户的资料进行了登记</li>
|
17
|
+
<li>已对违章及隐患之客户下发隐患整改告知书</li>
|
18
|
+
</ol>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div class="form-group col-sm-12" style="margin-top: 10px">
|
23
|
+
<div class="auto" style="width: 100%;float: left;" >
|
24
|
+
<label class="text-left font">总体送气照片</label>
|
25
|
+
<div class="auto">
|
26
|
+
<div class="panel">
|
27
|
+
<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
|
28
|
+
<div class="row" style="height: 240px;overflow: scroll;top: 1px">
|
29
|
+
<div class="row">
|
30
|
+
<div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 10px;margin-right: 75px" v-for="(index,img) in paper.f_overall_imgs">
|
31
|
+
<img-self :src="img.f_overall_path" alt="总体送气照片" :width="150" :height="200"></img-self>
|
32
|
+
</div>
|
33
|
+
<div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 10px;margin-right: 75px" v-for="(index,img) in fileInfoData">
|
34
|
+
<img-self :src="img.f_downloadURL" alt="总体送气照片" :width="150" :height="200"></img-self>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
<div class="row text-right div-photo">
|
39
|
+
<!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
|
40
|
+
</div>
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
<!--<div class="auto" style="width: 49%;float: left;margin-left: 20px">-->
|
46
|
+
<!--<label class="text-left font">总体安检照片2</label>-->
|
47
|
+
<!--<div class="auto">-->
|
48
|
+
<!--<div class="panel">-->
|
49
|
+
<!--<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">-->
|
50
|
+
<!--<div class="row" style="height: 240px;overflow: scroll;top: 1px">-->
|
51
|
+
<!--<div class="col-sm-4">-->
|
52
|
+
<!--<img-self :src="paper.f_overall2_path" alt="总体安检照片2" width="150" height="200"></img-self>-->
|
53
|
+
<!--</div>-->
|
54
|
+
<!--</div>-->
|
55
|
+
<!--<div class="row text-right div-photo">-->
|
56
|
+
<!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall2_path', '总体安检照片2')">拍照</button>-->
|
57
|
+
<!--</div>-->
|
58
|
+
<!--</div>-->
|
59
|
+
<!--</div>-->
|
60
|
+
<!--</div>-->
|
61
|
+
<!--</div>-->
|
62
|
+
</div>
|
63
|
+
<div class="form-group col-sm-12" style="margin-top: 20px">
|
64
|
+
<label class="text-left font">用户签名</label>
|
65
|
+
<div class="auto">
|
66
|
+
<div class="panel">
|
67
|
+
<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
|
68
|
+
<div class="row" style="height: 240px;overflow: scroll;top: 1px">
|
69
|
+
<div class="col-sm-4">
|
70
|
+
<img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
|
71
|
+
</div>
|
72
|
+
</div>
|
73
|
+
<!--<div class="row text-right div-photo">-->
|
74
|
+
<!--<!–<button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>–>-->
|
75
|
+
<!--</div>-->
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
</div>
|
80
|
+
<div class="form-group col-sm-12" v-if="paper.f_exceed_reason">
|
81
|
+
<label>送气超期原因:</label><br/>
|
82
|
+
<textarea style="width: 100%;" v-model="paper.f_exceed_reason"></textarea>
|
83
|
+
</div>
|
84
|
+
<!--<div class="form-group col-sm-12" style="margin-top: 20px">
|
85
|
+
<input type="checkbox" :readonly="true" :checked="paper.f_blacklist=='是'"/><label class="text-left font" >限制该用户购气</label>
|
86
|
+
<textarea if="paper.f_blacklist=='是'" id="el_ca_tx" v-model.trim="paper.f_blocking_cause" style="border-radius:4px;width: 100%;" >
|
87
|
+
</textarea>
|
88
|
+
</div>-->
|
89
|
+
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
90
|
+
<!--<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
91
|
+
<input type="checkbox" v-model="paper.f_defect_notified" class="showInput"/>安检通知书/隐患整改通知书
|
92
|
+
</div>
|
93
|
+
<div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
|
94
|
+
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
95
|
+
<button type="button" @click="print()">打印隐患整改单</button>
|
96
|
+
</div>
|
97
|
+
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
98
|
+
<label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
|
99
|
+
<div class="auto" >
|
100
|
+
<div class="panel" style="padding: 10px 10px 5px 10px;">
|
101
|
+
<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
|
102
|
+
<div class="row" style="height: 240px;overflow: scroll;top: 1px">
|
103
|
+
<div class="col-sm-4">
|
104
|
+
<img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
<div class="row text-right div-photo">
|
108
|
+
<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
|
109
|
+
<img src="../../assets/remove.png" :class="style__" @click="delfile('f_notified_path', this.paper.f_notified_path)" style="width: 25%;"></img>
|
110
|
+
</div>
|
111
|
+
</div>
|
112
|
+
</div>
|
113
|
+
</div>
|
114
|
+
</div>
|
115
|
+
</div>
|
116
|
+
-->
|
117
|
+
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
118
|
+
<div class="row">
|
119
|
+
<label class="text-left">请对我们的服务做出评价:</label>
|
120
|
+
</div>
|
121
|
+
<div class="col-xs-4 col-sm-4" v-for="item in radios">
|
122
|
+
<input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
|
123
|
+
</div>
|
124
|
+
</div>
|
125
|
+
<!-- <div class="form-group col-md-12 col-sm-12 col-xs-12">-->
|
126
|
+
<!-- <label class="text-left font">反馈录音:</label>-->
|
127
|
+
<!-- <div class="col-md-12 col-sm-12 col-xs-12" v-if="!paper.f_recording1_path">-->
|
128
|
+
<!-- <audio :src="paper.f_recording1_path" v-el:audio controls @click="palyAudio(row)"></audio>-->
|
129
|
+
<!-- </div>-->
|
130
|
+
<!-- </div>-->
|
131
|
+
<div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
|
132
|
+
<button type="button" v-show="$parent.actionEnabled" class="btn save-btn" @click="$parent.savePaper(true)">保存</button>
|
133
|
+
<button id="upload" type="button" v-show="$parent.actionEnabled && !$parent.isBusy" class="btn upload-btn" @click="$parent.uploadPaper" >上传</button>
|
134
|
+
<button v-if="safeCheckToRepair && $parent.actionEnabled" class="btn repair-btn btn-warning" type="button" @click="showToRepair">转维修</button>
|
135
|
+
</div>
|
136
|
+
</div>
|
137
|
+
</form>
|
138
|
+
|
139
|
+
<modal :show.sync="showCheckToRepair" v-ref:modal :backdrop="isback">
|
140
|
+
<div slot="modal-header" class="modal-header">
|
141
|
+
<h4 class="modal-title">
|
142
|
+
安检转维修
|
143
|
+
</h4>
|
144
|
+
</div>
|
145
|
+
<div slot="modal-body" class="modal-body">
|
146
|
+
<div v-if="showrepair">
|
147
|
+
<div class="row">
|
148
|
+
<label class="col-xs-4 col-md-4 control-label text-left">派单方式</label>
|
149
|
+
<div class="col-xs-8 col-md-8">
|
150
|
+
<label v-for="handling1 in handling" >
|
151
|
+
<input type="radio"
|
152
|
+
v-model="meading"
|
153
|
+
value="{{handling1.label}}">
|
154
|
+
{{handling1.label}}
|
155
|
+
</label>
|
156
|
+
</div>
|
157
|
+
</div>
|
158
|
+
<div class="row" v-if="meading == '转站点'">
|
159
|
+
<label class="col-xs-4 col-md-4 control-label font text-left" for="f_reciever">站点</label>
|
160
|
+
<div class="col-xs-8 col-md-8">
|
161
|
+
<right-tree @ready="onReady" islist :Url="Url" :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>
|
162
|
+
</right-tree>
|
163
|
+
</div>
|
164
|
+
</div>
|
165
|
+
|
166
|
+
<div class="row" style="margin-top: 6px" v-if="meading == '转维修员'">
|
167
|
+
<label class="col-xs-4 col-md-4 control-label font text-left">维修人</label>
|
168
|
+
<div class="col-xs-8">
|
169
|
+
<v-select :value="model.serviceacitivity[0].f_reciever" :value-single="true"
|
170
|
+
:options='f_repair_person' placeholder='请选择维修员'
|
171
|
+
close-on-select v-on:change="repiarmancg"></v-select>
|
172
|
+
</div>
|
173
|
+
|
174
|
+
</div>
|
175
|
+
<div class="row" style="margin-top: 6px">
|
176
|
+
<label for="f_repair" class="col-xs-4 col-md-4 control-label font text-left">报修类型</label>
|
177
|
+
<div class="col-xs-8 col-md-8">
|
178
|
+
<v-select :value.sync="model.f_repairtype" :value-single="true"
|
179
|
+
:options='repairstypes' placeholder='报修类型'
|
180
|
+
close-on-select>
|
181
|
+
</v-select>
|
182
|
+
</div>
|
183
|
+
</div>
|
184
|
+
|
185
|
+
<div class="row" style="margin-top: 6px">
|
186
|
+
<label class="control-label font text-left col-md-4 col-xs-4">备注</label>
|
187
|
+
<div class="col-xs-8 col-md-8">
|
188
|
+
<input type="text" v-model="model.f_remarks"/>
|
189
|
+
</div>
|
190
|
+
|
191
|
+
</div>
|
192
|
+
|
193
|
+
</div>
|
194
|
+
<div v-if="!showrepair">
|
195
|
+
暂无隐患设备信息
|
196
|
+
</div>
|
197
|
+
</div>
|
198
|
+
<div slot="modal-footer" class="modal-footer">
|
199
|
+
<button type="button" class="btn btn-default" @click="uploadPaper()">确定</button>
|
200
|
+
<button type="button" class="btn btn-default" @click="undo()">取消</button>
|
201
|
+
</div>
|
202
|
+
</modal>
|
203
|
+
</div>
|
204
|
+
</template>
|
205
|
+
|
206
|
+
<script>
|
207
|
+
import Vue from 'vue'
|
208
|
+
import * as Util from '../Util'
|
209
|
+
import { HttpResetClass } from 'vue-client'
|
210
|
+
import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
|
211
|
+
import Radio from 'vue-client/src/vue-strap/src/radioBtn'
|
212
|
+
import co from 'co'
|
213
|
+
|
214
|
+
let getRepairParam = function * (self){
|
215
|
+
let data = {
|
216
|
+
model: self.model, loginUser: {
|
217
|
+
name: self.role == 'view'?self.$login.f.name:Vue.user.name,
|
218
|
+
ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
|
219
|
+
}, user: self.user, callObj: self.callObj
|
220
|
+
}
|
221
|
+
if(self.meading == '转维修员'){
|
222
|
+
data.toRepair = '一级派单'
|
223
|
+
}
|
224
|
+
data.model.f_attendant = data.loginUser.name
|
225
|
+
//tag
|
226
|
+
//tag
|
227
|
+
let res
|
228
|
+
let errString = self.$parent.errorVerify()
|
229
|
+
if(errString){
|
230
|
+
//tag
|
231
|
+
if (Vue.android)
|
232
|
+
self.undo()
|
233
|
+
this.$showMessage(errString)
|
234
|
+
return
|
235
|
+
} else {
|
236
|
+
if(self.role == 'inspect'){
|
237
|
+
if(self.meading == '转维修员' && (self.model.serviceacitivity[0].f_reciever == '' || self.model.serviceacitivity[0].f_reciever == undefined)){
|
238
|
+
this.$showMessage("请选择维修员!")
|
239
|
+
return
|
240
|
+
}
|
241
|
+
if(self.meading == '转站点' && (self.model.serviceacitivity[0].f_reciever == '' || self.model.serviceacitivity[0].f_reciever == undefined)){
|
242
|
+
this.$showMessage("请选择站点!")
|
243
|
+
return
|
244
|
+
}
|
245
|
+
if(self.model.f_repairtype == ''){
|
246
|
+
this.$showMessage("请选择报修类型!")
|
247
|
+
return
|
248
|
+
}
|
249
|
+
//tag)
|
250
|
+
let checkResult = '正常'
|
251
|
+
let options = [{"data": "已处理"},{"data": "未处理"}]
|
252
|
+
let value = ''
|
253
|
+
let codata = JSON.parse(JSON.stringify(self.paper))
|
254
|
+
for(let device in codata){
|
255
|
+
//tag)
|
256
|
+
let f_device_type
|
257
|
+
if(device.startsWith("device")){
|
258
|
+
for(let item in codata[device]) {
|
259
|
+
if(codata[device].length > 1 ){
|
260
|
+
let j = Number.parseInt(item)+1
|
261
|
+
f_device_type = `${codata[device][item].f_device_type}${j}`
|
262
|
+
}else{
|
263
|
+
f_device_type = codata[device][item].f_device_type
|
264
|
+
}
|
265
|
+
// //tag
|
266
|
+
let details = []
|
267
|
+
for(let i in codata[device][item].f_items){
|
268
|
+
let items = codata[device][item].f_items[i]
|
269
|
+
//tag
|
270
|
+
if(items.f_is_defect == true || items.f_is_defect == 'true'){
|
271
|
+
checkResult = '有隐患'
|
272
|
+
//tag
|
273
|
+
let res = yield self.$resetpost(`${self.Url}/rs/sql/getDeviceItem`,{data:{f_device_id:codata[device][item].f_device_id,f_item_name:items.f_item_name}})
|
274
|
+
//tag)
|
275
|
+
self.$set('detail.f_defect_id', res.data[0].id)
|
276
|
+
self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
|
277
|
+
self.$set('detail.type',items.type)
|
278
|
+
self.$set('detail.options',options)
|
279
|
+
details.push(JSON.parse(JSON.stringify(self.detail)))
|
280
|
+
}
|
281
|
+
if(items.type == 'selector'){
|
282
|
+
items.selected = ''
|
283
|
+
}
|
284
|
+
self.detail = {}
|
285
|
+
}
|
286
|
+
//tag
|
287
|
+
self.$set('defectDevice.f_type',f_device_type)
|
288
|
+
self.$set('defectDevice.details',details)
|
289
|
+
if(self.defectDevice.details.length >0 ){
|
290
|
+
self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
|
291
|
+
}
|
292
|
+
self.defectDevice = {}
|
293
|
+
//tag
|
294
|
+
}
|
295
|
+
}
|
296
|
+
}
|
297
|
+
self.$set('model.f_repairitems.data',self.repairitems)
|
298
|
+
|
299
|
+
|
300
|
+
//tag)
|
301
|
+
res = self.$androidUtil.bzLogic('safecheckToRepair',data)
|
302
|
+
//tag
|
303
|
+
//tag
|
304
|
+
//tag
|
305
|
+
if(res.code == 200){
|
306
|
+
self.$parent.isSafeCheckToRepair = true
|
307
|
+
self.undo()
|
308
|
+
self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
|
309
|
+
//tag
|
310
|
+
self.$resetpost(`${self.Url}/rs/logic/updatePaperRepair`,{data:{f_paper_id:self.paper.f_paper_id,f_SafeToRepair_id:res.data.f_service_id}}).then((ret)=>{
|
311
|
+
//tag
|
312
|
+
if(ret.data.code ==200){
|
313
|
+
//tag
|
314
|
+
self.$parent.$back()
|
315
|
+
}else{
|
316
|
+
self.$showMessage('安检转维修失败!')
|
317
|
+
}
|
318
|
+
}).catch(v=>{
|
319
|
+
//tag)
|
320
|
+
self.$showMessage('安检转维修失败!')
|
321
|
+
})
|
322
|
+
}else{
|
323
|
+
self.$showMessage('安检转维修失败!')
|
324
|
+
}
|
325
|
+
}
|
326
|
+
}
|
327
|
+
}
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
let getRepairs = async function(self,url) {
|
332
|
+
// 获取配置信息
|
333
|
+
try {
|
334
|
+
let val = {source: 'this.getParentByType($department$).getChildByName($维修员$).getUsers()', userid: `${Vue.$login.jwt}`}
|
335
|
+
let repairs =[]
|
336
|
+
let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
|
337
|
+
res.data.forEach((item) => {
|
338
|
+
repairs.push({label: item.name, value: item})
|
339
|
+
})
|
340
|
+
self.f_repair_person = repairs
|
341
|
+
if(self.$parent.role == 'inspect'){
|
342
|
+
let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
|
343
|
+
if(res.code == 200){
|
344
|
+
self.user = res.data[0]
|
345
|
+
self.model.f_area = self.user.f_area
|
346
|
+
}
|
347
|
+
}else{
|
348
|
+
//tag
|
349
|
+
self.$resetpost(`${self.Url}/rs/sql/safeCheckgetUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
|
350
|
+
//tag
|
351
|
+
if(res.data.length != 0){
|
352
|
+
self.user = res.data[0]
|
353
|
+
self.model.f_area = self.user.f_area
|
354
|
+
}
|
355
|
+
})
|
356
|
+
// path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
|
357
|
+
}
|
358
|
+
} catch (error) {
|
359
|
+
//tag
|
360
|
+
}
|
361
|
+
}
|
362
|
+
|
363
|
+
export default {
|
364
|
+
title: '用户反馈',
|
365
|
+
data() {
|
366
|
+
return {
|
367
|
+
fileInfoData:[],
|
368
|
+
paper:this.$parent.data,
|
369
|
+
printContent:[],
|
370
|
+
radios:[
|
371
|
+
{
|
372
|
+
label: '满意',
|
373
|
+
value: 0,
|
374
|
+
isChecked: false,
|
375
|
+
},
|
376
|
+
{
|
377
|
+
label: '基本满意',
|
378
|
+
value:1,
|
379
|
+
isChecked: false,
|
380
|
+
},
|
381
|
+
{
|
382
|
+
label: '不满意',
|
383
|
+
value:2,
|
384
|
+
isChecked: false,
|
385
|
+
},
|
386
|
+
],
|
387
|
+
model: {
|
388
|
+
// 一次派单
|
389
|
+
serviceacitivity: [{
|
390
|
+
f_service_acitivity_type: '派单'
|
391
|
+
}],
|
392
|
+
f_source:'安检',
|
393
|
+
f_service_id: '',
|
394
|
+
f_contact_phone: '',
|
395
|
+
f_meetunit: '',
|
396
|
+
f_phone: '',
|
397
|
+
f_user_name: '',
|
398
|
+
f_address: '',
|
399
|
+
f_repair_date: Util.toStandardTimeString(),
|
400
|
+
f_card_id: '',
|
401
|
+
// f_department: '', 站点选择
|
402
|
+
f_reciever:'',
|
403
|
+
f_remarks: '',
|
404
|
+
f_user_type: '',
|
405
|
+
f_area: '',
|
406
|
+
f_unit_name:'',
|
407
|
+
f_street: '',
|
408
|
+
f_residential_area: '',
|
409
|
+
f_building: '',
|
410
|
+
f_unit: '',
|
411
|
+
f_floor: '',
|
412
|
+
f_room: '',
|
413
|
+
aState: null,
|
414
|
+
f_repairtype: '',
|
415
|
+
f_repairitems:{},
|
416
|
+
},
|
417
|
+
repairitems:[],
|
418
|
+
repairstypes:this.$appdata.getParam('报修类型'),
|
419
|
+
//f_repair_person: this.readRepair(),
|
420
|
+
showrepair: false,
|
421
|
+
safeCheckToRepair:'',
|
422
|
+
showCheckToRepair:false,
|
423
|
+
userid: '',
|
424
|
+
source:
|
425
|
+
'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
|
426
|
+
'tool.getFullTree(dep.where(row.getChildByName($派单员$) != null))',
|
427
|
+
isback:false,
|
428
|
+
defectDevice:{},
|
429
|
+
detail:{},
|
430
|
+
callObj:null,
|
431
|
+
user:{},
|
432
|
+
role:this.$parent.role,
|
433
|
+
handling:[{label:'转站点',value:'转站点'},{label:'转维修员',value:'转维修员'}],
|
434
|
+
meading:'转站点',
|
435
|
+
Url:this.$androidUtil.getProxyUrl()
|
436
|
+
}
|
437
|
+
},
|
438
|
+
props: ['idx','item'],
|
439
|
+
components: {
|
440
|
+
RadioGroup,
|
441
|
+
Radio
|
442
|
+
},
|
443
|
+
methods: {
|
444
|
+
//获取pc上传的送气全景照片
|
445
|
+
getGaspic() {
|
446
|
+
let data = {
|
447
|
+
tablename: 't_files',
|
448
|
+
condition: `f_blobid = '${this.item.id}' order by f_uploaddate desc `
|
449
|
+
}
|
450
|
+
let http = new HttpResetClass()
|
451
|
+
http.load('post', 'rs/sql/singleTable', {data: data}, {
|
452
|
+
resolveMsg: null,
|
453
|
+
rejectMsg: null
|
454
|
+
}).then(getFile=> {
|
455
|
+
for (var i = 0; i < getFile.data.length; i++) {
|
456
|
+
let temp = getFile.data[i].f_downloadpath
|
457
|
+
if (temp) {
|
458
|
+
let URL = temp.substring(temp.lastIndexOf(":\\") + 2)
|
459
|
+
if (temp.startsWith('E:')){
|
460
|
+
URL = `rs/image/file/${getFile.data[i].f_filename}`
|
461
|
+
}
|
462
|
+
console.log(URL)
|
463
|
+
getFile.data[i].f_downloadURL = "http://" + location.host + "/" + URL
|
464
|
+
}
|
465
|
+
}
|
466
|
+
this.fileInfoData = []
|
467
|
+
this.fileInfoData = getFile.data
|
468
|
+
})
|
469
|
+
},
|
470
|
+
check(index) {
|
471
|
+
//tag
|
472
|
+
// 先取消所有选中项
|
473
|
+
for (let item of this.radios){
|
474
|
+
item.isChecked = false;
|
475
|
+
}
|
476
|
+
//再设置当前点击项选中
|
477
|
+
this.paper.f_client_evaluation = this.radios[index].label;
|
478
|
+
// 设置值,以供传递
|
479
|
+
this.radios[index].isChecked = true;
|
480
|
+
//tag;
|
481
|
+
},
|
482
|
+
getSignValue(fileName) {
|
483
|
+
this.f_signname = fileName
|
484
|
+
},
|
485
|
+
cameraCallBack(prop, fileName) {
|
486
|
+
HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
|
487
|
+
HostApp.__callback__ = null
|
488
|
+
HostApp.__this__ = null
|
489
|
+
},
|
490
|
+
takePic(prop, title) {
|
491
|
+
HostApp.__callback__ = this.cameraCallBack
|
492
|
+
HostApp.__this__ = this
|
493
|
+
//tag
|
494
|
+
//tag
|
495
|
+
let fileName
|
496
|
+
if (!this.paper[prop] || this.paper[prop].includes("nopic.png")) {
|
497
|
+
fileName = Util.guid() + '-' + prop + '.jpg'
|
498
|
+
} else {
|
499
|
+
fileName = Util.getFileName(this.paper[prop])
|
500
|
+
}
|
501
|
+
HostApp._open_a_page({
|
502
|
+
type: 'boomerang',
|
503
|
+
page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
|
504
|
+
param: {
|
505
|
+
file: fileName,
|
506
|
+
requestCode: 111,
|
507
|
+
callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
|
508
|
+
watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
|
509
|
+
}
|
510
|
+
})
|
511
|
+
},
|
512
|
+
amrCallBack(fileName) {
|
513
|
+
HostApp.__this__.$set('paper.f_recording1_path', fileName)
|
514
|
+
HostApp.__callback__ = null
|
515
|
+
HostApp.__this__ = null
|
516
|
+
},
|
517
|
+
record() {
|
518
|
+
if (this.$parent.role != 'inspect') {
|
519
|
+
if (this.paper.f_recording1_path != '') {
|
520
|
+
window.location = this.paper.f_recording1_path
|
521
|
+
}
|
522
|
+
} else {
|
523
|
+
HostApp.__callback__ = this.amrCallBack
|
524
|
+
HostApp.__this__ = this
|
525
|
+
let fileName
|
526
|
+
if (!this.paper.f_recording1_path) {
|
527
|
+
fileName = Util.guid() + '.amr'
|
528
|
+
} else {
|
529
|
+
fileName = Util.getFileName(this.paper.f_recording1_path)
|
530
|
+
}
|
531
|
+
HostApp._open_a_page({
|
532
|
+
type: 'boomerang',
|
533
|
+
page: 'com.aofeng.hybrid.android.peripheral.AudioClipActivity',
|
534
|
+
param: {file: fileName, requestCode: 111, callback: 'javascript:HostApp.__callback__("%s");'}
|
535
|
+
})
|
536
|
+
}
|
537
|
+
},
|
538
|
+
// 签名回调
|
539
|
+
signCallback(prop, fileName) {
|
540
|
+
// HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
|
541
|
+
HostApp.__this__.$set('paper.f_sign_path', fileName)
|
542
|
+
HostApp.__callback__ = null
|
543
|
+
HostApp.__this__ = null
|
544
|
+
},
|
545
|
+
// 用户签名
|
546
|
+
sign() {
|
547
|
+
this.delAudioFile('f_sign_path', this.paper.f_sign_path)
|
548
|
+
let prop = 'f_sign_path'
|
549
|
+
let idx = 'aofeng'
|
550
|
+
let fileName
|
551
|
+
if (!this.paper.f_sign_path) {
|
552
|
+
fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
|
553
|
+
} else {
|
554
|
+
fileName = Util.getFileName(this.paper.f_sign_path)
|
555
|
+
}
|
556
|
+
HostApp.__callback__ = this.signCallback
|
557
|
+
HostApp.__this__ = this
|
558
|
+
HostApp.getSignature({
|
559
|
+
file: fileName,
|
560
|
+
requestCode: 111,
|
561
|
+
callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
|
562
|
+
})
|
563
|
+
},
|
564
|
+
delfile(prop, fileName) {
|
565
|
+
if (fileName == Vue.nopic)
|
566
|
+
return
|
567
|
+
else {
|
568
|
+
HostApp.delfile(fileName)
|
569
|
+
this.paper[prop] = Vue.nopic
|
570
|
+
}
|
571
|
+
},
|
572
|
+
delAudioFile(prop, fileName) {
|
573
|
+
if (!fileName)
|
574
|
+
return
|
575
|
+
else {
|
576
|
+
HostApp.delfile(fileName)
|
577
|
+
this.paper[prop] = null
|
578
|
+
}
|
579
|
+
},
|
580
|
+
//获取打印用户信息
|
581
|
+
getUser() {
|
582
|
+
if (this.paper.f_user_name == undefined)
|
583
|
+
this.paper.f_user_name = ''
|
584
|
+
this.printContent.push({type: 3, text: '用户名称:' + this.paper.f_user_name, fontsize: 2, isbold: false, align: 'left'})
|
585
|
+
if (this.paper.f_userinfo_code == undefined)
|
586
|
+
this.paper.f_userinfo_code = ''
|
587
|
+
this.printContent.push({type: 3, text: '用户编号:' + this.paper.f_userinfo_code, fontsize: 2, isbold: false, align: 'left'})
|
588
|
+
if (this.paper.f_address == undefined)
|
589
|
+
this.paper.f_address = ''
|
590
|
+
this.printContent.push({type: 3, text: '地址:' + this.paper.f_address, fontsize: 2, isbold: false, align: 'left'})
|
591
|
+
if (this.paper.f_user_phone == undefined)
|
592
|
+
this.paper.f_user_phone = ''
|
593
|
+
this.printContent.push({type: 3, text: '电话:' + this.paper.f_user_phone, fontsize: 2, isbold: false, align: 'left'})
|
594
|
+
},
|
595
|
+
verify(){
|
596
|
+
let hasError = this.$parent.verifyUser()
|
597
|
+
if(hasError)
|
598
|
+
return hasError
|
599
|
+
hasError = this.$parent.verifyDevices()
|
600
|
+
if(hasError)
|
601
|
+
return hasError
|
602
|
+
},
|
603
|
+
print() {
|
604
|
+
let errString = this.verify()
|
605
|
+
if (errString) {
|
606
|
+
//tag
|
607
|
+
if (Vue.android)
|
608
|
+
this.$showMessage(errString)
|
609
|
+
return
|
610
|
+
}
|
611
|
+
// 文本
|
612
|
+
let templatename = '安检结果单'
|
613
|
+
if(Vue.config.safecheck != undefined) {
|
614
|
+
if (Vue.config.safecheck.ApproveConfig != undefined) {
|
615
|
+
if (Vue.config.safecheck.ApproveConfig.templatename != undefined) {
|
616
|
+
templatename = Vue.config.safecheck.ApproveConfig.templatename
|
617
|
+
}
|
618
|
+
}
|
619
|
+
}
|
620
|
+
let textHead = {type: 3, text: templatename, fontsize: 3, isbold: true, align: 'center'}
|
621
|
+
let feedPageHead = {type: 4, value: 2, unit: 'line'}
|
622
|
+
let feedPageEnd = {type: 4, value: 4, unit: 'line'}
|
623
|
+
this.printContent.push(textHead)
|
624
|
+
this.printContent.push(feedPageHead)
|
625
|
+
this.getUser()
|
626
|
+
this.getDefect()
|
627
|
+
this.getCheck()
|
628
|
+
this.printContent.push(feedPageEnd)
|
629
|
+
let arrstr = JSON.stringify(this.printContent)
|
630
|
+
//tag
|
631
|
+
this.$androidUtil.print(arrstr)
|
632
|
+
this.$set('printContent', [])
|
633
|
+
},
|
634
|
+
//打印安检信息
|
635
|
+
getCheck() {
|
636
|
+
let telephone = '96777'
|
637
|
+
if(Vue.config.safecheck != undefined) {
|
638
|
+
if (Vue.config.safecheck.ApproveConfig != undefined) {
|
639
|
+
if (Vue.config.safecheck.ApproveConfig.checkphone != undefined) {
|
640
|
+
telephone = Vue.config.safecheck.ApproveConfig.checkphone
|
641
|
+
}
|
642
|
+
}
|
643
|
+
}
|
644
|
+
this.printContent.push({type: 3, text: '*******************************', fontsize: 3, isbold: false, align: 'center'})
|
645
|
+
this.printContent.push({type: 3, text: '咨询电话;'+telephone, fontsize: 2, isbold: false, align: 'left'})
|
646
|
+
this.printContent.push({type: 3, text: '安检人:'+Vue.user.name, fontsize: 2, isbold: false, align: 'left'})
|
647
|
+
this.printContent.push({type: 3, text: '安检时间:' + this.getNowFormatDate(), fontsize: 2, isbold: false, align: 'left'})
|
648
|
+
this.printContent.push({type: 3, text: '用户签字:', fontsize: 2, isbold: false, align: 'left'})
|
649
|
+
this.printContent.push({type: 4, value: 4, unit: 'line'})
|
650
|
+
},
|
651
|
+
|
652
|
+
getDefect() {
|
653
|
+
let showmore = false
|
654
|
+
if(Vue.config.safecheck != undefined) {
|
655
|
+
if (Vue.config.safecheck.ApproveConfig != undefined) {
|
656
|
+
if (Vue.config.safecheck.ApproveConfig.showmore != undefined) {
|
657
|
+
showmore = Vue.config.safecheck.ApproveConfig.showmore
|
658
|
+
}
|
659
|
+
}
|
660
|
+
}
|
661
|
+
|
662
|
+
let backData = this.$parent.getAllDefect()
|
663
|
+
// 对隐患信息进行遍历
|
664
|
+
let res = JSON.parse(backData.f_defect_content)
|
665
|
+
this.printContent.push({
|
666
|
+
type: 3,
|
667
|
+
text: '安检结果:' + res.result,
|
668
|
+
fontsize: 2,
|
669
|
+
isbold: false,
|
670
|
+
align: 'left'
|
671
|
+
})
|
672
|
+
this.printContent.push({type: 3, text: '*******************************', fontsize: 3, isbold: false, align: 'center'})
|
673
|
+
|
674
|
+
|
675
|
+
if(showmore) {
|
676
|
+
//全部打印
|
677
|
+
for (let dev in this.$parent.config) {
|
678
|
+
for (let device in backData) {
|
679
|
+
if (device.startsWith("device")) {
|
680
|
+
for (let item in backData[device]) {
|
681
|
+
//遍历结果
|
682
|
+
if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
|
683
|
+
let error = true
|
684
|
+
for (let i in backData[device][item].f_items) {
|
685
|
+
if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
|
686
|
+
error = false
|
687
|
+
}
|
688
|
+
}
|
689
|
+
if (error) {
|
690
|
+
this.printContent.push({
|
691
|
+
type: 3,
|
692
|
+
text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
|
693
|
+
fontsize: 2,
|
694
|
+
isbold: false,
|
695
|
+
align: 'left'
|
696
|
+
})
|
697
|
+
} else {
|
698
|
+
this.printContent.push({
|
699
|
+
type: 3,
|
700
|
+
text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
|
701
|
+
fontsize: 2,
|
702
|
+
isbold: true,
|
703
|
+
align: 'left'
|
704
|
+
})
|
705
|
+
}
|
706
|
+
|
707
|
+
for (let i in backData[device][item].f_items) {
|
708
|
+
if (backData[device][item].f_items[i].f_item_value != '' && backData[device][item].f_items[i].f_item_value != null) {
|
709
|
+
this.printContent.push({
|
710
|
+
type: 3,
|
711
|
+
text: backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
|
712
|
+
fontsize: 2,
|
713
|
+
isbold: false,
|
714
|
+
align: 'left'
|
715
|
+
})
|
716
|
+
}
|
717
|
+
}
|
718
|
+
this.printContent.push({type: 4, value: 2, unit: 'line'})
|
719
|
+
}
|
720
|
+
}
|
721
|
+
}
|
722
|
+
}
|
723
|
+
}
|
724
|
+
|
725
|
+
for (let dev in this.$parent.config) {
|
726
|
+
for (let device in backData) {
|
727
|
+
if (device.startsWith("device")) {
|
728
|
+
for (let item in backData[device]) {
|
729
|
+
//遍历结果
|
730
|
+
if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
|
731
|
+
let error = true
|
732
|
+
for (let i in backData[device][item].f_items) {
|
733
|
+
if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
|
734
|
+
error = false
|
735
|
+
}
|
736
|
+
}
|
737
|
+
if (!error) {
|
738
|
+
this.printContent.push({
|
739
|
+
type: 3,
|
740
|
+
text: '隐患:',
|
741
|
+
fontsize: 2,
|
742
|
+
isbold: true,
|
743
|
+
align: 'left'
|
744
|
+
})
|
745
|
+
}
|
746
|
+
}
|
747
|
+
}
|
748
|
+
}
|
749
|
+
}
|
750
|
+
for (let device in backData) {
|
751
|
+
if (device.startsWith("device")) {
|
752
|
+
for (let item in backData[device]) {
|
753
|
+
if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
|
754
|
+
for (let i in backData[device][item].f_items) {
|
755
|
+
if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
|
756
|
+
this.printContent.push({
|
757
|
+
type: 3,
|
758
|
+
text: backData[device][item].f_items[i].f_item_name + ' ' + backData[device][item].f_items[i].f_item_value,
|
759
|
+
fontsize: 2,
|
760
|
+
isbold: true,
|
761
|
+
align: 'left'
|
762
|
+
})
|
763
|
+
}
|
764
|
+
}
|
765
|
+
}
|
766
|
+
}
|
767
|
+
}
|
768
|
+
}
|
769
|
+
|
770
|
+
}
|
771
|
+
}else {
|
772
|
+
for (let dev in this.$parent.config) {
|
773
|
+
for (let device in backData) {
|
774
|
+
if (device.startsWith("device")) {
|
775
|
+
for (let item in backData[device]) {
|
776
|
+
//遍历结果
|
777
|
+
if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
|
778
|
+
let error = true
|
779
|
+
for (let i in backData[device][item].f_items) {
|
780
|
+
if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
|
781
|
+
error = false
|
782
|
+
}
|
783
|
+
}
|
784
|
+
if (error) {
|
785
|
+
this.printContent.push({
|
786
|
+
type: 3,
|
787
|
+
text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
|
788
|
+
fontsize: 2,
|
789
|
+
isbold: false,
|
790
|
+
align: 'left'
|
791
|
+
})
|
792
|
+
} else {
|
793
|
+
this.printContent.push({
|
794
|
+
type: 3,
|
795
|
+
text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
|
796
|
+
fontsize: 2,
|
797
|
+
isbold: false,
|
798
|
+
align: 'left'
|
799
|
+
})
|
800
|
+
}
|
801
|
+
|
802
|
+
for (let i in backData[device][item].f_items) {
|
803
|
+
if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
|
804
|
+
this.printContent.push({
|
805
|
+
type: 3,
|
806
|
+
text: '隐患:' + backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
|
807
|
+
fontsize: 2,
|
808
|
+
isbold: false,
|
809
|
+
align: 'left'
|
810
|
+
})
|
811
|
+
}
|
812
|
+
}
|
813
|
+
this.printContent.push({type: 4, value: 2, unit: 'line'})
|
814
|
+
}
|
815
|
+
}
|
816
|
+
}
|
817
|
+
}
|
818
|
+
}
|
819
|
+
}
|
820
|
+
},
|
821
|
+
//获取当前时间
|
822
|
+
getNowFormatDate(){
|
823
|
+
var date = new Date();
|
824
|
+
var seperator1 = "-";
|
825
|
+
var seperator2 = ":";
|
826
|
+
var month = date.getMonth() + 1;
|
827
|
+
var strDate = date.getDate();
|
828
|
+
if (month >= 1 && month <= 9) {
|
829
|
+
month = "0" + month;
|
830
|
+
}
|
831
|
+
if (strDate >= 0 && strDate <= 9) {
|
832
|
+
strDate = "0" + strDate;
|
833
|
+
}
|
834
|
+
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
|
835
|
+
+ " " + date.getHours() + seperator2 + date.getMinutes()
|
836
|
+
+ seperator2 + date.getSeconds();
|
837
|
+
return currentdate;
|
838
|
+
},
|
839
|
+
readRepair () {
|
840
|
+
let url = this.$androidUtil.getProxyUrl()
|
841
|
+
let gen = getRepairs(this,url)
|
842
|
+
return co(gen)
|
843
|
+
},
|
844
|
+
showToRepair(){
|
845
|
+
let res = this.hasDefect()
|
846
|
+
//tag
|
847
|
+
//tag
|
848
|
+
if(res == '正常'){
|
849
|
+
this.showrepair = false
|
850
|
+
}else{
|
851
|
+
this.showrepair = true
|
852
|
+
this.assignObj()
|
853
|
+
}
|
854
|
+
this.showCheckToRepair = !this.showCheckToRepair
|
855
|
+
},
|
856
|
+
// 选中部门
|
857
|
+
reres(val){
|
858
|
+
if(val.res == undefined){
|
859
|
+
return
|
860
|
+
}
|
861
|
+
this.model.serviceacitivity[0].f_meetunit = val.res
|
862
|
+
this.model.f_meetunit = val.res
|
863
|
+
this.model.f_orgstr = val.resids
|
864
|
+
var arr = val.res.split('.')
|
865
|
+
this.model.f_outlets = arr[arr.length - 1]
|
866
|
+
this.model.serviceacitivity[0].f_reciever = val.resids
|
867
|
+
},
|
868
|
+
assignObj(){
|
869
|
+
this.model.f_contact_phone = this.paper.f_user_phone
|
870
|
+
this.model.f_user_name = this.paper.f_user_name
|
871
|
+
this.model.f_address = this.paper.f_address
|
872
|
+
this.model.f_user_type = this.paper.f_check_type
|
873
|
+
this.model.f_street = this.paper.f_street
|
874
|
+
this.model.f_residential_area = this.paper.f_residential_area
|
875
|
+
this.model.f_building = this.paper.f_building
|
876
|
+
this.model.f_unit = this.paper.f_unit
|
877
|
+
this.model.f_floor = this.paper.f_floor
|
878
|
+
this.model.f_room = this.paper.f_room
|
879
|
+
this.model.f_floor = this.paper.f_floor
|
880
|
+
this.model.f_userinfo_id = this.paper.f_userinfoid
|
881
|
+
this.model.f_userinfo_code = this.paper.f_userinfo_code
|
882
|
+
},
|
883
|
+
hasDefect(){
|
884
|
+
let checkResult = '正常'
|
885
|
+
let codata = JSON.parse(JSON.stringify(this.paper))
|
886
|
+
for(let device in this.paper){
|
887
|
+
if(device.startsWith("device")){
|
888
|
+
for(let item in this.paper[device]) {
|
889
|
+
for(let i in this.paper[device][item].f_items){
|
890
|
+
let items = this.paper[device][item].f_items[i]
|
891
|
+
//tag
|
892
|
+
if(items.f_is_defect == true || items.f_is_defect == 'true'){
|
893
|
+
checkResult = '有隐患'
|
894
|
+
}
|
895
|
+
}
|
896
|
+
}
|
897
|
+
}
|
898
|
+
}
|
899
|
+
return checkResult
|
900
|
+
},
|
901
|
+
uploadPaper() {
|
902
|
+
if(this.showrepair){
|
903
|
+
this.$parent.isToRepair = true
|
904
|
+
this.$parent.savePaper(false).then((res) => {
|
905
|
+
//tag
|
906
|
+
if(res != true){
|
907
|
+
//tag
|
908
|
+
return
|
909
|
+
}else{
|
910
|
+
//TODO 上传成功 转维修失败
|
911
|
+
this.todo()
|
912
|
+
}
|
913
|
+
})
|
914
|
+
}else{
|
915
|
+
this.undo()
|
916
|
+
}
|
917
|
+
|
918
|
+
},
|
919
|
+
//确认安检转维修
|
920
|
+
todo(){
|
921
|
+
let gen = getRepairParam(this)
|
922
|
+
co(gen)
|
923
|
+
},
|
924
|
+
undo(){
|
925
|
+
this.showCheckToRepair = !this.showCheckToRepair
|
926
|
+
this.model.serviceacitivity[0].f_reciever = ''
|
927
|
+
this.model.serviceacitivity[0].f_meetunit = ''
|
928
|
+
this.model.f_repairtype = ''
|
929
|
+
this.meading = '转站点'
|
930
|
+
},
|
931
|
+
repiarmancg(val){
|
932
|
+
if(val){
|
933
|
+
//tag
|
934
|
+
this.model.serviceacitivity[0].f_reciever = val.name
|
935
|
+
let http1 = new HttpResetClass()
|
936
|
+
http1.load('POST',`${this.Url}/rs/sql/tel_singleTable_OrderBy`, {data: {
|
937
|
+
items: 'f_user_telephone',
|
938
|
+
tablename: 't_user',
|
939
|
+
condition: `name = '${val}'`,
|
940
|
+
orderitem: 'id'
|
941
|
+
}}, {resolveMsg: null, rejectMsg: null}).then((ress) => {
|
942
|
+
this.model.f_repairman_phone = ress.data[0].f_user_telephone
|
943
|
+
})
|
944
|
+
}
|
945
|
+
},
|
946
|
+
},
|
947
|
+
ready() {
|
948
|
+
for (let item of this.radios){
|
949
|
+
if(this.paper.f_client_evaluation == item.label){
|
950
|
+
item.isChecked = true;
|
951
|
+
}
|
952
|
+
}
|
953
|
+
//tag
|
954
|
+
//tag
|
955
|
+
//tag
|
956
|
+
//tag
|
957
|
+
if (!this.paper.f_notified_path)
|
958
|
+
this.$set('paper.f_notified_path', Vue.nopic)
|
959
|
+
if (!this.paper.f_sign_path)
|
960
|
+
this.$set('paper.f_sign_path', Vue.nopic)
|
961
|
+
if (!this.paper.f_overall_imgs){
|
962
|
+
let imgs = []
|
963
|
+
// imgs.push({f_overall_path:Vue.nopic})
|
964
|
+
this.$set('paper.f_overall_imgs', imgs)
|
965
|
+
//tag
|
966
|
+
}
|
967
|
+
if (!this.paper.f_overall2_path)
|
968
|
+
this.$set('paper.f_overall2_path', Vue.nopic)
|
969
|
+
|
970
|
+
this.userid = this.role == 'view'? this.$login.f.id:Vue.user.id
|
971
|
+
if(Vue.config.safecheck != undefined){
|
972
|
+
if(Vue.config.safecheck.ApproveConfig != undefined){
|
973
|
+
if(Vue.config.safecheck.ApproveConfig.safeCheckToRepair != undefined) {
|
974
|
+
this.safeCheckToRepair = Vue.config.safecheck.ApproveConfig.safeCheckToRepair
|
975
|
+
}
|
976
|
+
}
|
977
|
+
}
|
978
|
+
//tag
|
979
|
+
//tag
|
980
|
+
this.getGaspic()
|
981
|
+
},
|
982
|
+
watch:{
|
983
|
+
'$parent.isUpload'(val){
|
984
|
+
//tag
|
985
|
+
}
|
986
|
+
}
|
987
|
+
}
|
988
|
+
</script>
|
989
|
+
<style>
|
990
|
+
.text-left{
|
991
|
+
text-align:left;
|
992
|
+
}
|
993
|
+
.font{
|
994
|
+
font: 15px PingFang-SC-Medium;
|
995
|
+
color: #333333;
|
996
|
+
}
|
997
|
+
.showInput{
|
998
|
+
font: 14px PingFang-SC-Medium;
|
999
|
+
color: #666666;
|
1000
|
+
}
|
1001
|
+
.info{
|
1002
|
+
margin-top: 15px;
|
1003
|
+
border-radius: 5px;
|
1004
|
+
background-color: #f3faff;
|
1005
|
+
}
|
1006
|
+
.btn-photo{
|
1007
|
+
border: 0;
|
1008
|
+
border-radius: 7px;
|
1009
|
+
background-color: #7dc1f4;
|
1010
|
+
font: 15px PingFang-SC-Bold;
|
1011
|
+
height: 20%;
|
1012
|
+
}
|
1013
|
+
.div-photo{
|
1014
|
+
width: auto;
|
1015
|
+
height: auto;
|
1016
|
+
/* margin-top: 10px; */
|
1017
|
+
position: absolute;
|
1018
|
+
bottom: 10px;
|
1019
|
+
right: 10px;
|
1020
|
+
}
|
1021
|
+
.btn-voice{
|
1022
|
+
border-radius: 7px;
|
1023
|
+
border: 1px solid #dedede;
|
1024
|
+
background-color: #f5fbff;
|
1025
|
+
font: 15px PingFang-SC-Bold;
|
1026
|
+
color: #499edf;
|
1027
|
+
}
|
1028
|
+
.save-btn{
|
1029
|
+
width: 25%;
|
1030
|
+
background-color:#499edf;
|
1031
|
+
border-radius: 6px;
|
1032
|
+
color: #FFFFFF;
|
1033
|
+
font: 15px PingFang-SC-Bold;
|
1034
|
+
}
|
1035
|
+
.upload-btn{
|
1036
|
+
width: 25%;
|
1037
|
+
background-color:#ffffff;
|
1038
|
+
border: 1px solid #499edf;
|
1039
|
+
border-radius: 6px;
|
1040
|
+
color: #499edf;
|
1041
|
+
font: 15px PingFang-SC-Bold;
|
1042
|
+
}
|
1043
|
+
.repair-btn{
|
1044
|
+
width: 25%;
|
1045
|
+
border: 1px solid #499edf;
|
1046
|
+
border-radius: 6px;
|
1047
|
+
font: 15px PingFang-SC-Bold;
|
1048
|
+
}
|
1049
|
+
</style>
|