safecheck-client 4.0.1-14 → 4.0.1-16

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