safecheck-client 4.0.2-35 → 4.0.2-37

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 (255) hide show
  1. package/package.json +1 -1
  2. package/src/components/CheckerCount/CheckCountUserList.vue +144 -144
  3. package/src/components/DefectDealMain/DefectListNew.vue +642 -642
  4. package/src/components/NewDefectList/DefectPaperNew.vue +1184 -1184
  5. package/src/components/Util/RightTreeSafeDep.vue +362 -362
  6. package/src/components/android/AddPlanItem.vue +447 -447
  7. package/src/components/android/AddPlanItemYy.vue +451 -451
  8. package/src/components/android/AddSpecialPlanItem.vue +426 -426
  9. package/src/components/android/CurrentCreateYy.vue +1051 -1051
  10. package/src/components/android/DailyworkloadQuery.vue +473 -473
  11. package/src/components/android/Devices.vue +327 -327
  12. package/src/components/android/Devicesm.vue +327 -327
  13. package/src/components/android/PaperFeedbackm.vue +1026 -1026
  14. package/src/components/android/PhoneRecordInfo.vue +113 -113
  15. package/src/components/android/PhoneSellInfo.vue +113 -113
  16. package/src/components/android/PhoneUpDetail.vue +1040 -1040
  17. package/src/components/android/QRCode/QRCodeBinding.vue +300 -300
  18. package/src/components/android/QRCode/QRCodePage.vue +212 -212
  19. package/src/components/android/SafePlanItem.vue +509 -509
  20. package/src/components/android/UploadPage.vue +232 -232
  21. package/src/components/android/examples/SafeListExamples.vue +296 -296
  22. package/src/components/android/old/PaperFeedback.vue +1015 -1015
  23. package/src/components/android/recheck/Recheck.vue +402 -402
  24. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  25. package/src/components/checkplan/checkmsg.vue +459 -459
  26. package/src/components/defect/DefectList.vue +507 -507
  27. package/src/components/defect/DefectListWeixiu.vue +484 -484
  28. package/src/components/filialCircle/CircleList.vue +139 -139
  29. package/src/components/inspections/AddInspectPlanItem.vue +325 -325
  30. package/src/components/inspections/AddInspectPlanItems.vue +325 -325
  31. package/src/components/inspections/AddInspectPlanItemss.vue +317 -317
  32. package/src/components/inspections/DisplayInspectionList.vue +1224 -1224
  33. package/src/components/inspections/inspectionOrderV.vue +1853 -1853
  34. package/src/components/inspections/inspectionOrderVs.vue +1853 -1853
  35. package/src/components/inspections/inspectionOrderVss.vue +1856 -1856
  36. package/src/components/inspections/inspectionUserInfo.vue +398 -398
  37. package/src/components/map/PersonTrack.vue +226 -226
  38. package/src/components/paper/RegionalList.vue +220 -220
  39. package/src/components/paper/safetyledger.vue +194 -194
  40. package/src/components/pc/AnnouncementPC.vue +524 -524
  41. package/src/components/pc/DefectList.vue +742 -742
  42. package/src/components/pc/DefectMaterialLook.vue +98 -98
  43. package/src/components/pc/DeviceChange.vue +1068 -1068
  44. package/src/components/pc/NewCheckpaper.vue +1965 -1965
  45. package/src/components/pc/PaperDefectMain.vue +905 -905
  46. package/src/components/pc/RoleSelectorDep.vue +166 -166
  47. package/src/components/pc/SafeVisitInfo.vue +261 -261
  48. package/src/components/report/HiddenSituation.vue +165 -165
  49. package/src/components/rongcheng/AspiratedOrderV.vue +2377 -2377
  50. package/src/components/rongcheng/CurrentCreateOnline.vue +906 -906
  51. package/src/components/rongcheng/DefectList.vue +560 -560
  52. package/src/components/rongcheng/SafecheckOrderVCli.vue +2641 -2641
  53. package/src/components/safecheckNew/android/AddPlanItem.vue +419 -419
  54. package/src/components/safecheckNew/android/CurrentCreate.vue +1050 -1050
  55. package/src/components/safecheckNew/android/Recheck.vue +379 -379
  56. package/src/components/sendsingle/EquipmentManagement.vue +727 -727
  57. package/src/components/shaoguan/DefectList.vue +473 -473
  58. package/src/components/shaoguan/SafecheckOrderV.vue +2140 -2140
  59. package/src/components/tongcheng/PaperFeedback.vue +1061 -1061
  60. package/src/components/userfile/SecurityAudit.vue +243 -243
  61. package/src/filiale/ALshan/pc/DefectListWeixiu.vue +476 -476
  62. package/src/filiale/ancheng/android/SafecheckOrderV.vue +2703 -2703
  63. package/src/filiale/ancheng/android/SafecheckUserInfo.vue +737 -737
  64. package/src/filiale/ancheng/pc/checkScreen.vue +923 -923
  65. package/src/filiale/ankangyihua/android/AddPlanItem.vue +446 -446
  66. package/src/filiale/ankangyihua/android/SafecheckOrderV.vue +2908 -2908
  67. package/src/filiale/ankangyihua/pc/DefectListWeixiu.vue +491 -491
  68. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -2785
  69. package/src/filiale/baiyin/pc/DefectListNew.vue +597 -597
  70. package/src/filiale/bayan/android/Edit.vue +132 -132
  71. package/src/filiale/bayan/pc/DefectListNew.vue +597 -597
  72. package/src/filiale/bayan/pc/DeviceChange.vue +1838 -1838
  73. package/src/filiale/bayan/pc/HiddenSituation.vue +295 -295
  74. package/src/filiale/dexin/android/CasualSave.vue +1050 -1050
  75. package/src/filiale/dexin/android/SafecheckOrderV.vue +2950 -2950
  76. package/src/filiale/fugou/android/AddPlanItem.vue +413 -413
  77. package/src/filiale/fugou/android/SafecheckOrderV.vue +2796 -2796
  78. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +830 -830
  79. package/src/filiale/fugu/android/SafecheckOrderV.vue +2484 -2484
  80. package/src/filiale/fugu/pc/NewCheckpaper.vue +1287 -1287
  81. package/src/filiale/ganquan/android/AddPlanItem.vue +444 -444
  82. package/src/filiale/ganquan/android/SafecheckOrderV.vue +2485 -2485
  83. package/src/filiale/ganquan/pc/NewCheckpaper.vue +1354 -1354
  84. package/src/filiale/guangxi/pc/DefectListNew.vue +518 -518
  85. package/src/filiale/hanzhong/android/SafecheckOrderV.vue +2683 -2683
  86. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  87. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -2803
  88. package/src/filiale/huatong/android/SafecheckOrderV.vue +2426 -2426
  89. package/src/filiale/huatong/android/SafecheckUserInfo.vue +749 -749
  90. package/src/filiale/huayin/pc/NewCheckpaper.vue +1307 -1307
  91. package/src/filiale/jiaocheng/android/AddPlanItem.vue +435 -435
  92. package/src/filiale/jiaocheng/android/SafecheckUserInfo.vue +737 -737
  93. package/src/filiale/jiaocheng/pc/DefectListNew.vue +576 -576
  94. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -447
  95. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -2807
  96. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -784
  97. package/src/filiale/jinbin/pc/DefectListWeixiu.vue +478 -478
  98. package/src/filiale/jingyang/android/AddPlanItem.vue +458 -458
  99. package/src/filiale/jingyang/android/SafecheckOrderV.vue +2734 -2734
  100. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  101. package/src/filiale/jinhong/android/PhoneInsurancePurchaseDetail.vue +463 -463
  102. package/src/filiale/jinhong/pc/PlanManage.vue +927 -927
  103. package/src/filiale/kelai/android/AddPlanItem.vue +488 -488
  104. package/src/filiale/kelai/android/SafecheckUserInfo.vue +774 -774
  105. package/src/filiale/kelai/android/SafecheckUserInfo1.vue +618 -618
  106. package/src/filiale/kelai/pc/DefectListNew.vue +688 -688
  107. package/src/filiale/kelai/pc/FaultLimitGas/FaultLimitGasList.vue +518 -518
  108. package/src/filiale/kelai/pc/NewCheckpaper.vue +1454 -1454
  109. package/src/filiale/liaoyuan/android/AddPlanItem.vue +412 -412
  110. package/src/filiale/liaoyuan/android/CurrentCreate.vue +1066 -1066
  111. package/src/filiale/liaoyuan/android/SafecheckOrderV.vue +2388 -2388
  112. package/src/filiale/liaoyuan/android/SafecheckUserInfo.vue +557 -557
  113. package/src/filiale/liaoyuan/pc/DefectListWeixiu.vue +489 -489
  114. package/src/filiale/liaoyuan/pc/NewCheckpaper.vue +1020 -1020
  115. package/src/filiale/libo/android/CurrentCreate.vue +1091 -1091
  116. package/src/filiale/libo/android.js +15 -15
  117. package/src/filiale/lixian/android/SafecheckOrderV.vue +2404 -2404
  118. package/src/filiale/lixian/android/SafecheckUserInfo.vue +578 -578
  119. package/src/filiale/lixian/pc/NewCheckpaper.vue +1211 -1211
  120. package/src/filiale/meihekou/android/AreaPlan.vue +577 -577
  121. package/src/filiale/meihekou/android/MeterReading.vue +110 -110
  122. package/src/filiale/meihekou/android/PaperFeedback.vue +1545 -1545
  123. package/src/filiale/meihekou/android/PhoneUpUserinfo.vue +1307 -1307
  124. package/src/filiale/meihekou/android/SafecheckUserInfo.vue +785 -785
  125. package/src/filiale/meihekou/pc/CheckPlan.vue +52 -52
  126. package/src/filiale/meihekou/pc/CheckPlanAreaList.vue +3 -2
  127. package/src/filiale/meihekou/pc/NewCheckpaper.vue +2028 -2027
  128. package/src/filiale/meihekou/pc/NewCheckpaperNew.vue +2051 -2050
  129. package/src/filiale/meihekou/pc/NewCheckpaperTemp.vue +1289 -1288
  130. package/src/filiale/meihekou/pc/SelectCheckPlan.vue +262 -262
  131. package/src/filiale/minsheng/android/SafecheckUserInfo.vue +754 -754
  132. package/src/filiale/minsheng/pc/DefectListNew.vue +535 -535
  133. package/src/filiale/pingxiang/android/SafecheckOrderV.vue +2424 -2424
  134. package/src/filiale/pingxiang/android/SafecheckUserInfo.vue +600 -600
  135. package/src/filiale/pingxiang/pc/DefectListNew.vue +519 -519
  136. package/src/filiale/pingxiang/pc/NewCheckpaper.vue +1294 -1294
  137. package/src/filiale/qianneng/android/AddPlanItem.vue +482 -482
  138. package/src/filiale/qianneng/android/SafecheckOrderV.vue +2785 -2785
  139. package/src/filiale/qianneng/android/SafecheckUserInfo.vue +775 -775
  140. package/src/filiale/qianneng/pc/DefectListNew.vue +576 -576
  141. package/src/filiale/qianneng/pc/NewCheckpaper.vue +1546 -1546
  142. package/src/filiale/qingjian/android/SafecheckOrderV.vue +2844 -2844
  143. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  144. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1871 -1871
  145. package/src/filiale/qingjian/pc/SecurityCheckCoordinates.vue +359 -359
  146. package/src/filiale/qingjian/pc.js +15 -15
  147. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -450
  148. package/src/filiale/qingtongxia/android/SafecheckOrderV.vue +2726 -2726
  149. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -782
  150. package/src/filiale/qingtongxia/pc/DefectListNew.vue +594 -594
  151. package/src/filiale/rizhao/android/AddPlanItem.vue +446 -446
  152. package/src/filiale/rizhao/android/SafecheckOrderV.vue +2430 -2430
  153. package/src/filiale/rizhao/android/SafecheckUserInfo.vue +640 -640
  154. package/src/filiale/rizhao/pc/DefectList.vue +489 -489
  155. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  156. package/src/filiale/rongchuang/android/checkpapermsg.vue +209 -209
  157. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -2747
  158. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -804
  159. package/src/filiale/shanggao/android/SafecheckOrderV.vue +2426 -2426
  160. package/src/filiale/shanxian/android/SafecheckUserInfo.vue +749 -749
  161. package/src/filiale/shanxian/pc/HiddenSituation.vue +121 -121
  162. package/src/filiale/shanxian/pc/NewCheckpaper.vue +1526 -1526
  163. package/src/filiale/shexian/android/AddPlanItem.vue +444 -444
  164. package/src/filiale/shexian/android/SafecheckOrderV.vue +2879 -2879
  165. package/src/filiale/shexian/pc/DefectListNew.vue +593 -593
  166. package/src/filiale/shexian/pc/NewCheckpaper.vue +1469 -1469
  167. package/src/filiale/shimen/android/SafecheckUserInfo.vue +547 -547
  168. package/src/filiale/shimen/pc/DefectList.vue +473 -473
  169. package/src/filiale/shimen/pc/NewCheckpaper.vue +1275 -1275
  170. package/src/filiale/siyang/android/AddPlanItem.vue +450 -450
  171. package/src/filiale/siyang/android/CurrentCreate.vue +1051 -1051
  172. package/src/filiale/siyang/android/PhoneRecordInfo.vue +214 -214
  173. package/src/filiale/siyang/android/SafecheckOrderV.vue +2796 -2796
  174. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  175. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -167
  176. package/src/filiale/taiyuan/pc/NewCheckpaper.vue +1976 -1976
  177. package/src/filiale/taiyuan/pc/PlanManage.vue +891 -891
  178. package/src/filiale/taiyuan/pc/checkUserList.vue +798 -798
  179. package/src/filiale/tianke/android/AddPlanItem.vue +455 -455
  180. package/src/filiale/tianke/android/SafecheckOrderV.vue +2431 -2431
  181. package/src/filiale/tianke/android/SafecheckUserInfo.vue +744 -744
  182. package/src/filiale/tongchuan/android/AddPlanItem.vue +483 -483
  183. package/src/filiale/tongchuan/android/PhoneRecordInfo.vue +191 -191
  184. package/src/filiale/tongchuan/android/PhoneSellInfo.vue +113 -113
  185. package/src/filiale/tongchuan/android/SafecheckUserInfo.vue +720 -720
  186. package/src/filiale/tongchuan/pc/CheckBookDetails.vue +209 -209
  187. package/src/filiale/tongchuan/pc/DefectListWeixiu.vue +484 -484
  188. package/src/filiale/tongchuan/pc/HiddenSituation.vue +166 -166
  189. package/src/filiale/weinan/android/AddPlanItem.vue +438 -438
  190. package/src/filiale/weinan/android/CurrentCreate.vue +1171 -1171
  191. package/src/filiale/weinan/android/CurrentCreateOnline.vue +911 -911
  192. package/src/filiale/weinan/android/SafePlanItem.vue +440 -440
  193. package/src/filiale/weinan/android/SafecheckUserInfo.vue +778 -778
  194. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  195. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -1088
  196. package/src/filiale/weinan/pc/HiddenSituation.vue +167 -167
  197. package/src/filiale/weinan/pc/checkScreen.vue +1094 -1094
  198. package/src/filiale/weinanct/android/SafecheckOrderV.vue +2730 -2730
  199. package/src/filiale/weinanct/pc/NewCheckpaper.vue +1315 -1315
  200. package/src/filiale/wensu/android/AddPlanItem.vue +495 -495
  201. package/src/filiale/wensu/android/AndroidDefectDeal.vue +464 -464
  202. package/src/filiale/wensu/android/PaperFeedback.vue +1358 -1358
  203. package/src/filiale/wensu/android/SafecheckOrderV.vue +2430 -2430
  204. package/src/filiale/wensu/android/SafecheckUserInfo.vue +627 -627
  205. package/src/filiale/wensu/pc/DefectListNew.vue +735 -735
  206. package/src/filiale/wenxi/android/AddPlanItem.vue +431 -431
  207. package/src/filiale/wenxi/android/SafecheckOrderV.vue +2671 -2671
  208. package/src/filiale/wenxi/android/SafecheckUserInfo.vue +673 -673
  209. package/src/filiale/wenxi/pc/DefectList.vue +653 -653
  210. package/src/filiale/wenxi/pc/NewCheckpaper.vue +1358 -1358
  211. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2241
  212. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -596
  213. package/src/filiale/wuan/pc/DefectListWeixiu.vue +506 -506
  214. package/src/filiale/wuan/pc/NewCheckpaper.vue +1169 -1169
  215. package/src/filiale/wuhai/android/SafecheckOrderV.vue +2456 -2456
  216. package/src/filiale/wuhai/android/SafecheckUserInfo.vue +573 -573
  217. package/src/filiale/wuhai/pc/NewCheckpaper.vue +1281 -1281
  218. package/src/filiale/xiangyuanzhongai/android/PhoneUpUserinfo.vue +1251 -1251
  219. package/src/filiale/xinkang/android/SafecheckDevices.vue +1213 -1213
  220. package/src/filiale/xinkang/pc/CheckSearchUser.vue +1026 -1026
  221. package/src/filiale/xinkang/pc/DefectListWeixiu.vue +475 -475
  222. package/src/filiale/xinkang/pc/NewCheckpaper.vue +1454 -1454
  223. package/src/filiale/xinliansihui/pc/PaperList.vue +814 -814
  224. package/src/filiale/xinliansihui/pc/PaperVisitMain.vue +206 -206
  225. package/src/filiale/xinliansihui/pc.js +13 -13
  226. package/src/filiale/yangchunboneng/android/AddPlanItem.vue +496 -496
  227. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +2865 -2865
  228. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  229. package/src/filiale/yangchunboneng/pc/DefectListNew.vue +576 -576
  230. package/src/filiale/yongzhou/android/SafecheckOrderV.vue +2774 -2774
  231. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  232. package/src/filiale/yuansheng/android/SafecheckOrderV.vue +2758 -2758
  233. package/src/filiale/yuansheng/android/SafecheckUserInfo.vue +797 -797
  234. package/src/filiale/yuansheng/pc/DefectListNew.vue +524 -524
  235. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +1371 -1371
  236. package/src/filiale/yuansheng/pc/checkmsg.vue +464 -464
  237. package/src/filiale/yunchengminsheng/android/DailyworkloadQuery.vue +491 -491
  238. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1509 -1509
  239. package/src/filiale/yunchengminsheng/android/PhoneSellInfo.vue +113 -113
  240. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1270 -1270
  241. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +785 -785
  242. package/src/filiale/yunchengminsheng/android.js +15 -15
  243. package/src/filiale/yunchengminsheng/pc/PaperList.vue +811 -811
  244. package/src/filiale/yunchengminsheng/pc.js +15 -15
  245. package/src/filiale/zhongsheng/android/BuyRecords.vue +122 -122
  246. package/src/filiale/zhongsheng/android/SafecheckOrderV.vue +2461 -2461
  247. package/src/filiale/zhongsheng/android/SafecheckUserInfo.vue +690 -690
  248. package/src/filiale/zhongsheng/pc/DefectListWeixiu.vue +514 -514
  249. package/src/filiale/zhongsheng/pc/NewCheckpaper.vue +1322 -1322
  250. package/src/filiale/zhongyi/android/SafecheckOrderV.vue +2431 -2431
  251. package/src/filiale/zhongyi/pc/DefectListNew.vue +514 -514
  252. package/src/filiale/zhoukou/android/SafecheckOrderV.vue +2502 -2502
  253. package/src/filiale/zhoukou/android/SafecheckUserInfo.vue +588 -588
  254. package/src/main.js +0 -1
  255. package/src/safecheck.js +927 -927
