safecheck-client 3.0.34-83 → 3.0.34-86

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,1651 +1,1665 @@
1
- <template>
2
- <form novalidate class="form-horizontal" style="width: 95%;margin: auto">
3
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
4
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
5
- <label class="control-label font text-left col-md-4 col-xs-4">备注</label>
6
- <div class="col-md-12 col-sm-12 col-xs-12">
7
- <textarea v-model="paper.f_repair_approved_note" class="form-control"></textarea>
8
- </div>
9
- </div>
10
- </div>
11
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
12
- <div class="text-center">
13
- <label class="font">总体安检照片请依次拍摄:</label>
14
- </div>
15
- <div class="col-md-12 col-sm-12 col-xs-12">
16
- <ol class="showIi">
17
- <li>1.燃气设施全景</li>
18
- <li>2.燃气表照片</li>
19
- <li>3.灶具照片</li>
20
- <li>4.其他照片</li>
21
- </ol>
22
- </div>
23
- </div>
24
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
25
- <label class="text-left font">总体安检照片</label>
26
-
27
- <div class="auto" :class="style__">
28
- <div class="panel" style="padding: 10px 10px 5px 10px;">
29
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
30
- <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
31
- <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in paper.f_overall_imgs">
32
- <img-self :src="img.f_overall_path" alt="总体安检照片" :width="140" :height="170"></img-self>
33
- <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">
34
- </div>
35
- </div>
36
- <div class="row text-right div-photo">
37
- <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '总体安检照片')">拍照</button>
38
- <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
39
- <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../../assets/remove.png" :class="style__" @click="delfile('f_overall_path', img.f_overall_path)" style="width: 25%;"></img>-->
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- </div>
45
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
46
- <label class="text-left font">总体隐患照片</label>
47
- <div class="auto" :class="style__">
48
- <div class="panel" style="padding: 10px 10px 5px 10px;">
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-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in defectImgs">
52
- <img-self :src="img" alt="总体隐患照片" :width="140" :height="170"></img-self>
53
- <!-- <img src="../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">-->
54
- </div>
55
- </div>
56
- </div>
57
- </div>
58
- </div>
59
- </div>
60
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
61
- <div class="text-center">
62
- <label class="font">隐患汇总:</label>
63
- </div>
64
- <div class="col-md-12 col-sm-12 col-xs-12">
65
- <ol class="showIi">
66
- <li v-for="item in defectReason">{{ item.deviceitem }}</li>
67
- </ol>
68
- </div>
69
- </div>
70
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
71
- <div class="text-center">
72
- <label class="font">整改建议汇总:</label>
73
- </div>
74
- <div class="col-md-12 col-sm-12 col-xs-12">
75
- <ol class="showIi">
76
- <li v-for="item in defectToolTip">{{ item }}</li>
77
- </ol>
78
- </div>
79
- </div>
80
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
81
- <input type="checkbox" v-model="paper.f_read_instructions"/><label class="text-left font">我已阅读须知内容</label>
82
-
83
- </div>
84
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
85
- <label class="text-left font">用户签名</label>
86
- <div class="auto">
87
- <div class="panel">
88
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
89
- <div class="row" style="height: 240px;overflow: scroll;top: 1px">
90
- <div class="col-sm-4">
91
- <img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
92
- </div>
93
- </div>
94
- <div class="row text-right div-photo">
95
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
96
- </div>
97
- </div>
98
- </div>
99
- </div>
100
- </div>
101
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__" v-if="paper.f_singed_notified">
102
- <label class="text-left font">确认签署供气合同签名</label>
103
- <div class="auto">
104
- <div class="panel">
105
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
106
- <div class="row" style="height: 240px;overflow: scroll;top: 1px">
107
- <div class="col-sm-4">
108
- <img :class="style__" :src="paper.f_sign_contract" :width="200" :height="150" />
109
- </div>
110
- </div>
111
- <div class="row text-right div-photo">
112
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign1()">签名</button>
113
- </div>
114
- </div>
115
- </div>
116
- </div>
117
- </div>
118
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :style="timeSet(this.isneedDate)?'':'display:none'">
119
- <label>请输入超期原因:</label><br/>
120
- <textarea style="width: 100%;" v-model="paper.f_exceed_reason"></textarea>
121
- </div>
122
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-show="showbacklist=='是'">
123
- <div class="col-xs-6 col-sm-6">
124
- <input type="checkbox" v-model="backlistisselect" :readonly="enabled"/><label class="text-left font" >限制该用户购气</label>
125
- </div>
126
- <div class="col-xs-6 col-sm-6">
127
- <input type="checkbox" v-model="deletebacklistisselect" :readonly="deleteenabled"/><label class="text-left font" >取消该用户购气</label>
128
- </div>
129
- <div class="col-xs-6 col-sm-6" v-if="tyState">
130
- <input type="checkbox" v-model="backlistisselectTY"/><label class="text-left font" >对用户进行停用</label>
131
- </div>
132
- </div>
133
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-if="Vue.$appdata.getParam('安检天然气安全使用须知检查')=='是'">
134
- <div class="col-xs-12 col-sm-12">
135
- <input type="checkbox" v-model="paper.f_gas_guidelines" /><label class="text-left font" >天然气安全使用须知</label>
136
- </div>
137
- <div class="col-xs-12 col-sm-12">
138
- <input type="checkbox" v-model="paper.f_safety_warning" /><label class="text-left font" >天然气室内使用安全警示</label>
139
- </div>
140
- <div class="col-xs-12 col-sm-12">
141
- <input type="checkbox" v-model="paper.f_gas_manual" /><label class="text-left font" >安全用气手册</label>
142
- </div>
143
- </div>
144
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
145
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
146
- <input type="checkbox" v-model="paper.f_defect_notified" class="showIi" />安检通知书/隐患整改通知书
147
- </div>
148
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
149
- <input type="checkbox" v-model="paper.f_singed_notified" class="showIi" />签署供气合同
150
- </div>
151
- <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
152
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
153
- <button type="button" @click="print()">打印隐患整改单</button>
154
- </div>
155
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
156
- <label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
157
- <div class="auto" >
158
- <div class="panel" style="padding: 10px 10px 5px 10px;">
159
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
160
- <div class="row" style="height: 240px;overflow: scroll;top: 1px">
161
- <div class="col-sm-4">
162
- <img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
163
- </div>
164
- </div>
165
- <div class="row text-right div-photo">
166
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
167
- &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_notified_path', this.paper.f_notified_path)" style="width: 25%;"></img>
168
- </div>
169
- </div>
170
- </div>
171
- </div>
172
- </div>
173
-
174
- </div>
175
- <div class="form-group col-sm-12 col-xs-12 col-md-12 ">
176
- <label class="text-left font">副操</label>
177
- <v-select
178
- :value.sync="paper.f_deputy_director"
179
- :value-single="true"
180
- :options='repairers'
181
- placeholder='请选择安检员'
182
- close-on-select></v-select>
183
- </div>
184
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
185
- <div class="row">
186
- <label class="text-left">请对我们的服务做出评价:</label>
187
- </div>
188
- <div class="col-xs-4 col-sm-4" v-for="item in radios">
189
- <input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
190
- </div>
191
-
192
- <!--<div class="col-sm-4">-->
193
- <!--<radio-group :value.sync="paper.f_client_evaluation" type="success" buttons="false">-->
194
- <!--<radio value="满意">满意</radio>-->
195
- <!--<radio value="基本满意">基本满意</radio>-->
196
- <!--<radio value="不满意">不满意</radio>-->
197
- <!--</radio-group>-->
198
- <!--</div>-->
199
- </div>
200
-
201
- <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="isRecodr=='false'">
202
- <label class="text-left font">反馈录音:</label>
203
- <div class="col-md-12 col-sm-12 col-xs-12">
204
- <button type="button" name="button" class="btn btn-primary btn-voice" @click="record">
205
- <img src="../../../assets/录音.png" style="width: 14%;">
206
- <span v-if="!paper.f_recording1_path">开始录音</span>
207
- <span v-if="paper.f_recording1_path">已录音</span>
208
- </button>
209
- &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" style="width: 15px;" :class="style__" @click="delAudioFile('f_recording1_path', paper.f_recording1_path)"></img>
210
- </div>
211
- </div>
212
- <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_singed_notified">
213
- <div class="col-md-12 col-sm-12 col-xs-12">
214
- <button type="button" name="button" class="btn btn-primary btn-voice" @click="SignedContract">
215
- <span >签订供气合同</span>
216
- </button>
217
- </div>
218
- </div>
219
-
220
- <div v-if="false">
221
- <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
222
- <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' &&(paper.f_complete != '已完成' || paper.back_f_entry_status != '入户') " class="btn save-btn" @click="$parent.$parent.save('temp')">临时保存</button>
223
- <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn save-btn " @click="$parent.$parent.save('finish')">完成安检</button>
224
- </div>
225
- <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
226
- <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" id="upload" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn upload-btn " @click="$parent.$parent.uploadCheckPaper" >上传</button>
227
- <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" v-if="(safeCheckToRepair == true || safeCheckToRepair == 'true') && $parent.$parent.actionEnabled" class="btn repair-btn btn-warning " type="button" @click="showToRepair">转维修</button> </div>
228
- </div>
229
-
230
- </div>
231
- </form>
232
- <!-- <modal :show.sync="showCheckToRepair" v-ref:modal :backdrop="isback">-->
233
- <!-- <div slot="modal-header" class="modal-header">-->
234
- <!-- <h4 class="modal-title">-->
235
- <!-- 安检转维修-->
236
- <!-- </h4>-->
237
- <!-- </div>-->
238
- <!-- <div slot="modal-body" class="modal-body">-->
239
- <!-- <div v-if="showrepair">-->
240
- <!-- <div class="row">-->
241
- <!-- <label class="col-xs-4 col-md-4 control-label text-left">派单方式</label>-->
242
- <!-- <div class="col-xs-8 col-md-8">-->
243
- <!-- <label v-for="handling1 in handling" >-->
244
- <!-- <input type="radio"-->
245
- <!-- v-model="meading"-->
246
- <!-- value="{{handling1.label}}">-->
247
- <!-- {{handling1.label}}-->
248
- <!-- </label>-->
249
- <!-- </div>-->
250
- <!-- </div>-->
251
- <!-- <div class="row" v-if="meading == '转站点'">-->
252
- <!-- <label class="col-xs-4 col-md-4 control-label font text-left" for="f_reciever">站点</label>-->
253
- <!-- &lt;!&ndash;<input type="text" v-show="false" v-model="serviceacitivity.f_reciever"&ndash;&gt;-->
254
- <!-- &lt;!&ndash;v-validate:f_reciever='{ required: true }'>&ndash;&gt;-->
255
- <!-- <div class="col-xs-8 col-md-8">-->
256
- <!-- <right-tree @ready="onReady" islist :Url="Url" :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>-->
257
- <!-- </right-tree>-->
258
- <!-- </div>-->
259
- <!-- </div>-->
260
-
261
- <!-- <div class="row" style="margin-top: 6px" v-if="meading == '转维修员'">-->
262
- <!-- <label class="col-xs-4 col-md-4 control-label font text-left">维修人</label>-->
263
- <!-- <div class="col-xs-8">-->
264
- <!-- <v-select :value="$parent.$parent.model.serviceacitivity[0].f_reciever" :value-single="true"-->
265
- <!-- :options='f_repair_person' placeholder='请选择维修员'-->
266
- <!-- close-on-select v-on:change="repiarmancg"></v-select>-->
267
- <!-- </div>-->
268
-
269
- <!-- </div>-->
270
- <!-- <div class="row" style="margin-top: 6px">-->
271
- <!-- <label for="f_repair" class="col-xs-4 col-md-4 control-label font text-left">报修类型</label>-->
272
- <!-- <div class="col-xs-8 col-md-8">-->
273
- <!-- <v-select :value.sync="$parent.$parent.model.f_repairtype" :value-single="true"-->
274
- <!-- :options='repairstypes' placeholder='报修类型'-->
275
- <!-- close-on-select>-->
276
- <!-- </v-select>-->
277
- <!-- </div>-->
278
- <!-- </div>-->
279
-
280
- <!-- <div class="row" style="margin-top: 6px">-->
281
- <!-- <label class="control-label font text-left col-md-4 col-xs-4">备注</label>-->
282
- <!-- <div class="col-xs-8 col-md-8">-->
283
- <!-- <input type="text" v-model="$parent.$parent.model.f_remarks"/>-->
284
- <!-- </div>-->
285
-
286
- <!-- </div>-->
287
-
288
- <!-- </div>-->
289
- <!-- <div v-if="!showrepair">-->
290
- <!-- 暂无隐患设备信息-->
291
- <!-- </div>-->
292
- <!-- </div>-->
293
- <!-- <div slot="modal-footer" class="modal-footer">-->
294
- <!-- <button type="button" class="btn btn-default" @click="uploadPaper()">确定</button>-->
295
- <!-- <button type="button" class="btn btn-default" @click="undo()">取消</button>-->
296
- <!-- </div>-->
297
- <!-- </modal>-->
298
- <!--拉黑框-->
299
- <modal :show.sync="showmodel" v-ref:modal>
300
- <div slot="modal-header" class="modal-header">
301
- <h4 class="modal-title">
302
- 限制用户购气
303
- </h4>
304
- </div>
305
- <div slot="modal-body" class="modal-body">
306
- <!-- <div class="row" style="margin-top: 6px">-->
307
- <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
308
- <!-- </div>-->
309
- <div class="row" style="margin-top: 6px">
310
- <textarea id="el_ca_tx" v-model.trim="cause" style="border-radius:4px;width: 100%;" placeholder="请输入限制用户购气原因" >
311
- </textarea>
312
- </div>
313
- </div>
314
- <div slot="modal-footer" class="modal-footer">
315
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="backlist()">确认</button>
316
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel()">取消</button>
317
- </div>
318
- </modal>
319
-
320
- <modal :show.sync="showmodelthree" v-ref:modal>
321
- <div slot="modal-header" class="modal-header">
322
- <h4 class="modal-title">
323
- 取消限制用户购气
324
- </h4>
325
- </div>
326
- <div slot="modal-body" class="modal-body">
327
- <!-- <div class="row" style="margin-top: 6px">-->
328
- <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
329
- <!-- </div>-->
330
- <div class="row" style="margin-top: 6px">
331
- <textarea id="el_ca_txt" v-model.trim="deletecause" style="border-radius:4px;width: 100%;" placeholder="请输入取消限制用户购气原因" >
332
- </textarea>
333
- </div>
334
- </div>
335
- <div slot="modal-footer" class="modal-footer">
336
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletebacklist()">确认</button>
337
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletecancel()">取消</button>
338
- </div>
339
- </modal>
340
-
341
- <!--停用框-->
342
- <modal :show.sync="showTYModel" v-ref:modal>
343
- <div slot="modal-header" class="modal-header">
344
- <h4 class="modal-title">
345
- 对用户停用
346
- </h4>
347
- </div>
348
- <div slot="modal-body" class="modal-body">
349
- <div class="row" style="margin-top: 6px">
350
- <textarea v-model.trim="tyCause" style="border-radius:4px;width: 100%;" placeholder="请输入停用原因">
351
- </textarea>
352
- </div>
353
- </div>
354
- <div slot="modal-footer" class="modal-footer">
355
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="backlistTY()">确认</button>
356
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="tyCancel()">取消</button>
357
- </div>
358
- </modal>
359
- </template>
360
-
361
- <script>
362
- import Vue from 'vue'
363
- import * as Util from '../../Util'
364
- import { HttpResetClass } from 'vue-client'
365
- import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
366
- import Radio from 'vue-client/src/vue-strap/src/radioBtn'
367
- import co from 'co'
368
-
369
- // let getRepairParam = function * (self){
370
- // let data = {
371
- // $parent.$parent.model: self.$parent.$parent.model, loginUser: {
372
- // name: self.role == 'view'?self.$login.f.name:Vue.user.name,
373
- // ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
374
- // }, user: self.user, callObj: self.callObj
375
- // }
376
- // if(self.$parent.$parent.meading == '转维修员'){
377
- // data.toRepair = '一级派单'
378
- // }
379
- // data.$parent.$parent.model.f_attendant = data.loginUser.name
380
- // ////tag
381
- // ////tag
382
- // let res
383
- // let errString = self.$parent. $parent.errorVerify()
384
- // if(errString){
385
- // ////tag
386
- // if (Vue.android)
387
- // self.undo()
388
- // this.$showMessage(errString)
389
- // return
390
- // } else {
391
- // if(self.role == 'inspect'){
392
- // if(self.$parent.$parent.meading == '转维修员' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
393
- // this.$showMessage("请选择维修员!")
394
- // return
395
- // }
396
- // if(self.$parent.$parent.meading == '转站点' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
397
- // HostApp.alert()
398
- // this.$showMessage("请选择站点!")
399
- // return
400
- // }
401
- // if(self.$parent.$parent.model.f_repairtype == ''){
402
- // this.$showMessage("请选择报修类型!")
403
- // return
404
- // }
405
- // ////tag)
406
- // let checkResult = '正常'
407
- // let options = [{"data": "已处理"},{"data": "未处理"}]
408
- // let value = ''
409
- // let codata = JSON.parse(JSON.stringify(self.paper))
410
- // for(let device in codata){
411
- // ////tag)
412
- // let f_device_type
413
- // if(device.startsWith("device")){
414
- // for(let item in codata[device]) {
415
- // if(codata[device].length > 1 ){
416
- // let j = Number.parseInt(item)+1
417
- // f_device_type = `${codata[device][item].f_device_type}${j}`
418
- // }else{
419
- // f_device_type = codata[device][item].f_device_type
420
- // }
421
- // // ////tag
422
- // let details = []
423
- // for(let i in codata[device][item].f_items){
424
- // let items = codata[device][item].f_items[i]
425
- // ////tag
426
- // if(items.f_is_defect == true || items.f_is_defect == 'true'){
427
- // checkResult = '有隐患'
428
- // ////tag
429
- // 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}})
430
- // ////tag)
431
- // self.$set('detail.f_defect_id', res.data[0].id)
432
- // self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
433
- // self.$set('detail.type',items.type)
434
- // self.$set('detail.options',options)
435
- // details.push(JSON.parse(JSON.stringify(self.detail)))
436
- // }
437
- // if(items.type == 'selector'){
438
- // items.selected = ''
439
- // }
440
- // self.detail = {}
441
- // }
442
- // ////tag
443
- // self.$set('defectDevice.f_type',f_device_type)
444
- // self.$set('defectDevice.details',details)
445
- // if(self.defectDevice.details.length >0 ){
446
- // self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
447
- // }
448
- // self.defectDevice = {}
449
- // ////tag
450
- // }
451
- // }
452
- // }
453
- // self.$set('$parent.$parent.model.f_repairitems.data',self.repairitems)
454
- //
455
- //
456
- // ////tag)
457
- // res = self.$androidUtil.bzLogic('safecheckToRepair',data)
458
- // ////tag
459
- // ////tag
460
- // ////tag
461
- // if(res.code == 200){
462
- // self.$parent.$parent.isSafeCheckToRepair = true
463
- // self.undo()
464
- // self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
465
- // ////tag
466
- // 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)=>{
467
- // ////tag
468
- // if(ret.data.code ==200){
469
- // ////tag
470
- // self.$parent.$parent.$back()
471
- // }else{
472
- // self.$showMessage('安检转维修失败!')
473
- // }
474
- // }).catch(v=>{
475
- // ////tag)
476
- // self.$showMessage('安检转维修失败!')
477
- // })
478
- // }else{
479
- // self.$showMessage('安检转维修失败!')
480
- // }
481
- // }
482
- // }
483
- // }
484
-
485
-
486
-
487
- // let getRepairs = async function(self,url) {
488
- // // 获取配置信息
489
- // try {
490
- // let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1 ))', userid: `${Vue.user.id}`}
491
- // let repairs =[]
492
- // let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
493
- // res.data.forEach((item) => {
494
- // repairs.push({label: item.name, value: item})
495
- // })
496
- // self.f_repair_person = repairs
497
- // if(self.$parent.$parent.role == 'inspect'){
498
- // let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
499
- // if(res.code == 200){
500
- // self.$parent.$parent.user = res.data[0]
501
- // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
502
- // }
503
- // }else{
504
- // ////tag
505
- // self.$resetpost(`${self.Url}/rs/sql/safeCheckgetUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
506
- // ////tag
507
- // if(res.data.length != 0){
508
- // self.$parent.$parent.user = res.data[0]
509
- // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
510
- // }
511
- // })
512
- // // path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
513
- // }
514
- // } catch (error) {
515
- // ////tag
516
- // }
517
- // }
518
-
519
- export default {
520
- title: '用户反馈',
521
- data() {
522
- return {
523
- newConfig:'',
524
- repairers: [],
525
- defectImgs: [],
526
- defectToolTip: [],
527
- defectReason: [],
528
- images: [],
529
- showmodelthree: false,
530
- isneedDate: this.$parent.$parent.isneedDate,
531
- plan: this.$parent.$parent.item,
532
- meading: this.$parent.$parent.meading,
533
- paper: this.$parent.$parent.data,
534
- printContent: [],
535
- upload_state: this.$parent.$parent.item.f_upload_state,
536
- enabled: false,//控制限制购气是否可选
537
- deleteenabled: false,
538
- showmodel: false,
539
- showbacklist:'是',
540
- backlistisselect: false,
541
- deletebacklistisselect: false,
542
- radios: [
543
- {
544
- label: '满意',
545
- value: 0,
546
- isChecked: false,
547
- },
548
- {
549
- label: '基本满意',
550
- value: 1,
551
- isChecked: false,
552
- },
553
- {
554
- label: '不满意',
555
- value: 2,
556
- isChecked: false,
557
- },
558
- ],
559
- repairitems: [],
560
- repairstypes: this.$appdata.getParam('报修类型'),
561
- // f_repair_person: this.readRepair(),
562
- showrepair: false,
563
- safeCheckToRepair: '',
564
- showCheckToRepair: false,
565
- userid: '',
566
- source:
567
- 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
568
- 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
569
- isback: false,
570
- defectDevice: {},
571
- detail: {},
572
- callObj: null,
573
- user: {},
574
- role: this.$parent.$parent.role,
575
- handling: [{label: '转站点', value: '转站点'}, {label: '转维修员', value: '转维修员'}],
576
- Url: this.$androidUtil.getProxyUrl(),
577
- cause: "",
578
- deletecause: "",
579
- isRecodr: "false", //单值参数,为true则是开启全程录音
580
- tyCause:'',
581
- showTYModel:'',
582
- backlistisselectTY:false,
583
- tyState:this.$appdata.getSingleValue('用户停用')=='是'?true:false
584
-
585
- }
586
- },
587
- props: ['idx'],
588
- components: {
589
- RadioGroup,
590
- Radio
591
- },
592
- methods: {
593
- //对用户停用
594
- async backlistTY() {
595
- if (!this.tyCause) {
596
- this.$showMessage("请填写停用原因!")
597
- return
598
- }
599
- let http = new HttpResetClass()
600
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
601
- data: {
602
- items: "f_userfiles_id,version",
603
- tablename: "t_userfiles",
604
- condition: "f_table_state in ('正常','停用','封堵') and f_userinfo_id= '" + this.paper.f_userinfoid + "'",
605
- orderitem: "f_userfiles_id"
606
- }
607
- }, {resolveMsg: null, rejectMsg: null})
608
- if (res2.data.length==0){
609
- this.$showMessage('已成功停用')
610
- this.showTYModel = false
611
- return
612
- }
613
- let data = {
614
- f_userfiles_id: {
615
- f_userfiles_id: res2.data[0].f_userfiles_id,
616
- f_table_state: '停用',
617
- version: res2.data[0].version
618
- },
619
- f_userfile_id: res2.data[0].f_userfiles_id,
620
- f_user_id: this.paper.f_userinfo_code,
621
- f_userinfo_id: "'"+this.paper.f_userinfoid+"'",
622
- f_user_name: this.paper.f_user_name,
623
- f_othereason: this.tyCause,
624
- f_operat_type: '停用',
625
- f_describe: `${Vue.user.name}对客户${this.paper.f_user_name}进行停用操作`,
626
- f_state: '有效',
627
- f_user_phone: this.paper.f_user_phone,
628
- f_operator: Vue.user.name,
629
- f_operatorid: Vue.user.id,
630
- f_orgid: Vue.user.orgid,
631
- f_orgname: Vue.user.orgs,
632
- f_depid: Vue.user.depids,
633
- f_depname: Vue.user.deps,
634
- f_zoneid: Vue.user.zoneid,
635
- f_zones: Vue.user.zones
636
- }
637
- new HttpResetClass().load('post',`${this.$androidUtil.getProxyUrl()}/rs/entity/t_disable`,
638
- data, {resolveMsg: null, rejectMsg: null}).then((row) => {
639
- this.$showMessage('已成功停用')
640
- this.paper.f_table_state = '停用'
641
- this.$parent.$parent.data.f_table_state = '停用'
642
- this.showTYModel = false
643
- })
644
- },
645
- //停用取消按钮
646
- tyCancel() {
647
- this.backlistisselectTY = false
648
- this.showTYModel = false
649
- },
650
-
651
- // 获取安检员
652
- getEmp() {
653
- this.repairers=[]
654
- let per = {source: 'this.getRights().where(row.getType()==$user$).where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))', userid: `${Vue.user.id}`}
655
- let http = new HttpResetClass()
656
- http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {data: per}, {resolveMsg: null, rejectMsg: null}).then((res) => {
657
- res.data.forEach((user)=>{
658
- this.repairers.push({label:user.name, value: user.name})
659
- })
660
- })
661
- },
662
- timeSet(val) {
663
- //////tag
664
- if (!val) {
665
- return
666
- }
667
- let time = new Date(val).getTime()
668
- let time2 = new Date().getTime()
669
- if (time2 > time) {
670
- return true
671
- }
672
- },
673
- // async isoverDate(){
674
- // ////tag
675
- // let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/androidGetuserinfo`, {data:{
676
- // condition:"f_plan_item_id='"+this.$parent.$parent.item.id+"'"
677
- // }
678
- // })
679
- // this.isneedDate=res.data[0]["f_subscribe_date"]
680
- // ////tag
681
- // },
682
- check(index) {
683
- ////tag
684
- // 先取消所有选中项
685
- for (let item of this.radios) {
686
- item.isChecked = false;
687
- }
688
- //再设置当前点击项选中
689
- this.paper.f_client_evaluation = this.radios[index].label;
690
- // 设置值,以供传递
691
- this.radios[index].isChecked = true;
692
- ////tag;
693
- },
694
- getSignValue(fileName) {
695
- this.f_signname = fileName
696
- },
697
- cameraCallBack(prop, fileName) {
698
- if (prop == 'f_overall_path') {
699
- let f_overall_path = fileName + '?' + Math.random()
700
- HostApp.__this__.paper.f_overall_imgs.push({
701
- f_overall_path: f_overall_path
702
- })
703
- } else {
704
- HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
705
- }
706
- HostApp.__callback__ = null
707
- HostApp.__this__ = null
708
- },
709
- takePic(prop, title, index) {
710
- HostApp.__callback__ = this.cameraCallBack
711
- HostApp.__this__ = this
712
- ////tag
713
- ////tag
714
- let fileName
715
- if (prop == 'f_overall_path') {
716
- if (!this.paper.f_overall_imgs[index] || this.paper.f_overall_imgs[index].f_overall_path.includes("nopic.png")) {
717
- fileName = Util.guid() + '-' + prop + '.jpg'
718
- } else {
719
- fileName = Util.getFileName(this.paper.f_overall_imgs[index].f_overall_path)
720
- }
721
- } else {
722
- if (!this.paper[prop] || this.paper[prop].includes("nopic.png")) {
723
- fileName = Util.guid() + '-' + prop + '.jpg'
724
- } else {
725
- fileName = Util.getFileName(this.paper[prop])
726
- }
727
- }
728
- let jingweidu = ''
729
- if (this.$parent.$parent.is_has_jingweidu == 'true'){
730
- const obj = HostApp.getGpsDetailAddress()
731
- jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
732
- }
733
- HostApp._open_a_page({
734
- type: 'boomerang',
735
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
736
- param: {
737
- file: fileName,
738
- requestCode: 111,
739
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
740
- watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name + '\t' + this.paper.f_userinfo_code+ '\t' + this.paper.f_user_name+ '\t' + this.paper.f_address
741
- +jingweidu
742
- }
743
- })
744
- },
745
- amrCallBack(fileName) {
746
- HostApp.__this__.$set('paper.f_recording1_path', fileName)
747
- HostApp.__callback__ = null
748
- HostApp.__this__ = null
749
- },
750
- SignedContract(){
751
- if(this.paper.f_sign_contract==undefined){
752
- this.$showMessage('请先进行供气合同签名!')
753
- return
754
- }
755
- //发送请求
756
- let http = new HttpResetClass()
757
- http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/ajSignContract`, {data:{f_userinfoid:this.paper.f_userinfoid}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
758
-
759
- })
760
-
761
- },
762
- record() {
763
- if (this.$parent.$parent.role != 'inspect') {
764
- if (this.paper.f_recording1_path != '') {
765
- window.location = this.paper.f_recording1_path
766
- }
767
- } else {
768
- HostApp.__callback__ = this.amrCallBack
769
- HostApp.__this__ = this
770
- let fileName
771
- if (!this.paper.f_recording1_path) {
772
- fileName = Util.guid() + '.amr'
773
- } else {
774
- fileName = Util.getFileName(this.paper.f_recording1_path)
775
- }
776
- HostApp._open_a_page({
777
- type: 'boomerang',
778
- page: 'com.aofeng.hybrid.android.peripheral.AudioClipActivity',
779
- param: {file: fileName, requestCode: 111, callback: 'javascript:HostApp.__callback__("%s");'}
780
- })
781
- }
782
- },
783
- // 签名回调
784
- signCallback1(prop, fileName) {
785
- // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
786
- HostApp.__this__.$set('paper.f_sign_contract', fileName)
787
- HostApp.__callback__ = null
788
- HostApp.__this__ = null
789
- },
790
- // 签名回调
791
- signCallback(prop, fileName) {
792
- // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
793
- HostApp.__this__.$set('paper.f_sign_path', fileName)
794
- HostApp.__callback__ = null
795
- HostApp.__this__ = null
796
- },
797
- // 供气合同签名
798
- sign1() {
799
- this.delAudioFile('f_sign_contract', this.paper.f_sign_contract)
800
- let prop = 'f_sign_contract'
801
- let idx = 'aofeng'
802
- let fileName
803
- if (!this.paper.f_sign_contract) {
804
- fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
805
- } else {
806
- fileName = Util.getFileName(this.paper.f_sign_contract)
807
- }
808
- HostApp.__callback__ = this.signCallback1
809
- HostApp.__this__ = this
810
- HostApp.getSignature({
811
- file: fileName,
812
- requestCode: 111,
813
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
814
- })
815
- },
816
- // 用户签名
817
- sign(param) {
818
- if (!this.paper.f_read_instructions) {
819
- this.$showMessage('请先阅读并勾选用户须知内容后进行签名!')
820
- return
821
- }
822
- this.delAudioFile('f_sign_path', this.paper.f_sign_path)
823
- let prop = 'f_sign_path'
824
- let idx = 'aofeng'
825
- let fileName
826
- if (!this.paper.f_sign_path) {
827
- fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
828
- } else {
829
- fileName = Util.getFileName(this.paper.f_sign_path)
830
- }
831
- HostApp.__callback__ = this.signCallback
832
- HostApp.__this__ = this
833
- HostApp.getSignature({
834
- file: fileName,
835
- requestCode: 111,
836
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
837
- })
838
- },
839
- delfile(prop, fileName, index) {
840
- if (fileName == Vue.nopic)
841
- return
842
- else {
843
- if (prop == 'f_overall_path') {
844
- this.paper.f_overall_imgs.splice(index, 1)
845
- HostApp.delfile(fileName)
846
- } else {
847
- HostApp.delfile(fileName)
848
- this.paper[prop] = Vue.nopic
849
- }
850
- }
851
- },
852
- delAudioFile(prop, fileName) {
853
- if (!fileName)
854
- return
855
- else {
856
- HostApp.delfile(fileName)
857
- this.paper[prop] = null
858
- }
859
- },
860
- //获取打印用户信息
861
- getUser() {
862
- if (this.paper.f_user_name == undefined)
863
- this.paper.f_user_name = ''
864
- this.printContent.push({
865
- type: 3,
866
- text: '用户名称:' + this.paper.f_user_name,
867
- fontsize: 2,
868
- isbold: false,
869
- align: 'left'
870
- })
871
- if (this.paper.f_userinfo_code == undefined)
872
- this.paper.f_userinfo_code = ''
873
- this.printContent.push({
874
- type: 3,
875
- text: '用户编号:' + this.paper.f_userinfo_code,
876
- fontsize: 2,
877
- isbold: false,
878
- align: 'left'
879
- })
880
- if (this.paper.f_address == undefined)
881
- this.paper.f_address = ''
882
- this.printContent.push({type: 3, text: '地址:' + this.paper.f_address, fontsize: 2, isbold: false, align: 'left'})
883
- if (this.paper.f_user_phone == undefined)
884
- this.paper.f_user_phone = ''
885
- this.printContent.push({
886
- type: 3,
887
- text: '电话:' + this.paper.f_user_phone,
888
- fontsize: 2,
889
- isbold: false,
890
- align: 'left'
891
- })
892
- },
893
- verify() {
894
- let hasError = this.$parent.$parent.verifyUser()
895
- if (hasError)
896
- return hasError
897
- hasError = this.$parent.$parent.verifyDevices()
898
- if (hasError)
899
- return hasError
900
- },
901
- print() {
902
- let errString = this.verify()
903
- if (errString) {
904
- ////tag
905
- if (Vue.android)
906
- this.$showMessage(errString)
907
- return
908
- }
909
- // 文本
910
- let templatename = '安检结果单'
911
- if (Vue.config.safecheck != undefined) {
912
- if (Vue.config.safecheck.ApproveConfig != undefined) {
913
- if (Vue.config.safecheck.ApproveConfig.templatename != undefined) {
914
- templatename = Vue.config.safecheck.ApproveConfig.templatename
915
- }
916
- }
917
- }
918
- let textHead = {type: 3, text: templatename, fontsize: 3, isbold: true, align: 'center'}
919
- let feedPageHead = {type: 4, value: 2, unit: 'line'}
920
- let feedPageEnd = {type: 4, value: 4, unit: 'line'}
921
- this.printContent.push(textHead)
922
- this.printContent.push(feedPageHead)
923
- this.getUser()
924
- this.getDefect()
925
- this.getCheck()
926
- this.printContent.push(feedPageEnd)
927
- let arrstr = JSON.stringify(this.printContent)
928
- ////tag
929
- this.$androidUtil.print(arrstr)
930
- this.$set('printContent', [])
931
- },
932
- //打印安检信息
933
- getCheck() {
934
- let telephone = '96777'
935
- if (Vue.config.safecheck != undefined) {
936
- if (Vue.config.safecheck.ApproveConfig != undefined) {
937
- if (Vue.config.safecheck.ApproveConfig.checkphone != undefined) {
938
- telephone = Vue.config.safecheck.ApproveConfig.checkphone
939
- }
940
- }
941
- }
942
- this.printContent.push({
943
- type: 3,
944
- text: '*******************************',
945
- fontsize: 3,
946
- isbold: false,
947
- align: 'center'
948
- })
949
- this.printContent.push({type: 3, text: '咨询电话;' + telephone, fontsize: 2, isbold: false, align: 'left'})
950
- this.printContent.push({type: 3, text: '安检人:' + Vue.user.name, fontsize: 2, isbold: false, align: 'left'})
951
- this.printContent.push({
952
- type: 3,
953
- text: '安检时间:' + this.getNowFormatDate(),
954
- fontsize: 2,
955
- isbold: false,
956
- align: 'left'
957
- })
958
- this.printContent.push({type: 3, text: '用户签字:', fontsize: 2, isbold: false, align: 'left'})
959
- this.printContent.push({type: 4, value: 4, unit: 'line'})
960
- },
961
-
962
- getDefect() {
963
- let showmore = false
964
- if (Vue.config.safecheck != undefined) {
965
- if (Vue.config.safecheck.ApproveConfig != undefined) {
966
- if (Vue.config.safecheck.ApproveConfig.showmore != undefined) {
967
- showmore = Vue.config.safecheck.ApproveConfig.showmore
968
- }
969
- }
970
- }
971
-
972
- let backData = this.$parent.$parent.getAllDefect()
973
- // 对隐患信息进行遍历
974
- let res = JSON.parse(backData.f_defect_content)
975
- this.printContent.push({
976
- type: 3,
977
- text: '安检结果:' + res.result,
978
- fontsize: 2,
979
- isbold: false,
980
- align: 'left'
981
- })
982
- this.printContent.push({
983
- type: 3,
984
- text: '*******************************',
985
- fontsize: 3,
986
- isbold: false,
987
- align: 'center'
988
- })
989
-
990
-
991
- if (showmore) {
992
- //全部打印
993
- for (let dev in this.$parent.$parent.config) {
994
- for (let device in backData) {
995
- if (device.startsWith("device")) {
996
- for (let item in backData[device]) {
997
- //遍历结果
998
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
999
- let error = true
1000
- for (let i in backData[device][item].f_items) {
1001
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1002
- error = false
1003
- }
1004
- }
1005
- if (error) {
1006
- this.printContent.push({
1007
- type: 3,
1008
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
1009
- fontsize: 2,
1010
- isbold: false,
1011
- align: 'left'
1012
- })
1013
- } else {
1014
- this.printContent.push({
1015
- type: 3,
1016
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
1017
- fontsize: 2,
1018
- isbold: true,
1019
- align: 'left'
1020
- })
1021
- }
1022
-
1023
- for (let i in backData[device][item].f_items) {
1024
- if (backData[device][item].f_items[i].f_item_value != '' && backData[device][item].f_items[i].f_item_value != null) {
1025
- this.printContent.push({
1026
- type: 3,
1027
- text: backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
1028
- fontsize: 2,
1029
- isbold: false,
1030
- align: 'left'
1031
- })
1032
- }
1033
- }
1034
- this.printContent.push({type: 4, value: 2, unit: 'line'})
1035
- }
1036
- }
1037
- }
1038
- }
1039
- }
1040
-
1041
- for (let dev in this.$parent.$parent.config) {
1042
- for (let device in backData) {
1043
- if (device.startsWith("device")) {
1044
- for (let item in backData[device]) {
1045
- //遍历结果
1046
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
1047
- let error = true
1048
- for (let i in backData[device][item].f_items) {
1049
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1050
- error = false
1051
- }
1052
- }
1053
- if (!error) {
1054
- this.printContent.push({
1055
- type: 3,
1056
- text: '隐患:',
1057
- fontsize: 2,
1058
- isbold: true,
1059
- align: 'left'
1060
- })
1061
- }
1062
- }
1063
- }
1064
- }
1065
- }
1066
- for (let device in backData) {
1067
- if (device.startsWith("device")) {
1068
- for (let item in backData[device]) {
1069
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
1070
- for (let i in backData[device][item].f_items) {
1071
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1072
- this.printContent.push({
1073
- type: 3,
1074
- text: backData[device][item].f_items[i].f_item_name + ' ' + backData[device][item].f_items[i].f_item_value,
1075
- fontsize: 2,
1076
- isbold: true,
1077
- align: 'left'
1078
- })
1079
- }
1080
- }
1081
- }
1082
- }
1083
- }
1084
- }
1085
-
1086
- }
1087
- } else {
1088
- for (let dev in this.$parent.$parent.config) {
1089
- for (let device in backData) {
1090
- if (device.startsWith("device")) {
1091
- for (let item in backData[device]) {
1092
- //遍历结果
1093
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
1094
- let error = true
1095
- for (let i in backData[device][item].f_items) {
1096
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1097
- error = false
1098
- }
1099
- }
1100
- if (error) {
1101
- this.printContent.push({
1102
- type: 3,
1103
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
1104
- fontsize: 2,
1105
- isbold: false,
1106
- align: 'left'
1107
- })
1108
- } else {
1109
- this.printContent.push({
1110
- type: 3,
1111
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
1112
- fontsize: 2,
1113
- isbold: false,
1114
- align: 'left'
1115
- })
1116
- }
1117
-
1118
- for (let i in backData[device][item].f_items) {
1119
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1120
- this.printContent.push({
1121
- type: 3,
1122
- text: '隐患:' + backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
1123
- fontsize: 2,
1124
- isbold: false,
1125
- align: 'left'
1126
- })
1127
- }
1128
- }
1129
- this.printContent.push({type: 4, value: 2, unit: 'line'})
1130
- }
1131
- }
1132
- }
1133
- }
1134
- }
1135
- }
1136
- },
1137
- //获取当前时间
1138
- getNowFormatDate() {
1139
- var date = new Date();
1140
- var seperator1 = "-";
1141
- var seperator2 = ":";
1142
- var month = date.getMonth() + 1;
1143
- var strDate = date.getDate();
1144
- if (month >= 1 && month <= 9) {
1145
- month = "0" + month;
1146
- }
1147
- if (strDate >= 0 && strDate <= 9) {
1148
- strDate = "0" + strDate;
1149
- }
1150
- var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1151
- + " " + date.getHours() + seperator2 + date.getMinutes()
1152
- + seperator2 + date.getSeconds();
1153
- return currentdate;
1154
- },
1155
- readRepair() {
1156
- let url = this.$androidUtil.getProxyUrl()
1157
- let gen = getRepairs(this, url)
1158
- return co(gen)
1159
- },
1160
- showToRepair() {
1161
- let res = this.hasDefect()
1162
- ////tag
1163
- ////tag
1164
- if (res == '正常') {
1165
- this.showrepair = false
1166
- } else {
1167
- this.showrepair = true
1168
- this.assignObj()
1169
- }
1170
- this.showCheckToRepair = !this.showCheckToRepair
1171
- },
1172
- // 选中部门
1173
- reres(val) {
1174
- if (val.res == undefined) {
1175
- return
1176
- }
1177
- this.$parent.$parent.model.serviceacitivity[0].f_meetunit = val.res
1178
- this.$parent.$parent.model.f_meetunit = val.res
1179
- this.$parent.$parent.model.f_orgstr = val.resids
1180
- var arr = val.res.split('.')
1181
- this.$parent.$parent.model.f_outlets = arr[arr.length - 1]
1182
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.resids
1183
- },
1184
- assignObj() {
1185
- this.$parent.$parent.model.f_contact_phone = this.paper.f_user_phone
1186
- this.$parent.$parent.model.f_user_name = this.paper.f_user_name
1187
- this.$parent.$parent.model.f_address = this.paper.f_address
1188
- this.$parent.$parent.model.f_user_type = this.paper.f_check_type
1189
- this.$parent.$parent.model.f_street = this.paper.f_street
1190
- this.$parent.$parent.model.f_residential_area = this.paper.f_residential_area
1191
- this.$parent.$parent.model.f_building = this.paper.f_building
1192
- this.$parent.$parent.model.f_unit = this.paper.f_unit
1193
- this.$parent.$parent.model.f_floor = this.paper.f_floor
1194
- this.$parent.$parent.model.f_room = this.paper.f_room
1195
- this.$parent.$parent.model.f_floor = this.paper.f_floor
1196
- this.$parent.$parent.model.f_userinfo_id = this.paper.f_userinfoid
1197
- this.$parent.$parent.model.f_userinfo_code = this.paper.f_userinfo_code
1198
- },
1199
- hasDefect() {
1200
- let checkResult = '正常'
1201
- let codata = JSON.parse(JSON.stringify(this.paper))
1202
- for (let device in this.paper) {
1203
- if (device.startsWith("device")) {
1204
- for (let item in this.paper[device]) {
1205
- for (let i in this.paper[device][item].f_items) {
1206
- let items = this.paper[device][item].f_items[i]
1207
- ////tag
1208
- if (items.f_is_defect == true || items.f_is_defect == 'true') {
1209
- checkResult = '有隐患'
1210
- }
1211
- }
1212
- }
1213
- }
1214
- }
1215
- return checkResult
1216
- },
1217
- uploadPaper() {
1218
- if (this.showrepair) {
1219
- ////tag
1220
- ////tag
1221
- ////tag
1222
- ////tag
1223
-
1224
- if (this.meading == '转维修员' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1225
- this.$showMessage("请选择维修员!")
1226
- return
1227
- }
1228
- if (this.$parent.$parent.meading == '转站点' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1229
- this.$showMessage("请选择站点!")
1230
- return
1231
- }
1232
- if (this.$parent.$parent.model.f_repairtype == '') {
1233
- this.$showMessage("请选择报修类型!")
1234
- return
1235
- }
1236
- this.$parent.$parent.isToRepair = true
1237
- this.$parent.$parent.uploadCheckPaper()
1238
- // this.$parent.$parent.savePaper(false).then((res) => {
1239
- // ////tag
1240
- // if(res != true){
1241
- // ////tag
1242
- // return
1243
- // }else{
1244
- // this.$parent.$parent.todo()
1245
- // }
1246
- // })
1247
- } else {
1248
- this.$parent.$parent.undo()
1249
- }
1250
-
1251
- },
1252
- //确认安检转维修
1253
-
1254
- undo() {
1255
- this.showCheckToRepair = !this.showCheckToRepair
1256
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = ''
1257
- this.$parent.$parent.model.serviceacitivity[0].f_meetunit = ''
1258
- this.$parent.$parent.model.f_repairtype = ''
1259
- this.meading = '转站点'
1260
- },
1261
- //取消拉黑
1262
- async deletebacklist() {
1263
- if (!this.deletecause) {
1264
- this.$showMessage("请填写取消拉黑原因!")
1265
- return
1266
- }
1267
- this.paper.f_blocking_cause = this.deletecause
1268
- ////tag)
1269
- let http = new HttpResetClass()
1270
- ////tag
1271
- let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1272
- data: {
1273
- items: "version",
1274
- tablename: "t_userinfo",
1275
- condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1276
- orderitem: "f_userinfo_id"
1277
- }
1278
- }, {resolveMsg: null, rejectMsg: null})
1279
- ////tag)
1280
- ////tag
1281
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1282
- data: {
1283
- "f_operat_type": "取消拉黑",
1284
- "f_state": "有效",
1285
- "f_user_name": this.paper.f_user_name,
1286
- "f_comments": this.paper.f_delete_cause,
1287
- "f_operator": Vue.user.name,
1288
- "f_operatorid": Vue.user.id,
1289
- "f_orgid": Vue.user.orgid,
1290
- "f_orgname": Vue.user.orgs,
1291
- "f_depid": Vue.user.depids,
1292
- "f_depname": Vue.user.deps,
1293
- "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行取消拉黑`,
1294
- "f_userinfo_id": {
1295
- "f_userinfo_id": this.paper.f_userinfoid,
1296
- "f_user_state": "正常",
1297
- "version": res1.data[0].version
1298
- },
1299
- "f_limit_times":"",
1300
- "f_limit_value":""
1301
- }
1302
- }, {resolveMsg: null, rejectMsg: null})
1303
-
1304
- ////tag)
1305
- if (res2.data.code == 200) {
1306
- this.showmodelthree = false
1307
- this.deleteenabled = true
1308
- this.paper.f_blacklist = ""
1309
- this.$showMessage("取消该用户限制购气成功!")
1310
- } else {
1311
- this.$showMessage("网络异常,请稍后再试!")
1312
- }
1313
- },
1314
- async backlist() {
1315
- if (!this.cause) {
1316
- this.$showMessage("请填写拉黑原因!")
1317
- return
1318
- }
1319
- this.paper.f_blocking_cause = this.cause
1320
-
1321
- let http = new HttpResetClass()
1322
-
1323
- // let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1324
- // data: {
1325
- // items: "version",
1326
- // tablename: "t_userinfo",
1327
- // condition: "f_userinfo_id=" + this.plan.f_userinfoid,
1328
- // orderitem: "f_userinfo_id"
1329
- // }
1330
- // }, {resolveMsg: null, rejectMsg: null})
1331
- // let url = self.newConfig == '是' ? '/safecheck/rs/safe_vue' : '/safecheck/rs/vue'
1332
- // let res = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
1333
- // data: {
1334
- // items: 'f_dir',
1335
- // tablename: 't_organization',
1336
- // condition: `id = '${Vue.user.orgid}'`,
1337
- // orderitem: 'id'
1338
- // }
1339
- // })
1340
- // let res3 = await new HttpResetClass().load('GET', `${url}/ApproveConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
1341
- // resolveMsg: '获取居民配置项成功!',
1342
- // rejectMsg: '获取居民配置项出错!'
1343
- // })
1344
- // Vue.config.safecheck.ApproveConfig = res3.data
1345
- let limit_times=1
1346
- let limit_value=20
1347
- let limit_amount=30
1348
- console.log(Vue.config)
1349
- if(Vue.config.safecheck ){
1350
- if (Vue.config.safecheck.ApproveConfig.limit_times ){
1351
- limit_times = Vue.config.safecheck.ApproveConfig.limit_times
1352
- }
1353
- if (Vue.config.safecheck.ApproveConfig.userValueQ && Vue.config.safecheck.ApproveConfig.noUserValueQ){
1354
- if (this.plan.f_user_type == '民用'){
1355
- limit_value = Vue.config.safecheck.ApproveConfig.userValueQ
1356
- }else {
1357
- limit_value = Vue.config.safecheck.ApproveConfig.noUserValueQ
1358
- }
1359
- }
1360
- if (Vue.config.safecheck.ApproveConfig.userValueJ && Vue.config.safecheck.ApproveConfig.noUserValueJ){
1361
- if (this.plan.f_user_type == '民用'){
1362
- limit_amount = Vue.config.safecheck.ApproveConfig.userValueJ
1363
- }else {
1364
- limit_amount = Vue.config.safecheck.ApproveConfig.noUserValueJ
1365
- }
1366
- }
1367
- }
1368
-
1369
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1370
- data: {
1371
- data:this.$parent.$parent.data,
1372
- item:this.$parent.$parent.data.item,
1373
- "f_operat_type": "拉黑",
1374
- "f_state": "有效",
1375
- "f_user_name": this.plan.f_user_name,
1376
- "f_comments": this.paper.f_blocking_cause,
1377
- "f_operator": Vue.user.name,
1378
- "f_operate_date":Util.toStandardTimeString(),
1379
- "f_operatorid": Vue.user.id,
1380
- "f_orgid": Vue.user.orgid,
1381
- "f_orgname": Vue.user.orgs,
1382
- "f_depid": Vue.user.depids,
1383
- "f_depname": Vue.user.deps,
1384
- "f_describe": `${Vue.user.name}对用户${this.plan.f_user_name}进行拉黑`,
1385
- "f_userinfo_id": {
1386
- "f_userinfo_id": this.plan.f_userinfoid
1387
- },
1388
- "f_limit_times":limit_times,
1389
- "f_limit_value":limit_value,
1390
- "f_limit_amount":limit_amount
1391
- }
1392
- }, {resolveMsg: null, rejectMsg: null})
1393
-
1394
- ////tag)
1395
- if (res2.data.code == 200) {
1396
- this.showmodel = false
1397
- this.enabled = true
1398
- this.paper.f_blacklist = "是"
1399
- this.$showMessage("将该用户限制购气成功!")
1400
- } else if (res2.data.msg == '数据增加重复') {
1401
- this.showmodel = false
1402
- this.enabled = true
1403
- this.$showMessage("该用户已被限制购气,请勿重复提交!")
1404
- } else {
1405
- this.$showMessage("网络异常,请稍后再试!")
1406
- }
1407
- },
1408
- cancel() {
1409
- this.backlistisselect = false
1410
- this.showmodel = false
1411
- },
1412
- deletecancel() {
1413
- this.deletebacklistisselect = false
1414
- this.showmodelthree = false
1415
- },
1416
- repiarmancg(val) {
1417
- if (val) {
1418
- ////tag
1419
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.name
1420
- let http1 = new HttpResetClass()
1421
- http1.load('POST', `${this.Url}/rs/sql/tel_singleTable_OrderBy`, {
1422
- data: {
1423
- items: 'f_user_telephone',
1424
- tablename: 't_user',
1425
- condition: `name = '${val}'`,
1426
- orderitem: 'id'
1427
- }
1428
- }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
1429
- this.$parent.$parent.model.f_repairman_phone = ress.data[0].f_user_telephone
1430
- })
1431
- }
1432
- },
1433
- },
1434
- async ready() {
1435
- this.newConfig = this.$appdata.getSingleValue('配置中心获取文件') ? this.$appdata.getSingleValue('配置中心获取文件') : '否';
1436
- this.getEmp()
1437
- this.isRecodr = this.$appdata.getSingleValue('无限制录音')
1438
- if(this.$appdata.getSingleValue('安检时显示拉黑')){
1439
- this.showbacklist = this.$appdata.getSingleValue('安检时显示拉黑');
1440
- }
1441
- // await this.isoverDate()
1442
- ////tag
1443
- ////tag
1444
- ////tag)
1445
- ////tag))
1446
- if (this.$parent.$parent.role == 'repair') {
1447
- this.$set('style__', 'divmask')
1448
- this.$set('style_view_', '')
1449
- } else if (this.$parent.$parent.role == 'view' || this.$parent.$parent.item.f_upload_state == '已传') {
1450
- this.$set('style__', 'divmask')
1451
- this.$set('style_view_', 'divmask')
1452
- ////tag
1453
- } else {
1454
- this.$set('style__', '')
1455
- this.$set('style_view_', '')
1456
- }
1457
-
1458
- for (let item of this.radios) {
1459
- if (this.paper.f_client_evaluation == item.label) {
1460
- item.isChecked = true;
1461
- }
1462
- }
1463
- if (!this.paper.f_notified_path)
1464
- this.$set('paper.f_notified_path', Vue.nopic)
1465
- if (!this.paper.f_sign_path)
1466
- this.$set('paper.f_sign_path', Vue.nopic)
1467
- if (!this.paper.f_sign_path)
1468
- this.$set('paper.f_sign_contract', Vue.nopic)
1469
- ////tag
1470
- if (!this.paper.f_overall_imgs) {
1471
- let imgs = []
1472
- // imgs.push({f_overall_path:Vue.nopic})
1473
- this.$set('paper.f_overall_imgs', imgs)
1474
- ////tag
1475
- }
1476
- if (!this.paper.f_overall2_path)
1477
- this.$set('paper.f_overall2_path', Vue.nopic)
1478
-
1479
- this.userid = this.role == 'view' ? this.$login.f.id : Vue.user.id
1480
- if (Vue.config.safecheck != undefined) {
1481
- if (Vue.config.safecheck.ApproveConfig != undefined) {
1482
- if (Vue.config.safecheck.ApproveConfig.safeCheckToRepair != undefined) {
1483
- this.safeCheckToRepair = Vue.config.safecheck.ApproveConfig.safeCheckToRepair
1484
- }
1485
- }
1486
- }
1487
- let device = this.$parent.$parent.data
1488
- for (const deviceitem in device) {
1489
- if (deviceitem.startsWith('device')){
1490
- //tag)
1491
- if(device[deviceitem].length == 0){
1492
- continue
1493
- }
1494
- let items = device[deviceitem][0].f_items
1495
- let deviceType = device[deviceitem][0].f_device_type
1496
- for (let i = 0; i < items.length; i++) {
1497
- if (items[i].f_is_defect){
1498
- let reason = items[i].f_item_name+":"
1499
- if (items[i].type === 'selector' || items[i].type === 'radio' || items[i].type === 'checkbox'){
1500
- for (let j = 0; j < items[i].f_item_value.length; j++) {
1501
- if (j+1 === items[i].f_item_value.length){
1502
- reason += items[i].f_item_value[j]
1503
- }else{
1504
- reason += items[i].f_item_value[j] + ","
1505
- }
1506
- }
1507
- }else{
1508
- reason += items[i].f_item_value
1509
- }
1510
- if (items[i].f_path){
1511
- this.defectImgs.push(items[i].f_path)
1512
- }
1513
- if (items[i].f_p1_path){
1514
- this.defectImgs.push(items[i].f_p1_path)
1515
- }
1516
- if (items[i].f_p2_path){
1517
- this.defectImgs.push(items[i].f_p2_path)
1518
- }
1519
- if (items[i].f_p3_path){
1520
- this.defectImgs.push(items[i].f_p3_path)
1521
- }
1522
- if (items[i].tooltip){
1523
- this.defectToolTip.push(items[i].tooltip)
1524
- }
1525
- this.defectReason.push({device:deviceType,deviceitem:reason})
1526
- }else if(items[i].type === 'errorstring' && items[i].f_item_value ){
1527
- let reason = items[i].f_item_name+":" + items[i].f_item_value
1528
- this.defectReason.push({device:deviceType,deviceitem:reason})
1529
- }
1530
-
1531
- }
1532
- }
1533
- }
1534
- ////tag
1535
- ////tag
1536
- //tag
1537
- ////tag
1538
- //tag)
1539
- //tag)
1540
- //tag)
1541
- ////tag
1542
- ////tag
1543
- ////tag
1544
- },
1545
- watch: {
1546
- '$parent.$parent.isUpload'(val) {
1547
- ////tag
1548
- },
1549
- 'meading'(val) {
1550
- ////tag
1551
- this.$parent.$parent.meading = val
1552
- },
1553
- 'backlistisselect'(val) {
1554
- if (val == true) {
1555
- this.showmodel = true
1556
- this.deletebacklistisselect=false
1557
- }
1558
- },
1559
- 'backlistisselectTY'(val) {
1560
- if (val == true) {
1561
- this.showTYModel = true
1562
- }
1563
- },
1564
- 'deletebacklistisselect'(val) {
1565
- if (val == true) {
1566
- this.showmodelthree = true
1567
- this.backlistisselect=false
1568
- }
1569
- },
1570
- 'isRecodr'(val) {
1571
- if (val == 'false' || val == undefined || val == null || val == '' || val == 'undefined') {
1572
- this.isRecodr = "false";
1573
- }
1574
- }
1575
- }
1576
- }
1577
- </script>
1578
- <style scoped>
1579
- .panel-self{
1580
- border-radius: 5px;
1581
- border:1px solid #c5e1f7;
1582
- background-color: #F2F6FA;
1583
- }
1584
- .text-left{
1585
- text-align:left;
1586
- }
1587
- .font{
1588
- font: 15px PingFang-SC-Medium;
1589
- color: #333333;
1590
- }
1591
- .showIi{
1592
- font: 14px PingFang-SC-Medium;
1593
- color: #666666;
1594
- }
1595
- .info{
1596
- margin-top: 15px;
1597
- border-radius: 5px;
1598
- background-color: #f3faff;
1599
- }
1600
- .btn-photo{
1601
- border: 0;
1602
- border-radius: 7px;
1603
- background-color: #7dc1f4;
1604
- font: 15px PingFang-SC-Bold;
1605
- height: 20%;
1606
- }
1607
- .div-photo{
1608
- width: auto;
1609
- height: auto;
1610
- /* margin-top: 10px; */
1611
- position: absolute;
1612
- bottom: 10px;
1613
- right: 10px;
1614
- }
1615
- .btn-voice{
1616
- border-radius: 7px;
1617
- border: 1px solid #dedede;
1618
- background-color: #f5fbff;
1619
- font: 15px PingFang-SC-Bold;
1620
- color: #499edf;
1621
- }
1622
- .save-btn{
1623
- width: 25%;
1624
- background-color:#499edf;
1625
- border-radius: 6px;
1626
- color: #FFFFFF;
1627
- font: 15px PingFang-SC-Bold;
1628
- }
1629
- .upload-btn{
1630
- width: 25%;
1631
- background-color:#ffffff;
1632
- border: 1px solid #499edf;
1633
- border-radius: 6px;
1634
- color: #499edf;
1635
- font: 15px PingFang-SC-Bold;
1636
- }
1637
- .repair-btn{
1638
- width: 25%;
1639
- border: 1px solid #499edf;
1640
- border-radius: 6px;
1641
- font: 15px PingFang-SC-Bold;
1642
- }
1643
- #el_ca_tx{
1644
- width: 100%;
1645
- margin: 5px;
1646
- }
1647
- #el_ca_txt{
1648
- width: 100%;
1649
- margin: 5px;
1650
- }
1651
- </style>
1
+ <template>
2
+ <form novalidate class="form-horizontal" style="width: 95%;margin: auto">
3
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
4
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
5
+ <label class="control-label font text-left col-md-4 col-xs-4">备注</label>
6
+ <div class="col-md-12 col-sm-12 col-xs-12">
7
+ <textarea v-model="paper.f_repair_approved_note" class="form-control"></textarea>
8
+ </div>
9
+ </div>
10
+ </div>
11
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
12
+ <div class="text-center">
13
+ <label class="font">总体安检照片请依次拍摄:</label>
14
+ </div>
15
+ <div class="col-md-12 col-sm-12 col-xs-12">
16
+ <ol class="showIi">
17
+ <li>1.燃气设施全景</li>
18
+ <li>2.燃气表照片</li>
19
+ <li>3.灶具照片</li>
20
+ <li>4.其他照片</li>
21
+ </ol>
22
+ </div>
23
+ </div>
24
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
25
+ <label class="text-left font">总体安检照片</label>
26
+
27
+ <div class="auto" :class="style__">
28
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
29
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
30
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
31
+ <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in paper.f_overall_imgs">
32
+ <img-self :src="img.f_overall_path" alt="总体安检照片" :width="140" :height="170"></img-self>
33
+ <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">
34
+ </div>
35
+ </div>
36
+ <div class="row text-right div-photo">
37
+ <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '总体安检照片')">拍照</button>
38
+ <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
39
+ <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../../assets/remove.png" :class="style__" @click="delfile('f_overall_path', img.f_overall_path)" style="width: 25%;"></img>-->
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
46
+ <label class="text-left font">总体隐患照片</label>
47
+ <div class="auto" :class="style__">
48
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
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-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in defectImgs">
52
+ <img-self :src="img" alt="总体隐患照片" :width="140" :height="170"></img-self>
53
+ <!-- <img src="../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">-->
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
61
+ <div class="text-center">
62
+ <label class="font">隐患汇总:</label>
63
+ </div>
64
+ <div class="col-md-12 col-sm-12 col-xs-12">
65
+ <ol class="showIi">
66
+ <li v-for="item in defectReason">{{ item.deviceitem }}</li>
67
+ </ol>
68
+ </div>
69
+ </div>
70
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
71
+ <div class="text-center">
72
+ <label class="font">整改建议汇总:</label>
73
+ </div>
74
+ <div class="col-md-12 col-sm-12 col-xs-12">
75
+ <ol class="showIi">
76
+ <li v-for="item in defectToolTip">{{ item }}</li>
77
+ </ol>
78
+ </div>
79
+ </div>
80
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
81
+ <div class="text-center">
82
+ <label class="font">客户意见反馈:</label>
83
+ </div>
84
+ <div class="col-md-12 col-sm-12 col-xs-12">
85
+ <ol class="showIi">
86
+ <li>检查说明:</li>
87
+ <li>1.已对客户燃气设施进行了安全检查</li>
88
+ <li>2.已对客户进行了安全用气知识宣传,并发放宣传资料</li>
89
+ <li>3.已对客户资料进行了登记</li>
90
+ <li>4.已向隐患用户告知说明隐患整改项目,并充分向用户告知了存在的隐患内容及注意事项,用户已获悉其中的内容</li>
91
+ </ol>
92
+ </div>
93
+ </div>
94
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
95
+ <input type="checkbox" v-model="paper.f_read_instructions"/><label class="text-left font">我已阅读须知内容</label>
96
+
97
+ </div>
98
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
99
+ <label class="text-left font">用户签名</label>
100
+ <div class="auto">
101
+ <div class="panel">
102
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
103
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
104
+ <div class="col-sm-4">
105
+ <img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
106
+ </div>
107
+ </div>
108
+ <div class="row text-right div-photo">
109
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__" v-if="paper.f_singed_notified">
116
+ <label class="text-left font">确认签署供气合同签名</label>
117
+ <div class="auto">
118
+ <div class="panel">
119
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
120
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
121
+ <div class="col-sm-4">
122
+ <img :class="style__" :src="paper.f_sign_contract" :width="200" :height="150" />
123
+ </div>
124
+ </div>
125
+ <div class="row text-right div-photo">
126
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign1()">签名</button>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :style="timeSet(this.isneedDate)?'':'display:none'">
133
+ <label>请输入超期原因:</label><br/>
134
+ <textarea style="width: 100%;" v-model="paper.f_exceed_reason"></textarea>
135
+ </div>
136
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-show="showbacklist=='是'">
137
+ <div class="col-xs-6 col-sm-6">
138
+ <input type="checkbox" v-model="backlistisselect" :readonly="enabled"/><label class="text-left font" >限制该用户购气</label>
139
+ </div>
140
+ <div class="col-xs-6 col-sm-6">
141
+ <input type="checkbox" v-model="deletebacklistisselect" :readonly="deleteenabled"/><label class="text-left font" >取消该用户购气</label>
142
+ </div>
143
+ <div class="col-xs-6 col-sm-6" v-if="tyState">
144
+ <input type="checkbox" v-model="backlistisselectTY"/><label class="text-left font" >对用户进行停用</label>
145
+ </div>
146
+ </div>
147
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-if="Vue.$appdata.getParam('安检天然气安全使用须知检查')=='是'">
148
+ <div class="col-xs-12 col-sm-12">
149
+ <input type="checkbox" v-model="paper.f_gas_guidelines" /><label class="text-left font" >天然气安全使用须知</label>
150
+ </div>
151
+ <div class="col-xs-12 col-sm-12">
152
+ <input type="checkbox" v-model="paper.f_safety_warning" /><label class="text-left font" >天然气室内使用安全警示</label>
153
+ </div>
154
+ <div class="col-xs-12 col-sm-12">
155
+ <input type="checkbox" v-model="paper.f_gas_manual" /><label class="text-left font" >安全用气手册</label>
156
+ </div>
157
+ </div>
158
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
159
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
160
+ <input type="checkbox" v-model="paper.f_defect_notified" class="showIi" />安检通知书/隐患整改通知书
161
+ </div>
162
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
163
+ <input type="checkbox" v-model="paper.f_singed_notified" class="showIi" />签署供气合同
164
+ </div>
165
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
166
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
167
+ <button type="button" @click="print()">打印隐患整改单</button>
168
+ </div>
169
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
170
+ <label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
171
+ <div class="auto" >
172
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
173
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
174
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
175
+ <div class="col-sm-4">
176
+ <img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
177
+ </div>
178
+ </div>
179
+ <div class="row text-right div-photo">
180
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
181
+ &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_notified_path', this.paper.f_notified_path)" style="width: 25%;"></img>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ </div>
186
+ </div>
187
+
188
+ </div>
189
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 ">
190
+ <label class="text-left font">副操</label>
191
+ <v-select
192
+ :value.sync="paper.f_deputy_director"
193
+ :value-single="true"
194
+ :options='repairers'
195
+ placeholder='请选择安检员'
196
+ close-on-select></v-select>
197
+ </div>
198
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
199
+ <div class="row">
200
+ <label class="text-left">请对我们的服务做出评价:</label>
201
+ </div>
202
+ <div class="col-xs-4 col-sm-4" v-for="item in radios">
203
+ <input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
204
+ </div>
205
+
206
+ <!--<div class="col-sm-4">-->
207
+ <!--<radio-group :value.sync="paper.f_client_evaluation" type="success" buttons="false">-->
208
+ <!--<radio value="满意">满意</radio>-->
209
+ <!--<radio value="基本满意">基本满意</radio>-->
210
+ <!--<radio value="不满意">不满意</radio>-->
211
+ <!--</radio-group>-->
212
+ <!--</div>-->
213
+ </div>
214
+
215
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="isRecodr=='false'">
216
+ <label class="text-left font">反馈录音:</label>
217
+ <div class="col-md-12 col-sm-12 col-xs-12">
218
+ <button type="button" name="button" class="btn btn-primary btn-voice" @click="record">
219
+ <img src="../../../assets/录音.png" style="width: 14%;">
220
+ <span v-if="!paper.f_recording1_path">开始录音</span>
221
+ <span v-if="paper.f_recording1_path">已录音</span>
222
+ </button>
223
+ &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" style="width: 15px;" :class="style__" @click="delAudioFile('f_recording1_path', paper.f_recording1_path)"></img>
224
+ </div>
225
+ </div>
226
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_singed_notified">
227
+ <div class="col-md-12 col-sm-12 col-xs-12">
228
+ <button type="button" name="button" class="btn btn-primary btn-voice" @click="SignedContract">
229
+ <span >签订供气合同</span>
230
+ </button>
231
+ </div>
232
+ </div>
233
+
234
+ <div v-if="false">
235
+ <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
236
+ <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' &&(paper.f_complete != '已完成' || paper.back_f_entry_status != '入户') " class="btn save-btn" @click="$parent.$parent.save('temp')">临时保存</button>
237
+ <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn save-btn " @click="$parent.$parent.save('finish')">完成安检</button>
238
+ </div>
239
+ <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
240
+ <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" id="upload" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn upload-btn " @click="$parent.$parent.uploadCheckPaper" >上传</button>
241
+ <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" v-if="(safeCheckToRepair == true || safeCheckToRepair == 'true') && $parent.$parent.actionEnabled" class="btn repair-btn btn-warning " type="button" @click="showToRepair">转维修</button> </div>
242
+ </div>
243
+
244
+ </div>
245
+ </form>
246
+ <!-- <modal :show.sync="showCheckToRepair" v-ref:modal :backdrop="isback">-->
247
+ <!-- <div slot="modal-header" class="modal-header">-->
248
+ <!-- <h4 class="modal-title">-->
249
+ <!-- 安检转维修-->
250
+ <!-- </h4>-->
251
+ <!-- </div>-->
252
+ <!-- <div slot="modal-body" class="modal-body">-->
253
+ <!-- <div v-if="showrepair">-->
254
+ <!-- <div class="row">-->
255
+ <!-- <label class="col-xs-4 col-md-4 control-label text-left">派单方式</label>-->
256
+ <!-- <div class="col-xs-8 col-md-8">-->
257
+ <!-- <label v-for="handling1 in handling" >-->
258
+ <!-- <input type="radio"-->
259
+ <!-- v-model="meading"-->
260
+ <!-- value="{{handling1.label}}">-->
261
+ <!-- {{handling1.label}}-->
262
+ <!-- </label>-->
263
+ <!-- </div>-->
264
+ <!-- </div>-->
265
+ <!-- <div class="row" v-if="meading == '转站点'">-->
266
+ <!-- <label class="col-xs-4 col-md-4 control-label font text-left" for="f_reciever">站点</label>-->
267
+ <!-- &lt;!&ndash;<input type="text" v-show="false" v-model="serviceacitivity.f_reciever"&ndash;&gt;-->
268
+ <!-- &lt;!&ndash;v-validate:f_reciever='{ required: true }'>&ndash;&gt;-->
269
+ <!-- <div class="col-xs-8 col-md-8">-->
270
+ <!-- <right-tree @ready="onReady" islist :Url="Url" :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>-->
271
+ <!-- </right-tree>-->
272
+ <!-- </div>-->
273
+ <!-- </div>-->
274
+
275
+ <!-- <div class="row" style="margin-top: 6px" v-if="meading == '转维修员'">-->
276
+ <!-- <label class="col-xs-4 col-md-4 control-label font text-left">维修人</label>-->
277
+ <!-- <div class="col-xs-8">-->
278
+ <!-- <v-select :value="$parent.$parent.model.serviceacitivity[0].f_reciever" :value-single="true"-->
279
+ <!-- :options='f_repair_person' placeholder='请选择维修员'-->
280
+ <!-- close-on-select v-on:change="repiarmancg"></v-select>-->
281
+ <!-- </div>-->
282
+
283
+ <!-- </div>-->
284
+ <!-- <div class="row" style="margin-top: 6px">-->
285
+ <!-- <label for="f_repair" class="col-xs-4 col-md-4 control-label font text-left">报修类型</label>-->
286
+ <!-- <div class="col-xs-8 col-md-8">-->
287
+ <!-- <v-select :value.sync="$parent.$parent.model.f_repairtype" :value-single="true"-->
288
+ <!-- :options='repairstypes' placeholder='报修类型'-->
289
+ <!-- close-on-select>-->
290
+ <!-- </v-select>-->
291
+ <!-- </div>-->
292
+ <!-- </div>-->
293
+
294
+ <!-- <div class="row" style="margin-top: 6px">-->
295
+ <!-- <label class="control-label font text-left col-md-4 col-xs-4">备注</label>-->
296
+ <!-- <div class="col-xs-8 col-md-8">-->
297
+ <!-- <input type="text" v-model="$parent.$parent.model.f_remarks"/>-->
298
+ <!-- </div>-->
299
+
300
+ <!-- </div>-->
301
+
302
+ <!-- </div>-->
303
+ <!-- <div v-if="!showrepair">-->
304
+ <!-- 暂无隐患设备信息-->
305
+ <!-- </div>-->
306
+ <!-- </div>-->
307
+ <!-- <div slot="modal-footer" class="modal-footer">-->
308
+ <!-- <button type="button" class="btn btn-default" @click="uploadPaper()">确定</button>-->
309
+ <!-- <button type="button" class="btn btn-default" @click="undo()">取消</button>-->
310
+ <!-- </div>-->
311
+ <!-- </modal>-->
312
+ <!--拉黑框-->
313
+ <modal :show.sync="showmodel" v-ref:modal>
314
+ <div slot="modal-header" class="modal-header">
315
+ <h4 class="modal-title">
316
+ 限制用户购气
317
+ </h4>
318
+ </div>
319
+ <div slot="modal-body" class="modal-body">
320
+ <!-- <div class="row" style="margin-top: 6px">-->
321
+ <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
322
+ <!-- </div>-->
323
+ <div class="row" style="margin-top: 6px">
324
+ <textarea id="el_ca_tx" v-model.trim="cause" style="border-radius:4px;width: 100%;" placeholder="请输入限制用户购气原因" >
325
+ </textarea>
326
+ </div>
327
+ </div>
328
+ <div slot="modal-footer" class="modal-footer">
329
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="backlist()">确认</button>
330
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel()">取消</button>
331
+ </div>
332
+ </modal>
333
+
334
+ <modal :show.sync="showmodelthree" v-ref:modal>
335
+ <div slot="modal-header" class="modal-header">
336
+ <h4 class="modal-title">
337
+ 取消限制用户购气
338
+ </h4>
339
+ </div>
340
+ <div slot="modal-body" class="modal-body">
341
+ <!-- <div class="row" style="margin-top: 6px">-->
342
+ <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
343
+ <!-- </div>-->
344
+ <div class="row" style="margin-top: 6px">
345
+ <textarea id="el_ca_txt" v-model.trim="deletecause" style="border-radius:4px;width: 100%;" placeholder="请输入取消限制用户购气原因" >
346
+ </textarea>
347
+ </div>
348
+ </div>
349
+ <div slot="modal-footer" class="modal-footer">
350
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletebacklist()">确认</button>
351
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletecancel()">取消</button>
352
+ </div>
353
+ </modal>
354
+
355
+ <!--停用框-->
356
+ <modal :show.sync="showTYModel" v-ref:modal>
357
+ <div slot="modal-header" class="modal-header">
358
+ <h4 class="modal-title">
359
+ 对用户停用
360
+ </h4>
361
+ </div>
362
+ <div slot="modal-body" class="modal-body">
363
+ <div class="row" style="margin-top: 6px">
364
+ <textarea v-model.trim="tyCause" style="border-radius:4px;width: 100%;" placeholder="请输入停用原因">
365
+ </textarea>
366
+ </div>
367
+ </div>
368
+ <div slot="modal-footer" class="modal-footer">
369
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="backlistTY()">确认</button>
370
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="tyCancel()">取消</button>
371
+ </div>
372
+ </modal>
373
+ </template>
374
+
375
+ <script>
376
+ import Vue from 'vue'
377
+ import * as Util from '../../Util'
378
+ import { HttpResetClass } from 'vue-client'
379
+ import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
380
+ import Radio from 'vue-client/src/vue-strap/src/radioBtn'
381
+ import co from 'co'
382
+
383
+ // let getRepairParam = function * (self){
384
+ // let data = {
385
+ // $parent.$parent.model: self.$parent.$parent.model, loginUser: {
386
+ // name: self.role == 'view'?self.$login.f.name:Vue.user.name,
387
+ // ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
388
+ // }, user: self.user, callObj: self.callObj
389
+ // }
390
+ // if(self.$parent.$parent.meading == '转维修员'){
391
+ // data.toRepair = '一级派单'
392
+ // }
393
+ // data.$parent.$parent.model.f_attendant = data.loginUser.name
394
+ // ////tag
395
+ // ////tag
396
+ // let res
397
+ // let errString = self.$parent. $parent.errorVerify()
398
+ // if(errString){
399
+ // ////tag
400
+ // if (Vue.android)
401
+ // self.undo()
402
+ // this.$showMessage(errString)
403
+ // return
404
+ // } else {
405
+ // if(self.role == 'inspect'){
406
+ // if(self.$parent.$parent.meading == '转维修员' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
407
+ // this.$showMessage("请选择维修员!")
408
+ // return
409
+ // }
410
+ // if(self.$parent.$parent.meading == '转站点' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
411
+ // HostApp.alert()
412
+ // this.$showMessage("请选择站点!")
413
+ // return
414
+ // }
415
+ // if(self.$parent.$parent.model.f_repairtype == ''){
416
+ // this.$showMessage("请选择报修类型!")
417
+ // return
418
+ // }
419
+ // ////tag)
420
+ // let checkResult = '正常'
421
+ // let options = [{"data": "已处理"},{"data": "未处理"}]
422
+ // let value = ''
423
+ // let codata = JSON.parse(JSON.stringify(self.paper))
424
+ // for(let device in codata){
425
+ // ////tag)
426
+ // let f_device_type
427
+ // if(device.startsWith("device")){
428
+ // for(let item in codata[device]) {
429
+ // if(codata[device].length > 1 ){
430
+ // let j = Number.parseInt(item)+1
431
+ // f_device_type = `${codata[device][item].f_device_type}${j}`
432
+ // }else{
433
+ // f_device_type = codata[device][item].f_device_type
434
+ // }
435
+ // // ////tag
436
+ // let details = []
437
+ // for(let i in codata[device][item].f_items){
438
+ // let items = codata[device][item].f_items[i]
439
+ // ////tag
440
+ // if(items.f_is_defect == true || items.f_is_defect == 'true'){
441
+ // checkResult = '有隐患'
442
+ // ////tag
443
+ // 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}})
444
+ // ////tag)
445
+ // self.$set('detail.f_defect_id', res.data[0].id)
446
+ // self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
447
+ // self.$set('detail.type',items.type)
448
+ // self.$set('detail.options',options)
449
+ // details.push(JSON.parse(JSON.stringify(self.detail)))
450
+ // }
451
+ // if(items.type == 'selector'){
452
+ // items.selected = ''
453
+ // }
454
+ // self.detail = {}
455
+ // }
456
+ // ////tag
457
+ // self.$set('defectDevice.f_type',f_device_type)
458
+ // self.$set('defectDevice.details',details)
459
+ // if(self.defectDevice.details.length >0 ){
460
+ // self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
461
+ // }
462
+ // self.defectDevice = {}
463
+ // ////tag
464
+ // }
465
+ // }
466
+ // }
467
+ // self.$set('$parent.$parent.model.f_repairitems.data',self.repairitems)
468
+ //
469
+ //
470
+ // ////tag)
471
+ // res = self.$androidUtil.bzLogic('safecheckToRepair',data)
472
+ // ////tag
473
+ // ////tag
474
+ // ////tag
475
+ // if(res.code == 200){
476
+ // self.$parent.$parent.isSafeCheckToRepair = true
477
+ // self.undo()
478
+ // self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
479
+ // ////tag
480
+ // 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)=>{
481
+ // ////tag
482
+ // if(ret.data.code ==200){
483
+ // ////tag
484
+ // self.$parent.$parent.$back()
485
+ // }else{
486
+ // self.$showMessage('安检转维修失败!')
487
+ // }
488
+ // }).catch(v=>{
489
+ // ////tag)
490
+ // self.$showMessage('安检转维修失败!')
491
+ // })
492
+ // }else{
493
+ // self.$showMessage('安检转维修失败!')
494
+ // }
495
+ // }
496
+ // }
497
+ // }
498
+
499
+
500
+
501
+ // let getRepairs = async function(self,url) {
502
+ // // 获取配置信息
503
+ // try {
504
+ // let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1 ))', userid: `${Vue.user.id}`}
505
+ // let repairs =[]
506
+ // let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
507
+ // res.data.forEach((item) => {
508
+ // repairs.push({label: item.name, value: item})
509
+ // })
510
+ // self.f_repair_person = repairs
511
+ // if(self.$parent.$parent.role == 'inspect'){
512
+ // let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
513
+ // if(res.code == 200){
514
+ // self.$parent.$parent.user = res.data[0]
515
+ // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
516
+ // }
517
+ // }else{
518
+ // ////tag
519
+ // self.$resetpost(`${self.Url}/rs/sql/safeCheckgetUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
520
+ // ////tag
521
+ // if(res.data.length != 0){
522
+ // self.$parent.$parent.user = res.data[0]
523
+ // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
524
+ // }
525
+ // })
526
+ // // path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
527
+ // }
528
+ // } catch (error) {
529
+ // ////tag
530
+ // }
531
+ // }
532
+
533
+ export default {
534
+ title: '用户反馈',
535
+ data() {
536
+ return {
537
+ newConfig:'',
538
+ repairers: [],
539
+ defectImgs: [],
540
+ defectToolTip: [],
541
+ defectReason: [],
542
+ images: [],
543
+ showmodelthree: false,
544
+ isneedDate: this.$parent.$parent.isneedDate,
545
+ plan: this.$parent.$parent.item,
546
+ meading: this.$parent.$parent.meading,
547
+ paper: this.$parent.$parent.data,
548
+ printContent: [],
549
+ upload_state: this.$parent.$parent.item.f_upload_state,
550
+ enabled: false,//控制限制购气是否可选
551
+ deleteenabled: false,
552
+ showmodel: false,
553
+ showbacklist:'是',
554
+ backlistisselect: false,
555
+ deletebacklistisselect: false,
556
+ radios: [
557
+ {
558
+ label: '满意',
559
+ value: 0,
560
+ isChecked: false,
561
+ },
562
+ {
563
+ label: '基本满意',
564
+ value: 1,
565
+ isChecked: false,
566
+ },
567
+ {
568
+ label: '不满意',
569
+ value: 2,
570
+ isChecked: false,
571
+ },
572
+ ],
573
+ repairitems: [],
574
+ repairstypes: this.$appdata.getParam('报修类型'),
575
+ // f_repair_person: this.readRepair(),
576
+ showrepair: false,
577
+ safeCheckToRepair: '',
578
+ showCheckToRepair: false,
579
+ userid: '',
580
+ source:
581
+ 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
582
+ 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
583
+ isback: false,
584
+ defectDevice: {},
585
+ detail: {},
586
+ callObj: null,
587
+ user: {},
588
+ role: this.$parent.$parent.role,
589
+ handling: [{label: '转站点', value: '转站点'}, {label: '转维修员', value: '转维修员'}],
590
+ Url: this.$androidUtil.getProxyUrl(),
591
+ cause: "",
592
+ deletecause: "",
593
+ isRecodr: "false", //单值参数,为true则是开启全程录音
594
+ tyCause:'',
595
+ showTYModel:'',
596
+ backlistisselectTY:false,
597
+ tyState:this.$appdata.getSingleValue('用户停用')=='是'?true:false
598
+
599
+ }
600
+ },
601
+ props: ['idx'],
602
+ components: {
603
+ RadioGroup,
604
+ Radio
605
+ },
606
+ methods: {
607
+ //对用户停用
608
+ async backlistTY() {
609
+ if (!this.tyCause) {
610
+ this.$showMessage("请填写停用原因!")
611
+ return
612
+ }
613
+ let http = new HttpResetClass()
614
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
615
+ data: {
616
+ items: "f_userfiles_id,version",
617
+ tablename: "t_userfiles",
618
+ condition: "f_table_state in ('正常','停用','封堵') and f_userinfo_id= '" + this.paper.f_userinfoid + "'",
619
+ orderitem: "f_userfiles_id"
620
+ }
621
+ }, {resolveMsg: null, rejectMsg: null})
622
+ if (res2.data.length==0){
623
+ this.$showMessage('已成功停用')
624
+ this.showTYModel = false
625
+ return
626
+ }
627
+ let data = {
628
+ f_userfiles_id: {
629
+ f_userfiles_id: res2.data[0].f_userfiles_id,
630
+ f_table_state: '停用',
631
+ version: res2.data[0].version
632
+ },
633
+ f_userfile_id: res2.data[0].f_userfiles_id,
634
+ f_user_id: this.paper.f_userinfo_code,
635
+ f_userinfo_id: "'"+this.paper.f_userinfoid+"'",
636
+ f_user_name: this.paper.f_user_name,
637
+ f_othereason: this.tyCause,
638
+ f_operat_type: '停用',
639
+ f_describe: `${Vue.user.name}对客户${this.paper.f_user_name}进行停用操作`,
640
+ f_state: '有效',
641
+ f_user_phone: this.paper.f_user_phone,
642
+ f_operator: Vue.user.name,
643
+ f_operatorid: Vue.user.id,
644
+ f_orgid: Vue.user.orgid,
645
+ f_orgname: Vue.user.orgs,
646
+ f_depid: Vue.user.depids,
647
+ f_depname: Vue.user.deps,
648
+ f_zoneid: Vue.user.zoneid,
649
+ f_zones: Vue.user.zones
650
+ }
651
+ new HttpResetClass().load('post',`${this.$androidUtil.getProxyUrl()}/rs/entity/t_disable`,
652
+ data, {resolveMsg: null, rejectMsg: null}).then((row) => {
653
+ this.$showMessage('已成功停用')
654
+ this.paper.f_table_state = '停用'
655
+ this.$parent.$parent.data.f_table_state = '停用'
656
+ this.showTYModel = false
657
+ })
658
+ },
659
+ //停用取消按钮
660
+ tyCancel() {
661
+ this.backlistisselectTY = false
662
+ this.showTYModel = false
663
+ },
664
+
665
+ // 获取安检员
666
+ getEmp() {
667
+ this.repairers=[]
668
+ let per = {source: 'this.getRights().where(row.getType()==$user$).where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))', userid: `${Vue.user.id}`}
669
+ let http = new HttpResetClass()
670
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {data: per}, {resolveMsg: null, rejectMsg: null}).then((res) => {
671
+ res.data.forEach((user)=>{
672
+ this.repairers.push({label:user.name, value: user.name})
673
+ })
674
+ })
675
+ },
676
+ timeSet(val) {
677
+ //////tag
678
+ if (!val) {
679
+ return
680
+ }
681
+ let time = new Date(val).getTime()
682
+ let time2 = new Date().getTime()
683
+ if (time2 > time) {
684
+ return true
685
+ }
686
+ },
687
+ // async isoverDate(){
688
+ // ////tag
689
+ // let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/androidGetuserinfo`, {data:{
690
+ // condition:"f_plan_item_id='"+this.$parent.$parent.item.id+"'"
691
+ // }
692
+ // })
693
+ // this.isneedDate=res.data[0]["f_subscribe_date"]
694
+ // ////tag
695
+ // },
696
+ check(index) {
697
+ ////tag
698
+ // 先取消所有选中项
699
+ for (let item of this.radios) {
700
+ item.isChecked = false;
701
+ }
702
+ //再设置当前点击项选中
703
+ this.paper.f_client_evaluation = this.radios[index].label;
704
+ // 设置值,以供传递
705
+ this.radios[index].isChecked = true;
706
+ ////tag;
707
+ },
708
+ getSignValue(fileName) {
709
+ this.f_signname = fileName
710
+ },
711
+ cameraCallBack(prop, fileName) {
712
+ if (prop == 'f_overall_path') {
713
+ let f_overall_path = fileName + '?' + Math.random()
714
+ HostApp.__this__.paper.f_overall_imgs.push({
715
+ f_overall_path: f_overall_path
716
+ })
717
+ } else {
718
+ HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
719
+ }
720
+ HostApp.__callback__ = null
721
+ HostApp.__this__ = null
722
+ },
723
+ takePic(prop, title, index) {
724
+ HostApp.__callback__ = this.cameraCallBack
725
+ HostApp.__this__ = this
726
+ ////tag
727
+ ////tag
728
+ let fileName
729
+ if (prop == 'f_overall_path') {
730
+ if (!this.paper.f_overall_imgs[index] || this.paper.f_overall_imgs[index].f_overall_path.includes("nopic.png")) {
731
+ fileName = Util.guid() + '-' + prop + '.jpg'
732
+ } else {
733
+ fileName = Util.getFileName(this.paper.f_overall_imgs[index].f_overall_path)
734
+ }
735
+ } else {
736
+ if (!this.paper[prop] || this.paper[prop].includes("nopic.png")) {
737
+ fileName = Util.guid() + '-' + prop + '.jpg'
738
+ } else {
739
+ fileName = Util.getFileName(this.paper[prop])
740
+ }
741
+ }
742
+ let jingweidu = ''
743
+ if (this.$parent.$parent.is_has_jingweidu == 'true'){
744
+ const obj = HostApp.getGpsDetailAddress()
745
+ jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
746
+ }
747
+ HostApp._open_a_page({
748
+ type: 'boomerang',
749
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
750
+ param: {
751
+ file: fileName,
752
+ requestCode: 111,
753
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
754
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name + '\t' + this.paper.f_userinfo_code+ '\t' + this.paper.f_user_name+ '\t' + this.paper.f_address
755
+ +jingweidu
756
+ }
757
+ })
758
+ },
759
+ amrCallBack(fileName) {
760
+ HostApp.__this__.$set('paper.f_recording1_path', fileName)
761
+ HostApp.__callback__ = null
762
+ HostApp.__this__ = null
763
+ },
764
+ SignedContract(){
765
+ if(this.paper.f_sign_contract==undefined){
766
+ this.$showMessage('请先进行供气合同签名!')
767
+ return
768
+ }
769
+ //发送请求
770
+ let http = new HttpResetClass()
771
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/ajSignContract`, {data:{f_userinfoid:this.paper.f_userinfoid}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
772
+
773
+ })
774
+
775
+ },
776
+ record() {
777
+ if (this.$parent.$parent.role != 'inspect') {
778
+ if (this.paper.f_recording1_path != '') {
779
+ window.location = this.paper.f_recording1_path
780
+ }
781
+ } else {
782
+ HostApp.__callback__ = this.amrCallBack
783
+ HostApp.__this__ = this
784
+ let fileName
785
+ if (!this.paper.f_recording1_path) {
786
+ fileName = Util.guid() + '.amr'
787
+ } else {
788
+ fileName = Util.getFileName(this.paper.f_recording1_path)
789
+ }
790
+ HostApp._open_a_page({
791
+ type: 'boomerang',
792
+ page: 'com.aofeng.hybrid.android.peripheral.AudioClipActivity',
793
+ param: {file: fileName, requestCode: 111, callback: 'javascript:HostApp.__callback__("%s");'}
794
+ })
795
+ }
796
+ },
797
+ // 签名回调
798
+ signCallback1(prop, fileName) {
799
+ // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
800
+ HostApp.__this__.$set('paper.f_sign_contract', fileName)
801
+ HostApp.__callback__ = null
802
+ HostApp.__this__ = null
803
+ },
804
+ // 签名回调
805
+ signCallback(prop, fileName) {
806
+ // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
807
+ HostApp.__this__.$set('paper.f_sign_path', fileName)
808
+ HostApp.__callback__ = null
809
+ HostApp.__this__ = null
810
+ },
811
+ // 供气合同签名
812
+ sign1() {
813
+ this.delAudioFile('f_sign_contract', this.paper.f_sign_contract)
814
+ let prop = 'f_sign_contract'
815
+ let idx = 'aofeng'
816
+ let fileName
817
+ if (!this.paper.f_sign_contract) {
818
+ fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
819
+ } else {
820
+ fileName = Util.getFileName(this.paper.f_sign_contract)
821
+ }
822
+ HostApp.__callback__ = this.signCallback1
823
+ HostApp.__this__ = this
824
+ HostApp.getSignature({
825
+ file: fileName,
826
+ requestCode: 111,
827
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
828
+ })
829
+ },
830
+ // 用户签名
831
+ sign(param) {
832
+ if (!this.paper.f_read_instructions) {
833
+ this.$showMessage('请先阅读并勾选用户须知内容后进行签名!')
834
+ return
835
+ }
836
+ this.delAudioFile('f_sign_path', this.paper.f_sign_path)
837
+ let prop = 'f_sign_path'
838
+ let idx = 'aofeng'
839
+ let fileName
840
+ if (!this.paper.f_sign_path) {
841
+ fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
842
+ } else {
843
+ fileName = Util.getFileName(this.paper.f_sign_path)
844
+ }
845
+ HostApp.__callback__ = this.signCallback
846
+ HostApp.__this__ = this
847
+ HostApp.getSignature({
848
+ file: fileName,
849
+ requestCode: 111,
850
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
851
+ })
852
+ },
853
+ delfile(prop, fileName, index) {
854
+ if (fileName == Vue.nopic)
855
+ return
856
+ else {
857
+ if (prop == 'f_overall_path') {
858
+ this.paper.f_overall_imgs.splice(index, 1)
859
+ HostApp.delfile(fileName)
860
+ } else {
861
+ HostApp.delfile(fileName)
862
+ this.paper[prop] = Vue.nopic
863
+ }
864
+ }
865
+ },
866
+ delAudioFile(prop, fileName) {
867
+ if (!fileName)
868
+ return
869
+ else {
870
+ HostApp.delfile(fileName)
871
+ this.paper[prop] = null
872
+ }
873
+ },
874
+ //获取打印用户信息
875
+ getUser() {
876
+ if (this.paper.f_user_name == undefined)
877
+ this.paper.f_user_name = ''
878
+ this.printContent.push({
879
+ type: 3,
880
+ text: '用户名称:' + this.paper.f_user_name,
881
+ fontsize: 2,
882
+ isbold: false,
883
+ align: 'left'
884
+ })
885
+ if (this.paper.f_userinfo_code == undefined)
886
+ this.paper.f_userinfo_code = ''
887
+ this.printContent.push({
888
+ type: 3,
889
+ text: '用户编号:' + this.paper.f_userinfo_code,
890
+ fontsize: 2,
891
+ isbold: false,
892
+ align: 'left'
893
+ })
894
+ if (this.paper.f_address == undefined)
895
+ this.paper.f_address = ''
896
+ this.printContent.push({type: 3, text: '地址:' + this.paper.f_address, fontsize: 2, isbold: false, align: 'left'})
897
+ if (this.paper.f_user_phone == undefined)
898
+ this.paper.f_user_phone = ''
899
+ this.printContent.push({
900
+ type: 3,
901
+ text: '电话:' + this.paper.f_user_phone,
902
+ fontsize: 2,
903
+ isbold: false,
904
+ align: 'left'
905
+ })
906
+ },
907
+ verify() {
908
+ let hasError = this.$parent.$parent.verifyUser()
909
+ if (hasError)
910
+ return hasError
911
+ hasError = this.$parent.$parent.verifyDevices()
912
+ if (hasError)
913
+ return hasError
914
+ },
915
+ print() {
916
+ let errString = this.verify()
917
+ if (errString) {
918
+ ////tag
919
+ if (Vue.android)
920
+ this.$showMessage(errString)
921
+ return
922
+ }
923
+ // 文本
924
+ let templatename = '安检结果单'
925
+ if (Vue.config.safecheck != undefined) {
926
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
927
+ if (Vue.config.safecheck.ApproveConfig.templatename != undefined) {
928
+ templatename = Vue.config.safecheck.ApproveConfig.templatename
929
+ }
930
+ }
931
+ }
932
+ let textHead = {type: 3, text: templatename, fontsize: 3, isbold: true, align: 'center'}
933
+ let feedPageHead = {type: 4, value: 2, unit: 'line'}
934
+ let feedPageEnd = {type: 4, value: 4, unit: 'line'}
935
+ this.printContent.push(textHead)
936
+ this.printContent.push(feedPageHead)
937
+ this.getUser()
938
+ this.getDefect()
939
+ this.getCheck()
940
+ this.printContent.push(feedPageEnd)
941
+ let arrstr = JSON.stringify(this.printContent)
942
+ ////tag
943
+ this.$androidUtil.print(arrstr)
944
+ this.$set('printContent', [])
945
+ },
946
+ //打印安检信息
947
+ getCheck() {
948
+ let telephone = '96777'
949
+ if (Vue.config.safecheck != undefined) {
950
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
951
+ if (Vue.config.safecheck.ApproveConfig.checkphone != undefined) {
952
+ telephone = Vue.config.safecheck.ApproveConfig.checkphone
953
+ }
954
+ }
955
+ }
956
+ this.printContent.push({
957
+ type: 3,
958
+ text: '*******************************',
959
+ fontsize: 3,
960
+ isbold: false,
961
+ align: 'center'
962
+ })
963
+ this.printContent.push({type: 3, text: '咨询电话;' + telephone, fontsize: 2, isbold: false, align: 'left'})
964
+ this.printContent.push({type: 3, text: '安检人:' + Vue.user.name, fontsize: 2, isbold: false, align: 'left'})
965
+ this.printContent.push({
966
+ type: 3,
967
+ text: '安检时间:' + this.getNowFormatDate(),
968
+ fontsize: 2,
969
+ isbold: false,
970
+ align: 'left'
971
+ })
972
+ this.printContent.push({type: 3, text: '用户签字:', fontsize: 2, isbold: false, align: 'left'})
973
+ this.printContent.push({type: 4, value: 4, unit: 'line'})
974
+ },
975
+
976
+ getDefect() {
977
+ let showmore = false
978
+ if (Vue.config.safecheck != undefined) {
979
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
980
+ if (Vue.config.safecheck.ApproveConfig.showmore != undefined) {
981
+ showmore = Vue.config.safecheck.ApproveConfig.showmore
982
+ }
983
+ }
984
+ }
985
+
986
+ let backData = this.$parent.$parent.getAllDefect()
987
+ // 对隐患信息进行遍历
988
+ let res = JSON.parse(backData.f_defect_content)
989
+ this.printContent.push({
990
+ type: 3,
991
+ text: '安检结果:' + res.result,
992
+ fontsize: 2,
993
+ isbold: false,
994
+ align: 'left'
995
+ })
996
+ this.printContent.push({
997
+ type: 3,
998
+ text: '*******************************',
999
+ fontsize: 3,
1000
+ isbold: false,
1001
+ align: 'center'
1002
+ })
1003
+
1004
+
1005
+ if (showmore) {
1006
+ //全部打印
1007
+ for (let dev in this.$parent.$parent.config) {
1008
+ for (let device in backData) {
1009
+ if (device.startsWith("device")) {
1010
+ for (let item in backData[device]) {
1011
+ //遍历结果
1012
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
1013
+ let error = true
1014
+ for (let i in backData[device][item].f_items) {
1015
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1016
+ error = false
1017
+ }
1018
+ }
1019
+ if (error) {
1020
+ this.printContent.push({
1021
+ type: 3,
1022
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
1023
+ fontsize: 2,
1024
+ isbold: false,
1025
+ align: 'left'
1026
+ })
1027
+ } else {
1028
+ this.printContent.push({
1029
+ type: 3,
1030
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
1031
+ fontsize: 2,
1032
+ isbold: true,
1033
+ align: 'left'
1034
+ })
1035
+ }
1036
+
1037
+ for (let i in backData[device][item].f_items) {
1038
+ if (backData[device][item].f_items[i].f_item_value != '' && backData[device][item].f_items[i].f_item_value != null) {
1039
+ this.printContent.push({
1040
+ type: 3,
1041
+ text: backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
1042
+ fontsize: 2,
1043
+ isbold: false,
1044
+ align: 'left'
1045
+ })
1046
+ }
1047
+ }
1048
+ this.printContent.push({type: 4, value: 2, unit: 'line'})
1049
+ }
1050
+ }
1051
+ }
1052
+ }
1053
+ }
1054
+
1055
+ for (let dev in this.$parent.$parent.config) {
1056
+ for (let device in backData) {
1057
+ if (device.startsWith("device")) {
1058
+ for (let item in backData[device]) {
1059
+ //遍历结果
1060
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
1061
+ let error = true
1062
+ for (let i in backData[device][item].f_items) {
1063
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1064
+ error = false
1065
+ }
1066
+ }
1067
+ if (!error) {
1068
+ this.printContent.push({
1069
+ type: 3,
1070
+ text: '隐患:',
1071
+ fontsize: 2,
1072
+ isbold: true,
1073
+ align: 'left'
1074
+ })
1075
+ }
1076
+ }
1077
+ }
1078
+ }
1079
+ }
1080
+ for (let device in backData) {
1081
+ if (device.startsWith("device")) {
1082
+ for (let item in backData[device]) {
1083
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
1084
+ for (let i in backData[device][item].f_items) {
1085
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1086
+ this.printContent.push({
1087
+ type: 3,
1088
+ text: backData[device][item].f_items[i].f_item_name + ' ' + backData[device][item].f_items[i].f_item_value,
1089
+ fontsize: 2,
1090
+ isbold: true,
1091
+ align: 'left'
1092
+ })
1093
+ }
1094
+ }
1095
+ }
1096
+ }
1097
+ }
1098
+ }
1099
+
1100
+ }
1101
+ } else {
1102
+ for (let dev in this.$parent.$parent.config) {
1103
+ for (let device in backData) {
1104
+ if (device.startsWith("device")) {
1105
+ for (let item in backData[device]) {
1106
+ //遍历结果
1107
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
1108
+ let error = true
1109
+ for (let i in backData[device][item].f_items) {
1110
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1111
+ error = false
1112
+ }
1113
+ }
1114
+ if (error) {
1115
+ this.printContent.push({
1116
+ type: 3,
1117
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
1118
+ fontsize: 2,
1119
+ isbold: false,
1120
+ align: 'left'
1121
+ })
1122
+ } else {
1123
+ this.printContent.push({
1124
+ type: 3,
1125
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
1126
+ fontsize: 2,
1127
+ isbold: false,
1128
+ align: 'left'
1129
+ })
1130
+ }
1131
+
1132
+ for (let i in backData[device][item].f_items) {
1133
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
1134
+ this.printContent.push({
1135
+ type: 3,
1136
+ text: '隐患:' + backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
1137
+ fontsize: 2,
1138
+ isbold: false,
1139
+ align: 'left'
1140
+ })
1141
+ }
1142
+ }
1143
+ this.printContent.push({type: 4, value: 2, unit: 'line'})
1144
+ }
1145
+ }
1146
+ }
1147
+ }
1148
+ }
1149
+ }
1150
+ },
1151
+ //获取当前时间
1152
+ getNowFormatDate() {
1153
+ var date = new Date();
1154
+ var seperator1 = "-";
1155
+ var seperator2 = ":";
1156
+ var month = date.getMonth() + 1;
1157
+ var strDate = date.getDate();
1158
+ if (month >= 1 && month <= 9) {
1159
+ month = "0" + month;
1160
+ }
1161
+ if (strDate >= 0 && strDate <= 9) {
1162
+ strDate = "0" + strDate;
1163
+ }
1164
+ var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1165
+ + " " + date.getHours() + seperator2 + date.getMinutes()
1166
+ + seperator2 + date.getSeconds();
1167
+ return currentdate;
1168
+ },
1169
+ readRepair() {
1170
+ let url = this.$androidUtil.getProxyUrl()
1171
+ let gen = getRepairs(this, url)
1172
+ return co(gen)
1173
+ },
1174
+ showToRepair() {
1175
+ let res = this.hasDefect()
1176
+ ////tag
1177
+ ////tag
1178
+ if (res == '正常') {
1179
+ this.showrepair = false
1180
+ } else {
1181
+ this.showrepair = true
1182
+ this.assignObj()
1183
+ }
1184
+ this.showCheckToRepair = !this.showCheckToRepair
1185
+ },
1186
+ // 选中部门
1187
+ reres(val) {
1188
+ if (val.res == undefined) {
1189
+ return
1190
+ }
1191
+ this.$parent.$parent.model.serviceacitivity[0].f_meetunit = val.res
1192
+ this.$parent.$parent.model.f_meetunit = val.res
1193
+ this.$parent.$parent.model.f_orgstr = val.resids
1194
+ var arr = val.res.split('.')
1195
+ this.$parent.$parent.model.f_outlets = arr[arr.length - 1]
1196
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.resids
1197
+ },
1198
+ assignObj() {
1199
+ this.$parent.$parent.model.f_contact_phone = this.paper.f_user_phone
1200
+ this.$parent.$parent.model.f_user_name = this.paper.f_user_name
1201
+ this.$parent.$parent.model.f_address = this.paper.f_address
1202
+ this.$parent.$parent.model.f_user_type = this.paper.f_check_type
1203
+ this.$parent.$parent.model.f_street = this.paper.f_street
1204
+ this.$parent.$parent.model.f_residential_area = this.paper.f_residential_area
1205
+ this.$parent.$parent.model.f_building = this.paper.f_building
1206
+ this.$parent.$parent.model.f_unit = this.paper.f_unit
1207
+ this.$parent.$parent.model.f_floor = this.paper.f_floor
1208
+ this.$parent.$parent.model.f_room = this.paper.f_room
1209
+ this.$parent.$parent.model.f_floor = this.paper.f_floor
1210
+ this.$parent.$parent.model.f_userinfo_id = this.paper.f_userinfoid
1211
+ this.$parent.$parent.model.f_userinfo_code = this.paper.f_userinfo_code
1212
+ },
1213
+ hasDefect() {
1214
+ let checkResult = '正常'
1215
+ let codata = JSON.parse(JSON.stringify(this.paper))
1216
+ for (let device in this.paper) {
1217
+ if (device.startsWith("device")) {
1218
+ for (let item in this.paper[device]) {
1219
+ for (let i in this.paper[device][item].f_items) {
1220
+ let items = this.paper[device][item].f_items[i]
1221
+ ////tag
1222
+ if (items.f_is_defect == true || items.f_is_defect == 'true') {
1223
+ checkResult = '有隐患'
1224
+ }
1225
+ }
1226
+ }
1227
+ }
1228
+ }
1229
+ return checkResult
1230
+ },
1231
+ uploadPaper() {
1232
+ if (this.showrepair) {
1233
+ ////tag
1234
+ ////tag
1235
+ ////tag
1236
+ ////tag
1237
+
1238
+ if (this.meading == '转维修员' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1239
+ this.$showMessage("请选择维修员!")
1240
+ return
1241
+ }
1242
+ if (this.$parent.$parent.meading == '转站点' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1243
+ this.$showMessage("请选择站点!")
1244
+ return
1245
+ }
1246
+ if (this.$parent.$parent.model.f_repairtype == '') {
1247
+ this.$showMessage("请选择报修类型!")
1248
+ return
1249
+ }
1250
+ this.$parent.$parent.isToRepair = true
1251
+ this.$parent.$parent.uploadCheckPaper()
1252
+ // this.$parent.$parent.savePaper(false).then((res) => {
1253
+ // ////tag
1254
+ // if(res != true){
1255
+ // ////tag
1256
+ // return
1257
+ // }else{
1258
+ // this.$parent.$parent.todo()
1259
+ // }
1260
+ // })
1261
+ } else {
1262
+ this.$parent.$parent.undo()
1263
+ }
1264
+
1265
+ },
1266
+ //确认安检转维修
1267
+
1268
+ undo() {
1269
+ this.showCheckToRepair = !this.showCheckToRepair
1270
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = ''
1271
+ this.$parent.$parent.model.serviceacitivity[0].f_meetunit = ''
1272
+ this.$parent.$parent.model.f_repairtype = ''
1273
+ this.meading = '转站点'
1274
+ },
1275
+ //取消拉黑
1276
+ async deletebacklist() {
1277
+ if (!this.deletecause) {
1278
+ this.$showMessage("请填写取消拉黑原因!")
1279
+ return
1280
+ }
1281
+ this.paper.f_blocking_cause = this.deletecause
1282
+ ////tag)
1283
+ let http = new HttpResetClass()
1284
+ ////tag
1285
+ let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1286
+ data: {
1287
+ items: "version",
1288
+ tablename: "t_userinfo",
1289
+ condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1290
+ orderitem: "f_userinfo_id"
1291
+ }
1292
+ }, {resolveMsg: null, rejectMsg: null})
1293
+ ////tag)
1294
+ ////tag
1295
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1296
+ data: {
1297
+ "f_operat_type": "取消拉黑",
1298
+ "f_state": "有效",
1299
+ "f_user_name": this.paper.f_user_name,
1300
+ "f_comments": this.paper.f_delete_cause,
1301
+ "f_operator": Vue.user.name,
1302
+ "f_operatorid": Vue.user.id,
1303
+ "f_orgid": Vue.user.orgid,
1304
+ "f_orgname": Vue.user.orgs,
1305
+ "f_depid": Vue.user.depids,
1306
+ "f_depname": Vue.user.deps,
1307
+ "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行取消拉黑`,
1308
+ "f_userinfo_id": {
1309
+ "f_userinfo_id": this.paper.f_userinfoid,
1310
+ "f_user_state": "正常",
1311
+ "version": res1.data[0].version
1312
+ },
1313
+ "f_limit_times":"",
1314
+ "f_limit_value":""
1315
+ }
1316
+ }, {resolveMsg: null, rejectMsg: null})
1317
+
1318
+ ////tag)
1319
+ if (res2.data.code == 200) {
1320
+ this.showmodelthree = false
1321
+ this.deleteenabled = true
1322
+ this.paper.f_blacklist = "否"
1323
+ this.$showMessage("取消该用户限制购气成功!")
1324
+ } else {
1325
+ this.$showMessage("网络异常,请稍后再试!")
1326
+ }
1327
+ },
1328
+ async backlist() {
1329
+ if (!this.cause) {
1330
+ this.$showMessage("请填写拉黑原因!")
1331
+ return
1332
+ }
1333
+ this.paper.f_blocking_cause = this.cause
1334
+
1335
+ let http = new HttpResetClass()
1336
+
1337
+ // let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1338
+ // data: {
1339
+ // items: "version",
1340
+ // tablename: "t_userinfo",
1341
+ // condition: "f_userinfo_id=" + this.plan.f_userinfoid,
1342
+ // orderitem: "f_userinfo_id"
1343
+ // }
1344
+ // }, {resolveMsg: null, rejectMsg: null})
1345
+ // let url = self.newConfig == '是' ? '/safecheck/rs/safe_vue' : '/safecheck/rs/vue'
1346
+ // let res = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
1347
+ // data: {
1348
+ // items: 'f_dir',
1349
+ // tablename: 't_organization',
1350
+ // condition: `id = '${Vue.user.orgid}'`,
1351
+ // orderitem: 'id'
1352
+ // }
1353
+ // })
1354
+ // let res3 = await new HttpResetClass().load('GET', `${url}/ApproveConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
1355
+ // resolveMsg: '获取居民配置项成功!',
1356
+ // rejectMsg: '获取居民配置项出错!'
1357
+ // })
1358
+ // Vue.config.safecheck.ApproveConfig = res3.data
1359
+ let limit_times=1
1360
+ let limit_value=20
1361
+ let limit_amount=30
1362
+ console.log(Vue.config)
1363
+ if(Vue.config.safecheck ){
1364
+ if (Vue.config.safecheck.ApproveConfig.limit_times ){
1365
+ limit_times = Vue.config.safecheck.ApproveConfig.limit_times
1366
+ }
1367
+ if (Vue.config.safecheck.ApproveConfig.userValueQ && Vue.config.safecheck.ApproveConfig.noUserValueQ){
1368
+ if (this.plan.f_user_type == '民用'){
1369
+ limit_value = Vue.config.safecheck.ApproveConfig.userValueQ
1370
+ }else {
1371
+ limit_value = Vue.config.safecheck.ApproveConfig.noUserValueQ
1372
+ }
1373
+ }
1374
+ if (Vue.config.safecheck.ApproveConfig.userValueJ && Vue.config.safecheck.ApproveConfig.noUserValueJ){
1375
+ if (this.plan.f_user_type == '民用'){
1376
+ limit_amount = Vue.config.safecheck.ApproveConfig.userValueJ
1377
+ }else {
1378
+ limit_amount = Vue.config.safecheck.ApproveConfig.noUserValueJ
1379
+ }
1380
+ }
1381
+ }
1382
+
1383
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1384
+ data: {
1385
+ data:this.$parent.$parent.data,
1386
+ item:this.$parent.$parent.data.item,
1387
+ "f_operat_type": "拉黑",
1388
+ "f_state": "有效",
1389
+ "f_user_name": this.plan.f_user_name,
1390
+ "f_comments": this.paper.f_blocking_cause,
1391
+ "f_operator": Vue.user.name,
1392
+ "f_operate_date":Util.toStandardTimeString(),
1393
+ "f_operatorid": Vue.user.id,
1394
+ "f_orgid": Vue.user.orgid,
1395
+ "f_orgname": Vue.user.orgs,
1396
+ "f_depid": Vue.user.depids,
1397
+ "f_depname": Vue.user.deps,
1398
+ "f_describe": `${Vue.user.name}对用户${this.plan.f_user_name}进行拉黑`,
1399
+ "f_userinfo_id": {
1400
+ "f_userinfo_id": this.plan.f_userinfoid
1401
+ },
1402
+ "f_limit_times":limit_times,
1403
+ "f_limit_value":limit_value,
1404
+ "f_limit_amount":limit_amount
1405
+ }
1406
+ }, {resolveMsg: null, rejectMsg: null})
1407
+
1408
+ ////tag)
1409
+ if (res2.data.code == 200) {
1410
+ this.showmodel = false
1411
+ this.enabled = true
1412
+ this.paper.f_blacklist = "是"
1413
+ this.$showMessage("将该用户限制购气成功!")
1414
+ } else if (res2.data.msg == '数据增加重复') {
1415
+ this.showmodel = false
1416
+ this.enabled = true
1417
+ this.$showMessage("该用户已被限制购气,请勿重复提交!")
1418
+ } else {
1419
+ this.$showMessage("网络异常,请稍后再试!")
1420
+ }
1421
+ },
1422
+ cancel() {
1423
+ this.backlistisselect = false
1424
+ this.showmodel = false
1425
+ },
1426
+ deletecancel() {
1427
+ this.deletebacklistisselect = false
1428
+ this.showmodelthree = false
1429
+ },
1430
+ repiarmancg(val) {
1431
+ if (val) {
1432
+ ////tag
1433
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.name
1434
+ let http1 = new HttpResetClass()
1435
+ http1.load('POST', `${this.Url}/rs/sql/tel_singleTable_OrderBy`, {
1436
+ data: {
1437
+ items: 'f_user_telephone',
1438
+ tablename: 't_user',
1439
+ condition: `name = '${val}'`,
1440
+ orderitem: 'id'
1441
+ }
1442
+ }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
1443
+ this.$parent.$parent.model.f_repairman_phone = ress.data[0].f_user_telephone
1444
+ })
1445
+ }
1446
+ },
1447
+ },
1448
+ async ready() {
1449
+ this.newConfig = this.$appdata.getSingleValue('配置中心获取文件') ? this.$appdata.getSingleValue('配置中心获取文件') : '';
1450
+ this.getEmp()
1451
+ this.isRecodr = this.$appdata.getSingleValue('无限制录音')
1452
+ if(this.$appdata.getSingleValue('安检时显示拉黑')){
1453
+ this.showbacklist = this.$appdata.getSingleValue('安检时显示拉黑');
1454
+ }
1455
+ // await this.isoverDate()
1456
+ ////tag
1457
+ ////tag
1458
+ ////tag)
1459
+ ////tag))
1460
+ if (this.$parent.$parent.role == 'repair') {
1461
+ this.$set('style__', 'divmask')
1462
+ this.$set('style_view_', '')
1463
+ } else if (this.$parent.$parent.role == 'view' || this.$parent.$parent.item.f_upload_state == '已传') {
1464
+ this.$set('style__', 'divmask')
1465
+ this.$set('style_view_', 'divmask')
1466
+ ////tag
1467
+ } else {
1468
+ this.$set('style__', '')
1469
+ this.$set('style_view_', '')
1470
+ }
1471
+
1472
+ for (let item of this.radios) {
1473
+ if (this.paper.f_client_evaluation == item.label) {
1474
+ item.isChecked = true;
1475
+ }
1476
+ }
1477
+ if (!this.paper.f_notified_path)
1478
+ this.$set('paper.f_notified_path', Vue.nopic)
1479
+ if (!this.paper.f_sign_path)
1480
+ this.$set('paper.f_sign_path', Vue.nopic)
1481
+ if (!this.paper.f_sign_path)
1482
+ this.$set('paper.f_sign_contract', Vue.nopic)
1483
+ ////tag
1484
+ if (!this.paper.f_overall_imgs) {
1485
+ let imgs = []
1486
+ // imgs.push({f_overall_path:Vue.nopic})
1487
+ this.$set('paper.f_overall_imgs', imgs)
1488
+ ////tag
1489
+ }
1490
+ if (!this.paper.f_overall2_path)
1491
+ this.$set('paper.f_overall2_path', Vue.nopic)
1492
+
1493
+ this.userid = this.role == 'view' ? this.$login.f.id : Vue.user.id
1494
+ if (Vue.config.safecheck != undefined) {
1495
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
1496
+ if (Vue.config.safecheck.ApproveConfig.safeCheckToRepair != undefined) {
1497
+ this.safeCheckToRepair = Vue.config.safecheck.ApproveConfig.safeCheckToRepair
1498
+ }
1499
+ }
1500
+ }
1501
+ let device = this.$parent.$parent.data
1502
+ for (const deviceitem in device) {
1503
+ if (deviceitem.startsWith('device')){
1504
+ //tag)
1505
+ if(device[deviceitem].length == 0){
1506
+ continue
1507
+ }
1508
+ let items = device[deviceitem][0].f_items
1509
+ let deviceType = device[deviceitem][0].f_device_type
1510
+ for (let i = 0; i < items.length; i++) {
1511
+ if (items[i].f_is_defect){
1512
+ let reason = items[i].f_item_name+":"
1513
+ if (items[i].type === 'selector' || items[i].type === 'radio' || items[i].type === 'checkbox'){
1514
+ for (let j = 0; j < items[i].f_item_value.length; j++) {
1515
+ if (j+1 === items[i].f_item_value.length){
1516
+ reason += items[i].f_item_value[j]
1517
+ }else{
1518
+ reason += items[i].f_item_value[j] + ","
1519
+ }
1520
+ }
1521
+ }else{
1522
+ reason += items[i].f_item_value
1523
+ }
1524
+ if (items[i].f_path){
1525
+ this.defectImgs.push(items[i].f_path)
1526
+ }
1527
+ if (items[i].f_p1_path){
1528
+ this.defectImgs.push(items[i].f_p1_path)
1529
+ }
1530
+ if (items[i].f_p2_path){
1531
+ this.defectImgs.push(items[i].f_p2_path)
1532
+ }
1533
+ if (items[i].f_p3_path){
1534
+ this.defectImgs.push(items[i].f_p3_path)
1535
+ }
1536
+ if (items[i].tooltip){
1537
+ this.defectToolTip.push(items[i].tooltip)
1538
+ }
1539
+ this.defectReason.push({device:deviceType,deviceitem:reason})
1540
+ }else if(items[i].type === 'errorstring' && items[i].f_item_value ){
1541
+ let reason = items[i].f_item_name+":" + items[i].f_item_value
1542
+ this.defectReason.push({device:deviceType,deviceitem:reason})
1543
+ }
1544
+
1545
+ }
1546
+ }
1547
+ }
1548
+ ////tag
1549
+ ////tag
1550
+ //tag
1551
+ ////tag
1552
+ //tag)
1553
+ //tag)
1554
+ //tag)
1555
+ ////tag
1556
+ ////tag
1557
+ ////tag
1558
+ },
1559
+ watch: {
1560
+ '$parent.$parent.isUpload'(val) {
1561
+ ////tag
1562
+ },
1563
+ 'meading'(val) {
1564
+ ////tag
1565
+ this.$parent.$parent.meading = val
1566
+ },
1567
+ 'backlistisselect'(val) {
1568
+ if (val == true) {
1569
+ this.showmodel = true
1570
+ this.deletebacklistisselect=false
1571
+ }
1572
+ },
1573
+ 'backlistisselectTY'(val) {
1574
+ if (val == true) {
1575
+ this.showTYModel = true
1576
+ }
1577
+ },
1578
+ 'deletebacklistisselect'(val) {
1579
+ if (val == true) {
1580
+ this.showmodelthree = true
1581
+ this.backlistisselect=false
1582
+ }
1583
+ },
1584
+ 'isRecodr'(val) {
1585
+ if (val == 'false' || val == undefined || val == null || val == '' || val == 'undefined') {
1586
+ this.isRecodr = "false";
1587
+ }
1588
+ }
1589
+ }
1590
+ }
1591
+ </script>
1592
+ <style scoped>
1593
+ .panel-self{
1594
+ border-radius: 5px;
1595
+ border:1px solid #c5e1f7;
1596
+ background-color: #F2F6FA;
1597
+ }
1598
+ .text-left{
1599
+ text-align:left;
1600
+ }
1601
+ .font{
1602
+ font: 15px PingFang-SC-Medium;
1603
+ color: #333333;
1604
+ }
1605
+ .showIi{
1606
+ font: 14px PingFang-SC-Medium;
1607
+ color: #666666;
1608
+ }
1609
+ .info{
1610
+ margin-top: 15px;
1611
+ border-radius: 5px;
1612
+ background-color: #f3faff;
1613
+ }
1614
+ .btn-photo{
1615
+ border: 0;
1616
+ border-radius: 7px;
1617
+ background-color: #7dc1f4;
1618
+ font: 15px PingFang-SC-Bold;
1619
+ height: 20%;
1620
+ }
1621
+ .div-photo{
1622
+ width: auto;
1623
+ height: auto;
1624
+ /* margin-top: 10px; */
1625
+ position: absolute;
1626
+ bottom: 10px;
1627
+ right: 10px;
1628
+ }
1629
+ .btn-voice{
1630
+ border-radius: 7px;
1631
+ border: 1px solid #dedede;
1632
+ background-color: #f5fbff;
1633
+ font: 15px PingFang-SC-Bold;
1634
+ color: #499edf;
1635
+ }
1636
+ .save-btn{
1637
+ width: 25%;
1638
+ background-color:#499edf;
1639
+ border-radius: 6px;
1640
+ color: #FFFFFF;
1641
+ font: 15px PingFang-SC-Bold;
1642
+ }
1643
+ .upload-btn{
1644
+ width: 25%;
1645
+ background-color:#ffffff;
1646
+ border: 1px solid #499edf;
1647
+ border-radius: 6px;
1648
+ color: #499edf;
1649
+ font: 15px PingFang-SC-Bold;
1650
+ }
1651
+ .repair-btn{
1652
+ width: 25%;
1653
+ border: 1px solid #499edf;
1654
+ border-radius: 6px;
1655
+ font: 15px PingFang-SC-Bold;
1656
+ }
1657
+ #el_ca_tx{
1658
+ width: 100%;
1659
+ margin: 5px;
1660
+ }
1661
+ #el_ca_txt{
1662
+ width: 100%;
1663
+ margin: 5px;
1664
+ }
1665
+ </style>