safecheck-client 3.0.33-99 → 3.0.34-1

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