safecheck-client 3.0.35-48 → 3.0.35-50

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