safecheck-client 4.0.2-6 → 4.0.2-60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/package.json +1 -1
  2. package/src/components/NewDefectList/DefectPaperNew.vue +1184 -1184
  3. package/src/components/android/AndroidNotifiedDeal.vue +417 -0
  4. package/src/components/android/PhoneUpUserinfo.vue +1249 -1249
  5. package/src/components/android/SafeRightTree.vue +218 -218
  6. package/src/components/android/SafecheckDevices.vue +1340 -1340
  7. package/src/components/android/week/CheckResultSimple.vue +251 -0
  8. package/src/components/android/week/FirstWeekCheck.vue +275 -0
  9. package/src/components/android/week/StepHeaderBar.vue +457 -0
  10. package/src/components/android/week/WeekCheck.vue +209 -0
  11. package/src/components/android/week/WeekCheckPaper.vue +219 -0
  12. package/src/components/android/week/WeekCheckPlan.vue +145 -0
  13. package/src/components/checkplan/SelectCheckPlan.vue +39 -0
  14. package/src/components/paper/safetyledger.vue +198 -0
  15. package/src/components/pc/CheckBook.vue +303 -303
  16. package/src/components/pc/CheckBookArea.vue +146 -146
  17. package/src/components/pc/CheckBookCompany.vue +144 -144
  18. package/src/components/pc/CheckBookDetails.vue +161 -161
  19. package/src/components/pc/CheckBookEntry.vue +60 -60
  20. package/src/components/pc/CheckBookSearchArea.vue +560 -560
  21. package/src/components/pc/CheckBookSearchUnit.vue +229 -229
  22. package/src/components/pc/CheckBookSearchUser.vue +659 -659
  23. package/src/components/pc/CheckBookSearchUserList.vue +674 -674
  24. package/src/components/pc/DefectDeal.vue +6 -2
  25. package/src/components/planmanage/checkUserList.vue +1 -1
  26. package/src/components/querycheckpaper/CheckSearchUser.vue +2 -1
  27. package/src/components/report/CheckPlanAreaList.vue +53 -7
  28. package/src/filiale/jinhong/android/AndroidDefectDeal.vue +722 -0
  29. package/src/filiale/jinhong/android/AndroidNotifiedDeal.vue +521 -0
  30. package/src/filiale/jinhong/android/CurrentCreate.vue +35 -13
  31. package/src/filiale/jinhong/android/PhoneInsurancePurchaseDetail.vue +28 -3
  32. package/src/filiale/jinhong/android/SafecheckOrderV.vue +2300 -0
  33. package/src/filiale/jinhong/android.js +4 -1
  34. package/src/filiale/jinhong/pc/CheckBookList.vue +28 -18
  35. package/src/filiale/jinhong/pc/CheckSearchUser.vue +42 -2
  36. package/src/filiale/jinhong/pc/NewCheckpaper.vue +1958 -0
  37. package/src/filiale/jinhong/pc/PaperList.vue +5 -1
  38. package/src/filiale/jinhong/pc/checkPlanList.vue +73 -24
  39. package/src/filiale/jinhong/pc.js +1 -0
  40. package/src/filiale/meihekou/android/CheckPlanList.vue +198 -198
  41. package/src/filiale/meihekou/android/CheckPlanListArea.vue +190 -190
  42. package/src/filiale/meihekou/android/CurrentCreate.vue +16 -0
  43. package/src/filiale/meihekou/android/PaperFeedback.vue +1545 -1542
  44. package/src/filiale/meihekou/android/SafecheckDevices.vue +1343 -1340
  45. package/src/filiale/meihekou/android/SafecheckOrderV.vue +27 -28
  46. package/src/filiale/meihekou/android.js +22 -22
  47. package/src/filiale/meihekou/pc/CheckDetail.vue +217 -0
  48. package/src/filiale/meihekou/pc/CheckPlan.vue +52 -0
  49. package/src/filiale/meihekou/pc/CheckPlanAreaList.vue +505 -0
  50. package/src/filiale/meihekou/pc/NewCheckpaper.vue +2 -1
  51. package/src/filiale/meihekou/pc/NewCheckpaperNew.vue +2051 -2050
  52. package/src/filiale/meihekou/pc/NewCheckpaperTemp.vue +1 -0
  53. package/src/filiale/meihekou/pc/SelectCheckPlan.vue +262 -0
  54. package/src/filiale/meihekou/pc.js +18 -15
  55. package/src/filiale/qingjian/pc/SecurityCheckCoordinates.vue +2 -2
  56. package/src/filiale/taiyuan/android/AddPlanItem.vue +457 -456
  57. package/src/filiale/taiyuan/android/SafecheckDevices.vue +1343 -0
  58. package/src/filiale/taiyuan/android/SafecheckOrderV.vue +2347 -2347
  59. package/src/filiale/taiyuan/android.js +1 -0
  60. package/src/filiale/xinkang/android/SafecheckDevices.vue +2 -2
  61. package/src/filiale/xinkang/android/SafecheckOrderV.vue +9 -2
  62. package/src/filiale/xinkang/pc/NewCheckpaper.vue +17 -46
  63. package/src/filiale/xinliansihui/pc/PaperList.vue +814 -0
  64. package/src/filiale/xinliansihui/pc/PaperVisitMain.vue +206 -0
  65. package/src/filiale/xinliansihui/pc.js +13 -0
  66. package/src/safecheck-android.js +12 -0
  67. package/src/safecheck.js +3 -0
