safecheck-client 3.0.39-81 → 3.0.39-83

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 (278) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/config/dev.env.js +6 -6
  5. package/config/index.js +38 -38
  6. package/config/prod.env.js +3 -3
  7. package/config/test.env.js +6 -6
  8. package/docs/AppBase.md +22 -22
  9. package/docs/Busy.md +14 -14
  10. package/docs/CriteriaPaged.md +47 -47
  11. package/docs/DataGrid.md +54 -54
  12. package/docs/DataModel.md +22 -22
  13. package/docs/Dynamic.md +42 -42
  14. package/docs/GetParams.md +11 -11
  15. package/docs/HttpBusy.md +13 -13
  16. package/docs/HttpStore.md +29 -29
  17. package/docs/MessageBox.md +28 -28
  18. package/docs/PagedList.md +29 -29
  19. package/docs/Pager.md +21 -21
  20. package/docs/Project.md +23 -23
  21. package/docs/Route.md +105 -105
  22. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  23. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  24. package/docs/Task.md +46 -46
  25. package/docs/TreeList.md +28 -28
  26. package/docs/TreeMixin.md +18 -18
  27. package/docs/all.md +10 -10
  28. package/docs/list.md +42 -42
  29. package/docs/partial.md +75 -75
  30. package/docs/selector.md +82 -82
  31. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  32. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue-strap/345/217/230/346/233/264/350/256/260/345/275/225.md +7 -7
  33. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue/345/217/230/346/233/264/350/256/260/345/275/225.md +13 -13
  34. package/docs//345/274/200/345/217/221/346/226/207/346/241/243//345/274/200/345/217/221/347/216/257/345/242/203/350/256/276/347/275/256.md +77 -77
  35. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  36. package/examples/AddressList/App.vue +13 -13
  37. package/examples/AddressList/index.html +11 -11
  38. package/examples/DispatchList/App.vue +10 -10
  39. package/examples/DispatchList/BaseTree.vue +13 -13
  40. package/examples/DispatchList/Init.vue +22 -22
  41. package/examples/DispatchList/Test.vue +20 -20
  42. package/examples/DispatchList/index.html +11 -11
  43. package/examples/DispatchList/main.js +18 -18
  44. package/home.html +16 -16
  45. package/package.json +1 -1
  46. package/publish.bat +7 -7
  47. package/release.bat +5 -5
  48. package/src/App.vue +26 -31
  49. package/src/Widget.vue +13 -13
  50. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  51. package/src/android-bootstrap/less/.csscomb.json +304 -304
  52. package/src/android-bootstrap/less/.csslintrc +19 -19
  53. package/src/android-bootstrap/less/alerts.less +73 -73
  54. package/src/android-bootstrap/less/badges.less +66 -66
  55. package/src/android-bootstrap/less/bootstrap.less +56 -56
  56. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  57. package/src/android-bootstrap/less/button-groups.less +247 -247
  58. package/src/android-bootstrap/less/buttons.less +173 -173
  59. package/src/android-bootstrap/less/carousel.less +269 -269
  60. package/src/android-bootstrap/less/close.less +34 -34
  61. package/src/android-bootstrap/less/code.less +69 -69
  62. package/src/android-bootstrap/less/component-animations.less +33 -33
  63. package/src/android-bootstrap/less/grid.less +84 -84
  64. package/src/android-bootstrap/less/input-groups.less +167 -167
  65. package/src/android-bootstrap/less/jumbotron.less +52 -52
  66. package/src/android-bootstrap/less/labels.less +64 -64
  67. package/src/android-bootstrap/less/list-group.less +141 -141
  68. package/src/android-bootstrap/less/media.less +66 -66
  69. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  70. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  71. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  72. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  73. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  74. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  75. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  76. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  77. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  78. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  79. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  80. package/src/android-bootstrap/less/mixins/image.less +33 -33
  81. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  82. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  83. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  84. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  85. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  86. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  87. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  88. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  89. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  90. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  91. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  92. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  93. package/src/android-bootstrap/less/mixins/size.less +10 -10
  94. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  95. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  96. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  97. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  98. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  99. package/src/android-bootstrap/less/mixins.less +40 -40
  100. package/src/android-bootstrap/less/modals.less +151 -151
  101. package/src/android-bootstrap/less/navbar.less +660 -660
  102. package/src/android-bootstrap/less/navs.less +290 -290
  103. package/src/android-bootstrap/less/normalize.less +424 -424
  104. package/src/android-bootstrap/less/pager.less +76 -76
  105. package/src/android-bootstrap/less/pagination.less +89 -89
  106. package/src/android-bootstrap/less/panels.less +274 -274
  107. package/src/android-bootstrap/less/popovers.less +131 -131
  108. package/src/android-bootstrap/less/print.less +101 -101
  109. package/src/android-bootstrap/less/progress-bars.less +87 -87
  110. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  111. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  112. package/src/android-bootstrap/less/scaffolding.less +161 -161
  113. package/src/android-bootstrap/less/tables.less +262 -262
  114. package/src/android-bootstrap/less/theme.less +291 -291
  115. package/src/android-bootstrap/less/thumbnails.less +36 -36
  116. package/src/android-bootstrap/less/tooltip.less +102 -102
  117. package/src/android-bootstrap/less/type.less +303 -303
  118. package/src/android-bootstrap/less/utilities.less +55 -55
  119. package/src/android-bootstrap/less/variables.less +896 -896
  120. package/src/android-bootstrap/less/wells.less +29 -29
  121. package/src/bootstrap/less/.csscomb.json +304 -304
  122. package/src/bootstrap/less/.csslintrc +19 -19
  123. package/src/bootstrap/less/alerts.less +73 -73
  124. package/src/bootstrap/less/badges.less +66 -66
  125. package/src/bootstrap/less/breadcrumbs.less +26 -26
  126. package/src/bootstrap/less/button-groups.less +247 -247
  127. package/src/bootstrap/less/buttons.less +172 -172
  128. package/src/bootstrap/less/carousel.less +269 -269
  129. package/src/bootstrap/less/close.less +34 -34
  130. package/src/bootstrap/less/code.less +69 -69
  131. package/src/bootstrap/less/component-animations.less +33 -33
  132. package/src/bootstrap/less/dropdowns.less +216 -216
  133. package/src/bootstrap/less/grid.less +84 -84
  134. package/src/bootstrap/less/input-groups.less +167 -167
  135. package/src/bootstrap/less/jumbotron.less +52 -52
  136. package/src/bootstrap/less/labels.less +64 -64
  137. package/src/bootstrap/less/list-group.less +141 -141
  138. package/src/bootstrap/less/media.less +66 -66
  139. package/src/bootstrap/less/mixins/alerts.less +14 -14
  140. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  141. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  142. package/src/bootstrap/less/mixins/buttons.less +69 -69
  143. package/src/bootstrap/less/mixins/center-block.less +7 -7
  144. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  145. package/src/bootstrap/less/mixins/forms.less +90 -90
  146. package/src/bootstrap/less/mixins/gradients.less +59 -59
  147. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  148. package/src/bootstrap/less/mixins/grid.less +122 -122
  149. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  150. package/src/bootstrap/less/mixins/image.less +33 -33
  151. package/src/bootstrap/less/mixins/labels.less +12 -12
  152. package/src/bootstrap/less/mixins/list-group.less +30 -30
  153. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  154. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  155. package/src/bootstrap/less/mixins/opacity.less +8 -8
  156. package/src/bootstrap/less/mixins/pagination.less +24 -24
  157. package/src/bootstrap/less/mixins/panels.less +24 -24
  158. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  159. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  160. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  161. package/src/bootstrap/less/mixins/resize.less +6 -6
  162. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  163. package/src/bootstrap/less/mixins/size.less +10 -10
  164. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  165. package/src/bootstrap/less/mixins/table-row.less +44 -44
  166. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  167. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  168. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  169. package/src/bootstrap/less/mixins.less +40 -40
  170. package/src/bootstrap/less/modals.less +151 -151
  171. package/src/bootstrap/less/navbar.less +660 -660
  172. package/src/bootstrap/less/normalize.less +424 -424
  173. package/src/bootstrap/less/pagination.less +89 -89
  174. package/src/bootstrap/less/panels.less +275 -275
  175. package/src/bootstrap/less/popovers.less +131 -131
  176. package/src/bootstrap/less/print.less +101 -101
  177. package/src/bootstrap/less/progress-bars.less +87 -87
  178. package/src/bootstrap/less/responsive-embed.less +35 -35
  179. package/src/bootstrap/less/responsive-utilities.less +194 -194
  180. package/src/bootstrap/less/scaffolding.less +161 -161
  181. package/src/bootstrap/less/theme.less +291 -291
  182. package/src/bootstrap/less/thumbnails.less +36 -36
  183. package/src/bootstrap/less/tooltip.less +102 -102
  184. package/src/bootstrap/less/type.less +303 -303
  185. package/src/bootstrap/less/utilities.less +55 -55
  186. package/src/bootstrap/less/wells.less +29 -29
  187. package/src/components/FileUpload.vue +696 -696
  188. package/src/components/Hello.vue +39 -39
  189. package/src/components/LeftTree.vue +27 -27
  190. package/src/components/android/AttendanceTally.vue +116 -116
  191. package/src/components/android/Blank.vue +10 -10
  192. package/src/components/android/CheckUnplanPage.vue +56 -56
  193. package/src/components/android/Checker.vue +12 -12
  194. package/src/components/android/CheckerAnnual.vue +81 -81
  195. package/src/components/android/CheckerAvarta.vue +82 -82
  196. package/src/components/android/EquipmentInspection.vue +348 -348
  197. package/src/components/android/FootprintMap.vue +120 -120
  198. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  199. package/src/components/android/MasterMain.vue +77 -77
  200. package/src/components/android/Menu.vue +132 -132
  201. package/src/components/android/PaperAlarm.vue +85 -85
  202. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  203. package/src/components/android/PlumberAnnual.vue +83 -83
  204. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  205. package/src/components/android/PlumberMonthly.vue +84 -84
  206. package/src/components/android/PostMap.vue +83 -83
  207. package/src/components/android/QueryCheckHistory.vue +122 -122
  208. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  209. package/src/components/android/RepairMain.vue +60 -60
  210. package/src/components/android/Repairman.vue +12 -12
  211. package/src/components/android/StationMaster.vue +12 -12
  212. package/src/components/android/block/BlockUserDetails.vue +356 -0
  213. package/src/components/android/block/BlockUserManager.vue +226 -0
  214. package/src/components/android/rejectInspecCheck.vue +322 -322
  215. package/src/components/defects/DefectModal.vue +101 -101
  216. package/src/components/defects/DevicesAndItem.vue +39 -39
  217. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  218. package/src/components/notice/NoticeForm.vue +100 -100
  219. package/src/components/notice/NoticeIssue.vue +20 -20
  220. package/src/components/paper/PicViewer.vue +18 -18
  221. package/src/components/pc/NewCheckpaperTemp.vue +1308 -1308
  222. package/src/components/pc/RoleSelector.vue +172 -172
  223. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  224. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  225. package/src/components/phonestate/PostMap.vue +82 -82
  226. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  227. package/src/components/rongcheng/AddPlanItem.vue +344 -344
  228. package/src/components/rongcheng/CheckCurrentCreate.vue +1081 -1081
  229. package/src/components/rongcheng/PaperDefectMain.vue +828 -828
  230. package/src/components/userfile/MeterFile.vue +145 -145
  231. package/src/components/userfile/MeterModify.vue +46 -46
  232. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  233. package/src/filiale/BFshiye/android/AndroidDefectDeal.vue +652 -652
  234. package/src/filiale/BFshiye/pc/DefectListNew.vue +637 -637
  235. package/src/filiale/BFshiye/pc/checkUserList.vue +772 -772
  236. package/src/filiale/BFshiye/pc.js +17 -17
  237. package/src/filiale/baiyin/android/SafecheckUserInfo.vue +775 -775
  238. package/src/filiale/baiyin/android.js +12 -12
  239. package/src/filiale/dexin/android/SafecheckDevicesTemp.vue +1419 -1419
  240. package/src/filiale/dexin/android/SafecheckOrderVTemp.vue +4 -3
  241. package/src/filiale/dexin/pc/PaperList.vue +857 -840
  242. package/src/filiale/qingjian/android/PhoneUpUserinfo.vue +1357 -1357
  243. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +823 -823
  244. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1919 -1919
  245. package/src/filiale/rongchuang/android/PhoneUpUserinfo.vue +1262 -1262
  246. package/src/filiale/rongchuang/pc/checkPlanList.vue +398 -398
  247. package/src/filiale/rongchuang/pc.js +18 -18
  248. package/src/filiale/shanxian/pc/NewCheckpaper.vue +1526 -1526
  249. package/src/filiale/siyang/android/PhoneInsurancePurchaseDetail.vue +532 -532
  250. package/src/filiale/wensu/android/SafecheckOrderV.vue +2444 -2444
  251. package/src/filiale/wensu/android/SafecheckUserInfo.vue +712 -712
  252. package/src/filiale/wensu/pc/CheckSearchUser.vue +1251 -1251
  253. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1191 -1191
  254. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +913 -913
  255. package/src/filiale/yangchunboneng/android.js +21 -21
  256. package/src/filiale/yangchunboneng/pc/CheckBookList.vue +353 -353
  257. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +1197 -1197
  258. package/src/filiale/yangchunboneng/pc/HiddenSituation.vue +171 -171
  259. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +1112 -1112
  260. package/src/filiale/yangchunboneng/pc/PaperList.vue +757 -757
  261. package/src/filiale/yangchunboneng/pc/SelectCheckPlan.vue +331 -331
  262. package/src/filiale/yangchunboneng/pc.js +29 -29
  263. package/src/main.js +33 -33
  264. package/src/plugins/LoadData.js +10 -10
  265. package/src/plugins/LoadParams.js +24 -24
  266. package/src/rongcheng.js +319 -319
  267. package/src/safecheck-android.js +318 -316
  268. package/src/stores/wxconfig.js +10 -10
  269. package/src/utils/getNowDate.js +33 -33
  270. package/test/e2e/custom-assertions/elementCount.js +26 -26
  271. package/test/e2e/nightwatch.conf.js +40 -40
  272. package/test/e2e/runner.js +30 -30
  273. package/test/e2e/specs/test.js +13 -13
  274. package/test/unit/.eslintrc +5 -5
  275. package/test/unit/TestUtil.js +62 -62
  276. package/test/unit/context.html +20 -20
  277. package/test/unit/index.js +13 -13
  278. package/yarn-error.log +140 -0
