safecheck-client 3.0.34-6 → 3.0.34-60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (373) 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 -566
  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 +33 -0
  224. package/src/components/android/PlumberAnnual.vue +83 -83
  225. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  226. package/src/components/android/PlumberMonthly.vue +84 -84
  227. package/src/components/android/PostMap.vue +83 -83
  228. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  229. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  230. package/src/components/android/QueryCheckHistory.vue +122 -122
  231. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  232. package/src/components/android/RepairMain.vue +60 -60
  233. package/src/components/android/Repairman.vue +12 -12
  234. package/src/components/android/SafecheckDevices.vue +1298 -1298
  235. package/src/components/android/SafecheckOrderV.vue +2805 -2809
  236. package/src/components/android/StationMaster.vue +12 -12
  237. package/src/components/android/SwitchValve.vue +323 -323
  238. package/src/components/android/examples/SafeListExamples.vue +96 -0
  239. package/src/components/android/examples/UserExamples.vue +130 -0
  240. package/src/components/checkerphonestate/Checker.vue +32 -32
  241. package/src/components/checkerphonestate/CheckerState.vue +97 -97
  242. package/src/components/defects/AddDefectModal.vue +120 -120
  243. package/src/components/defects/AddDevice.vue +95 -95
  244. package/src/components/defects/DefectModal.vue +101 -101
  245. package/src/components/defects/DevicesAndItem.vue +39 -39
  246. package/src/components/defects/DevicesSeting.vue +106 -106
  247. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  248. package/src/components/metterfiles/AddUserfiles.vue +246 -246
  249. package/src/components/metterfiles/MetterFiles.vue +104 -104
  250. package/src/components/notice/NoticeForm.vue +100 -100
  251. package/src/components/notice/NoticeIssue.vue +20 -20
  252. package/src/components/notice/NoticeQuery.vue +76 -76
  253. package/src/components/paper/PicViewer.vue +18 -18
  254. package/src/components/paper/RepairVerifyForm.vue +76 -76
  255. package/src/components/phonestate/DailyTraffic.vue +57 -57
  256. package/src/components/phonestate/LastKnownState.vue +74 -74
  257. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  258. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  259. package/src/components/phonestate/PostMap.vue +82 -82
  260. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  261. package/src/components/rongcheng/AddPlanItem.vue +4 -0
  262. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  263. package/src/components/rongcheng/CheckSearchUser.vue +40 -14
  264. package/src/components/rongcheng/PaperStatem.vue +6 -1
  265. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  266. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  267. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  268. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  269. package/src/components/task/RepairAnnual.vue +79 -79
  270. package/src/components/task/RepairAnnualDetail.vue +49 -49
  271. package/src/components/task/RepairMonthly.vue +91 -91
  272. package/src/components/task/TaskAnnual.vue +77 -77
  273. package/src/components/task/TaskAnnualDetail.vue +47 -47
  274. package/src/components/task/TaskMonthly.vue +89 -89
  275. package/src/components/userfile/MeterFile.vue +145 -145
  276. package/src/components/userfile/MeterModify.vue +46 -46
  277. package/src/components/userfile/UserfileChange.vue +277 -277
  278. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  279. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +633 -633
  280. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  281. package/src/filiale/baiyin/android.js +1 -0
  282. package/src/filiale/baiyin/pc/CheckSearchUser.vue +1067 -1067
  283. package/src/filiale/baiyin/pc/DefectListNew.vue +597 -597
  284. package/src/filiale/baiyin/pc/PaperList.vue +790 -790
  285. package/src/filiale/baiyin/pc/checkUserList.vue +771 -771
  286. package/src/filiale/baiyin/pc.js +21 -21
  287. package/src/filiale/bayan/android/SafecheckOrderV.vue +52 -29
  288. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  289. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  290. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  291. package/src/filiale/huaran/android.js +12 -0
  292. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  293. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  294. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  295. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  296. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  297. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  298. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  299. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  300. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  301. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  302. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  303. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  304. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  305. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  306. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  307. package/src/filiale/huaran/pc.js +27 -0
  308. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  309. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  310. package/src/filiale/jiaxian/android/SafecheckDevices.vue +1298 -1298
  311. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  312. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  313. package/src/filiale/jiaxian/android.js +4 -0
  314. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  315. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  316. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  317. package/src/filiale/ruihua/android.js +11 -0
  318. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +645 -0
  319. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  320. package/src/filiale/siyang/pc/CheckSearchUser.vue +982 -0
  321. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  322. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  323. package/src/filiale/siyang/pc/checkUserList.vue +22 -18
  324. package/src/filiale/siyang/pc.js +5 -0
  325. package/src/filiale/tongchuan/android/Select.vue +421 -0
  326. package/src/filiale/tongchuan/android.js +1 -0
  327. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  328. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  329. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  330. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  331. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  332. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  333. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  334. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  335. package/src/filiale/weinan/android/SafecheckDevices.vue +1 -1
  336. package/src/filiale/weinan/android/SafecheckOrderV.vue +1 -1
  337. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  338. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  339. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  340. package/src/filiale/weinan/pc/DefectMainNew.vue +63 -63
  341. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  342. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  343. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  344. package/src/filiale/weinan/pc.js +47 -46
  345. package/src/filiale/wuan/android/SafecheckOrderV.vue +1 -0
  346. package/src/filiale/wuan/android/SafecheckUserInfo.vue +4 -0
  347. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1192 -1192
  348. package/src/filiale/yangchunboneng/android/DailyworkloadQuery.vue +472 -472
  349. package/src/filiale/yangchunboneng/android/safeHistoryLook.vue +473 -473
  350. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +13 -11
  351. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +6 -6
  352. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  353. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +10 -10
  354. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +6 -6
  355. package/src/filiale/yangchunboneng/pc/PaperList.vue +6 -6
  356. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  357. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  358. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  359. package/src/main.js +33 -33
  360. package/src/plugins/LoadData.js +10 -10
  361. package/src/plugins/LoadParams.js +24 -24
  362. package/src/safecheck-android.js +7 -0
  363. package/src/safecheck-page.js +10 -0
  364. package/src/stores/wxconfig.js +10 -10
  365. package/src/utils/getNowDate.js +33 -33
  366. package/test/e2e/custom-assertions/elementCount.js +26 -26
  367. package/test/e2e/nightwatch.conf.js +40 -40
  368. package/test/e2e/runner.js +30 -30
  369. package/test/e2e/specs/test.js +13 -13
  370. package/test/unit/.eslintrc +5 -5
  371. package/test/unit/TestUtil.js +62 -62
  372. package/test/unit/context.html +20 -20
  373. package/test/unit/index.js +13 -13