@@ -0,0 +1,417 @@
1
+ <style scoped>
2
+ .bg {
3
+ background-color: blue;
4
+ height: 1px;
5
+ border: 0;
6
+ }
7
+
8
+ .app-row {
9
+ background-color: white;
10
+ padding: 10px 10px 0 10px;
11
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
12
+ }
13
+
14
+ .search_input {
15
+ border: 0;
16
+ outline: none;
17
+ }
18
+
19
+ .font {
20
+ font: 15px PingFang-SC-Medium;
21
+ color: #666666;
22
+ }
23
+
24
+ .input-font {
25
+ font: 15px PingFang-SC-Medium;
26
+ color: #333333;
27
+ }
28
+
29
+ .btn-font {
30
+ font: 600 16px PingFang-SC-Bold;
31
+ color: #499EDF;
32
+ }
33
+
34
+ .btn-color {
35
+ background-color: #FFFFFF;
36
+ border-radius: 10px;
37
+ border: 1px solid #499EDF;
38
+ }
39
+
40
+ .app-text {
41
+ font-size: 12px;
42
+ }
43
+
44
+ .panel-self {
45
+ border-radius: 10px;
46
+ border: 1px solid #499EDF;
47
+ background-color: #F8F8F8;
48
+ }
49
+
50
+ .yybtn-color {
51
+ background-color: #499edf;
52
+ border-radius: 4px;
53
+ border: 1px solid #499EDF;
54
+ color: #FFFFFF;
55
+ font: 14px PingFang-SC-Bold;
56
+ }
57
+
58
+ .qxbtn-color {
59
+ background-color: #FFFFFF;
60
+ border-radius: 4px;
61
+ color: #499edf;
62
+ font: 14px PingFang-SC-Bold;
63
+ border: 1px solid #499EDF;
64
+ }
65
+
66
+ .button_shrink_top {
67
+ width: 35px;
68
+ height: 35px;
69
+ background-size: 100%;
70
+ background-image: url("../../../static/newStyle/stretch_top.png")
71
+ }
72
+
73
+ .button_shrink_bottom {
74
+ width: 35px;
75
+ height: 35px;
76
+ background-size: 100%;
77
+ background-image: url("../../../static/newStyle/stretch_bottom.png")
78
+ }
79
+
80
+ .button_shrink_left {
81
+ width: 35px;
82
+ height: 35px;
83
+ background-size: 100%;
84
+ background-image: url("../../../static/newStyle/stretch_left.png")
85
+ }
86
+
87
+ .button_shrink_right {
88
+ width: 35px;
89
+ height: 35px;
90
+ background-size: 100%;
91
+ background-image: url("../../../static/newStyle/stretch_right.png")
92
+ }
93
+ </style>
94
+ <template>
95
+ <div style="height: auto;width: 100%">
96
+ <criteria-paged :model="model" v-ref:paged>
97
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
98
+ <div partial>
99
+ <form>
100
+ <div class="row app-row">
101
+ <div class="col-xs-4">
102
+ <img src="../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
103
+ <label class="font text-left">用户姓名:</label>
104
+ </div>
105
+ <div class="col-xs-8">
106
+ <input class="search_input input-font" v-model=model.f_user_name
107
+ condition="tcp.f_user_name like '%{}%'"/>
108
+ </div>
109
+ </div>
110
+ <div class="row app-row">
111
+ <div class="col-xs-4">
112
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
113
+ <label for="f_userinfo_code" class="font text-left">用户编号:</label>
114
+ </div>
115
+ <div class="col-xs-8">
116
+ <input id="f_userinfo_code" class="search_input input-font"
117
+ v-model=model.f_userinfo_code condition="tcp.f_userinfo_code like '%{}%'"/>
118
+ </div>
119
+ </div>
120
+ <div class="row app-row">
121
+ <div class="col-xs-4">
122
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
123
+ <label for="f_userinfo_code" class="font text-left">安检人员:</label>
124
+ </div>
125
+ <div class="col-xs-8">
126
+ <input id="f_userinfo_code" class="search_input input-font"
127
+ v-model=model.f_checker_name condition="tcp.f_checker_name like '%{}%'"/>
128
+ </div>
129
+ </div>
130
+ <div class="row app-row">
131
+ <div class="col-xs-4">
132
+ <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
133
+ <label class="font text-left">用户地址:</label>
134
+ </div>
135
+ <div class="col-xs-8">
136
+ <input class="search_input input-font"
137
+ v-model=model.f_address condition="tcp.f_address like '%{}%'"/>
138
+ </div>
139
+ </div>
140
+ <div class="row text-center" style="margin-top: 20px;">
141
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;"
142
+ @click="$parent.$parent.selfSearch">查询
143
+ </button>
144
+ <div style="float: right;margin-right: 3% " class="button_spacing"
145
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
146
+ @click="$parent.$parent.hidden()"></div>
147
+ </div>
148
+ <div style="height:30px;"></div>
149
+ </form>
150
+ </div>
151
+ </criteria>
152
+ <list :model="model" partial='list'>
153
+ <div partial>
154
+ <div class="auto app-text" style="margin-top: 5px;">
155
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
156
+ <div class="panel-body panel-self">
157
+ <div class="col-xs-12">
158
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
159
+ <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
160
+ </div>
161
+ <div class="col-xs-12">
162
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
163
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
164
+ </div>
165
+ <div class="col-xs-12">
166
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>用户电话:</b></p>
167
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_user_phone }}</p>
168
+ </div>
169
+ <div class="col-xs-12">
170
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
171
+ <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
172
+ </div>
173
+ <div class="col-xs-12">
174
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>安检员:</b></p>
175
+ <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_checker_name }}</p>
176
+ </div>
177
+ <div class="col-xs-12">
178
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>安检时间:</b></p>
179
+ <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_offsite_time }}</p>
180
+ </div>
181
+ <div class="col-xs-12">
182
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>隐患内容:</b></p>
183
+ <p class="panel-title text-left input-font" style="width: 79%">{{ $parent.$parent.$parent.trouble(row.f_defect_content) }}</p>
184
+ </div>
185
+ <div class="col-xs-12">
186
+ <button type="button" name="button" class="btn btn-primary"
187
+ style="background-color:#499edf;float: right;margin-right:10px;"
188
+ @click="$parent.$parent.$parent.openshowModal1(row)">上传隐患通知单
189
+ </button>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </list>
196
+ </criteria-paged>
197
+ </div>
198
+ <modal :show.sync="showModal1">
199
+ <div slot="modal-header" class="modal-header">
200
+ <h4 class="modal-title">
201
+ 隐患通知单
202
+ </h4>
203
+ </div>
204
+ <div slot="modal-body" class="modal-body">
205
+ <div class="form-group col-sm-12">
206
+ <div class="auto">
207
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
208
+ <div class="panel-body panel-self"
209
+ style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
210
+ <img-self :src="deal.f_notified_path" alt="整改照片" :width="140" :height="170" capture="camera"
211
+ type="file"></img-self>
212
+ <div class="row text-right div-photo" style="height: 50px;margin-top: -30px">
213
+ <img src="../../assets/remove.png" @click="delfile('f_notified_path', deal.f_notified_path)"></img>
214
+ <button type="button" name="button" class="btn btn-primary btn-photo"
215
+ @click="takePic('f_notified_path','整改照片')">拍照
216
+ </button>
217
+ </div>
218
+ </div>
219
+ </div>
220
+ </div>
221
+ </div>
222
+ </div>
223
+ <div slot="modal-footer" class="modal-footer">
224
+ <button type="button" class="btn btn-default" @click="commitDealDefect">确认</button>
225
+ <button type="button" class="btn btn-default" @click="closeshowModal1">取消</button>
226
+ </div>
227
+ </modal>
228
+ </template>
229
+
230
+ <script>
231
+ import Vue from 'vue'
232
+ import {HttpResetClass, PagedList} from 'vue-client'
233
+ import * as Util from '../Util'
234
+ export default {
235
+ components: {
236
+ },
237
+ title: '隐患通知单上传',
238
+ data() {
239
+ return {
240
+ row:{},
241
+ showModal: false,
242
+ showModal1: false,
243
+ showimg: '',
244
+ DefectConfigs:[],
245
+ deal: {
246
+ result:{
247
+ f_userinfo_code: '',
248
+ },
249
+ paperid: '',
250
+ f_notified_path: '',
251
+ f_dealer: Vue.user.name,
252
+ f_dealer_id: Vue.user.id
253
+ },
254
+ user_types: [
255
+ {label: '请选择用户类型', value: ''},
256
+ {label: '民用', value: '民用'},
257
+ {label: '非民用', value: '非民用'},
258
+ ],
259
+ f_filialeids: '',
260
+ model: new PagedList(`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/GetUserDefectSQL`, 20, {
261
+ condition: 'this.condition',
262
+ f_filialeids: `'(${Vue.user.orgid})'`,
263
+ }),
264
+ criteriaShow: false,
265
+ deletebacklistisselect: false,
266
+ selectdata:{},
267
+ showmaterial:false
268
+ }
269
+ },
270
+ ready() {
271
+ this.selfSearch()
272
+ },
273
+ methods: {
274
+ trouble(val) {
275
+ const defect_content = JSON.parse(val)
276
+ let result = ''
277
+ if (defect_content.data) {
278
+ const jsonData = defect_content.data
279
+ for (const itemdata of jsonData) {
280
+ const keys = Object.keys(itemdata)
281
+ for (const itm of keys) {
282
+ const value = itemdata[itm]
283
+ result += itm + ':' + value
284
+ }
285
+ }
286
+ }
287
+ return result
288
+ },
289
+ delAudioFile(prop, fileName) {
290
+ if (!fileName)
291
+ return
292
+ else {
293
+ HostApp.delfile(fileName)
294
+ this.deal[prop] = null
295
+ }
296
+ },
297
+ commitDealDefect() {
298
+ if ( !this.deal.f_notified_path) {
299
+ this.$showMessage('隐患通知单照片必须上传')
300
+ return
301
+ }
302
+ HostApp.__this__ = this
303
+ HostApp.logicWithHint({
304
+ 'logic': 'safe_notifiedPath', 'callback': 'javascript: HostApp.__this__.commitCallBack()',
305
+ 'data': this.deal, 'backresult': 1
306
+ })
307
+ },
308
+ commitCallBack(jo) {
309
+ if (jo.state == 'ok') {
310
+ let ress = JSON.parse(jo.result)
311
+ if (ress.code == 200) {
312
+ this.$showMessage(ress.msg)
313
+ this.closeshowModal1()
314
+ this.selfSearch()
315
+ } else {
316
+ this.$showMessage(ress.msg)
317
+ }
318
+ } else {
319
+ this.$showMessage('本地服务调用失败')
320
+ }
321
+ },
322
+ delfile(prop, fileName) {
323
+ if (fileName == Vue.nopic)
324
+ return
325
+ else {
326
+ HostApp.delfile(fileName)
327
+ this.deal[prop] = Vue.nopic
328
+ }
329
+ },
330
+ openshowModal(val) {
331
+ this.row = val
332
+ this.showModal = true
333
+ },
334
+ closeshowModal() {
335
+ this.showModal = false
336
+ },
337
+ openshowModal1(val) {
338
+ this.deal.paperid = val.id
339
+ this.deal.result.f_userinfo_code = val.f_userinfo_code
340
+ this.showModal1 = true
341
+ },
342
+ closeshowModal1() {
343
+ this.deal = {
344
+ result:{
345
+ f_userinfo_code: '',
346
+ },
347
+ paperid: '',
348
+ f_notified_path: '',
349
+ f_dealer: Vue.user.name,
350
+ f_dealer_id: Vue.user.id
351
+ }
352
+ this.showModal1 = false
353
+ this.selfSearch()
354
+ },
355
+ cameraCallBack(prop, fileName) {
356
+ HostApp.__this__.$set( 'deal.'+prop+'', fileName)
357
+ HostApp.__callback__ = null
358
+ HostApp.__this__ = null
359
+ },
360
+ takePic(prop, title) {
361
+ HostApp.__callback__ = this.cameraCallBack
362
+ HostApp.__this__ = this
363
+ let fileName
364
+ if (!this.deal[prop] || this.deal[prop].includes("nopic.png")) {
365
+ fileName = Util.guid() + '-' + prop + '.jpg'
366
+ } else {
367
+ fileName = Util.getFileName(this.deal[prop])
368
+ }
369
+ //tag
370
+ //tag
371
+ HostApp._open_a_page({
372
+ type: 'boomerang',
373
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
374
+ param: {
375
+ file: fileName,
376
+ requestCode: 111,
377
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
378
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
379
+ }
380
+ })
381
+ },
382
+ selfSearch() {
383
+ let condition = "1=1 "
384
+ if (this.$refs.paged.$refs.cri.model.f_user_name) {
385
+ if (this.$refs.paged.$refs.cri.model.f_user_name.toString().trim()) {
386
+ condition += " and f_user_name like '" + this.$refs.paged.$refs.cri.model.f_user_name + "%'"
387
+ }
388
+ }
389
+ if (this.$refs.paged.$refs.cri.model.f_userinfo_code) {
390
+ if (this.$refs.paged.$refs.cri.model.f_userinfo_code.toString().trim()) {
391
+ condition += " and f_userinfo_code = '" + this.$refs.paged.$refs.cri.model.f_userinfo_code + "'"
392
+ }
393
+ }
394
+ if (this.$refs.paged.$refs.cri.model.f_checker_name) {
395
+ if (this.$refs.paged.$refs.cri.model.f_checker_name.toString().trim()) {
396
+ condition += " and f_checker_name = '" + this.$refs.paged.$refs.cri.model.f_checker_name + "'"
397
+ }
398
+ }
399
+ if (this.$refs.paged.$refs.cri.model.f_address) {
400
+ if (this.$refs.paged.$refs.cri.model.f_address.toString().trim()) {
401
+ condition += " and f_address like '%" + this.$refs.paged.$refs.cri.model.f_address + "%'"
402
+ }
403
+ }
404
+ if (this.$refs.paged.$refs.cri.model.f_user_type) {
405
+ if (this.$refs.paged.$refs.cri.model.f_user_type.toString().trim()) {
406
+ condition += " and f_user_type = '" + this.$refs.paged.$refs.cri.model.f_user_type + "'"
407
+ }
408
+ }
409
+
410
+ this.model.search(condition)
411
+ },
412
+ hidden() {
413
+ this.criteriaShow = !this.criteriaShow
414
+ }
415
+ }
416
+ }
417
+ </script>