safecheck-client 4.0.0-6 → 4.0.0-61

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 (99) hide show
  1. package/package.json +1 -1
  2. package/src/components/Util/ImgSelfSafePlus.vue +13 -3
  3. package/src/components/android/AndroidDefectDeal.vue +1 -1
  4. package/src/components/android/AndroidDefectDealBeforeSafe.vue +1 -1
  5. package/src/components/android/AndroidDefectDetails.vue +725 -0
  6. package/src/components/android/BlackUserOnLine.vue +2 -2
  7. package/src/components/android/Insurance/PhoneInsurancePurchase.vue +1 -1
  8. package/src/components/android/PaperFeedback.vue +14 -12
  9. package/src/components/android/PaperFeedbackTemp.vue +2 -2
  10. package/src/components/android/PhoneUpUserinfo.vue +20 -0
  11. package/src/components/android/RelieveRestrict.vue +1 -1
  12. package/src/components/android/Restriction.vue +1 -1
  13. package/src/components/android/SafecheckDevices.vue +47 -2
  14. package/src/components/android/SafecheckOrderV.vue +2 -2
  15. package/src/components/android/SealBind.vue +392 -0
  16. package/src/components/android/SealManage.vue +250 -0
  17. package/src/components/inspections/inspectionFeedback.vue +2 -2
  18. package/src/components/paper/PaperList.vue +34 -6
  19. package/src/components/pc/AddToCheckBook.vue +100 -23
  20. package/src/components/pc/CheckBook.vue +2 -0
  21. package/src/components/pc/CheckBookDetails.vue +6 -39
  22. package/src/components/pc/CheckBookEntry.vue +6 -7
  23. package/src/components/pc/CheckBookList.vue +60 -71
  24. package/src/components/pc/CheckBookSearchArea.vue +20 -24
  25. package/src/components/pc/CheckBookSearchUser.vue +139 -84
  26. package/src/components/pc/CheckBookSearchUserList.vue +1 -2
  27. package/src/components/pc/CheckBookUser.vue +276 -44
  28. package/src/components/pc/NewCheckpaper.vue +14 -8
  29. package/src/components/pc/NewCheckpaperTemp.vue +5 -5
  30. package/src/components/pc/PaperDefectMain.vue +1 -0
  31. package/src/components/planmanage/PlanManage.vue +6 -8
  32. package/src/components/rongcheng/AspPaperFeedback.vue +1 -1
  33. package/src/components/rongcheng/PaperFeedback.vue +2 -2
  34. package/src/components/safecheck/queryManage/CheckBookAll.vue +2 -2
  35. package/src/filiale/ancheng/android/PaperFeedback.vue +2 -2
  36. package/src/filiale/ankangyihua/android/AndroidDefectDeal.vue +1 -1
  37. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +1 -1
  38. package/src/filiale/bayan/android/PaperFeedback.vue +2 -2
  39. package/src/filiale/fugou/pc/PaperDefectMain.vue +1 -1
  40. package/src/filiale/hanzhong/android/PaperFeedback.vue +2 -2
  41. package/src/filiale/huatong/android/PaperFeedback.vue +2 -2
  42. package/src/filiale/huayin/android/PaperFeedback.vue +2 -2
  43. package/src/filiale/huayin/android/SafecheckOrderV.vue +1 -1
  44. package/src/filiale/jiaocheng/android/PaperFeedback.vue +2 -2
  45. package/src/filiale/jingyang/android/PaperFeedback.vue +2 -2
  46. package/src/filiale/jinhong/android/PhoneInsurancePurchaseDetail.vue +437 -366
  47. package/src/filiale/jinhong/android/PhoneInsuranceRecordList.vue +346 -0
  48. package/src/filiale/jinhong/android.js +1 -0
  49. package/src/filiale/kelai/android/AndroidDefectDeal.vue +2 -2
  50. package/src/filiale/kelai/android/PaperFeedback.vue +2 -2
  51. package/src/filiale/kelai/android/RelieveRestrict.vue +1 -1
  52. package/src/filiale/kelai/android/SafecheckOrderV.vue +1 -1
  53. package/src/filiale/kelai/pc/FaultLimitGas/FaultLimitGasPaper.vue +1 -1
  54. package/src/filiale/meihekou/android/AreaPlan.vue +569 -0
  55. package/src/filiale/meihekou/android/CheckPlanList.vue +198 -0
  56. package/src/filiale/meihekou/android/CheckPlanListArea.vue +190 -0
  57. package/src/filiale/meihekou/android/CurrentCreate.vue +1087 -0
  58. package/src/filiale/meihekou/android/MeterReading.vue +106 -0
  59. package/src/filiale/meihekou/android/PhoneUpUserinfo.vue +1276 -0
  60. package/src/filiale/meihekou/android/SafecheckOrderV.vue +2400 -0
  61. package/src/filiale/meihekou/android/SafecheckUserInfo.vue +787 -0
  62. package/src/filiale/meihekou/android.js +19 -0
  63. package/src/filiale/meihekou/pc.js +12 -0
  64. package/src/filiale/pingxiang/android/PaperFeedback.vue +2 -2
  65. package/src/filiale/qianneng/android/PaperFeedback.vue +2 -2
  66. package/src/filiale/rizhao/android/PaperFeedback.vue +2 -2
  67. package/src/filiale/rongchuang/android/PaperFeedback.vue +2 -2
  68. package/src/filiale/shanggao/android/PaperFeedback.vue +2 -2
  69. package/src/filiale/shanxian/android/AndroidDefectDeal.vue +1 -1
  70. package/src/filiale/shanxian/android/PaperFeedback.vue +2 -2
  71. package/src/filiale/shexian/android/AndroidDefectDeal.vue +1 -1
  72. package/src/filiale/shexian/android/PaperFeedback.vue +2 -2
  73. package/src/filiale/shimen/android/PaperFeedback.vue +2 -2
  74. package/src/filiale/tongchuan/android/AndroidDefectDeal.vue +1 -1
  75. package/src/filiale/tongchuan/android/PaperFeedback.vue +2 -2
  76. package/src/filiale/weinan/android/SafecheckOrderV.vue +3 -3
  77. package/src/filiale/wenxi/android/PaperFeedback.vue +3 -3
  78. package/src/filiale/wuan/android/PaperFeedback.vue +2 -2
  79. package/src/filiale/wuhai/android/PaperFeedback.vue +2 -2
  80. package/src/filiale/xiangyuanzhongai/android/SafecheckDevices.vue +20 -1
  81. package/src/filiale/xiangyuanzhongai/android/SafecheckOrderV.vue +2282 -0
  82. package/src/filiale/xiangyuanzhongai/android/SafecheckUserInfo.vue +786 -0
  83. package/src/filiale/xiangyuanzhongai/android.js +2 -0
  84. package/src/filiale/xiangyuanzhongai/pc/DefectListNew.vue +663 -0
  85. package/src/filiale/xiangyuanzhongai/pc/PaperList.vue +795 -0
  86. package/src/filiale/xiangyuanzhongai/pc.js +2 -0
  87. package/src/filiale/yangchunboneng/android/PaperFeedback.vue +2 -2
  88. package/src/filiale/yongzhou/android/PaperFeedback.vue +2 -2
  89. package/src/filiale/yuansheng/android/AndroidDefectDeal.vue +1 -1
  90. package/src/filiale/yuansheng/android/PaperFeedback.vue +2 -2
  91. package/src/filiale/yunchengminsheng/android/DailyworkloadQuery.vue +2 -2
  92. package/src/filiale/yunchengminsheng/android/PhoneSellInfo.vue +113 -0
  93. package/src/filiale/yunchengminsheng/android/SafecheckOrderV.vue +2 -0
  94. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +1 -1
  95. package/src/filiale/yunchengminsheng/android.js +1 -0
  96. package/src/filiale/yunchengminsheng/pc/NewCheckpaper.vue +16 -5
  97. package/src/filiale/zhongsheng/android/PaperFeedback.vue +2 -2
  98. package/src/filiale/zhoukou/android/PaperFeedback.vue +2 -2
  99. package/src/safecheck-android.js +3 -0