@@ -1,597 +1,597 @@
1
- <template>
2
- <div>
3
- <!-- <div :style="{'height':needRepair?'60%':'100%'}">-->
4
- <div :style="{'height': '100%'}">
5
- <criteria-paged :model="model" :pager="false" v-ref:paged>
6
- <criteria partial='criteria'>
7
- <div partial>
8
- <ul class="nav nav-tabs">
9
- <li role="presentation" class="active"><a style=" color: #5ac0d9 !important;">隐患明细</a></li>
10
- </ul>
11
- </div>
12
- </criteria>
13
- <data-grid :model="model" partial='list' class="table_sy">
14
- <template partial='head'>
15
- <tr>
16
- <!-- <th>-->
17
- <!-- <nobr>隐患设备</nobr>-->
18
- <!-- </th>-->
19
- <th>
20
- <nobr>隐患项</nobr>
21
- </th>
22
- <th>
23
- <nobr>隐患原因</nobr>
24
- </th>
25
- <th>
26
- <nobr>隐患处理方式</nobr>
27
- </th>
28
- <!-- <th>-->
29
- <!-- <nobr>审核结果</nobr>-->
30
- <!-- </th>-->
31
- <th>
32
- <nobr>备注</nobr>
33
- </th>
34
- <th>
35
- <nobr>操作</nobr>
36
- </th>
37
- </tr>
38
- </template>
39
- <template partial='body'>
40
- <!-- <td style="text-align: center">-->
41
- <!-- <nobr>{{row.f_device_type}}</nobr>-->
42
- <!-- </td>-->
43
- <td style="text-align: center">
44
- <nobr>{{row.f_item_name}}</nobr>
45
- </td>
46
- <td style="text-align: center">
47
- <nobr>{{row.f_item_value}}</nobr>
48
- </td>
49
- <td style="text-align: center">
50
- <nobr>{{row.f_repaire_type}}</nobr>
51
- </td>
52
- <td style="text-align: center">
53
- <nobr>{{row.f_deal_remark ? row.f_deal_remark : ' '}}</nobr>
54
- </td>
55
- <!-- <td style="text-align: center">-->
56
- <!-- <nobr>{{row.f_audit_results?row.f_audit_results:'暂无审核结果'}}</nobr>-->
57
- <!-- </td>-->
58
- <td style="text-align: center">
59
- <button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '已处理' && row.f_path" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.showimg(row)">隐患图片</button>
60
- <!-- <img-button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '已处理' && row.f_path" :src="'/rs/image/file/'+row.f_path" :value="'隐患图片'"></img-button>-->
61
- <button v-if="row.f_repaire_type == '已处理'" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.solveDefect( row, 'view')">处理详情</button>
62
- <button v-if="row.f_repaire_type == '未处理' || !row.f_repaire_type" class="button_spacing button_search-1" @click="$parent.$parent.$parent.solveDefect( row, 'solve')">处理隐患</button>
63
- </td>
64
- </template>
65
- </data-grid>
66
- </criteria-paged>
67
- </div>
68
-
69
- <!-- <div style="overflow-y: scroll;height: 40%" v-if="needRepair">-->
70
- <!-- <div class="form-horizontal auto">-->
71
- <!-- <ul class="nav nav-tabs">-->
72
- <!-- <li role="presentation" class="active"><a style=" color: #000 !important;font-size: 14px">转维修</a></li>-->
73
- <!-- </ul>-->
74
- <!-- <validator name='v' @valid="valid = true" @invalid="valid = false">-->
75
- <!-- <div class="row">-->
76
- <!-- <div class="col-sm-4" :class="[$v.dispatchtype.required ? 'select-error' : '']">-->
77
- <!-- <label for="dispatchtype" class="font_normal_body">派发类型</label>-->
78
- <!-- <input id="dispatchtype" type="text" v-show="false" v-model="$refs.dispatchtype.selectedItems" v-validate:dispatchtype='{required: true }'>-->
79
- <!-- <v-select :value.sync="toRepairModal.preData.dispatchType" v-model="toRepairModal.preData.dispatchType"-->
80
- <!-- :options='toRepairModal.preData.dispatchTypeOptions' placeholder='派发类型'-->
81
- <!-- close-on-select v-ref:dispatchtype>-->
82
- <!-- </v-select>-->
83
- <!-- </div>-->
84
- <!-- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给站点'">-->
85
- <!-- <label class="font_normal_body">站&nbsp;&nbsp;点</label>-->
86
- <!-- <right-tree-->
87
- <!-- islist-->
88
- <!-- :userid="$login.f.id"-->
89
- <!-- :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"-->
90
- <!-- @re-res="getSiteRes">-->
91
- <!-- </right-tree>-->
92
- <!-- </div>-->
93
- <!-- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给维修员'" :class="[$v.f_repairman.required ? 'select-error' : '']">-->
94
- <!-- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairman" v-validate:f_repairman='{required: true }'>-->
95
- <!-- <label class="font_normal_body">维修员</label>-->
96
- <!-- <v-select-->
97
- <!-- :value.sync="toRepairModal.preData.f_repairman"-->
98
- <!-- :value-single="true"-->
99
- <!-- :options='toRepairModal.preData.repairers'-->
100
- <!-- placeholder='请选择维修员'-->
101
- <!-- close-on-select></v-select>-->
102
- <!-- </div>-->
103
- <!-- <div class="col-sm-4" :class="[$v.f_repairtype.required ? 'select-error' : '']">-->
104
- <!-- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairtype" v-validate:f_repairtype='{required: true }'>-->
105
- <!-- <label class="font_normal_body">报修类型</label>-->
106
- <!-- <v-select :value.sync="toRepairModal.preData.f_repairtype" style="width:60%"-->
107
- <!-- class="select select_list"-->
108
- <!-- :value-single="true"-->
109
- <!-- :options='toRepairModal.preData.repairTypeOptions'-->
110
- <!-- close-on-select>-->
111
- <!-- </v-select>-->
112
- <!-- </div>-->
113
- <!-- </div>-->
114
- <!-- <div class="row">-->
115
- <!-- <div class="col-sm-8 form-group">-->
116
- <!-- <label class="font_normal_body" >备&emsp;&emsp;注</label>-->
117
- <!-- <input class="input_search" style="width: 60%" type="text" v-model="toRepairModal.preData.f_remarks" placeholder="备注">-->
118
-
119
- <!-- </div>-->
120
- <!-- <div class="col-sm-4" style="margin-top: 1%">-->
121
- <!-- <button class="button_search" :disabled="!valid" @click="confirm">转维修</button>-->
122
- <!-- </div>-->
123
- <!-- </div>-->
124
- <!-- </validator>-->
125
- <!-- </div>-->
126
- <!-- </div>-->
127
- <modal :show.sync="showSolveModal" v-ref:solveModal>
128
- <div slot="modal-header" class="modal-header">
129
- <h4 class="modal-title">
130
- {{solveModal.preData.type == 'view'?'处理详情':'处理隐患'}}
131
- </h4>
132
- </div>
133
- <div slot="modal-body" class="modal-body">
134
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
135
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
136
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理前</p></div>
137
- </div>
138
-
139
- <div class="col-sm-6" style="margin-top: 10px">
140
- <label class="font_normal_body">安&nbsp;检&nbsp;员</label>
141
- <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_checker_name" placeholder="安检员">
142
- </div>
143
- <div class="col-sm-6" style="margin-top: 10px">
144
- <label class="font_normal_body">安检时间</label>
145
- <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_offsite_time" placeholder="安检时间">
146
- </div>
147
- <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg">
148
- <label class="font_normal_body">隐患图片</label>
149
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg"></img-self>
150
- </div>
151
- <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg1">
152
- <label class="font_normal_body">隐患图片</label>
153
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg1"></img-self>
154
- </div>
155
- <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg2">
156
- <label class="font_normal_body">隐患图片</label>
157
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg2"></img-self>
158
- </div>
159
- <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg3">
160
- <label class="font_normal_body">隐患图片</label>
161
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg3"></img-self>
162
- </div>
163
-
164
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
165
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
166
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后</p></div>
167
- </div>
168
- <div class="col-sm-6" style="margin-top: 10px">
169
- <label class="font_normal_body">处&nbsp;理&nbsp;人</label>
170
- <input v-if="solveModal.preData.type != 'solve'" class="input_search" style="width: 60%" disabled="true" type="text" v-model="solveModal.uploadData.f_repairman" placeholder="处理人">
171
- <v-select
172
- v-if="solveModal.preData.type == 'solve'"
173
- :value.sync="solveModal.uploadData.f_repairman"
174
- :value-single="true"
175
- :options='toRepairModal.preData.repairers'
176
- placeholder='请选择维修员'
177
- close-on-select></v-select>
178
- </div>
179
- <div class="col-sm-6" style="margin-top: 10px">
180
- <label class="font_normal_body">处理时间</label>
181
- <datepicker
182
- :disabled="solveModal.preData.type == 'view'"
183
- placeholder='处理时间' style="width:60%"
184
- :disabled-days-of-week="[]"
185
- :format="'yyyy-MM-dd'"
186
- :show-rest-button="reset"
187
- :value.sync="solveModal.uploadData.f_repair_date">
188
- </datepicker>
189
- </div>
190
- <div v-if="solveModal.preData.type == 'solve'" class="col-sm-12" style="margin-bottom: 10px">
191
- <label class="font_normal_body">处理后图片</label>
192
- <avatar-upload :width="200" :height="200" :img-src.sync="solveModal.uploadData.imgSrc" :filename.sync="solveModal.uploadData.filename" v-ref:imginfo></avatar-upload>
193
- </div>
194
- <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg" class="col-sm-12" style="margin-bottom: 10px">
195
- <label class="font_normal_body">处理后图片</label>
196
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg"></img-self>
197
- </div>
198
- <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg2" class="col-sm-12" style="margin-bottom: 10px">
199
- <label class="font_normal_body">处理后图片</label>
200
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg2"></img-self>
201
- </div>
202
- <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg3" class="col-sm-12" style="margin-bottom: 10px">
203
- <label class="font_normal_body">处理后图片</label>
204
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg3"></img-self>
205
- </div>
206
- <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg4" class="col-sm-12" style="margin-bottom: 10px">
207
- <label class="font_normal_body">处理后图片</label>
208
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg4"></img-self>
209
- </div>
210
- </div>
211
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
212
- <!-- <button class="button_search" @click="auditsure('通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核通过</button>-->
213
- <!-- <button class="button_search" @click="auditsure('不通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核不通过</button>-->
214
- <button class="button_search" v-if="solveModal.preData.type == 'solve'" @click="ok">确认</button>
215
- <button class="button_search" @click="cancel">取消</button>
216
- </div>
217
- </modal>
218
- <modal :show.sync="imgshow" v-ref:modal backdrop="true">
219
- <header slot="modal-header" class="modal-header">
220
- 隐患图片
221
- </header>
222
- <article slot="modal-body" class="modal-body">
223
- <div class="from-group">
224
- <div class="row">
225
- <div class="col-md-6">
226
- <img-self-plus v-if="imgs.defectImg" :src="imgs.defectImg" width="240" height="300"></img-self-plus>
227
- </div>
228
- <div class="col-md-6">
229
- <img-self-plus v-if="imgs.defectImg1" :src="imgs.defectImg1" width="240" height="300"></img-self-plus>
230
- </div>
231
- <div class="col-md-6">
232
- <img-self-plus v-if="imgs.defectImg2" :src="imgs.defectImg2" width="240" height="300"></img-self-plus>
233
- </div>
234
- <div class="col-md-6">
235
- <img-self-plus v-if="imgs.defectImg3" :src="imgs.defectImg3" width="240" height="300"></img-self-plus>
236
- </div>
237
- </div>
238
- </div>
239
- </article>
240
- <footer slot="modal-footer" class="modal-footer" v-show="false">
241
- </footer>
242
- </modal>
243
-
244
- </div>
245
- </template>
246
-
247
- <script>
248
- import {PagedList, HttpResetClass} from 'vue-client'
249
- import * as Util from '../../../components/Util'
250
- import co from 'co'
251
-
252
- const upSolveDefect = function * (self) {
253
- let uploadData = self.solveModal.uploadData
254
- //tag)
255
- self.$resetpost('/rs/logic/pcRepairDefectNew', self.solveModal.uploadData, {resolveMsg: null, rejectMsg: null})
256
- .then(res => {
257
- if (res.data.code === 200) {
258
- self.$showMessage('隐患已处理。')
259
- self.showSolveModal = false
260
- self.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
261
- }
262
- })
263
- }
264
-
265
- const sendRepair = function* (self) {
266
- let preData = self.toRepairModal.preData
267
- let uploadData = self.toRepairModal.uploadData
268
-
269
- if (preData.dispatchType == '派发给站点') {
270
- uploadData.model.serviceacitivity[0].f_meetunit = preData.f_meetunit
271
- uploadData.model.serviceacitivity[0].f_reciever = preData.f_reciever
272
- uploadData.model.f_meetunit = preData.f_meetunit
273
- uploadData.model.f_orgstr = preData.f_reciever
274
- uploadData.model.f_outlets = preData.f_outlets
275
- } else if (preData.dispatchType == '派发给维修员') {
276
- uploadData.model.serviceacitivity[0].f_reciever = preData.f_repairman
277
- // uploadData.model.f_meetunit = self.$login.f.orgpathnames
278
- // uploadData.model.f_orgstr = self.$login.f.orgpathstr
279
- // uploadData.model.f_outlets = self.$login.f.f_parentname
280
- uploadData.model.f_meetunit = self.$login.f.deps
281
- uploadData.model.f_orgid = self.$login.f.orgid
282
- uploadData.model.f_filiale = self.$login.f.org
283
- uploadData.model.f_outlets = self.$login.f.deps
284
- uploadData.model.f_filiale_id = self.$login.f.orgid
285
- uploadData.toRepair = '一级派单'
286
- }
287
- let res = yield self.$resetpost('/rs/sql/GetUserForRepaireNew2', {data: {f_userinfo_id: self.check.f_userinfo_id}})
288
- preData.userInfo = res.data[0]
289
- uploadData.model = Object.assign(uploadData.model, preData.userInfo)
290
- uploadData.user.f_userinfo_id = preData.userInfo.f_userinfo_id
291
- uploadData.model.f_repair_date = Util.getNowDate()
292
- uploadData.model.f_repairtype = preData.f_repairtype
293
- uploadData.model.f_remarks = preData.f_remarks
294
- // 拼接failure
295
- let failure = []
296
- self.model.rows.forEach(row => {
297
- if (row.f_repaire_type == '未处理') {
298
- failure.push({
299
- f_failure_type: row.f_item_name,
300
- failurecase: row.f_item_value?row.f_item_value.split(','):''
301
- })
302
- }
303
- })
304
- uploadData.model.failure = failure
305
- // 拼接repairitems
306
- let rows = JSON.parse(JSON.stringify(self.model.rows))
307
- let repairitems = {
308
- data: []
309
- }
310
- let safecheckOptions = [{"data": "已处理"}, {"data": "未处理"}]
311
- // 取未处理的
312
- rows = rows.filter(row => row.f_repaire_type == '未处理')
313
- //tag)
314
- // 开始拼接
315
- rows.forEach(row => {
316
- let existIndex = -1
317
- // 判断该设备是否已经存在
318
- for (let i = 0; i < repairitems.data.length; i++) {
319
- if (repairitems.data[i].f_type == row.f_device_type) {
320
- existIndex = i
321
- break
322
- }
323
- }
324
- if (existIndex == -1) {
325
- // 不存在则新建
326
- let newItem = {
327
- f_type: row.f_device_type,
328
- details: [{
329
- f_defect_id: row.id,
330
- f_project: `${row.f_item_name}:${row.f_item_value}`,
331
- type: 'selector',
332
- options: safecheckOptions
333
- }]
334
- }
335
- repairitems.data.push(newItem)
336
- } else {
337
- // 存在则追加
338
- repairitems.data[existIndex].details.push({
339
- f_defect_id: row.id,
340
- f_project: `${row.f_item_name}:${row.f_item_value}`,
341
- type: 'selector',
342
- options: safecheckOptions
343
- })
344
- }
345
- })
346
- uploadData.model.f_repairitems = repairitems
347
- //tag)
348
- // 调工单接口
349
- let result = yield self.$resetpost('/rs/logic/callerSend', uploadData)
350
- //tag)
351
- if (result.data.f_service_id) {
352
- const data = {
353
- f_paper_id: rows[0].f_paper_id,
354
- f_service_id: result.data.f_service_id,
355
- itemsId: self.$login.convertToIn(rows.map(row => row.id))
356
- }
357
- //tag
358
- let updateRes = yield self.$resetpost('/rs/logic/updateDefectStateNew', data)
359
- if (updateRes.data.code == 200) {
360
- self.$showMessage('隐患已转维修。')
361
- self.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
362
- }
363
- }
364
- }
365
-
366
- export default {
367
- title: '隐患项列表',
368
- props: ['check'],
369
- data() {
370
- return {
371
- model: new PagedList('rs/sql/GetDefectByPaperIdNew2', 100, {
372
- f_paper_id: 'this.f_paper_id', f_item_value: 'this.f_item_value'
373
- }),
374
- imgshow: false,
375
- imgs: {
376
- defectImg: '',
377
- defectImg1: '',
378
- defectImg2: '',
379
- defectImg3: '',
380
- },
381
- showSolveModal: false,
382
- showToRepairModal: false,
383
- showDefectModal: false,
384
- valid: false,
385
- needRepair: true,
386
- solveModal: {
387
- uploadData:{},
388
- preData: {
389
- type: 'view',
390
- defectImg: '',
391
- defectImg1: '',
392
- defectImg2: '',
393
- defectImg3: '',
394
- repairedImg: '',
395
- repairedImg2: '',
396
- repairedImg3: '',
397
- repairedImg4: '',
398
-
399
- uploadData: {
400
- id: '',
401
- f_repairman: this.$login.f.name,
402
- f_repair_date: Util.getNowDate().substr(0, 10),
403
- f_repair_path: '',
404
- imgSrc: '',
405
- filename: ''
406
- }
407
- },
408
- toRepairModal: {
409
- preData: {
410
- dispatchTypeOptions: [{label: '派发给站点', value: '派发给站点'}, {
411
- label: '派发给维修员',
412
- value: '派发给维修员'
413
- }],
414
- repairTypeOptions: this.$appdata.getParam('报修类型'),
415
- dispatchType: '',
416
- f_repairman: '',
417
- f_repairtype: '',
418
- f_remarks: '',
419
- f_meetunit: '',
420
- f_reciever: '',
421
- f_outlets: '',
422
- userInfo: {},
423
- repairers: []
424
- },
425
- uploadData: {
426
- id:'',
427
- model: {
428
- serviceacitivity: [{
429
- f_service_acitivity_type: '派单'
430
- }],
431
- f_repairitems: {},
432
- failure: '',
433
- f_source: '安检',
434
- f_service_id: '',
435
- f_contact_phone: '',
436
- f_meetunit: '',
437
- f_phone: '',
438
- f_user_name: '',
439
- f_address: '',
440
- f_repair_date: '',
441
- f_reciever: '',
442
- f_remarks: '',
443
- f_user_type: '',
444
- f_area: '',
445
- f_unit_name: '',
446
- f_street: '',
447
- f_residential_area: '',
448
- f_building: '',
449
- f_unit: '',
450
- f_floor: '',
451
- f_room: '',
452
- aState: '',
453
- f_repairtype: '',
454
- f_userinfo_id: '',
455
- f_userinfo_code: '',
456
- f_orgstr: '',
457
- f_outlets: '',
458
- f_attendant: this.$login.f.name
459
- },
460
- loginUser: {
461
- name: this.$login.f.name,
462
- ename: this.$login.f.ename
463
- },
464
- user: {
465
- f_userinfo_id: ''
466
- },
467
- callObj: null
468
- }
469
- }
470
- }
471
- }
472
- },
473
- ready() {
474
- this.model.f_item_value = `(SELECT stuff(( SELECT ',' + f_item_value FROM t_devices_items_lists WHERE ( f_is_defect = 'true' OR di.f_is_defect = 'true') AND f_item_id = di.id FOR xml path ( '' ) ),1,1,'' ) )`
475
- if (this.check) {
476
- this.model.f_paper_id = this.check.id
477
- this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
478
- }
479
- this.getEmp()
480
- },
481
- methods: {
482
- showimg(val){
483
- this.imgs.defectImg = val.f_path?'/rs/image/file/' + val.f_path:''
484
- this.imgs.defectImg1 = val.f_p1_path?'/rs/image/file/' + val.f_p1_path:''
485
- this.imgs.defectImg2 = val.f_p2_path?'/rs/image/file/' + val.f_p2_path:''
486
- this.imgs.defectImg3 = val.f_p3_path?'/rs/image/file/' + val.f_p3_path:''
487
- this.imgshow = true
488
- },
489
- //审核通过
490
- auditsure(info){
491
- // 拿到t_devices_items 的ID,给f_audit_results中存入通过 如果未通过,需要可以再次派单,对隐患进行处理
492
- var data = {
493
- id: this.solveModal.uploadData.id,
494
- info:info
495
- }
496
- let http = new HttpResetClass()
497
- http.load('POST', 'rs/logic/DefectAuditUpdate', data, {resolveMsg: null, rejectMsg: null}).then((res) => {
498
- if(res.data.code == 200){
499
- this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
500
- this.showSolveModal = false
501
- this.showToRepairModal = false
502
- this.$showMessage('提交成功')
503
- }else{
504
- this.$showMessage('提交失败,请重试')
505
- }
506
- })
507
- },
508
- solveDefect(row, type) {
509
- this.solveModal.preData.defectImg = row.f_path?'/rs/image/file/' + row.f_path:''
510
- this.solveModal.preData.defectImg1 = row.f_p1_path?'/rs/image/file/' + row.f_p1_path:''
511
- this.solveModal.preData.defectImg2 = row.f_p2_path?'/rs/image/file/' + row.f_p2_path:''
512
- this.solveModal.preData.defectImg3 = row.f_p3_path?'/rs/image/file/' + row.f_p3_path:''
513
- this.solveModal.preData.repairedImg = '/rs/image/file/' + row.f_repair_path
514
- this.solveModal.preData.repairedImg2 = row.f_repair2_path ? ('/rs/image/file/' + row.f_repair2_path) : ''
515
- this.solveModal.preData.repairedImg3 = row.f_repair3_path ? ('/rs/image/file/' + row.f_repair3_path) : ''
516
- this.solveModal.preData.repairedImg4 = row.f_repair4_path ? ('/rs/image/file/' + row.f_repair4_path) : ''
517
- this.solveModal.uploadData.id = row.id
518
- this.solveModal.preData.type = type
519
- if (type == 'view') {
520
- this.solveModal.preData.f_repair_path = '/rs/image/file/' + row.f_repair_path
521
- this.solveModal.uploadData.f_repairman = row.f_repairman
522
- this.solveModal.uploadData.f_repair_date = row.f_repair_date
523
- this.$set('solveModal.f_audit_results',row.f_audit_results)
524
- } else {
525
- this.solveModal.uploadData.f_repairman = this.$login.f.name
526
- this.solveModal.uploadData.f_repair_date = Util.getNowDate().substr(0, 10)
527
- }
528
- this.showSolveModal = !this.showSolveModal
529
- },
530
- ok() {
531
- if (!(this.solveModal.uploadData.filename && this.solveModal.uploadData.filename.length > 0)) {
532
- this.$showMessage('请录入处理后照片')
533
- return
534
- }
535
- co(upSolveDefect(this))
536
- },
537
- cancel() {
538
- this.showSolveModal = false
539
- this.showToRepairModal = false
540
- },
541
- toRepair() {
542
- this.showToRepairModal = !this.showToRepairModal
543
- },
544
- getSiteRes(obj) {
545
- //tag
546
- //tag
547
- if(obj.resids[0]){
548
- this.toRepairModal.preData.f_meetunit = obj.res.join('.')
549
- this.toRepairModal.preData.f_reciever = obj.resids.join('.')
550
- }else {
551
- this.toRepairModal.preData.f_meetunit = ''
552
- this.toRepairModal.preData.f_reciever = ''
553
- this.toRepairModal.preData.f_outlets = ''
554
- }
555
- },
556
- // 获取维修员
557
- getEmp() {
558
- let val = {source: 'this.getParentByType($organization$).getChildByName($维修员$).getUsers()', userid: `${this.$login.f.id}`}
559
- let http = new HttpResetClass()
560
- http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
561
- res.data.forEach((item) => {
562
- this.toRepairModal.preData.repairers.push({label: item.name, value: item.name})
563
- })
564
- })
565
- },
566
- confirm() {
567
- if (this.toRepairModal.preData.dispatchType == '派发给站点' && !this.toRepairModal.preData.f_meetunit) {
568
- this.$showMessage('请选择站点。')
569
- return
570
- }
571
- co(sendRepair(this))
572
- }
573
- },
574
- watch: {
575
- 'check'() {
576
- this.model.f_paper_id = this.check.id
577
- this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
578
- },
579
- 'model.rows'() {
580
- if (this.model.rows.length > 0) {
581
- if (this.model.rows[0].f_repaire_type == '未处理') {
582
- this.needRepair = true
583
- return
584
- }
585
- }
586
- this.needRepair = false
587
- }
588
- }
589
- }
590
- </script>
591
- <style lang="less" scoped>
592
- .select-error {
593
- button {
594
- border-bottom: 1px solid #a94442 !important;
595
- }
596
- }
597
- </style>
1
+ <template>
2
+ <div>
3
+ <!-- <div :style="{'height':needRepair?'60%':'100%'}">-->
4
+ <div :style="{'height': '100%'}">
5
+ <criteria-paged :model="model" :pager="false" v-ref:paged>
6
+ <criteria partial='criteria'>
7
+ <div partial>
8
+ <ul class="nav nav-tabs">
9
+ <li role="presentation" class="active"><a style=" color: #5ac0d9 !important;">隐患明细</a></li>
10
+ </ul>
11
+ </div>
12
+ </criteria>
13
+ <data-grid :model="model" partial='list' class="table_sy">
14
+ <template partial='head'>
15
+ <tr>
16
+ <!-- <th>-->
17
+ <!-- <nobr>隐患设备</nobr>-->
18
+ <!-- </th>-->
19
+ <th>
20
+ <nobr>隐患项</nobr>
21
+ </th>
22
+ <th>
23
+ <nobr>隐患原因</nobr>
24
+ </th>
25
+ <th>
26
+ <nobr>隐患处理方式</nobr>
27
+ </th>
28
+ <!-- <th>-->
29
+ <!-- <nobr>审核结果</nobr>-->
30
+ <!-- </th>-->
31
+ <th>
32
+ <nobr>备注</nobr>
33
+ </th>
34
+ <th>
35
+ <nobr>操作</nobr>
36
+ </th>
37
+ </tr>
38
+ </template>
39
+ <template partial='body'>
40
+ <!-- <td style="text-align: center">-->
41
+ <!-- <nobr>{{row.f_device_type}}</nobr>-->
42
+ <!-- </td>-->
43
+ <td style="text-align: center">
44
+ <nobr>{{row.f_item_name}}</nobr>
45
+ </td>
46
+ <td style="text-align: center">
47
+ <nobr>{{row.f_item_value}}</nobr>
48
+ </td>
49
+ <td style="text-align: center">
50
+ <nobr>{{row.f_repaire_type}}</nobr>
51
+ </td>
52
+ <td style="text-align: center">
53
+ <nobr>{{row.f_deal_remark ? row.f_deal_remark : ' '}}</nobr>
54
+ </td>
55
+ <!-- <td style="text-align: center">-->
56
+ <!-- <nobr>{{row.f_audit_results?row.f_audit_results:'暂无审核结果'}}</nobr>-->
57
+ <!-- </td>-->
58
+ <td style="text-align: center">
59
+ <button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '已处理' && row.f_path" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.showimg(row)">隐患图片</button>
60
+ <!-- <img-button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '已处理' && row.f_path" :src="'/rs/image/file/'+row.f_path" :value="'隐患图片'"></img-button>-->
61
+ <button v-if="row.f_repaire_type == '已处理'" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.solveDefect( row, 'view')">处理详情</button>
62
+ <button v-if="row.f_repaire_type == '未处理' || !row.f_repaire_type" class="button_spacing button_search-1" @click="$parent.$parent.$parent.solveDefect( row, 'solve')">处理隐患</button>
63
+ </td>
64
+ </template>
65
+ </data-grid>
66
+ </criteria-paged>
67
+ </div>
68
+
69
+ <!-- <div style="overflow-y: scroll;height: 40%" v-if="needRepair">-->
70
+ <!-- <div class="form-horizontal auto">-->
71
+ <!-- <ul class="nav nav-tabs">-->
72
+ <!-- <li role="presentation" class="active"><a style=" color: #000 !important;font-size: 14px">转维修</a></li>-->
73
+ <!-- </ul>-->
74
+ <!-- <validator name='v' @valid="valid = true" @invalid="valid = false">-->
75
+ <!-- <div class="row">-->
76
+ <!-- <div class="col-sm-4" :class="[$v.dispatchtype.required ? 'select-error' : '']">-->
77
+ <!-- <label for="dispatchtype" class="font_normal_body">派发类型</label>-->
78
+ <!-- <input id="dispatchtype" type="text" v-show="false" v-model="$refs.dispatchtype.selectedItems" v-validate:dispatchtype='{required: true }'>-->
79
+ <!-- <v-select :value.sync="toRepairModal.preData.dispatchType" v-model="toRepairModal.preData.dispatchType"-->
80
+ <!-- :options='toRepairModal.preData.dispatchTypeOptions' placeholder='派发类型'-->
81
+ <!-- close-on-select v-ref:dispatchtype>-->
82
+ <!-- </v-select>-->
83
+ <!-- </div>-->
84
+ <!-- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给站点'">-->
85
+ <!-- <label class="font_normal_body">站&nbsp;&nbsp;点</label>-->
86
+ <!-- <right-tree-->
87
+ <!-- islist-->
88
+ <!-- :userid="$login.f.id"-->
89
+ <!-- :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"-->
90
+ <!-- @re-res="getSiteRes">-->
91
+ <!-- </right-tree>-->
92
+ <!-- </div>-->
93
+ <!-- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给维修员'" :class="[$v.f_repairman.required ? 'select-error' : '']">-->
94
+ <!-- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairman" v-validate:f_repairman='{required: true }'>-->
95
+ <!-- <label class="font_normal_body">维修员</label>-->
96
+ <!-- <v-select-->
97
+ <!-- :value.sync="toRepairModal.preData.f_repairman"-->
98
+ <!-- :value-single="true"-->
99
+ <!-- :options='toRepairModal.preData.repairers'-->
100
+ <!-- placeholder='请选择维修员'-->
101
+ <!-- close-on-select></v-select>-->
102
+ <!-- </div>-->
103
+ <!-- <div class="col-sm-4" :class="[$v.f_repairtype.required ? 'select-error' : '']">-->
104
+ <!-- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairtype" v-validate:f_repairtype='{required: true }'>-->
105
+ <!-- <label class="font_normal_body">报修类型</label>-->
106
+ <!-- <v-select :value.sync="toRepairModal.preData.f_repairtype" style="width:60%"-->
107
+ <!-- class="select select_list"-->
108
+ <!-- :value-single="true"-->
109
+ <!-- :options='toRepairModal.preData.repairTypeOptions'-->
110
+ <!-- close-on-select>-->
111
+ <!-- </v-select>-->
112
+ <!-- </div>-->
113
+ <!-- </div>-->
114
+ <!-- <div class="row">-->
115
+ <!-- <div class="col-sm-8 form-group">-->
116
+ <!-- <label class="font_normal_body" >备&emsp;&emsp;注</label>-->
117
+ <!-- <input class="input_search" style="width: 60%" type="text" v-model="toRepairModal.preData.f_remarks" placeholder="备注">-->
118
+
119
+ <!-- </div>-->
120
+ <!-- <div class="col-sm-4" style="margin-top: 1%">-->
121
+ <!-- <button class="button_search" :disabled="!valid" @click="confirm">转维修</button>-->
122
+ <!-- </div>-->
123
+ <!-- </div>-->
124
+ <!-- </validator>-->
125
+ <!-- </div>-->
126
+ <!-- </div>-->
127
+ <modal :show.sync="showSolveModal" v-ref:solveModal>
128
+ <div slot="modal-header" class="modal-header">
129
+ <h4 class="modal-title">
130
+ {{solveModal.preData.type == 'view'?'处理详情':'处理隐患'}}
131
+ </h4>
132
+ </div>
133
+ <div slot="modal-body" class="modal-body">
134
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
135
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
136
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理前</p></div>
137
+ </div>
138
+
139
+ <div class="col-sm-6" style="margin-top: 10px">
140
+ <label class="font_normal_body">安&nbsp;检&nbsp;员</label>
141
+ <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_checker_name" placeholder="安检员">
142
+ </div>
143
+ <div class="col-sm-6" style="margin-top: 10px">
144
+ <label class="font_normal_body">安检时间</label>
145
+ <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_offsite_time" placeholder="安检时间">
146
+ </div>
147
+ <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg">
148
+ <label class="font_normal_body">隐患图片</label>
149
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg"></img-self>
150
+ </div>
151
+ <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg1">
152
+ <label class="font_normal_body">隐患图片</label>
153
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg1"></img-self>
154
+ </div>
155
+ <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg2">
156
+ <label class="font_normal_body">隐患图片</label>
157
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg2"></img-self>
158
+ </div>
159
+ <div class="col-sm-12" style="margin-bottom: 10px" v-show="solveModal.preData.defectImg3">
160
+ <label class="font_normal_body">隐患图片</label>
161
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg3"></img-self>
162
+ </div>
163
+
164
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
165
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
166
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后</p></div>
167
+ </div>
168
+ <div class="col-sm-6" style="margin-top: 10px">
169
+ <label class="font_normal_body">处&nbsp;理&nbsp;人</label>
170
+ <input v-if="solveModal.preData.type != 'solve'" class="input_search" style="width: 60%" disabled="true" type="text" v-model="solveModal.uploadData.f_repairman" placeholder="处理人">
171
+ <v-select
172
+ v-if="solveModal.preData.type == 'solve'"
173
+ :value.sync="solveModal.uploadData.f_repairman"
174
+ :value-single="true"
175
+ :options='toRepairModal.preData.repairers'
176
+ placeholder='请选择维修员'
177
+ close-on-select></v-select>
178
+ </div>
179
+ <div class="col-sm-6" style="margin-top: 10px">
180
+ <label class="font_normal_body">处理时间</label>
181
+ <datepicker
182
+ :disabled="solveModal.preData.type == 'view'"
183
+ placeholder='处理时间' style="width:60%"
184
+ :disabled-days-of-week="[]"
185
+ :format="'yyyy-MM-dd'"
186
+ :show-rest-button="reset"
187
+ :value.sync="solveModal.uploadData.f_repair_date">
188
+ </datepicker>
189
+ </div>
190
+ <div v-if="solveModal.preData.type == 'solve'" class="col-sm-12" style="margin-bottom: 10px">
191
+ <label class="font_normal_body">处理后图片</label>
192
+ <avatar-upload :width="200" :height="200" :img-src.sync="solveModal.uploadData.imgSrc" :filename.sync="solveModal.uploadData.filename" v-ref:imginfo></avatar-upload>
193
+ </div>
194
+ <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg" class="col-sm-12" style="margin-bottom: 10px">
195
+ <label class="font_normal_body">处理后图片</label>
196
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg"></img-self>
197
+ </div>
198
+ <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg2" class="col-sm-12" style="margin-bottom: 10px">
199
+ <label class="font_normal_body">处理后图片</label>
200
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg2"></img-self>
201
+ </div>
202
+ <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg3" class="col-sm-12" style="margin-bottom: 10px">
203
+ <label class="font_normal_body">处理后图片</label>
204
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg3"></img-self>
205
+ </div>
206
+ <div v-if="solveModal.preData.type == 'view'" v-show="solveModal.preData.repairedImg4" class="col-sm-12" style="margin-bottom: 10px">
207
+ <label class="font_normal_body">处理后图片</label>
208
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg4"></img-self>
209
+ </div>
210
+ </div>
211
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
212
+ <!-- <button class="button_search" @click="auditsure('通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核通过</button>-->
213
+ <!-- <button class="button_search" @click="auditsure('不通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核不通过</button>-->
214
+ <button class="button_search" v-if="solveModal.preData.type == 'solve'" @click="ok">确认</button>
215
+ <button class="button_search" @click="cancel">取消</button>
216
+ </div>
217
+ </modal>
218
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true">
219
+ <header slot="modal-header" class="modal-header">
220
+ 隐患图片
221
+ </header>
222
+ <article slot="modal-body" class="modal-body">
223
+ <div class="from-group">
224
+ <div class="row">
225
+ <div class="col-md-6">
226
+ <img-self-plus v-if="imgs.defectImg" :src="imgs.defectImg" width="240" height="300"></img-self-plus>
227
+ </div>
228
+ <div class="col-md-6">
229
+ <img-self-plus v-if="imgs.defectImg1" :src="imgs.defectImg1" width="240" height="300"></img-self-plus>
230
+ </div>
231
+ <div class="col-md-6">
232
+ <img-self-plus v-if="imgs.defectImg2" :src="imgs.defectImg2" width="240" height="300"></img-self-plus>
233
+ </div>
234
+ <div class="col-md-6">
235
+ <img-self-plus v-if="imgs.defectImg3" :src="imgs.defectImg3" width="240" height="300"></img-self-plus>
236
+ </div>
237
+ </div>
238
+ </div>
239
+ </article>
240
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
241
+ </footer>
242
+ </modal>
243
+
244
+ </div>
245
+ </template>
246
+
247
+ <script>
248
+ import {PagedList, HttpResetClass} from 'vue-client'
249
+ import * as Util from '../../../components/Util'
250
+ import co from 'co'
251
+
252
+ const upSolveDefect = function * (self) {
253
+ let uploadData = self.solveModal.uploadData
254
+ //tag)
255
+ self.$resetpost('/rs/logic/pcRepairDefectNew', self.solveModal.uploadData, {resolveMsg: null, rejectMsg: null})
256
+ .then(res => {
257
+ if (res.data.code === 200) {
258
+ self.$showMessage('隐患已处理。')
259
+ self.showSolveModal = false
260
+ self.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
261
+ }
262
+ })
263
+ }
264
+
265
+ const sendRepair = function* (self) {
266
+ let preData = self.toRepairModal.preData
267
+ let uploadData = self.toRepairModal.uploadData
268
+
269
+ if (preData.dispatchType == '派发给站点') {
270
+ uploadData.model.serviceacitivity[0].f_meetunit = preData.f_meetunit
271
+ uploadData.model.serviceacitivity[0].f_reciever = preData.f_reciever
272
+ uploadData.model.f_meetunit = preData.f_meetunit
273
+ uploadData.model.f_orgstr = preData.f_reciever
274
+ uploadData.model.f_outlets = preData.f_outlets
275
+ } else if (preData.dispatchType == '派发给维修员') {
276
+ uploadData.model.serviceacitivity[0].f_reciever = preData.f_repairman
277
+ // uploadData.model.f_meetunit = self.$login.f.orgpathnames
278
+ // uploadData.model.f_orgstr = self.$login.f.orgpathstr
279
+ // uploadData.model.f_outlets = self.$login.f.f_parentname
280
+ uploadData.model.f_meetunit = self.$login.f.deps
281
+ uploadData.model.f_orgid = self.$login.f.orgid
282
+ uploadData.model.f_filiale = self.$login.f.org
283
+ uploadData.model.f_outlets = self.$login.f.deps
284
+ uploadData.model.f_filiale_id = self.$login.f.orgid
285
+ uploadData.toRepair = '一级派单'
286
+ }
287
+ let res = yield self.$resetpost('/rs/sql/GetUserForRepaireNew2', {data: {f_userinfo_id: self.check.f_userinfo_id}})
288
+ preData.userInfo = res.data[0]
289
+ uploadData.model = Object.assign(uploadData.model, preData.userInfo)
290
+ uploadData.user.f_userinfo_id = preData.userInfo.f_userinfo_id
291
+ uploadData.model.f_repair_date = Util.getNowDate()
292
+ uploadData.model.f_repairtype = preData.f_repairtype
293
+ uploadData.model.f_remarks = preData.f_remarks
294
+ // 拼接failure
295
+ let failure = []
296
+ self.model.rows.forEach(row => {
297
+ if (row.f_repaire_type == '未处理') {
298
+ failure.push({
299
+ f_failure_type: row.f_item_name,
300
+ failurecase: row.f_item_value?row.f_item_value.split(','):''
301
+ })
302
+ }
303
+ })
304
+ uploadData.model.failure = failure
305
+ // 拼接repairitems
306
+ let rows = JSON.parse(JSON.stringify(self.model.rows))
307
+ let repairitems = {
308
+ data: []
309
+ }
310
+ let safecheckOptions = [{"data": "已处理"}, {"data": "未处理"}]
311
+ // 取未处理的
312
+ rows = rows.filter(row => row.f_repaire_type == '未处理')
313
+ //tag)
314
+ // 开始拼接
315
+ rows.forEach(row => {
316
+ let existIndex = -1
317
+ // 判断该设备是否已经存在
318
+ for (let i = 0; i < repairitems.data.length; i++) {
319
+ if (repairitems.data[i].f_type == row.f_device_type) {
320
+ existIndex = i
321
+ break
322
+ }
323
+ }
324
+ if (existIndex == -1) {
325
+ // 不存在则新建
326
+ let newItem = {
327
+ f_type: row.f_device_type,
328
+ details: [{
329
+ f_defect_id: row.id,
330
+ f_project: `${row.f_item_name}:${row.f_item_value}`,
331
+ type: 'selector',
332
+ options: safecheckOptions
333
+ }]
334
+ }
335
+ repairitems.data.push(newItem)
336
+ } else {
337
+ // 存在则追加
338
+ repairitems.data[existIndex].details.push({
339
+ f_defect_id: row.id,
340
+ f_project: `${row.f_item_name}:${row.f_item_value}`,
341
+ type: 'selector',
342
+ options: safecheckOptions
343
+ })
344
+ }
345
+ })
346
+ uploadData.model.f_repairitems = repairitems
347
+ //tag)
348
+ // 调工单接口
349
+ let result = yield self.$resetpost('/rs/logic/callerSend', uploadData)
350
+ //tag)
351
+ if (result.data.f_service_id) {
352
+ const data = {
353
+ f_paper_id: rows[0].f_paper_id,
354
+ f_service_id: result.data.f_service_id,
355
+ itemsId: self.$login.convertToIn(rows.map(row => row.id))
356
+ }
357
+ //tag
358
+ let updateRes = yield self.$resetpost('/rs/logic/updateDefectStateNew', data)
359
+ if (updateRes.data.code == 200) {
360
+ self.$showMessage('隐患已转维修。')
361
+ self.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
362
+ }
363
+ }
364
+ }
365
+
366
+ export default {
367
+ title: '隐患项列表',
368
+ props: ['check'],
369
+ data() {
370
+ return {
371
+ model: new PagedList('rs/sql/GetDefectByPaperIdNew2', 100, {
372
+ f_paper_id: 'this.f_paper_id', f_item_value: 'this.f_item_value'
373
+ }),
374
+ imgshow: false,
375
+ imgs: {
376
+ defectImg: '',
377
+ defectImg1: '',
378
+ defectImg2: '',
379
+ defectImg3: '',
380
+ },
381
+ showSolveModal: false,
382
+ showToRepairModal: false,
383
+ showDefectModal: false,
384
+ valid: false,
385
+ needRepair: true,
386
+ solveModal: {
387
+ uploadData:{},
388
+ preData: {
389
+ type: 'view',
390
+ defectImg: '',
391
+ defectImg1: '',
392
+ defectImg2: '',
393
+ defectImg3: '',
394
+ repairedImg: '',
395
+ repairedImg2: '',
396
+ repairedImg3: '',
397
+ repairedImg4: '',
398
+
399
+ uploadData: {
400
+ id: '',
401
+ f_repairman: this.$login.f.name,
402
+ f_repair_date: Util.getNowDate().substr(0, 10),
403
+ f_repair_path: '',
404
+ imgSrc: '',
405
+ filename: ''
406
+ }
407
+ },
408
+ toRepairModal: {
409
+ preData: {
410
+ dispatchTypeOptions: [{label: '派发给站点', value: '派发给站点'}, {
411
+ label: '派发给维修员',
412
+ value: '派发给维修员'
413
+ }],
414
+ repairTypeOptions: this.$appdata.getParam('报修类型'),
415
+ dispatchType: '',
416
+ f_repairman: '',
417
+ f_repairtype: '',
418
+ f_remarks: '',
419
+ f_meetunit: '',
420
+ f_reciever: '',
421
+ f_outlets: '',
422
+ userInfo: {},
423
+ repairers: []
424
+ },
425
+ uploadData: {
426
+ id:'',
427
+ model: {
428
+ serviceacitivity: [{
429
+ f_service_acitivity_type: '派单'
430
+ }],
431
+ f_repairitems: {},
432
+ failure: '',
433
+ f_source: '安检',
434
+ f_service_id: '',
435
+ f_contact_phone: '',
436
+ f_meetunit: '',
437
+ f_phone: '',
438
+ f_user_name: '',
439
+ f_address: '',
440
+ f_repair_date: '',
441
+ f_reciever: '',
442
+ f_remarks: '',
443
+ f_user_type: '',
444
+ f_area: '',
445
+ f_unit_name: '',
446
+ f_street: '',
447
+ f_residential_area: '',
448
+ f_building: '',
449
+ f_unit: '',
450
+ f_floor: '',
451
+ f_room: '',
452
+ aState: '',
453
+ f_repairtype: '',
454
+ f_userinfo_id: '',
455
+ f_userinfo_code: '',
456
+ f_orgstr: '',
457
+ f_outlets: '',
458
+ f_attendant: this.$login.f.name
459
+ },
460
+ loginUser: {
461
+ name: this.$login.f.name,
462
+ ename: this.$login.f.ename
463
+ },
464
+ user: {
465
+ f_userinfo_id: ''
466
+ },
467
+ callObj: null
468
+ }
469
+ }
470
+ }
471
+ }
472
+ },
473
+ ready() {
474
+ this.model.f_item_value = `(SELECT stuff(( SELECT ',' + f_item_value FROM t_devices_items_lists WHERE ( f_is_defect = 'true' OR di.f_is_defect = 'true') AND f_item_id = di.id FOR xml path ( '' ) ),1,1,'' ) )`
475
+ if (this.check) {
476
+ this.model.f_paper_id = this.check.id
477
+ this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
478
+ }
479
+ this.getEmp()
480
+ },
481
+ methods: {
482
+ showimg(val){
483
+ this.imgs.defectImg = val.f_path?'/rs/image/file/' + val.f_path:''
484
+ this.imgs.defectImg1 = val.f_p1_path?'/rs/image/file/' + val.f_p1_path:''
485
+ this.imgs.defectImg2 = val.f_p2_path?'/rs/image/file/' + val.f_p2_path:''
486
+ this.imgs.defectImg3 = val.f_p3_path?'/rs/image/file/' + val.f_p3_path:''
487
+ this.imgshow = true
488
+ },
489
+ //审核通过
490
+ auditsure(info){
491
+ // 拿到t_devices_items 的ID,给f_audit_results中存入通过 如果未通过,需要可以再次派单,对隐患进行处理
492
+ var data = {
493
+ id: this.solveModal.uploadData.id,
494
+ info:info
495
+ }
496
+ let http = new HttpResetClass()
497
+ http.load('POST', 'rs/logic/DefectAuditUpdate', data, {resolveMsg: null, rejectMsg: null}).then((res) => {
498
+ if(res.data.code == 200){
499
+ this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
500
+ this.showSolveModal = false
501
+ this.showToRepairModal = false
502
+ this.$showMessage('提交成功')
503
+ }else{
504
+ this.$showMessage('提交失败,请重试')
505
+ }
506
+ })
507
+ },
508
+ solveDefect(row, type) {
509
+ this.solveModal.preData.defectImg = row.f_path?'/rs/image/file/' + row.f_path:''
510
+ this.solveModal.preData.defectImg1 = row.f_p1_path?'/rs/image/file/' + row.f_p1_path:''
511
+ this.solveModal.preData.defectImg2 = row.f_p2_path?'/rs/image/file/' + row.f_p2_path:''
512
+ this.solveModal.preData.defectImg3 = row.f_p3_path?'/rs/image/file/' + row.f_p3_path:''
513
+ this.solveModal.preData.repairedImg = '/rs/image/file/' + row.f_dealpath
514
+ this.solveModal.preData.repairedImg2 = row.f_other_dealpath1 ? ('/rs/image/file/' + row.f_other_dealpath1) : ''
515
+ this.solveModal.preData.repairedImg3 = row.f_other_dealpath2 ? ('/rs/image/file/' + row.f_other_dealpath2) : ''
516
+ this.solveModal.preData.repairedImg4 = row.f_repair4_path ? ('/rs/image/file/' + row.f_repair4_path) : ''
517
+ this.solveModal.uploadData.id = row.id
518
+ this.solveModal.preData.type = type
519
+ if (type == 'view') {
520
+ this.solveModal.preData.f_repair_path = '/rs/image/file/' + row.f_repair_path
521
+ this.solveModal.uploadData.f_repairman = row.f_repairman
522
+ this.solveModal.uploadData.f_repair_date = row.f_repair_date
523
+ this.$set('solveModal.f_audit_results',row.f_audit_results)
524
+ } else {
525
+ this.solveModal.uploadData.f_repairman = this.$login.f.name
526
+ this.solveModal.uploadData.f_repair_date = Util.getNowDate().substr(0, 10)
527
+ }
528
+ this.showSolveModal = !this.showSolveModal
529
+ },
530
+ ok() {
531
+ if (!(this.solveModal.uploadData.filename && this.solveModal.uploadData.filename.length > 0)) {
532
+ this.$showMessage('请录入处理后照片')
533
+ return
534
+ }
535
+ co(upSolveDefect(this))
536
+ },
537
+ cancel() {
538
+ this.showSolveModal = false
539
+ this.showToRepairModal = false
540
+ },
541
+ toRepair() {
542
+ this.showToRepairModal = !this.showToRepairModal
543
+ },
544
+ getSiteRes(obj) {
545
+ //tag
546
+ //tag
547
+ if(obj.resids[0]){
548
+ this.toRepairModal.preData.f_meetunit = obj.res.join('.')
549
+ this.toRepairModal.preData.f_reciever = obj.resids.join('.')
550
+ }else {
551
+ this.toRepairModal.preData.f_meetunit = ''
552
+ this.toRepairModal.preData.f_reciever = ''
553
+ this.toRepairModal.preData.f_outlets = ''
554
+ }
555
+ },
556
+ // 获取维修员
557
+ getEmp() {
558
+ let val = {source: 'this.getParentByType($organization$).getChildByName($维修员$).getUsers()', userid: `${this.$login.f.id}`}
559
+ let http = new HttpResetClass()
560
+ http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
561
+ res.data.forEach((item) => {
562
+ this.toRepairModal.preData.repairers.push({label: item.name, value: item.name})
563
+ })
564
+ })
565
+ },
566
+ confirm() {
567
+ if (this.toRepairModal.preData.dispatchType == '派发给站点' && !this.toRepairModal.preData.f_meetunit) {
568
+ this.$showMessage('请选择站点。')
569
+ return
570
+ }
571
+ co(sendRepair(this))
572
+ }
573
+ },
574
+ watch: {
575
+ 'check'() {
576
+ this.model.f_paper_id = this.check.id
577
+ this.model.search(`(f_repaire_type != '无隐患' or f_repaire_type is null)`, {})
578
+ },
579
+ 'model.rows'() {
580
+ if (this.model.rows.length > 0) {
581
+ if (this.model.rows[0].f_repaire_type == '未处理') {
582
+ this.needRepair = true
583
+ return
584
+ }
585
+ }
586
+ this.needRepair = false
587
+ }
588
+ }
589
+ }
590
+ </script>
591
+ <style lang="less" scoped>
592
+ .select-error {
593
+ button {
594
+ border-bottom: 1px solid #a94442 !important;
595
+ }
596
+ }
597
+ </style>