@@ -1,1213 +1,1213 @@
1
- <template>
2
- <div class="select-overspread repair-bg auto" style="padding-bottom:5px;">
3
- <!--<div class="bq-parent" v-if="shutype == 'heng'">-->
4
- <!--<blockquote class="blockquote">-->
5
- <!--<p><span>{{repairitem.header}}</span><a @click="mute()" style="float:right" href="#" class="repair-mute-class"><img src="../../assets/novoice.png" width="25px;" alt=""><span style="margin-left:10px;color: #304A66">关闭声音</span></a></p>-->
6
- <!--</blockquote>-->
7
- <!--</div>-->
8
- <div class="panel panel-default auto repair-info-content">
9
- <div class="panel-body" style="padding: 0">
10
- <!-- 安检项内容 -->
11
- <div class="auto repair-info-content compatible" style="padding: 0">
12
- <div class="row auto" style="padding: 0">
13
- <div v-show="false" class="{{shuclass}}" v-if=" device.device != '燃气表'">
14
- <button type="button" name="button" class="btn btn-primary" @click='adddetails()' :disabled="issee">增加</button>
15
- </div>
16
- <!--<div class="{{shuclass}}" v-if="device.device != '燃气表' && candelete">-->
17
- <!--<button type="button" name="button" class="btn btn-primary" @click='deletedetails()' :disabled="issee">删除</button>-->
18
- <!--</div>-->
19
- <div class="shuclass1" v-show="row.isshow" v-for="row in f_items" track-by="$index" style="padding: 4px; border:1px solid #D4D4D4;border-bottom: 0" >
20
- <label v-if="row.type != 'radio' && row.type != 'text' && row.type != 'picture' && row.type != 'checkbox'" v-show="row.isshow" class="fivelabel">
21
- {{row.f_item_name}}<span v-if="row.unit">({{row.unit}})</span><br/>{{row.remark}}
22
- </label>
23
- <label v-if="row.type == 'radio'" v-show="row.isshow" class="radiolabel">{{row.f_item_name}}
24
- <span v-if="row.unit">({{row.unit}})</span><br/>{{row.remark}}
25
- </label>
26
- <label v-if="row.type == 'text'" v-show="row.isshow" class="textlabel1">
27
- {{row.f_item_name}}<span v-if="row.unit">({{row.unit}})</span><br/>{{row.remark}}
28
- </label>
29
- <label v-if="row.type == 'picture' || row.type == 'checkbox'" v-show="row.isshow" class="textlabel">
30
- {{row.f_item_name}}<br/>{{row.remark}}
31
- </label>
32
- <!--<span v-if="show" style="font-weight:bold">{{row.f_content}}</span>-->
33
- <!--<datepicker placeholder="请选择时间"-->
34
- <!--:value.sync="row.f_content"-->
35
- <!--v-model="row.f_content"-->
36
- <!--:format="'yyyy-MM-dd'"-->
37
- <!--v-if="!show && row.type == 'date'"-->
38
- <!--:readonly="true"-->
39
- <!--&gt;</datepicker>-->
40
- <div style="clear: both" v-if="row.type == 'picture'" class="form-group col-sm-12" >
41
- <div class="auto" >
42
- <div class="panel">
43
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
44
- <div class="row" style="height: 160px;width:160px;overflow: scroll;top: 1px">
45
- <div class="col-sm-4" v-show="row.f_path">
46
- <img-self :src="row.f_path" :alt="row.f_item_name" width="140" height="140"></img-self>
47
- </div>
48
- <div class="col-sm-4" v-show="!row.f_path" @click="takePic($index, row.f_item_name)">
49
- <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
50
- </div>
51
- <img v-show="row.f_path" src="../../../assets/remove.png" :class="style__" @click="delfile($index, row.f_path)" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
52
- </div>
53
- </div>
54
- </div>
55
- </div>
56
- </div>
57
- <div style="float: left;width:60%" class="form-group" v-if="row.type == 'string'" v-show="row.isshow">
58
- <input type="text" class="form-control" maxlength="100" v-model="row.f_item_value" :readonly="role == 'androidview' || row.readonly">
59
- </div>
60
- <div style="float: left;width:60%" class="form-group col-sm-12" v-if="row.type == 'date'" v-show="row.isshow">
61
- <datepicker id="f_making_date" :placeholder= row.f_item_name
62
- :value.sync="row.f_item_value"
63
- v-if="row.type == 'date'"
64
- v-show="row.isshow"
65
- :disabled-days-of-Week="[]"
66
- :format="'yyyy-MM-dd 00:00:00'"
67
- :show-reset-button="reset" readonly="readonly">
68
- </datepicker>
69
- </div>
70
-
71
- <div style="float: left;width:60%" class="form-group" v-if="!show && row.type == 'number'" v-show="row.isshow">
72
- <input type="text" class="form-control" maxlength="100" v-model="row.f_item_value" onkeyup="value=value.replace(/[^\d\.]/g,'')" :readonly="row.readonly">
73
- </div>
74
- <!--<input type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project != '表号'" :disabled="(!(ischecked == '有')) || issee" :readonly="issee">-->
75
- <!--<input type="text" class="form-control" v-model="meternum" v-if="!show && row.type == 'string' && row.f_project == '表号' " :disabled="(!(ischecked == '有')) || issee" :readonly="issee" >-->
76
- <!--<button type="button" name="button" class="btn btn-primary" @click="scan" v-if="!show && row.f_project == '表号' ">扫码</button>-->
77
- <input-select v-if="row.type == 'inputSelector'"
78
- v-show="row.isshow"
79
- :value.sync="row.selected"
80
- v-model="row.selected"
81
- :readonly="false"
82
- :options="row.options"
83
- @change="changse"
84
- @click="transelation($index)"></input-select>
85
- <v-select style="float: left" :value.sync="row.selected"
86
- v-model="row.selected"
87
- v-if="row.type == 'selector'"
88
- :search="false"
89
- v-show="row.isshow"
90
- placeholder='请选择'
91
- :options="row.options"
92
- :disabled="role == 'androidview' || row.readonly"
93
- @change="changse"
94
- @click="transelation($index)"
95
- :multiple="row.multiple"
96
- :close-on-select="!row.multiple" clear-button></v-select>
97
- <div style="float: left;width: 30%" class="form-group" v-if="!show && row.type == 'radio'">
98
- <div class="col-xs-6 col-sm-6 col-md-6" v-for="item in row.options">
99
- <!-- <input type="radio" :name="row.f_item_name" @click="disSelect($parent.$index,item.value)" :value="item.value" :disabled="(!(ischecked == '有')) || issee" v-model="row.f_item_value" >-->
100
- <input type="radio" :name="row.f_item_name" :value="item.value" :disabled="(!(ischecked == '有')) || issee" v-model="row.f_item_value" >
101
- <span>{{item.label}}</span>
102
- </div>
103
- </div>
104
- <div v-if="!show && row.type == 'checkbox'" class="col-xs-12 col-sm-12 col-md-12" style="white-space: nowrap" >
105
- <div style="float: left" v-for="item in row.options">
106
- <input type="checkbox" :name="row.f_item_name" :value="item.value" :disabled="(!(ischecked == '有')) || issee" v-model="row.f_item_value">
107
- <span>{{item.label}}</span>
108
- </div>
109
- </div>
110
- <div style="clear: both">
111
- <label v-if="row.f_item_value.indexOf('其他') >-1" class="fivelabel">其他</label>
112
- <div style="float: left;width:60%" class="form-group" v-if="row.f_item_value.indexOf('其他') >-1">
113
- <input type="text" class="form-control" maxlength="100" v-model="row.f_else" :readonly="role == 'androidview' || row.readonly">
114
- </div>
115
- </div>
116
- <div style="clear: both">
117
- <div class="form-group" style="display: flex;flex-wrap: wrap" v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '') && (dealdispose == 'true' || dealdispose == true) " >
118
- <label class="fivelabel">处理方式</label>
119
- <v-select :value="row.f_deal_dispose"
120
- :value-single="true"
121
- :options="deals"
122
- :disabled="role == 'androidview'"
123
- @change="changdeal"
124
- @click="transelation($index)"
125
- close-on-select clear-button></v-select>
126
- </div>
127
- <div style="margin-left: 10px" class="form-group col-sm-10" v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && row.tooltip != undefined && row.tooltip != '' ">
128
- ☆{{row.tooltip}}
129
- </div>
130
- <div class="form-group col-sm-12" style="display: flex;flex-wrap: wrap" v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '')">
131
- <div class="auto" style="margin:1px;">
132
- <div class="panel">
133
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
134
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
135
- <div class="col-sm-4" v-show="row.f_path">
136
- <img-self :src="row.f_path" :alt="row.f_item_name" width="140" height="140"></img-self>
137
- </div>
138
- <div class="col-sm-4" v-show="!row.f_path" @click="takePic($index, row.f_item_name)">
139
- <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
140
- </div>
141
- <img v-show="row.f_path" src="../../../assets/remove.png" :class="style__" @click="delfile($index, row.f_path)" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
142
- </div>
143
- </div>
144
- </div>
145
- </div>
146
- <!--多张隐患照片-->
147
- <div class="auto" v-for="itemIndex in hiddenDangerImgNumber" style="margin: 1px;">
148
- <div class="panel">
149
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
150
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
151
- <div class="col-sm-4" v-show="row['f_p' + (itemIndex+1) + '_path']">
152
- <img-self :src="row['f_p' + (itemIndex+1) + '_path']" :alt="row.f_item_name" width="140" height="140"></img-self>
153
- </div>
154
- <div class="col-sm-4" v-show="!row['f_p' + (itemIndex+1) + '_path']" @click="takePic($index, row.f_item_name,'f_p' + (itemIndex+1)+ '_path')">
155
- <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
156
- </div>
157
- <img v-show="row['f_p' + (itemIndex+1)+'_path']" src="../../../assets/remove.png" :class="style__" @click="delfile($index,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>
158
- </div >
159
- </div>
160
- </div>
161
- </div>
162
- </div>
163
- </div>
164
-
165
- <!--<v-select :value.sync="row.f_content" :options='getOptions(row.f_project)' placeholder='请选择' :disabled="(!(ischecked == '有')) || issee" close-on-select :value-single="true" v-if="!show && row.type == 'selector' && row.f_project != '气表品牌'"-->
166
- <!--&gt;</v-select>-->
167
- <!--<v-select :value.sync="row.f_content" :options='getOptions(row.f_project)' @change="getgasmodel" placeholder='请选择' :disabled="(!(ischecked == '有')) || issee" close-on-select :value-single="true" v-if="!show && row.type == 'selector' && row.f_project == '气表品牌'"-->
168
- <!--&gt;</v-select>-->
169
- <!-- <div class="auto" v-if="!show && row.type == 'checkbox' ">-->
170
- <!-- <input class="magic-checkbox" type="checkbox" id="shebeicheckbox"-->
171
- <!-- :checked="row.f_content == '有'"-->
172
- <!-- @click="switchDetails(row.f_project, $event)" :disabled="issee"/>-->
173
- <!-- <label for="shebeicheckbox" style="width:150px;padding-bottom: 10px">{{row.f_project}}</label>-->
174
- <!-- </div>-->
175
- <!--<img-area :model="Detail.imgs" :sutitle="row.f_project" v-if="row.type == 'picture'" :disabled="issee"></img-area>-->
176
- </div>
177
- </div>
178
- </div>
179
- <div style="border-top: 1px solid #D4D4D4"></div>
180
- </div>
181
- </div>
182
- </div>
183
- </template>
184
- <script>
185
- import Vue from 'vue'
186
- import * as Util from '../../Util'
187
-
188
- export default {
189
- title: '维修列表信息',
190
- data() {
191
- return {
192
- // telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
193
- // meterstyle:[],
194
- hiddenDangerImgNumber:0,//隐患图片数
195
- shuclass:'col-xs-12 col-sm-12 col-md-12 form-input-group mg8',
196
- shuclass1:'col-xs-12 col-sm-12 col-md-12 mg8',
197
- // labels:[],
198
- meternum:'',
199
- ischecked:'有',
200
- gasmodel:'',
201
- textstyle:'color: red',
202
- paper: this.$parent.$parent.data,
203
- f_items:[],
204
- f_is_normal:'否',
205
- page:{},
206
- selectindex:null,
207
- lives:[{label: '是', value: '是'},{label: '否', value: '否'}],
208
- deals:[{label: '现场整改', value: '现场整改'},{label: '自行处理', value: '自行处理'},{label: '未处理', value: '未处理'}],
209
- f_live_dispose:'否',
210
- f_deal_dispose:'未处理',
211
- // 初始表底
212
- f_initial_base: {},
213
- // 气量异常差值 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
214
- f_gas_aberrant_number: {},
215
- // 金额异常差值 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
216
- f_fee_aberrant_number: {},
217
- // 累购气量
218
- f_total_gas: {},
219
- // 累购金额
220
- f_total_fee: {},
221
- // 已用气量
222
- f_table_base: {},
223
- // 已用金额
224
- f_fee_base: {},
225
- // 剩余气量
226
- f_gas_balance: {},
227
- //液晶总用量
228
- f_total_lcd: {},
229
- // 剩余金额
230
- f_fee_balance: {},
231
- //物联网表数据存储
232
- f_balance_amount:{},//物联网表剩余金额
233
- f_meter_base:{},//物联网表读数
234
- f_balance_amount1:{},//物联网表现场录入的表上剩余金额
235
- f_meter_base1:{},//物联网表现场录入的表字轮数
236
- f_meter_aberrant_number1: {},//物联网表 表数异常差值
237
- f_fee_aberrant_number1: {},//物联网 表金额异常差值
238
- gascldDeviation: (
239
- function (_this) {
240
- let deviation = _this.$appdata.getSingleValue('液晶总用量是隐患')
241
- if (deviation && !isNaN(deviation)) {
242
- return deviation
243
- } else {
244
- return 0
245
- }
246
- }
247
- )(this),
248
- gasDeviation: (
249
- function (_this) {
250
- let deviation = _this.$appdata.getSingleValue('气量异常差值允许误差')
251
- if (deviation && !isNaN(deviation)) {
252
- return deviation
253
- } else {
254
- return 0
255
- }
256
- }
257
- )(this),
258
- // 金额异常差值允许误差
259
- feeDeviation: (
260
- function (_this) {
261
- let deviation = _this.$appdata.getSingleValue('金额异常差值允许误差')
262
- if (deviation && !isNaN(deviation)) {
263
- return deviation
264
- } else {
265
- return 0
266
- }
267
- }
268
- )(this),
269
- // 字轮异常差值允许误差
270
- meterbase: (
271
- function (_this) {
272
- let deviation = _this.$appdata.getSingleValue('字轮异常差值允许误差')
273
- if (deviation && !isNaN(deviation)) {
274
- return deviation
275
- } else {
276
- return 0
277
- }
278
- }
279
- )(this),
280
- showElse:false, //控制其他选项是否显示
281
- }
282
- },
283
- props: ['config','device','idx','operation','role'],
284
- // props: {
285
- // // 维修对应的用户数据收集
286
- // model: {
287
- // type: Object
288
- // },
289
- // service:{
290
- // type: Object
291
- // },
292
- // show: {
293
- // type: Boolean,
294
- // default: false
295
- // },
296
- // repairitem:{
297
- // type: Object
298
- // },
299
- // shutype:'heng',
300
- // tabs:{
301
- // type: Object
302
- // },
303
- // repairdetails:{
304
- // type: Object
305
- // },
306
- // faultshow:{
307
- // type: Object
308
- // },
309
- // issee:''
310
- // },
311
- methods: {
312
- changse(val){
313
- if(val == undefined){
314
- return
315
- }
316
- if(this.selectindex != null) {
317
- if(this.f_items[this.selectindex].type == 'selector'){
318
- this.f_items[this.selectindex].f_item_value = val
319
- }else if(this.f_items[this.selectindex].type == 'inputSelector'){
320
- this.f_items[this.selectindex].f_item_value = val.target.value
321
- }
322
- }
323
- },
324
- changlive(val){
325
- if(val == undefined){
326
- return
327
- }
328
- if(this.selectindex != null) {
329
- this.f_items[this.selectindex].f_live_dispose = val
330
- }
331
- },
332
- changdeal(val){
333
- if(val == undefined){
334
- return
335
- }
336
- if(this.selectindex != null) {
337
- this.f_items[this.selectindex].f_deal_dispose = val
338
- }
339
- },
340
- switchDetails(detailsType, event){
341
- if (event.srcElement.checked) {
342
- for(var i = 0;i<this.Detail.details.length;i++){
343
- if(this.Detail.details[i].f_project == detailsType){
344
- this.Detail.details[i].f_content = '有'
345
- this.ischecked = '有'
346
- return
347
- }
348
- }
349
- } else {
350
- this.Detail.imgs = []
351
- for(var i = 0;i<this.Detail.details.length;i++){
352
- if(this.Detail.details[i].f_project == detailsType){
353
- this.Detail.details[i].f_content = '无'
354
- this.ischecked = '无'
355
- }else{
356
- this.Detail.details[i].f_content = ''
357
- }
358
- }
359
- }
360
- },
361
- getgasmodel(val){
362
- this.gasmodel = val
363
- },
364
- getradios(val,flag){
365
- let Reoptions = []
366
- for (let i = 0;i<this.repairdetails.length;i++) {
367
- var t = false
368
- if(this.repairdetails[i].f_type == this.repairitem.header ){
369
- for(var j =0;j<this.repairdetails[i].details.length;j++){
370
- if(this.repairdetails[i].details[j].f_project == val ){
371
- Reoptions = this.repairdetails[i].details[j].options
372
- t = true
373
- break
374
- }
375
- }
376
- }
377
- if(t){
378
- break
379
- }
380
- }
381
- for(let j = 0;j<Reoptions.length;j++){
382
- if(Reoptions[j].data == flag){
383
- for(var e = 0;e<this.Detail.details.length;e++){
384
- if(this.Detail.details[e].f_project == val){
385
- this.Detail.details[e].f_status = Reoptions[j].f_status
386
- return
387
- }
388
- }
389
- break
390
- }
391
- }
392
- },
393
- deletedetails(){
394
- this.$showMessage('该操作会删除所填信息,是否继续!', ['confirm', 'cancel']).then((res) => {
395
- if (res === 'confirm') {
396
- for(var i = 0;i<this.tabs.length;i++){
397
- if(this.tabs[i].number == this.repairitem.number){
398
- this.tabs.splice(i, 1)
399
- this.model.servicerepair.splice(this.repairitem.number, 1)
400
- for(let t = i;t < this.tabs.length;t++ ) {
401
- this.tabs[t].number -= 1
402
- }
403
- return
404
- }
405
- }
406
- }
407
- })
408
- },
409
- takePic(prop, title, pathname='null') {
410
- if (this.role == 'androidview') {
411
- return
412
- }
413
- HostApp.__callback__ = this.cameraCallBack
414
- HostApp.__this__ = this
415
- //tag
416
- let fileName
417
- if (pathname == 'null') {
418
- if (!this.f_items[prop].f_path || this.f_items[prop].f_path.includes("nopic.png")) {
419
- fileName = Util.guid() + '-' + 'device'+this.device.n + '-' + this.idx + '-'+'f_items'+prop+ '.jpg'
420
- } else {
421
- fileName = Util.getFileName(this.f_items[prop].f_path)
422
- }
423
- } else {
424
- if (!this.f_items[prop][pathname] || this.f_items[prop][pathname].includes("nopic.png")) {
425
- fileName = Util.guid() + '-' + 'device'+this.device.n + '-' + this.idx + '-'+'f_items'+prop+ '.jpg'
426
- } else {
427
- fileName = Util.getFileName(this.f_items[prop][pathname])
428
- }
429
- }
430
- //tag
431
- //tag
432
- HostApp._open_a_page({type: 'boomerang',
433
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
434
- param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'", "%s","'+pathname+'");', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name}
435
- })
436
- },
437
- cameraCallBack(prop, fileName,pathname) {
438
- //tag
439
- if (pathname == 'null') {
440
- //tag
441
- HostApp.__this__.$set( 'f_items['+prop+'].f_path', fileName + '?' + Math.random())
442
- //tag
443
- HostApp.__callback__ = null
444
- HostApp.__this__ = null
445
- } else {
446
- //tag
447
- //tag)
448
- HostApp.__this__.$set( 'f_items['+prop+'].'+pathname+'', fileName + '?' + Math.random())
449
- HostApp.__callback__ = null
450
- HostApp.__this__ = null
451
- }
452
- },
453
- delfile(prop, fileName, pathname='null') {
454
- if (pathname == 'null') {
455
- //tag
456
- //tag)
457
- if(fileName == Vue.nopic){
458
- return
459
- } else {
460
- HostApp.delfile(fileName)
461
- this.f_items[prop].f_path = Vue.nopic
462
- }
463
- }else {
464
- //tag
465
- //tag)
466
- if(fileName == Vue.nopic){
467
- return
468
- } else {
469
- HostApp.delfile(fileName)
470
- this.f_items[prop][pathname] = Vue.nopic
471
- }
472
- }
473
- },
474
- adddetails(){
475
- // 下标作为序号,取值用。 增加 序号得依次增加
476
- if(this.tabs.length > 0){
477
- for(let i = this.tabs.length-1;i > 0 ;i-- ){
478
- if(this.tabs[i].header == this.repairitem.header){
479
- if(this.model.servicerepair.length > 0){
480
- for(let j = this.model.servicerepair.length -1;j > -1;j-- ){
481
- if(this.model.servicerepair[j].f_type == this.repairitem.header){
482
- this.model.servicerepair.splice(j+1, 0, Object.assign({}, JSON.parse(JSON.stringify(this.tabs[i].details))))
483
- this.tabs.splice(i+1, 0, {header: `${this.repairitem.header}`,details:this.tabs[i].details,complete:'repair-details',class:'repair-details-class',number:j+1,items:this.tabs[i].items})
484
- for(let t = i+2;t < this.tabs.length;t++ ) {
485
- this.tabs[t].number += 1
486
- }
487
- this.faultshow.number += this.faultshow.number + 1
488
- return
489
- }
490
- }
491
- }
492
- }
493
- }
494
- }
495
- },
496
- transelation(val){
497
- this.selectindex = val
498
- },
499
- towatch(){
500
- for(let n in this.f_items){
501
- if(typeof this.f_items[n]=='function'){
502
- continue
503
- }
504
- if(this.f_items[n].type == 'selector' || this.f_items[n].type == 'inputSelector'){
505
- // 监听下拉框,如果有隐患,需要拍照
506
- this.$watch('f_items['+n+'].selected',function(val) {
507
- // 下拉框值
508
- //tag)
509
- // 下拉框所属设备
510
- //tag
511
- // 下拉框所属项
512
- //tag
513
- let shImage = false
514
- if(val.indexOf('其他') == -1){
515
- this.f_items[n].f_else = ''
516
- }
517
- // if(this.config[this.device.device].items[item].type == 'selector'){
518
- // this.f_items[n].f_item_value = val
519
- // }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
520
- // this.f_items[n].f_item_value = val[0]
521
- // }
522
- // 在配置中查找该项
523
- for (let item in this.config[this.device.device].items) {
524
- if(typeof this.config[this.device.device].items[item]=='function'){
525
- continue
526
- }
527
- let type = this.config[this.device.device].items[item].type
528
- let multiple = this.config[this.device.device].items[item].multiple?this.config[this.device.device].items[item].multiple:false
529
- let options = this.config[this.device.device].items[item].options
530
- if ((this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'inputSelector') && item == this.f_items[n].f_item_name) {
531
- for (let i in options) {
532
- if(typeof options[i]=='function'){
533
- continue
534
- }
535
- let value
536
- if(this.config[this.device.device].items[item].type == 'selector' && this.config[this.device.device].items[item].multiple == false){
537
- value = val[0]
538
- }else if (this.config[this.device.device].items[item].type == 'inputSelector'){
539
- value = val
540
- }
541
- //tag)
542
- // 如果未选择,清空图片、隐患信息等
543
- if((type == 'selector' && val.length == 0) || (type == 'inputSelector' && val == '')){
544
- this.f_items[n].f_path = ''
545
- this.f_items[n].f_is_defect = ''
546
- this.f_items[n].f_defect_level = ''
547
- this.f_items[n].f_live_dispose = ''
548
- this.f_items[n].f_deal_dispose = ''
549
- this.f_items[n].tooltip = ''
550
- }
551
- if((type == 'selector' && multiple == false && options[i].data == val[0]) || (type == 'inputSelector' && options[i].data == val) || (type == 'selector' && multiple == true && val.indexOf(options[i].data) > -1)){
552
- // 找到选中的项了
553
- //tag
554
- if(options[i].isdefect == true ){
555
- shImage = true
556
- }
557
- if(options[i].isdefect == false || this.f_items[n].f_item_value == ''){
558
- shImage = false
559
- }
560
- //tag
561
- if(shImage){
562
- this.f_items[n].f_is_defect =true
563
- this.f_items[n].f_defect_level = options[i].level
564
- this.f_items[n].f_path = Vue.nopic
565
- this.f_items[n].f_live_dispose = '否'
566
- this.f_items[n].f_deal_dispose = '未处理'
567
- //tag
568
- this.f_items[n].tooltip= options[i].tooltip
569
- }else{
570
- this.f_items[n].f_path = ''
571
- this.f_items[n].f_is_defect = ''
572
- this.f_items[n].f_defect_level = ''
573
- this.f_items[n].f_live_dispose = ''
574
- this.f_items[n].f_deal_dispose = ''
575
- this.f_items[n].tooltip = ''
576
- }
577
- }
578
- }
579
- }
580
- }
581
- }
582
- )
583
- // this.$watch('other',function(val){
584
- // //tag
585
- // if(this.selectindex != null) {
586
- // let index = this.f_items[this.selectindex].f_item_value.indexOf('其他')
587
- // if(index > -1){
588
- // this.f_items[this.selectindex].f_item_value.splice(index,1,this.other)
589
- // }
590
- // }
591
- //
592
- // })
593
- }else if(this.f_items[n].type == 'radio') {
594
- // 监听单选框,如果有隐患,需要拍照
595
- this.$watch('f_items[' + n + '].f_item_value', function (val) {
596
- //tag)
597
- let options = this.f_items[n].options
598
- //tag)
599
- for (let i = 0; i < options.length; i++) {
600
- //tag)
601
- // 找到选中的项了
602
- if (options[i].value == val) {
603
- // 如果有隐患,拍图片
604
- if (options[i].isdefect) {
605
- this.f_items[n].f_is_defect = true
606
- this.f_items[n].f_defect_level = options[i].level
607
- this.f_items[n].f_path = Vue.nopic
608
- this.f_items[n].f_live_dispose = '否'
609
- this.f_items[n].f_deal_dispose = '未处理'
610
- this.f_items[n].tooltip = options[i].tooltip
611
- //tag)
612
- return
613
- }
614
- }
615
- }
616
- this.f_items[n].f_path = ''
617
- this.f_items[n].f_is_defect = ''
618
- this.f_items[n].f_defect_level = ''
619
- this.f_items[n].f_live_dispose = ''
620
- this.f_items[n].f_deal_dispose = ''
621
- this.f_items[n].tooltip = ''
622
- })
623
- }else if(this.f_items[n].type == 'checkbox') {
624
- // 监听单选框,如果有隐患,需要拍照
625
- this.$watch('f_items[' + n + '].f_item_value', function (val) {
626
- //tag)
627
- // 如果是手动赋值,不执行下面逻辑
628
- if (this.f_items[n].isReSet) {
629
- this.f_items[n].isReSet = false
630
- return
631
- }
632
- let options = this.f_items[n].options
633
- //tag)
634
- // 取出选中项中有隐患的详细信息
635
- let selected = options.filter(item => { return val.indexOf(item.value) != -1 && item.isdefect })
636
-
637
- if(selected.length > 0){
638
- // 防止赋值无限调用
639
- this.f_items[n].isReSet = true
640
- let selectList = selected.map(item => {return item.value})
641
- // 如果选中的是非隐患项,取消选中isdefect为true的
642
- if (selectList.indexOf(val[val.length - 1]) == -1) {
643
- this.f_items[n].f_item_value = val.filter(item => {return selectList.indexOf(item) == -1})
644
- this.f_items[n].f_path = ''
645
- this.f_items[n].f_is_defect = ''
646
- this.f_items[n].f_defect_level = ''
647
- this.f_items[n].f_live_dispose = ''
648
- this.f_items[n].f_deal_dispose = ''
649
- this.f_items[n].tooltip = ''
650
- return
651
- }
652
- // 如果选中的是隐患项,取消选中isdefect为false的
653
- this.f_items[n].f_item_value = selectList
654
- // 如果第一次选择隐患项,初始化
655
- if (!this.f_items[n].f_is_defect) {
656
- this.f_items[n].f_is_defect = true
657
- this.f_items[n].f_defect_level = selected[0].level
658
- this.f_items[n].f_path = Vue.nopic
659
- this.f_items[n].f_live_dispose = '否'
660
- this.f_items[n].f_deal_dispose = '未处理'
661
- //tag
662
- this.f_items[n].tooltip = selected[0].tooltip
663
- }
664
- //tag)
665
- return
666
- }
667
- this.f_items[n].f_path = ''
668
- this.f_items[n].f_is_defect = ''
669
- this.f_items[n].f_defect_level = ''
670
- this.f_items[n].f_live_dispose = ''
671
- this.f_items[n].f_deal_dispose = ''
672
- this.f_items[n].tooltip = ''
673
- })
674
- }
675
- }
676
- //tag)
677
- },
678
- getCrystalAberrantNumber(){
679
- //tag
680
- if(!this.f_total_lcd.index || !this.f_table_base.index){
681
- //tag
682
- return
683
- }
684
- this.f_items[this.f_total_lcd.index].f_is_defect = false
685
- if (Number(this.f_items[this.f_table_base.index].f_item_value) !== Number(this.f_items[this.f_total_lcd.index].f_item_value)) {
686
- this.f_items[this.f_total_lcd.index].f_is_defect = true
687
- console.log('有异常')
688
- }else{
689
- this.f_items[this.f_total_lcd.index].f_is_defect = null
690
- console.log('无异常')
691
- }
692
- },
693
- getGasAberrantNumber(val) {
694
- //tag
695
- if(!this.f_table_base.index || !this.f_gas_balance.index){
696
- //tag
697
- return
698
- }
699
- // 先清空
700
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
701
- this.f_items[this.f_gas_aberrant_number.index].f_is_defect = false
702
- //
703
- if(val=='机械数总用量(方)'){
704
- this.getCrystalAberrantNumber()
705
- // //剩余气量 = 累购-已用
706
- // this.f_items[this.f_gas_balance.index].f_item_value= this.f_items[this.f_total_gas.index].f_item_value-this.f_items[this.f_table_base.index].f_item_value
707
- // if (isNaN(this.f_items[this.f_gas_balance.index].f_item_value)) {
708
- // this.f_items[this.f_gas_balance.index].f_item_value = null
709
- // }
710
- }
711
-
712
- // 只有两个值都填了才会计算
713
- if (!this.f_items[this.f_table_base.index].f_item_value || !this.f_items[this.f_gas_balance.index].f_item_value) {
714
- return
715
- }
716
- //tag)
717
- //tag
718
- //tag
719
-
720
- // 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
721
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_total_gas.index].f_item_value - this.f_items[this.f_gas_balance.index].f_item_value - (this.f_items[this.f_table_base.index].f_item_value - this.f_items[this.f_initial_base.index].f_item_value)
722
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_gas_aberrant_number.index].f_item_value.toFixed(3)
723
- // 如果数值有误,清空结果s
724
- if (isNaN(this.f_items[this.f_gas_aberrant_number.index].f_item_value)) {
725
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
726
- }
727
- //tag ===> ' + Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value))
728
- //tag ===> ' + JSON.stringify(Number(this.gasDeviation)))
729
- // 计算差值是否在范围内
730
- if (Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value) > Number(this.gasDeviation) || Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value) < Number(this.gasDeviation) * -1) {
731
- this.f_items[this.f_gas_aberrant_number.index].f_is_defect = true
732
- }else{
733
- this.f_items[this.f_gas_aberrant_number.index].f_is_defect = null
734
- }
735
-
736
- //tag)
737
- },
738
- getFeeAberrantNumber(val) {
739
- //tag
740
- // 只有两个值都填了才会计算
741
- if(!this.f_fee_base.index || !this.f_fee_balance.index){
742
- //tag
743
- return
744
- }
745
- // 先清空
746
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
747
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = false
748
-
749
- if(val=='已用金额'){
750
- this.f_items[this.f_fee_balance.index].f_item_value=this.f_items[this.f_total_fee.index].f_item_value-this.f_items[this.f_fee_base.index].f_item_value
751
- if (isNaN(this.f_items[this.f_fee_balance.index].f_item_value)) {
752
- this.f_items[this.f_fee_balance.index].f_item_value = null
753
- }
754
- }
755
-
756
- if (!this.f_items[this.f_fee_base.index].f_item_value || !this.f_items[this.f_fee_balance.index].f_item_value) {
757
- return
758
- }
759
-
760
- // 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
761
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_total_fee.index].f_item_value - this.f_items[this.f_fee_balance.index].f_item_value - this.f_items[this.f_fee_base.index].f_item_value
762
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_fee_aberrant_number.index].f_item_value.toFixed(3)
763
- if (isNaN(this.f_items[this.f_fee_aberrant_number.index].f_item_value)) {
764
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
765
- }
766
- //tag ===> ' + Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value))
767
- //tag ===> ' + JSON.stringify(Number(this.feeDeviation)))
768
- // 计算差值是否在范围内
769
- if (Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value) > Number(this.feeDeviation)) {
770
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = true
771
- }else{
772
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = null
773
- }
774
-
775
- //tag)
776
- },
777
- //物联网表字轮数改变触发
778
- getmeteraberrantnumber() {
779
- //tag
780
-
781
- // 先清空
782
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
783
- this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = false
784
- //tag
785
- // 只有两个值都填了才会计算
786
- if (!this.f_items[this.f_meter_base.index].f_item_value || !this.f_items[this.f_meter_base1.index].f_item_value) {
787
- return
788
- }
789
- //tag
790
- // 计算公式 => 表数异常差值= - 字轮数 - 后台表读数
791
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = this.f_items[this.f_meter_base1.index].f_item_value - this.f_items[this.f_meter_base.index].f_item_value
792
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = this.f_items[this.f_meter_aberrant_number1.index].f_item_value.toFixed(3)
793
- if (isNaN(this.f_items[this.f_meter_aberrant_number1.index].f_item_value)) {
794
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
795
- }
796
- //tag ===> ' + Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value))
797
- // 计算差值是否在范围内
798
- //tag)
799
- if (Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value) > Number(this.meterbase)){
800
- this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = true
801
- }
802
-
803
- //tag)
804
- },
805
-
806
- disSelect(index, itemValue) {
807
- //tag)
808
- //tag)
809
- if (this.f_items[index].f_item_value == itemValue) {
810
- this.$set(`f_items[${index}].f_item_value`, '')
811
- }
812
- }
813
- },
814
- ready() {
815
- //tag
816
- //tag
817
- if(Vue.config.safecheck != undefined){
818
- if(Vue.config.safecheck.ApproveConfig != undefined){
819
- if(Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
820
- this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
821
- }
822
- if(Vue.config.safecheck.ApproveConfig.dealdispose != undefined) {
823
- this.dealdispose = Vue.config.safecheck.ApproveConfig.dealdispose
824
- }
825
- if(Vue.config.safecheck.ApproveConfig.showtorepair) {
826
- this.deals=[{label: '现场整改', value: '现场整改'},
827
- {label: '自行处理', value: '自行处理'},
828
- {label: '转维修', value: '报修'}
829
- ]
830
- }
831
- if(Vue.config.safecheck.ApproveConfig.Processing) {
832
- if(Vue.config.safecheck.ApproveConfig.Processing.length > 0){
833
- this.deals = Vue.config.safecheck.ApproveConfig.Processing
834
- }
835
- }
836
- if(Vue.config.safecheck.ApproveConfig.showXCImg) {
837
- this.showXCImg = true
838
- }
839
- if(Vue.config.safecheck.ApproveConfig.showZXTime) {
840
- this.showZXTime = true
841
- }
842
- if(Vue.config.safecheck.ApproveConfig.showtorepair) {
843
- }
844
- if(Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
845
- if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 5) {
846
- this.hiddenDangerImgNumber = 5
847
- }else {
848
- this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
849
- }
850
- }
851
- }
852
- }
853
- //tag
854
- //tag)
855
- //tag)
856
- //tag)
857
- //创建页面所需数据
858
- this.$set('piece', this.paper['device'+this.device.n][this.idx])
859
- //tag)
860
- //tag)
861
- let n = 0
862
- for (let item in this.config[this.device.device].items) {
863
- if(typeof this.config[this.device.device].items[item]=='function'){
864
- continue
865
- }
866
- let index = this.config[this.device.device].items[item].index-1
867
- this.$set('page.options' + index, [])
868
- //tag)
869
- //tag)
870
- //tag)
871
- // 先根据配置组接页面
872
- let f_item_value
873
- if(this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'checkbox'){
874
- f_item_value = []
875
- // 判断选项的默认值
876
- for (let defitem in this.config[this.device.device].items[item].options) {
877
- if(typeof this.config[this.device.device].items[item].options[defitem]=='function'){
878
- continue
879
- }
880
- let defopt = this.config[this.device.device].items[item].options[defitem]
881
- if (defopt.isdefault) {
882
- //tag
883
- f_item_value[0] = defopt.data
884
- }
885
- }
886
- // if(this.config[this.device.device].items[item].data){
887
- // f_item_value.push(this.config[this.device.device].items[item].data)
888
- // }
889
- }else if(this.config[this.device.device].items[item].type == 'radio'){
890
- //为radio添加默认值
891
- f_item_value=''
892
- //tag)
893
- for (let defitem in this.config[this.device.device].items[item].options) {
894
- if(typeof this.config[this.device.device].items[item].options[defitem]=='function'){
895
- continue
896
- }
897
- //tag)
898
- let defopt = this.config[this.device.device].items[item].options[defitem]
899
- if (defopt.isdefault) {
900
- //tag)
901
- f_item_value = defopt.data
902
- }
903
- }
904
- }else{
905
- f_item_value = this.config[this.device.device].items[item].data ? this.config[this.device.device].items[item].data : ''
906
- }
907
- //tag)
908
- let it = {
909
- type: this.config[this.device.device].items[item].type,
910
- f_item_name: item,
911
- checkmust: this.config[this.device.device].items[item].checkmust,
912
- f_item_value: f_item_value,
913
- is_verification:this.config[this.device.device].items[item].is_verification,
914
- verification_text:'',
915
- verification_state:'',// ai验证是否通过 npass(未通过)/pass(通过)
916
- f_is_defect: '',
917
- multiple:this.config[this.device.device].items[item].multiple == true?this.config[this.device.device].items[item].multiple:false,
918
- isshow:this.config[this.device.device].items[item].isshow == false?this.config[this.device.device].items[item].isshow:true,
919
- readonly: this.config[this.device.device].items[item].readonly == true?true:false,
920
- remark: this.config[this.device.device].items[item].remark ? this.config[this.device.device].items[item].remark : '',
921
- f_path: '',
922
- unit: this.config[this.device.device].items[item].unit ? this.config[this.device.device].items[item].unit : '',
923
- tooltip:'',
924
- f_live_dispose:'',
925
- f_deal_dispose:'',
926
- f_else: '',
927
- f_p1_path: '',
928
- f_p2_path: '',
929
- f_p3_path: '',
930
- f_longitude:'',
931
- f_latitude:''
932
- }
933
- //tag)
934
- //tag)
935
- this.$set('f_items['+index+']',it)
936
- if (this.config[this.device.device].items[item].type == 'selector' ||this.config[this.device.device].items[item].type == 'inputSelector') {
937
- if(this.config[this.device.device].items[item].type == 'selector'){
938
- this.page['options' + index].push({
939
- label: "请选择",
940
- value: ''
941
- })
942
- }
943
- for (let i in this.config[this.device.device].items[item].options) {
944
- if(typeof this.config[this.device.device].items[item].options[i]=='function'){
945
- continue
946
- }
947
- this.page['options' + index].push({
948
- label: this.config[this.device.device].items[item].options[i].data,
949
- value: this.config[this.device.device].items[item].options[i].data,
950
- tooltip: this.config[this.device.device].items[item].options[i].tooltip
951
- })
952
- }
953
- if(this.config[this.device.device].items[item].type == 'selector'){
954
- this.$set('f_items['+index+'].selected', f_item_value)
955
- }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
956
- this.$set('f_items['+index+'].selected', f_item_value)
957
- }
958
-
959
- this.$set('f_items['+index+'].options',this.page['options' + index])
960
-
961
- //tag)
962
- } else if (this.config[this.device.device].items[item].type == 'radio' || this.config[this.device.device].items[item].type == 'checkbox') {
963
- //tag)
964
- //tag
965
- //tag)
966
- for (let i in this.config[this.device.device].items[item].options) {
967
- if(typeof this.config[this.device.device].items[item].options[i]=='function'){
968
- continue
969
- }
970
- //tag
971
- this.page['options' + index].push({
972
- label: this.config[this.device.device].items[item].options[i].data,
973
- value: this.config[this.device.device].items[item].options[i].data,
974
- isdefect: this.config[this.device.device].items[item].options[i].isdefect,
975
- level: this.config[this.device.device].items[item].options[i].level,
976
- tooltip: this.config[this.device.device].items[item].options[i].tooltip
977
- })
978
- //tag)
979
- }
980
- //tag)
981
- this.$set('f_items[' + index + '].options', this.page['options' + index])
982
- this.$set('f_items[' + index + '].f_item_value', f_item_value)
983
- //tag)
984
- }
985
- n = n + 1
986
- }
987
- if(!this.piece || JSON.stringify(this.piece) == '{}') {
988
- // 如果没有,则新建
989
- this.$set('piece.f_items',this.f_items)
990
- this.$set('piece.f_device_type',this.device.device)
991
- } else {
992
- // 已经存在,把之前的数据重新填入
993
- for (let f in this.f_items){
994
- if(typeof this.f_items[f]=='function'){
995
- continue
996
- }
997
- for(let p in this.piece.f_items) {
998
- if(typeof this.piece.f_items[p]=='function'){
999
- continue
1000
- }
1001
- if (this.f_items[f].f_item_name == this.piece.f_items[p].f_item_name) {
1002
- //tag)
1003
- //tag)
1004
- this.f_items[f] = Object.assign(this.f_items[f], this.piece.f_items[p])
1005
- //tag)
1006
- if (this.f_items[f].type == 'selector' || this.f_items[f].type == 'inputSelector') {
1007
- //tag)
1008
- //tag)
1009
- this.f_items[f].selected = this.piece.f_items[p].f_item_value
1010
- //tag)
1011
- }
1012
- // 取出特殊值
1013
- if (this.f_items[f].f_item_name == '初始表底') {
1014
- //tag)
1015
- this.f_initial_base.index = f
1016
- } else if (this.f_items[f].f_item_name == '累购气量(方)') {
1017
- //tag)
1018
- this.f_total_gas.index = f
1019
- } else if (this.f_items[f].f_item_name == '机械数总用量(方)') {
1020
- //tag)
1021
- this.f_table_base.index = f
1022
- this.$watch('f_items[' + f + '].f_item_value', function () {
1023
- this.getGasAberrantNumber('机械数总用量(方)')
1024
- })
1025
- } else if (this.f_items[f].f_item_name == '剩余气量(方)') {
1026
- //tag)
1027
- this.f_gas_balance.index = f
1028
- this.$watch('f_items[' + f + '].f_item_value', function () {
1029
- this.getGasAberrantNumber('')
1030
- })
1031
- }else if (this.f_items[f].f_item_name == '液晶总用量(方)') {
1032
- //
1033
- //tag)
1034
- this.f_total_lcd.index = f
1035
- this.$watch('f_items[' + f + '].f_item_value', function () {
1036
- this.getCrystalAberrantNumber()
1037
- })
1038
- }
1039
- else if (this.f_items[f].f_item_name == '气量异常差值(方)') {
1040
- //tag)
1041
- this.f_gas_aberrant_number.index = f
1042
- } else if (this.f_items[f].f_item_name == '累购金额') {
1043
- //tag)
1044
- this.f_total_fee.index = f
1045
- } else if (this.f_items[f].f_item_name == '已用金额') {
1046
- //tag)
1047
- this.f_fee_base.index = f
1048
- this.$watch('f_items[' + f + '].f_item_value', function () {
1049
- this.getFeeAberrantNumber('已用金额')
1050
- })
1051
- } else if (this.f_items[f].f_item_name == '剩余金额') {
1052
- //tag)
1053
- this.f_fee_balance.index = f
1054
- this.$watch('f_items[' + f + '].f_item_value', function () {
1055
- this.getFeeAberrantNumber('')
1056
- })
1057
- } else if (this.f_items[f].f_item_name == '金额异常差值') {
1058
- //tag)
1059
- this.f_fee_aberrant_number.index = f
1060
- }else if (this.f_items[f].f_item_name == '表读数') {
1061
- //tag)
1062
- this.f_meter_base.index = f
1063
- }else if (this.f_items[f].f_item_name == '表剩余金额') {
1064
- //tag)
1065
- this.f_balance_amount.index = f
1066
- }else if (this.f_items[f].f_item_name == '字轮数') {
1067
- //tag)
1068
- this.f_meter_base1.index = f
1069
- this.$watch('f_items[' + f + '].f_item_value', function () {
1070
- this.getmeteraberrantnumber()
1071
- })
1072
- }else if (this.f_items[f].f_item_name == '表余额') {
1073
- //tag)
1074
- this.f_balance_amount1.index = f
1075
- this.$watch('f_items[' + f + '].f_item_value', function () {
1076
- this.getfeeaberrantnumber1()
1077
- })
1078
- }else if (this.f_items[f].f_item_name == '表数异常差值') {
1079
- //tag)
1080
- this.f_meter_aberrant_number1.index = f
1081
- }else if (this.f_items[f].f_item_name == '表金额异常差值') {
1082
- //tag)
1083
- this.f_fee_aberrant_number1.index = f
1084
- }
1085
- }
1086
- }
1087
- for (let em in this.config[this.device.device].items) {
1088
- if(typeof this.config[this.device.device].items[em]=='function'){
1089
- continue
1090
- }
1091
- if (this.config[this.device.device].items[em].type == 'selector' && em == this.f_items[f].f_item_name) {
1092
- this.f_items[f].options =[]
1093
- for (let k in this.config[this.device.device].items[em].options) {
1094
- if(typeof this.config[this.device.device].items[em].options[k]=='function'){
1095
- continue
1096
- }
1097
- this.f_items[f].options.push({
1098
- label: this.config[this.device.device].items[em].options[k].data,
1099
- value: this.config[this.device.device].items[em].options[k].data
1100
- })
1101
- }
1102
- }
1103
- }
1104
- }
1105
- //tag)
1106
- this.$set('piece.f_items',this.f_items)
1107
- }
1108
- this.towatch()
1109
- },
1110
- destroyed(){
1111
- let nullCount = 0
1112
- let metertitles
1113
- //判断当前是否有选中项
1114
- for (let row in this.f_items){
1115
- if(typeof this.f_items[row]=='function'){
1116
- continue
1117
- }
1118
- if(this.f_items[row].selected && this.f_items[row].selected != '' && this.f_items[row].selected instanceof Array){
1119
- //tag
1120
- this.f_items[row].f_item_value = this.f_items[row].selected
1121
- }else if(this.f_items[row].selected && this.f_items[row].selected != ''){
1122
- //tag
1123
- this.f_items[row].f_item_value = this.f_items[row].selected
1124
- }
1125
- // if(this.f_items[row].f_item_value instanceof Array && this.f_items[row].f_item_value.length != 0 ){
1126
- // nullCount = nullCount+1
1127
- // }else if(this.f_items[row].f_item_value != ''){
1128
- // nullCount = nullCount+1
1129
- // }
1130
- }
1131
- let picture = []
1132
- // for (let row in this.f_items){
1133
- // let a={}
1134
- // a.f_path = this.f_items[row].f_path
1135
- // a.name = this.f_items[row].f_item_name
1136
- // }
1137
- // picture.push(a)
1138
- this.$set(`paper['device${this.device.n}'][${this.idx}]`, this.piece)
1139
- //tag
1140
- },
1141
- computed:{
1142
-
1143
- }
1144
- }
1145
- </script>
1146
- <style lang="less" scoped>
1147
- .class-erro {
1148
- color: #a94442;
1149
- }
1150
- .fivelabel{
1151
- border: none;
1152
- border-left: 5px solid #A2C2EB;
1153
- float: left;
1154
- width: 35%;
1155
- margin-bottom: 3px;
1156
- text-align: left;
1157
- word-wrap: break-word;
1158
- white-space: normal;
1159
- }
1160
- .radiolabel{
1161
- border: none;
1162
- border-left: 5px solid #A2C2EB;
1163
- float: left;
1164
- width: 65%;
1165
- margin-bottom: 3px;
1166
- text-align: left;
1167
- word-wrap: break-word;
1168
- white-space: normal;
1169
- }
1170
-
1171
- .textlabel {
1172
- border: none;
1173
- border-left: 5px solid #A2C2EB;
1174
- width: 100%;
1175
- margin-bottom: 3px;
1176
- text-align: left;
1177
- word-wrap: break-word;
1178
- white-space: normal;
1179
- }
1180
- .textlabel1 {
1181
- border: none;
1182
- border-left: 5px solid #f7cb32;
1183
- width: 100%;
1184
- margin-bottom: 3px;
1185
- text-align: left;
1186
- word-wrap: break-word;
1187
- white-space: normal;
1188
- }
1189
- .spanrodio{
1190
- margin-right: 10px;
1191
- }
1192
- .div-photo{
1193
- width: auto;
1194
- height: auto;
1195
- /* margin-top: 10px; */
1196
- position: absolute;
1197
- bottom: 10px;
1198
- right: 10px;
1199
- }
1200
- .panel-self{
1201
- border-radius: 5px;
1202
- border:1px solid #c5e1f7;
1203
- //background-color: #F2F6FA;
1204
- }
1205
- .btn-photo{
1206
- border: 0;
1207
- border-radius: 7px;
1208
- background-color: #7dc1f4;
1209
- font: 15px PingFang-SC-Bold;
1210
- height: 20%;
1211
- }
1212
- </style>
1213
-
1
+ <template>
2
+ <div class="select-overspread repair-bg auto" style="padding-bottom:5px;">
3
+ <!--<div class="bq-parent" v-if="shutype == 'heng'">-->
4
+ <!--<blockquote class="blockquote">-->
5
+ <!--<p><span>{{repairitem.header}}</span><a @click="mute()" style="float:right" href="#" class="repair-mute-class"><img src="../../assets/novoice.png" width="25px;" alt=""><span style="margin-left:10px;color: #304A66">关闭声音</span></a></p>-->
6
+ <!--</blockquote>-->
7
+ <!--</div>-->
8
+ <div class="panel panel-default auto repair-info-content">
9
+ <div class="panel-body" style="padding: 0">
10
+ <!-- 安检项内容 -->
11
+ <div class="auto repair-info-content compatible" style="padding: 0">
12
+ <div class="row auto" style="padding: 0">
13
+ <div v-show="false" class="{{shuclass}}" v-if=" device.device != '燃气表'">
14
+ <button type="button" name="button" class="btn btn-primary" @click='adddetails()' :disabled="issee">增加</button>
15
+ </div>
16
+ <!--<div class="{{shuclass}}" v-if="device.device != '燃气表' && candelete">-->
17
+ <!--<button type="button" name="button" class="btn btn-primary" @click='deletedetails()' :disabled="issee">删除</button>-->
18
+ <!--</div>-->
19
+ <div class="shuclass1" v-show="row.isshow" v-for="row in f_items" track-by="$index" style="padding: 4px; border:1px solid #D4D4D4;border-bottom: 0" >
20
+ <label v-if="row.type != 'radio' && row.type != 'text' && row.type != 'picture' && row.type != 'checkbox'" v-show="row.isshow" class="fivelabel">
21
+ {{row.f_item_name}}<span v-if="row.unit">({{row.unit}})</span><br/>{{row.remark}}
22
+ </label>
23
+ <label v-if="row.type == 'radio'" v-show="row.isshow" class="radiolabel">{{row.f_item_name}}
24
+ <span v-if="row.unit">({{row.unit}})</span><br/>{{row.remark}}
25
+ </label>
26
+ <label v-if="row.type == 'text'" v-show="row.isshow" class="textlabel1">
27
+ {{row.f_item_name}}<span v-if="row.unit">({{row.unit}})</span><br/>{{row.remark}}
28
+ </label>
29
+ <label v-if="row.type == 'picture' || row.type == 'checkbox'" v-show="row.isshow" class="textlabel">
30
+ {{row.f_item_name}}<br/>{{row.remark}}
31
+ </label>
32
+ <!--<span v-if="show" style="font-weight:bold">{{row.f_content}}</span>-->
33
+ <!--<datepicker placeholder="请选择时间"-->
34
+ <!--:value.sync="row.f_content"-->
35
+ <!--v-model="row.f_content"-->
36
+ <!--:format="'yyyy-MM-dd'"-->
37
+ <!--v-if="!show && row.type == 'date'"-->
38
+ <!--:readonly="true"-->
39
+ <!--&gt;</datepicker>-->
40
+ <div style="clear: both" v-if="row.type == 'picture'" class="form-group col-sm-12" >
41
+ <div class="auto" >
42
+ <div class="panel">
43
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
44
+ <div class="row" style="height: 160px;width:160px;overflow: scroll;top: 1px">
45
+ <div class="col-sm-4" v-show="row.f_path">
46
+ <img-self :src="row.f_path" :alt="row.f_item_name" width="140" height="140"></img-self>
47
+ </div>
48
+ <div class="col-sm-4" v-show="!row.f_path" @click="takePic($index, row.f_item_name)">
49
+ <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
50
+ </div>
51
+ <img v-show="row.f_path" src="../../../assets/remove.png" :class="style__" @click="delfile($index, row.f_path)" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ <div style="float: left;width:60%" class="form-group" v-if="row.type == 'string'" v-show="row.isshow">
58
+ <input type="text" class="form-control" maxlength="100" v-model="row.f_item_value" :readonly="role == 'androidview' || row.readonly">
59
+ </div>
60
+ <div style="float: left;width:60%" class="form-group col-sm-12" v-if="row.type == 'date'" v-show="row.isshow">
61
+ <datepicker id="f_making_date" :placeholder= row.f_item_name
62
+ :value.sync="row.f_item_value"
63
+ v-if="row.type == 'date'"
64
+ v-show="row.isshow"
65
+ :disabled-days-of-Week="[]"
66
+ :format="'yyyy-MM-dd 00:00:00'"
67
+ :show-reset-button="reset" readonly="readonly">
68
+ </datepicker>
69
+ </div>
70
+
71
+ <div style="float: left;width:60%" class="form-group" v-if="!show && row.type == 'number'" v-show="row.isshow">
72
+ <input type="text" class="form-control" maxlength="100" v-model="row.f_item_value" onkeyup="value=value.replace(/[^\d\.]/g,'')" :readonly="row.readonly">
73
+ </div>
74
+ <!--<input type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project != '表号'" :disabled="(!(ischecked == '有')) || issee" :readonly="issee">-->
75
+ <!--<input type="text" class="form-control" v-model="meternum" v-if="!show && row.type == 'string' && row.f_project == '表号' " :disabled="(!(ischecked == '有')) || issee" :readonly="issee" >-->
76
+ <!--<button type="button" name="button" class="btn btn-primary" @click="scan" v-if="!show && row.f_project == '表号' ">扫码</button>-->
77
+ <input-select v-if="row.type == 'inputSelector'"
78
+ v-show="row.isshow"
79
+ :value.sync="row.selected"
80
+ v-model="row.selected"
81
+ :readonly="false"
82
+ :options="row.options"
83
+ @change="changse"
84
+ @click="transelation($index)"></input-select>
85
+ <v-select style="float: left" :value.sync="row.selected"
86
+ v-model="row.selected"
87
+ v-if="row.type == 'selector'"
88
+ :search="false"
89
+ v-show="row.isshow"
90
+ placeholder='请选择'
91
+ :options="row.options"
92
+ :disabled="role == 'androidview' || row.readonly"
93
+ @change="changse"
94
+ @click="transelation($index)"
95
+ :multiple="row.multiple"
96
+ :close-on-select="!row.multiple" clear-button></v-select>
97
+ <div style="float: left;width: 30%" class="form-group" v-if="!show && row.type == 'radio'">
98
+ <div class="col-xs-6 col-sm-6 col-md-6" v-for="item in row.options">
99
+ <!-- <input type="radio" :name="row.f_item_name" @click="disSelect($parent.$index,item.value)" :value="item.value" :disabled="(!(ischecked == '有')) || issee" v-model="row.f_item_value" >-->
100
+ <input type="radio" :name="row.f_item_name" :value="item.value" :disabled="(!(ischecked == '有')) || issee" v-model="row.f_item_value" >
101
+ <span>{{item.label}}</span>
102
+ </div>
103
+ </div>
104
+ <div v-if="!show && row.type == 'checkbox'" class="col-xs-12 col-sm-12 col-md-12" style="white-space: nowrap" >
105
+ <div style="float: left" v-for="item in row.options">
106
+ <input type="checkbox" :name="row.f_item_name" :value="item.value" :disabled="(!(ischecked == '有')) || issee" v-model="row.f_item_value">
107
+ <span>{{item.label}}</span>
108
+ </div>
109
+ </div>
110
+ <div style="clear: both">
111
+ <label v-if="row.f_item_value.indexOf('其他') >-1" class="fivelabel">其他</label>
112
+ <div style="float: left;width:60%" class="form-group" v-if="row.f_item_value.indexOf('其他') >-1">
113
+ <input type="text" class="form-control" maxlength="100" v-model="row.f_else" :readonly="role == 'androidview' || row.readonly">
114
+ </div>
115
+ </div>
116
+ <div style="clear: both">
117
+ <div class="form-group" style="display: flex;flex-wrap: wrap" v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '') && (dealdispose == 'true' || dealdispose == true) " >
118
+ <label class="fivelabel">处理方式</label>
119
+ <v-select :value="row.f_deal_dispose"
120
+ :value-single="true"
121
+ :options="deals"
122
+ :disabled="role == 'androidview'"
123
+ @change="changdeal"
124
+ @click="transelation($index)"
125
+ close-on-select clear-button></v-select>
126
+ </div>
127
+ <div style="margin-left: 10px" class="form-group col-sm-10" v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && row.tooltip != undefined && row.tooltip != '' ">
128
+ ☆{{row.tooltip}}
129
+ </div>
130
+ <div class="form-group col-sm-12" style="display: flex;flex-wrap: wrap" v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '')">
131
+ <div class="auto" style="margin:1px;">
132
+ <div class="panel">
133
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
134
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
135
+ <div class="col-sm-4" v-show="row.f_path">
136
+ <img-self :src="row.f_path" :alt="row.f_item_name" width="140" height="140"></img-self>
137
+ </div>
138
+ <div class="col-sm-4" v-show="!row.f_path" @click="takePic($index, row.f_item_name)">
139
+ <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
140
+ </div>
141
+ <img v-show="row.f_path" src="../../../assets/remove.png" :class="style__" @click="delfile($index, row.f_path)" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ <!--多张隐患照片-->
147
+ <div class="auto" v-for="itemIndex in hiddenDangerImgNumber" style="margin: 1px;">
148
+ <div class="panel">
149
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
150
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
151
+ <div class="col-sm-4" v-show="row['f_p' + (itemIndex+1) + '_path']">
152
+ <img-self :src="row['f_p' + (itemIndex+1) + '_path']" :alt="row.f_item_name" width="140" height="140"></img-self>
153
+ </div>
154
+ <div class="col-sm-4" v-show="!row['f_p' + (itemIndex+1) + '_path']" @click="takePic($index, row.f_item_name,'f_p' + (itemIndex+1)+ '_path')">
155
+ <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
156
+ </div>
157
+ <img v-show="row['f_p' + (itemIndex+1)+'_path']" src="../../../assets/remove.png" :class="style__" @click="delfile($index,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>
158
+ </div >
159
+ </div>
160
+ </div>
161
+ </div>
162
+ </div>
163
+ </div>
164
+
165
+ <!--<v-select :value.sync="row.f_content" :options='getOptions(row.f_project)' placeholder='请选择' :disabled="(!(ischecked == '有')) || issee" close-on-select :value-single="true" v-if="!show && row.type == 'selector' && row.f_project != '气表品牌'"-->
166
+ <!--&gt;</v-select>-->
167
+ <!--<v-select :value.sync="row.f_content" :options='getOptions(row.f_project)' @change="getgasmodel" placeholder='请选择' :disabled="(!(ischecked == '有')) || issee" close-on-select :value-single="true" v-if="!show && row.type == 'selector' && row.f_project == '气表品牌'"-->
168
+ <!--&gt;</v-select>-->
169
+ <!-- <div class="auto" v-if="!show && row.type == 'checkbox' ">-->
170
+ <!-- <input class="magic-checkbox" type="checkbox" id="shebeicheckbox"-->
171
+ <!-- :checked="row.f_content == '有'"-->
172
+ <!-- @click="switchDetails(row.f_project, $event)" :disabled="issee"/>-->
173
+ <!-- <label for="shebeicheckbox" style="width:150px;padding-bottom: 10px">{{row.f_project}}</label>-->
174
+ <!-- </div>-->
175
+ <!--<img-area :model="Detail.imgs" :sutitle="row.f_project" v-if="row.type == 'picture'" :disabled="issee"></img-area>-->
176
+ </div>
177
+ </div>
178
+ </div>
179
+ <div style="border-top: 1px solid #D4D4D4"></div>
180
+ </div>
181
+ </div>
182
+ </div>
183
+ </template>
184
+ <script>
185
+ import Vue from 'vue'
186
+ import * as Util from '../../Util'
187
+
188
+ export default {
189
+ title: '维修列表信息',
190
+ data() {
191
+ return {
192
+ // telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
193
+ // meterstyle:[],
194
+ hiddenDangerImgNumber:0,//隐患图片数
195
+ shuclass:'col-xs-12 col-sm-12 col-md-12 form-input-group mg8',
196
+ shuclass1:'col-xs-12 col-sm-12 col-md-12 mg8',
197
+ // labels:[],
198
+ meternum:'',
199
+ ischecked:'有',
200
+ gasmodel:'',
201
+ textstyle:'color: red',
202
+ paper: this.$parent.$parent.data,
203
+ f_items:[],
204
+ f_is_normal:'否',
205
+ page:{},
206
+ selectindex:null,
207
+ lives:[{label: '是', value: '是'},{label: '否', value: '否'}],
208
+ deals:[{label: '现场整改', value: '现场整改'},{label: '自行处理', value: '自行处理'},{label: '未处理', value: '未处理'}],
209
+ f_live_dispose:'否',
210
+ f_deal_dispose:'未处理',
211
+ // 初始表底
212
+ f_initial_base: {},
213
+ // 气量异常差值 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
214
+ f_gas_aberrant_number: {},
215
+ // 金额异常差值 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
216
+ f_fee_aberrant_number: {},
217
+ // 累购气量
218
+ f_total_gas: {},
219
+ // 累购金额
220
+ f_total_fee: {},
221
+ // 已用气量
222
+ f_table_base: {},
223
+ // 已用金额
224
+ f_fee_base: {},
225
+ // 剩余气量
226
+ f_gas_balance: {},
227
+ //液晶总用量
228
+ f_total_lcd: {},
229
+ // 剩余金额
230
+ f_fee_balance: {},
231
+ //物联网表数据存储
232
+ f_balance_amount:{},//物联网表剩余金额
233
+ f_meter_base:{},//物联网表读数
234
+ f_balance_amount1:{},//物联网表现场录入的表上剩余金额
235
+ f_meter_base1:{},//物联网表现场录入的表字轮数
236
+ f_meter_aberrant_number1: {},//物联网表 表数异常差值
237
+ f_fee_aberrant_number1: {},//物联网 表金额异常差值
238
+ gascldDeviation: (
239
+ function (_this) {
240
+ let deviation = _this.$appdata.getSingleValue('液晶总用量是隐患')
241
+ if (deviation && !isNaN(deviation)) {
242
+ return deviation
243
+ } else {
244
+ return 0
245
+ }
246
+ }
247
+ )(this),
248
+ gasDeviation: (
249
+ function (_this) {
250
+ let deviation = _this.$appdata.getSingleValue('气量异常差值允许误差')
251
+ if (deviation && !isNaN(deviation)) {
252
+ return deviation
253
+ } else {
254
+ return 0
255
+ }
256
+ }
257
+ )(this),
258
+ // 金额异常差值允许误差
259
+ feeDeviation: (
260
+ function (_this) {
261
+ let deviation = _this.$appdata.getSingleValue('金额异常差值允许误差')
262
+ if (deviation && !isNaN(deviation)) {
263
+ return deviation
264
+ } else {
265
+ return 0
266
+ }
267
+ }
268
+ )(this),
269
+ // 字轮异常差值允许误差
270
+ meterbase: (
271
+ function (_this) {
272
+ let deviation = _this.$appdata.getSingleValue('字轮异常差值允许误差')
273
+ if (deviation && !isNaN(deviation)) {
274
+ return deviation
275
+ } else {
276
+ return 0
277
+ }
278
+ }
279
+ )(this),
280
+ showElse:false, //控制其他选项是否显示
281
+ }
282
+ },
283
+ props: ['config','device','idx','operation','role'],
284
+ // props: {
285
+ // // 维修对应的用户数据收集
286
+ // model: {
287
+ // type: Object
288
+ // },
289
+ // service:{
290
+ // type: Object
291
+ // },
292
+ // show: {
293
+ // type: Boolean,
294
+ // default: false
295
+ // },
296
+ // repairitem:{
297
+ // type: Object
298
+ // },
299
+ // shutype:'heng',
300
+ // tabs:{
301
+ // type: Object
302
+ // },
303
+ // repairdetails:{
304
+ // type: Object
305
+ // },
306
+ // faultshow:{
307
+ // type: Object
308
+ // },
309
+ // issee:''
310
+ // },
311
+ methods: {
312
+ changse(val){
313
+ if(val == undefined){
314
+ return
315
+ }
316
+ if(this.selectindex != null) {
317
+ if(this.f_items[this.selectindex].type == 'selector'){
318
+ this.f_items[this.selectindex].f_item_value = val
319
+ }else if(this.f_items[this.selectindex].type == 'inputSelector'){
320
+ this.f_items[this.selectindex].f_item_value = val.target.value
321
+ }
322
+ }
323
+ },
324
+ changlive(val){
325
+ if(val == undefined){
326
+ return
327
+ }
328
+ if(this.selectindex != null) {
329
+ this.f_items[this.selectindex].f_live_dispose = val
330
+ }
331
+ },
332
+ changdeal(val){
333
+ if(val == undefined){
334
+ return
335
+ }
336
+ if(this.selectindex != null) {
337
+ this.f_items[this.selectindex].f_deal_dispose = val
338
+ }
339
+ },
340
+ switchDetails(detailsType, event){
341
+ if (event.srcElement.checked) {
342
+ for(var i = 0;i<this.Detail.details.length;i++){
343
+ if(this.Detail.details[i].f_project == detailsType){
344
+ this.Detail.details[i].f_content = '有'
345
+ this.ischecked = '有'
346
+ return
347
+ }
348
+ }
349
+ } else {
350
+ this.Detail.imgs = []
351
+ for(var i = 0;i<this.Detail.details.length;i++){
352
+ if(this.Detail.details[i].f_project == detailsType){
353
+ this.Detail.details[i].f_content = '无'
354
+ this.ischecked = '无'
355
+ }else{
356
+ this.Detail.details[i].f_content = ''
357
+ }
358
+ }
359
+ }
360
+ },
361
+ getgasmodel(val){
362
+ this.gasmodel = val
363
+ },
364
+ getradios(val,flag){
365
+ let Reoptions = []
366
+ for (let i = 0;i<this.repairdetails.length;i++) {
367
+ var t = false
368
+ if(this.repairdetails[i].f_type == this.repairitem.header ){
369
+ for(var j =0;j<this.repairdetails[i].details.length;j++){
370
+ if(this.repairdetails[i].details[j].f_project == val ){
371
+ Reoptions = this.repairdetails[i].details[j].options
372
+ t = true
373
+ break
374
+ }
375
+ }
376
+ }
377
+ if(t){
378
+ break
379
+ }
380
+ }
381
+ for(let j = 0;j<Reoptions.length;j++){
382
+ if(Reoptions[j].data == flag){
383
+ for(var e = 0;e<this.Detail.details.length;e++){
384
+ if(this.Detail.details[e].f_project == val){
385
+ this.Detail.details[e].f_status = Reoptions[j].f_status
386
+ return
387
+ }
388
+ }
389
+ break
390
+ }
391
+ }
392
+ },
393
+ deletedetails(){
394
+ this.$showMessage('该操作会删除所填信息,是否继续!', ['confirm', 'cancel']).then((res) => {
395
+ if (res === 'confirm') {
396
+ for(var i = 0;i<this.tabs.length;i++){
397
+ if(this.tabs[i].number == this.repairitem.number){
398
+ this.tabs.splice(i, 1)
399
+ this.model.servicerepair.splice(this.repairitem.number, 1)
400
+ for(let t = i;t < this.tabs.length;t++ ) {
401
+ this.tabs[t].number -= 1
402
+ }
403
+ return
404
+ }
405
+ }
406
+ }
407
+ })
408
+ },
409
+ takePic(prop, title, pathname='null') {
410
+ if (this.role == 'androidview') {
411
+ return
412
+ }
413
+ HostApp.__callback__ = this.cameraCallBack
414
+ HostApp.__this__ = this
415
+ //tag
416
+ let fileName
417
+ if (pathname == 'null') {
418
+ if (!this.f_items[prop].f_path || this.f_items[prop].f_path.includes("nopic.png")) {
419
+ fileName = Util.guid() + '-' + 'device'+this.device.n + '-' + this.idx + '-'+'f_items'+prop+ '.jpg'
420
+ } else {
421
+ fileName = Util.getFileName(this.f_items[prop].f_path)
422
+ }
423
+ } else {
424
+ if (!this.f_items[prop][pathname] || this.f_items[prop][pathname].includes("nopic.png")) {
425
+ fileName = Util.guid() + '-' + 'device'+this.device.n + '-' + this.idx + '-'+'f_items'+prop+ '.jpg'
426
+ } else {
427
+ fileName = Util.getFileName(this.f_items[prop][pathname])
428
+ }
429
+ }
430
+ //tag
431
+ //tag
432
+ HostApp._open_a_page({type: 'boomerang',
433
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
434
+ param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'", "%s","'+pathname+'");', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name}
435
+ })
436
+ },
437
+ cameraCallBack(prop, fileName,pathname) {
438
+ //tag
439
+ if (pathname == 'null') {
440
+ //tag
441
+ HostApp.__this__.$set( 'f_items['+prop+'].f_path', fileName + '?' + Math.random())
442
+ //tag
443
+ HostApp.__callback__ = null
444
+ HostApp.__this__ = null
445
+ } else {
446
+ //tag
447
+ //tag)
448
+ HostApp.__this__.$set( 'f_items['+prop+'].'+pathname+'', fileName + '?' + Math.random())
449
+ HostApp.__callback__ = null
450
+ HostApp.__this__ = null
451
+ }
452
+ },
453
+ delfile(prop, fileName, pathname='null') {
454
+ if (pathname == 'null') {
455
+ //tag
456
+ //tag)
457
+ if(fileName == Vue.nopic){
458
+ return
459
+ } else {
460
+ HostApp.delfile(fileName)
461
+ this.f_items[prop].f_path = Vue.nopic
462
+ }
463
+ }else {
464
+ //tag
465
+ //tag)
466
+ if(fileName == Vue.nopic){
467
+ return
468
+ } else {
469
+ HostApp.delfile(fileName)
470
+ this.f_items[prop][pathname] = Vue.nopic
471
+ }
472
+ }
473
+ },
474
+ adddetails(){
475
+ // 下标作为序号,取值用。 增加 序号得依次增加
476
+ if(this.tabs.length > 0){
477
+ for(let i = this.tabs.length-1;i > 0 ;i-- ){
478
+ if(this.tabs[i].header == this.repairitem.header){
479
+ if(this.model.servicerepair.length > 0){
480
+ for(let j = this.model.servicerepair.length -1;j > -1;j-- ){
481
+ if(this.model.servicerepair[j].f_type == this.repairitem.header){
482
+ this.model.servicerepair.splice(j+1, 0, Object.assign({}, JSON.parse(JSON.stringify(this.tabs[i].details))))
483
+ this.tabs.splice(i+1, 0, {header: `${this.repairitem.header}`,details:this.tabs[i].details,complete:'repair-details',class:'repair-details-class',number:j+1,items:this.tabs[i].items})
484
+ for(let t = i+2;t < this.tabs.length;t++ ) {
485
+ this.tabs[t].number += 1
486
+ }
487
+ this.faultshow.number += this.faultshow.number + 1
488
+ return
489
+ }
490
+ }
491
+ }
492
+ }
493
+ }
494
+ }
495
+ },
496
+ transelation(val){
497
+ this.selectindex = val
498
+ },
499
+ towatch(){
500
+ for(let n in this.f_items){
501
+ if(typeof this.f_items[n]=='function'){
502
+ continue
503
+ }
504
+ if(this.f_items[n].type == 'selector' || this.f_items[n].type == 'inputSelector'){
505
+ // 监听下拉框,如果有隐患,需要拍照
506
+ this.$watch('f_items['+n+'].selected',function(val) {
507
+ // 下拉框值
508
+ //tag)
509
+ // 下拉框所属设备
510
+ //tag
511
+ // 下拉框所属项
512
+ //tag
513
+ let shImage = false
514
+ if(val.indexOf('其他') == -1){
515
+ this.f_items[n].f_else = ''
516
+ }
517
+ // if(this.config[this.device.device].items[item].type == 'selector'){
518
+ // this.f_items[n].f_item_value = val
519
+ // }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
520
+ // this.f_items[n].f_item_value = val[0]
521
+ // }
522
+ // 在配置中查找该项
523
+ for (let item in this.config[this.device.device].items) {
524
+ if(typeof this.config[this.device.device].items[item]=='function'){
525
+ continue
526
+ }
527
+ let type = this.config[this.device.device].items[item].type
528
+ let multiple = this.config[this.device.device].items[item].multiple?this.config[this.device.device].items[item].multiple:false
529
+ let options = this.config[this.device.device].items[item].options
530
+ if ((this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'inputSelector') && item == this.f_items[n].f_item_name) {
531
+ for (let i in options) {
532
+ if(typeof options[i]=='function'){
533
+ continue
534
+ }
535
+ let value
536
+ if(this.config[this.device.device].items[item].type == 'selector' && this.config[this.device.device].items[item].multiple == false){
537
+ value = val[0]
538
+ }else if (this.config[this.device.device].items[item].type == 'inputSelector'){
539
+ value = val
540
+ }
541
+ //tag)
542
+ // 如果未选择,清空图片、隐患信息等
543
+ if((type == 'selector' && val.length == 0) || (type == 'inputSelector' && val == '')){
544
+ this.f_items[n].f_path = ''
545
+ this.f_items[n].f_is_defect = ''
546
+ this.f_items[n].f_defect_level = ''
547
+ this.f_items[n].f_live_dispose = ''
548
+ this.f_items[n].f_deal_dispose = ''
549
+ this.f_items[n].tooltip = ''
550
+ }
551
+ if((type == 'selector' && multiple == false && options[i].data == val[0]) || (type == 'inputSelector' && options[i].data == val) || (type == 'selector' && multiple == true && val.indexOf(options[i].data) > -1)){
552
+ // 找到选中的项了
553
+ //tag
554
+ if(options[i].isdefect == true ){
555
+ shImage = true
556
+ }
557
+ if(options[i].isdefect == false || this.f_items[n].f_item_value == ''){
558
+ shImage = false
559
+ }
560
+ //tag
561
+ if(shImage){
562
+ this.f_items[n].f_is_defect =true
563
+ this.f_items[n].f_defect_level = options[i].level
564
+ this.f_items[n].f_path = Vue.nopic
565
+ this.f_items[n].f_live_dispose = '否'
566
+ this.f_items[n].f_deal_dispose = '未处理'
567
+ //tag
568
+ this.f_items[n].tooltip= options[i].tooltip
569
+ }else{
570
+ this.f_items[n].f_path = ''
571
+ this.f_items[n].f_is_defect = ''
572
+ this.f_items[n].f_defect_level = ''
573
+ this.f_items[n].f_live_dispose = ''
574
+ this.f_items[n].f_deal_dispose = ''
575
+ this.f_items[n].tooltip = ''
576
+ }
577
+ }
578
+ }
579
+ }
580
+ }
581
+ }
582
+ )
583
+ // this.$watch('other',function(val){
584
+ // //tag
585
+ // if(this.selectindex != null) {
586
+ // let index = this.f_items[this.selectindex].f_item_value.indexOf('其他')
587
+ // if(index > -1){
588
+ // this.f_items[this.selectindex].f_item_value.splice(index,1,this.other)
589
+ // }
590
+ // }
591
+ //
592
+ // })
593
+ }else if(this.f_items[n].type == 'radio') {
594
+ // 监听单选框,如果有隐患,需要拍照
595
+ this.$watch('f_items[' + n + '].f_item_value', function (val) {
596
+ //tag)
597
+ let options = this.f_items[n].options
598
+ //tag)
599
+ for (let i = 0; i < options.length; i++) {
600
+ //tag)
601
+ // 找到选中的项了
602
+ if (options[i].value == val) {
603
+ // 如果有隐患,拍图片
604
+ if (options[i].isdefect) {
605
+ this.f_items[n].f_is_defect = true
606
+ this.f_items[n].f_defect_level = options[i].level
607
+ this.f_items[n].f_path = Vue.nopic
608
+ this.f_items[n].f_live_dispose = '否'
609
+ this.f_items[n].f_deal_dispose = '未处理'
610
+ this.f_items[n].tooltip = options[i].tooltip
611
+ //tag)
612
+ return
613
+ }
614
+ }
615
+ }
616
+ this.f_items[n].f_path = ''
617
+ this.f_items[n].f_is_defect = ''
618
+ this.f_items[n].f_defect_level = ''
619
+ this.f_items[n].f_live_dispose = ''
620
+ this.f_items[n].f_deal_dispose = ''
621
+ this.f_items[n].tooltip = ''
622
+ })
623
+ }else if(this.f_items[n].type == 'checkbox') {
624
+ // 监听单选框,如果有隐患,需要拍照
625
+ this.$watch('f_items[' + n + '].f_item_value', function (val) {
626
+ //tag)
627
+ // 如果是手动赋值,不执行下面逻辑
628
+ if (this.f_items[n].isReSet) {
629
+ this.f_items[n].isReSet = false
630
+ return
631
+ }
632
+ let options = this.f_items[n].options
633
+ //tag)
634
+ // 取出选中项中有隐患的详细信息
635
+ let selected = options.filter(item => { return val.indexOf(item.value) != -1 && item.isdefect })
636
+
637
+ if(selected.length > 0){
638
+ // 防止赋值无限调用
639
+ this.f_items[n].isReSet = true
640
+ let selectList = selected.map(item => {return item.value})
641
+ // 如果选中的是非隐患项,取消选中isdefect为true的
642
+ if (selectList.indexOf(val[val.length - 1]) == -1) {
643
+ this.f_items[n].f_item_value = val.filter(item => {return selectList.indexOf(item) == -1})
644
+ this.f_items[n].f_path = ''
645
+ this.f_items[n].f_is_defect = ''
646
+ this.f_items[n].f_defect_level = ''
647
+ this.f_items[n].f_live_dispose = ''
648
+ this.f_items[n].f_deal_dispose = ''
649
+ this.f_items[n].tooltip = ''
650
+ return
651
+ }
652
+ // 如果选中的是隐患项,取消选中isdefect为false的
653
+ this.f_items[n].f_item_value = selectList
654
+ // 如果第一次选择隐患项,初始化
655
+ if (!this.f_items[n].f_is_defect) {
656
+ this.f_items[n].f_is_defect = true
657
+ this.f_items[n].f_defect_level = selected[0].level
658
+ this.f_items[n].f_path = Vue.nopic
659
+ this.f_items[n].f_live_dispose = '否'
660
+ this.f_items[n].f_deal_dispose = '未处理'
661
+ //tag
662
+ this.f_items[n].tooltip = selected[0].tooltip
663
+ }
664
+ //tag)
665
+ return
666
+ }
667
+ this.f_items[n].f_path = ''
668
+ this.f_items[n].f_is_defect = ''
669
+ this.f_items[n].f_defect_level = ''
670
+ this.f_items[n].f_live_dispose = ''
671
+ this.f_items[n].f_deal_dispose = ''
672
+ this.f_items[n].tooltip = ''
673
+ })
674
+ }
675
+ }
676
+ //tag)
677
+ },
678
+ getCrystalAberrantNumber(){
679
+ //tag
680
+ if(!this.f_total_lcd.index || !this.f_table_base.index){
681
+ //tag
682
+ return
683
+ }
684
+ this.f_items[this.f_total_lcd.index].f_is_defect = false
685
+ if (Number(this.f_items[this.f_table_base.index].f_item_value) !== Number(this.f_items[this.f_total_lcd.index].f_item_value)) {
686
+ this.f_items[this.f_total_lcd.index].f_is_defect = true
687
+ console.log('有异常')
688
+ }else{
689
+ this.f_items[this.f_total_lcd.index].f_is_defect = null
690
+ console.log('无异常')
691
+ }
692
+ },
693
+ getGasAberrantNumber(val) {
694
+ //tag
695
+ if(!this.f_table_base.index || !this.f_gas_balance.index){
696
+ //tag
697
+ return
698
+ }
699
+ // 先清空
700
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
701
+ this.f_items[this.f_gas_aberrant_number.index].f_is_defect = false
702
+ //
703
+ if(val=='机械数总用量(方)'){
704
+ this.getCrystalAberrantNumber()
705
+ // //剩余气量 = 累购-已用
706
+ // this.f_items[this.f_gas_balance.index].f_item_value= this.f_items[this.f_total_gas.index].f_item_value-this.f_items[this.f_table_base.index].f_item_value
707
+ // if (isNaN(this.f_items[this.f_gas_balance.index].f_item_value)) {
708
+ // this.f_items[this.f_gas_balance.index].f_item_value = null
709
+ // }
710
+ }
711
+
712
+ // 只有两个值都填了才会计算
713
+ if (!this.f_items[this.f_table_base.index].f_item_value || !this.f_items[this.f_gas_balance.index].f_item_value) {
714
+ return
715
+ }
716
+ //tag)
717
+ //tag
718
+ //tag
719
+
720
+ // 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
721
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_total_gas.index].f_item_value - this.f_items[this.f_gas_balance.index].f_item_value - (this.f_items[this.f_table_base.index].f_item_value - this.f_items[this.f_initial_base.index].f_item_value)
722
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_gas_aberrant_number.index].f_item_value.toFixed(3)
723
+ // 如果数值有误,清空结果s
724
+ if (isNaN(this.f_items[this.f_gas_aberrant_number.index].f_item_value)) {
725
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
726
+ }
727
+ //tag ===> ' + Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value))
728
+ //tag ===> ' + JSON.stringify(Number(this.gasDeviation)))
729
+ // 计算差值是否在范围内
730
+ if (Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value) > Number(this.gasDeviation) || Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value) < Number(this.gasDeviation) * -1) {
731
+ this.f_items[this.f_gas_aberrant_number.index].f_is_defect = true
732
+ }else{
733
+ this.f_items[this.f_gas_aberrant_number.index].f_is_defect = null
734
+ }
735
+
736
+ //tag)
737
+ },
738
+ getFeeAberrantNumber(val) {
739
+ //tag
740
+ // 只有两个值都填了才会计算
741
+ if(!this.f_fee_base.index || !this.f_fee_balance.index){
742
+ //tag
743
+ return
744
+ }
745
+ // 先清空
746
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
747
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = false
748
+
749
+ if(val=='已用金额'){
750
+ this.f_items[this.f_fee_balance.index].f_item_value=this.f_items[this.f_total_fee.index].f_item_value-this.f_items[this.f_fee_base.index].f_item_value
751
+ if (isNaN(this.f_items[this.f_fee_balance.index].f_item_value)) {
752
+ this.f_items[this.f_fee_balance.index].f_item_value = null
753
+ }
754
+ }
755
+
756
+ if (!this.f_items[this.f_fee_base.index].f_item_value || !this.f_items[this.f_fee_balance.index].f_item_value) {
757
+ return
758
+ }
759
+
760
+ // 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
761
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_total_fee.index].f_item_value - this.f_items[this.f_fee_balance.index].f_item_value - this.f_items[this.f_fee_base.index].f_item_value
762
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_fee_aberrant_number.index].f_item_value.toFixed(3)
763
+ if (isNaN(this.f_items[this.f_fee_aberrant_number.index].f_item_value)) {
764
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
765
+ }
766
+ //tag ===> ' + Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value))
767
+ //tag ===> ' + JSON.stringify(Number(this.feeDeviation)))
768
+ // 计算差值是否在范围内
769
+ if (Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value) > Number(this.feeDeviation)) {
770
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = true
771
+ }else{
772
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = null
773
+ }
774
+
775
+ //tag)
776
+ },
777
+ //物联网表字轮数改变触发
778
+ getmeteraberrantnumber() {
779
+ //tag
780
+
781
+ // 先清空
782
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
783
+ this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = false
784
+ //tag
785
+ // 只有两个值都填了才会计算
786
+ if (!this.f_items[this.f_meter_base.index].f_item_value || !this.f_items[this.f_meter_base1.index].f_item_value) {
787
+ return
788
+ }
789
+ //tag
790
+ // 计算公式 => 表数异常差值= - 字轮数 - 后台表读数
791
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = this.f_items[this.f_meter_base1.index].f_item_value - this.f_items[this.f_meter_base.index].f_item_value
792
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = this.f_items[this.f_meter_aberrant_number1.index].f_item_value.toFixed(3)
793
+ if (isNaN(this.f_items[this.f_meter_aberrant_number1.index].f_item_value)) {
794
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
795
+ }
796
+ //tag ===> ' + Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value))
797
+ // 计算差值是否在范围内
798
+ //tag)
799
+ if (Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value) > Number(this.meterbase)){
800
+ this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = true
801
+ }
802
+
803
+ //tag)
804
+ },
805
+
806
+ disSelect(index, itemValue) {
807
+ //tag)
808
+ //tag)
809
+ if (this.f_items[index].f_item_value == itemValue) {
810
+ this.$set(`f_items[${index}].f_item_value`, '')
811
+ }
812
+ }
813
+ },
814
+ ready() {
815
+ //tag
816
+ //tag
817
+ if(Vue.config.safecheck != undefined){
818
+ if(Vue.config.safecheck.ApproveConfig != undefined){
819
+ if(Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
820
+ this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
821
+ }
822
+ if(Vue.config.safecheck.ApproveConfig.dealdispose != undefined) {
823
+ this.dealdispose = Vue.config.safecheck.ApproveConfig.dealdispose
824
+ }
825
+ if(Vue.config.safecheck.ApproveConfig.showtorepair) {
826
+ this.deals=[{label: '现场整改', value: '现场整改'},
827
+ {label: '自行处理', value: '自行处理'},
828
+ {label: '转维修', value: '报修'}
829
+ ]
830
+ }
831
+ if(Vue.config.safecheck.ApproveConfig.Processing) {
832
+ if(Vue.config.safecheck.ApproveConfig.Processing.length > 0){
833
+ this.deals = Vue.config.safecheck.ApproveConfig.Processing
834
+ }
835
+ }
836
+ if(Vue.config.safecheck.ApproveConfig.showXCImg) {
837
+ this.showXCImg = true
838
+ }
839
+ if(Vue.config.safecheck.ApproveConfig.showZXTime) {
840
+ this.showZXTime = true
841
+ }
842
+ if(Vue.config.safecheck.ApproveConfig.showtorepair) {
843
+ }
844
+ if(Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
845
+ if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 5) {
846
+ this.hiddenDangerImgNumber = 5
847
+ }else {
848
+ this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
849
+ }
850
+ }
851
+ }
852
+ }
853
+ //tag
854
+ //tag)
855
+ //tag)
856
+ //tag)
857
+ //创建页面所需数据
858
+ this.$set('piece', this.paper['device'+this.device.n][this.idx])
859
+ //tag)
860
+ //tag)
861
+ let n = 0
862
+ for (let item in this.config[this.device.device].items) {
863
+ if(typeof this.config[this.device.device].items[item]=='function'){
864
+ continue
865
+ }
866
+ let index = this.config[this.device.device].items[item].index-1
867
+ this.$set('page.options' + index, [])
868
+ //tag)
869
+ //tag)
870
+ //tag)
871
+ // 先根据配置组接页面
872
+ let f_item_value
873
+ if(this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'checkbox'){
874
+ f_item_value = []
875
+ // 判断选项的默认值
876
+ for (let defitem in this.config[this.device.device].items[item].options) {
877
+ if(typeof this.config[this.device.device].items[item].options[defitem]=='function'){
878
+ continue
879
+ }
880
+ let defopt = this.config[this.device.device].items[item].options[defitem]
881
+ if (defopt.isdefault) {
882
+ //tag
883
+ f_item_value[0] = defopt.data
884
+ }
885
+ }
886
+ // if(this.config[this.device.device].items[item].data){
887
+ // f_item_value.push(this.config[this.device.device].items[item].data)
888
+ // }
889
+ }else if(this.config[this.device.device].items[item].type == 'radio'){
890
+ //为radio添加默认值
891
+ f_item_value=''
892
+ //tag)
893
+ for (let defitem in this.config[this.device.device].items[item].options) {
894
+ if(typeof this.config[this.device.device].items[item].options[defitem]=='function'){
895
+ continue
896
+ }
897
+ //tag)
898
+ let defopt = this.config[this.device.device].items[item].options[defitem]
899
+ if (defopt.isdefault) {
900
+ //tag)
901
+ f_item_value = defopt.data
902
+ }
903
+ }
904
+ }else{
905
+ f_item_value = this.config[this.device.device].items[item].data ? this.config[this.device.device].items[item].data : ''
906
+ }
907
+ //tag)
908
+ let it = {
909
+ type: this.config[this.device.device].items[item].type,
910
+ f_item_name: item,
911
+ checkmust: this.config[this.device.device].items[item].checkmust,
912
+ f_item_value: f_item_value,
913
+ is_verification:this.config[this.device.device].items[item].is_verification,
914
+ verification_text:'',
915
+ verification_state:'',// ai验证是否通过 npass(未通过)/pass(通过)
916
+ f_is_defect: '',
917
+ multiple:this.config[this.device.device].items[item].multiple == true?this.config[this.device.device].items[item].multiple:false,
918
+ isshow:this.config[this.device.device].items[item].isshow == false?this.config[this.device.device].items[item].isshow:true,
919
+ readonly: this.config[this.device.device].items[item].readonly == true?true:false,
920
+ remark: this.config[this.device.device].items[item].remark ? this.config[this.device.device].items[item].remark : '',
921
+ f_path: '',
922
+ unit: this.config[this.device.device].items[item].unit ? this.config[this.device.device].items[item].unit : '',
923
+ tooltip:'',
924
+ f_live_dispose:'',
925
+ f_deal_dispose:'',
926
+ f_else: '',
927
+ f_p1_path: '',
928
+ f_p2_path: '',
929
+ f_p3_path: '',
930
+ f_longitude:'',
931
+ f_latitude:''
932
+ }
933
+ //tag)
934
+ //tag)
935
+ this.$set('f_items['+index+']',it)
936
+ if (this.config[this.device.device].items[item].type == 'selector' ||this.config[this.device.device].items[item].type == 'inputSelector') {
937
+ if(this.config[this.device.device].items[item].type == 'selector'){
938
+ this.page['options' + index].push({
939
+ label: "请选择",
940
+ value: ''
941
+ })
942
+ }
943
+ for (let i in this.config[this.device.device].items[item].options) {
944
+ if(typeof this.config[this.device.device].items[item].options[i]=='function'){
945
+ continue
946
+ }
947
+ this.page['options' + index].push({
948
+ label: this.config[this.device.device].items[item].options[i].data,
949
+ value: this.config[this.device.device].items[item].options[i].data,
950
+ tooltip: this.config[this.device.device].items[item].options[i].tooltip
951
+ })
952
+ }
953
+ if(this.config[this.device.device].items[item].type == 'selector'){
954
+ this.$set('f_items['+index+'].selected', f_item_value)
955
+ }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
956
+ this.$set('f_items['+index+'].selected', f_item_value)
957
+ }
958
+
959
+ this.$set('f_items['+index+'].options',this.page['options' + index])
960
+
961
+ //tag)
962
+ } else if (this.config[this.device.device].items[item].type == 'radio' || this.config[this.device.device].items[item].type == 'checkbox') {
963
+ //tag)
964
+ //tag
965
+ //tag)
966
+ for (let i in this.config[this.device.device].items[item].options) {
967
+ if(typeof this.config[this.device.device].items[item].options[i]=='function'){
968
+ continue
969
+ }
970
+ //tag
971
+ this.page['options' + index].push({
972
+ label: this.config[this.device.device].items[item].options[i].data,
973
+ value: this.config[this.device.device].items[item].options[i].data,
974
+ isdefect: this.config[this.device.device].items[item].options[i].isdefect,
975
+ level: this.config[this.device.device].items[item].options[i].level,
976
+ tooltip: this.config[this.device.device].items[item].options[i].tooltip
977
+ })
978
+ //tag)
979
+ }
980
+ //tag)
981
+ this.$set('f_items[' + index + '].options', this.page['options' + index])
982
+ this.$set('f_items[' + index + '].f_item_value', f_item_value)
983
+ //tag)
984
+ }
985
+ n = n + 1
986
+ }
987
+ if(!this.piece || JSON.stringify(this.piece) == '{}') {
988
+ // 如果没有,则新建
989
+ this.$set('piece.f_items',this.f_items)
990
+ this.$set('piece.f_device_type',this.device.device)
991
+ } else {
992
+ // 已经存在,把之前的数据重新填入
993
+ for (let f in this.f_items){
994
+ if(typeof this.f_items[f]=='function'){
995
+ continue
996
+ }
997
+ for(let p in this.piece.f_items) {
998
+ if(typeof this.piece.f_items[p]=='function'){
999
+ continue
1000
+ }
1001
+ if (this.f_items[f].f_item_name == this.piece.f_items[p].f_item_name) {
1002
+ //tag)
1003
+ //tag)
1004
+ this.f_items[f] = Object.assign(this.f_items[f], this.piece.f_items[p])
1005
+ //tag)
1006
+ if (this.f_items[f].type == 'selector' || this.f_items[f].type == 'inputSelector') {
1007
+ //tag)
1008
+ //tag)
1009
+ this.f_items[f].selected = this.piece.f_items[p].f_item_value
1010
+ //tag)
1011
+ }
1012
+ // 取出特殊值
1013
+ if (this.f_items[f].f_item_name == '初始表底') {
1014
+ //tag)
1015
+ this.f_initial_base.index = f
1016
+ } else if (this.f_items[f].f_item_name == '累购气量(方)') {
1017
+ //tag)
1018
+ this.f_total_gas.index = f
1019
+ } else if (this.f_items[f].f_item_name == '机械数总用量(方)') {
1020
+ //tag)
1021
+ this.f_table_base.index = f
1022
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1023
+ this.getGasAberrantNumber('机械数总用量(方)')
1024
+ })
1025
+ } else if (this.f_items[f].f_item_name == '剩余气量(方)') {
1026
+ //tag)
1027
+ this.f_gas_balance.index = f
1028
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1029
+ this.getGasAberrantNumber('')
1030
+ })
1031
+ }else if (this.f_items[f].f_item_name == '液晶总用量(方)') {
1032
+ //
1033
+ //tag)
1034
+ this.f_total_lcd.index = f
1035
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1036
+ this.getCrystalAberrantNumber()
1037
+ })
1038
+ }
1039
+ else if (this.f_items[f].f_item_name == '气量异常差值(方)') {
1040
+ //tag)
1041
+ this.f_gas_aberrant_number.index = f
1042
+ } else if (this.f_items[f].f_item_name == '累购金额') {
1043
+ //tag)
1044
+ this.f_total_fee.index = f
1045
+ } else if (this.f_items[f].f_item_name == '已用金额') {
1046
+ //tag)
1047
+ this.f_fee_base.index = f
1048
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1049
+ this.getFeeAberrantNumber('已用金额')
1050
+ })
1051
+ } else if (this.f_items[f].f_item_name == '剩余金额') {
1052
+ //tag)
1053
+ this.f_fee_balance.index = f
1054
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1055
+ this.getFeeAberrantNumber('')
1056
+ })
1057
+ } else if (this.f_items[f].f_item_name == '金额异常差值') {
1058
+ //tag)
1059
+ this.f_fee_aberrant_number.index = f
1060
+ }else if (this.f_items[f].f_item_name == '表读数') {
1061
+ //tag)
1062
+ this.f_meter_base.index = f
1063
+ }else if (this.f_items[f].f_item_name == '表剩余金额') {
1064
+ //tag)
1065
+ this.f_balance_amount.index = f
1066
+ }else if (this.f_items[f].f_item_name == '字轮数') {
1067
+ //tag)
1068
+ this.f_meter_base1.index = f
1069
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1070
+ this.getmeteraberrantnumber()
1071
+ })
1072
+ }else if (this.f_items[f].f_item_name == '表余额') {
1073
+ //tag)
1074
+ this.f_balance_amount1.index = f
1075
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1076
+ this.getfeeaberrantnumber1()
1077
+ })
1078
+ }else if (this.f_items[f].f_item_name == '表数异常差值') {
1079
+ //tag)
1080
+ this.f_meter_aberrant_number1.index = f
1081
+ }else if (this.f_items[f].f_item_name == '表金额异常差值') {
1082
+ //tag)
1083
+ this.f_fee_aberrant_number1.index = f
1084
+ }
1085
+ }
1086
+ }
1087
+ for (let em in this.config[this.device.device].items) {
1088
+ if(typeof this.config[this.device.device].items[em]=='function'){
1089
+ continue
1090
+ }
1091
+ if (this.config[this.device.device].items[em].type == 'selector' && em == this.f_items[f].f_item_name) {
1092
+ this.f_items[f].options =[]
1093
+ for (let k in this.config[this.device.device].items[em].options) {
1094
+ if(typeof this.config[this.device.device].items[em].options[k]=='function'){
1095
+ continue
1096
+ }
1097
+ this.f_items[f].options.push({
1098
+ label: this.config[this.device.device].items[em].options[k].data,
1099
+ value: this.config[this.device.device].items[em].options[k].data
1100
+ })
1101
+ }
1102
+ }
1103
+ }
1104
+ }
1105
+ //tag)
1106
+ this.$set('piece.f_items',this.f_items)
1107
+ }
1108
+ this.towatch()
1109
+ },
1110
+ destroyed(){
1111
+ let nullCount = 0
1112
+ let metertitles
1113
+ //判断当前是否有选中项
1114
+ for (let row in this.f_items){
1115
+ if(typeof this.f_items[row]=='function'){
1116
+ continue
1117
+ }
1118
+ if(this.f_items[row].selected && this.f_items[row].selected != '' && this.f_items[row].selected instanceof Array){
1119
+ //tag
1120
+ this.f_items[row].f_item_value = this.f_items[row].selected
1121
+ }else if(this.f_items[row].selected && this.f_items[row].selected != ''){
1122
+ //tag
1123
+ this.f_items[row].f_item_value = this.f_items[row].selected
1124
+ }
1125
+ // if(this.f_items[row].f_item_value instanceof Array && this.f_items[row].f_item_value.length != 0 ){
1126
+ // nullCount = nullCount+1
1127
+ // }else if(this.f_items[row].f_item_value != ''){
1128
+ // nullCount = nullCount+1
1129
+ // }
1130
+ }
1131
+ let picture = []
1132
+ // for (let row in this.f_items){
1133
+ // let a={}
1134
+ // a.f_path = this.f_items[row].f_path
1135
+ // a.name = this.f_items[row].f_item_name
1136
+ // }
1137
+ // picture.push(a)
1138
+ this.$set(`paper['device${this.device.n}'][${this.idx}]`, this.piece)
1139
+ //tag
1140
+ },
1141
+ computed:{
1142
+
1143
+ }
1144
+ }
1145
+ </script>
1146
+ <style lang="less" scoped>
1147
+ .class-erro {
1148
+ color: #a94442;
1149
+ }
1150
+ .fivelabel{
1151
+ border: none;
1152
+ border-left: 5px solid #A2C2EB;
1153
+ float: left;
1154
+ width: 35%;
1155
+ margin-bottom: 3px;
1156
+ text-align: left;
1157
+ word-wrap: break-word;
1158
+ white-space: normal;
1159
+ }
1160
+ .radiolabel{
1161
+ border: none;
1162
+ border-left: 5px solid #A2C2EB;
1163
+ float: left;
1164
+ width: 65%;
1165
+ margin-bottom: 3px;
1166
+ text-align: left;
1167
+ word-wrap: break-word;
1168
+ white-space: normal;
1169
+ }
1170
+
1171
+ .textlabel {
1172
+ border: none;
1173
+ border-left: 5px solid #A2C2EB;
1174
+ width: 100%;
1175
+ margin-bottom: 3px;
1176
+ text-align: left;
1177
+ word-wrap: break-word;
1178
+ white-space: normal;
1179
+ }
1180
+ .textlabel1 {
1181
+ border: none;
1182
+ border-left: 5px solid #f7cb32;
1183
+ width: 100%;
1184
+ margin-bottom: 3px;
1185
+ text-align: left;
1186
+ word-wrap: break-word;
1187
+ white-space: normal;
1188
+ }
1189
+ .spanrodio{
1190
+ margin-right: 10px;
1191
+ }
1192
+ .div-photo{
1193
+ width: auto;
1194
+ height: auto;
1195
+ /* margin-top: 10px; */
1196
+ position: absolute;
1197
+ bottom: 10px;
1198
+ right: 10px;
1199
+ }
1200
+ .panel-self{
1201
+ border-radius: 5px;
1202
+ border:1px solid #c5e1f7;
1203
+ //background-color: #F2F6FA;
1204
+ }
1205
+ .btn-photo{
1206
+ border: 0;
1207
+ border-radius: 7px;
1208
+ background-color: #7dc1f4;
1209
+ font: 15px PingFang-SC-Bold;
1210
+ height: 20%;
1211
+ }
1212
+ </style>
1213
+