safecheck-client 3.0.34-5 → 3.0.34-51

Sign up to get free protection for your applications and to get access to all the features.
Files changed (380) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/config/dev.env.js +6 -6
  5. package/config/index.js +38 -38
  6. package/config/prod.env.js +3 -3
  7. package/config/test.env.js +6 -6
  8. package/docs/AppBase.md +22 -22
  9. package/docs/Busy.md +14 -14
  10. package/docs/CriteriaPaged.md +47 -47
  11. package/docs/DataGrid.md +54 -54
  12. package/docs/DataModel.md +22 -22
  13. package/docs/Dynamic.md +42 -42
  14. package/docs/FormPrint.md +18 -18
  15. package/docs/GetParams.md +11 -11
  16. package/docs/GridTree.md +47 -47
  17. package/docs/HttpBusy.md +13 -13
  18. package/docs/HttpStore.md +29 -29
  19. package/docs/MessageBox.md +28 -28
  20. package/docs/PagedList.md +29 -29
  21. package/docs/Pager.md +21 -21
  22. package/docs/PrintFile.md +38 -38
  23. package/docs/Project.md +23 -23
  24. package/docs/Route.md +105 -105
  25. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  26. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  27. package/docs/Task.md +46 -46
  28. package/docs/TreeList.md +28 -28
  29. package/docs/TreeMixin.md +18 -18
  30. package/docs/all.md +10 -10
  31. package/docs/list.md +42 -42
  32. package/docs/partial.md +75 -75
  33. package/docs/selector.md +82 -82
  34. package/docs/tree.md +40 -40
  35. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  36. 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
  37. 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
  38. 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
  39. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  40. package/examples/AddressList/App.vue +13 -13
  41. package/examples/AddressList/index.html +11 -11
  42. package/examples/DispatchList/App.vue +10 -10
  43. package/examples/DispatchList/BaseTree.vue +13 -13
  44. package/examples/DispatchList/Init.vue +22 -22
  45. package/examples/DispatchList/Test.vue +20 -20
  46. package/examples/DispatchList/index.html +11 -11
  47. package/examples/DispatchList/main.js +18 -18
  48. package/home.html +16 -16
  49. package/package.json +1 -1
  50. package/publish.bat +7 -7
  51. package/release.bat +5 -5
  52. package/src/App-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.vue +55 -0
  53. package/src/Widget.vue +13 -13
  54. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  55. package/src/android-bootstrap/less/.csscomb.json +304 -304
  56. package/src/android-bootstrap/less/.csslintrc +19 -19
  57. package/src/android-bootstrap/less/alerts.less +73 -73
  58. package/src/android-bootstrap/less/badges.less +66 -66
  59. package/src/android-bootstrap/less/bootstrap.less +56 -56
  60. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  61. package/src/android-bootstrap/less/button-groups.less +247 -247
  62. package/src/android-bootstrap/less/buttons.less +173 -173
  63. package/src/android-bootstrap/less/carousel.less +269 -269
  64. package/src/android-bootstrap/less/close.less +34 -34
  65. package/src/android-bootstrap/less/code.less +69 -69
  66. package/src/android-bootstrap/less/component-animations.less +33 -33
  67. package/src/android-bootstrap/less/grid.less +84 -84
  68. package/src/android-bootstrap/less/input-groups.less +167 -167
  69. package/src/android-bootstrap/less/jumbotron.less +52 -52
  70. package/src/android-bootstrap/less/labels.less +64 -64
  71. package/src/android-bootstrap/less/list-group.less +141 -141
  72. package/src/android-bootstrap/less/media.less +66 -66
  73. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  74. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  75. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  76. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  77. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  78. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  79. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  80. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  81. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  82. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  83. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  84. package/src/android-bootstrap/less/mixins/image.less +33 -33
  85. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  86. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  87. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  88. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  89. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  90. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  91. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  92. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  93. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  94. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  95. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  96. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  97. package/src/android-bootstrap/less/mixins/size.less +10 -10
  98. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  99. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  100. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  101. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  102. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  103. package/src/android-bootstrap/less/mixins.less +40 -40
  104. package/src/android-bootstrap/less/modals.less +151 -151
  105. package/src/android-bootstrap/less/navbar.less +660 -660
  106. package/src/android-bootstrap/less/navs.less +290 -290
  107. package/src/android-bootstrap/less/normalize.less +424 -424
  108. package/src/android-bootstrap/less/pager.less +76 -76
  109. package/src/android-bootstrap/less/pagination.less +89 -89
  110. package/src/android-bootstrap/less/panels.less +274 -274
  111. package/src/android-bootstrap/less/popovers.less +131 -131
  112. package/src/android-bootstrap/less/print.less +101 -101
  113. package/src/android-bootstrap/less/progress-bars.less +87 -87
  114. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  115. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  116. package/src/android-bootstrap/less/scaffolding.less +161 -161
  117. package/src/android-bootstrap/less/tables.less +262 -262
  118. package/src/android-bootstrap/less/theme.less +291 -291
  119. package/src/android-bootstrap/less/thumbnails.less +36 -36
  120. package/src/android-bootstrap/less/tooltip.less +102 -102
  121. package/src/android-bootstrap/less/type.less +303 -303
  122. package/src/android-bootstrap/less/utilities.less +55 -55
  123. package/src/android-bootstrap/less/variables.less +896 -896
  124. package/src/android-bootstrap/less/wells.less +29 -29
  125. package/src/androidTest.js +20 -20
  126. package/src/assets/123.png +0 -0
  127. package/src/assets/f8632d3c8c4c1cb68e99da754cab1a7.png +0 -0
  128. package/src/bootstrap/less/.csscomb.json +304 -304
  129. package/src/bootstrap/less/.csslintrc +19 -19
  130. package/src/bootstrap/less/alerts.less +73 -73
  131. package/src/bootstrap/less/badges.less +66 -66
  132. package/src/bootstrap/less/breadcrumbs.less +26 -26
  133. package/src/bootstrap/less/button-groups.less +247 -247
  134. package/src/bootstrap/less/buttons.less +172 -172
  135. package/src/bootstrap/less/carousel.less +269 -269
  136. package/src/bootstrap/less/close.less +34 -34
  137. package/src/bootstrap/less/code.less +69 -69
  138. package/src/bootstrap/less/component-animations.less +33 -33
  139. package/src/bootstrap/less/dropdowns.less +216 -216
  140. package/src/bootstrap/less/forms.less +626 -626
  141. package/src/bootstrap/less/grid.less +84 -84
  142. package/src/bootstrap/less/input-groups.less +167 -167
  143. package/src/bootstrap/less/jumbotron.less +52 -52
  144. package/src/bootstrap/less/labels.less +64 -64
  145. package/src/bootstrap/less/list-group.less +141 -141
  146. package/src/bootstrap/less/media.less +66 -66
  147. package/src/bootstrap/less/mixins/alerts.less +14 -14
  148. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  149. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  150. package/src/bootstrap/less/mixins/buttons.less +69 -69
  151. package/src/bootstrap/less/mixins/center-block.less +7 -7
  152. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  153. package/src/bootstrap/less/mixins/forms.less +90 -90
  154. package/src/bootstrap/less/mixins/gradients.less +59 -59
  155. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  156. package/src/bootstrap/less/mixins/grid.less +122 -122
  157. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  158. package/src/bootstrap/less/mixins/image.less +33 -33
  159. package/src/bootstrap/less/mixins/labels.less +12 -12
  160. package/src/bootstrap/less/mixins/list-group.less +30 -30
  161. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  162. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  163. package/src/bootstrap/less/mixins/opacity.less +8 -8
  164. package/src/bootstrap/less/mixins/pagination.less +24 -24
  165. package/src/bootstrap/less/mixins/panels.less +24 -24
  166. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  167. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  168. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  169. package/src/bootstrap/less/mixins/resize.less +6 -6
  170. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  171. package/src/bootstrap/less/mixins/size.less +10 -10
  172. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  173. package/src/bootstrap/less/mixins/table-row.less +44 -44
  174. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  175. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  176. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  177. package/src/bootstrap/less/mixins.less +40 -40
  178. package/src/bootstrap/less/modals.less +151 -151
  179. package/src/bootstrap/less/navbar.less +660 -660
  180. package/src/bootstrap/less/normalize.less +424 -424
  181. package/src/bootstrap/less/pager.less +76 -76
  182. package/src/bootstrap/less/pagination.less +89 -89
  183. package/src/bootstrap/less/panels.less +275 -275
  184. package/src/bootstrap/less/popovers.less +131 -131
  185. package/src/bootstrap/less/print.less +101 -101
  186. package/src/bootstrap/less/progress-bars.less +87 -87
  187. package/src/bootstrap/less/responsive-embed.less +35 -35
  188. package/src/bootstrap/less/responsive-utilities.less +194 -194
  189. package/src/bootstrap/less/scaffolding.less +161 -161
  190. package/src/bootstrap/less/theme.less +291 -291
  191. package/src/bootstrap/less/thumbnails.less +36 -36
  192. package/src/bootstrap/less/tooltip.less +102 -102
  193. package/src/bootstrap/less/type.less +303 -303
  194. package/src/bootstrap/less/utilities.less +55 -55
  195. package/src/bootstrap/less/wells.less +29 -29
  196. package/src/components/FileUpload.vue +696 -696
  197. package/src/components/Hello.vue +39 -39
  198. package/src/components/LeftTree.vue +27 -27
  199. package/src/components/LoadData.vue +62 -0
  200. package/src/components/android/AddGas.vue +147 -147
  201. package/src/components/android/AddressList.vue +61 -61
  202. package/src/components/android/AndroidDefectDeal.vue +1 -0
  203. package/src/components/android/AreaPlan.vue +566 -572
  204. package/src/components/android/AreaSelect.vue +208 -0
  205. package/src/components/android/AttendanceTally.vue +116 -116
  206. package/src/components/android/Blank.vue +10 -10
  207. package/src/components/android/BuildingSelect.vue +217 -0
  208. package/src/components/android/CheckPlanSelect.vue +248 -0
  209. package/src/components/android/CheckUnplanPage.vue +56 -56
  210. package/src/components/android/Checker.vue +12 -12
  211. package/src/components/android/CheckerAnnual.vue +81 -81
  212. package/src/components/android/CheckerAvarta.vue +82 -82
  213. package/src/components/android/CheckerMonthly.vue +84 -84
  214. package/src/components/android/EquipmentInspection.vue +348 -348
  215. package/src/components/android/FootprintMap.vue +120 -120
  216. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  217. package/src/components/android/LcheckUnplan.vue +108 -108
  218. package/src/components/android/MasterMain.vue +77 -77
  219. package/src/components/android/Menu.vue +132 -132
  220. package/src/components/android/NavBottom.vue +157 -157
  221. package/src/components/android/PaperAlarm.vue +85 -85
  222. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  223. package/src/components/android/PaperFeedback.vue +1514 -1481
  224. package/src/components/android/PaperFeedbackTemp.vue +1 -1
  225. package/src/components/android/PlumberAnnual.vue +83 -83
  226. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  227. package/src/components/android/PlumberMonthly.vue +84 -84
  228. package/src/components/android/PostMap.vue +83 -83
  229. package/src/components/android/QRCode/QRCodeBinding.vue +294 -0
  230. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  231. package/src/components/android/QueryCheckHistory.vue +122 -122
  232. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  233. package/src/components/android/RepairMain.vue +60 -60
  234. package/src/components/android/Repairman.vue +12 -12
  235. package/src/components/android/SafecheckDevices.vue +1298 -1298
  236. package/src/components/android/SafecheckDevicesTemp.vue +1 -1
  237. package/src/components/android/SafecheckOrderV.vue +2809 -2809
  238. package/src/components/android/StationMaster.vue +12 -12
  239. package/src/components/android/SwitchValve.vue +323 -323
  240. package/src/components/android/examples/SafeListExamples.vue +96 -0
  241. package/src/components/android/examples/UserExamples.vue +126 -0
  242. package/src/components/android/userinfo/SafecheckUserInfo.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/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/RepairVerifyForm.vue +76 -76
  258. package/src/components/phonestate/DailyTraffic.vue +57 -57
  259. package/src/components/phonestate/LastKnownState.vue +74 -74
  260. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  261. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  262. package/src/components/phonestate/PostMap.vue +82 -82
  263. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  264. package/src/components/rongcheng/AddPlanItem.vue +4 -0
  265. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  266. package/src/components/rongcheng/CheckSearchUser.vue +40 -14
  267. package/src/components/rongcheng/PaperStatem.vue +6 -1
  268. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  269. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  270. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  271. package/src/components/task/RepairAnnual.vue +79 -79
  272. package/src/components/task/RepairAnnualDetail.vue +49 -49
  273. package/src/components/task/RepairMonthly.vue +91 -91
  274. package/src/components/task/TaskAnnual.vue +77 -77
  275. package/src/components/task/TaskAnnualDetail.vue +47 -47
  276. package/src/components/task/TaskMonthly.vue +89 -89
  277. package/src/components/userfile/MeterFile.vue +145 -145
  278. package/src/components/userfile/MeterModify.vue +46 -46
  279. package/src/components/userfile/UserfileChange.vue +277 -277
  280. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  281. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2798 -0
  282. package/src/filiale/baiyin/android.js +1 -0
  283. package/src/filiale/baiyin/pc/checkUserList.vue +771 -771
  284. package/src/filiale/baiyin/pc.js +21 -21
  285. package/src/filiale/bayan/android/PaperFeedback.vue +1 -1
  286. package/src/filiale/bayan/android/SafecheckDevices.vue +1 -1
  287. package/src/filiale/bayan/android/SafecheckOrderV.vue +52 -29
  288. package/src/filiale/bayan/android/SafecheckUserInfo.vue +1 -1
  289. package/src/filiale/dexin/android/SafecheckDevices.vue +1 -1
  290. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  291. package/src/filiale/hanzhong/android/PaperFeedback.vue +1 -1
  292. package/src/filiale/hanzhong/android/SafecheckDevices.vue +1 -1
  293. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +1 -1
  294. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  295. package/src/filiale/huaran/android.js +12 -0
  296. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  297. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  298. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  299. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  300. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  301. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  302. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  303. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  304. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  305. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  306. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  307. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  308. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  309. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  310. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  311. package/src/filiale/huaran/pc.js +27 -0
  312. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  313. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  314. package/src/filiale/jiaxian/android/SafecheckDevices.vue +4 -4
  315. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2811 -0
  316. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  317. package/src/filiale/jiaxian/android.js +4 -0
  318. package/src/filiale/jingyang/android/PaperFeedback.vue +1 -1
  319. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +1 -1
  320. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  321. package/src/filiale/pingxiang/android/PaperFeedback.vue +1 -1
  322. package/src/filiale/qingjian/android/SafecheckDevices.vue +1 -1
  323. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +1 -1
  324. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  325. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  326. package/src/filiale/ruihua/android.js +11 -0
  327. package/src/filiale/shiquan/android/SafecheckDevices.vue +1 -1
  328. package/src/filiale/siyang/android/SafecheckUserInfo.vue +1 -1
  329. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +645 -0
  330. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  331. package/src/filiale/siyang/pc/CheckSearchUser.vue +982 -0
  332. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  333. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  334. package/src/filiale/siyang/pc/checkUserList.vue +22 -18
  335. package/src/filiale/siyang/pc.js +21 -16
  336. package/src/filiale/tongchuan/android/Select.vue +421 -0
  337. package/src/filiale/tongchuan/android.js +1 -0
  338. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  339. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  340. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  341. package/src/filiale/weinan/android/SafecheckDevices.vue +1 -1
  342. package/src/filiale/weinan/android/SafecheckOrderV.vue +1 -1
  343. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +57 -59
  344. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  345. package/src/filiale/weinan/pc/DefectMainNew.vue +63 -63
  346. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  347. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  348. package/src/filiale/weinan/pc/checkUserList.vue +34 -113
  349. package/src/filiale/weinan/pc.js +47 -46
  350. package/src/filiale/wuan/android/SafecheckOrderV.vue +1 -0
  351. package/src/filiale/wuan/android/SafecheckUserInfo.vue +4 -0
  352. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1192 -1200
  353. package/src/filiale/yangchunboneng/android/DailyworkloadQuery.vue +472 -480
  354. package/src/filiale/yangchunboneng/android/PaperFeedback.vue +1 -1
  355. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +1332 -1332
  356. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +1 -1
  357. package/src/filiale/yangchunboneng/android/safeHistoryLook.vue +473 -481
  358. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +9 -7
  359. package/src/filiale/yongzhou/android/PaperFeedback.vue +1 -1
  360. package/src/filiale/yongzhou/android/SafecheckDevices.vue +1 -1
  361. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +1 -1
  362. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  363. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  364. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1 -1
  365. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1 -1
  366. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +1 -1
  367. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  368. package/src/plugins/LoadData.js +10 -10
  369. package/src/plugins/LoadParams.js +24 -24
  370. package/src/safecheck-android.js +303 -296
  371. package/src/stores/wxconfig.js +10 -10
  372. package/src/utils/getNowDate.js +33 -33
  373. package/test/e2e/custom-assertions/elementCount.js +26 -26
  374. package/test/e2e/nightwatch.conf.js +40 -40
  375. package/test/e2e/runner.js +30 -30
  376. package/test/e2e/specs/test.js +13 -13
  377. package/test/unit/.eslintrc +5 -5
  378. package/test/unit/TestUtil.js +62 -62
  379. package/test/unit/context.html +20 -20
  380. package/test/unit/index.js +13 -13