@@ -178,7 +178,7 @@ export default {
178
178
  orderitem: "f_userinfo_id"
179
179
  }
180
180
  }, {resolveMsg: null, rejectMsg: null})
181
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/backlistOperate`, {
181
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/backlistOperate`, {
182
182
  data: {
183
183
  "f_operat_type": "取消拉黑",
184
184
  "f_state": "有效",
@@ -223,7 +223,7 @@ export default {
223
223
  orderitem: "f_userinfo_id"
224
224
  }
225
225
  }, {resolveMsg: null, rejectMsg: null})
226
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/backlistOperate`, {
226
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/backlistOperate`, {
227
227
  data: {
228
228
  "f_operat_type": "拉黑",
229
229
  "f_state": "有效",
@@ -41,7 +41,7 @@
41
41
  </div>
42
42
  <div class="col-xs-7">
43
43
  <input type="text" class="form-control" v-model="model.f_address" placeholder="请输入客户地址"
44
- condition="f_address like '%{}%'" />
44
+ condition="ads.f_address like '%{}%'" />
45
45
  </div>
46
46
  </div>
47
47
  <div class="row text-center app-row">
@@ -1219,6 +1219,8 @@ export default {
1219
1219
  this.paper.f_blacklist = "否"
1220
1220
  this.$showMessage("取消该用户限制购气成功!")
1221
1221
  } else {
1222
+ this.showmodelthree = false
1223
+ this.deleteenabled = true
1222
1224
  this.$showMessage("网络异常,请稍后再试!")
1223
1225
  }
1224
1226
  },
@@ -1249,7 +1251,7 @@ export default {
1249
1251
  limit_value = Vue.config.safecheck.ApproveConfig.limit_value
1250
1252
  limit_amount = Vue.config.safecheck.ApproveConfig.limit_amount
1251
1253
  }
1252
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/backlistOperate`, {
1254
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/backlistOperate`, {
1253
1255
  data: {
1254
1256
  data:this.$parent.$parent.data,
1255
1257
  item:this.$parent.$parent.data.item,
@@ -1273,21 +1275,21 @@ export default {
1273
1275
  "f_limit_amount":limit_amount,
1274
1276
  'f_limit_type':'气量'
1275
1277
  }
1276
- }, {resolveMsg: null, rejectMsg: null})
1277
-
1278
- ////tag)
1279
- if (res2.data.code == 200) {
1278
+ }, {resolveMsg: null, rejectMsg: null}).then(res2=>{
1280
1279
  this.showmodel = false
1281
1280
  this.enabled = true
1282
1281
  this.paper.f_blacklist = "是"
1283
1282
  this.$showMessage("将该用户限制购气成功!")
1284
- } else if (res2.data.msg == '数据增加重复') {
1285
- this.showmodel = false
1286
- this.enabled = true
1287
- this.$showMessage("该用户已被限制购气,请勿重复提交!")
1288
- } else {
1289
- this.$showMessage("网络异常,请稍后再试!")
1290
- }
1283
+ }).catch(error=>{
1284
+ if (error.status== 601){
1285
+ this.showmodel = false
1286
+ this.enabled = true
1287
+ this.paper.f_blacklist = "是"
1288
+ this.$showMessage("该用户已被限制购气,请勿重复提交!")
1289
+ }else {
1290
+ this.$showMessage("网络异常,请稍后再试!")
1291
+ }
1292
+ })
1291
1293
  },