@@ -1,1419 +1,1419 @@
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}} <span v-show="row.verification_state" :style="{color:row.verification_state==='pass'?'green':'red'}">{{row.verification_text}}</span></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 HH:mm:ss'"
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 != '') && (livedispose == 'true' || livedispose == true) " >-->
110
- <!-- <label class="fivelabel">现场已处理</label>-->
111
- <!-- <v-select :value="row.f_live_dispose"-->
112
- <!-- :value-single="true"-->
113
- <!-- :options="lives"-->
114
- <!-- :disabled="role == 'androidview'"-->
115
- <!-- @change="changlive"-->
116
- <!-- @click="transelation(idxs)"-->
117
- <!-- close-on-select clear-button></v-select>-->
118
- <!-- </div>-->
119
- <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) " >
120
- <label class="fivelabel">处理方式</label>
121
- <v-select
122
- :value="row.f_deal_dispose"
123
- :value-single="true"
124
- :options="deals"
125
- :disabled="role == 'androidview'"
126
- @change="changdeal"
127
- @click="transelation(idxs)"
128
- close-on-select clear-button>
129
- </v-select>
130
- </div>
131
- <div style="display: flex;flex-wrap: wrap" v-if="row.f_deal_dispose == '自行处理' && this.showZXTime">
132
- <label class="fivelabel">处理时效:</label>
133
- <datepicker
134
- :value.sync="row.f_handle_date"
135
- v-model="row.f_handle_date"
136
- :format="'yyyy-MM-dd 00:00:00'"
137
- placeholder="请选择"
138
- style="width: 60%">
139
- </datepicker>
140
- </div>
141
- <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 != '' ">
142
- ☆{{row.tooltip}}
143
- </div>
144
- <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 != '')">
145
- <div class="auto" style="margin:1px;">
146
- <div class="panel">
147
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
148
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
149
- <div class="col-sm-4" v-show="row.f_path">
150
- <img-self :src="row.f_path" :alt="row.f_item_name" width="140" height="140"></img-self>
151
- </div>
152
- <div class="col-sm-4" v-show="!row.f_path" @click="takePic(idxs, row.f_item_name)">
153
- <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
154
- </div>
155
- <img v-show="row.f_path" src="../../../assets/remove.png" :class="style__" @click="delfile(idxs, row.f_path)" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
156
- </div>
157
- </div>
158
- </div>
159
- </div>
160
- <!--多张隐患照片-->
161
- <div class="auto" v-for="itemIndex in hiddenDangerImgNumber" style="margin: 1px;">
162
- <div class="panel">
163
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
164
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
165
- <div class="col-sm-4" v-show="row['f_p' + (itemIndex+1) + '_path']">
166
- <img-self :src="row['f_p' + (itemIndex+1) + '_path']" :alt="row.f_item_name" width="140" height="140"></img-self>
167
- </div>
168
- <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')">
169
- <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
170
- </div>
171
- <img v-show="row['f_p' + (itemIndex+1)+'_path']" src="../../../assets/remove.png" :class="style__" @click="delfile(idxs,row['f_p' + (itemIndex+1)+'_path'],'f_p' + (itemIndex+1)+ '_path')" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
172
- </div >
173
- </div>
174
- </div>
175
- </div>
176
- <div style="display: flex;flex-wrap: wrap;margin-top: 10px" v-if="row.f_deal_dispose == '现场整改' && (row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && this.showXCImg">
177
- <label class="fivelabel">整改照片:</label>
178
- <div class="auto" style="margin:1px;">
179
- <div class="panel">
180
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
181
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
182
- <div class="col-sm-4" v-show="row.f_repair_path">
183
- <img-self :src="row.f_repair_path" :alt="row.f_item_name" width="140" height="140"></img-self>
184
- </div>
185
- <div class="col-sm-4" v-show="!row.f_repair_path" @click="takePic(idxs, row.f_item_name,'f_repair_path',row.f_defect_level)">
186
- <img src="../../../assets/tackpic.png" alt="点击拍摄照片" width="140" height="140"></img>
187
- </div>
188
- <img v-show="row.f_repair_path" src="../../../assets/remove.png" :class="style__" @click="delfile(idxs, row.f_repair_path, 'f_repair_path')" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
189
- </div>
190
- </div>
191
- </div>
192
- </div>
193
- </div>
194
- </div>
195
- </div>
196
-
197
- <!--<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 != '气表品牌'"-->
198
- <!--&gt;</v-select>-->
199
- <!--<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 == '气表品牌'"-->
200
- <!--&gt;</v-select>-->
201
- <!-- <div class="auto" v-if="!show && row.type == 'checkbox' ">-->
202
- <!-- <input class="magic-checkbox" type="checkbox" id="shebeicheckbox"-->
203
- <!-- :checked="row.f_content == '有'"-->
204
- <!-- @click="switchDetails(row.f_project, $event)" :disabled="issee"/>-->
205
- <!-- <label for="shebeicheckbox" style="width:150px;padding-bottom: 10px">{{row.f_project}}</label>-->
206
- <!-- </div>-->
207
- <!--<img-area :model="Detail.imgs" :sutitle="row.f_project" v-if="row.type == 'picture'" :disabled="issee"></img-area>-->
208
- </div>
209
- </div>
210
- </div>
211
- <div style="border-top: 1px solid #D4D4D4"></div>
212
- </div>
213
- </div>
214
- </div>
215
- </template>
216
- <script>
217
- import Vue from 'vue'
218
- import * as Util from '../../Util'
219
-
220
- export default {
221
- title: '维修列表信息',
222
- data() {
223
- return {
224
- // telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
225
- // meterstyle:[],
226
- hiddenDangerImgNumber:4,//隐患图片数
227
- shuclass:'col-xs-12 col-sm-12 col-md-12 form-input-group mg8',
228
- shuclass1:'col-xs-12 col-sm-12 col-md-12 mg8',
229
- // labels:[],
230
- meternum:'',
231
- useGaseType:this.$appdata.getParam('用户用气类型'),
232
- ischecked:'有',
233
- gasmodel:'',
234
- textstyle:'color: red',
235
- paper: this.$parent.$parent.data,
236
- f_items:[],
237
- page:{},
238
- selectindex:null,
239
- lives:[{label: '是', value: '是'},{label: '否', value: '否'}],
240
- deals:[{label: '现场处理', value: '现场处理'},{label: '自行处理', value: '自行处理'}],
241
- f_live_dispose:'否',
242
- f_deal_dispose:'未处理',
243
- // 初始表底
244
- f_initial_base: {},
245
- // 气量异常差值 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
246
- f_gas_aberrant_number: {},
247
- // 金额异常差值 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
248
- f_fee_aberrant_number: {},
249
- // 累购气量
250
- f_total_gas: {},
251
- // 累购金额
252
- f_total_fee: {},
253
- // 已用气量
254
- f_table_base: {},
255
- // 已用金额
256
- f_fee_base: {},
257
- // 剩余气量
258
- f_gas_balance: {},
259
- // 剩余金额
260
- f_fee_balance: {},
261
- // 表端剩余金额
262
- f_table_balance: {},
263
- // 气量异常差值允许误差
264
-
265
- //物联网表数据存储
266
- f_balance_amount:{},//物联网表剩余金额
267
- f_meter_base:{},//物联网表读数
268
- f_balance_amount1:{},//物联网表现场录入的表上剩余金额
269
- f_meter_base1:{},//物联网表现场录入的表字轮数
270
- f_meter_aberrant_number1: {},//物联网表 表数异常差值
271
- f_fee_aberrant_number1: {},//物联网 表金额异常差值
272
- gasDeviation: (
273
- function (_this) {
274
- let deviation = _this.$appdata.getSingleValue('气量异常差值允许误差')
275
- if (deviation && !isNaN(deviation)) {
276
- return deviation
277
- } else {
278
- return 0
279
- }
280
- }
281
- )(this),
282
- // 金额异常差值允许误差
283
- feeDeviation: (
284
- function (_this) {
285
- let deviation = _this.$appdata.getSingleValue('金额异常差值允许误差')
286
- if (deviation && !isNaN(deviation)) {
287
- return deviation
288
- } else {
289
- return 0
290
- }
291
- }
292
- )(this),
293
- // 字轮异常差值允许误差
294
- meterbase: (
295
- function (_this) {
296
- let deviation = _this.$appdata.getSingleValue('字轮异常差值允许误差')
297
- if (deviation && !isNaN(deviation)) {
298
- return deviation
299
- } else {
300
- return 0
301
- }
302
- }
303
- )(this),
304
- showElse:false, //控制其他选项是否显示
305
- showXCImg: false, // 是否显示现场整改拍照选项
306
- showZXTime: false // 是否显示自行整改处理时效
307
- }
308
- },
309
- props: ['config','device','idx','operation','role'],
310
- // props: {
311
- // // 维修对应的用户数据收集
312
- // model: {
313
- // type: Object
314
- // },
315
- // service:{
316
- // type: Object
317
- // },
318
- // show: {
319
- // type: Boolean,
320
- // default: false
321
- // },
322
- // repairitem:{
323
- // type: Object
324
- // },
325
- // shutype:'heng',
326
- // tabs:{
327
- // type: Object
328
- // },
329
- // repairdetails:{
330
- // type: Object
331
- // },
332
- // faultshow:{
333
- // type: Object
334
- // },
335
- // issee:''
336
- // },
337
- methods: {
338
- changse(val){
339
- if(val == undefined){
340
- return
341
- }
342
- if(this.selectindex != null) {
343
- if(this.f_items[this.selectindex].type == 'selector'){
344
- this.f_items[this.selectindex].f_item_value = val
345
- }else if(this.f_items[this.selectindex].type == 'inputSelector'){
346
- this.f_items[this.selectindex].f_item_value = val.target.value
347
- }
348
- }
349
- },
350
- changlive(val){
351
- if(val == undefined){
352
- return
353
- }
354
- if(this.selectindex != null) {
355
- this.f_items[this.selectindex].f_live_dispose = val
356
- }
357
- },
358
- changdeal(val){
359
- if(val == undefined){
360
- return
361
- }
362
- if(this.selectindex != null) {
363
- this.f_items[this.selectindex].f_deal_dispose = val
364
- }
365
- },
366
- switchDetails(detailsType, event){
367
- if (event.srcElement.checked) {
368
- for(var i = 0;i<this.Detail.details.length;i++){
369
- if(this.Detail.details[i].f_project == detailsType){
370
- this.Detail.details[i].f_content = '有'
371
- this.ischecked = '有'
372
- return
373
- }
374
- }
375
- } else {
376
- this.Detail.imgs = []
377
- for(var i = 0;i<this.Detail.details.length;i++){
378
- if(this.Detail.details[i].f_project == detailsType){
379
- this.Detail.details[i].f_content = '无'
380
- this.ischecked = '无'
381
- }else{
382
- this.Detail.details[i].f_content = ''
383
- }
384
- }
385
- }
386
- },
387
- getgasmodel(val){
388
- this.gasmodel = val
389
- },
390
- getradios(val,flag){
391
- let Reoptions = []
392
- for (let i = 0;i<this.repairdetails.length;i++) {
393
- var t = false
394
- if(this.repairdetails[i].f_type == this.repairitem.header ){
395
- for(var j =0;j<this.repairdetails[i].details.length;j++){
396
- if(this.repairdetails[i].details[j].f_project == val ){
397
- Reoptions = this.repairdetails[i].details[j].options
398
- t = true
399
- break
400
- }
401
- }
402
- }
403
- if(t){
404
- break
405
- }
406
- }
407
- for(let j = 0;j<Reoptions.length;j++){
408
- if(Reoptions[j].data == flag){
409
- for(var e = 0;e<this.Detail.details.length;e++){
410
- if(this.Detail.details[e].f_project == val){
411
- this.Detail.details[e].f_status = Reoptions[j].f_status
412
- return
413
- }
414
- }
415
- break
416
- }
417
- }
418
- },
419
- deletedetails(){
420
- this.$showMessage('该操作会删除所填信息,是否继续!', ['confirm', 'cancel']).then((res) => {
421
- if (res === 'confirm') {
422
- for(var i = 0;i<this.tabs.length;i++){
423
- if(this.tabs[i].number == this.repairitem.number){
424
- this.tabs.splice(i, 1)
425
- this.model.servicerepair.splice(this.repairitem.number, 1)
426
- for(let t = i;t < this.tabs.length;t++ ) {
427
- this.tabs[t].number -= 1
428
- }
429
- return
430
- }
431
- }
432
- }
433
- })
434
- },
435
- takePic(prop, title, pathname='null') {
436
- if (this.role == 'androidview') {
437
- return
438
- }
439
- HostApp.__callback__ = this.cameraCallBack
440
- HostApp.__this__ = this
441
- //tag
442
- let fileName
443
- if (pathname == 'null') {
444
- if (!this.f_items[prop].f_path || this.f_items[prop].f_path.includes("nopic.png")) {
445
- fileName = Util.guid() + '-' + 'device'+this.device.n + '-' + this.idx + '-'+'f_items'+prop+ '.jpg'
446
- } else {
447
- fileName = Util.getFileName(this.f_items[prop].f_path)
448
- }
449
- } else {
450
- if (!this.f_items[prop][pathname] || this.f_items[prop][pathname].includes("nopic.png")) {
451
- fileName = Util.guid() + '-' + 'device'+this.device.n + '-' + this.idx + '-'+'f_items'+prop+ '.jpg'
452
- } else {
453
- fileName = Util.getFileName(this.f_items[prop][pathname])
454
- }
455
- }
456
- let jingweidu = ''
457
- if (this.$parent.$parent.is_has_jingweidu == 'true'){
458
- const obj = HostApp.getGpsDetailAddress()
459
- jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
460
- }
461
- //tag
462
- //tag
463
- HostApp._open_a_page({type: 'boomerang',
464
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
465
- param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'","'+ title +'", "%s","'+pathname+'");', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name + jingweidu}
466
- })
467
- },
468
- cameraCallBack(prop,title, fileName,pathname) {
469
- if(title == '到访不遇/拒检照片'){
470
- if(this.$parent.$parent.data.f_entry_status == '到访不遇'){
471
- this.$parent.$parent.data.f_noanswer_path = fileName + '?' + Math.random()
472
- }else{
473
- this.$parent.$parent.data.f_nongasuser_path = fileName + '?' + Math.random()
474
- }
475
- }
476
- //tag
477
- if (pathname == 'null') {
478
- //tag
479
- HostApp.__this__.$set( 'f_items['+prop+'].f_path', fileName + '?' + Math.random())
480
- //tag
481
- HostApp.__callback__ = null
482
- HostApp.__this__ = null
483
- } else {
484
- //tag
485
- //tag)
486
- HostApp.__this__.$set( 'f_items['+prop+'].'+pathname+'', fileName + '?' + Math.random())
487
- HostApp.__callback__ = null
488
- HostApp.__this__ = null
489
- }
490
- if(this.f_items[prop].is_verification){
491
- let path=fileName.replace('http://newimg','')
492
- path=path.replace('file://','')
493
- console.log('fileName',fileName)
494
- console.log(path)
495
- let res=HostApp.pictureVerificationAI(path,title)
496
- if(res.code==200){
497
- if(res.type_result){
498
- // this.$showMessage("检测通过,当前照片为"+title)
499
- this.f_items[prop].verification_text=`检测通过,当前照片为 ${title}`
500
- this.f_items[prop].verification_state='pass'
501
- }else{
502
- // this.$showMessage("检测失败,未识别到当前照片为 "+title+",请重新拍摄!")
503
- this.f_items[prop].verification_text=`检测失败,未识别到当前照片为'${title}',请重新拍摄!`
504
- this.f_items[prop].verification_state='npass'
505
- }
506
- }else{
507
- // this.$showMessage("检测失败,请重试!")
508
- this.f_items[prop].verification_text=`检测失败,请重试!`
509
- this.f_items[prop].verification_state='npass'
510
- }
511
- }
512
- },
513
- delfile(prop, fileName, pathname='null') {
514
- if (pathname == 'null') {
515
- //tag
516
- //tag)
517
- if(fileName == Vue.nopic){
518
- return
519
- } else {
520
- HostApp.delfile(fileName)
521
- this.f_items[prop].f_path = Vue.nopic
522
- }
523
- }else {
524
- //tag
525
- //tag)
526
- if(fileName == Vue.nopic){
527
- return
528
- } else {
529
- HostApp.delfile(fileName)
530
- this.f_items[prop][pathname] = Vue.nopic
531
- }
532
- }
533
- },
534
- adddetails(){
535
- // 下标作为序号,取值用。 增加 序号得依次增加
536
- if(this.tabs.length > 0){
537
- for(let i = this.tabs.length-1;i > 0 ;i-- ){
538
- if(this.tabs[i].header == this.repairitem.header){
539
- if(this.model.servicerepair.length > 0){
540
- for(let j = this.model.servicerepair.length -1;j > -1;j-- ){
541
- if(this.model.servicerepair[j].f_type == this.repairitem.header){
542
- this.model.servicerepair.splice(j+1, 0, Object.assign({}, JSON.parse(JSON.stringify(this.tabs[i].details))))
543
- 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})
544
- for(let t = i+2;t < this.tabs.length;t++ ) {
545
- this.tabs[t].number += 1
546
- }
547
- this.faultshow.number += this.faultshow.number + 1
548
- return
549
- }
550
- }
551
- }
552
- }
553
- }
554
- }
555
- },
556
- transelation(val){
557
- this.selectindex = val
558
- },
559
- towatch(){
560
- for(let n in this.f_items){
561
- if(typeof this.f_items[n]=='function'){
562
- continue
563
- }
564
- if(this.f_items[n].type == 'selector' || this.f_items[n].type == 'inputSelector'){
565
- // 监听下拉框,如果有隐患,需要拍照
566
- this.$watch('f_items['+n+'].selected',function(val,old) {
567
- if(val==old){
568
- return
569
- }
570
- // 下拉框值
571
- //tag)
572
- // 下拉框所属设备
573
- //tag
574
- // 下拉框所属项
575
- //tag
576
- if (val == undefined || val.length == 0 || val[0] == ''){
577
- this.f_items[n].f_path = ''
578
- this.f_items[n].f_is_defect = ''
579
- this.f_items[n].f_defect_level = ''
580
- this.f_items[n].f_live_dispose = ''
581
- this.f_items[n].f_deal_dispose = ''
582
- this.f_items[n].tooltip = ''
583
- this.f_items[n].f_else = ''
584
- return
585
- }
586
- let shImage = false
587
- if(val.indexOf('其他') == -1){
588
- this.f_items[n].f_else = ''
589
- }
590
- // if(this.config[this.device.device].items[item].type == 'selector'){
591
- // this.f_items[n].f_item_value = val
592
- // }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
593
- // this.f_items[n].f_item_value = val[0]
594
- // }
595
- // 在配置中查找该项
596
- for (let item in this.config[this.device.device].items) {
597
- if(typeof this.config[this.device.device].items[item]=='function'){
598
- continue
599
- }
600
- let type = this.config[this.device.device].items[item].type
601
- let multiple = this.config[this.device.device].items[item].multiple?this.config[this.device.device].items[item].multiple:false
602
- let options = this.config[this.device.device].items[item].options
603
- 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) {
604
- if(this.f_items[n].f_item_name == '入户状态'){
605
- this.$parent.$parent.data.f_entry_status = val[0]
606
- if(val[0] == '到访不遇' || val[0] == '拒检'){
607
- this.f_items.forEach(item => {
608
- if (item.f_item_name == '到访不遇/拒检照片') {
609
- item.isshow = true
610
- item.checkmust = true
611
- }
612
- })
613
- for (let item in this.config[this.device.device].items) {
614
- if(item == '到访不遇/拒检照片'){
615
- this.config[this.device.device].items[item].isshow = true
616
- this.config[this.device.device].items[item].checkmust = true
617
- }
618
- }
619
-
620
- }else{
621
- if(val[0] == '入户未点'){
622
- //不显示表具信息
623
- this.f_items.forEach(item => {
624
- if (item.f_item_name == '到访不遇/拒检照片') {
625
- item.isshow = false
626
- item.checkmust = false
627
- }
628
- for (let item in this.config[this.device.device].items) {
629
- if(item == '到访不遇/拒检照片'){
630
- this.config[this.device.device].items[item].isshow = false
631
- this.config[this.device.device].items[item].checkmust = false
632
- }
633
- }
634
- if (item.f_item_name == '气表品牌'|| item.f_item_name == '表号' || item.f_item_name == '用户姓名' || item.f_item_name == '用户电话' || item.f_item_name == '表具照片' || item.f_item_name == '安装日期' || item.f_item_name == '左右表' || item.f_item_name == '检验时间') {
635
- item.isshow = false
636
- item.checkmust = false
637
- }
638
- })
639
- for (let item in this.config[this.device.device].items) {
640
- if(item == '到访不遇/拒检照片' || item== '气表品牌'|| item== '表号' || item == '用户姓名' || item== '用户电话' || item == '表具照片' || item== '安装日期' || item== '左右表' || item == '检验时间'){
641
- this.config[this.device.device].items[item].isshow = false
642
- this.config[this.device.device].items[item].checkmust = false
643
- }
644
- }
645
- }else{
646
-
647
- this.f_items.forEach(item => {
648
- if (item.f_item_name == '气表品牌'|| item.f_item_name == '表号' || item.f_item_name == '用户姓名' || item.f_item_name == '用户电话' || item.f_item_name == '表具照片' || item.f_item_name == '安装日期' || item.f_item_name == '左右表' || item.f_item_name == '检验时间') {
649
- item.isshow = true
650
- }
651
- if (item.f_item_name == '到访不遇/拒检照片') {
652
- item.isshow = false
653
- item.checkmust = false
654
- }
655
- })
656
- for (let item in this.config[this.device.device].items) {
657
- if(item== '气表品牌'|| item== '表号' || item == '用户姓名' || item== '用户电话' || item == '表具照片' || item== '安装日期' || item== '左右表' || item == '检验时间'){
658
- this.config[this.device.device].items[item].isshow =true
659
- }
660
- }
661
- for (let item in this.config[this.device.device].items) {
662
- if(item == '到访不遇/拒检照片'){
663
- this.config[this.device.device].items[item].isshow = false
664
- this.config[this.device.device].items[item].checkmust = false
665
- }
666
- }
667
- }
668
- }
669
- }
670
- if(this.f_items[n].f_item_name == '检查类型'){
671
- if(this.f_items[n].f_item_value== '点火检查' ){
672
- this.f_items.forEach(item => {
673
- if (item.f_item_name == '点火类型') {
674
- item.isshow = true
675
- item.checkmust =true
676
- }
677
- })
678
- }else {
679
- this.f_items.forEach(item => {
680
- if (item.f_item_name == '证件号码') {
681
- item.isshow = false
682
- item.checkmust = false
683
- }
684
- if (item.f_item_name == '用户用气类型') {
685
- item.isshow = false
686
- item.checkmust = false
687
- }
688
- if (item.f_item_name == '点火类型') {
689
- item.isshow = false
690
- item.checkmust = false
691
- }
692
- })
693
-
694
- }
695
- }
696
- if(this.f_items[n].f_item_name == '点火类型'){
697
- if (this.f_items[n].f_item_value== '正常点火'){
698
- this.f_items.forEach(item => {
699
- if (item.f_item_name == '证件号码') {
700
- item.isshow = true
701
- item.checkmust = true
702
- }
703
- if (item.f_item_name == '用户用气类型') {
704
- item.isshow = true
705
- item.checkmust = true
706
- }
707
- })
708
- }else{
709
- this.f_items.forEach(item => {
710
- if (item.f_item_name == '证件号码') {
711
- item.isshow = false
712
- item.checkmust = false
713
- }
714
- if (item.f_item_name == '用户用气类型') {
715
- item.isshow =false
716
- item.checkmust =false
717
- }
718
- })
719
- }
720
- }
721
- for (let i in options) {
722
- if(typeof options[i]=='function'){
723
- continue
724
- }
725
- let value
726
- if(this.config[this.device.device].items[item].type == 'selector' && this.config[this.device.device].items[item].multiple == false){
727
- value = val[0]
728
- }else if (this.config[this.device.device].items[item].type == 'inputSelector'){
729
- value = val
730
- }
731
- //tag)
732
- // 如果未选择,清空图片、隐患信息等
733
- if((type == 'selector' && val.length == 0) || (type == 'inputSelector' && val == '')){
734
- this.f_items[n].f_path = ''
735
- this.f_items[n].f_is_defect = ''
736
- this.f_items[n].f_defect_level = ''
737
- this.f_items[n].f_live_dispose = ''
738
- this.f_items[n].f_deal_dispose = ''
739
- this.f_items[n].tooltip = ''
740
- }
741
- 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)){
742
- // 找到选中的项了
743
- //tag
744
- if(options[i].isdefect == true ){
745
- shImage = true
746
- }
747
- if(options[i].isdefect == false || this.f_items[n].f_item_value == ''){
748
- shImage = false
749
- }
750
- //tag
751
- if(shImage){
752
- this.f_items[n].f_is_defect =true
753
- this.f_items[n].f_defect_level = options[i].level
754
- this.f_items[n].f_path = Vue.nopic
755
- this.f_items[n].f_live_dispose = '否'
756
- this.f_items[n].f_deal_dispose = '未处理'
757
- //tag
758
- this.f_items[n].tooltip= options[i].tooltip
759
- }else{
760
- this.f_items[n].f_path = ''
761
- this.f_items[n].f_is_defect = ''
762
- this.f_items[n].f_defect_level = ''
763
- this.f_items[n].f_live_dispose = ''
764
- this.f_items[n].f_deal_dispose = ''
765
- this.f_items[n].tooltip = ''
766
- }
767
- }
768
- }
769
- }
770
- }
771
- }
772
- )
773
- // this.$watch('other',function(val){
774
- // //tag
775
- // if(this.selectindex != null) {
776
- // let index = this.f_items[this.selectindex].f_item_value.indexOf('其他')
777
- // if(index > -1){
778
- // this.f_items[this.selectindex].f_item_value.splice(index,1,this.other)
779
- // }
780
- // }
781
- //
782
- // })
783
- }else if(this.f_items[n].type == 'radio') {
784
- // 监听单选框,如果有隐患,需要拍照
785
- this.$watch('f_items[' + n + '].f_item_value', function (val) {
786
- //tag)
787
- let options = this.f_items[n].options
788
- //tag)
789
- for (let i = 0; i < options.length; i++) {
790
- //tag)
791
- // 找到选中的项了
792
- if (options[i].value == val) {
793
- // 如果有隐患,拍图片
794
- if (options[i].isdefect) {
795
- this.f_items[n].f_is_defect = true
796
- this.f_items[n].f_defect_level = options[i].level
797
- this.f_items[n].f_path = Vue.nopic
798
- this.f_items[n].f_live_dispose = '否'
799
- this.f_items[n].f_deal_dispose = '未处理'
800
- this.f_items[n].tooltip = options[i].tooltip
801
- //tag)
802
- return
803
- }
804
- }
805
- }
806
- this.f_items[n].f_path = ''
807
- this.f_items[n].f_is_defect = ''
808
- this.f_items[n].f_defect_level = ''
809
- this.f_items[n].f_live_dispose = ''
810
- this.f_items[n].f_deal_dispose = ''
811
- this.f_items[n].tooltip = ''
812
- })
813
- }else if(this.f_items[n].type == 'checkbox') {
814
- // 监听单选框,如果有隐患,需要拍照
815
- this.$watch('f_items[' + n + '].f_item_value', function (val) {
816
- //tag)
817
- // 如果是手动赋值,不执行下面逻辑
818
- if (this.f_items[n].isReSet) {
819
- this.f_items[n].isReSet = false
820
- return
821
- }
822
- let options = this.f_items[n].options
823
- //tag)
824
- // 取出选中项中有隐患的详细信息
825
- let selected = options.filter(item => { return val.indexOf(item.value) != -1 && item.isdefect })
826
-
827
- if(selected.length > 0){
828
- // 防止赋值无限调用
829
- this.f_items[n].isReSet = true
830
- let selectList = selected.map(item => {return item.value})
831
- // 如果选中的是非隐患项,取消选中isdefect为true的
832
- if (selectList.indexOf(val[val.length - 1]) == -1) {
833
- this.f_items[n].f_item_value = val.filter(item => {return selectList.indexOf(item) == -1})
834
- this.f_items[n].f_path = ''
835
- this.f_items[n].f_is_defect = ''
836
- this.f_items[n].f_defect_level = ''
837
- this.f_items[n].f_live_dispose = ''
838
- this.f_items[n].f_deal_dispose = ''
839
- this.f_items[n].tooltip = ''
840
- return
841
- }
842
- // 如果选中的是隐患项,取消选中isdefect为false的
843
- this.f_items[n].f_item_value = selectList
844
- // 如果第一次选择隐患项,初始化
845
- if (!this.f_items[n].f_is_defect) {
846
- this.f_items[n].f_is_defect = true
847
- this.f_items[n].f_defect_level = selected[0].level
848
- this.f_items[n].f_path = Vue.nopic
849
- this.f_items[n].f_live_dispose = '否'
850
- this.f_items[n].f_deal_dispose = '未处理'
851
- //tag
852
- this.f_items[n].tooltip = selected[0].tooltip
853
- }
854
- //tag)
855
- return
856
- }
857
- this.f_items[n].f_path = ''
858
- this.f_items[n].f_is_defect = ''
859
- this.f_items[n].f_defect_level = ''
860
- this.f_items[n].f_live_dispose = ''
861
- this.f_items[n].f_deal_dispose = ''
862
- this.f_items[n].tooltip = ''
863
- })
864
- }
865
- }
866
- //tag)
867
- },
868
- getGasAberrantNumber(val) {
869
- //tag
870
- if(!this.f_table_base.index || !this.f_gas_balance.index){
871
- //tag
872
- return
873
- }
874
- // 先清空
875
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
876
- this.f_items[this.f_gas_aberrant_number.index].f_is_defect = false
877
- if(val=='已用气量'){
878
- //剩余气量 = 累购-已用
879
- 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
880
- if (isNaN(this.f_items[this.f_gas_balance.index].f_item_value)) {
881
- this.f_items[this.f_gas_balance.index].f_item_value = null
882
- }
883
- }
884
-
885
- // 只有两个值都填了才会计算
886
- if (!this.f_items[this.f_table_base.index].f_item_value || !this.f_items[this.f_gas_balance.index].f_item_value) {
887
- return
888
- }
889
- //tag)
890
- //tag
891
- //tag
892
-
893
- // 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
894
- 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_initial_base.index?this.f_items[this.f_initial_base.index].f_item_value:0))
895
- 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)
896
- // 如果数值有误,清空结果s
897
- if (isNaN(this.f_items[this.f_gas_aberrant_number.index].f_item_value)) {
898
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
899
- }
900
- //tag ===> ' + Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value))
901
- //tag ===> ' + JSON.stringify(Number(this.gasDeviation)))
902
- // 计算差值是否在范围内
903
- 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) {
904
- this.f_items[this.f_gas_aberrant_number.index].f_is_defect = true
905
- this.f_items[this.f_gas_aberrant_number.index].f_deal_dispose = '未处理'
906
- }else{
907
- this.f_items[this.f_gas_aberrant_number.index].f_is_defect = null
908
- this.f_items[this.f_gas_aberrant_number.index].f_deal_dispose = null
909
- }
910
-
911
- //tag)
912
- },
913
- getFeeAberrantNumber(val) {
914
- //tag
915
- // 只有两个值都填了才会计算
916
- if(!this.f_fee_base.index || !this.f_fee_balance.index){
917
- //tag
918
- return
919
- }
920
- // 先清空
921
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
922
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = false
923
-
924
- if(val=='已用金额'){
925
- 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).toFixed(3)
926
- if (isNaN(this.f_items[this.f_fee_balance.index].f_item_value)) {
927
- this.f_items[this.f_fee_balance.index].f_item_value = null
928
- }
929
- }
930
-
931
- if (!this.f_items[this.f_fee_base.index].f_item_value || !this.f_items[this.f_fee_balance.index].f_item_value) {
932
- return
933
- }
934
-
935
- // 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
936
- 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
937
- 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)
938
- if (isNaN(this.f_items[this.f_fee_aberrant_number.index].f_item_value)) {
939
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
940
- }
941
- //tag ===> ' + Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value))
942
- //tag ===> ' + JSON.stringify(Number(this.feeDeviation)))
943
- // 计算差值是否在范围内
944
- if (Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value) > Number(this.feeDeviation)) {
945
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = true
946
- this.f_items[this.f_fee_aberrant_number.index].f_deal_dispose = '未处理'
947
- }else{
948
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = null
949
- this.f_items[this.f_fee_aberrant_number.index].f_deal_dispose = null
950
- }
951
-
952
- //tag)
953
- },
954
- // 计算剩余金额和剩余金额差值
955
- getFeeAberrantNumber2(val) {
956
- //tag
957
- // 只有两个值都填了才会计算
958
- if(!this.f_table_balance.index || !this.f_fee_balance.index){
959
- //tag
960
- return
961
- }
962
- // 先清空
963
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
964
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = false
965
-
966
- // 计算公式 => 金额异常差值 = 系统剩余金额 - 表端剩余金额
967
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_fee_balance.index].f_item_value - this.f_items[this.f_table_balance.index].f_item_value
968
- 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)
969
- if (isNaN(this.f_items[this.f_fee_aberrant_number.index].f_item_value)) {
970
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
971
- }
972
- //tag ===> ' + Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value))
973
- //tag ===> ' + JSON.stringify(Number(this.feeDeviation)))
974
- // 计算差值是否在范围内
975
- if (Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value) > Number(this.feeDeviation)) {
976
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = true
977
- this.f_items[this.f_fee_aberrant_number.index].f_deal_dispose = '未处理'
978
- }else{
979
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = null
980
- this.f_items[this.f_fee_aberrant_number.index].f_deal_dispose = null
981
- }
982
- console.log('--------------------------------')
983
- console.log(this.f_items[this.f_fee_aberrant_number.index].f_item_value)
984
-
985
- //tag)
986
- },
987
- //物联网表字轮数改变触发
988
- getmeteraberrantnumber() {
989
- //tag
990
-
991
- // 先清空
992
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
993
- this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = false
994
- //tag
995
- // 只有两个值都填了才会计算
996
- if (!this.f_items[this.f_meter_base.index].f_item_value || !this.f_items[this.f_meter_base1.index].f_item_value) {
997
- return
998
- }
999
- //tag
1000
- // 计算公式 => 表数异常差值= - 字轮数 - 后台表读数
1001
- 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
1002
- 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)
1003
- if (isNaN(this.f_items[this.f_meter_aberrant_number1.index].f_item_value)) {
1004
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
1005
- }
1006
- //tag ===> ' + Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value))
1007
- // 计算差值是否在范围内
1008
- //tag)
1009
- if (Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value) > Number(this.meterbase)){
1010
- this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = true
1011
- }
1012
-
1013
- //tag)
1014
- },
1015
-
1016
- disSelect(index, itemValue) {
1017
- //tag)
1018
- //tag)
1019
- if (this.f_items[index].f_item_value == itemValue) {
1020
- this.$set(`f_items[${index}].f_item_value`, '')
1021
- }
1022
- }
1023
- },
1024
- ready() {
1025
- //tag
1026
- //tag
1027
- if(Vue.config.safecheck != undefined){
1028
- if(Vue.config.safecheck.ApproveConfig != undefined){
1029
- if(Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
1030
- this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
1031
- }
1032
- if(Vue.config.safecheck.ApproveConfig.dealdispose != undefined) {
1033
- this.dealdispose = Vue.config.safecheck.ApproveConfig.dealdispose
1034
- }
1035
- if(Vue.config.safecheck.ApproveConfig.showtorepair) {
1036
- this.deals=[{label: '现场整改', value: '现场整改'},
1037
- {label: '自行处理', value: '自行处理'},
1038
- {label: '转维修', value: '报修'}
1039
- ]
1040
- }
1041
- if(Vue.config.safecheck.ApproveConfig.Processing) {
1042
- if(Vue.config.safecheck.ApproveConfig.Processing.length > 0){
1043
- this.deals = Vue.config.safecheck.ApproveConfig.Processing
1044
- }
1045
- }
1046
- if(Vue.config.safecheck.ApproveConfig.showXCImg) {
1047
- this.showXCImg = true
1048
- }
1049
- if(Vue.config.safecheck.ApproveConfig.showZXTime) {
1050
- this.showZXTime = true
1051
- }
1052
- if(Vue.config.safecheck.ApproveConfig.showtorepair) {
1053
- }
1054
- if(Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
1055
- if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
1056
- this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
1057
- }else {
1058
- this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
1059
- }
1060
- }
1061
- }
1062
- }
1063
- //tag
1064
- //tag)
1065
- //tag)
1066
- //tag)
1067
- //创建页面所需数据
1068
- this.$set('piece', this.paper['device'+this.device.n][this.idx])
1069
- //tag)
1070
- //tag)
1071
- let n = 0
1072
- for (let item in this.config[this.device.device].items) {
1073
- if(typeof this.config[this.device.device].items[item]=='function'){
1074
- continue
1075
- }
1076
- let index = this.config[this.device.device].items[item].index-1
1077
- this.$set('page.options' + index, [])
1078
- //tag)
1079
- //tag)
1080
- //tag)
1081
- // 先根据配置组接页面
1082
- let f_item_value
1083
- if(this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'checkbox'){
1084
- f_item_value = []
1085
- // 判断选项的默认值
1086
- for (let defitem in this.config[this.device.device].items[item].options) {
1087
- if(typeof this.config[this.device.device].items[item].options[defitem]=='function'){
1088
- continue
1089
- }
1090
- let defopt = this.config[this.device.device].items[item].options[defitem]
1091
- if (defopt.isdefault) {
1092
- //tag
1093
- f_item_value[0] = defopt.data
1094
- }
1095
- }
1096
- // if(this.config[this.device.device].items[item].data){
1097
- // f_item_value.push(this.config[this.device.device].items[item].data)
1098
- // }
1099
- }else if(this.config[this.device.device].items[item].type == 'radio'){
1100
- //为radio添加默认值
1101
- f_item_value=''
1102
- //tag)
1103
- for (let defitem in this.config[this.device.device].items[item].options) {
1104
- if(typeof this.config[this.device.device].items[item].options[defitem]=='function'){
1105
- continue
1106
- }
1107
- //tag)
1108
- let defopt = this.config[this.device.device].items[item].options[defitem]
1109
- if (defopt.isdefault) {
1110
- //tag)
1111
- f_item_value = defopt.data
1112
- }
1113
- }
1114
- }else{
1115
- f_item_value = this.config[this.device.device].items[item].data ? this.config[this.device.device].items[item].data : ''
1116
- }
1117
- //tag)
1118
- let it = {
1119
- type: this.config[this.device.device].items[item].type,
1120
- f_item_name: item,
1121
- checkmust: this.config[this.device.device].items[item].checkmust,
1122
- f_item_value: f_item_value,
1123
- is_verification:this.config[this.device.device].items[item].is_verification,
1124
- verification_text:'',
1125
- verification_state:'',// ai验证是否通过 npass(未通过)/pass(通过)
1126
- f_is_defect: '',
1127
- multiple:this.config[this.device.device].items[item].multiple == true?this.config[this.device.device].items[item].multiple:false,
1128
- isshow:this.config[this.device.device].items[item].isshow == false?this.config[this.device.device].items[item].isshow:true,
1129
- readonly: this.config[this.device.device].items[item].readonly == true?true:false,
1130
- remark: this.config[this.device.device].items[item].remark ? this.config[this.device.device].items[item].remark : '',
1131
- f_path: '',
1132
- unit: this.config[this.device.device].items[item].unit ? this.config[this.device.device].items[item].unit : '',
1133
- tooltip:'',
1134
- f_live_dispose:'',
1135
- f_deal_dispose:'',
1136
- f_else: '',
1137
- f_p1_path: '',
1138
- f_p2_path: '',
1139
- f_p3_path: ''
1140
- }
1141
- //tag)
1142
- //tag)
1143
- this.$set('f_items['+index+']',it)
1144
- if (this.config[this.device.device].items[item].type == 'selector' ||this.config[this.device.device].items[item].type == 'inputSelector') {
1145
- if(this.config[this.device.device].items[item].type == 'selector'){
1146
- this.page['options' + index].push({
1147
- label: "请选择",
1148
- value: ''
1149
- })
1150
- }
1151
- for (let i in this.config[this.device.device].items[item].options) {
1152
- if(typeof this.config[this.device.device].items[item].options[i]=='function'){
1153
- continue
1154
- }
1155
- this.page['options' + index].push({
1156
- label: this.config[this.device.device].items[item].options[i].data,
1157
- value: this.config[this.device.device].items[item].options[i].data,
1158
- tooltip: this.config[this.device.device].items[item].options[i].tooltip
1159
- })
1160
- }
1161
- if(this.config[this.device.device].items[item].type == 'selector'){
1162
- this.$set('f_items['+index+'].selected', f_item_value)
1163
- }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
1164
- this.$set('f_items['+index+'].selected', f_item_value)
1165
- }
1166
-
1167
- this.$set('f_items['+index+'].options',this.page['options' + index])
1168
-
1169
- //tag)
1170
- } else if (this.config[this.device.device].items[item].type == 'radio' || this.config[this.device.device].items[item].type == 'checkbox') {
1171
- //tag)
1172
- //tag
1173
- //tag)
1174
- for (let i in this.config[this.device.device].items[item].options) {
1175
- if(typeof this.config[this.device.device].items[item].options[i]=='function'){
1176
- continue
1177
- }
1178
- //tag
1179
- this.page['options' + index].push({
1180
- label: this.config[this.device.device].items[item].options[i].data,
1181
- value: this.config[this.device.device].items[item].options[i].data,
1182
- isdefect: this.config[this.device.device].items[item].options[i].isdefect,
1183
- level: this.config[this.device.device].items[item].options[i].level,
1184
- tooltip: this.config[this.device.device].items[item].options[i].tooltip
1185
- })
1186
- //tag)
1187
- }
1188
- //tag)
1189
- this.$set('f_items[' + index + '].options', this.page['options' + index])
1190
- this.$set('f_items[' + index + '].f_item_value', f_item_value)
1191
- //tag)
1192
- }
1193
- n = n + 1
1194
- }
1195
- if(!this.piece || JSON.stringify(this.piece) == '{}') {
1196
- // 如果没有,则新建
1197
- this.$set('piece.f_items',this.f_items)
1198
- this.$set('piece.f_device_type',this.device.device)
1199
- } else {
1200
- // 已经存在,把之前的数据重新填入
1201
- for (let f in this.f_items){
1202
- if(typeof this.f_items[f]=='function'){
1203
- continue
1204
- }
1205
- for(let p in this.piece.f_items) {
1206
- if(typeof this.piece.f_items[p]=='function'){
1207
- continue
1208
- }
1209
- if (this.f_items[f].f_item_name == this.piece.f_items[p].f_item_name) {
1210
- //tag)
1211
- //tag)
1212
- this.f_items[f] = Object.assign(this.f_items[f], this.piece.f_items[p])
1213
- //tag)
1214
- if (this.f_items[f].type == 'selector' || this.f_items[f].type == 'inputSelector') {
1215
- //tag)
1216
- //tag)
1217
- this.f_items[f].selected = this.piece.f_items[p].f_item_value
1218
- //tag)
1219
- }
1220
- // 取出特殊值
1221
- if (this.f_items[f].f_item_name == '初始表底') {
1222
- //tag)
1223
- this.f_initial_base.index = f
1224
- } else if (this.f_items[f].f_item_name == '累购气量') {
1225
- //tag)
1226
- this.f_total_gas.index = f
1227
- } else if (this.f_items[f].f_item_name == '已用气量') {
1228
- //tag)
1229
- this.f_table_base.index = f
1230
- this.$watch('f_items[' + f + '].f_item_value', function () {
1231
- this.getGasAberrantNumber('已用气量')
1232
- })
1233
- } else if (this.f_items[f].f_item_name == '剩余气量') {
1234
- //tag)
1235
- this.f_gas_balance.index = f
1236
- this.$watch('f_items[' + f + '].f_item_value', function () {
1237
- this.getGasAberrantNumber('')
1238
- })
1239
- } else if (this.f_items[f].f_item_name == '气量异常差值') {
1240
- //tag)
1241
- this.f_gas_aberrant_number.index = f
1242
- } else if (this.f_items[f].f_item_name == '累购金额') {
1243
- //tag)
1244
- this.f_total_fee.index = f
1245
- } else if (this.f_items[f].f_item_name == '已用金额') {
1246
- //tag)
1247
- this.f_fee_base.index = f
1248
- this.$watch('f_items[' + f + '].f_item_value', function () {
1249
- this.getFeeAberrantNumber('已用金额')
1250
- })
1251
- } else if (this.f_items[f].f_item_name == '剩余金额') {
1252
- //tag)
1253
- this.f_fee_balance.index = f
1254
- this.$watch('f_items[' + f + '].f_item_value', function () {
1255
- this.getFeeAberrantNumber('')
1256
- this.getFeeAberrantNumber2('')
1257
- })
1258
- } else if (this.f_items[f].f_item_name == '表端剩余金额') {
1259
- this.f_table_balance.index = f
1260
- this.$watch('f_items[' + f + '].f_item_value', function () {
1261
- this.getFeeAberrantNumber2('')
1262
- })
1263
- } else if (this.f_items[f].f_item_name == '金额异常差值') {
1264
- //tag)
1265
- this.f_fee_aberrant_number.index = f
1266
- }else if (this.f_items[f].f_item_name == '表读数') {
1267
- //tag)
1268
- this.f_meter_base.index = f
1269
- }else if (this.f_items[f].f_item_name == '表剩余金额') {
1270
- //tag)
1271
- this.f_balance_amount.index = f
1272
- }else if (this.f_items[f].f_item_name == '字轮数') {
1273
- //tag)
1274
- this.f_meter_base1.index = f
1275
- this.$watch('f_items[' + f + '].f_item_value', function () {
1276
- this.getmeteraberrantnumber()
1277
- })
1278
- }else if (this.f_items[f].f_item_name == '表余额') {
1279
- //tag)
1280
- this.f_balance_amount1.index = f
1281
- this.$watch('f_items[' + f + '].f_item_value', function () {
1282
- this.getfeeaberrantnumber1()
1283
- })
1284
- }else if (this.f_items[f].f_item_name == '表数异常差值') {
1285
- //tag)
1286
- this.f_meter_aberrant_number1.index = f
1287
- }else if (this.f_items[f].f_item_name == '表金额异常差值') {
1288
- //tag)
1289
- this.f_fee_aberrant_number1.index = f
1290
- }
1291
- }
1292
- }
1293
- for (let em in this.config[this.device.device].items) {
1294
- if(typeof this.config[this.device.device].items[em]=='function'){
1295
- continue
1296
- }
1297
- if (this.config[this.device.device].items[em].type == 'selector' && em == this.f_items[f].f_item_name) {
1298
- this.f_items[f].options =[]
1299
- for (let k in this.config[this.device.device].items[em].options) {
1300
- if(typeof this.config[this.device.device].items[em].options[k]=='function'){
1301
- continue
1302
- }
1303
- this.f_items[f].options.push({
1304
- label: this.config[this.device.device].items[em].options[k].data,
1305
- value: this.config[this.device.device].items[em].options[k].data
1306
- })
1307
- }
1308
- }
1309
- }
1310
- }
1311
- //tag)
1312
- this.$set('piece.f_items',this.f_items)
1313
- }
1314
- this.towatch()
1315
- },
1316
- destroyed(){
1317
- let nullCount = 0
1318
- let metertitles
1319
- //判断当前是否有选中项
1320
- for (let row in this.f_items){
1321
- if(typeof this.f_items[row]=='function'){
1322
- continue
1323
- }
1324
- if(this.f_items[row].selected && this.f_items[row].selected != '' && this.f_items[row].selected instanceof Array){
1325
- //tag
1326
- this.f_items[row].f_item_value = this.f_items[row].selected
1327
- }else if(this.f_items[row].selected && this.f_items[row].selected != ''){
1328
- //tag
1329
- this.f_items[row].f_item_value = this.f_items[row].selected
1330
- }
1331
- // if(this.f_items[row].f_item_value instanceof Array && this.f_items[row].f_item_value.length != 0 ){
1332
- // nullCount = nullCount+1
1333
- // }else if(this.f_items[row].f_item_value != ''){
1334
- // nullCount = nullCount+1
1335
- // }
1336
- }
1337
- let picture = []
1338
- // for (let row in this.f_items){
1339
- // let a={}
1340
- // a.f_path = this.f_items[row].f_path
1341
- // a.name = this.f_items[row].f_item_name
1342
- // }
1343
- // picture.push(a)
1344
- this.$set(`paper['device${this.device.n}'][${this.idx}]`, this.piece)
1345
- //tag
1346
- },
1347
- computed:{
1348
-
1349
- }
1350
- }
1351
- </script>
1352
- <style lang="less" scoped>
1353
- .class-erro {
1354
- color: #a94442;
1355
- }
1356
- .fivelabel{
1357
- border: none;
1358
- border-left: 5px solid #A2C2EB;
1359
- float: left;
1360
- width: 35%;
1361
- margin-bottom: 3px;
1362
- text-align: left;
1363
- word-wrap: break-word;
1364
- white-space: normal;
1365
- }
1366
- .radiolabel{
1367
- border: none;
1368
- border-left: 5px solid #A2C2EB;
1369
- float: left;
1370
- width: 65%;
1371
- margin-bottom: 3px;
1372
- text-align: left;
1373
- word-wrap: break-word;
1374
- white-space: normal;
1375
- }
1376
-
1377
- .textlabel {
1378
- border: none;
1379
- border-left: 5px solid #A2C2EB;
1380
- width: 100%;
1381
- margin-bottom: 3px;
1382
- text-align: left;
1383
- word-wrap: break-word;
1384
- white-space: normal;
1385
- }
1386
- .textlabel1 {
1387
- border: none;
1388
- border-left: 5px solid #f7cb32;
1389
- width: 100%;
1390
- margin-bottom: 3px;
1391
- text-align: left;
1392
- word-wrap: break-word;
1393
- white-space: normal;
1394
- }
1395
- .spanrodio{
1396
- margin-right: 10px;
1397
- }
1398
- .div-photo{
1399
- width: auto;
1400
- height: auto;
1401
- /* margin-top: 10px; */
1402
- position: absolute;
1403
- bottom: 10px;
1404
- right: 10px;
1405
- }
1406
- .panel-self{
1407
- border-radius: 5px;
1408
- border:1px solid #c5e1f7;
1409
- //background-color: #F2F6FA;
1410
- }
1411
- .btn-photo{
1412
- border: 0;
1413
- border-radius: 7px;
1414
- background-color: #7dc1f4;
1415
- font: 15px PingFang-SC-Bold;
1416
- height: 20%;
1417
- }
1418
- </style>
1419
-
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}} <span v-show="row.verification_state" :style="{color:row.verification_state==='pass'?'green':'red'}">{{row.verification_text}}</span></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 HH:mm:ss'"
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 != '') && (livedispose == 'true' || livedispose == true) " >-->
110
+ <!-- <label class="fivelabel">现场已处理</label>-->
111
+ <!-- <v-select :value="row.f_live_dispose"-->
112
+ <!-- :value-single="true"-->
113
+ <!-- :options="lives"-->
114
+ <!-- :disabled="role == 'androidview'"-->
115
+ <!-- @change="changlive"-->
116
+ <!-- @click="transelation(idxs)"-->
117
+ <!-- close-on-select clear-button></v-select>-->
118
+ <!-- </div>-->
119
+ <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) " >
120
+ <label class="fivelabel">处理方式</label>
121
+ <v-select
122
+ :value="row.f_deal_dispose"
123
+ :value-single="true"
124
+ :options="deals"
125
+ :disabled="role == 'androidview'"
126
+ @change="changdeal"
127
+ @click="transelation(idxs)"
128
+ close-on-select clear-button>
129
+ </v-select>
130
+ </div>
131
+ <div style="display: flex;flex-wrap: wrap" v-if="row.f_deal_dispose == '自行处理' && this.showZXTime">
132
+ <label class="fivelabel">处理时效:</label>
133
+ <datepicker
134
+ :value.sync="row.f_handle_date"
135
+ v-model="row.f_handle_date"
136
+ :format="'yyyy-MM-dd 00:00:00'"
137
+ placeholder="请选择"
138
+ style="width: 60%">
139
+ </datepicker>
140
+ </div>
141
+ <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 != '' ">
142
+ ☆{{row.tooltip}}
143
+ </div>
144
+ <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 != '')">
145
+ <div class="auto" style="margin:1px;">
146
+ <div class="panel">
147
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
148
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
149
+ <div class="col-sm-4" v-show="row.f_path">
150
+ <img-self :src="row.f_path" :alt="row.f_item_name" width="140" height="140"></img-self>
151
+ </div>
152
+ <div class="col-sm-4" v-show="!row.f_path" @click="takePic(idxs, row.f_item_name)">
153
+ <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
154
+ </div>
155
+ <img v-show="row.f_path" src="../../../assets/remove.png" :class="style__" @click="delfile(idxs, row.f_path)" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
156
+ </div>
157
+ </div>
158
+ </div>
159
+ </div>
160
+ <!--多张隐患照片-->
161
+ <div class="auto" v-for="itemIndex in hiddenDangerImgNumber" style="margin: 1px;">
162
+ <div class="panel">
163
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
164
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
165
+ <div class="col-sm-4" v-show="row['f_p' + (itemIndex+1) + '_path']">
166
+ <img-self :src="row['f_p' + (itemIndex+1) + '_path']" :alt="row.f_item_name" width="140" height="140"></img-self>
167
+ </div>
168
+ <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')">
169
+ <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
170
+ </div>
171
+ <img v-show="row['f_p' + (itemIndex+1)+'_path']" src="../../../assets/remove.png" :class="style__" @click="delfile(idxs,row['f_p' + (itemIndex+1)+'_path'],'f_p' + (itemIndex+1)+ '_path')" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
172
+ </div >
173
+ </div>
174
+ </div>
175
+ </div>
176
+ <div style="display: flex;flex-wrap: wrap;margin-top: 10px" v-if="row.f_deal_dispose == '现场整改' && (row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && this.showXCImg">
177
+ <label class="fivelabel">整改照片:</label>
178
+ <div class="auto" style="margin:1px;">
179
+ <div class="panel">
180
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
181
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
182
+ <div class="col-sm-4" v-show="row.f_repair_path">
183
+ <img-self :src="row.f_repair_path" :alt="row.f_item_name" width="140" height="140"></img-self>
184
+ </div>
185
+ <div class="col-sm-4" v-show="!row.f_repair_path" @click="takePic(idxs, row.f_item_name,'f_repair_path',row.f_defect_level)">
186
+ <img src="../../../assets/tackpic.png" alt="点击拍摄照片" width="140" height="140"></img>
187
+ </div>
188
+ <img v-show="row.f_repair_path" src="../../../assets/remove.png" :class="style__" @click="delfile(idxs, row.f_repair_path, 'f_repair_path')" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </div>
196
+
197
+ <!--<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 != '气表品牌'"-->
198
+ <!--&gt;</v-select>-->
199
+ <!--<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 == '气表品牌'"-->
200
+ <!--&gt;</v-select>-->
201
+ <!-- <div class="auto" v-if="!show && row.type == 'checkbox' ">-->
202
+ <!-- <input class="magic-checkbox" type="checkbox" id="shebeicheckbox"-->
203
+ <!-- :checked="row.f_content == '有'"-->
204
+ <!-- @click="switchDetails(row.f_project, $event)" :disabled="issee"/>-->
205
+ <!-- <label for="shebeicheckbox" style="width:150px;padding-bottom: 10px">{{row.f_project}}</label>-->
206
+ <!-- </div>-->
207
+ <!--<img-area :model="Detail.imgs" :sutitle="row.f_project" v-if="row.type == 'picture'" :disabled="issee"></img-area>-->
208
+ </div>
209
+ </div>
210
+ </div>
211
+ <div style="border-top: 1px solid #D4D4D4"></div>
212
+ </div>
213
+ </div>
214
+ </div>
215
+ </template>
216
+ <script>
217
+ import Vue from 'vue'
218
+ import * as Util from '../../Util'
219
+
220
+ export default {
221
+ title: '维修列表信息',
222
+ data() {
223
+ return {
224
+ // telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
225
+ // meterstyle:[],
226
+ hiddenDangerImgNumber:4,//隐患图片数
227
+ shuclass:'col-xs-12 col-sm-12 col-md-12 form-input-group mg8',
228
+ shuclass1:'col-xs-12 col-sm-12 col-md-12 mg8',
229
+ // labels:[],
230
+ meternum:'',
231
+ useGaseType:this.$appdata.getParam('用户用气类型'),
232
+ ischecked:'有',
233
+ gasmodel:'',
234
+ textstyle:'color: red',
235
+ paper: this.$parent.$parent.data,
236
+ f_items:[],
237
+ page:{},
238
+ selectindex:null,
239
+ lives:[{label: '是', value: '是'},{label: '否', value: '否'}],
240
+ deals:[{label: '现场处理', value: '现场处理'},{label: '自行处理', value: '自行处理'}],
241
+ f_live_dispose:'否',
242
+ f_deal_dispose:'未处理',
243
+ // 初始表底
244
+ f_initial_base: {},
245
+ // 气量异常差值 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
246
+ f_gas_aberrant_number: {},
247
+ // 金额异常差值 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
248
+ f_fee_aberrant_number: {},
249
+ // 累购气量
250
+ f_total_gas: {},
251
+ // 累购金额
252
+ f_total_fee: {},
253
+ // 已用气量
254
+ f_table_base: {},
255
+ // 已用金额
256
+ f_fee_base: {},
257
+ // 剩余气量
258
+ f_gas_balance: {},
259
+ // 剩余金额
260
+ f_fee_balance: {},
261
+ // 表端剩余金额
262
+ f_table_balance: {},
263
+ // 气量异常差值允许误差
264
+
265
+ //物联网表数据存储
266
+ f_balance_amount:{},//物联网表剩余金额
267
+ f_meter_base:{},//物联网表读数
268
+ f_balance_amount1:{},//物联网表现场录入的表上剩余金额
269
+ f_meter_base1:{},//物联网表现场录入的表字轮数
270
+ f_meter_aberrant_number1: {},//物联网表 表数异常差值
271
+ f_fee_aberrant_number1: {},//物联网 表金额异常差值
272
+ gasDeviation: (
273
+ function (_this) {
274
+ let deviation = _this.$appdata.getSingleValue('气量异常差值允许误差')
275
+ if (deviation && !isNaN(deviation)) {
276
+ return deviation
277
+ } else {
278
+ return 0
279
+ }
280
+ }
281
+ )(this),
282
+ // 金额异常差值允许误差
283
+ feeDeviation: (
284
+ function (_this) {
285
+ let deviation = _this.$appdata.getSingleValue('金额异常差值允许误差')
286
+ if (deviation && !isNaN(deviation)) {
287
+ return deviation
288
+ } else {
289
+ return 0
290
+ }
291
+ }
292
+ )(this),
293
+ // 字轮异常差值允许误差
294
+ meterbase: (
295
+ function (_this) {
296
+ let deviation = _this.$appdata.getSingleValue('字轮异常差值允许误差')
297
+ if (deviation && !isNaN(deviation)) {
298
+ return deviation
299
+ } else {
300
+ return 0
301
+ }
302
+ }
303
+ )(this),
304
+ showElse:false, //控制其他选项是否显示
305
+ showXCImg: false, // 是否显示现场整改拍照选项
306
+ showZXTime: false // 是否显示自行整改处理时效
307
+ }
308
+ },
309
+ props: ['config','device','idx','operation','role'],
310
+ // props: {
311
+ // // 维修对应的用户数据收集
312
+ // model: {
313
+ // type: Object
314
+ // },
315
+ // service:{
316
+ // type: Object
317
+ // },
318
+ // show: {
319
+ // type: Boolean,
320
+ // default: false
321
+ // },
322
+ // repairitem:{
323
+ // type: Object
324
+ // },
325
+ // shutype:'heng',
326
+ // tabs:{
327
+ // type: Object
328
+ // },
329
+ // repairdetails:{
330
+ // type: Object
331
+ // },
332
+ // faultshow:{
333
+ // type: Object
334
+ // },
335
+ // issee:''
336
+ // },
337
+ methods: {
338
+ changse(val){
339
+ if(val == undefined){
340
+ return
341
+ }
342
+ if(this.selectindex != null) {
343
+ if(this.f_items[this.selectindex].type == 'selector'){
344
+ this.f_items[this.selectindex].f_item_value = val
345
+ }else if(this.f_items[this.selectindex].type == 'inputSelector'){
346
+ this.f_items[this.selectindex].f_item_value = val.target.value
347
+ }
348
+ }
349
+ },
350
+ changlive(val){
351
+ if(val == undefined){
352
+ return
353
+ }
354
+ if(this.selectindex != null) {
355
+ this.f_items[this.selectindex].f_live_dispose = val
356
+ }
357
+ },
358
+ changdeal(val){
359
+ if(val == undefined){
360
+ return
361
+ }
362
+ if(this.selectindex != null) {
363
+ this.f_items[this.selectindex].f_deal_dispose = val
364
+ }
365
+ },
366
+ switchDetails(detailsType, event){
367
+ if (event.srcElement.checked) {
368
+ for(var i = 0;i<this.Detail.details.length;i++){
369
+ if(this.Detail.details[i].f_project == detailsType){
370
+ this.Detail.details[i].f_content = '有'
371
+ this.ischecked = '有'
372
+ return
373
+ }
374
+ }
375
+ } else {
376
+ this.Detail.imgs = []
377
+ for(var i = 0;i<this.Detail.details.length;i++){
378
+ if(this.Detail.details[i].f_project == detailsType){
379
+ this.Detail.details[i].f_content = '无'
380
+ this.ischecked = '无'
381
+ }else{
382
+ this.Detail.details[i].f_content = ''
383
+ }
384
+ }
385
+ }
386
+ },
387
+ getgasmodel(val){
388
+ this.gasmodel = val
389
+ },
390
+ getradios(val,flag){
391
+ let Reoptions = []
392
+ for (let i = 0;i<this.repairdetails.length;i++) {
393
+ var t = false
394
+ if(this.repairdetails[i].f_type == this.repairitem.header ){
395
+ for(var j =0;j<this.repairdetails[i].details.length;j++){
396
+ if(this.repairdetails[i].details[j].f_project == val ){
397
+ Reoptions = this.repairdetails[i].details[j].options
398
+ t = true
399
+ break
400
+ }
401
+ }
402
+ }
403
+ if(t){
404
+ break
405
+ }
406
+ }
407
+ for(let j = 0;j<Reoptions.length;j++){
408
+ if(Reoptions[j].data == flag){
409
+ for(var e = 0;e<this.Detail.details.length;e++){
410
+ if(this.Detail.details[e].f_project == val){
411
+ this.Detail.details[e].f_status = Reoptions[j].f_status
412
+ return
413
+ }
414
+ }
415
+ break
416
+ }
417
+ }
418
+ },
419
+ deletedetails(){
420
+ this.$showMessage('该操作会删除所填信息,是否继续!', ['confirm', 'cancel']).then((res) => {
421
+ if (res === 'confirm') {
422
+ for(var i = 0;i<this.tabs.length;i++){
423
+ if(this.tabs[i].number == this.repairitem.number){
424
+ this.tabs.splice(i, 1)
425
+ this.model.servicerepair.splice(this.repairitem.number, 1)
426
+ for(let t = i;t < this.tabs.length;t++ ) {
427
+ this.tabs[t].number -= 1
428
+ }
429
+ return
430
+ }
431
+ }
432
+ }
433
+ })
434
+ },
435
+ takePic(prop, title, pathname='null') {
436
+ if (this.role == 'androidview') {
437
+ return
438
+ }
439
+ HostApp.__callback__ = this.cameraCallBack
440
+ HostApp.__this__ = this
441
+ //tag
442
+ let fileName
443
+ if (pathname == 'null') {
444
+ if (!this.f_items[prop].f_path || this.f_items[prop].f_path.includes("nopic.png")) {
445
+ fileName = Util.guid() + '-' + 'device'+this.device.n + '-' + this.idx + '-'+'f_items'+prop+ '.jpg'
446
+ } else {
447
+ fileName = Util.getFileName(this.f_items[prop].f_path)
448
+ }
449
+ } else {
450
+ if (!this.f_items[prop][pathname] || this.f_items[prop][pathname].includes("nopic.png")) {
451
+ fileName = Util.guid() + '-' + 'device'+this.device.n + '-' + this.idx + '-'+'f_items'+prop+ '.jpg'
452
+ } else {
453
+ fileName = Util.getFileName(this.f_items[prop][pathname])
454
+ }
455
+ }
456
+ let jingweidu = ''
457
+ if (this.$parent.$parent.is_has_jingweidu == 'true'){
458
+ const obj = HostApp.getGpsDetailAddress()
459
+ jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
460
+ }
461
+ //tag
462
+ //tag
463
+ HostApp._open_a_page({type: 'boomerang',
464
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
465
+ param: {file: fileName, requestCode: 111, callback:'javascript:HostApp.__callback__("'+ prop +'","'+ title +'", "%s","'+pathname+'");', watermark: title + '\t时间:'+ Util.toStandardTimeString() + '\t' + Vue.user.name + jingweidu}
466
+ })
467
+ },
468
+ cameraCallBack(prop,title, fileName,pathname) {
469
+ if(title == '到访不遇/拒检照片'){
470
+ if(this.$parent.$parent.data.f_entry_status == '到访不遇'){
471
+ this.$parent.$parent.data.f_noanswer_path = fileName + '?' + Math.random()
472
+ }else{
473
+ this.$parent.$parent.data.f_nongasuser_path = fileName + '?' + Math.random()
474
+ }
475
+ }
476
+ //tag
477
+ if (pathname == 'null') {
478
+ //tag
479
+ HostApp.__this__.$set( 'f_items['+prop+'].f_path', fileName + '?' + Math.random())
480
+ //tag
481
+ HostApp.__callback__ = null
482
+ HostApp.__this__ = null
483
+ } else {
484
+ //tag
485
+ //tag)
486
+ HostApp.__this__.$set( 'f_items['+prop+'].'+pathname+'', fileName + '?' + Math.random())
487
+ HostApp.__callback__ = null
488
+ HostApp.__this__ = null
489
+ }
490
+ if(this.f_items[prop].is_verification){
491
+ let path=fileName.replace('http://newimg','')
492
+ path=path.replace('file://','')
493
+ console.log('fileName',fileName)
494
+ console.log(path)
495
+ let res=HostApp.pictureVerificationAI(path,title)
496
+ if(res.code==200){
497
+ if(res.type_result){
498
+ // this.$showMessage("检测通过,当前照片为"+title)
499
+ this.f_items[prop].verification_text=`检测通过,当前照片为 ${title}`
500
+ this.f_items[prop].verification_state='pass'
501
+ }else{
502
+ // this.$showMessage("检测失败,未识别到当前照片为 "+title+",请重新拍摄!")
503
+ this.f_items[prop].verification_text=`检测失败,未识别到当前照片为'${title}',请重新拍摄!`
504
+ this.f_items[prop].verification_state='npass'
505
+ }
506
+ }else{
507
+ // this.$showMessage("检测失败,请重试!")
508
+ this.f_items[prop].verification_text=`检测失败,请重试!`
509
+ this.f_items[prop].verification_state='npass'
510
+ }
511
+ }
512
+ },
513
+ delfile(prop, fileName, pathname='null') {
514
+ if (pathname == 'null') {
515
+ //tag
516
+ //tag)
517
+ if(fileName == Vue.nopic){
518
+ return
519
+ } else {
520
+ HostApp.delfile(fileName)
521
+ this.f_items[prop].f_path = Vue.nopic
522
+ }
523
+ }else {
524
+ //tag
525
+ //tag)
526
+ if(fileName == Vue.nopic){
527
+ return
528
+ } else {
529
+ HostApp.delfile(fileName)
530
+ this.f_items[prop][pathname] = Vue.nopic
531
+ }
532
+ }
533
+ },
534
+ adddetails(){
535
+ // 下标作为序号,取值用。 增加 序号得依次增加
536
+ if(this.tabs.length > 0){
537
+ for(let i = this.tabs.length-1;i > 0 ;i-- ){
538
+ if(this.tabs[i].header == this.repairitem.header){
539
+ if(this.model.servicerepair.length > 0){
540
+ for(let j = this.model.servicerepair.length -1;j > -1;j-- ){
541
+ if(this.model.servicerepair[j].f_type == this.repairitem.header){
542
+ this.model.servicerepair.splice(j+1, 0, Object.assign({}, JSON.parse(JSON.stringify(this.tabs[i].details))))
543
+ 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})
544
+ for(let t = i+2;t < this.tabs.length;t++ ) {
545
+ this.tabs[t].number += 1
546
+ }
547
+ this.faultshow.number += this.faultshow.number + 1
548
+ return
549
+ }
550
+ }
551
+ }
552
+ }
553
+ }
554
+ }
555
+ },
556
+ transelation(val){
557
+ this.selectindex = val
558
+ },
559
+ towatch(){
560
+ for(let n in this.f_items){
561
+ if(typeof this.f_items[n]=='function'){
562
+ continue
563
+ }
564
+ if(this.f_items[n].type == 'selector' || this.f_items[n].type == 'inputSelector'){
565
+ // 监听下拉框,如果有隐患,需要拍照
566
+ this.$watch('f_items['+n+'].selected',function(val,old) {
567
+ if(val==old){
568
+ return
569
+ }
570
+ // 下拉框值
571
+ //tag)
572
+ // 下拉框所属设备
573
+ //tag
574
+ // 下拉框所属项
575
+ //tag
576
+ if (val == undefined || val.length == 0 || val[0] == ''){
577
+ this.f_items[n].f_path = ''
578
+ this.f_items[n].f_is_defect = ''
579
+ this.f_items[n].f_defect_level = ''
580
+ this.f_items[n].f_live_dispose = ''
581
+ this.f_items[n].f_deal_dispose = ''
582
+ this.f_items[n].tooltip = ''
583
+ this.f_items[n].f_else = ''
584
+ return
585
+ }
586
+ let shImage = false
587
+ if(val.indexOf('其他') == -1){
588
+ this.f_items[n].f_else = ''
589
+ }
590
+ // if(this.config[this.device.device].items[item].type == 'selector'){
591
+ // this.f_items[n].f_item_value = val
592
+ // }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
593
+ // this.f_items[n].f_item_value = val[0]
594
+ // }
595
+ // 在配置中查找该项
596
+ for (let item in this.config[this.device.device].items) {
597
+ if(typeof this.config[this.device.device].items[item]=='function'){
598
+ continue
599
+ }
600
+ let type = this.config[this.device.device].items[item].type
601
+ let multiple = this.config[this.device.device].items[item].multiple?this.config[this.device.device].items[item].multiple:false
602
+ let options = this.config[this.device.device].items[item].options
603
+ 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) {
604
+ if(this.f_items[n].f_item_name == '入户状态'){
605
+ this.$parent.$parent.data.f_entry_status = val[0]
606
+ if(val[0] == '到访不遇' || val[0] == '拒检'){
607
+ this.f_items.forEach(item => {
608
+ if (item.f_item_name == '到访不遇/拒检照片') {
609
+ item.isshow = true
610
+ item.checkmust = true
611
+ }
612
+ })
613
+ for (let item in this.config[this.device.device].items) {
614
+ if(item == '到访不遇/拒检照片'){
615
+ this.config[this.device.device].items[item].isshow = true
616
+ this.config[this.device.device].items[item].checkmust = true
617
+ }
618
+ }
619
+
620
+ }else{
621
+ if(val[0] == '入户未点'){
622
+ //不显示表具信息
623
+ this.f_items.forEach(item => {
624
+ if (item.f_item_name == '到访不遇/拒检照片') {
625
+ item.isshow = false
626
+ item.checkmust = false
627
+ }
628
+ for (let item in this.config[this.device.device].items) {
629
+ if(item == '到访不遇/拒检照片'){
630
+ this.config[this.device.device].items[item].isshow = false
631
+ this.config[this.device.device].items[item].checkmust = false
632
+ }
633
+ }
634
+ if (item.f_item_name == '气表品牌'|| item.f_item_name == '表号' || item.f_item_name == '用户姓名' || item.f_item_name == '用户电话' || item.f_item_name == '表具照片' || item.f_item_name == '安装日期' || item.f_item_name == '左右表' || item.f_item_name == '检验时间') {
635
+ item.isshow = false
636
+ item.checkmust = false
637
+ }
638
+ })
639
+ for (let item in this.config[this.device.device].items) {
640
+ if(item == '到访不遇/拒检照片' || item== '气表品牌'|| item== '表号' || item == '用户姓名' || item== '用户电话' || item == '表具照片' || item== '安装日期' || item== '左右表' || item == '检验时间'){
641
+ this.config[this.device.device].items[item].isshow = false
642
+ this.config[this.device.device].items[item].checkmust = false
643
+ }
644
+ }
645
+ }else{
646
+
647
+ this.f_items.forEach(item => {
648
+ if (item.f_item_name == '气表品牌'|| item.f_item_name == '表号' || item.f_item_name == '用户姓名' || item.f_item_name == '用户电话' || item.f_item_name == '表具照片' || item.f_item_name == '安装日期' || item.f_item_name == '左右表' || item.f_item_name == '检验时间') {
649
+ item.isshow = true
650
+ }
651
+ if (item.f_item_name == '到访不遇/拒检照片') {
652
+ item.isshow = false
653
+ item.checkmust = false
654
+ }
655
+ })
656
+ for (let item in this.config[this.device.device].items) {
657
+ if(item== '气表品牌'|| item== '表号' || item == '用户姓名' || item== '用户电话' || item == '表具照片' || item== '安装日期' || item== '左右表' || item == '检验时间'){
658
+ this.config[this.device.device].items[item].isshow =true
659
+ }
660
+ }
661
+ for (let item in this.config[this.device.device].items) {
662
+ if(item == '到访不遇/拒检照片'){
663
+ this.config[this.device.device].items[item].isshow = false
664
+ this.config[this.device.device].items[item].checkmust = false
665
+ }
666
+ }
667
+ }
668
+ }
669
+ }
670
+ if(this.f_items[n].f_item_name == '检查类型'){
671
+ if(this.f_items[n].f_item_value== '点火检查' ){
672
+ this.f_items.forEach(item => {
673
+ if (item.f_item_name == '点火类型') {
674
+ item.isshow = true
675
+ item.checkmust =true
676
+ }
677
+ })
678
+ }else {
679
+ this.f_items.forEach(item => {
680
+ if (item.f_item_name == '证件号码') {
681
+ item.isshow = false
682
+ item.checkmust = false
683
+ }
684
+ if (item.f_item_name == '用户用气类型') {
685
+ item.isshow = false
686
+ item.checkmust = false
687
+ }
688
+ if (item.f_item_name == '点火类型') {
689
+ item.isshow = false
690
+ item.checkmust = false
691
+ }
692
+ })
693
+
694
+ }
695
+ }
696
+ if(this.f_items[n].f_item_name == '点火类型'){
697
+ if (this.f_items[n].f_item_value== '正常点火'){
698
+ this.f_items.forEach(item => {
699
+ if (item.f_item_name == '证件号码') {
700
+ item.isshow = true
701
+ item.checkmust = true
702
+ }
703
+ if (item.f_item_name == '用户用气类型') {
704
+ item.isshow = true
705
+ item.checkmust = true
706
+ }
707
+ })
708
+ }else{
709
+ this.f_items.forEach(item => {
710
+ if (item.f_item_name == '证件号码') {
711
+ item.isshow = false
712
+ item.checkmust = false
713
+ }
714
+ if (item.f_item_name == '用户用气类型') {
715
+ item.isshow =false
716
+ item.checkmust =false
717
+ }
718
+ })
719
+ }
720
+ }
721
+ for (let i in options) {
722
+ if(typeof options[i]=='function'){
723
+ continue
724
+ }
725
+ let value
726
+ if(this.config[this.device.device].items[item].type == 'selector' && this.config[this.device.device].items[item].multiple == false){
727
+ value = val[0]
728
+ }else if (this.config[this.device.device].items[item].type == 'inputSelector'){
729
+ value = val
730
+ }
731
+ //tag)
732
+ // 如果未选择,清空图片、隐患信息等
733
+ if((type == 'selector' && val.length == 0) || (type == 'inputSelector' && val == '')){
734
+ this.f_items[n].f_path = ''
735
+ this.f_items[n].f_is_defect = ''
736
+ this.f_items[n].f_defect_level = ''
737
+ this.f_items[n].f_live_dispose = ''
738
+ this.f_items[n].f_deal_dispose = ''
739
+ this.f_items[n].tooltip = ''
740
+ }
741
+ 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)){
742
+ // 找到选中的项了
743
+ //tag
744
+ if(options[i].isdefect == true ){
745
+ shImage = true
746
+ }
747
+ if(options[i].isdefect == false || this.f_items[n].f_item_value == ''){
748
+ shImage = false
749
+ }
750
+ //tag
751
+ if(shImage){
752
+ this.f_items[n].f_is_defect =true
753
+ this.f_items[n].f_defect_level = options[i].level
754
+ this.f_items[n].f_path = Vue.nopic
755
+ this.f_items[n].f_live_dispose = '否'
756
+ this.f_items[n].f_deal_dispose = '未处理'
757
+ //tag
758
+ this.f_items[n].tooltip= options[i].tooltip
759
+ }else{
760
+ this.f_items[n].f_path = ''
761
+ this.f_items[n].f_is_defect = ''
762
+ this.f_items[n].f_defect_level = ''
763
+ this.f_items[n].f_live_dispose = ''
764
+ this.f_items[n].f_deal_dispose = ''
765
+ this.f_items[n].tooltip = ''
766
+ }
767
+ }
768
+ }
769
+ }
770
+ }
771
+ }
772
+ )
773
+ // this.$watch('other',function(val){
774
+ // //tag
775
+ // if(this.selectindex != null) {
776
+ // let index = this.f_items[this.selectindex].f_item_value.indexOf('其他')
777
+ // if(index > -1){
778
+ // this.f_items[this.selectindex].f_item_value.splice(index,1,this.other)
779
+ // }
780
+ // }
781
+ //
782
+ // })
783
+ }else if(this.f_items[n].type == 'radio') {
784
+ // 监听单选框,如果有隐患,需要拍照
785
+ this.$watch('f_items[' + n + '].f_item_value', function (val) {
786
+ //tag)
787
+ let options = this.f_items[n].options
788
+ //tag)
789
+ for (let i = 0; i < options.length; i++) {
790
+ //tag)
791
+ // 找到选中的项了
792
+ if (options[i].value == val) {
793
+ // 如果有隐患,拍图片
794
+ if (options[i].isdefect) {
795
+ this.f_items[n].f_is_defect = true
796
+ this.f_items[n].f_defect_level = options[i].level
797
+ this.f_items[n].f_path = Vue.nopic
798
+ this.f_items[n].f_live_dispose = '否'
799
+ this.f_items[n].f_deal_dispose = '未处理'
800
+ this.f_items[n].tooltip = options[i].tooltip
801
+ //tag)
802
+ return
803
+ }
804
+ }
805
+ }
806
+ this.f_items[n].f_path = ''
807
+ this.f_items[n].f_is_defect = ''
808
+ this.f_items[n].f_defect_level = ''
809
+ this.f_items[n].f_live_dispose = ''
810
+ this.f_items[n].f_deal_dispose = ''
811
+ this.f_items[n].tooltip = ''
812
+ })
813
+ }else if(this.f_items[n].type == 'checkbox') {
814
+ // 监听单选框,如果有隐患,需要拍照
815
+ this.$watch('f_items[' + n + '].f_item_value', function (val) {
816
+ //tag)
817
+ // 如果是手动赋值,不执行下面逻辑
818
+ if (this.f_items[n].isReSet) {
819
+ this.f_items[n].isReSet = false
820
+ return
821
+ }
822
+ let options = this.f_items[n].options
823
+ //tag)
824
+ // 取出选中项中有隐患的详细信息
825
+ let selected = options.filter(item => { return val.indexOf(item.value) != -1 && item.isdefect })
826
+
827
+ if(selected.length > 0){
828
+ // 防止赋值无限调用
829
+ this.f_items[n].isReSet = true
830
+ let selectList = selected.map(item => {return item.value})
831
+ // 如果选中的是非隐患项,取消选中isdefect为true的
832
+ if (selectList.indexOf(val[val.length - 1]) == -1) {
833
+ this.f_items[n].f_item_value = val.filter(item => {return selectList.indexOf(item) == -1})
834
+ this.f_items[n].f_path = ''
835
+ this.f_items[n].f_is_defect = ''
836
+ this.f_items[n].f_defect_level = ''
837
+ this.f_items[n].f_live_dispose = ''
838
+ this.f_items[n].f_deal_dispose = ''
839
+ this.f_items[n].tooltip = ''
840
+ return
841
+ }
842
+ // 如果选中的是隐患项,取消选中isdefect为false的
843
+ this.f_items[n].f_item_value = selectList
844
+ // 如果第一次选择隐患项,初始化
845
+ if (!this.f_items[n].f_is_defect) {
846
+ this.f_items[n].f_is_defect = true
847
+ this.f_items[n].f_defect_level = selected[0].level
848
+ this.f_items[n].f_path = Vue.nopic
849
+ this.f_items[n].f_live_dispose = '否'
850
+ this.f_items[n].f_deal_dispose = '未处理'
851
+ //tag
852
+ this.f_items[n].tooltip = selected[0].tooltip
853
+ }
854
+ //tag)
855
+ return
856
+ }
857
+ this.f_items[n].f_path = ''
858
+ this.f_items[n].f_is_defect = ''
859
+ this.f_items[n].f_defect_level = ''
860
+ this.f_items[n].f_live_dispose = ''
861
+ this.f_items[n].f_deal_dispose = ''
862
+ this.f_items[n].tooltip = ''
863
+ })
864
+ }
865
+ }
866
+ //tag)
867
+ },
868
+ getGasAberrantNumber(val) {
869
+ //tag
870
+ if(!this.f_table_base.index || !this.f_gas_balance.index){
871
+ //tag
872
+ return
873
+ }
874
+ // 先清空
875
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
876
+ this.f_items[this.f_gas_aberrant_number.index].f_is_defect = false
877
+ if(val=='已用气量'){
878
+ //剩余气量 = 累购-已用
879
+ 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
880
+ if (isNaN(this.f_items[this.f_gas_balance.index].f_item_value)) {
881
+ this.f_items[this.f_gas_balance.index].f_item_value = null
882
+ }
883
+ }
884
+
885
+ // 只有两个值都填了才会计算
886
+ if (!this.f_items[this.f_table_base.index].f_item_value || !this.f_items[this.f_gas_balance.index].f_item_value) {
887
+ return
888
+ }
889
+ //tag)
890
+ //tag
891
+ //tag
892
+
893
+ // 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
894
+ 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_initial_base.index?this.f_items[this.f_initial_base.index].f_item_value:0))
895
+ 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)
896
+ // 如果数值有误,清空结果s
897
+ if (isNaN(this.f_items[this.f_gas_aberrant_number.index].f_item_value)) {
898
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
899
+ }
900
+ //tag ===> ' + Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value))
901
+ //tag ===> ' + JSON.stringify(Number(this.gasDeviation)))
902
+ // 计算差值是否在范围内
903
+ 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) {
904
+ this.f_items[this.f_gas_aberrant_number.index].f_is_defect = true
905
+ this.f_items[this.f_gas_aberrant_number.index].f_deal_dispose = '未处理'
906
+ }else{
907
+ this.f_items[this.f_gas_aberrant_number.index].f_is_defect = null
908
+ this.f_items[this.f_gas_aberrant_number.index].f_deal_dispose = null
909
+ }
910
+
911
+ //tag)
912
+ },
913
+ getFeeAberrantNumber(val) {
914
+ //tag
915
+ // 只有两个值都填了才会计算
916
+ if(!this.f_fee_base.index || !this.f_fee_balance.index){
917
+ //tag
918
+ return
919
+ }
920
+ // 先清空
921
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
922
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = false
923
+
924
+ if(val=='已用金额'){
925
+ 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).toFixed(3)
926
+ if (isNaN(this.f_items[this.f_fee_balance.index].f_item_value)) {
927
+ this.f_items[this.f_fee_balance.index].f_item_value = null
928
+ }
929
+ }
930
+
931
+ if (!this.f_items[this.f_fee_base.index].f_item_value || !this.f_items[this.f_fee_balance.index].f_item_value) {
932
+ return
933
+ }
934
+
935
+ // 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
936
+ 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
937
+ 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)
938
+ if (isNaN(this.f_items[this.f_fee_aberrant_number.index].f_item_value)) {
939
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
940
+ }
941
+ //tag ===> ' + Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value))
942
+ //tag ===> ' + JSON.stringify(Number(this.feeDeviation)))
943
+ // 计算差值是否在范围内
944
+ if (Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value) > Number(this.feeDeviation)) {
945
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = true
946
+ this.f_items[this.f_fee_aberrant_number.index].f_deal_dispose = '未处理'
947
+ }else{
948
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = null
949
+ this.f_items[this.f_fee_aberrant_number.index].f_deal_dispose = null
950
+ }
951
+
952
+ //tag)
953
+ },
954
+ // 计算剩余金额和剩余金额差值
955
+ getFeeAberrantNumber2(val) {
956
+ //tag
957
+ // 只有两个值都填了才会计算
958
+ if(!this.f_table_balance.index || !this.f_fee_balance.index){
959
+ //tag
960
+ return
961
+ }
962
+ // 先清空
963
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
964
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = false
965
+
966
+ // 计算公式 => 金额异常差值 = 系统剩余金额 - 表端剩余金额
967
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_fee_balance.index].f_item_value - this.f_items[this.f_table_balance.index].f_item_value
968
+ 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)
969
+ if (isNaN(this.f_items[this.f_fee_aberrant_number.index].f_item_value)) {
970
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
971
+ }
972
+ //tag ===> ' + Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value))
973
+ //tag ===> ' + JSON.stringify(Number(this.feeDeviation)))
974
+ // 计算差值是否在范围内
975
+ if (Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value) > Number(this.feeDeviation)) {
976
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = true
977
+ this.f_items[this.f_fee_aberrant_number.index].f_deal_dispose = '未处理'
978
+ }else{
979
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = null
980
+ this.f_items[this.f_fee_aberrant_number.index].f_deal_dispose = null
981
+ }
982
+ console.log('--------------------------------')
983
+ console.log(this.f_items[this.f_fee_aberrant_number.index].f_item_value)
984
+
985
+ //tag)
986
+ },
987
+ //物联网表字轮数改变触发
988
+ getmeteraberrantnumber() {
989
+ //tag
990
+
991
+ // 先清空
992
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
993
+ this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = false
994
+ //tag
995
+ // 只有两个值都填了才会计算
996
+ if (!this.f_items[this.f_meter_base.index].f_item_value || !this.f_items[this.f_meter_base1.index].f_item_value) {
997
+ return
998
+ }
999
+ //tag
1000
+ // 计算公式 => 表数异常差值= - 字轮数 - 后台表读数
1001
+ 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
1002
+ 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)
1003
+ if (isNaN(this.f_items[this.f_meter_aberrant_number1.index].f_item_value)) {
1004
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
1005
+ }
1006
+ //tag ===> ' + Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value))
1007
+ // 计算差值是否在范围内
1008
+ //tag)
1009
+ if (Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value) > Number(this.meterbase)){
1010
+ this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = true
1011
+ }
1012
+
1013
+ //tag)
1014
+ },
1015
+
1016
+ disSelect(index, itemValue) {
1017
+ //tag)
1018
+ //tag)
1019
+ if (this.f_items[index].f_item_value == itemValue) {
1020
+ this.$set(`f_items[${index}].f_item_value`, '')
1021
+ }
1022
+ }
1023
+ },
1024
+ ready() {
1025
+ //tag
1026
+ //tag
1027
+ if(Vue.config.safecheck != undefined){
1028
+ if(Vue.config.safecheck.ApproveConfig != undefined){
1029
+ if(Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
1030
+ this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
1031
+ }
1032
+ if(Vue.config.safecheck.ApproveConfig.dealdispose != undefined) {
1033
+ this.dealdispose = Vue.config.safecheck.ApproveConfig.dealdispose
1034
+ }
1035
+ if(Vue.config.safecheck.ApproveConfig.showtorepair) {
1036
+ this.deals=[{label: '现场整改', value: '现场整改'},
1037
+ {label: '自行处理', value: '自行处理'},
1038
+ {label: '转维修', value: '报修'}
1039
+ ]
1040
+ }
1041
+ if(Vue.config.safecheck.ApproveConfig.Processing) {
1042
+ if(Vue.config.safecheck.ApproveConfig.Processing.length > 0){
1043
+ this.deals = Vue.config.safecheck.ApproveConfig.Processing
1044
+ }
1045
+ }
1046
+ if(Vue.config.safecheck.ApproveConfig.showXCImg) {
1047
+ this.showXCImg = true
1048
+ }
1049
+ if(Vue.config.safecheck.ApproveConfig.showZXTime) {
1050
+ this.showZXTime = true
1051
+ }
1052
+ if(Vue.config.safecheck.ApproveConfig.showtorepair) {
1053
+ }
1054
+ if(Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
1055
+ if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
1056
+ this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
1057
+ }else {
1058
+ this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
1059
+ }
1060
+ }
1061
+ }
1062
+ }
1063
+ //tag
1064
+ //tag)
1065
+ //tag)
1066
+ //tag)
1067
+ //创建页面所需数据
1068
+ this.$set('piece', this.paper['device'+this.device.n][this.idx])
1069
+ //tag)
1070
+ //tag)
1071
+ let n = 0
1072
+ for (let item in this.config[this.device.device].items) {
1073
+ if(typeof this.config[this.device.device].items[item]=='function'){
1074
+ continue
1075
+ }
1076
+ let index = this.config[this.device.device].items[item].index-1
1077
+ this.$set('page.options' + index, [])
1078
+ //tag)
1079
+ //tag)
1080
+ //tag)
1081
+ // 先根据配置组接页面
1082
+ let f_item_value
1083
+ if(this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'checkbox'){
1084
+ f_item_value = []
1085
+ // 判断选项的默认值
1086
+ for (let defitem in this.config[this.device.device].items[item].options) {
1087
+ if(typeof this.config[this.device.device].items[item].options[defitem]=='function'){
1088
+ continue
1089
+ }
1090
+ let defopt = this.config[this.device.device].items[item].options[defitem]
1091
+ if (defopt.isdefault) {
1092
+ //tag
1093
+ f_item_value[0] = defopt.data
1094
+ }
1095
+ }
1096
+ // if(this.config[this.device.device].items[item].data){
1097
+ // f_item_value.push(this.config[this.device.device].items[item].data)
1098
+ // }
1099
+ }else if(this.config[this.device.device].items[item].type == 'radio'){
1100
+ //为radio添加默认值
1101
+ f_item_value=''
1102
+ //tag)
1103
+ for (let defitem in this.config[this.device.device].items[item].options) {
1104
+ if(typeof this.config[this.device.device].items[item].options[defitem]=='function'){
1105
+ continue
1106
+ }
1107
+ //tag)
1108
+ let defopt = this.config[this.device.device].items[item].options[defitem]
1109
+ if (defopt.isdefault) {
1110
+ //tag)
1111
+ f_item_value = defopt.data
1112
+ }
1113
+ }
1114
+ }else{
1115
+ f_item_value = this.config[this.device.device].items[item].data ? this.config[this.device.device].items[item].data : ''
1116
+ }
1117
+ //tag)
1118
+ let it = {
1119
+ type: this.config[this.device.device].items[item].type,
1120
+ f_item_name: item,
1121
+ checkmust: this.config[this.device.device].items[item].checkmust,
1122
+ f_item_value: f_item_value,
1123
+ is_verification:this.config[this.device.device].items[item].is_verification,
1124
+ verification_text:'',
1125
+ verification_state:'',// ai验证是否通过 npass(未通过)/pass(通过)
1126
+ f_is_defect: '',
1127
+ multiple:this.config[this.device.device].items[item].multiple == true?this.config[this.device.device].items[item].multiple:false,
1128
+ isshow:this.config[this.device.device].items[item].isshow == false?this.config[this.device.device].items[item].isshow:true,
1129
+ readonly: this.config[this.device.device].items[item].readonly == true?true:false,
1130
+ remark: this.config[this.device.device].items[item].remark ? this.config[this.device.device].items[item].remark : '',
1131
+ f_path: '',
1132
+ unit: this.config[this.device.device].items[item].unit ? this.config[this.device.device].items[item].unit : '',
1133
+ tooltip:'',
1134
+ f_live_dispose:'',
1135
+ f_deal_dispose:'',
1136
+ f_else: '',
1137
+ f_p1_path: '',
1138
+ f_p2_path: '',
1139
+ f_p3_path: ''
1140
+ }
1141
+ //tag)
1142
+ //tag)
1143
+ this.$set('f_items['+index+']',it)
1144
+ if (this.config[this.device.device].items[item].type == 'selector' ||this.config[this.device.device].items[item].type == 'inputSelector') {
1145
+ if(this.config[this.device.device].items[item].type == 'selector'){
1146
+ this.page['options' + index].push({
1147
+ label: "请选择",
1148
+ value: ''
1149
+ })
1150
+ }
1151
+ for (let i in this.config[this.device.device].items[item].options) {
1152
+ if(typeof this.config[this.device.device].items[item].options[i]=='function'){
1153
+ continue
1154
+ }
1155
+ this.page['options' + index].push({
1156
+ label: this.config[this.device.device].items[item].options[i].data,
1157
+ value: this.config[this.device.device].items[item].options[i].data,
1158
+ tooltip: this.config[this.device.device].items[item].options[i].tooltip
1159
+ })
1160
+ }
1161
+ if(this.config[this.device.device].items[item].type == 'selector'){
1162
+ this.$set('f_items['+index+'].selected', f_item_value)
1163
+ }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
1164
+ this.$set('f_items['+index+'].selected', f_item_value)
1165
+ }
1166
+
1167
+ this.$set('f_items['+index+'].options',this.page['options' + index])
1168
+
1169
+ //tag)
1170
+ } else if (this.config[this.device.device].items[item].type == 'radio' || this.config[this.device.device].items[item].type == 'checkbox') {
1171
+ //tag)
1172
+ //tag
1173
+ //tag)
1174
+ for (let i in this.config[this.device.device].items[item].options) {
1175
+ if(typeof this.config[this.device.device].items[item].options[i]=='function'){
1176
+ continue
1177
+ }
1178
+ //tag
1179
+ this.page['options' + index].push({
1180
+ label: this.config[this.device.device].items[item].options[i].data,
1181
+ value: this.config[this.device.device].items[item].options[i].data,
1182
+ isdefect: this.config[this.device.device].items[item].options[i].isdefect,
1183
+ level: this.config[this.device.device].items[item].options[i].level,
1184
+ tooltip: this.config[this.device.device].items[item].options[i].tooltip
1185
+ })
1186
+ //tag)
1187
+ }
1188
+ //tag)
1189
+ this.$set('f_items[' + index + '].options', this.page['options' + index])
1190
+ this.$set('f_items[' + index + '].f_item_value', f_item_value)
1191
+ //tag)
1192
+ }
1193
+ n = n + 1
1194
+ }
1195
+ if(!this.piece || JSON.stringify(this.piece) == '{}') {
1196
+ // 如果没有,则新建
1197
+ this.$set('piece.f_items',this.f_items)
1198
+ this.$set('piece.f_device_type',this.device.device)
1199
+ } else {
1200
+ // 已经存在,把之前的数据重新填入
1201
+ for (let f in this.f_items){
1202
+ if(typeof this.f_items[f]=='function'){
1203
+ continue
1204
+ }
1205
+ for(let p in this.piece.f_items) {
1206
+ if(typeof this.piece.f_items[p]=='function'){
1207
+ continue
1208
+ }
1209
+ if (this.f_items[f].f_item_name == this.piece.f_items[p].f_item_name) {
1210
+ //tag)
1211
+ //tag)
1212
+ this.f_items[f] = Object.assign(this.f_items[f], this.piece.f_items[p])
1213
+ //tag)
1214
+ if (this.f_items[f].type == 'selector' || this.f_items[f].type == 'inputSelector') {
1215
+ //tag)
1216
+ //tag)
1217
+ this.f_items[f].selected = this.piece.f_items[p].f_item_value
1218
+ //tag)
1219
+ }
1220
+ // 取出特殊值
1221
+ if (this.f_items[f].f_item_name == '初始表底') {
1222
+ //tag)
1223
+ this.f_initial_base.index = f
1224
+ } else if (this.f_items[f].f_item_name == '累购气量') {
1225
+ //tag)
1226
+ this.f_total_gas.index = f
1227
+ } else if (this.f_items[f].f_item_name == '已用气量') {
1228
+ //tag)
1229
+ this.f_table_base.index = f
1230
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1231
+ this.getGasAberrantNumber('已用气量')
1232
+ })
1233
+ } else if (this.f_items[f].f_item_name == '剩余气量') {
1234
+ //tag)
1235
+ this.f_gas_balance.index = f
1236
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1237
+ this.getGasAberrantNumber('')
1238
+ })
1239
+ } else if (this.f_items[f].f_item_name == '气量异常差值') {
1240
+ //tag)
1241
+ this.f_gas_aberrant_number.index = f
1242
+ } else if (this.f_items[f].f_item_name == '累购金额') {
1243
+ //tag)
1244
+ this.f_total_fee.index = f
1245
+ } else if (this.f_items[f].f_item_name == '已用金额') {
1246
+ //tag)
1247
+ this.f_fee_base.index = f
1248
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1249
+ this.getFeeAberrantNumber('已用金额')
1250
+ })
1251
+ } else if (this.f_items[f].f_item_name == '剩余金额') {
1252
+ //tag)
1253
+ this.f_fee_balance.index = f
1254
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1255
+ this.getFeeAberrantNumber('')
1256
+ this.getFeeAberrantNumber2('')
1257
+ })
1258
+ } else if (this.f_items[f].f_item_name == '表端剩余金额') {
1259
+ this.f_table_balance.index = f
1260
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1261
+ this.getFeeAberrantNumber2('')
1262
+ })
1263
+ } else if (this.f_items[f].f_item_name == '金额异常差值') {
1264
+ //tag)
1265
+ this.f_fee_aberrant_number.index = f
1266
+ }else if (this.f_items[f].f_item_name == '表读数') {
1267
+ //tag)
1268
+ this.f_meter_base.index = f
1269
+ }else if (this.f_items[f].f_item_name == '表剩余金额') {
1270
+ //tag)
1271
+ this.f_balance_amount.index = f
1272
+ }else if (this.f_items[f].f_item_name == '字轮数') {
1273
+ //tag)
1274
+ this.f_meter_base1.index = f
1275
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1276
+ this.getmeteraberrantnumber()
1277
+ })
1278
+ }else if (this.f_items[f].f_item_name == '表余额') {
1279
+ //tag)
1280
+ this.f_balance_amount1.index = f
1281
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1282
+ this.getfeeaberrantnumber1()
1283
+ })
1284
+ }else if (this.f_items[f].f_item_name == '表数异常差值') {
1285
+ //tag)
1286
+ this.f_meter_aberrant_number1.index = f
1287
+ }else if (this.f_items[f].f_item_name == '表金额异常差值') {
1288
+ //tag)
1289
+ this.f_fee_aberrant_number1.index = f
1290
+ }
1291
+ }
1292
+ }
1293
+ for (let em in this.config[this.device.device].items) {
1294
+ if(typeof this.config[this.device.device].items[em]=='function'){
1295
+ continue
1296
+ }
1297
+ if (this.config[this.device.device].items[em].type == 'selector' && em == this.f_items[f].f_item_name) {
1298
+ this.f_items[f].options =[]
1299
+ for (let k in this.config[this.device.device].items[em].options) {
1300
+ if(typeof this.config[this.device.device].items[em].options[k]=='function'){
1301
+ continue
1302
+ }
1303
+ this.f_items[f].options.push({
1304
+ label: this.config[this.device.device].items[em].options[k].data,
1305
+ value: this.config[this.device.device].items[em].options[k].data
1306
+ })
1307
+ }
1308
+ }
1309
+ }
1310
+ }
1311
+ //tag)
1312
+ this.$set('piece.f_items',this.f_items)
1313
+ }
1314
+ this.towatch()
1315
+ },
1316
+ destroyed(){
1317
+ let nullCount = 0
1318
+ let metertitles
1319
+ //判断当前是否有选中项
1320
+ for (let row in this.f_items){
1321
+ if(typeof this.f_items[row]=='function'){
1322
+ continue
1323
+ }
1324
+ if(this.f_items[row].selected && this.f_items[row].selected != '' && this.f_items[row].selected instanceof Array){
1325
+ //tag
1326
+ this.f_items[row].f_item_value = this.f_items[row].selected
1327
+ }else if(this.f_items[row].selected && this.f_items[row].selected != ''){
1328
+ //tag
1329
+ this.f_items[row].f_item_value = this.f_items[row].selected
1330
+ }
1331
+ // if(this.f_items[row].f_item_value instanceof Array && this.f_items[row].f_item_value.length != 0 ){
1332
+ // nullCount = nullCount+1
1333
+ // }else if(this.f_items[row].f_item_value != ''){
1334
+ // nullCount = nullCount+1
1335
+ // }
1336
+ }
1337
+ let picture = []
1338
+ // for (let row in this.f_items){
1339
+ // let a={}
1340
+ // a.f_path = this.f_items[row].f_path
1341
+ // a.name = this.f_items[row].f_item_name
1342
+ // }
1343
+ // picture.push(a)
1344
+ this.$set(`paper['device${this.device.n}'][${this.idx}]`, this.piece)
1345
+ //tag
1346
+ },
1347
+ computed:{
1348
+
1349
+ }
1350
+ }
1351
+ </script>
1352
+ <style lang="less" scoped>
1353
+ .class-erro {
1354
+ color: #a94442;
1355
+ }
1356
+ .fivelabel{
1357
+ border: none;
1358
+ border-left: 5px solid #A2C2EB;
1359
+ float: left;
1360
+ width: 35%;
1361
+ margin-bottom: 3px;
1362
+ text-align: left;
1363
+ word-wrap: break-word;
1364
+ white-space: normal;
1365
+ }
1366
+ .radiolabel{
1367
+ border: none;
1368
+ border-left: 5px solid #A2C2EB;
1369
+ float: left;
1370
+ width: 65%;
1371
+ margin-bottom: 3px;
1372
+ text-align: left;
1373
+ word-wrap: break-word;
1374
+ white-space: normal;
1375
+ }
1376
+
1377
+ .textlabel {
1378
+ border: none;
1379
+ border-left: 5px solid #A2C2EB;
1380
+ width: 100%;
1381
+ margin-bottom: 3px;
1382
+ text-align: left;
1383
+ word-wrap: break-word;
1384
+ white-space: normal;
1385
+ }
1386
+ .textlabel1 {
1387
+ border: none;
1388
+ border-left: 5px solid #f7cb32;
1389
+ width: 100%;
1390
+ margin-bottom: 3px;
1391
+ text-align: left;
1392
+ word-wrap: break-word;
1393
+ white-space: normal;
1394
+ }
1395
+ .spanrodio{
1396
+ margin-right: 10px;
1397
+ }
1398
+ .div-photo{
1399
+ width: auto;
1400
+ height: auto;
1401
+ /* margin-top: 10px; */
1402
+ position: absolute;
1403
+ bottom: 10px;
1404
+ right: 10px;
1405
+ }
1406
+ .panel-self{
1407
+ border-radius: 5px;
1408
+ border:1px solid #c5e1f7;
1409
+ //background-color: #F2F6FA;
1410
+ }
1411
+ .btn-photo{
1412
+ border: 0;
1413
+ border-radius: 7px;
1414
+ background-color: #7dc1f4;
1415
+ font: 15px PingFang-SC-Bold;
1416
+ height: 20%;
1417
+ }
1418
+ </style>
1419
+