safecheck-client 3.0.33-13 → 3.0.33-132

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