@@ -0,0 +1,2747 @@
1
+ <template>
2
+ <!--<div class="app-botton" @click="back()">-->
3
+ <!--返回<span class="glyphicon glyphicon-menu-right"></span>-->
4
+ <!--</div>-->
5
+ <div id="savebut" class="no-close row android-repair-order" style="background-color: #f9f9f9">
6
+ <div class="col-sm-12 col-xs-12" >
7
+ <ul class="nav nav-tabs" style="background:#ffffff;overflow-y: hidden">
8
+ <li v-for="row in tabs" @click="tabSelect(row,$index)" :class="{active1: row.complete === componentName}"
9
+ v-if="$index < number+1 && $index < faultshow.number" >
10
+ <a href="#" style="background-color: #ffffff;color: #666666;font-size: 16px;font-family:SimSun" :class="row.class">
11
+ <span class="spanboder">{{row.header}}</span>
12
+ <img class="butt2" :src="imgback(row.complete === componentName,row.header === header)"></a>
13
+ <p></p>
14
+ </li>
15
+ <div class="col-sm-12 col-xs-12 repair-bg" v-show="routeShow">
16
+ <route name='repair' :reuse="false"></route>
17
+ </div>
18
+ <li v-for="row in tabs" @click="tabSelect(row,$index)" :class="{active1: row.complete === componentName}"
19
+ v-if="$index > number && $index < faultshow.number ">
20
+ <a href="#" style="background-color: #ffffff;color: #666666;font-size: 16px;font-family:SimSun" :class="row.class">
21
+ <span class="spanboder">{{row.header}}</span>
22
+ <img class="butt2" :src="imgback(row.complete === componentName,row.header === header)"></a>
23
+ <p></p>
24
+ </li>
25
+ <div class="col-sm-12 col-xs-12 repair-bg" v-if="actionEnabled ">
26
+ <div class="auto select-overspread form-horizontal repair-bg " style="padding-bottom:5px;">
27
+ <div class="bq-parent">
28
+ <blockquote class="blockquote">
29
+ <p>安检上传</p>
30
+ </blockquote>
31
+ </div>
32
+ <div class="panel panel-default auto repair-info-content">
33
+ <div class="panel-body ">
34
+ <div class="row auto">
35
+ <!--<div class="col-xs-12 col-sm-12 col-md-12" :style="timeSet(this.isneedDate)?'':'display:none'">-->
36
+ <!--<label>请输入超期原因:</label><br/>-->
37
+ <!--<textarea style="width: 100%;" v-model=""></textarea>-->
38
+ <!--</div>-->
39
+ <div class="col-xs-12 col-sm-12 col-md-12 flex-between" style="margin-top: 20px;">
40
+ <div class="col-xs-3 col-sm-3 col-md-3" v-if="parentPage=='CurrentCreate'">
41
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="save('temp')">
42
+ 临时保存
43
+ </button>
44
+ </div>
45
+ <div class="col-xs-3 col-sm-3 col-md-3">
46
+ <button class="col-sm-3 btn btn-primary" @click="save('finish')">
47
+ 本地缓存
48
+ </button>
49
+ </div>
50
+ <div class="col-xs-3 col-sm-3 col-md-3">
51
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="uploadCheckPaper">
52
+ 上传
53
+ </button>
54
+ </div>
55
+ <div v-if="show_torepair">
56
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="showmod">
57
+ 转维修
58
+ </button>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </ul>
67
+ </div>
68
+ <modal :show.sync="showModal2" :backdrop="false" style="font-size: 15px">
69
+ <div slot="modal-header" class="modal-header upuserinfo_sel">
70
+ <h4 class="modal-title">
71
+ 转维修
72
+ </h4>
73
+ </div>
74
+ <div slot="modal-body" class="modal-body">
75
+ <div class="row">
76
+ <ol style="border: 1px solid green;padding: 15px 0 15px 20px">
77
+ <li v-for="row in repairDefect.data" >{{row}}</li>
78
+ </ol>
79
+ </div>
80
+ <div class="row" style="margin-top: 10px">
81
+ <label class="font_normal_body">派发类型</label>
82
+ <v-select :value.sync="selectData.dispatchType" :value-single="true" v-model="selectData.dispatchType"
83
+ :options='dispatchTypeOptions' placeholder='派发类型'
84
+ close-on-select>
85
+ </v-select>
86
+ </div>
87
+ <div class="row" style="margin-top: 10px" v-if="selectData.dispatchType=='派发给维修员'">
88
+ <label class="font_normal_body">维&ensp;修&ensp;员</label>
89
+ <v-select
90
+ :value.sync="selectData.f_repairman"
91
+ :value-single="true"
92
+ :options='repairers'
93
+ placeholder='请选择维修员'
94
+ close-on-select></v-select>
95
+ </div>
96
+ <div class="row" style="margin-top: 10px" v-if="selectData.dispatchType=='派发给站点'">
97
+ <label class="font_normal_body">站&ensp;&ensp;&ensp;&ensp;点</label>
98
+ <right-tree
99
+ islist
100
+ :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"
101
+ @re-res="getSiteRes"></right-tree>
102
+ </div>
103
+ <!--<div class="row" style="margin-top: 10px">
104
+ <label class="font_normal_body">报修类型</label>
105
+ <v-select :value.sync="selectData.f_repairtype"
106
+ class="select select_list"
107
+ :value-single="true"
108
+ :options='repairTypeOptions'
109
+ close-on-select>
110
+ </v-select>
111
+ </div>-->
112
+ <div class="row" style="margin-top: 10px">
113
+ <label class="font_normal_body" >备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注</label>
114
+ <div class="btn-group" style="width:60%">
115
+ <textarea style="width:100%;height: 100px" v-model="selectData.f_remarks"></textarea>
116
+ </div>
117
+ </div>
118
+ </div>
119
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
120
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="rectification">转维修</button>
121
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel1">取消</button>
122
+ </div>
123
+ </modal>
124
+ </div>
125
+ </template>
126
+
127
+ <script>
128
+ // 户内维修
129
+ import Vue from 'vue'
130
+ import * as Util from '../../Util'
131
+ // import DoorService from './DoorService'
132
+ // import Pipeline from './Pipeline'
133
+ // import DeviceService from './DeviceService'
134
+ // import TroubleRemoval from './TroubleRemoval'
135
+ // import FirstGasCheck from './FirstGasCheck'
136
+ // import RepairMatterInfo from './RepairMatterInfo'
137
+ // import TelChangeMatter from './TelChangeMatter'
138
+ import { HttpResetClass } from 'vue-client'
139
+ import co from 'co'
140
+ import $ from "jquery";
141
+ let loadParamGem = async function (self) {
142
+ await self.$LoadParams.loadParam()
143
+ }
144
+
145
+ export default {
146
+ title: '安检单',
147
+ props: ['f_plan_id', 'item', 'role','parentPage','source'],
148
+ // props: ['f_plan_id', 'role'],
149
+ data() {
150
+ return {
151
+ //测试数据
152
+ // f_plan_id:'',
153
+ // role:'inspect',
154
+ // item:{"f_approved_time":null,"f_user_family_remarks":null,"f_street":"测试街道","f_repair_approved_time":null,
155
+ // "f_user_type":null,"f_approved_by":null,"f_card_id":null,"f_remark":null,"f_building":"1","f_batch_number":null,
156
+ // "f_idnumber":null,"f_state":"未检","id":"0EFE0EE2-B155-46F9-8DE0-38C022664A4D","f_complete":null,"f_check_state":null,"f_last_check_state":"拒检",
157
+ // "f_user_inhome_time":null,"f_residential_area":"测试小区1","version":1,"f_processid":null,"f_last_check_result":"{\"result\":\"正常\",\"data\":[]}",
158
+ // "f_area":null,"f_usegas":null,"f_user_phone":"16566546548","f_slice_area":"营业大区","f_approved":"未审核","f_upload_state":"未传","f_user_check_time":null,
159
+ // "f_unit":"1","f_user_spare_phone":null,"f_last_check_date":null,"f_userproperties":null,"f_userfile_id":null,"f_prearranged_date":null,"f_filialeid":"453",
160
+ // "f_branch":null,"f_orgstr":null,"f_plan_year":2020,"f_orgid":null,"f_approval_notified":null,"f_plan_month":4,"f_approved_note":null,"f_filialeids":null,
161
+ // "f_floor":"1","f_flag":null,"f_repair_approved_note":null,"f_userinfo_code":"00000002","f_create_time":"2020-05-10 18:56:03","f_meter_no":"","f_station":null,
162
+ // "f_repair_approved":"未审核","f_no_checkplan":"有计划安检","f_plan_name":"关于","f_repair_approved_by":null,"f_room":"1","f_office":null,"f_comments":null,
163
+ // "f_address":"兰山街道泰盛小区1栋1单元1层1室","id_back":null,"f_userinfoid":"2","f_subcompany":null,"f_addressid":null,"f_user_phone2":null,
164
+ // "f_user_equipment_remarks":null,"f_plan_id":"0819ea6707ad4d9dad217c06a87f4227","f_user_name":"用户二",
165
+ // "f_plan_meters":[{"f_weizhi":null,"f_flow_direction":"右表","f_metertitles":"","f_prior_reading":0,"f_meter_no":"2119035714","f_collection_type":"按金额","f_aliasname":"先锋系统结算物联网表","f_meter_type":"物联网表","version":3,"f_maker":null,"f_metergasnums":0,"f_total_fee":100,"f_diaphgram_size":"G2.5","f_total_gas":0,"id":18663},{"f_weizhi":null,"f_flow_direction":"右表","f_metertitles":"","f_prior_reading":0,"f_meter_no":"2118999901","f_collection_type":"按金额","f_aliasname":"先锋系统结算物联网表","f_meter_type":"物联网表","version":1,"f_maker":null,"f_metergasnums":0,"f_total_fee":0,"f_diaphgram_size":"G2.5","f_total_gas":0,"id":18663}]
166
+ // },
167
+
168
+ data: {
169
+ f_devices: [],
170
+ f_defect_content:'',
171
+ f_recording1_path:'',
172
+ f_visit_number:'',
173
+ f_remark:''
174
+ },
175
+ imgsnum:this.$appdata.getSingleValue('安检总体照片数量') ? this.$appdata.getSingleValue('安检总体照片数量'):1, // 安检整体照片默认必须拍1张
176
+ updateuserphone:false, //安检时是否更新用户电话
177
+ updatemetermodel:false, //安检时是否更新表型号
178
+ updatemeternumber:false, //安检时是否更新表号
179
+ beforephone:'',
180
+ isUpload:false,
181
+ show_torepair: false,
182
+ onlySave:true, //判断保存还是保存并上传
183
+ livedispose:'',
184
+ refuseinspection:'', // 拒捡拍照是否提示
185
+ notencountered:'', // 到访不遇拍照是否提示
186
+ startClick:false, //开始安检按钮是否可点击
187
+ isStrat: false, //是否开始安检
188
+ checkResult:{},//查询结果
189
+ newcheckResult:{},
190
+ repairDefect : {
191
+ result: '正常',
192
+ data: []
193
+ },
194
+ rowCodata:{},
195
+ repairers: [],
196
+ timer: null,
197
+ showModal: false,
198
+ showModal2:false,
199
+ pic_to_be_viewed: '',
200
+ showBack:true,
201
+ devices: [],
202
+ f_devices : [],
203
+ isToRepair:false,
204
+ clickBack:true, //是否点击返回按钮
205
+ isSafeCheckToRepair:false,//是否转维修
206
+ Url:this.$androidUtil.getProxyUrl(),
207
+ detail:{},
208
+ defectDevice:{},
209
+ user:{},
210
+ is_has_jingweidu: this.$appdata.getSingleValue('照片水印加经纬度') || 'false',
211
+ dispatchTypeOptions: [{label: '派发给维修员', value: '派发给维修员'},{label: '派发给站点', value: '派发给站点'}],
212
+ selectData:{
213
+ dispatchType:'派发给维修员',
214
+ f_repairman:'',
215
+ f_remarks:'',
216
+ f_repairtype:'整改'
217
+ },
218
+ model: { //转维修数据
219
+ // 一次派单
220
+ serviceacitivity: [{
221
+ f_service_acitivity_type: '派单'
222
+ }],
223
+ f_source:'安检',
224
+ f_service_id: '',
225
+ f_contact_phone: '',
226
+ f_meetunit: '',
227
+ f_phone: '',
228
+ f_user_name: '',
229
+ f_address: '',
230
+ f_repair_date: Util.toStandardTimeString(),
231
+ f_card_id: '',
232
+ // f_department: '', 站点选择
233
+ f_reciever:'',
234
+ f_remarks: '',
235
+ f_user_type: '',
236
+ f_area: '',
237
+ f_unit_name:'',
238
+ f_street: '',
239
+ f_residential_area: '',
240
+ f_building: '',
241
+ f_unit: '',
242
+ f_floor: '',
243
+ f_room: '',
244
+ aState: null,
245
+ f_repairtype: '',
246
+ f_repairitems:{},
247
+ },
248
+ repairitems:[],
249
+ meading:'转站点',
250
+ config: {
251
+ "燃气表":{
252
+ "checkmust":true,
253
+ "index":1,
254
+ "items":{
255
+ //"燃气表照片":{"index":1,"type":"picture","remark":"(拍摄清晰的表具编号、字轮数、剩余气量等)"},
256
+ "基表编号":{"index":1,"type":"string","readonly":true},
257
+ "气表型号":{"index":2,"type":"string","readonly":true},
258
+ "气表品牌":{"index":3,"type":"string","readonly":true},
259
+ "进气方向":{"index":4,"type":"string","readonly":true},
260
+ "初始表底":{"index":5,"type":"number","isshow":false,"readonly":true},
261
+ "上期表读数":{"index":6,"type":"number","readonly":true,isshow:false},
262
+ "累购气量":{"index":7,"type":"number","readonly":true},
263
+ "累购金额":{"index":7,"type":"number","readonly":true},
264
+ "已用气量":{"index":8,"type":"number","checkmust": false},//基表数
265
+ "已用金额":{"index":8,"type":"number","checkmust": false},
266
+ "剩余气量":{"index":9,"type":"number","checkmust": false},//累购-已用
267
+ //显示屏数 --实际剩余气量
268
+ "剩余金额":{"index":9,"type":"number","checkmust": false},
269
+ "气量异常差值":{"index":10,"type":"number","readonly": true},
270
+ "金额异常差值":{"index":10,"type":"number","readonly": true},
271
+ "表箱号":{"index":11,"type":"string","readonly": true},
272
+ "燃气表照片":{"index":12,"type":"picture","checkmust": false}
273
+ }
274
+ // 注意,配置项的index必须与上面的固定配置保持'顺序'
275
+ },
276
+ // "燃气表2":{
277
+ // "checkmust":true,
278
+ // "index":2,src
279
+ // "items":{
280
+ // "燃气表照片":{"index":1,"type":"picture"},
281
+ // "表品牌":{"index":2,"type":"string","readonly":true},
282
+ // "表号":{"index":3,"type":"string","readonly":true},
283
+ // "表封号":{"index":4,"type":"number","readonly":true},
284
+ // "表型号":{"index":5,"type":"string","readonly":true},
285
+ // "位置":{"index":6,"type":"string","readonly":true},
286
+ // "表底数":{"index":7,"type":"number","readonly":true},
287
+ // "累购气量":{"index":8,"type":"number","readonly":true},
288
+ // "累购金额":{"index":8,"type":"number","readonly":true}
289
+ // }
290
+ // }
291
+ },
292
+ // 维修项
293
+ isneedDate:'',
294
+ routeShow:true,
295
+ number:0,
296
+ shupingshow:false,
297
+ pipeline: {},
298
+ details: [],
299
+ ids: '',
300
+ savevalid: {
301
+ uservalid: false,
302
+ doorvalid: true,
303
+ changetable: false
304
+ },
305
+ doordetails: {},
306
+ devicedetails: {},
307
+ cookdetails: {},
308
+ componentName: 'safecheck-userinfo',
309
+ header:'客户信息',
310
+ tabs: [
311
+ // 参数全部设置成空,在ready时,等model处理好了,再添加
312
+ {
313
+ header: '客户信息',complete:'safecheck-userinfo',class: 'repair-info-class', props: null
314
+ },
315
+ {
316
+ header: '拍照签名',complete:'paper-feedback', class: 'outlay-class', props: null
317
+ }
318
+ ],
319
+ faultshow:{
320
+ number : 8
321
+ } // 控制 故障汇总 在 菜单里显示与否,
322
+ }
323
+ },
324
+ computed: {
325
+ actionEnabled: {
326
+ get() {
327
+ return this.role == 'inspect'
328
+ }
329
+ }
330
+ },
331
+ methods: {
332
+ showmod(){
333
+ // this.saveNoclick()
334
+ let errString = this.errorVerify()
335
+ if (errString) {
336
+ console.log(errString)
337
+ console.log('Vue.android',Vue.android)
338
+ console.log('this.isUpload',this.isUpload)
339
+ if (Vue.android){
340
+ this.$showMessage(errString)
341
+ }
342
+ return
343
+ }
344
+ //清空转维修列表重新进行数据组织
345
+ this.repairDefect = {
346
+ result: '正常',
347
+ data: []
348
+ }
349
+ this.data.f_complete = '已完成'
350
+ this.$set('data.f_offsite_time', Util.toStandardTimeString())
351
+ this.assemblyCodata()
352
+ if(this.repairDefect.result=='正常'){
353
+ this.$showMessage("未发现有选择需要转维修的隐患,请检查填写的数据。如需转维修请在处理方式中选择 '转维修' !")
354
+ return
355
+ }
356
+ console.log("准备保存!")
357
+ this.disableTimer()
358
+ this.getEmp()
359
+ this.showModal2=true
360
+ },
361
+ cancel1(){
362
+ this.showModal2=false
363
+ this.selectData={
364
+ dispatchType:'派发给维修员',
365
+ f_repairman:'',
366
+ f_remarks:'',
367
+ f_repairtype:'整改'
368
+ }
369
+ },
370
+ getSiteRes(obj) {
371
+ console.log('siteRes ---> ')
372
+ console.log(obj)
373
+ if(obj.resids[0]){
374
+ this.selectData.f_meetunit = obj.res.join('.')
375
+ this.selectData.f_reciever = obj.resids.join('.')
376
+ this.selectData.f_outlets = obj.res[obj.res.length - 1]
377
+ }else {
378
+ this.selectData.f_meetunit = ''
379
+ this.selectData.f_reciever = ''
380
+ this.selectData.f_outlets = ''
381
+ }
382
+ },
383
+ rectification(){
384
+ if(this.selectData.dispatchType){
385
+ if(this.selectData.dispatchType=='派发给站点'){
386
+ if(!this.selectData.f_reciever){
387
+ this.$showMessage('请选择部门!')
388
+ return
389
+ }
390
+ }else{
391
+ if(!this.selectData.f_repairman){
392
+ this.$showMessage('请选择维修员!')
393
+ return
394
+ }
395
+ }
396
+ }else {
397
+ this.$showMessage('请选择派发类型!')
398
+ return
399
+ }
400
+ /*if(!this.selectData.f_repairtype){
401
+ this.$showMessage('请选择报修类型!')
402
+ return
403
+ }*/
404
+ //关闭录音
405
+ this.closely(false) // 保存本地,不删除录音文件暂停录音
406
+ let act={}
407
+ let toRepair=''
408
+ if(this.selectData.dispatchType=='派发给站点'){
409
+ act={f_meetunit:this.selectData.f_meetunit,f_reciever:this.selectData.f_reciever,f_service_acitivity_type:'派单'}
410
+ toRepair=null
411
+ }else{
412
+ console.log('派发给维修员---------'+this.selectData.f_repairman)
413
+ act={f_meetunit:'',f_reciever:this.selectData.f_repairman,f_service_acitivity_type:'派单'}
414
+ toRepair='一级派单'
415
+ }
416
+ let repData={
417
+ toRepair:toRepair,
418
+ activity:act,
419
+ deps:Vue.user.deps,
420
+ depids:Vue.user.depids,
421
+ f_remarks:this.selectData.f_remarks,
422
+ f_repairtype:this.selectData.f_repairtype,
423
+ f_attendant: Vue.user.name,
424
+ loginUser:{name:Vue.user.name,ename:Vue.user.id,id:Vue.user.id},
425
+ }
426
+ this.rowCodata.istoRepair='转维修'
427
+ this.rowCodata.repData=repData
428
+ console.log("当前组装好的转维修数据--"+JSON.stringify(repData))
429
+ this.onlySave = false
430
+ this.save()
431
+ },
432
+ // 获取维修员
433
+ getEmp() {
434
+ this.repairers=[]
435
+ let per = {source: 'this.getRights().where(row.getType()==$user$).where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1))', userid: `${Vue.user.id}`}
436
+ let http = new HttpResetClass()
437
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {data: per}, {resolveMsg: null, rejectMsg: null}).then((res) => {
438
+ res.data.forEach((user)=>{
439
+ this.repairers.push({label:user.name, value: user.name})
440
+ })
441
+ })
442
+ },
443
+ closely(isdelete){
444
+ try {
445
+ var startOrStopAudioClipStr;
446
+ if (isdelete===true) {
447
+ //tag
448
+ startOrStopAudioClipStr= HostApp.startOrStopAudioClip("----",'停止并删除录音') //停止并删除录音
449
+ }else {
450
+ //tag
451
+ startOrStopAudioClipStr= HostApp.startOrStopAudioClip("----",'停止录音') //停止录音
452
+ }
453
+ if (startOrStopAudioClipStr.code == 200) {
454
+ //tag
455
+ return true;
456
+ }else {
457
+ return false;
458
+ }
459
+ } catch (e) {
460
+ console.error("关闭录音方法异常")
461
+ console.error(e)
462
+ return false;
463
+ }
464
+ },
465
+ // 录音方法
466
+ record() {
467
+ //tag
468
+ if (this.role != 'inspect') {
469
+ if (this.data.f_recording1_path != '') {
470
+ window.location = "/rs/file"+this.data.f_recording1_path
471
+ }
472
+ } else {
473
+ //tag
474
+ let fileName
475
+ if (!this.data.f_recording1_path) {
476
+ fileName = Util.guid() + '.amr'
477
+ } else {
478
+ fileName = Util.getFileName(this.data.f_recording1_path)
479
+ }
480
+ //HostApp.__this__ = this
481
+ /*调用无限制录音模块*/
482
+ let startOrStopState = HostApp.startOrStopAudioClip(fileName,"开始录音")
483
+ //tag
484
+ if (startOrStopState.code == 200) {
485
+ this.data.f_recording1_path = "file:///storage/emulated/0/safecheck/" + fileName
486
+ //tag
487
+ return true;
488
+ }else {
489
+ return false;
490
+ }
491
+ }
492
+ },
493
+ saveNoclick() {
494
+ // 禁用点击事件
495
+ $("#savebut").addClass("noclickbut");
496
+ //tag
497
+
498
+ // 5秒后启用点击事件
499
+ setTimeout(function(){
500
+ $("#savebut").removeClass("noclickbut");
501
+ },5000);
502
+ },
503
+ timeSet(val){
504
+ if (!val){
505
+ return
506
+ }
507
+ let time =new Date(val).getTime()
508
+ let time2=new Date().getTime()
509
+ if (time2>time) {
510
+ return true
511
+ }
512
+ },
513
+ imgback(val,isheader){
514
+ if(val && this.routeShow && isheader){
515
+ return require('../../../assets/xiangxia1.png')
516
+ }else{
517
+ return require('../../../assets/xiangyou1.png')
518
+ }
519
+ },
520
+ changediv(val){
521
+ //tag
522
+ return val
523
+ },
524
+ // 选择tab
525
+ tabSelect (item,number) {
526
+ this.header = item.header
527
+ //tag
528
+ //tag
529
+ //tag
530
+ //tag
531
+ // 处理关闭/显示 内容
532
+ if(this.number == number && !this.routeShow ){
533
+ this.routeShow = true
534
+ }else if(this.number == number && this.routeShow){
535
+ this.routeShow = false
536
+ }else if(this.number != item.complete){
537
+ this.routeShow = true
538
+ }
539
+ this.number = number
540
+ this.componentName = item.complete
541
+ //tag
542
+ if(item.complete == 'safecheck-devices'){
543
+ //tag
544
+ if(item.header != '燃气表' && this.data['device'+item.number].length == 0){
545
+ this.data['device' + item.number].push({})
546
+ }
547
+ //tag
548
+ //tag)
549
+ let idx=this.data['device' + item.number].length - 1
550
+ let itemprops = {
551
+ config:this.config,
552
+ device:this.devices[item.number-1],
553
+ idx:idx,
554
+ role:'inspect'
555
+ }
556
+ //tag
557
+ //tag)
558
+ //tag)
559
+ //tag
560
+ if(this.routeShow){
561
+ this.$goto(item.complete, itemprops, 'repair')
562
+ //tag
563
+ }
564
+ }else{
565
+ //tag
566
+ if(this.routeShow){
567
+ this.$goto(item.complete, {userinfo:this.data}, 'repair')
568
+ }
569
+ }
570
+ this.shupingshow = true
571
+ },
572
+ // 给组件添加参数
573
+ getImgPath() {
574
+ for (var i = 0; i < this.model.serviceacitivity[0].imgs.length; i++) {
575
+ this.ids += this.model.serviceacitivity[0].imgs[i].imgid + ','
576
+ }
577
+ this.ids = this.ids.substring(0, this.ids.length - 1)
578
+ if(this.ids){
579
+ this.getImgGen();
580
+ }
581
+ },
582
+ getImgGen(){
583
+ let http = new HttpResetClass()
584
+ http.load('POST','rs/sql/tel_singleTable_OrderBy', {data: {
585
+ items: '*',
586
+ tablename: 't_files',
587
+ condition: `id in (${this.ids})`,
588
+ orderitem: 'id'
589
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
590
+ for (let i = 0; i < res.data.length; i++) {
591
+ for (let j = 0; j < this.model.serviceacitivity[0].imgs.length; j++) {
592
+ //tag)
593
+ //tag
594
+ if (res.data[i].id.toString() === this.model.serviceacitivity[0].imgs[j].imgid) {
595
+ this.model.serviceacitivity[0].imgs[j] = Object.assign({}, res.data[i], this.model.serviceacitivity[0].imgs[j])
596
+ }
597
+ }
598
+
599
+ }
600
+ })
601
+ },
602
+
603
+ sortDetails(){
604
+ for (let i = 0; i < this.details.length; i++) {
605
+ if (this.details[i].details.length) {
606
+ for (let j = 0; j < this.details[i].details.length; j++) {
607
+ if (this.details[i].details[j].f_type === 'a') {
608
+ this.doordetails = {details: this.details[i].details}
609
+ break
610
+ }
611
+ if (this.details[i].details[j].f_type === 'b') {
612
+ this.devicedetails = {details: this.details[i].details}
613
+ break
614
+ }
615
+ if (this.details[i].details[j].f_type === 'c') {
616
+ this.cookdetails = {details: this.details[i].details}
617
+ break
618
+ }
619
+ }
620
+ }
621
+ }
622
+ },
623
+ // 复制数据
624
+ back () {
625
+ let _this = this
626
+ if(this.issee){
627
+ _this.$back()
628
+ return
629
+ }
630
+ this.$showMessage('所填写内容将不可恢复!', ['confirm', 'cancel']).then((res) => {
631
+ if (res === 'confirm') {
632
+ this.closely()
633
+ _this.$back()
634
+ }
635
+ })
636
+ },
637
+ confirm(){
638
+ this.$dispatch('confirm')
639
+ },
640
+ tick() {
641
+ this.timer = null
642
+ this.data.f_offsite_time = Util.toStandardTimeString()
643
+ this.timer = window.setTimeout(this.tick, 1000)
644
+ },
645
+ getRepairState() {
646
+ let repaired = true
647
+ this.data.f_defects.forEach((defect) => {
648
+ repaired = repaired & (defect.f_ratification == '已处理')
649
+ })
650
+ return repaired
651
+ },
652
+ verifyRepairDefects() {
653
+ this.data.f_repair_date = Util.toStandardTimeString()
654
+ this.data.f_repaired = this.getRepairState() ? '已修' : '在修'
655
+ },
656
+ errorVerify() {
657
+ let hasError = this.verifyState()
658
+ if(hasError)
659
+ return hasError
660
+
661
+ if(this.data.f_entry_status != '入户' || this.data.f_usegas == '未用气')
662
+ return null
663
+ hasError = this.verifyUser()
664
+ if(hasError)
665
+ return hasError
666
+ hasError = this.verifyDevices()
667
+ if(hasError)
668
+ return hasError
669
+ hasError = this.verifyFeedback()
670
+ if(hasError)
671
+ return hasError
672
+ },
673
+ verifyState() {
674
+ if(Vue.android && this.data.f_usegas == '未用气' && (this.data.f_nongasuser_path == Vue.nopic || this.data.f_nongasuser_path == ''))
675
+ return '未使用天然气则必须拍照'
676
+ if(Vue.android && this.data.f_entry_status == '到访不遇' && this.notencountered && (this.data.f_noanswer_path == Vue.nopic || this.data.f_noanswer_path == ''))
677
+ return '到访不遇必须拍照'
678
+ if(Vue.android && this.data.f_entry_status == '拒检' && this.refuseinspection && (this.data.f_rejectcheck_path == Vue.nopic || this.data.f_rejectcheck_path == ''))
679
+ return '拒捡必须拍照'
680
+ },
681
+ verifyUser() {
682
+ //tag
683
+ //tag
684
+ //tag)
685
+ let prefix = '用户基本信息:'
686
+ if(Util.required(this.data.f_user_name))
687
+ return prefix + '用户名必须输入'
688
+ if(!(/^\d{11}$/.test(this.data.f_user_phone.trim()))) {
689
+
690
+ return '请输入正确的电话号码'
691
+ }
692
+ // if(Util.required(this.data.f_residential_area))
693
+ // return prefix + '小区名称必须输入'
694
+ if(Util.required(this.data.f_address))
695
+ return prefix + '地址必须输入'
696
+ },
697
+ verifyDevices() {
698
+ for (let dev in this.config) {
699
+ if (this.config[dev].checkmust == true) {
700
+ let error = true
701
+ for(let device in this.data) {
702
+ if (device.startsWith("device")) {
703
+ for (let item in this.data[device]) {
704
+ if (this.data[device].length != 0 && this.data[device][item].f_device_type == dev) {
705
+ error = false
706
+ }
707
+ }
708
+ }
709
+ }
710
+ if (error) {
711
+ return "请检查" + dev
712
+ }
713
+ }
714
+ }
715
+
716
+ for (let dev in this.config) {
717
+ for(let device in this.data) {
718
+ if (device.startsWith("device")) {
719
+ for (let item in this.data[device]) {
720
+ //检查每一条安检结果
721
+ if (this.data[device].length != 0 && this.data[device][item].f_device_type == dev) {
722
+ for (let i in this.data[device][item].f_items) {
723
+ for (let it in this.config[dev].items) {
724
+ if (it == this.data[device][item].f_items[i].f_item_name) {
725
+ let check=false
726
+ if (!this.data[device][item].f_items[i].f_item_value){
727
+ check=true
728
+ }else if (Array.isArray(this.data[device][item].f_items[i].f_item_value)){
729
+ if (this.data[device][item].f_items[i].f_item_value.length==0){
730
+ check=true
731
+ }
732
+ }
733
+
734
+ if(this.config[dev].items[it].type=='picture' && this.config[dev].items[it].checkmust == true && !this.data[device][item].f_items[i].f_path){
735
+ return dev + (this.data[device].indexOf(this.data[device][item]) + 1) + this.data[device][item].f_items[i].f_item_name + "未检查"
736
+ }
737
+ if (this.config[dev].items[it].type !='picture' && this.config[dev].items[it].checkmust == true && check) {
738
+ return dev + (this.data[device].indexOf(this.data[device][item]) + 1) + this.data[device][item].f_items[i].f_item_name + "未检查"
739
+ }
740
+ }
741
+ }
742
+ //检查安检下拉结果
743
+ if (this.data[device][item].f_items[i].type == 'selector' || this.data[device][item].f_items[i].type == 'radio') {
744
+ if (this.data[device][item].f_items[i].f_is_defect == true && this.data[device][item].f_items[i].f_path == Vue.nopic) {
745
+ return dev + (this.data[device].indexOf(this.data[device][item]) + 1) + this.data[device][item].f_items[i].f_item_name + this.data[device][item].f_items[i].f_item_value + "选中必须拍照"
746
+ }
747
+ }
748
+ }
749
+ }
750
+ }
751
+ }
752
+ }
753
+ }
754
+ },
755
+ verifyFeedback() {
756
+ let prefix = '拍照签名:'
757
+ //tag)
758
+ if(Vue.android && (!this.data.f_overall_imgs || this.data.f_overall_imgs.length < this.imgsnum) && this.data.f_entry_status == '入户')
759
+ return prefix + `必须有${this.imgsnum}安检总体照片`
760
+ if(Vue.android && (!this.data.f_sign_path || this.data.f_sign_path.length == 0) && this.data.f_entry_status == '入户')
761
+ return prefix + '必须有用户签名'
762
+ if(Vue.android && this.data.f_defect_notified && this.data.f_notified_path == Vue.nopic)
763
+ return prefix + '下发安检通知书则必须给通知书拍照'
764
+ if(Vue.android && this.data.f_blacklist && this.data.f_blocking_cause=='')
765
+ return prefix + '请填写拉黑原因'
766
+ if(!this.data.f_client_evaluation && this.data.f_entry_status == '入户')
767
+ return prefix + '请选择服务评价'
768
+ },
769
+ getAllDefect() {
770
+ let checkResults = {
771
+ result: '正常',
772
+ data: []
773
+ }
774
+ let value = ''
775
+ let codata = JSON.parse(JSON.stringify(this.data))
776
+ //tag)
777
+ //tag)
778
+ codata.f_devices = []
779
+ this.f_devices = []
780
+ for (let device in codata) {
781
+ let f_device_type
782
+ if (device.startsWith("device")) {
783
+ //tag)
784
+ let hasOther = ''
785
+ let otherValue = null
786
+ for (let item in codata[device]) {
787
+ if(typeof codata[device][item]=='function'){
788
+ continue
789
+ }
790
+ codata[device][item].f_create_time = Util.toStandardTimeString()
791
+ if (codata[device].length > 1) {
792
+ let j = Number.parseInt(item) + 1
793
+ f_device_type = `${codata[device][item].f_device_type}${j}`
794
+ } else {
795
+ f_device_type = codata[device][item].f_device_type
796
+ }
797
+ //tag
798
+ //tag
799
+ //tag)
800
+ //tag)
801
+ if(item == 'sum' || item == 'removeEmpty'){
802
+ continue
803
+ }
804
+ for (let i = 0; i < codata[device][item].f_items.length ; i++) {
805
+ //tag
806
+ if(i == 'sum' || i == 'removeEmpty'){
807
+ continue
808
+ }
809
+ //tag)
810
+ var items = codata[device][item].f_items[i]
811
+ items.f_create_time = Util.toStandardTimeString()
812
+ //tag)
813
+ items.f_item_lists = []
814
+ //tag)
815
+ // //tag)
816
+ // //tag} name => ${JSON.stringify(items.f_item_name)} value => ${JSON.stringify(items.f_item_value)}`)
817
+ // console.log(`f_is_defect => ${this.config[codata[device][item]
818
+ // .f_device_type]
819
+ // .items[items.f_item_name]
820
+ // .options
821
+ // .find((option)=>option.data === items.f_item_value)
822
+ // .map((option)=>option.f_is_defect)}`)
823
+ // if (items.f_is_defect && (items.f_is_defect == true || items.f_is_defect == 'true')) {
824
+ // //tag
825
+ // checkResults.result = '有隐患'
826
+ // //tag)
827
+ // //tag)
828
+ // // this.$set('checkResult.' + items.f_item_name, items.f_item_value)
829
+ // this.checkResult[items.f_item_name] = items.f_item_value
830
+ // //tag)
831
+ // // this.$set('checkResultsss.' + items.f_item_name, `${f_device_type}${items.f_item_value}`)
832
+ // // //tag)
833
+ // }
834
+ if (items.type == 'selector') {
835
+ items.selected = []
836
+ } else if (items.type == 'inputSelector') {
837
+ items.selected = ''
838
+ }
839
+ //遍历配置项 将所选隐患项的配置信息放入保存的数据中
840
+ let f_is_defect //是否是隐患
841
+ let f_defect_level //是否是隐患
842
+ let f_item_name = items.f_item_name
843
+ let f_item_value
844
+ let f_is_eliminate //隐患是否消除
845
+ let f_meternumber = ''
846
+ let f_user_defects = [] // 用户所有隐患
847
+ //tag
848
+ //tag
849
+ if (items.type == 'selector' || items.type == 'checkbox' || items.type == 'radio') {
850
+ for (let i in items.f_item_value) {
851
+ if(typeof items.f_item_value[i]=='function'){
852
+ continue
853
+ }
854
+ let configItems = this.config[codata[device][item].f_device_type].items[f_item_name]
855
+ //tag)
856
+ for (let k in configItems.options) {
857
+ if(typeof configItems.options[k]=='function'){
858
+ continue
859
+ }
860
+ //tag)
861
+ if (items.f_item_value[i] === configItems.options[k].data) {
862
+
863
+ f_is_defect = configItems.options[k].isdefect
864
+ f_item_value = items.f_item_value[i]
865
+ f_defect_level = configItems.options[k].level
866
+
867
+ //tag
868
+ //tag
869
+ //tag
870
+
871
+ if (f_is_defect) {
872
+ if (checkResults.result !== '有隐患') {
873
+ checkResults.result = '有隐患'
874
+ }
875
+ console.log('items'+items)
876
+ if(items.f_deal_dispose=='报修'){
877
+ console.log("检测到需要转维修++++++++++++")
878
+ this.repairDefect.result='未处理'
879
+ this.repairDefect.data.push(`${f_item_name} : ${f_item_value}`)
880
+ }
881
+ if (!this.checkResult.hasOwnProperty(f_device_type+'-'+f_item_name)) {
882
+ //tag
883
+ this.checkResult[f_device_type+'-'+f_item_name] = []
884
+ }
885
+
886
+ //tag
887
+ this.checkResult[f_device_type+'-'+f_item_name].push(f_item_value)
888
+
889
+ }
890
+
891
+ let items_list = {
892
+ f_is_defect: f_is_defect,
893
+ f_item_value: f_item_value,
894
+ f_defect_level: f_defect_level,
895
+ f_is_eliminate: null,
896
+ f_create_time: Util.toStandardTimeString()
897
+ }
898
+ if (!items.f_item_lists) {
899
+ //tag
900
+ items.f_item_lists = []
901
+ //tag)
902
+ if (JSON.stringify(items_list) !== '{}') {
903
+ //tag
904
+ items.f_item_lists.push(items_list)
905
+ }
906
+ } else {
907
+ //tag)
908
+ if (JSON.stringify(items_list) !== '{}') {
909
+ //tag
910
+ items.f_item_lists.push(items_list)
911
+ }
912
+ }
913
+ }
914
+ }
915
+ }
916
+ } else {
917
+ let configItems = this.config[codata[device][item].f_device_type].items[items.f_item_name]
918
+ f_is_defect = items.f_is_defect
919
+ f_defect_level = items.level
920
+ f_item_value = items.f_item_value
921
+ let items_list = {
922
+ f_is_defect: f_is_defect,
923
+ f_item_value: f_item_value,
924
+ f_defect_level: f_defect_level,
925
+ f_create_time: Util.toStandardTimeString()
926
+ }
927
+ if (f_is_defect && f_item_value) {
928
+ items.f_is_defect = true
929
+ if (checkResults.result !== '有隐患') {
930
+ checkResults.result = '有隐患'
931
+ }
932
+ if (!this.checkResult.hasOwnProperty(items.f_item_name)) {
933
+ //tag
934
+ this.checkResult[items.f_item_name] = []
935
+ }
936
+
937
+ //tag
938
+ this.checkResult[items.f_item_name].push(f_item_value)
939
+
940
+ }
941
+ //tag)
942
+ //tag)
943
+ if (!items.f_item_lists) {
944
+ //tag
945
+ items.f_item_lists = []
946
+ if (JSON.stringify(items_list) != '{}') {
947
+ //tag
948
+ items.f_item_lists.push(items_list)
949
+ }
950
+ } else {
951
+ // items.f_item_lists[0].f_item_value = f_item_value
952
+ if (JSON.stringify(items_list) != '{}') {
953
+ //tag
954
+ //tag)
955
+ //tag)
956
+ //tag
957
+ items.f_item_lists.push(items_list)
958
+ }
959
+ }
960
+ }
961
+ if (hasOther !== '' && otherValue !== null) {
962
+ //tag
963
+ this.checkResult[hasOther].push(otherValue)
964
+ hasOther = ''
965
+ otherValue = null
966
+ }
967
+ items.f_item_value = ''
968
+ }
969
+ //tag)
970
+ this.f_devices.push(codata[device][item])
971
+ }
972
+ }
973
+ }
974
+ if (this.checkResult) {
975
+ for (let key in this.checkResult) {
976
+ if(typeof this.checkResult[key]=='function'){
977
+ continue
978
+ }
979
+ // 上次安检结果数据组织
980
+ //tag
981
+ //tag
982
+ let temp = {}
983
+ temp[key] = this.checkResult[key].join(',')
984
+ checkResults.data.push(temp)
985
+ // this.newcheckResult[key] = this.checkResult[key]
986
+ // checkResults.data.push(this.newcheckResult)
987
+ //tag)
988
+ // this.newcheckResult = {}
989
+ }
990
+ this.checkResult = {}
991
+ }
992
+ if (checkResults.data.length > 0) {
993
+ let msg = ''
994
+ for (let a = 0; a < checkResults.data.length; a++) {
995
+ for (let datumKey in checkResults.data[a]) {
996
+ msg += datumKey + ':' + checkResults.data[a][datumKey] + ';'
997
+ }
998
+ }
999
+ this.data.f_defect_text = msg
1000
+ codata.f_defect_text = msg
1001
+ }
1002
+ codata.f_defect_content = JSON.stringify(checkResults)
1003
+ this.data.f_defect_content = JSON.stringify(checkResults)
1004
+ //tag
1005
+ return codata
1006
+ },
1007
+ uploadCheckPaper(){
1008
+ this.saveNoclick()
1009
+ this.closely(false) // 保存本地,不删除录音文件停止录音
1010
+ let errString = this.errorVerify()
1011
+ if (errString) {
1012
+ if (Vue.android){
1013
+ this.$showMessage(errString)
1014
+ }
1015
+ return
1016
+ } else {
1017
+ this.$set('data.f_offsite_time', Util.toStandardTimeString())
1018
+ this.$set('data.f_upload_time', Util.toStandardTimeString())
1019
+ this.$set('data.f_upload_date', Util.toStandardTimeString())
1020
+ //tag
1021
+ this.data.f_complete = '已完成'
1022
+ this.disableTimer()
1023
+ }
1024
+ //tag
1025
+ this.onlySave = false
1026
+ this.assemblyCodata()
1027
+ if (this.repairDefect.result != '正常') {
1028
+ return this.$showMessage('有隐患的处理方式为转维修,请点击转维修')
1029
+ }
1030
+ let res = this.save()
1031
+ // if(res) {
1032
+ // try {
1033
+ // let codata = this.getAllDefect()
1034
+ // //获取微信推送内容
1035
+ // let WxResult = this.getWeixin(codata)
1036
+ // let haslivedispose = this.$androidUtil.bzLogic('getLiveDispose', {
1037
+ // f_check_item_id: this.data.f_check_item_id
1038
+ // })
1039
+ // //如果是转维修上传,则不做校验,上传完成后自动转维修
1040
+ // //tag
1041
+ // //tag
1042
+ // if(!this.isToRepair){
1043
+ // if(haslivedispose.data.length > 0 && (this.livedispose == 'true' || this.livedispose == true)){
1044
+ // //tag
1045
+ // //tag
1046
+ // if(!this.isSafeCheckToRepair){
1047
+ // this.$showMessage('有未处理的隐患,请前往拍照上传中将安检转为维修单!')
1048
+ // return
1049
+ // }
1050
+ // }
1051
+ // }
1052
+ // //tag
1053
+ // for (let key in codata){
1054
+ // if(key.startsWith("device")){
1055
+ // codata[key] = []
1056
+ // }
1057
+ // }
1058
+ // //tag}`)
1059
+ //
1060
+ // //tag
1061
+ // let isStart = true
1062
+ // let res
1063
+ // for (let i in this.f_devices){
1064
+ // res = HostApp.organizeJSON({isStart:isStart,isDevice:true,device:this.f_devices[i]})
1065
+ // if(res.code == 200){
1066
+ // isStart = false
1067
+ // }else{
1068
+ // this.$showMessage("保存失败!")
1069
+ // }
1070
+ // }
1071
+ // let result = HostApp.organizeJSON({
1072
+ // isStart:false,
1073
+ // isJSON:true,
1074
+ // jsonstr:{
1075
+ // f_check_item_id: this.data.f_check_item_id,
1076
+ // f_checker_id: this.data.f_checker_id,
1077
+ // row: codata
1078
+ // }
1079
+ // })
1080
+ // if(result.code == 200){
1081
+ // HostApp.__this__ = this
1082
+ // this.runSyncLogic('上传安检信息','javascript:HostApp.__this__.uploadCallBack()',1)
1083
+ // }
1084
+ //
1085
+ //
1086
+ // // let response = this.$androidUtil.bzLogic('上传安检信息', {
1087
+ // // f_check_item_id: this.data.f_check_item_id,
1088
+ // // f_checker_id: this.data.f_checker_id,
1089
+ // // row: codata
1090
+ // // })
1091
+ // // if (response.code == 200) {
1092
+ // // //tag
1093
+ // // //tag)
1094
+ // // let f_paper_id
1095
+ // // if(response.data != '' && response.data != null){
1096
+ // // f_paper_id = JSON.parse(response.data).id
1097
+ // // }
1098
+ // // this.$set('data.f_paper_id', f_paper_id)
1099
+ // // //tag
1100
+ // // //tag)
1101
+ // // //tag
1102
+ // // //tag)
1103
+ // // for (let device in this.data){
1104
+ // // //tag
1105
+ // // //tag)
1106
+ // // if(device.startsWith("device")){
1107
+ // // for(let devices of this.data[device]) {
1108
+ // // devices.f_paper_id = f_paper_id
1109
+ // // let ret = this.$androidUtil.bzLogic('UpCheckPaperDevices', {
1110
+ // // row: devices
1111
+ // // })
1112
+ // // //tag}`)
1113
+ // // if(ret.code == 200){
1114
+ // // //tag
1115
+ // // devices.f_device_id = JSON.parse(ret.data.f_device_id).id
1116
+ // // }
1117
+ // // //tag
1118
+ // // //tag)
1119
+ // // if (ret.code != 200) {
1120
+ // // //TODO 失败后处理
1121
+ // // // this.isUpload = false
1122
+ // // this.$showMessage("上传失败!")
1123
+ // // return false
1124
+ // // }
1125
+ // // }
1126
+ // // }
1127
+ // // }
1128
+ // // // for (let device of this.f_devices) {
1129
+ // // // device.f_paper_id = f_paper_id
1130
+ // // // //tag
1131
+ // // // //tag)
1132
+ // // // let ret = this.$androidUtil.bzLogic('UpCheckPaperDevices', {
1133
+ // // // row: device
1134
+ // // // })
1135
+ // // // //tag
1136
+ // // // if (ret.code != 200) {
1137
+ // // // //TODO 失败后处理
1138
+ // // // HostApp.alert("上传失败!")
1139
+ // // // return false
1140
+ // // // }
1141
+ // // // }
1142
+ // // let result = this.$androidUtil.bzLogic('FinishUpload',
1143
+ // // {
1144
+ // // f_check_item_id: this.data.f_check_item_id,
1145
+ // // f_userinfo_id: codata.f_userinfoid,
1146
+ // // f_last_check_result: codata.f_defect_content
1147
+ // // })
1148
+ // // if(result.code == 200){
1149
+ // // // this.$showAlert('上传成功!', 'success', 2000)
1150
+ // // this.$showMessage('上传成功!')
1151
+ // // this.isStrat=false
1152
+ // // if(url != "" ){
1153
+ // // this.$resetpost(`${url}`,{data:WxResult})
1154
+ // // }
1155
+ // // return true
1156
+ // // }else{
1157
+ // // // this.isUpload = false
1158
+ // // this.$showMessage("上传失败!")
1159
+ // // return false
1160
+ // // }
1161
+ // // }else{
1162
+ // // // this.isUpload = false
1163
+ // // this.$showMessage("上传失败!")
1164
+ // // return false
1165
+ // // }
1166
+ // }catch (e) {
1167
+ // //tag)
1168
+ // // this.isUpload = false
1169
+ // this.$showMessage("上传失败!")
1170
+ // }
1171
+ // }
1172
+ },
1173
+ //将数据组装提出
1174
+ assemblyCodata(){
1175
+ let codata = this.getAllDefect()
1176
+ console.log(`codata类型 开始组装codeta数据-->${typeof codata}`)
1177
+ console.log(`codata内容-->${JSON.stringify(codata)}`)
1178
+ for (let key in codata) {
1179
+ if (key.startsWith("device")) {
1180
+ console.log('this.data.' + key + JSON.stringify(codata[key]))
1181
+ codata[key] = []
1182
+ }
1183
+ }
1184
+ codata.f_devices = this.f_devices
1185
+ this.rowCodata=codata
1186
+ },
1187
+ save(type) {
1188
+ if (type == 'temp' || type == 'finish') {
1189
+ this.assemblyCodata()
1190
+ }
1191
+ //禁用事件
1192
+ this.saveNoclick()
1193
+ //tag
1194
+ //tag
1195
+ if(type == 'temp'){
1196
+ this.data.f_complete = '未完成'
1197
+ this.rowCodata.f_complete = '未完成'
1198
+ // 关闭录音方法
1199
+ this.closely(true) //临时保存,删除录音文件并暂停录音
1200
+ this.disableTimer()
1201
+ }else {
1202
+ // 关闭录音方法
1203
+ this.closely(false) // 保存本地,不删除录音文件暂停录音
1204
+ let errString = this.errorVerify()
1205
+ if (errString) {
1206
+ //tag
1207
+ //tag
1208
+ //tag
1209
+ if (Vue.android){
1210
+ this.$showMessage(errString)
1211
+ }
1212
+ return
1213
+ } else {
1214
+ this.data.f_complete = '已完成'
1215
+ this.rowCodata.f_complete = '已完成'
1216
+ this.$set('data.f_offsite_time', Util.toStandardTimeString())
1217
+ this.$set('rowCodata.f_offsite_time', Util.toStandardTimeString())
1218
+ this.disableTimer()
1219
+ }
1220
+ }
1221
+ //tag
1222
+ if(this.data.f_blacklist!='是'){
1223
+ delete this.data.f_blocking_cause
1224
+ }
1225
+ if (this.data.f_entry_status == '入户') {
1226
+ this.data.f_rejectchecks_path = []
1227
+ this.data.f_rejectcheck_path = null
1228
+ this.data.f_rejectcheck1_path = null
1229
+ this.data.f_rejectcheck2_path = null
1230
+ this.data.f_noanswers_path=[]
1231
+ this.data.f_noanswer_path = null
1232
+ this.data.f_noanswer1_path = null
1233
+ this.data.f_noanswer2_path = null
1234
+ }else if (this.data.f_entry_status == '到访不遇') {
1235
+ this.data.f_rejectchecks_path = []
1236
+ this.data.f_rejectcheck_path = null
1237
+ this.data.f_rejectcheck1_path = null
1238
+ this.data.f_rejectcheck2_path = null
1239
+ }else if (this.data.f_entry_status == '拒检') {
1240
+ this.data.f_noanswers_path=[]
1241
+ this.data.f_noanswer_path = null
1242
+ this.data.f_noanswer1_path = null
1243
+ this.data.f_noanswer2_path = null
1244
+ }
1245
+ // try {
1246
+ let codata = this.rowCodata
1247
+ //tag
1248
+ //tag}`)
1249
+ for (let key in codata) {
1250
+ if (key.startsWith("device")) {
1251
+ //tag)
1252
+ codata[key] = []
1253
+ }
1254
+ }
1255
+ codata.f_complete = this.data.f_complete
1256
+ //tag}`)
1257
+ //tag}`)
1258
+ //tag
1259
+ if (Vue.android) {
1260
+ //tag
1261
+ let value = this.$androidUtil.path({
1262
+ alias: 'getUserinfomation',
1263
+ data: {condition: "f_userinfoid = '" + this.item.f_userinfoid + "' and f_no_checkplan in ('无计划安检','复检')"}
1264
+ })
1265
+ //tag)
1266
+ if ((this.item.f_no_checkplan == '无计划安检' || this.item.f_no_checkplan == '复检') && this.item.f_no_checkplan != '打回') {
1267
+ // let result = this.$androidUtil.bzLogic('SafeSaveNoPaper', {
1268
+ // f_check_item_id: this.data.f_check_item_id,
1269
+ // f_checker_id: this.data.f_checker_id,
1270
+ // f_upload_state:'未传',
1271
+ // row: codata
1272
+ // })
1273
+ //tag
1274
+ let isStart = true
1275
+ // let res
1276
+ // for (let i in this.f_devices) {
1277
+ // res = HostApp.organizeJSON({isStart: isStart, isDevice: true, device: this.f_devices[i]})
1278
+ // if (res.code == 200) {
1279
+ // isStart = false
1280
+ // } else {
1281
+ // this.$showMessage("保存失败!")
1282
+ // }
1283
+ // }
1284
+ // let result = HostApp.organizeJSON({
1285
+ // isStart: false,
1286
+ // isJSON: true,
1287
+ // jsonstr: {
1288
+ // f_check_item_id: this.data.f_check_item_id,
1289
+ // f_checker_id: this.data.f_checker_id,
1290
+ // f_upload_state: '未传',
1291
+ // row: codata
1292
+ // }
1293
+ // })
1294
+ codata.f_devices = this.f_devices
1295
+ if (this.rowCodata && this.rowCodata.istoRepair=='转维修') {
1296
+ this.rowCodata = Object.assign({},this.rowCodata,codata)
1297
+ } else {
1298
+ this.rowCodata = codata
1299
+ }
1300
+ let param = {
1301
+ f_check_item_id: this.data.f_check_item_id,
1302
+ f_checker_id: this.data.f_checker_id,
1303
+ f_upload_state: '未传',
1304
+ // row: codata
1305
+ row: this.rowCodata
1306
+ }
1307
+ //tag)
1308
+ let paramStr = JSON.stringify(param)
1309
+ // 多长截断一次
1310
+ let subLength = 800
1311
+ for (let i = 0; i < paramStr.length; i += subLength) {
1312
+ HostApp.param_cache(paramStr.substr(i, subLength))
1313
+ }
1314
+ HostApp.__this__ = this
1315
+ HostApp.syncLogic({
1316
+ // logic别名,key必须为logic
1317
+ 'logic': 'SafeSaveNoPaper',
1318
+ // 回调执行方法名,key必须为callback
1319
+ 'callback': 'javascript:HostApp.__this__.saveCallBack()',
1320
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1321
+ // 执行回调方法传入key为backresult
1322
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1323
+ 'backresult': 1
1324
+ })
1325
+ } else {
1326
+ // console.log("dddddddd")
1327
+ //tag
1328
+ let isStart = true
1329
+ let res
1330
+ //tag)
1331
+ // for (let i in this.f_devices) {
1332
+ // //tag)
1333
+ // for (let j = 0; j < this.f_devices[i].f_items.length; j++) {
1334
+ // //tag)
1335
+ // }
1336
+ // res = HostApp.organizeJSON({isStart: isStart, isDevice: true, device: this.f_devices[i]})
1337
+ // //tag)
1338
+ // if (res.code == 200) {
1339
+ // isStart = false
1340
+ // } else {
1341
+ // this.$showMessage("保存失败!")
1342
+ // }
1343
+ // }
1344
+ //tag)
1345
+ //tag)
1346
+ //tag)
1347
+ // let result = HostApp.organizeJSON({
1348
+ // isStart: false,
1349
+ // isJSON: true,
1350
+ // jsonstr: {
1351
+ // f_check_item_id: this.data.f_check_item_id,
1352
+ // f_checker_id: this.data.f_checker_id,
1353
+ // row: codata
1354
+ // }
1355
+ // })
1356
+ codata.f_devices = this.f_devices
1357
+ if (this.rowCodata && this.rowCodata.istoRepair=='转维修') {
1358
+ this.rowCodata = Object.assign({},this.rowCodata,codata)
1359
+ } else {
1360
+ this.rowCodata = codata
1361
+ }
1362
+ let param = {
1363
+ f_check_item_id: this.data.f_check_item_id,
1364
+ f_checker_id: this.data.f_checker_id,
1365
+ // row: codata
1366
+ row: this.rowCodata
1367
+ }
1368
+ //tag)
1369
+ // console.log("ni"+JSON.stringify(param))
1370
+ let paramStr = JSON.stringify(param)
1371
+ // 多长截断一次
1372
+ let subLength = 800
1373
+ for (let i = 0; i < paramStr.length; i += subLength) {
1374
+ HostApp.param_cache(paramStr.substr(i, subLength))
1375
+ }
1376
+ HostApp.__this__ = this
1377
+ HostApp.syncLogic({
1378
+ // logic别名,key必须为logic
1379
+ 'logic': '保存安检单信息',
1380
+ // 回调执行方法名,key必须为callback
1381
+ 'callback': 'javascript:HostApp.__this__.saveCallBack()',
1382
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1383
+ // 执行回调方法传入key为backresult
1384
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1385
+ 'backresult': 1
1386
+ })
1387
+ }
1388
+
1389
+ } else {
1390
+ //tag
1391
+ let value = this.$androidUtil.path({
1392
+ alias: 'getUserinfomation',
1393
+ data: {condition: "f_userinfoid = '" + this.item.f_userinfoid + "' and f_no_checkplan in ('无计划安检','复检')"}
1394
+ })
1395
+ if (this.rowCodata && this.rowCodata.istoRepair=='转维修') {
1396
+ this.rowCodata = Object.assign({},this.rowCodata,codata)
1397
+ } else {
1398
+ this.rowCodata = codata
1399
+ }
1400
+ if ((this.item.f_no_checkplan == '无计划安检' || this.item.f_no_checkplan == '复检') && value.data.length == 0 && this.item.f_no_checkplan != '打回') {
1401
+ this.$androidUtil.bzLogic('SafeSaveNoPaper', {
1402
+ f_check_item_id: this.data.f_check_item_id,
1403
+ f_checker_id: this.data.f_checker_id,
1404
+ f_upload_state: '未传',
1405
+ // row: codata
1406
+ row: this.rowCodata
1407
+ }).then((res) => {
1408
+ if (res.data.code == 200) {
1409
+ //保存devices
1410
+ this.$androidUtil.bzLogic('getPaperInfo', {
1411
+ f_check_item_id: this.data.f_check_item_id
1412
+ }).then((res) => {
1413
+ //tag
1414
+ if (res.data.code == 200) {
1415
+
1416
+ let f_paper_id = res.data.data[0].id
1417
+ for (let device of this.f_devices) {
1418
+ device.f_paper_id = f_paper_id
1419
+ //tag
1420
+ this.$androidUtil.bzLogic('saveDevice', {
1421
+ row: device
1422
+ }).then((ret) => {
1423
+ //tag
1424
+ if (ret.code != 200) {
1425
+ // if(this.isUpload){
1426
+ // this.isUpload = false
1427
+ // }
1428
+ //TODO 失败后处理
1429
+ this.$showMessage("保存失败!")
1430
+ return false
1431
+ }
1432
+ })
1433
+ }
1434
+ }
1435
+ })
1436
+ // this.$showAlert('保存成功!', 'success', 2000)
1437
+ this.$showMessage('保存成功!')
1438
+ return true
1439
+ } else {
1440
+ // if(this.isUpload){
1441
+ // this.isUpload = false
1442
+ // }
1443
+ this.$showMessage("保存失败!")
1444
+ return false
1445
+ }
1446
+ })
1447
+ }
1448
+ else {
1449
+ this.$androidUtil.bzLogic('保存安检单信息', {
1450
+ f_check_item_id: this.data.f_check_item_id,
1451
+ f_checker_id: this.data.f_checker_id,
1452
+ row: this.rowCodata
1453
+ }).then((res) => {
1454
+ //tag
1455
+ if (res.data.code == 200) {
1456
+ //保存devices
1457
+ this.$androidUtil.bzLogic('getPaperInfo', {
1458
+ f_check_item_id: this.data.f_check_item_id
1459
+ }).then((res) => {
1460
+ //tag
1461
+ if (res.data.code == 200) {
1462
+
1463
+ let f_paper_id = res.data.data[0].id
1464
+ for (let device of this.f_devices) {
1465
+ device.f_paper_id = f_paper_id
1466
+ //tag
1467
+ this.$androidUtil.bzLogic('saveDevice', {
1468
+ row: device
1469
+ }).then((ret) => {
1470
+ //tag
1471
+ if (ret.code != 200) {
1472
+ // if(this.isUpload){
1473
+ // this.isUpload = false
1474
+ // }
1475
+ //TODO 失败后处理
1476
+ this.$showMessage("保存失败!")
1477
+ return false
1478
+ }
1479
+ })
1480
+ }
1481
+ }
1482
+ })
1483
+ // this.$showAlert('保存成功!', 'success', 2000)
1484
+ this.$showMessage('保存成功!')
1485
+ return true
1486
+ } else {
1487
+ // if(this.isUpload){
1488
+ // this.isUpload = false
1489
+ // }
1490
+ this.$showMessage("保存失败!")
1491
+ return false
1492
+ }
1493
+ })
1494
+ }
1495
+ }
1496
+ // }catch (e) {
1497
+ // //tag)
1498
+ // // this.isUpload = false
1499
+ // this.$showMessage("保存失败!")
1500
+ // }
1501
+ },
1502
+ runSyncLogic(logic,callback,backresult){
1503
+ HostApp.runSyncLogic({
1504
+ // logic别名,key必须为logic
1505
+ 'logic': logic,
1506
+ // 回调执行方法名,key必须为callback
1507
+ 'callback': callback,
1508
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1509
+ // 执行回调方法传入key为backresult
1510
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1511
+ 'backresult':backresult
1512
+ })
1513
+ },
1514
+ logicWithHint(logic,data,callback,backresult){
1515
+ HostApp.logicWithHint({
1516
+ // logic别名,key必须为logic
1517
+ 'logic': logic,
1518
+ // 回调执行方法名,key必须为callback
1519
+ 'callback': callback,
1520
+ // logic执行需要的业务参数
1521
+ 'data': data,
1522
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1523
+ // 执行回调方法传入key为backresult
1524
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1525
+ 'backresult':backresult
1526
+ })
1527
+ },
1528
+ saveCallBack(jo){
1529
+ //tag)
1530
+ // console.log("jjjj"+JSON.stringify(jo))
1531
+ if(jo.state == 'ok'){
1532
+ let res = JSON.parse(jo.result)
1533
+ //tag)
1534
+ if(res.code == 200){
1535
+ //tag
1536
+ if(!this.onlySave){
1537
+ let codata = this.getAllDefect()
1538
+ //获取微信推送内容
1539
+ // let WxResult = this.getWeixin(codata)
1540
+ let haslivedispose = this.$androidUtil.bzLogic('getLiveDispose', {
1541
+ f_check_item_id: this.data.f_check_item_id
1542
+ })
1543
+ //如果是转维修上传,则不做校验,上传完成后自动转维修
1544
+ //tag
1545
+ //tag
1546
+ if(!this.isToRepair){
1547
+ if(haslivedispose.data.length > 0 && (this.livedispose == 'true' || this.livedispose == true)){
1548
+ //tag
1549
+ //tag
1550
+ if(!this.isSafeCheckToRepair){
1551
+
1552
+ }
1553
+ }
1554
+ }
1555
+ //tag
1556
+ for (let key in codata){
1557
+ if(key.startsWith("device")){
1558
+ codata[key] = []
1559
+ }
1560
+ }
1561
+ //tag}`)
1562
+
1563
+ //tag
1564
+ // let isStart = true
1565
+ // let res
1566
+ // for (let i in this.f_devices){
1567
+ // res = HostApp.organizeJSON({isStart:isStart,isDevice:true,device:this.f_devices[i]})
1568
+ // if(res.code == 200){
1569
+ // isStart = false
1570
+ // }else{
1571
+ // this.$showMessage("上传失败!")
1572
+ // return
1573
+ // }
1574
+ // }
1575
+ // let result = HostApp.organizeJSON({
1576
+ // isStart:false,
1577
+ // isJSON:true,
1578
+ // jsonstr:{
1579
+ // f_check_item_id: this.data.f_check_item_id,
1580
+ // f_checker_id: this.data.f_checker_id,
1581
+ // row: codata
1582
+ // }
1583
+ // })
1584
+ codata.f_devices = this.f_devices
1585
+ if (this.rowCodata && this.rowCodata.istoRepair=='转维修') {
1586
+ this.rowCodata = Object.assign({},this.rowCodata,codata)
1587
+ } else {
1588
+ this.rowCodata = codata
1589
+ }
1590
+ let param = {
1591
+ f_check_item_id: this.data.f_check_item_id,
1592
+ f_checker_id: this.data.f_checker_id,
1593
+ // row: codata
1594
+ row: this.rowCodata
1595
+ }
1596
+ //tag)
1597
+ let paramStr = JSON.stringify(param)
1598
+ // 多长截断一次
1599
+ let subLength = 800
1600
+ for (let i = 0; i < paramStr.length; i += subLength) {
1601
+ HostApp.param_cache(paramStr.substr(i, subLength))
1602
+ }
1603
+ HostApp.__this__ = this
1604
+ HostApp.syncLogic({
1605
+ // logic别名,key必须为logic
1606
+ 'logic': '上传安检信息',
1607
+ // 回调执行方法名,key必须为callback
1608
+ 'callback': 'javascript:HostApp.__this__.uploadCallBack()',
1609
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1610
+ // 执行回调方法传入key为backresult
1611
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1612
+ 'backresult': 1
1613
+ })
1614
+ }else{
1615
+ this.$showMessage('保存成功!')
1616
+ if(this.clickBack){
1617
+ this.isStrat = false
1618
+ this.$dispatch('confirm')
1619
+ //this.$back()
1620
+ }
1621
+ }
1622
+ }else{
1623
+ this.$showMessage('保存失败!')
1624
+ return
1625
+ }
1626
+ }else{
1627
+ this.$showMessage('服务器内部错误,保存失败!')
1628
+ return
1629
+ }
1630
+ },
1631
+ uploadCallBack(jo){
1632
+ //获取微信推送路径
1633
+ let url = ""
1634
+ if(Vue.config.safecheck != undefined) {
1635
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
1636
+ if (Vue.config.safecheck.ApproveConfig.weixinurl != undefined) {
1637
+ url = Vue.config.safecheck.ApproveConfig.weixinurl
1638
+ }
1639
+ }
1640
+ }
1641
+ //tag)
1642
+ //tag)
1643
+ if(jo.state == 'ok'){
1644
+ let res = JSON.parse(jo.result)
1645
+ //tag)
1646
+ //tag)
1647
+ if(res.code == 200){
1648
+ this.$set('data.f_paper_id', res.id)
1649
+ this.isStrat=false
1650
+ if(url != ""){
1651
+ this.$resetpost(`${url}`,{data:WxResult})
1652
+ }
1653
+ // 预约安检回更预约安检单
1654
+ if(this.data.isupdateplanitem == 'true' && this.data.f_SafeToRepair_id){
1655
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/logic/ReturnSafeService`, {data:{
1656
+ f_paper_id:this.data.f_paper_id,
1657
+ f_service_id:this.data.f_SafeToRepair_id
1658
+ }
1659
+ }).then((ret) => {
1660
+ if(ret.data && ret.data.code == 200){
1661
+ console.log('预约安检回更成功')
1662
+ }
1663
+ })
1664
+ }
1665
+ //tag
1666
+ if(this.isToRepair){
1667
+ for (let device in this.data){
1668
+ if(device.startsWith("device")){
1669
+ this.data[device] = []
1670
+ if(res.data.length > 0){
1671
+ for(let i in res.data[0].f_devices){
1672
+ if(this.data[device].length > 0){
1673
+ if(this.data[device][0].f_device_type == res.data[0].f_devices[i].f_device_type){
1674
+ this.data[device].push(res.data[0].f_devices[i])
1675
+ res.data[0].f_devices.splice(i,1)
1676
+ }
1677
+ }else{
1678
+ this.data[device].push(res.data[0].f_devices[i])
1679
+ res.data[0].f_devices.splice(i,1)
1680
+ }
1681
+ }
1682
+ }
1683
+ }
1684
+ }
1685
+ this.todo()
1686
+ }else{
1687
+ this.$showMessage('上传成功!')
1688
+ //tag
1689
+ this.$dispatch('confirm')
1690
+ // this.$back()
1691
+ }
1692
+ }else if(res.code == 309){
1693
+ this.$showMessage('该安检单已作废!')
1694
+ //tag
1695
+ this.$dispatch('confirm')
1696
+ }else if(res.code == 710){
1697
+ this.$showMessage('上传照片失败,请检查网络是否正常!'+res.msg)
1698
+ return
1699
+ }else if(res.code == 711){
1700
+ this.$showMessage('该安检单已被管理员调整,请联系管理员!')
1701
+ return
1702
+ }else if(res.code == 712){
1703
+ this.$showMessage('网络异常,请重新上传,多次上传失败请联系管理员!')
1704
+ return
1705
+ }
1706
+ else{
1707
+ this.$showMessage('上传失败!')
1708
+ }
1709
+ }else {
1710
+ this.$showMessage('网络异常,上传失败!')
1711
+ }
1712
+ this.onlySave = true
1713
+ },
1714
+ safecheckToRepairCallBack(jo){
1715
+ //获取微信推送路径
1716
+ if(jo.state == 'ok'){
1717
+ let res = JSON.parse(jo.result)
1718
+ //tag)
1719
+ if(res.code == 200){
1720
+ //tag
1721
+ if(res.data.code == 200){
1722
+ this.$showMessage('上传并转维修成功!')
1723
+ }else{
1724
+ this.$showMessage('上传并转维修成功,回写安检单失败!')
1725
+ }
1726
+ this.$dispatch('confirm')
1727
+ // this.$back()
1728
+ }else{
1729
+ this.$showMessage('上传失败!')
1730
+ this.onlySave = true
1731
+ }
1732
+ }else{
1733
+ this.$showMessage('网络异常,上传失败!')
1734
+ this.onlySave = true
1735
+ }
1736
+ },
1737
+ todo(){
1738
+ let gen = getRepairParam(this)
1739
+ co(gen)
1740
+ },
1741
+ undo(){
1742
+ this.showCheckToRepair = !this.showCheckToRepair
1743
+ this.model.serviceacitivity[0].f_reciever = ''
1744
+ this.model.serviceacitivity[0].f_meetunit = ''
1745
+ this.model.f_repairtype = ''
1746
+ this.meading = '转站点'
1747
+ },
1748
+ disableTimer() {
1749
+ if(this.timer) {
1750
+ window.clearTimeout(this.timer)
1751
+ this.timer = null
1752
+ }
1753
+ },
1754
+ loaded(paper) {
1755
+ if(!paper.hasOwnProperty('id')) {
1756
+ this.$showMessage("该安检单在手机上已经不存在,可能是卸载过程序。可以进入重新安检,或返回安检计划。")
1757
+ this.init()
1758
+ } else {
1759
+ Util.booleanFilter(paper)
1760
+ HostApp.__this__.$set('data', paper)
1761
+ HostApp.__this__.$goto('safecheck-userinfo', {}, 'paper-router')
1762
+ // 如果打回重检则重新计时
1763
+ //tag
1764
+ if(HostApp.__this__.role == 'inspect'
1765
+ && HostApp.__this__.data.f_approved
1766
+ && HostApp.__this__.data.f_approved == '打回') {
1767
+ //tag
1768
+ HostApp.__this__.data.f_onsite_time = Util.toStandardTimeString()
1769
+ HostApp.__this__.tick()
1770
+ }
1771
+ }
1772
+ HostApp.__callback__ = null
1773
+ HostApp.__this__ = null
1774
+ },
1775
+ S4() {
1776
+ return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
1777
+ },
1778
+ extend(initalObj, finalObj) {
1779
+ var obj = finalObj || {};
1780
+ for (var i in initalObj) {
1781
+ var prop = initalObj[i];
1782
+
1783
+ // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
1784
+ if (prop === obj) {
1785
+ continue;
1786
+ }
1787
+
1788
+ if (typeof prop === 'object') {
1789
+ if (obj[i]) {
1790
+ this.extend(obj[i], prop)
1791
+ } else {
1792
+ obj[i] = prop;
1793
+ }
1794
+ }
1795
+ }
1796
+ return obj;
1797
+ },
1798
+ // async isoverDate(){
1799
+ // let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/androidGetuserinfo`, {data:{
1800
+ // condition:"f_plan_item_id='"+this.item.id+"'"
1801
+ // }
1802
+ // })
1803
+ // this.isneedDate=res.data[0]["f_subscribe_date"]
1804
+ // },
1805
+ putDevices() {
1806
+ //tag)
1807
+ //tag)
1808
+ this.$set('data.approve', "true")
1809
+ this.$set('data.writeback', "false")
1810
+ if (Vue.config.safecheck != undefined) {
1811
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
1812
+ if (Vue.config.safecheck.ApproveConfig.approve != undefined) {
1813
+ this.$set('data.approve', Vue.config.safecheck.ApproveConfig.approve)
1814
+ }
1815
+ if (Vue.config.safecheck.ApproveConfig.writeback != undefined) {
1816
+ this.$set('data.writeback', Vue.config.safecheck.ApproveConfig.writeback)
1817
+ }
1818
+ if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
1819
+ this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
1820
+ }
1821
+ if (Vue.config.safecheck.ApproveConfig.showtorepair) {
1822
+ this.show_torepair = Vue.config.safecheck.ApproveConfig.showtorepair
1823
+ }
1824
+ if (Vue.config.safecheck.ApproveConfig.notencountered != undefined){
1825
+ this.notencountered = Vue.config.safecheck.ApproveConfig.notencountered
1826
+ }
1827
+ if (Vue.config.safecheck.ApproveConfig.refuseinspection != undefined){
1828
+ this.refuseinspection = Vue.config.safecheck.ApproveConfig.refuseinspection
1829
+ }
1830
+ }
1831
+ //tag
1832
+ //tag)
1833
+ //tag)
1834
+ //tag
1835
+ if(this.item.f_user_type == '非民用'){
1836
+ // 非民用
1837
+ if (Vue.config.safecheck.DevicesSetConfig != undefined){
1838
+ if(this.item.f_safecheck_type == undefined || this.item.f_safecheck_type == '' || Vue.config.safecheck.SafecheckType == undefined) {
1839
+ this.config = this.extend(this.config, Vue.config.safecheck.DevicesSetConfig)
1840
+ }else{
1841
+ //tag
1842
+ //tag
1843
+ //tag
1844
+ this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_user_type]])
1845
+ }
1846
+ //this.config = this.extend(this.config, Vue.config.safecheck.DevicesSetConfig)
1847
+ }
1848
+
1849
+ }else{
1850
+ // 民用户
1851
+ if (Vue.config.safecheck.DevicesConfig != undefined){
1852
+ if(this.item.f_safecheck_type == undefined || this.item.f_safecheck_type == '' || Vue.config.safecheck.SafecheckType == undefined) {
1853
+ this.config = this.extend(this.config, Vue.config.safecheck.DevicesConfig)
1854
+ }else{
1855
+ //tag
1856
+ //tag
1857
+ //tag
1858
+ this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_user_type?this.item.f_user_type:'民用']])
1859
+ }
1860
+ // this.config = this.extend(this.config, Vue.config.safecheck.DevicesConfig)
1861
+ }
1862
+ }
1863
+
1864
+ }
1865
+ //tag)
1866
+ // 预留设备项位置
1867
+ for (let i in this.config) {
1868
+ this.tabs.splice(1,0,null)
1869
+ }
1870
+ //遍历安检项配置
1871
+ for (let i in this.config) {
1872
+ //取得安检项索引值
1873
+ let n = this.config[i].index
1874
+ //tag
1875
+ this.devices[n - 1] = {device: i, n: n, checkmust: this.config[i].checkmust}
1876
+ this.$set('data.' + 'device' + n, [])
1877
+ //tag
1878
+ // this.tabs.splice(2 + n - 1, 0,
1879
+ // {
1880
+ // header:i,
1881
+ // complete:'safecheck-devices',
1882
+ // class:'repair-details-class',
1883
+ // number:n
1884
+ // })
1885
+ this.tabs[n] = {
1886
+ header: i,
1887
+ complete: 'safecheck-devices',
1888
+ class: 'repair-details-class',
1889
+ number: n
1890
+ }
1891
+
1892
+ if(this.config[i].quantity && this.config[i].quantity >0){
1893
+ let items = []
1894
+ for (let it in this.config[i].items) {
1895
+ //赋值下拉选项
1896
+ if (this.config[i].items[it].type == 'selector') {
1897
+ for (let op in this.config[i].items[it].options) {
1898
+ if (this.config[i].items[it].options[op].isdefault == true) {
1899
+ items.push({
1900
+ f_defect_level: this.config[i].items[it].options[op].level,
1901
+ f_is_defect: this.config[i].items[it].options[op].isdefect,
1902
+ f_item_name: it,
1903
+ f_item_value: this.config[i].items[it].options[op].data,
1904
+ f_path: "",
1905
+ type: "selector"
1906
+ })
1907
+ }
1908
+ }
1909
+ }
1910
+ }
1911
+ for(let q =0;q<this.config[i].quantity;q++) {
1912
+ this.data['device' + n].push(
1913
+ {f_device_type: i, f_items:items}
1914
+ )
1915
+ }
1916
+ }
1917
+ // this.data['device' + n].push(
1918
+ // {f_device_type: i, f_items: items}
1919
+ // )
1920
+ n = n + 1
1921
+ }
1922
+ //tag
1923
+ this.faultshow.number = this.tabs.length
1924
+ },
1925
+ init () {
1926
+ //tag
1927
+ // this.data.f_noplan_item_id = this.S4()+""+this.S4()+""+this.S4()+""+this.S4()+""+this.S4()+""+this.S4()+""+this.S4()+""+this.S4()
1928
+ // 无计划安检是否回更待办计划
1929
+ this.data.isupdateplanitem = this.$appdata.getSingleValue('在线安检回更有计划') ? this.$appdata.getSingleValue('在线安检回更有计划') : 'false'
1930
+ // 预约安检单工单编号
1931
+ this.data.f_SafeToRepair_id = this.item.f_service_id
1932
+ this.data.ename = Vue.user.ename
1933
+ this.data.f_outlets = Vue.user.f_parentname
1934
+ this.data.f_meetunit = Vue.user.orgpathnames
1935
+ this.data.orgpathstr = Vue.user.orgpathstr
1936
+ this.data.f_check_item_id = this.item.id
1937
+ this.data.f_check_plan_id = this.f_plan_id
1938
+ this.data.f_checker_id = Vue.user.id
1939
+ this.data.f_checker_name = Vue.user.name
1940
+ this.data.f_check_type = this.item.f_user_type
1941
+ this.data.f_safecheck_type = this.item.f_safecheck_type
1942
+ //this.data.f_exceed_reason = ''//存放送气超期原因
1943
+ //tag
1944
+ this.data.f_subcompany = this.item.f_subcompany
1945
+ this.data.f_approved = this.item.f_approvedf_read_instructions
1946
+ this.data.f_repair_approved = this.item.f_repair_approved
1947
+ this.data.f_no_checkplan = this.item.f_no_checkplan
1948
+ this.data.f_approved = this.item.f_approved
1949
+ this.data.f_filialeid = this.item.f_filialeid || Vue.user.orgid
1950
+ this.data.f_orgstr = this.item.f_orgstr
1951
+ this.data.version = this.item.version
1952
+ this.data.f_check_version=this.item.f_check_version
1953
+ this.$set('data.f_meters', this.item.f_plan_meters)
1954
+ this.$set('data.f_userinfo_code', this.item.f_userinfo_code)
1955
+ //保险到期时间
1956
+ this.$set('data.f_ins_stop_date', this.item.f_plan_meters[0].f_ins_stop_date)
1957
+ // 安检状态
1958
+ this.$set('data.f_entry_status', '入户')
1959
+ this.$set('data.f_safe_type', '年度安检')
1960
+ this.$set('data.f_usegas', '已使用')
1961
+ this.$set('data.f_state',this.item.f_state)
1962
+ this.$set('data.f_source', this.source?this.source:'安检')
1963
+ this.$set('data.f_other_checker_name', '')
1964
+ //tag
1965
+ // 用户信息
1966
+ this.$set('data.f_user_name', this.item.f_user_name)
1967
+ this.$set('data.f_rent_phone', this.item.f_rent_phone)
1968
+ this.$set('data.f_user_phone', this.item.f_user_phone || this.item.f_plan_meters[0].f_user_phone)
1969
+ this.$set('data.f_userinfoid', this.item.f_userinfoid)
1970
+ this.$set('data.f_address', this.item.f_address)
1971
+ this.$set('data.f_card_id', this.item.f_card_id)
1972
+ this.$set('data.f_slice_area', this.item.f_slice_area)
1973
+ this.$set('data.f_recheck_id', this.item.id)
1974
+ this.$set('rowCodata.f_recheck_id', this.item.id)
1975
+ this.$set('data.f_street', this.item.f_street)
1976
+ this.$set('data.f_room', this.item.f_room)
1977
+ this.$set('data.f_building', this.item.f_building)
1978
+ this.$set('data.f_unit', this.item.f_unit)
1979
+ //tag
1980
+ this.$set('data.f_floor', this.item.f_floor)
1981
+ this.$set('data.f_residential_area' , this.item.f_residential_area)
1982
+ this.$set('data.f_idnumber', this.item.f_idnumber)
1983
+ this.$set('data.f_comments', this.item.f_comments)
1984
+ this.$set('data.f_userproperties', this.item.f_userproperties)
1985
+ this.$set('data.f_client_evaluation', '满意')
1986
+ this.$set('data.f_userfiles_id', this.item.f_plan_meters[0].f_userfiles_id)
1987
+ this.$set('data.f_valve_state', this.item.f_plan_meters[0].f_valve_state)
1988
+ this.$set('data.f_off_valve_reason', this.item.f_plan_meters[0].f_off_valve_reason)
1989
+ // this.$set('data.f_user_inhome_time', this.item.f_user_inhome_time)
1990
+ // this.$set('data.f_user_check_time', this.item.f_user_check_time)
1991
+ // this.$set('data.f_user_spare_phone', this.item.f_user_spare_phone)
1992
+ // this.$set('data.f_user_family_remarks', this.item.f_user_family_remarks)
1993
+ // this.$set('data.f_user_equipment_remarks', this.item.f_user_equipment_remarks)
1994
+ // 处置方式
1995
+ //tag
1996
+ this.$set('data.f_gas_guidelines', true)
1997
+ this.$set('data.f_safety_warning', true)
1998
+ this.$set('data.f_gas_manual', true)
1999
+ this.$set('data.f_no_gas_device', false)
2000
+ this.$set('data.f_close_valve', false)
2001
+ this.$set('data.f_unload_battery', false)
2002
+ //tag
2003
+ if (this.data.f_check_item_id == '' && this.item.f_no_checkplan == '无计划安检' ) {
2004
+ this.data.f_check_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
2005
+ }
2006
+ if(this.item.f_no_checkplan == '复检'){
2007
+ this.data.f_check_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
2008
+ }
2009
+ //tag
2010
+ if(this.item.f_plan_meters) {
2011
+ for (let de in this.devices) {
2012
+ if(typeof this.devices[de]=='function'){
2013
+ continue
2014
+ }
2015
+ this.$set('data.device' + this.devices[de].n, [])
2016
+ for (let i = 0; i < this.item.f_plan_meters.length; i++) {
2017
+ if (this.item.f_plan_meters[i].f_meter_type) {
2018
+ this.data.f_meter_type=this.item.f_plan_meters[i].f_meter_type
2019
+ //tag)
2020
+ if (this.devices[de].device == "燃气表" && this.item.f_plan_meters[i].f_meter_type.indexOf('机表') > 0) {
2021
+ this.data['device' + this.devices[de].n].push({
2022
+ f_device_type: "燃气表",
2023
+ f_items: [
2024
+ {
2025
+ f_defect_level: null,
2026
+ f_device_id: "",
2027
+ f_is_defect: "",
2028
+ f_item_name: "基表编号",
2029
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
2030
+ f_path: "",
2031
+ type: "number"
2032
+ },
2033
+ {
2034
+ f_defect_level: null,
2035
+ f_device_id: "",
2036
+ f_is_defect: "",
2037
+ f_item_name: "气表型号",
2038
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
2039
+ f_path: "",
2040
+ type: "string"
2041
+ },
2042
+ {
2043
+ f_defect_level: null,
2044
+ f_device_id: "",
2045
+ f_is_defect: "",
2046
+ f_item_name: "气表品牌",
2047
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
2048
+ f_path: "",
2049
+ type: "string"
2050
+ },
2051
+ {
2052
+ f_defect_level: null,
2053
+ f_device_id: "",
2054
+ f_is_defect: "",
2055
+ f_item_name: "进气方向",
2056
+ f_item_value: this.item.f_plan_meters[i].f_flow_direction,
2057
+ f_path: "",
2058
+ type: "string"
2059
+ },
2060
+ {
2061
+ f_defect_level: null,
2062
+ f_device_id: "",
2063
+ f_is_defect: "",
2064
+ f_item_name: "上期表读数",
2065
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading,
2066
+ f_path: "",
2067
+ type: "number"
2068
+ },
2069
+ {
2070
+ f_defect_level: null,
2071
+ f_device_id: "",
2072
+ f_is_defect: "",
2073
+ f_item_name: "表箱号",
2074
+ f_item_value: this.item.f_plan_meters[i].f_metertitles,
2075
+ f_path: "",
2076
+ type: "string"
2077
+ }
2078
+ ]
2079
+ })
2080
+ }
2081
+ else if (this.devices[de].device == "燃气表") {
2082
+ // delete this.config['燃气表']['items']['表底数']
2083
+ this.data['device' + this.devices[de].n].push({
2084
+ f_device_type: "燃气表",
2085
+ f_items: [
2086
+ {
2087
+ f_defect_level: null,
2088
+ f_device_id: "",
2089
+ f_is_defect: "",
2090
+ f_item_name: "基表编号",
2091
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
2092
+ f_path: "",
2093
+ type: "number"
2094
+ },
2095
+ {
2096
+ f_defect_level: null,
2097
+ f_device_id: "",
2098
+ f_is_defect: "",
2099
+ f_item_name: "气表型号",
2100
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
2101
+ f_path: "",
2102
+ type: "string"
2103
+ },
2104
+ {
2105
+ f_defect_level: null,
2106
+ f_device_id: "",
2107
+ f_is_defect: "",
2108
+ f_item_name: "气表品牌",
2109
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
2110
+ f_path: "",
2111
+ type: "string"
2112
+ },
2113
+ {
2114
+ f_defect_level: null,
2115
+ f_device_id: "",
2116
+ f_is_defect: "",
2117
+ f_item_name: "进气方向",
2118
+ f_item_value: this.item.f_plan_meters[i].f_flow_direction,
2119
+ f_path: "",
2120
+ type: "string"
2121
+ },
2122
+ {
2123
+ f_defect_level: null,
2124
+ f_device_id: "",
2125
+ f_is_defect: "",
2126
+ f_item_name: "上期表读数",
2127
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading,
2128
+ f_path: "",
2129
+ type: "number"
2130
+ },
2131
+ {
2132
+ f_defect_level: null,
2133
+ f_device_id: "",
2134
+ f_is_defect: "",
2135
+ f_item_name: "表箱号",
2136
+ f_item_value: this.item.f_plan_meters[i].f_metertitles,
2137
+ f_path: "",
2138
+ type: "string"
2139
+ }
2140
+ ]
2141
+ })
2142
+ }
2143
+ if (this.devices[de].device == "燃气表" && this.item.f_plan_meters[i].f_collection_type) {
2144
+ this.data['device' + this.devices[de].n].forEach(device => {
2145
+ //tag)
2146
+ //tag)
2147
+ /*
2148
+ "累购气量":{"index":8,"type":"number","readonly":true},
2149
+ "累购金额":{"index":8,"type":"number","readonly":true},
2150
+ "字轮读数":{"index":9,"type":"number","checkmust": true},
2151
+ "已用金额":{"index":9,"type":"number","checkmust": true},
2152
+ "剩余气量":{"index":10,"type":"number","checkmust": true},
2153
+ "剩余金额":{"index":10,"type":"number","checkmust": true},
2154
+ "气量异常差值":{"index":11,"type":"number","readonly": true},
2155
+ "金额异常差值":{"index":11,"type":"number","readonly": true}
2156
+ */
2157
+ if (this.item.f_plan_meters[i].f_collection_type == '按金额') {
2158
+ if (!this.data.f_collection_type) {
2159
+ this.data.f_collection_type = this.item.f_plan_meters[i].f_collection_type
2160
+ delete this.config['燃气表']['items']['累购气量']
2161
+ delete this.config['燃气表']['items']['已用气量']
2162
+ delete this.config['燃气表']['items']['剩余气量']
2163
+ delete this.config['燃气表']['items']['气量异常差值']
2164
+ device.f_items.push(
2165
+ {
2166
+ f_defect_level: null,
2167
+ f_device_id: "",
2168
+ f_is_defect: "",
2169
+ f_item_name: "初始表底",
2170
+ isshow: false,
2171
+ f_item_value: '',
2172
+ f_path: "",
2173
+ type: "number"
2174
+ },
2175
+ {
2176
+ f_defect_level: null,
2177
+ f_device_id: "",
2178
+ f_is_defect: "",
2179
+ f_item_name: "累购金额",
2180
+ f_item_value: this.item.f_plan_meters[i].f_total_fee,
2181
+ f_path: "",
2182
+ type: "number"
2183
+ },
2184
+ {
2185
+ f_defect_level: null,
2186
+ f_device_id: "",
2187
+ f_is_defect: "",
2188
+ f_item_name: "已用金额",
2189
+ f_item_value: null,
2190
+ f_path: "",
2191
+ type: "number"
2192
+ },
2193
+ {
2194
+ f_defect_level: null,
2195
+ f_device_id: "",
2196
+ f_is_defect: "",
2197
+ f_item_name: "剩余金额",
2198
+ f_item_value: null,
2199
+ f_path: "",
2200
+ type: "number"
2201
+ },
2202
+ {
2203
+ f_defect_level: null,
2204
+ f_device_id: "",
2205
+ f_is_defect: "",
2206
+ f_item_name: "金额异常差值",
2207
+ f_item_value: null,
2208
+ f_path: "",
2209
+ type: "number"
2210
+ }
2211
+ )
2212
+ //tag)
2213
+ }
2214
+ } else
2215
+ if (this.item.f_plan_meters[i].f_collection_type == '按气量') {
2216
+ if (!this.data.f_collection_type) {
2217
+ this.data.f_collection_type = this.item.f_plan_meters[i].f_collection_type
2218
+ delete this.config['燃气表']['items']['累购金额']
2219
+ delete this.config['燃气表']['items']['已用金额']
2220
+ delete this.config['燃气表']['items']['剩余金额']
2221
+ delete this.config['燃气表']['items']['金额异常差值']
2222
+ device.f_items.push(
2223
+ {
2224
+ f_defect_level: null,
2225
+ f_device_id: "",
2226
+ f_is_defect: "",
2227
+ f_item_name: "初始表底",
2228
+ isshow: true,
2229
+ f_item_value: this.item.f_plan_meters[i].f_initial_base,
2230
+ f_path: "",
2231
+ type: "number"
2232
+ },
2233
+ {
2234
+ f_defect_level: null,
2235
+ f_device_id: "",
2236
+ f_is_defect: "",
2237
+ f_item_name: "累购气量",
2238
+ f_item_value: this.item.f_plan_meters[i].f_total_gas,
2239
+ f_path: "",
2240
+ type: "number"
2241
+ },
2242
+ {
2243
+ f_defect_level: null,
2244
+ f_device_id: "",
2245
+ f_is_defect: "",
2246
+ f_item_name: "已用气量",
2247
+ f_item_value: this.item.f_plan_meters[i].f_meter_base,
2248
+ f_path: "",
2249
+ type: "number"
2250
+ },
2251
+ {
2252
+ f_defect_level: null,
2253
+ f_device_id: "",
2254
+ f_is_defect: "",
2255
+ f_item_name: "剩余气量",
2256
+ f_item_value: "",
2257
+ f_path: "",
2258
+ type: "number"
2259
+ },
2260
+ {
2261
+ f_defect_level: null,
2262
+ f_device_id: "",
2263
+ f_is_defect: "",
2264
+ f_item_name: "气量异常差值",
2265
+ f_item_value: null,
2266
+ f_path: "",
2267
+ type: "number"
2268
+ }
2269
+ )
2270
+ //tag)
2271
+ }
2272
+ }
2273
+ })
2274
+ }
2275
+ else if(this.devices[de].device == "燃气表"){
2276
+ //tag
2277
+ this.data['device' + this.devices[de].n].forEach(device => {
2278
+ //tag)
2279
+ if (!this.data.f_collection_type) {
2280
+ this.data.f_collection_type = this.item.f_plan_meters[i].f_collection_type
2281
+ delete this.config['燃气表']['items']['累购金额']
2282
+ delete this.config['燃气表']['items']['已用金额']
2283
+ delete this.config['燃气表']['items']['剩余金额']
2284
+ delete this.config['燃气表']['items']['金额异常差值']
2285
+ device.f_items.push(
2286
+ {
2287
+ f_defect_level: null,
2288
+ f_device_id: "",
2289
+ f_is_defect: "",
2290
+ f_item_name: "初始表底",
2291
+ isshow: true,
2292
+ f_item_value: this.item.f_plan_meters[i].f_initial_base,
2293
+ f_path: "",
2294
+ type: "number"
2295
+ },
2296
+ {
2297
+ f_defect_level: null,
2298
+ f_device_id: "",
2299
+ f_is_defect: "",
2300
+ f_item_name: "累购气量",
2301
+ f_item_value: this.item.f_plan_meters[i].f_total_gas,
2302
+ f_path: "",
2303
+ type: "number"
2304
+ },
2305
+ {
2306
+ f_defect_level: null,
2307
+ f_device_id: "",
2308
+ f_is_defect: "",
2309
+ f_item_name: "已用气量",
2310
+ f_item_value: this.item.f_plan_meters[i].f_meter_base,
2311
+ f_path: "",
2312
+ type: "number"
2313
+ },
2314
+ {
2315
+ f_defect_level: null,
2316
+ f_device_id: "",
2317
+ f_is_defect: "",
2318
+ f_item_name: "剩余气量",
2319
+ f_item_value: '',
2320
+ f_path: "",
2321
+ type: "number"
2322
+ },
2323
+ {
2324
+ f_defect_level: null,
2325
+ f_device_id: "",
2326
+ f_is_defect: "",
2327
+ f_item_name: "气量异常差值",
2328
+ isshow:false,
2329
+ f_item_value: null,
2330
+ f_path: "",
2331
+ type: "number"
2332
+ }
2333
+ )
2334
+ //tag)
2335
+ }
2336
+ })
2337
+ }
2338
+ }
2339
+ }
2340
+ }
2341
+ }
2342
+ var pardate = {
2343
+ _this:this,
2344
+ tittle:'安检详情',
2345
+ safe:true
2346
+ }
2347
+ // this.$dispatch('gotoson',pardate)
2348
+ //tag
2349
+ this.$goto('safecheck-userinfo', {userinfo:this.data}, 'repair')
2350
+ }
2351
+ },
2352
+ watch: {
2353
+ 'row' () {
2354
+ //tag
2355
+ this.copy()
2356
+ }
2357
+ },
2358
+ async ready () {
2359
+ //送气超期功能
2360
+ //await this.isoverDate()
2361
+ this.putDevices()
2362
+ //如果已检,则提取安检单
2363
+ if (this.item.f_state != '未检') {
2364
+ if (this.role == 'inspect' || this.role == 'androidview') {
2365
+ HostApp.__callback__ = this.loaded
2366
+ HostApp.__this__ = this
2367
+ let that = this
2368
+ let value = {}
2369
+ //tag
2370
+ if (this.role == 'inspect') {
2371
+ //tag
2372
+ if (this.item.f_no_checkplan == '无计划安检' || this.item.f_no_checkplan == '复检') {
2373
+ value = this.$androidUtil.path({
2374
+ alias: 'getUserinfomation',
2375
+ data: {condition: "f_check_item_id = '" + this.item.id + "' and f_no_checkplan in ('无计划安检','复检')"}
2376
+ })
2377
+ } else {
2378
+ value = this.$androidUtil.bzLogic('FetchCheckPaper', {id: this.item.id})
2379
+ }
2380
+ } else {
2381
+ value = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/path/getUserinfomation`, {data: {condition: `id = '${this.item.f_paper_id}'`}})
2382
+ }
2383
+ Util.replaceFalse(value)
2384
+ //tag)
2385
+ if (value.data.length != 0) {
2386
+ that.$set('data', value.data[0])
2387
+ //tag)
2388
+ if (this.data.f_collection_type == '按气量') {
2389
+ delete this.config['燃气表']['items']['累购金额']
2390
+ delete this.config['燃气表']['items']['已用金额']
2391
+ delete this.config['燃气表']['items']['剩余金额']
2392
+ delete this.config['燃气表']['items']['金额异常差值']
2393
+ } else if (this.data.f_collection_type == '按金额') {
2394
+ delete this.config['燃气表']['items']['累购气量']
2395
+ delete this.config['燃气表']['items']['已用气量']
2396
+ delete this.config['燃气表']['items']['剩余气量']
2397
+ delete this.config['燃气表']['items']['气量异常差值']
2398
+ }
2399
+ //tag)
2400
+ if (value.data[0].f_devices) {
2401
+ for (let da in that.devices) {
2402
+ if(typeof that.devices[da]=='function'){
2403
+ continue
2404
+ }
2405
+ that.$set('data.device' + that.devices[da].n, [])
2406
+ }
2407
+ value.data[0].f_devices.forEach((item) => {
2408
+ //tag)
2409
+ for (let i in item.f_items) {
2410
+ if(typeof item.f_items[i]=='function'){
2411
+ continue
2412
+ }
2413
+ // if (item.f_items[i].f_path != '' && item.f_items[i].f_path != null) {
2414
+ // this.picture.push({f_path: item.f_items[i].f_path, name: item.f_items[i].f_item_name})
2415
+ // }
2416
+ for (let de in that.config[item.f_device_type].items) {
2417
+ if(typeof that.config[item.f_device_type].items[de]=='function'){
2418
+ continue
2419
+ }
2420
+ if (item.f_items[i].f_item_name == de) {
2421
+ if (that.config[item.f_device_type].items[de].type == 'selector' || that.config[item.f_device_type].items[de].type == 'checkbox') {
2422
+ item.f_items[i].f_item_value = []
2423
+ } else {
2424
+ item.f_items[i].f_item_value = ''
2425
+ }
2426
+ }
2427
+ }
2428
+ //tag)
2429
+
2430
+ // if (item.f_items[i].f_item_name=='累购气量'){
2431
+ // item.f_items[i].f_item_value=this.item.f_plan_meters[0].f_total_gas
2432
+ // }else if (item.f_items[i].f_item_name=='累购金额'){
2433
+ // item.f_items[i].f_item_value=this.item.f_plan_meters[0].f_total_fee
2434
+ // }else if (item.f_items[i].f_item_name=='基表编号'){
2435
+ // item.f_items[i].f_item_value=this.item.f_plan_meters[0].f_meter_no
2436
+ // }else if (item.f_items[i].f_item_name=='气表品牌'){
2437
+ // item.f_items[i].f_item_value=this.item.f_plan_meters[0].f_aliasname
2438
+ // }else if (item.f_items[i].f_item_name=='进气方向'){
2439
+ // item.f_items[i].f_item_value=this.item.f_plan_meters[0].f_flow_direction
2440
+ // }else if (item.f_items[i].f_item_name=='气表型号'){
2441
+ // item.f_items[i].f_item_value=this.item.f_plan_meters[0].f_diaphgram_size
2442
+ // }else if (item.f_items[i].f_item_name=='表箱号'){
2443
+ // item.f_items[i].f_item_value=this.item.f_plan_meters[0].f_metertitles
2444
+ // }
2445
+ // else{
2446
+ for (let j in item.f_items[i].f_item_lists) {
2447
+ if(typeof item.f_items[i].f_item_lists[j]=='function'){
2448
+ continue
2449
+ }
2450
+ //tag)
2451
+ if (item.f_items[i].f_item_value instanceof Array) {
2452
+ item.f_items[i].f_item_value.push(item.f_items[i].f_item_lists[j].f_item_value)
2453
+ } else {
2454
+ item.f_items[i].f_item_value = item.f_items[i].f_item_lists[j].f_item_value
2455
+ }
2456
+ }
2457
+ // }
2458
+
2459
+ }
2460
+ for (let de in that.devices) {
2461
+ if(typeof that.devices[de]=='function'){
2462
+ continue
2463
+ }
2464
+ if (that.devices[de].device == item.f_device_type) {
2465
+ that.data['device' + that.devices[de].n].push({
2466
+ f_device_type: item.f_device_type,
2467
+ f_items: item.f_items
2468
+ })
2469
+ //tag)
2470
+ }
2471
+ }
2472
+ })
2473
+ if (this.role == 'androidview') {
2474
+ Util.androidRatifyPics(that.data, this.$androidUtil.getProxyUrl())
2475
+ Util.androidRatifyPics(that.picture, this.$androidUtil.getProxyUrl())
2476
+ Util.booleanFilter(that.data)
2477
+ }
2478
+ //tag)
2479
+ }
2480
+ } else {
2481
+ //tag
2482
+ this.init()
2483
+ }
2484
+ if(this.parentPage && this.parentPage=='CurrentCreate'){
2485
+ //tag
2486
+ let isRecodr = this.$appdata.getSingleValue('无限制录音'); //单值参数,为true则是开启全程录音
2487
+ if (isRecodr) {
2488
+ if (isRecodr=='true') {
2489
+ this.$showMessage("为了保证服务质量,您的电话将会被全程录音!")
2490
+ // 初始化录音
2491
+ let resse = this.record()
2492
+ }
2493
+ }
2494
+ }
2495
+ //tag
2496
+ var pardate = {
2497
+ _this:this,
2498
+ tittle:'安检详情',
2499
+ safe:true
2500
+ }
2501
+ // this.$dispatch('gotoson',pardate)getImgPath
2502
+ this.$goto('safecheck-userinfo', {userinfo:this.data}, 'repair')
2503
+ } else {
2504
+ let that = this
2505
+ let id
2506
+ if (this.role == 'view') {
2507
+ id = this.item.id
2508
+ }
2509
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/path/getUserinfomation`, {data:{condition:`id = '${id}'`}}).then((respanse)=> {
2510
+ if (respanse.data.length != 0) {
2511
+ that.data = Object.assign(that.data,respanse.data[0])
2512
+ if(respanse.data[0].f_devices) {
2513
+ for (let da in that.devices) {
2514
+ that.$set('data.device' + that.devices[da].n, [])
2515
+ }
2516
+ respanse.data[0].f_devices.forEach((item) => {
2517
+ for (let de in that.devices) {
2518
+ if (that.devices[de].device == item.f_device_type) {
2519
+ that.data['device' + that.devices[de].n].push({
2520
+ f_device_type: item.f_device_type,
2521
+ f_items: item.f_items
2522
+ })
2523
+ }
2524
+ }
2525
+ })
2526
+ }
2527
+ Util.replaceFalse(that.data)
2528
+ Util.booleanFilter(that.data)
2529
+ if(this.role == 'view'){
2530
+ Util.ratifyPics(that.data)
2531
+ }else{
2532
+ Util.androidRatifyPics(that.data,this.$androidUtil.getProxyUrl())
2533
+ }
2534
+ //tag
2535
+ } else {
2536
+ alert("该安检单可能已不在本地!")
2537
+ this.init()
2538
+ }
2539
+ var pardate = {
2540
+ _this:this,
2541
+ tittle:'安检详情',
2542
+ safe:true
2543
+ }
2544
+ // this.$dispatch('gotoson',pardate)
2545
+ this.$goto('safecheck-userinfo', {userinfo:this.data}, 'paper-router')
2546
+ }
2547
+ ).catch(
2548
+ (respanse) => {
2549
+ alert('查找安检单失败')
2550
+ })
2551
+ }
2552
+ }else{
2553
+ if(this.parentPage && this.parentPage=='CurrentCreate'){
2554
+ //tag
2555
+ let isRecodr = this.$appdata.getSingleValue('无限制录音'); //单值参数,为true则是开启全程录音
2556
+ if (isRecodr) {
2557
+ if (isRecodr=='true') {
2558
+ // this.$showMessage("为了保证服务质量,您的电话将会被全程录音!")
2559
+ // 初始化录音
2560
+ let resse = this.record()
2561
+ }
2562
+ }
2563
+ }
2564
+ this.init()
2565
+ }
2566
+ // tbs合并数组
2567
+ // if( this.model.serviceacitivity[0].servicerepair.length > 0){
2568
+ // for(let i = 0;i < this.model.serviceacitivity[0].servicerepair.length;i++ ){
2569
+ //
2570
+ // }
2571
+ // }
2572
+ },
2573
+ components: {
2574
+ // 'door-service': DoorService,
2575
+ // 'repair-info': RepairInfo,
2576
+ // 'repair-user-info': RepairUserInfo,
2577
+ // 'outlay': Outlay,
2578
+ // 'fault-all': FaultAll,
2579
+ // 'repair-details':RepairDetails
2580
+ // 'pipeline': Pipeline,
2581
+ // 'device-service': DeviceService,
2582
+ // 'trouble-removal': TroubleRemoval,
2583
+ // 'cooking-utensils': CookingUtensils,
2584
+ // 'repair-matter-info': RepairMatterInfo,
2585
+ // 'first-gas-check': FirstGasCheck,
2586
+ // 'tel-change-matter': TelChangeMatter/
2587
+ },
2588
+ events: {
2589
+ 'tijiao': function () {
2590
+ // 事件回调内的 `this` 自动绑定到注册它的实例上
2591
+ this.confirm()
2592
+ }
2593
+ }
2594
+ }
2595
+ </script>
2596
+ <style lang="less">
2597
+ @import "../../../../src/bootstrap/less/variables.less";
2598
+
2599
+ .noclickbut {
2600
+ pointer-events: none;
2601
+ }
2602
+
2603
+ .tab-befor-img (@url) {
2604
+ content: '';
2605
+ background-image: url("@{url}");
2606
+ background-size: 20px;
2607
+ display: inline-block;
2608
+ margin-right: 8px;
2609
+ margin-top: 0.3em;
2610
+ height: 1.3em;
2611
+ width: 1.3em;
2612
+ vertical-align: -35%;
2613
+ }
2614
+
2615
+ @media screen and (min-width: 768px) {
2616
+ .android-repair-order > div > ul a {
2617
+ font-size: @font-size-h2;
2618
+ margin: 0.3em 0;
2619
+ }
2620
+ }
2621
+
2622
+ .repair-details-class {
2623
+ &::before {
2624
+ .tab-befor-img("../../../assets/huneiweixiu1.png");
2625
+ }
2626
+ }
2627
+
2628
+ .repair-info-class {
2629
+ &::before {
2630
+ .tab-befor-img("../../../assets/baoxiuxinxi1.png");
2631
+ }
2632
+ }
2633
+
2634
+ .repair-user-info-class {
2635
+ &::before {
2636
+ .tab-befor-img("../../../assets/jibenxinxi1.png")
2637
+ }
2638
+ }
2639
+
2640
+ .door-service-class {
2641
+ &::before {
2642
+ .tab-befor-img("../../../assets/huneiweixiu1.png")
2643
+ }
2644
+ }
2645
+
2646
+ .pipeline-class {
2647
+ &::before {
2648
+ .tab-befor-img("../../../assets/guandao1.png")
2649
+ }
2650
+ }
2651
+
2652
+ .device-service-class {
2653
+ &::before {
2654
+ .tab-befor-img("../../../assets/shebeiweixiu1.png")
2655
+ }
2656
+ }
2657
+
2658
+ .trouble-removal-class {
2659
+ &::before {
2660
+ .tab-befor-img("../../../assets/shiguchuli.png")
2661
+ }
2662
+ }
2663
+
2664
+ .cooking-utensils-class {
2665
+ &::before {
2666
+ .tab-befor-img("../../../assets/zaoju1.png")
2667
+ }
2668
+ }
2669
+
2670
+ .outlay-class {
2671
+ &::before {
2672
+ .tab-befor-img("../../../assets/feiyong1.png")
2673
+ }
2674
+ }
2675
+
2676
+ .fault-all-class {
2677
+ &::before {
2678
+ .tab-befor-img("../../../assets/guzhanghuizong1.png")
2679
+ }
2680
+ }
2681
+
2682
+ .photo-write-class {
2683
+ &::before {
2684
+ .tab-befor-img("../../../assets/zaoju.png")
2685
+ }
2686
+ }
2687
+
2688
+ .delay-apply-class {
2689
+ &::before {
2690
+ .tab-befor-img("../../../assets/yonghubaoxiu.png")
2691
+ }
2692
+ }
2693
+
2694
+ .repair-back-class {
2695
+ &::before {
2696
+ .tab-befor-img("../../../assets/fanhui.png")
2697
+ }
2698
+ }
2699
+
2700
+ .butt2 {
2701
+ display: inline;
2702
+ float: right;
2703
+ width: 10px;
2704
+ text-align: center;
2705
+ align-items: center;
2706
+ position: absolute;
2707
+ top: 50%;
2708
+
2709
+ left: 90%;
2710
+ transform: translate(-50%, -50%);
2711
+ }
2712
+
2713
+ .linesty {
2714
+ display: inline-block;
2715
+ height: 1px;
2716
+ width: 100%;
2717
+ background: #d0d0d0;
2718
+ overflow: hidden;
2719
+ vertical-align: middle;
2720
+ }
2721
+
2722
+ .spanboder {
2723
+ border-bottom: 2px solid #499edf;
2724
+ padding-bottom: 8px
2725
+ }
2726
+
2727
+ .app-botton {
2728
+ position: fixed;
2729
+ background: #87b2dd;
2730
+ right: 8px;
2731
+ color: #FFF;
2732
+ padding: 8px;
2733
+ text-align: center;
2734
+ font-size: 1.2em;
2735
+ z-index: 10;
2736
+ opacity: 0.5;
2737
+ bottom: 50px;
2738
+ margin-top: -10px;
2739
+ height: 40px;
2740
+ }
2741
+
2742
+ .android-repair-order > div > ul a {
2743
+ font-size: 12px;
2744
+ color: #333333;
2745
+ padding: 13px 16px;
2746
+ }
2747
+ </style>