1292
1294
  cancel() {
1293
1295
  this.backlistisselect = false
@@ -1143,7 +1143,7 @@
1143
1143
  }, {resolveMsg: null, rejectMsg: null})
1144
1144
  ////tag)
1145
1145
  ////tag
1146
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/backlistOperate`, {
1146
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/backlistOperate`, {
1147
1147
  data: {
1148
1148
  "f_operat_type": "取消拉黑",
1149
1149
  "f_state": "有效",
@@ -1201,7 +1201,7 @@
1201
1201
  limit_times = Vue.config.safecheck.ApproveConfig.limit_times
1202
1202
  limit_value = Vue.config.safecheck.ApproveConfig.limit_value
1203
1203
  }
1204
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/backlistOperate`, {
1204
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/backlistOperate`, {
1205
1205
  data: {
1206
1206
  data:this.$parent.$parent.data,
1207
1207
  item:this.$parent.$parent.data.item,
@@ -630,6 +630,16 @@
630
630
  userinfoms.f_orgname_record = Vue.user.orgs
631
631
  userinfoms.f_depid_record = Vue.user.depids
632
632
  userinfoms.f_depname_record = Vue.user.deps
633
+ this.userinfo_old.baseinfo.base.f_idnumber = this.userinfo.baseinfo.base.f_idnumber
634
+ this.userinfo_old.baseinfo.base.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
635
+ this.userinfo_old.baseinfo.base.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
636
+ this.userinfo_old.baseinfo.base.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
637
+ this.userinfo_old.addressinfo.f_iscity = this.userinfo.addressinfo.f_iscity
638
+ this.userinfo_old.addressinfo.f_building = this.userinfo.addressinfo.f_building
639
+ this.userinfo_old.addressinfo.f_unit = this.userinfo.addressinfo.f_unit
640
+ this.userinfo_old.addressinfo.f_floor = this.userinfo.addressinfo.f_floor
641
+ this.userinfo_old.addressinfo.f_room = this.userinfo.addressinfo.f_room
642
+ this.userinfo_old.addressinfo.f_address = this.userinfo.addressinfo.f_address
633
643
  this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
634
644
  this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
635
645
  this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
@@ -694,6 +704,16 @@
694
704
  userinfoms.f_orgname_record = Vue.user.orgs
695
705
  userinfoms.f_depid_record = Vue.user.depids
696
706
  userinfoms.f_depname_record = Vue.user.deps
707
+ this.userinfo_old.baseinfo.base.f_idnumber = this.userinfo.baseinfo.base.f_idnumber
708
+ this.userinfo_old.baseinfo.base.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
709
+ this.userinfo_old.baseinfo.base.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
710
+ this.userinfo_old.baseinfo.base.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
711
+ this.userinfo_old.addressinfo.f_iscity = this.userinfo.addressinfo.f_iscity
712
+ this.userinfo_old.addressinfo.f_building = this.userinfo.addressinfo.f_building
713
+ this.userinfo_old.addressinfo.f_unit = this.userinfo.addressinfo.f_unit
714
+ this.userinfo_old.addressinfo.f_floor = this.userinfo.addressinfo.f_floor
715
+ this.userinfo_old.addressinfo.f_room = this.userinfo.addressinfo.f_room
716
+ this.userinfo_old.addressinfo.f_address = this.userinfo.addressinfo.f_address
697
717
  this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
698
718
  this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
699
719
  this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
@@ -258,7 +258,7 @@ export default {
258
258
  f_limit_value: res.data[0].f_limit_value
259
259
  }
260
260
  })
261
- await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/backlistOperate`, data, {resolveMsg: `${type}成功`, rejectMsg: `${type}失败,请重试`}).then(res => {
261
+ await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/backlistOperate`, data, {resolveMsg: `${type}成功`, rejectMsg: `${type}失败,请重试`}).then(res => {
262
262
  if (res.data.code === 200) {
263
263
  this.message = '解除限购成功!!!'
264
264
  } else {
@@ -306,7 +306,7 @@ export default {
306
306
  f_limit_value: type == '限购'? this.xgGis: ''
307
307
  }
308
308
  })
309
- await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/backlistOperate`, data, {resolveMsg: `${type}成功`, rejectMsg: `${type}失败,请重试`}).then(res => {
309
+ await http.load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/backlistOperate`, data, {resolveMsg: `${type}成功`, rejectMsg: `${type}失败,请重试`}).then(res => {
310
310
  if (res.data.code === 200) {
311
311
  this.message = `${type}成功!!!`
312
312
  } else {
@@ -154,6 +154,9 @@
154
154
  </div>
155
155
  <img v-show="row.f_path" src="../../assets/remove.png" :class="style__" @click="delfile(idxs, row.f_path)" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
156
156
  </div>
157
+ <button v-if="isalbum" style="float: right" type="button" name="button" class="btn btn-primary btn-photo"
158
+ @click="takePic2(idxs, row.f_item_name)">相册
159
+ </button>
157
160
  </div>
158
161
  </div>
159
162
  </div>
@@ -170,6 +173,9 @@
170
173
  </div>
171
174
  <img v-show="row['f_p' + (itemIndex+1)+'_path']" src="../../assets/remove.png" :class="style__" @click="delfile(idxs,row['f_p' + (itemIndex+1)+'_path'],'f_p' + (itemIndex+1)+ '_path')" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
172
175
  </div >
176
+ <button v-if="isalbum" style="float: right" type="button" name="button" class="btn btn-primary btn-photo"
177
+ @click="takePic2(idxs, row.f_item_name,'f_p' + (itemIndex+1)+ '_path')">相册
178
+ </button>
173
179
  </div>
174
180
  </div>
175
181
  </div>
@@ -302,7 +308,8 @@ export default {
302
308
  )(this),
303
309
  showElse:false, //控制其他选项是否显示
304
310
  showXCImg: false, // 是否显示现场整改拍照选项
305
- showZXTime: false // 是否显示自行整改处理时效
311
+ showZXTime: false, // 是否显示自行整改处理时效
312
+ isalbum:this.$appdata.getSingleValue('安检使用相册') || false,
306
313
  }
307
314
  },
308
315
  props: ['config','device','idx','operation','role'],
@@ -356,6 +363,7 @@ export default {
356
363
  },
357
364
  changdeal(val){
358
365
  if(val == undefined){
366
+ this.f_items[this.selectindex].f_deal_dispose = ''
359
367
  return
360
368
  }
361
369
  if(this.selectindex != null) {
@@ -466,6 +474,41 @@ export default {
466
474
  param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'","'+ title +'", "%s","'+pathname+'");', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name + jingweidu}
467
475
  })
468
476
  },
477
+ takePic2(prop, title, pathname='null') {
478
+ if (this.role == 'androidview') {
479
+ return
480
+ }
481
+ HostApp.__callback__ = this.cameraCallBack
482
+ HostApp.__this__ = this
483
+ //tag
484
+ let fileName
485
+ if (pathname == 'null') {
486
+ if (!this.f_items[prop].f_path || this.f_items[prop].f_path.includes("nopic.png")) {
487
+ fileName = Util.guid() + '-' + 'device' + this.device.n + '-' + this.idx + '-' + 'f_items' + prop + '.jpg'
488
+ } else {
489
+ fileName = Util.getFileName(this.f_items[prop].f_path)
490
+ }
491
+ } else {
492
+ if (!this.f_items[prop][pathname] || this.f_items[prop][pathname].includes("nopic.png")) {
493
+ fileName = Util.guid() + '-' + 'device' + this.device.n + '-' + this.idx + '-' + 'f_items' + prop + '.jpg'
494
+ } else {
495
+ fileName = Util.getFileName(this.f_items[prop][pathname])
496
+ }
497
+ }
498
+ let jingweidu = ''
499
+ if (this.$parent.$parent.is_has_jingweidu == 'true'){
500
+ const obj = HostApp.getGpsDetailAddress()
501
+ jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
502
+ this.f_items[prop].f_longitude = obj.longitude
503
+ this.f_items[prop].f_latitude = obj.latitude
504
+ }
505
+ //tag
506
+ //tag
507
+ HostApp._open_a_page({type: 'boomerang',
508
+ page: 'com.aofeng.hybrid.android.peripheral.ActionPickActivity',
509
+ param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'","'+ title +'", "%s","'+pathname+'");', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name + jingweidu}
510
+ })
511
+ },
469
512
  cameraCallBack(prop,title, fileName,pathname) {
470
513
  //tag
471
514
  if (pathname == 'null') {
@@ -625,7 +668,9 @@ export default {
625
668
  if(shImage){
626
669
  this.f_items[n].f_is_defect =true
627
670
  this.f_items[n].f_defect_level = options[i].level
628
- this.f_items[n].f_path = Vue.nopic
671
+ if (!multiple){
672
+ this.f_items[n].f_path = Vue.nopic
673
+ }
629
674
  this.f_items[n].f_live_dispose = '否'
630
675
  this.f_items[n].f_deal_dispose = '未处理'
631
676
  //tag
@@ -1433,7 +1433,7 @@
1433
1433
  if(this.item.f_user_type == '非民用'){
1434
1434
  // 非民用
1435
1435
  if (Vue.config.safecheck.DevicesSetConfig != undefined){
1436
- if(this.item.f_safecheck_type == undefined || this.item.f_safecheck_type == '' || Vue.config.safecheck.SafecheckType == undefined) {
1436
+ if(this.item.f_safecheck_type == undefined || this.item.f_safecheck_type == '' || Vue.config.safecheck.SafecheckType == undefined || !Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type]]) {
1437
1437
  this.config = this.extend(this.config, Vue.config.safecheck.DevicesSetConfig)
1438
1438
  }else{
1439
1439
  this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_user_type]])
@@ -1443,7 +1443,7 @@
1443
1443
  }else{
1444
1444
  // 民用户
1445
1445
  if (Vue.config.safecheck.DevicesConfig != undefined){
1446
- if(this.item.f_safecheck_type == undefined || this.item.f_safecheck_type == '' || Vue.config.safecheck.SafecheckType == undefined) {
1446
+ if(this.item.f_safecheck_type == undefined || this.item.f_safecheck_type == '' || Vue.config.safecheck.SafecheckType == undefined || !Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type]]) {
1447
1447
  this.config = this.extend(this.config, Vue.config.safecheck.DevicesConfig)
1448
1448
  }else{
1449
1449
  this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_user_type?this.item.f_user_type:'民用']])
@@ -0,0 +1,392 @@
1
+ <template>
2
+ <div class="auto">
3
+ <div class="row app-row">
4
+ <div class="col-xs-4">
5
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
6
+ <label for="f_userinfoid" class="font text-left">用户编号:</label>
7
+ </div>
8
+ <div class="col-xs-8" >
9
+ <input id="f_userinfoid" class="search_input input-font" readonly
10
+ v-model=row.f_userinfo_code :value.sync="row.f_userinfo_code" />
11
+ </div>
12
+ </div>
13
+ <div class="row app-row">
14
+ <div class="col-xs-4">
15
+ <img src="../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
16
+ <label class="font text-left">用户姓名:</label>
17
+ </div>
18
+ <div class="col-xs-8" >
19
+ <input class="search_input input-font" v-model=row.f_user_name :value.sync="row.f_user_name" readonly />
20
+ </div>
21
+ </div>
22
+ <div class="row app-row">
23
+ <div class="col-xs-4">
24
+ <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
25
+ <label class="font text-left">用户地址:</label>
26
+ </div>
27
+ <div class="col-xs-8" >
28
+ <input class="search_input input-font" v-model=row.f_address :value.sync="row.f_address" readonly />
29
+ </div>
30
+ </div>
31
+ <div class="row app-row">
32
+ <div class="col-xs-4">
33
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
34
+ <label class="font text-left">铅封编号:</label>
35
+ </div>
36
+ <div class="col-xs-5" >
37
+ <input class="search_input input-font"
38
+ v-model=sealUID :value.sync="sealUID" readonly />
39
+ </div>
40
+ <div class="col-xs-3">
41
+ <button style="padding: 5px" type="button" class="btn btn-font btn-color" @click="scan()">NFC识别</button>
42
+ </div>
43
+ </div>
44
+ <div class="row app-row">
45
+ <div class="col-xs-4">
46
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
47
+ <label class="font text-left">二维码编号:</label>
48
+ </div>
49
+ <div class="col-xs-5" >
50
+ <input class="search_input input-font"
51
+ v-model=f_qr_code :value.sync="f_qr_code" readonly />
52
+ </div>
53
+ <div class="col-xs-3">
54
+ <button style="padding: 5px" type="button" class="btn btn-font btn-color" @click="codeScan()">扫描二维码</button>
55
+ </div>
56
+ </div>
57
+ <div class="row app-row">
58
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
59
+ <label class="text-left font">铅封照片:</label>
60
+
61
+ <div class="auto" :class="style__">
62
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
63
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
64
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
65
+ <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in imgs">
66
+ <img-self :src="img" alt="铅封照片" :width="140" :height="170"></img-self>
67
+ <img src="../../assets/删除.png" @click="delfile(img,index)" style="width: 15px;margin-top: -80px" alt="">
68
+ </div>
69
+ </div>
70
+ <div class="row text-right div-photo">
71
+ <button type="button" name="button" class="btn btn-photo" @click="takePic()">拍照</button>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ <div class="row app-row">
79
+ <div class="col-xs-4">
80
+ <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
81
+ <label class="font text-left">施封原因:</label>
82
+ </div>
83
+ <div class="col-xs-8" >
84
+ <v-select
85
+ v-model="cause"
86
+ :value.sync="cause"
87
+ :value-single="true"
88
+ :options='causeOption'
89
+ placeholder='请选择施封原因'
90
+ width="100%"
91
+ close-on-select></v-select>
92
+ </div>
93
+ </div>
94
+ <div class="row text-center" style="margin-top: 40px;">
95
+ <button style="font-size: 20px; padding: 8px 40px" type="button" name="button" class="col-sm-3 btn btn-primary" @click="bind">
96
+ 施封
97
+ </button>
98
+ </div>
99
+ </div>
100
+ </template>
101
+
102
+ <script>
103
+ import {HttpResetClass, PagedList} from 'vue-client'
104
+ import Vue from 'vue'
105
+ import * as Util from '../Util'
106
+
107
+ export default {
108
+ title: '施封',
109
+ props: ['row'],
110
+ data () {
111
+ return {
112
+ sealUID: '',
113
+ imgs: [],
114
+ cause: '',
115
+ address: '',
116
+ longitude: '',
117
+ latitude: '',
118
+ f_qr_code: '',
119
+ causeOption: this.$appdata.getParam('施封原因')
120
+ }
121
+ },
122
+ ready () {
123
+ console.log('this.row=', JSON.stringify(this.row))
124
+ this.getLocation()
125
+ if (this.longitude == 0){
126
+ this.timer = window.setInterval(this.getLocation, 3000)
127
+ }
128
+ },
129
+ computed: {
130
+
131
+ },
132
+ methods:{
133
+ codeScan() {
134
+ console.log('codeScan=========')
135
+ HostApp.__this__ = this
136
+ HostApp.scanQRCode({callback:"javascript:HostApp.__this__.codeScanCallback()"})
137
+ },
138
+ codeScanCallback() {
139
+ console.log('codeScanCallback=========')
140
+ let result = HostApp.getQRCode()
141
+ console.log('result=', result)
142
+ if (result.code == 200){
143
+ // 判断result.data是否包含等号。如果有,只要等号后面的内容
144
+ if (result.data.indexOf('=') > 0) {
145
+ this.f_qr_code = result.data.substring(result.data.indexOf('=') + 1)
146
+ }else{
147
+ this.f_qr_code = result.data
148
+ }
149
+ }else {
150
+ this.$showMessage("未识别到二维码信息,请重新尝试!")
151
+ }
152
+ },
153
+ generateUUID() {
154
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
155
+ var r = (Math.random() * 16) | 0,
156
+ v = c == 'x' ? r : (r & 0x3) | 0x8;
157
+ return v.toString(16);
158
+ });
159
+ },
160
+ getLocation() {
161
+ const location = HostApp.getDetailAddress()
162
+ this.address = location.data
163
+ const longitude = HostApp.getPreference('longitude')
164
+ this.longitude = longitude.data
165
+ const latitude = HostApp.getPreference('latitude')
166
+ this.latitude = latitude.data
167
+ if (this.longitude != 0){
168
+ window.clearInterval(this.timer)
169
+ }
170
+ console.log('this.address=', this.address)
171
+ console.log('this.longitude=', this.longitude)
172
+ console.log('this.latitude=', this.latitude)
173
+ },
174
+ bind() {
175
+ if (!this.sealUID) {
176
+ this.$showMessage("铅封编号不能为空!")
177
+ return
178
+ }
179
+ if (!this.f_qr_code) {
180
+ this.$showMessage("二维码编号不能为空!")
181
+ return
182
+ }
183
+ if (!this.imgs.length) {
184
+ this.$showMessage("请拍摄铅封照片!")
185
+ return
186
+ }
187
+ if (!this.cause) {
188
+ this.$showMessage("请选择施封原因!")
189
+ return
190
+ }
191
+ //this.getLocation()
192
+ if (this.longitude == 0){
193
+ this.$showMessage("位置获取失败,未开启定位或者网络信号弱未获取到定位!")
194
+ return
195
+ }
196
+ const param = {
197
+ seal: {
198
+ f_uid: this.sealUID,
199
+ f_qr_code: this.f_qr_code,
200
+ f_userinfo_code: this.row.f_userinfo_code,
201
+ f_userinfo_id: this.row.f_userinfo_id,
202
+ f_filiale: this.row.f_filiale,
203
+ f_filiale_id: this.row.f_filiale_id,
204
+ f_user_id: this.row.f_user_id,
205
+ f_address: this.address,
206
+ f_longitude: this.longitude,
207
+ f_latitude: this.latitude,
208
+ f_operate_name: Vue.user.name,
209
+ f_operate_id: Vue.user.id,
210
+ f_operate_date: Util.toStandardTimeString(),
211
+ f_state: '有效'
212
+ },
213
+ operateList: {
214
+ f_cause: this.cause,
215
+ f_operate_date: Util.toStandardTimeString(),
216
+ f_creation_date: Util.toStandardTimeString(),
217
+ f_creation_name: Vue.user.name,
218
+ f_creation_name_id: Vue.user.id
219
+ },
220
+ files: [],
221
+ imgs: [],
222
+ f_devices_no: this.generateUUID()
223
+ }
224
+ for (const img of this.imgs) {
225
+ const i1 = img.lastIndexOf('?')
226
+ const i2 = img.lastIndexOf('/')
227
+ const key = img.substring(i2+1, i1)
228
+ const filename = img.substring(0, i1)
229
+ param.files.push({
230
+ f_img_url: key,
231
+ f_operate_date: Util.toStandardTimeString(),
232
+ f_operator: Vue.user.name,
233
+ f_operatorid: Vue.user.id
234
+ })
235
+ param.imgs.push({
236
+ key: key,
237
+ filename: filename
238
+ })
239
+ }
240
+ //tag)
241
+ let paramStr = JSON.stringify(param)
242
+ console.log('paramStr=', paramStr)
243
+ // 多长截断一次
244
+ let subLength = 800
245
+ for (let i = 0; i < paramStr.length; i += subLength) {
246
+ HostApp.param_cache(paramStr.substr(i, subLength))
247
+ }
248
+ HostApp.__this__ = this
249
+ HostApp.syncLogic({
250
+ 'logic': 'sealBind',
251
+ 'callback': 'javascript:HostApp.__this__.sealBindBack()',
252
+ 'backresult': 1
253
+ })
254
+ },
255
+ sealBindBack(jo) {
256
+ if(jo.state == 'ok') {
257
+ let res = JSON.parse(jo.result)
258
+ if (res.code == 200 && res.data.code == 200) {
259
+ this.$showMessage('施封成功!')
260
+ this.$back(this.sealUID)
261
+ return
262
+ }
263
+ if(res.msg){
264
+ this.$showMessage(res.msg)
265
+ }else{
266
+ this.$showMessage(res.data.msg)
267
+ }
268
+ return
269
+ }
270
+ this.$showMessage('网络异常!')
271
+ },
272
+ scan() {
273
+ HostApp.__this__ = this
274
+ HostApp.readNfc({
275
+ 'callback': 'javascript:HostApp.__this__.scanCallback()',
276
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
277
+ // 执行回调方法传入key为backresult
278
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
279
+ 'backresult': 1
280
+ })
281
+ },
282
+ scanCallback() {
283
+ console.log('scanCallback=========')
284
+ const result = HostApp.getNfcUUID()
285
+ console.log('result=', result)
286
+ if (result.code == 200){
287
+ this.sealUID = result.data
288
+ }else {
289
+ this.$showMessage("未识别到铅封信息,请重新尝试!")
290
+ return
291
+ }
292
+ },
293
+ takePic() {
294
+ HostApp.__callback__ = this.cameraCallBack
295
+ HostApp.__this__ = this
296
+
297
+ let fileName = `${Util.guid()}.jpg`
298
+ HostApp._open_a_page({
299
+ type: 'boomerang',
300
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
301
+ param: {
302
+ file: fileName,
303
+ requestCode: 111,
304
+ callback: 'javascript:HostApp.__callback__("%s");',
305
+ watermark: '铅封照片\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name + '\t' + this.row.f_userinfo_id+ '\t' + this.row.f_user_name+ '\t' + this.row.f_address
306
+ }
307
+ })
308
+ },
309
+ cameraCallBack(fileName) {
310
+ // if (prop == 'f_overall_path') {
311
+ // let f_overall_path = fileName + '?' + Math.random()
312
+ // HostApp.__this__.paper.f_overall_imgs.push({
313
+ // f_overall_path: f_overall_path
314
+ // })
315
+ // } else {
316
+ // HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
317
+ // }
318
+ this.imgs.push(fileName + '?' + Math.random())
319
+ HostApp.__callback__ = null
320
+ HostApp.__this__ = null
321
+ },
322
+ delfile(fileName, index) {
323
+ if (fileName == Vue.nopic)
324
+ return
325
+ else {
326
+ this.imgs.splice(index, 1)
327
+ HostApp.delfile(fileName)
328
+ }
329
+ }
330
+ }
331
+ }
332
+ </script>
333
+ <style scoped>
334
+ .app-row {
335
+ background-color: white;
336
+ padding: 10px 10px 0 10px;
337
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
338
+ }
339
+ .search_input {
340
+ border: 0;
341
+ outline: none;
342
+ }
343
+ .font{
344
+ font: 15px PingFang-SC-Medium;
345
+ color: #666666;
346
+ }
347
+ .input-font{
348
+ font: 15px PingFang-SC-Medium;
349
+ color: #333333;
350
+ }
351
+ .btn-font{
352
+ font:600 16px PingFang-SC-Bold;
353
+ color: #499EDF;
354
+ }
355
+ .btn-color{
356
+ background-color: #FFFFFF;
357
+ border-radius: 10px ;
358
+ border: 1px solid #499EDF;
359
+ }
360
+ .app-text {
361
+ font-size: 12px;
362
+ }
363
+ .panel-self{
364
+ border-radius: 10px;
365
+ border:1px solid #499EDF;
366
+ background-color: #F8F8F8;
367
+ }
368
+ .yybtn-color{
369
+ border-radius: 4px ;
370
+ border: 1px solid #499EDF;
371
+ }
372
+ .qxbtn-color{
373
+ background-color: #FFFFFF;
374
+ border-radius: 4px ;
375
+ border: 1px solid #499EDF;
376
+ }
377
+ .btn-photo{
378
+ border: 0;
379
+ border-radius: 7px;
380
+ background-color: #7dc1f4;
381
+ font: 15px PingFang-SC-Bold;
382
+ height: 20%;
383
+ }
384
+ .div-photo{
385
+ width: auto;
386
+ height: auto;
387
+ /* margin-top: 10px; */
388
+ position: absolute;
389
+ bottom: 10px;
390
+ right: 10px;
391
+ }
392
+ </style>