safecheck-client 4.0.1-72 → 4.0.1-75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/config/dev.env.js +6 -6
  5. package/config/index.js +38 -38
  6. package/config/prod.env.js +3 -3
  7. package/config/test.env.js +6 -6
  8. package/docs/AppBase.md +22 -22
  9. package/docs/Busy.md +14 -14
  10. package/docs/CriteriaPaged.md +47 -47
  11. package/docs/DataGrid.md +54 -54
  12. package/docs/DataModel.md +22 -22
  13. package/docs/Dynamic.md +42 -42
  14. package/docs/GetParams.md +11 -11
  15. package/docs/HttpBusy.md +13 -13
  16. package/docs/HttpStore.md +29 -29
  17. package/docs/MessageBox.md +28 -28
  18. package/docs/PagedList.md +29 -29
  19. package/docs/Pager.md +21 -21
  20. package/docs/Project.md +23 -23
  21. package/docs/Route.md +105 -105
  22. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  23. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  24. package/docs/Task.md +46 -46
  25. package/docs/TreeList.md +28 -28
  26. package/docs/TreeMixin.md +18 -18
  27. package/docs/all.md +10 -10
  28. package/docs/list.md +42 -42
  29. package/docs/partial.md +75 -75
  30. package/docs/selector.md +82 -82
  31. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  32. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue-strap/345/217/230/346/233/264/350/256/260/345/275/225.md +7 -7
  33. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue/345/217/230/346/233/264/350/256/260/345/275/225.md +13 -13
  34. package/docs//345/274/200/345/217/221/346/226/207/346/241/243//345/274/200/345/217/221/347/216/257/345/242/203/350/256/276/347/275/256.md +77 -77
  35. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  36. package/examples/AddressList/App.vue +13 -13
  37. package/examples/AddressList/index.html +11 -11
  38. package/examples/DispatchList/App.vue +10 -10
  39. package/examples/DispatchList/BaseTree.vue +13 -13
  40. package/examples/DispatchList/Init.vue +22 -22
  41. package/examples/DispatchList/Test.vue +20 -20
  42. package/examples/DispatchList/index.html +11 -11
  43. package/examples/DispatchList/main.js +18 -18
  44. package/home.html +16 -16
  45. package/package.json +1 -1
  46. package/publish.bat +7 -7
  47. package/release.bat +5 -5
  48. package/src/App.vue +31 -31
  49. package/src/Widget.vue +13 -13
  50. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  51. package/src/android-bootstrap/less/.csscomb.json +304 -304
  52. package/src/android-bootstrap/less/.csslintrc +19 -19
  53. package/src/android-bootstrap/less/alerts.less +73 -73
  54. package/src/android-bootstrap/less/badges.less +66 -66
  55. package/src/android-bootstrap/less/bootstrap.less +56 -56
  56. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  57. package/src/android-bootstrap/less/button-groups.less +247 -247
  58. package/src/android-bootstrap/less/buttons.less +173 -173
  59. package/src/android-bootstrap/less/carousel.less +269 -269
  60. package/src/android-bootstrap/less/close.less +34 -34
  61. package/src/android-bootstrap/less/code.less +69 -69
  62. package/src/android-bootstrap/less/component-animations.less +33 -33
  63. package/src/android-bootstrap/less/grid.less +84 -84
  64. package/src/android-bootstrap/less/input-groups.less +167 -167
  65. package/src/android-bootstrap/less/jumbotron.less +52 -52
  66. package/src/android-bootstrap/less/labels.less +64 -64
  67. package/src/android-bootstrap/less/list-group.less +141 -141
  68. package/src/android-bootstrap/less/media.less +66 -66
  69. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  70. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  71. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  72. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  73. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  74. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  75. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  76. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  77. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  78. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  79. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  80. package/src/android-bootstrap/less/mixins/image.less +33 -33
  81. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  82. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  83. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  84. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  85. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  86. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  87. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  88. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  89. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  90. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  91. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  92. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  93. package/src/android-bootstrap/less/mixins/size.less +10 -10
  94. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  95. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  96. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  97. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  98. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  99. package/src/android-bootstrap/less/mixins.less +40 -40
  100. package/src/android-bootstrap/less/modals.less +151 -151
  101. package/src/android-bootstrap/less/navbar.less +660 -660
  102. package/src/android-bootstrap/less/navs.less +290 -290
  103. package/src/android-bootstrap/less/normalize.less +424 -424
  104. package/src/android-bootstrap/less/pager.less +76 -76
  105. package/src/android-bootstrap/less/pagination.less +89 -89
  106. package/src/android-bootstrap/less/panels.less +274 -274
  107. package/src/android-bootstrap/less/popovers.less +131 -131
  108. package/src/android-bootstrap/less/print.less +101 -101
  109. package/src/android-bootstrap/less/progress-bars.less +87 -87
  110. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  111. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  112. package/src/android-bootstrap/less/scaffolding.less +161 -161
  113. package/src/android-bootstrap/less/tables.less +262 -262
  114. package/src/android-bootstrap/less/theme.less +291 -291
  115. package/src/android-bootstrap/less/thumbnails.less +36 -36
  116. package/src/android-bootstrap/less/tooltip.less +102 -102
  117. package/src/android-bootstrap/less/type.less +303 -303
  118. package/src/android-bootstrap/less/utilities.less +55 -55
  119. package/src/android-bootstrap/less/variables.less +896 -896
  120. package/src/android-bootstrap/less/wells.less +29 -29
  121. package/src/bootstrap/less/.csscomb.json +304 -304
  122. package/src/bootstrap/less/.csslintrc +19 -19
  123. package/src/bootstrap/less/alerts.less +73 -73
  124. package/src/bootstrap/less/badges.less +66 -66
  125. package/src/bootstrap/less/breadcrumbs.less +26 -26
  126. package/src/bootstrap/less/button-groups.less +247 -247
  127. package/src/bootstrap/less/buttons.less +172 -172
  128. package/src/bootstrap/less/carousel.less +269 -269
  129. package/src/bootstrap/less/close.less +34 -34
  130. package/src/bootstrap/less/code.less +69 -69
  131. package/src/bootstrap/less/component-animations.less +33 -33
  132. package/src/bootstrap/less/dropdowns.less +216 -216
  133. package/src/bootstrap/less/grid.less +84 -84
  134. package/src/bootstrap/less/input-groups.less +167 -167
  135. package/src/bootstrap/less/jumbotron.less +52 -52
  136. package/src/bootstrap/less/labels.less +64 -64
  137. package/src/bootstrap/less/list-group.less +141 -141
  138. package/src/bootstrap/less/media.less +66 -66
  139. package/src/bootstrap/less/mixins/alerts.less +14 -14
  140. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  141. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  142. package/src/bootstrap/less/mixins/buttons.less +69 -69
  143. package/src/bootstrap/less/mixins/center-block.less +7 -7
  144. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  145. package/src/bootstrap/less/mixins/forms.less +90 -90
  146. package/src/bootstrap/less/mixins/gradients.less +59 -59
  147. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  148. package/src/bootstrap/less/mixins/grid.less +122 -122
  149. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  150. package/src/bootstrap/less/mixins/image.less +33 -33
  151. package/src/bootstrap/less/mixins/labels.less +12 -12
  152. package/src/bootstrap/less/mixins/list-group.less +30 -30
  153. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  154. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  155. package/src/bootstrap/less/mixins/opacity.less +8 -8
  156. package/src/bootstrap/less/mixins/pagination.less +24 -24
  157. package/src/bootstrap/less/mixins/panels.less +24 -24
  158. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  159. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  160. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  161. package/src/bootstrap/less/mixins/resize.less +6 -6
  162. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  163. package/src/bootstrap/less/mixins/size.less +10 -10
  164. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  165. package/src/bootstrap/less/mixins/table-row.less +44 -44
  166. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  167. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  168. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  169. package/src/bootstrap/less/mixins.less +40 -40
  170. package/src/bootstrap/less/modals.less +151 -151
  171. package/src/bootstrap/less/navbar.less +660 -660
  172. package/src/bootstrap/less/normalize.less +424 -424
  173. package/src/bootstrap/less/pagination.less +89 -89
  174. package/src/bootstrap/less/panels.less +275 -275
  175. package/src/bootstrap/less/popovers.less +131 -131
  176. package/src/bootstrap/less/print.less +101 -101
  177. package/src/bootstrap/less/progress-bars.less +87 -87
  178. package/src/bootstrap/less/responsive-embed.less +35 -35
  179. package/src/bootstrap/less/responsive-utilities.less +194 -194
  180. package/src/bootstrap/less/scaffolding.less +161 -161
  181. package/src/bootstrap/less/theme.less +291 -291
  182. package/src/bootstrap/less/thumbnails.less +36 -36
  183. package/src/bootstrap/less/tooltip.less +102 -102
  184. package/src/bootstrap/less/type.less +303 -303
  185. package/src/bootstrap/less/utilities.less +55 -55
  186. package/src/bootstrap/less/wells.less +29 -29
  187. package/src/components/CheckerCount/CheckCountUserList.vue +144 -144
  188. package/src/components/DefectDealMain/DefectListNew.vue +642 -642
  189. package/src/components/FileUpload.vue +696 -696
  190. package/src/components/Hello.vue +39 -39
  191. package/src/components/LeftTree.vue +27 -27
  192. package/src/components/NewDefectList/DefectListNew.vue +682 -682
  193. package/src/components/Util/RightTreeSafeDep.vue +12 -0
  194. package/src/components/android/AddPlanItem.vue +447 -447
  195. package/src/components/android/AddPlanItemYy.vue +451 -451
  196. package/src/components/android/AddSpecialPlanItem.vue +426 -426
  197. package/src/components/android/AndroidDefectDeal.vue +667 -667
  198. package/src/components/android/AttendanceTally.vue +116 -116
  199. package/src/components/android/Blank.vue +10 -10
  200. package/src/components/android/CheckUnplanPage.vue +56 -56
  201. package/src/components/android/Checker.vue +12 -12
  202. package/src/components/android/CheckerAnnual.vue +81 -81
  203. package/src/components/android/CheckerAvarta.vue +82 -82
  204. package/src/components/android/CurrentCreateYy.vue +1051 -1051
  205. package/src/components/android/DailyworkloadQuery.vue +473 -473
  206. package/src/components/android/Devices.vue +327 -327
  207. package/src/components/android/Devicesm.vue +327 -327
  208. package/src/components/android/EquipmentInspection.vue +348 -348
  209. package/src/components/android/FootprintMap.vue +120 -120
  210. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  211. package/src/components/android/MasterMain.vue +77 -77
  212. package/src/components/android/Menu.vue +132 -132
  213. package/src/components/android/NewCheckpaperAndroid.vue +1343 -1343
  214. package/src/components/android/PaperAlarm.vue +85 -85
  215. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  216. package/src/components/android/PaperFeedbackm.vue +1026 -1026
  217. package/src/components/android/PhoneRecordInfo.vue +113 -113
  218. package/src/components/android/PhoneSellInfo.vue +113 -113
  219. package/src/components/android/PhoneUpDetail.vue +1040 -1040
  220. package/src/components/android/PlumberAnnual.vue +83 -83
  221. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  222. package/src/components/android/PlumberMonthly.vue +84 -84
  223. package/src/components/android/PostMap.vue +83 -83
  224. package/src/components/android/QRCode/QRCodeBinding.vue +300 -300
  225. package/src/components/android/QRCode/QRCodePage.vue +212 -212
  226. package/src/components/android/QueryCheckHistory.vue +122 -122
  227. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  228. package/src/components/android/RepairMain.vue +60 -60
  229. package/src/components/android/Repairman.vue +12 -12
  230. package/src/components/android/SafePlanItem.vue +509 -509
  231. package/src/components/android/SafecheckOrderV.vue +2281 -2275
  232. package/src/components/android/StationMaster.vue +12 -12
  233. package/src/components/android/examples/SafeListExamples.vue +296 -296
  234. package/src/components/android/old/PaperFeedback.vue +1015 -1015
  235. package/src/components/android/recheck/Recheck.vue +402 -402
  236. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  237. package/src/components/checkplan/checkmsg.vue +459 -459
  238. package/src/components/defect/DefectList.vue +507 -507
  239. package/src/components/defect/DefectListWeixiu.vue +484 -484
  240. package/src/components/defects/DefectModal.vue +101 -101
  241. package/src/components/defects/DevicesAndItem.vue +39 -39
  242. package/src/components/filialCircle/CircleList.vue +139 -139
  243. package/src/components/inspections/AddInspectPlanItem.vue +325 -325
  244. package/src/components/inspections/AddInspectPlanItems.vue +325 -325
  245. package/src/components/inspections/AddInspectPlanItemss.vue +317 -317
  246. package/src/components/inspections/DisplayInspectionList.vue +1224 -1224
  247. package/src/components/inspections/inspectionOrderV.vue +1853 -1853
  248. package/src/components/inspections/inspectionOrderVs.vue +1853 -1853
  249. package/src/components/inspections/inspectionOrderVss.vue +1856 -1856
  250. package/src/components/inspections/inspectionUserInfo.vue +398 -398
  251. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  252. package/src/components/map/PersonTrack.vue +226 -226
  253. package/src/components/map/SecurityCheckCoordinates.vue +361 -361
  254. package/src/components/notice/NoticeForm.vue +100 -100
  255. package/src/components/notice/NoticeIssue.vue +20 -20
  256. package/src/components/paper/PicViewer.vue +18 -18
  257. package/src/components/paper/RegionalList.vue +220 -220
  258. package/src/components/pc/AnnouncementPC.vue +524 -524
  259. package/src/components/pc/DefectList.vue +742 -742
  260. package/src/components/pc/DefectMaterialLook.vue +98 -98
  261. package/src/components/pc/DeviceChange.vue +1068 -1068
  262. package/src/components/pc/PaperDefectMain.vue +905 -905
  263. package/src/components/pc/RoleSelectorDep.vue +9 -2
  264. package/src/components/pc/SafeVisitInfo.vue +261 -261
  265. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  266. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  267. package/src/components/phonestate/PostMap.vue +82 -82
  268. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  269. package/src/components/report/HiddenSituation.vue +165 -165
  270. package/src/components/rongcheng/AspiratedOrderV.vue +2377 -2377
  271. package/src/components/rongcheng/CurrentCreateOnline.vue +906 -906
  272. package/src/components/rongcheng/DefectList.vue +560 -560
  273. package/src/components/rongcheng/SafecheckOrderVCli.vue +2641 -2641
  274. package/src/components/safecheckNew/android/AddPlanItem.vue +419 -419
  275. package/src/components/safecheckNew/android/CurrentCreate.vue +1050 -1050
  276. package/src/components/safecheckNew/android/Recheck.vue +379 -379
  277. package/src/components/sendsingle/EquipmentManagement.vue +727 -727
  278. package/src/components/shaoguan/DefectList.vue +473 -473
  279. package/src/components/shaoguan/SafecheckOrderV.vue +2140 -2140
  280. package/src/components/tongcheng/PaperFeedback.vue +1061 -1061
  281. package/src/components/userfile/MeterFile.vue +145 -145
  282. package/src/components/userfile/MeterModify.vue +46 -46
  283. package/src/components/userfile/SecurityAudit.vue +243 -243
  284. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  285. package/src/filiale/ALshan/pc/DefectListWeixiu.vue +476 -476
  286. package/src/filiale/ancheng/android/SafecheckOrderV.vue +2703 -2703
  287. package/src/filiale/ancheng/android/SafecheckUserInfo.vue +737 -737
  288. package/src/filiale/ancheng/pc/checkScreen.vue +923 -923
  289. package/src/filiale/ankangyihua/android/AddPlanItem.vue +446 -446
  290. package/src/filiale/ankangyihua/android/SafecheckOrderV.vue +2908 -2908
  291. package/src/filiale/ankangyihua/pc/DefectListWeixiu.vue +491 -491
  292. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -2785
  293. package/src/filiale/baiyin/pc/DefectListNew.vue +597 -597
  294. package/src/filiale/bayan/android/Edit.vue +132 -132
  295. package/src/filiale/bayan/pc/DefectListNew.vue +597 -597
  296. package/src/filiale/bayan/pc/DeviceChange.vue +1838 -1838
  297. package/src/filiale/bayan/pc/HiddenSituation.vue +295 -295
  298. package/src/filiale/dexin/android/CasualSave.vue +1050 -1050
  299. package/src/filiale/dexin/android/SafecheckOrderV.vue +2950 -2950
  300. package/src/filiale/fugou/android/AddPlanItem.vue +413 -413
  301. package/src/filiale/fugou/android/SafecheckOrderV.vue +2796 -2796
  302. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +830 -830
  303. package/src/filiale/fugu/android/SafecheckOrderV.vue +2484 -2484
  304. package/src/filiale/fugu/pc/NewCheckpaper.vue +1287 -1287
  305. package/src/filiale/ganquan/android/AddPlanItem.vue +444 -444
  306. package/src/filiale/ganquan/android/SafecheckOrderV.vue +2485 -2485
  307. package/src/filiale/ganquan/pc/NewCheckpaper.vue +1354 -1354
  308. package/src/filiale/guangxi/pc/DefectListNew.vue +518 -518
  309. package/src/filiale/hanzhong/android/SafecheckOrderV.vue +2683 -2683
  310. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  311. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -2803
  312. package/src/filiale/huatong/android/SafecheckOrderV.vue +2426 -2426
  313. package/src/filiale/huatong/android/SafecheckUserInfo.vue +749 -749
  314. package/src/filiale/huayin/pc/NewCheckpaper.vue +1307 -1307
  315. package/src/filiale/jiaocheng/android/AddPlanItem.vue +435 -435
  316. package/src/filiale/jiaocheng/android/SafecheckUserInfo.vue +737 -737
  317. package/src/filiale/jiaocheng/pc/DefectListNew.vue +576 -576
  318. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -447
  319. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -2807
  320. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -784
  321. package/src/filiale/jinbin/pc/DefectListWeixiu.vue +478 -478
  322. package/src/filiale/jingyang/android/AddPlanItem.vue +458 -458
  323. package/src/filiale/jingyang/android/SafecheckOrderV.vue +2734 -2734
  324. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  325. package/src/filiale/jinhong/pc/CheckBookList.vue +2 -0
  326. package/src/filiale/jinhong/pc/PaperList.vue +853 -853
  327. package/src/filiale/jinhong/pc/PlanManage.vue +927 -927
  328. package/src/filiale/jinhong/pc/checkPlanList.vue +2 -0
  329. package/src/filiale/kelai/android/AddPlanItem.vue +488 -488
  330. package/src/filiale/kelai/android/SafecheckUserInfo.vue +774 -774
  331. package/src/filiale/kelai/android/SafecheckUserInfo1.vue +618 -618
  332. package/src/filiale/kelai/pc/DefectListNew.vue +688 -688
  333. package/src/filiale/kelai/pc/FaultLimitGas/FaultLimitGasList.vue +518 -518
  334. package/src/filiale/kelai/pc/NewCheckpaper.vue +1454 -1454
  335. package/src/filiale/liaoyuan/android/AddPlanItem.vue +412 -412
  336. package/src/filiale/liaoyuan/android/CurrentCreate.vue +1066 -1066
  337. package/src/filiale/liaoyuan/android/SafecheckOrderV.vue +2388 -2388
  338. package/src/filiale/liaoyuan/android/SafecheckUserInfo.vue +557 -557
  339. package/src/filiale/liaoyuan/pc/DefectListWeixiu.vue +489 -489
  340. package/src/filiale/liaoyuan/pc/NewCheckpaper.vue +1020 -1020
  341. package/src/filiale/lixian/android/SafecheckOrderV.vue +2404 -2404
  342. package/src/filiale/lixian/android/SafecheckUserInfo.vue +578 -578
  343. package/src/filiale/lixian/pc/NewCheckpaper.vue +1211 -1211
  344. package/src/filiale/meihekou/android/AreaPlan.vue +577 -577
  345. package/src/filiale/meihekou/android/MeterReading.vue +110 -110
  346. package/src/filiale/meihekou/android/PhoneUpUserinfo.vue +1307 -1307
  347. package/src/filiale/meihekou/android/SafecheckUserInfo.vue +785 -785
  348. package/src/filiale/meihekou/pc/NewCheckpaperTemp.vue +1288 -1288
  349. package/src/filiale/minsheng/android/SafecheckUserInfo.vue +754 -754
  350. package/src/filiale/minsheng/pc/DefectListNew.vue +535 -535
  351. package/src/filiale/pingxiang/android/SafecheckOrderV.vue +2424 -2424
  352. package/src/filiale/pingxiang/android/SafecheckUserInfo.vue +600 -600
  353. package/src/filiale/pingxiang/pc/DefectListNew.vue +519 -519
  354. package/src/filiale/pingxiang/pc/NewCheckpaper.vue +1294 -1294
  355. package/src/filiale/qianneng/android/AddPlanItem.vue +482 -482
  356. package/src/filiale/qianneng/android/SafecheckOrderV.vue +2785 -2785
  357. package/src/filiale/qianneng/android/SafecheckUserInfo.vue +775 -775
  358. package/src/filiale/qianneng/pc/DefectListNew.vue +576 -576
  359. package/src/filiale/qianneng/pc/NewCheckpaper.vue +1546 -1546
  360. package/src/filiale/qingjian/android/SafecheckOrderV.vue +2844 -2844
  361. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  362. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1871 -1871
  363. package/src/filiale/qingjian/pc.js +15 -15
  364. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -450
  365. package/src/filiale/qingtongxia/android/SafecheckOrderV.vue +2726 -2726
  366. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -782
  367. package/src/filiale/qingtongxia/pc/DefectListNew.vue +594 -594
  368. package/src/filiale/rizhao/android/AddPlanItem.vue +446 -446
  369. package/src/filiale/rizhao/android/SafecheckOrderV.vue +2430 -2430
  370. package/src/filiale/rizhao/android/SafecheckUserInfo.vue +640 -640
  371. package/src/filiale/rizhao/pc/DefectList.vue +489 -489
  372. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  373. package/src/filiale/rongchuang/android/checkpapermsg.vue +209 -209
  374. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -2747
  375. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -804
  376. package/src/filiale/shanggao/android/SafecheckOrderV.vue +2426 -2426
  377. package/src/filiale/shanxian/android/SafecheckUserInfo.vue +749 -749
  378. package/src/filiale/shanxian/pc/HiddenSituation.vue +121 -121
  379. package/src/filiale/shanxian/pc/NewCheckpaper.vue +1526 -1526
  380. package/src/filiale/shexian/android/AddPlanItem.vue +444 -444
  381. package/src/filiale/shexian/android/SafecheckOrderV.vue +2879 -2879
  382. package/src/filiale/shexian/pc/DefectListNew.vue +593 -593
  383. package/src/filiale/shexian/pc/NewCheckpaper.vue +1469 -1469
  384. package/src/filiale/shimen/android/SafecheckUserInfo.vue +547 -547
  385. package/src/filiale/shimen/pc/DefectList.vue +473 -473
  386. package/src/filiale/shimen/pc/NewCheckpaper.vue +1275 -1275
  387. package/src/filiale/siyang/android/AddPlanItem.vue +450 -450
  388. package/src/filiale/siyang/android/CurrentCreate.vue +1051 -1051
  389. package/src/filiale/siyang/android/PhoneRecordInfo.vue +214 -214
  390. package/src/filiale/siyang/android/SafecheckOrderV.vue +2796 -2796
  391. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  392. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -167
  393. package/src/filiale/taiyuan/android/SafecheckOrderV.vue +2347 -2341
  394. package/src/filiale/taiyuan/pc/NewCheckpaper.vue +1976 -1976
  395. package/src/filiale/taiyuan/pc/PlanManage.vue +891 -891
  396. package/src/filiale/taiyuan/pc/checkUserList.vue +798 -798
  397. package/src/filiale/taiyuan/pc.js +15 -15
  398. package/src/filiale/tianke/android/AddPlanItem.vue +455 -455
  399. package/src/filiale/tianke/android/SafecheckOrderV.vue +2431 -2431
  400. package/src/filiale/tianke/android/SafecheckUserInfo.vue +744 -744
  401. package/src/filiale/tongchuan/android/AddPlanItem.vue +483 -483
  402. package/src/filiale/tongchuan/android/PhoneRecordInfo.vue +191 -191
  403. package/src/filiale/tongchuan/android/PhoneSellInfo.vue +113 -113
  404. package/src/filiale/tongchuan/android/SafecheckUserInfo.vue +720 -720
  405. package/src/filiale/tongchuan/pc/CheckBookDetails.vue +209 -209
  406. package/src/filiale/tongchuan/pc/DefectListWeixiu.vue +484 -484
  407. package/src/filiale/tongchuan/pc/HiddenSituation.vue +166 -166
  408. package/src/filiale/weinan/android/AddPlanItem.vue +438 -438
  409. package/src/filiale/weinan/android/CurrentCreate.vue +1171 -1171
  410. package/src/filiale/weinan/android/CurrentCreateOnline.vue +911 -911
  411. package/src/filiale/weinan/android/SafePlanItem.vue +440 -440
  412. package/src/filiale/weinan/android/SafecheckUserInfo.vue +778 -778
  413. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  414. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -1088
  415. package/src/filiale/weinan/pc/HiddenSituation.vue +167 -167
  416. package/src/filiale/weinan/pc/checkScreen.vue +1094 -1094
  417. package/src/filiale/weinanct/android/SafecheckOrderV.vue +2730 -2730
  418. package/src/filiale/weinanct/pc/NewCheckpaper.vue +1315 -1315
  419. package/src/filiale/wensu/android/AddPlanItem.vue +495 -495
  420. package/src/filiale/wensu/android/AndroidDefectDeal.vue +464 -464
  421. package/src/filiale/wensu/android/PaperFeedback.vue +1358 -1358
  422. package/src/filiale/wensu/android/SafecheckOrderV.vue +2430 -2430
  423. package/src/filiale/wensu/android/SafecheckUserInfo.vue +627 -627
  424. package/src/filiale/wensu/pc/DefectListNew.vue +735 -735
  425. package/src/filiale/wenxi/android/AddPlanItem.vue +431 -431
  426. package/src/filiale/wenxi/android/SafecheckOrderV.vue +2671 -2671
  427. package/src/filiale/wenxi/android/SafecheckUserInfo.vue +673 -673
  428. package/src/filiale/wenxi/pc/DefectList.vue +653 -653
  429. package/src/filiale/wenxi/pc/NewCheckpaper.vue +1358 -1358
  430. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2241
  431. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -596
  432. package/src/filiale/wuan/pc/DefectListWeixiu.vue +506 -506
  433. package/src/filiale/wuan/pc/NewCheckpaper.vue +1169 -1169
  434. package/src/filiale/wuhai/android/SafecheckOrderV.vue +2456 -2456
  435. package/src/filiale/wuhai/android/SafecheckUserInfo.vue +573 -573
  436. package/src/filiale/wuhai/pc/NewCheckpaper.vue +1281 -1281
  437. package/src/filiale/xiangyuanzhongai/android/PhoneUpUserinfo.vue +1251 -1251
  438. package/src/filiale/xinkang/pc/CheckSearchUser.vue +1026 -1026
  439. package/src/filiale/xinkang/pc/DefectListWeixiu.vue +475 -475
  440. package/src/filiale/xinkang/pc/NewCheckpaper.vue +37 -28
  441. package/src/filiale/xinkang/pc/PaperList.vue +24 -2
  442. package/src/filiale/yangchunboneng/android/AddPlanItem.vue +496 -496
  443. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +2865 -2865
  444. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  445. package/src/filiale/yangchunboneng/pc/DefectListNew.vue +576 -576
  446. package/src/filiale/yongzhou/android/SafecheckOrderV.vue +2774 -2774
  447. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  448. package/src/filiale/yuansheng/android/SafecheckOrderV.vue +2758 -2758
  449. package/src/filiale/yuansheng/android/SafecheckUserInfo.vue +797 -797
  450. package/src/filiale/yuansheng/pc/DefectListNew.vue +524 -524
  451. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +1371 -1371
  452. package/src/filiale/yuansheng/pc/checkmsg.vue +464 -464
  453. package/src/filiale/yunchengminsheng/android/DailyworkloadQuery.vue +491 -491
  454. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1509 -1509
  455. package/src/filiale/yunchengminsheng/android/PhoneSellInfo.vue +113 -113
  456. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1270 -1270
  457. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +785 -785
  458. package/src/filiale/yunchengminsheng/android.js +15 -15
  459. package/src/filiale/yunchengminsheng/pc/PaperList.vue +811 -811
  460. package/src/filiale/yunchengminsheng/pc.js +15 -15
  461. package/src/filiale/zhongsheng/android/BuyRecords.vue +122 -122
  462. package/src/filiale/zhongsheng/android/SafecheckOrderV.vue +2461 -2461
  463. package/src/filiale/zhongsheng/android/SafecheckUserInfo.vue +690 -690
  464. package/src/filiale/zhongsheng/pc/DefectListWeixiu.vue +514 -514
  465. package/src/filiale/zhongsheng/pc/NewCheckpaper.vue +1322 -1322
  466. package/src/filiale/zhongyi/android/SafecheckOrderV.vue +2431 -2431
  467. package/src/filiale/zhongyi/pc/DefectListNew.vue +514 -514
  468. package/src/filiale/zhoukou/android/SafecheckOrderV.vue +2502 -2502
  469. package/src/filiale/zhoukou/android/SafecheckUserInfo.vue +588 -588
  470. package/src/main.js +33 -32
  471. package/src/plugins/LoadData.js +10 -10
  472. package/src/plugins/LoadParams.js +24 -24
  473. package/src/safecheck.js +924 -924
  474. package/src/stores/wxconfig.js +10 -10
  475. package/src/utils/getNowDate.js +33 -33
  476. package/test/e2e/custom-assertions/elementCount.js +26 -26
  477. package/test/e2e/nightwatch.conf.js +40 -40
  478. package/test/e2e/runner.js +30 -30
  479. package/test/e2e/specs/test.js +13 -13
  480. package/test/unit/.eslintrc +5 -5
  481. package/test/unit/TestUtil.js +62 -62
  482. package/test/unit/context.html +20 -20
  483. package/test/unit/index.js +13 -13
@@ -1,905 +1,905 @@
1
- <template>
2
- <div class="flex-row">
3
- <div class="basic-main">
4
- <criteria-paged :model="model" v-ref:paged @sort="sort">
5
- <criteria partial='criteria' class="search_area" @condition-changed='$parent.selfSearch' v-ref:criteria>
6
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
- <div class="row">
8
- <div class="form-group col-sm-2" >
9
- <label class="font_normal_body">客户编号</label>
10
- <input type="text" class="input_search" v-model="model.f_userinfo_code"
11
- style="width: 60%" placeholder="客户编号" condition="f_userinfo_code='{}'">
12
- </div>
13
- <div class="form-group col-sm-2" >
14
- <label class="font_normal_body">客户名称</label>
15
- <input type="text" class="input_search" v-model="model.f_user_name"
16
- style="width: 60%" placeholder="客户名称" condition="f_user_name like '%{}%'">
17
- </div>
18
- <div class="form-group col-sm-2" >
19
- <label class="font_normal_body">客户电话</label>
20
- <input type="text" class="input_search" v-model="model.f_user_phone"
21
- style="width: 60%" placeholder="客户电话" condition="f_user_phone like '%{}%'">
22
- </div>
23
- <div class="form-group col-sm-2" >
24
- <label class="font_normal_body">小&emsp;&emsp;区</label>
25
- <input type="text" class="input_search" v-model="model.f_residential_area"
26
- style="width: 60%" placeholder="小区" condition="f_residential_area like '%{}%'">
27
- </div>
28
- <div class="form-group col-sm-4" style="display: flex; gap: 15px">
29
- <export-excel :data="$parent.$parent.searchData"
30
- :field="$parent.$parent.excelHeaders"
31
- progress="safeGetExportProgress"
32
- sqlurl="api/af-safecheck/logic/exportfile" sql-name="defectDetails" template-name='安检隐患明细'></export-excel>
33
- <button class="button_search" @click="$parent.$parent.showaudio()" v-if="$parent.$parent.audioshow">隐藏</button>
34
- <button class="button_search" @click="$parent.$parent.toRepair" v-if="$parent.$parent.canToRepair == '是'">转维修</button>
35
- <button class="button_search" @click="search()">查询</button>
36
- <div class="button_spacing"
37
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
38
- @click="$parent.$parent.hidden()"></div>
39
- </div>
40
-
41
- </div>
42
- <div class="row">
43
- <div class="col-sm-4 form-group" v-show="$parent.$parent.criteriaShow" style="margin: 0">
44
- <role-selector-safe
45
- role-name="安检员"
46
- role-lable="安&nbsp;检&nbsp;员&nbsp;"
47
- @re-res="$parent.$parent.getRes"
48
- :value.sync="model.f_checker_id"
49
- v-model="model.f_checker_id"
50
- :value-multiple="true"
51
- :value-close="false"
52
- condition="f_checker_name in {}">
53
- </role-selector-safe>
54
- </div>
55
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
56
- <label class="font_normal_body">检&ensp;查&ensp;项</label>
57
- <v-select :value.sync="model.f_device_type"
58
- v-model="model.f_device_type"
59
- style="width: 60%"
60
- class="select_list select"
61
- :options='$parent.$parent.device_types'
62
- placeholder='检查项'
63
- :multiple="true"
64
- condition="f_device_type in {}"></v-select>
65
- <!--<input type="text" class="input_search" v-model="model.f_device_type"-->
66
- <!--style="width: 60%" placeholder="检&ensp;查&ensp;项" condition="f_device_type like '%{}%'">-->
67
- </div>
68
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
69
- <label class="font_normal_body">隐患名称</label>
70
- <v-select :value.sync="model.f_item_name"
71
- v-model='model.f_item_name'
72
- style="width: 60%"
73
- class="select_list select"
74
- :options='$parent.$parent.DefectConfigs'
75
- placeholder='隐患名称'
76
- :multiple="true"
77
- condition="f_item_name in {}"></v-select>
78
- </div>
79
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
80
- <label class="font_normal_body">安检起始</label>
81
- <datepicker
82
- class="select_list select"
83
- :value.sync="model.f_check_start"
84
- placeholder='安检起始时间' style="width: 60%"
85
- :disabled-days-of-week="[]"
86
- :format="'yyyy-MM-dd'"
87
- :show-rest-button="reset"
88
- v-model="model.f_check_start"
89
- condition="f_offsite_time > ='{} 00:00:00'">
90
- </datepicker>
91
- </div>
92
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
93
- <label class="font_normal_body">安检结束</label>
94
- <datepicker
95
- class="select_list select"
96
- :value.sync="model.f_check_end"
97
- placeholder='安检结束时间' style="width: 60%"
98
- :disabled-days-of-week="[]"
99
- :format="'yyyy-MM-dd'"
100
- :show-rest-button="reset"
101
- v-model="model.f_check_end"
102
- condition="f_offsite_time <= '{} 23:59:59'">
103
- </datepicker>
104
- </div>
105
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
106
- <label class="font_normal_body">用户类型</label>
107
- <v-select :value.sync="model.f_check_type" v-model='model.f_check_type'
108
- :value-single="true" style="width: 60%"
109
- class="select_list select"
110
- :options='$parent.$parent.f_check_type' placeholder='请选择'
111
- close-on-select
112
- condition="f_check_type = '{}'"></v-select>
113
- </div>
114
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
115
- <label class="font_normal_body">处理方式</label>
116
- <v-select :value.sync="model.f_deal_dispose"
117
- v-model='model.f_deal_dispose'
118
- style="width: 60%"
119
- class="select_list select"
120
- :options='$parent.$parent.deal_dispose' placeholder='请选择'
121
- :multiple="true"
122
- condition="f_deal_dispose in {}"></v-select>
123
- </div>
124
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
125
- <label class="font_normal_body">详细地址</label>
126
- <input type="text" class="input_search" v-model="model.f_address"
127
- style="width: 60%" placeholder="详细地址" condition="f_address like '%{}%'">
128
- </div>
129
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
130
- <label class="font_normal_body">隐患状态</label>
131
- <v-select :value.sync="model.f_is_repaired"
132
- v-model='model.f_is_repaired'
133
- style="width: 60%"
134
- class="select_list select"
135
- :options='$parent.$parent.repairStateOptions' placeholder='请选择'
136
- :multiple="true"
137
- condition="f_is_repaired in {}"></v-select>
138
- </div>
139
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
140
- <label class="font_normal_body">处理人</label>
141
- <input type="text" class="input_search" v-model="model.f_repairman"
142
- style="width: 60%" placeholder="处理人" condition="f_repairman = '{}'">
143
- </div>
144
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
145
- <label for="startDate" class="font_normal_body">处理时间:</label>
146
- <datepicker id="startDate" placeholder="处理开始日期"
147
- style="width: 60%!important;"
148
- v-model="model.sq_startDate"
149
- :value.sync="model.sq_startDate"
150
- :format="'yyyy-MM-dd 00:00:00'"
151
- :show-reset-button="true"
152
- condition="f_repair_date >= '{}'">
153
- </datepicker>
154
- </div>
155
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
156
- <label for="endDate" class="font_normal_body">处理时间:</label>
157
- <datepicker id="endDate" placeholder="处理结束日期"
158
- style="width: 60%!important;"
159
- v-model="model.sq_endDate"
160
- :value.sync="model.sq_endDate"
161
- :format="'yyyy-MM-dd 23:59:59'"
162
- :show-reset-button="true"
163
- condition="f_repair_date<= '{}'">
164
- </datepicker>
165
- </div>
166
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
167
- <label class="font_normal_body">开户时间</label>
168
- <datepicker
169
- :value.sync="model.f_check_gasstart"
170
- placeholder='开始时间' style="width: 60%"
171
- :format="'yyyy-MM-dd'"
172
- :show-rest-button="true"
173
- v-model="model.f_check_gasstart"
174
- condition="f_gas_date > ='{} 00:00:00'">
175
- </datepicker>
176
- </div>
177
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
178
- <label class="font_normal_body">开户时间</label>
179
- <datepicker
180
- :value.sync="model.f_check_gasend"
181
- placeholder='结束时间' style="width: 60%"
182
- :format="'yyyy-MM-dd'"
183
- :show-rest-button="true"
184
- v-model="model.f_check_gasend"
185
- condition="f_gas_date <= '{} 23:59:59'">
186
- </datepicker>
187
- </div>
188
- </div>
189
- <modal :show.sync="$parent.$parent.showModal" v-ref:modal>
190
- <div slot="modal-header" class="modal-header">
191
- <h4 class="modal-title">
192
- 选择计划
193
- </h4>
194
- </div>
195
- <div slot="modal-body" class="modal-body">
196
- <plan-chooser :f.sync="$parent.$parent.fun" v-ref:chooser></plan-chooser>
197
- </div>
198
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
199
- <button class="button_search" @click="$parent.$parent.ok">确认</button>
200
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
201
- </div>
202
- </modal>
203
- </div>
204
- </criteria>
205
- <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
206
- <template partial='head'>
207
- <tr>
208
- <th v-if="$parent.$parent.$parent.canToRepair=='是'"><nobr>选择</nobr></th>
209
- <th>
210
- <nobr>检查项</nobr>
211
- </th>
212
- <th>
213
- <nobr>隐患原因</nobr>
214
- </th>
215
- <th>
216
- <nobr>隐患级别</nobr>
217
- </th>
218
- <th>
219
- <nobr>客户编号</nobr>
220
- </th>
221
- <th>
222
- <nobr>客户名称</nobr>
223
- </th>
224
- <th>
225
- <nobr>客户电话</nobr>
226
- </th>
227
- <th>
228
- <nobr>客户小区</nobr>
229
- </th>
230
- <th>
231
- <data-order field="f_address" name="客户地址"></data-order>
232
- </th>
233
-
234
- <th>
235
- <data-order field="f_offsite_time" name="安检时间"></data-order>
236
- </th>
237
- <th>
238
- <nobr>安检员</nobr>
239
- </th>
240
- <th>
241
- <nobr>隐患状态</nobr>
242
- </th>
243
- <th>
244
- <nobr>处理人</nobr>
245
- </th>
246
- <th>
247
- <nobr>处理方式</nobr>
248
- </th>
249
- <th>
250
- <nobr>处理时间</nobr>
251
- </th>
252
- <th>
253
- <nobr>工单编号</nobr>
254
- </th>
255
- <th>
256
- <nobr>转单类型</nobr>
257
- </th>
258
- <th>
259
- <nobr>接收人</nobr>
260
- </th>
261
- <th v-if="$parent.$parent.$parent.canlook">
262
- <nobr>材料明细</nobr>
263
- </th>
264
- </tr>
265
- </template>
266
- <template partial='body'>
267
- <td v-if="$parent.$parent.$parent.canToRepair=='是'" style="text-align: center;white-space:nowrap;"><input type="checkbox" v-if="['用户自行整改', '现场已处理', '维修已处理', '转维修'].indexOf(row.f_is_repaired) == -1" @click="$event.cancelBubble=true" :checked="$parent.$parent.$parent.isChecked(row)" @change="$parent.$parent.$parent.setCheckes(row)"></input></td>
268
- <td style="text-align: center">{{row.f_device_type}}</td>
269
- <td style="text-align: center">{{row.f_item_name}}/{{row.f_item_value}}</td>
270
- <td style="text-align: center">{{row.f_defect_level}}</td>
271
- <td style="text-align: center">{{row.f_userinfo_code}}</td>
272
- <td style="text-align: center">{{row.f_user_name}}</td>
273
- <td style="text-align: center">{{row.f_user_phone}}</td>
274
- <td style="text-align: center">{{row.f_residential_area}}</td>
275
- <td style="text-align: center">{{row.f_address}}</td>
276
- <td style="text-align: center">{{row.f_offsite_time}}</td>
277
- <td style="text-align: center">{{row.f_checker_name}}</td>
278
- <td style="text-align: center">{{row.f_is_repaired}}</td>
279
- <td style="text-align: center">{{row.f_repairman}}</td>
280
- <td style="text-align: center">{{row.f_deal_dispose}}</td>
281
- <td style="text-align: center">{{row.f_repair_date}}</td>
282
- <td style="text-align: center">{{row.f_service_id}}</td>
283
- <td style="text-align: center">{{row.f_handlingtype}}</td>
284
- <td style="text-align: center">{{row.f_order_man}}</td>
285
- <td class="flex-around" v-if="$parent.$parent.$parent.canlook">
286
- <button type="button" name="button" class="btn btn-link" @click.stop="$parent.$parent.$parent.lookMateril(row)">查看材料</button>
287
- </td>
288
- </template>
289
- </data-grid>
290
- </criteria-paged>
291
- <check-msg v-if="showcheckmsg" :show="showcheckmsg" :data="checkInfo"></check-msg>
292
- <modal :show.sync="showModal2" :backdrop="false">
293
- <div slot="modal-header" class="modal-header">
294
- <h4 class="modal-title">
295
- 转维修
296
- </h4>
297
- </div>
298
- <div slot="modal-body" class="modal-body">
299
- <div v-if="true">
300
- <div>
301
-
302
- </div>
303
- <!-- <div v-for="(index, item) in dangerGroup">-->
304
-
305
- <!-- </div>-->
306
- <div class="row" style="margin-top: 10px">
307
- <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">派发类型</label>
308
- <div class="col-xs-8 col-md-8">
309
- <v-select :value.sync="selectData.dispatchType" :value-single="true" v-model="selectData.dispatchType"
310
- :options='dispatchTypeOptions' placeholder='派发类型'
311
- close-on-select>
312
- </v-select>
313
- </div>
314
- </div>
315
- <div class="row" style="margin-top: 10px" v-if="selectData.dispatchType=='派发给维修员'">
316
- <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">维&ensp;修&ensp;员</label>
317
- <div class="col-xs-8 col-md-8">
318
- <v-select
319
- :value.sync="selectData.f_repairman"
320
- :value-single="true"
321
- :options='repairers'
322
- placeholder='请选择维修员'
323
- close-on-select></v-select>
324
- </div>
325
- </div>
326
- <div class="row" style="margin-top: 10px" v-if="selectData.dispatchType=='派发给站点'">
327
- <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">站&ensp;&ensp;&ensp;&ensp;点</label>
328
- <div class="col-xs-8 col-md-8">
329
- <right-tree
330
- islist
331
- :userid="userid"
332
- :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"
333
- @re-res="getSiteRes"></right-tree>
334
- </div>
335
- </div>
336
- <div class="row" style="margin-top: 10px">
337
- <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">报修类型</label>
338
- <div class="col-xs-8 col-md-8">
339
- <v-select :value.sync="selectData.f_repairtype" style="width:60%"
340
- class="select select_list"
341
- :value-single="true"
342
- :options='repairTypeOptions'
343
- close-on-select>
344
- </v-select>
345
- </div>
346
- </div>
347
- <div class="row" style="margin-top: 10px">
348
- <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注</label>
349
- <div class="col-xs-8 col-md-8">
350
- <textarea style="width: 60%; height: 100px" v-model="selectData.f_remarks"></textarea>
351
- </div>
352
- </div>
353
- </div>
354
- </div>
355
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
356
- <button class="button_search" @click="rectification">转维修</button>
357
- <button class="button_search" @click="cancel1">取消</button>
358
- </div>
359
- </modal>
360
- <modal :show.sync="showModal3">
361
- <div slot="modal-header" class="modal-header">
362
- <h4 class="modal-title">
363
- 转维修进度{{ progressbarWidth }}%
364
- </h4>
365
- </div>
366
- <div slot="modal-body" class="modal-body">
367
- <div class="progress">
368
- <div class="progress-bar" role="progressbar" aria-valuenow="60"
369
- aria-valuemin="0" aria-valuemax="100" :style="'width:'+ progressbarWidth+'%'">
370
- </div>
371
- </div>
372
- </div>
373
- <div slot="modal-footer" class="modal-footer" style="text-align: center" v-show="false"></div>
374
- </modal>
375
- <modal :show.sync="showmaterial" backdrop="false" style="overflow: scroll;height: 100%">
376
- <header slot="modal-header" class="modal-header text-center">
377
- <button type="button" class="close" @click="close2"><span>&times;</span></button>
378
- <h4 class="modal-title">材料查看</h4>
379
- </header>
380
- <article slot="modal-body">
381
- <defect-material-look v-if="showmaterial" :selectdata = "selectdata" ></defect-material-look>
382
- </article>
383
- <footer slot="modal-footer"></footer>
384
- </modal>
385
- </div>
386
- </div>
387
- </template>
388
-
389
- <script>
390
- import {PagedList} from 'vue-client'
391
- import Vue from 'vue'
392
- import co from 'co'
393
- import AppData from '../../stores/AppData'
394
- import * as Util from '../Util'
395
- import getNowDate from "../../utils/getNowDate";
396
- import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
397
- import BenzAMRRecorder from 'benz-amr-recorder'
398
-
399
- let asyncReady = async function (self) {
400
- // 获取配置信息
401
- try {
402
- let res = await new HttpResetClass().load('get','/api/af-safecheck/vue',null, {resolveMsg: null, rejectMsg: null})
403
- self.delConfigKey(res.data)
404
- Vue.config.safecheck=res.data
405
- self.getDefectInfoConfig(res.data)
406
- console.log('获取配置结果===', res.data)
407
- } catch (error) {
408
- // 忽略704,文件找不到异常R
409
- if (error.status !== 704) {
410
- throw error
411
- }
412
- }
413
- }
414
-
415
- let select = function* (self) {
416
- let http = new HttpResetClass()
417
- let getGasman = yield http.load('POST', '/rs/search', {
418
- source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
419
- userid: self.$login.f.id
420
- }, {resolveMsg: null, rejectMsg: null})
421
- ////tag
422
- self.checkersid.push({label: '全部', value: ''})
423
- getGasman.data.forEach((checker) => {
424
- self.checkersid.push({label: checker.name, value: checker.id})
425
- })
426
- }
427
-
428
- export default {
429
- title: '隐患明细查看',
430
- data() {
431
- let model = new PagedList('api/af-safecheck/sql/defectDetails', 20,{
432
- f_filialeid: 'this.f_filialeid'
433
- })
434
- model.f_plan_id = ''
435
- model.f_approved = ''
436
- model.f_entry = ''
437
- model.f_no_checkplan = ''
438
- model.f_check_type=''
439
- model.f_filialeid = `('${this.$login.f.orgid}')`
440
- return {
441
- audioshow:false,
442
- showmaterial: false,
443
- selectdata: {},
444
- model: model,
445
- deal_dispose:[{label:'全部',value:''},{label:'报修',value:'报修'},{label:'现场整改',value:'现场整改'},{label:'自行处理',value:'自行处理'},{label:'未处理',value:'未处理'}],
446
- repairStateOptions: this.getSafeParam('隐患状态'),
447
- //searchData:searchData,
448
- excelHeaders: {
449
- 'f_device_type': '检查项',
450
- 'f_item_name': '隐患名称',
451
- 'f_userinfo_code': '客户编号',
452
- 'f_user_name': '客户姓名',
453
- 'f_user_phone': '客户电话',
454
- 'f_residential_area': '小区',
455
- 'f_address': '客户地址',
456
- 'f_offsite_time': '安检时间',
457
- 'f_checker_name': '安检员',
458
- 'f_deal_dispose': '处理方式',
459
- 'f_is_repaired': '隐患状态',
460
- 'f_repairman':'处理人',
461
- 'f_repair_date':'处理时间'
462
- },
463
- fun: this.$login.f,
464
- checkersid: [],
465
- safetype: this.getSafeParam('安检类型'),
466
- criteriaShow: false,
467
- showModal: false,
468
- f_approval_states: this.getSafeParam('安检单审核状态'),
469
- f_entry_status:this.getSafeParam('安检状态'),
470
- f_checkplans: this.getSafeParam('有无计划'),
471
- showcheckmsg: false,
472
- checkInfo: {},
473
- orderDefault: "'f_offsite_time'",
474
- orderFields: {
475
- f_offsite_time: 'no'
476
- },
477
- sliceArea: [],
478
- cbc:[],
479
- DefectConfig:'' ,
480
- DefectConfigs:[{label:'全部',value:''},{label: '金额异常差值', value: '金额异常差值'},{label: '气量异常差值', value: '气量异常差值'}],
481
- device_types:[{label:'全部',value:''}],
482
- f_check_type:[{label:'全部',value:''},{label:'民用',value:'民用'},{label:'非民用',value:'非民用'}],
483
- showModal2: false,
484
- selectData:{
485
- dispatchType:'',
486
- f_repairman:'',
487
- f_remarks:'',
488
- f_repairtype:''
489
- },
490
- repairers: [],
491
- repairTypeOptions:this.$appdata.getParam('报修类型'),
492
- dispatchTypeOptions: [{label: '派发给站点', value: '派发给站点'},{label: '派发给维修员', value: '派发给维修员'}],
493
- dangerGroups: [],
494
- showModal3: false,
495
- progressbarWidth:'0',
496
- canToRepair: this.$appdata.getSingleValue('隐患明细转维修'),
497
- canlook: this.$appdata.getSingleValue('隐患明细查看材料')?true:false,
498
- checkes: []
499
- }
500
- },
501
- computed :{
502
- searchData() {
503
- return {condition: this.model.condition}
504
- }
505
- },
506
- methods: {
507
- lookMateril(row){
508
- this.selectdata=row
509
- this.showmaterial=true
510
- },
511
- close2(){
512
- this.showmaterial=false
513
- },
514
- delConfigKey(obj){
515
- // 从琉璃中获取的配置中会包含 $开头的一些额外描述新的key。为了兼容v3的代码逻辑在此函数中去掉
516
- Object.keys(obj).forEach(key =>{
517
- Object.keys(obj[key]).forEach(col => {
518
- // 检查键是否以$开头
519
- if (col.startsWith('$')) {
520
- // 使用delete操作符删除键
521
- delete obj[key][col];
522
- }
523
- })
524
- })
525
- },
526
- isChecked(row) {
527
- return this.checkes.findIndex(item => item.f_defect_id == row.f_defect_id) != -1
528
- },
529
- setCheckes(row) {
530
- let index=this.checkes.findIndex(item => item.f_defect_id == row.f_defect_id)
531
- if(index<0){
532
- this.checkes.push(row)
533
- }else{
534
- this.checkes.splice(index,1)
535
- }
536
- console.log('this.checkes=', JSON.stringify(this.checkes))
537
- },
538
- toRepair(){
539
- console.log('this.checkes=', JSON.stringify(this.checkes))
540
- if(this.checkes.length==0){
541
- return this.$showMessage('请先选择需要转维修的隐患!')
542
- }
543
-
544
- const dangerGroups = []
545
- for (const danger of this.checkes) {
546
- let i = dangerGroups.findIndex(dangerGroup => dangerGroup.f_userinfo_code === danger.f_userinfo_code)
547
- if (i == -1){
548
- dangerGroups.push({
549
- f_userinfo_code: danger.f_userinfo_code,
550
- dangers: []
551
- })
552
- i = dangerGroups.length - 1
553
- }
554
- dangerGroups[i].dangers.push(danger)
555
- }
556
- this.dangerGroups = dangerGroups
557
- console.log('this.dangerGroups=', JSON.stringify(this.dangerGroups))
558
- this.showModal2=true
559
- },
560
- getEmp() {
561
- let val = {source: 'this.getParentByType($organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$)!=null ).where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1))', userid: `${this.$login.f.id}`}
562
- let http = new HttpResetClass()
563
- http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
564
- if (res.data.length == 0){
565
- this.repairers= []
566
- return
567
- }
568
- let str=``
569
- res.data.forEach((item,idx,arr) => {
570
- if(idx+1==arr.length){
571
- str += item.id
572
- }else{
573
- str += item.id+`','`
574
- }
575
- })
576
- let http1 = new HttpResetClass()
577
- http1.load('POST', 'api/af-safecheck/sql/safe_singleTable_OrderBy', {
578
- data: {
579
- items: 'id,f_user_telephone',
580
- tablename: 't_user',
581
- condition: `id in ('${str}')`,
582
- orderitem: 'id'
583
- }
584
- }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
585
- res.data.forEach((user)=>{
586
- try {
587
- ress.data.forEach((tel,tidx,arr)=>{
588
- if(user.id==tel.id){
589
- this.repairers.push({label: `${user.name}:${tel.f_user_telephone}`, value: user.name})
590
- ress.data.splice(tidx,1)
591
- }
592
- })
593
- }catch (e) {
594
- }
595
- })
596
- }).catch(error=>{
597
- res.data.forEach((user)=>{
598
- this.repairers.push({label: user.name, value: user.name})
599
- })
600
- })
601
-
602
- })
603
- },
604
- getSiteRes(obj) {
605
- console.log('siteRes ---> ')
606
- console.log(obj)
607
- if(obj.resids[0]){
608
- this.selectData.f_meetunit = obj.res.join('.')
609
- this.selectData.f_reciever = obj.resids.join('.')
610
- this.selectData.f_outlets = obj.res[obj.res.length - 1]
611
- }else {
612
- this.selectData.f_meetunit = ''
613
- this.selectData.f_reciever = ''
614
- this.selectData.f_outlets = ''
615
- }
616
- },
617
- cancel1(){
618
- this.showModal2=false
619
- this.selectData={
620
- dispatchType:'',
621
- f_repairman:'',
622
- f_remarks:'',
623
- f_repairtype:''
624
- }
625
- },
626
- async rectification(){
627
- if(this.selectData.dispatchType){
628
- if(this.selectData.dispatchType=='派发给站点'){
629
- if(!this.selectData.f_reciever){
630
- this.$showMessage('请选择部门!')
631
- return
632
- }
633
- }else{
634
- if(!this.selectData.f_repairman){
635
- this.$showMessage('请选择维修员!')
636
- return
637
- }
638
- }
639
- }else {
640
- this.$showMessage('请选择派发类型!')
641
- return
642
- }
643
-
644
- if(!this.selectData.f_repairtype){
645
- this.$showMessage('请选择报修类型!')
646
- return
647
- }
648
- this.showModal3=true
649
- let act={}
650
- let toRepair=''
651
- let successCount=0
652
- if(this.selectData.dispatchType=='派发给站点'){
653
- act={f_meetunit:this.selectData.f_meetunit,f_reciever:this.selectData.f_reciever,f_service_acitivity_type:'派单'}
654
- toRepair=null
655
- }else{
656
- console.log('派发给维修员---------'+this.selectData.f_repairman)
657
- act={f_meetunit:'',f_reciever:this.selectData.f_repairman,f_service_acitivity_type:'派单'}
658
- toRepair='一级派单'
659
- }
660
- let rep={
661
- loginUser: {
662
- name: this.$login.f.name,
663
- ename: this.$login.f.ename
664
- },
665
- f_meetunit: this.$login.f.deps,
666
- f_attendant: this.$login.f.name,
667
- f_outlets: this.$login.f.deps,
668
- f_remarks: this.selectData.f_remarks,
669
- f_repairtype: this.selectData.f_repairtype,
670
- dispatchType: this.selectData.dispatchType,
671
- toRepair: toRepair,
672
- activity:act
673
- }
674
- for(let i=0; i<this.dangerGroups.length; i++){
675
- let defectIdStr = ''
676
- const defectIds = []
677
- for (let j = 0; j < this.dangerGroups[i].dangers.length; j++) {
678
- defectIds.push(`'${this.dangerGroups[i].dangers[j].f_defect_id}'`)
679
- }
680
- defectIdStr = `(${defectIds.join(',')})`
681
- const data = {
682
- id:this.dangerGroups[i].dangers[0].f_paper_id,
683
- repData:rep,
684
- source:'pc',
685
- defectIdStr: defectIdStr
686
- }
687
- console.log('data=', JSON.stringify(data))
688
- try {
689
- let result =await new HttpResetClass().load('post','/api/af-safecheck/logic/phoneUploadRectification', data, {resolveMsg: null, rejectMsg: null})
690
- if (result.data.code==200) {
691
- successCount += result.data.successcon
692
- this.progressbarWidth=Math.ceil((i+1)*100/(this.dangerGroups.length))
693
- }
694
- }catch (e) {
695
- this.showModal3=false
696
- this.$showMessage('网络异常,请稍后再试!')
697
- return
698
- }
699
- }
700
- this.showModal3=false
701
- this.cancel1()
702
- this.$showMessage('本次转维修成功'+successCount+'单')
703
- },
704
- getDefectInfoConfig(val){
705
- try {
706
- if (val.DevicesSetConfig != undefined) {
707
- this.DefectConfig = val.DevicesConfig
708
- // 获取到配置项,进行遍历,获取每个隐患项
709
- for (var Key1 in this.DefectConfig){
710
- this.device_types.push({label:Key1,value:Key1})
711
- for(var Key2 in this.DefectConfig[Key1].items){
712
- this.DefectConfigs.push({label:Key2,value:Key2})
713
- }
714
- }
715
- // 非民用或其他配置项加入,在进行遍历
716
- }
717
- }catch (e) {
718
- //tag
719
- }
720
- },
721
- showaudio(){
722
- //tag
723
- this.audioshow=!this.audioshow
724
- //tag
725
- },
726
- getmeterbook(val){
727
- this.cbc=[]
728
- this.cbc.push({
729
- label:'全部',
730
- value:''
731
- })
732
- if (val==''){
733
-
734
- this.cbcs.forEach(res=>{
735
- this.cbc.push({
736
- label:res.f_book_name,
737
- value:res.id
738
- })
739
- })
740
- }else{
741
- this.cbcs.forEach(res=>{
742
- if (res.f_book_slice_area==val){
743
- this.cbc.push({
744
- label:res.f_book_name,
745
- value:res.id
746
- })
747
- }
748
- })
749
- }
750
- },
751
- getSafeParam(val){
752
- if(this.$appdata.getParam(val)){
753
- return [{label: '全部', value: ''}, ...this.$appdata.getParam(val)]
754
- }else{
755
- return [{label: '全部', value: ''}]
756
- }
757
-
758
- },
759
- Mreadibook(val){
760
- ////tag
761
- ////tag
762
- this.sliceArea=[]
763
- if (val){
764
- new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
765
- items: 'name',
766
- tablename: 't_zone',
767
- condition: `parentid in ${val}`,
768
- orderitem: 'id'
769
- }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
770
- this.sliceArea.push({
771
- label:'全部',
772
- value:''
773
- })
774
- res.data.forEach(ress=>{
775
- this.sliceArea.push({
776
- label:ress.name,
777
- value:ress.name
778
- })
779
- })
780
-
781
- })
782
- }
783
- },
784
- getAllMeterBook(val){
785
- ////tag
786
- ////tag
787
- this.cbcs=[]
788
- if (val){
789
- new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
790
- items: 'f_book_name,f_book_slice_area,id',
791
- tablename: 't_meter_book',
792
- condition: `f_filiale_id in ${val}`,
793
- orderitem: 'id'
794
- }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
795
- res.data.forEach(ress=>{
796
- this.cbcs.push({
797
- id:ress.id,
798
- f_book_name:ress.f_book_name,
799
- f_book_slice_area:ress.f_book_slice_area
800
- })
801
- })
802
- this.cbc=[]
803
- this.cbc.push({
804
- label:'全部',
805
- value:''
806
- })
807
- this.cbcs.forEach(res=>{
808
- this.cbc.push({
809
- label:res.f_book_name,
810
- value:res.id
811
- })
812
- })
813
- })
814
- }
815
- },
816
- getRes(obj) {
817
- this.model.f_filialeid = this.$login.convertToIn(obj.resids);
818
- this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
819
- this.Mreadibook(this.model.f_filialeid)
820
- this.getAllMeterBook(this.model.f_filialeid)
821
- //this.$refs.paged.$refs.criteria.search()
822
- },
823
-
824
- change(row) {
825
- // Vue.$login = {jwt: row.f_checker_id}
826
- asyncReady(this).then(() => {
827
- ////tag)
828
- row.f_upload_state = '已传'
829
- this.$goto('new-check-paper', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
830
- }).catch(
831
- (respanse) => {
832
- alert('获取配置文件失败')
833
- })
834
- },
835
- readConfig() {
836
- let gen = asyncReady(this)
837
- return co(gen)
838
- },
839
- showChooser() {
840
- this.showModal = true
841
- },
842
- hidden() {
843
- this.criteriaShow = !this.criteriaShow
844
- },
845
- refresh() {
846
- this.$refs.paged.$refs.criteria.search()
847
- },
848
- ok() {
849
- this.showModal = false
850
- if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
851
- this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
852
- this.model.f_check_plan=this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
853
- }
854
- },
855
- cancel() {
856
- this.showModal = false
857
- this.model.f_check_plan = {f_plan_name: '', id: ''}
858
- this.model.f_plan_id=''
859
- },
860
- print(row) {
861
- this.showcheckmsg = true
862
- this.checkInfo = row
863
- },
864
-
865
- sort(field, rule) {
866
- // 将所有排序方式设为不排序,实现相互排斥
867
- for (let key in this.orderFields) {
868
- if (key === field) {
869
- this.orderFields[key] = rule
870
- } else {
871
- this.orderFields[key] = 'no'
872
- }
873
- }
874
- // 如果新规则不排序,还原为默认排序
875
- if (rule === 'no') {
876
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
877
- } else {
878
- this.model.paramSource.orderitem = `'${field} ${rule}'`
879
- }
880
- this.search()
881
- },
882
- search() {
883
- this.$refs.paged.$refs.criteria.search()
884
- },
885
- selfSearch(args) {
886
- ////tag
887
- args.condition += ` and f_filialeid in ${this.model.f_filialeid}`
888
- this.model.search(args.condition, args.model, args.condValue)
889
- }
890
- },
891
-
892
- ready() {
893
- this.getEmp()
894
- this.readConfig()
895
- ////tag
896
- this.function = this.f
897
- ////tag
898
-
899
- let gen = select(this)
900
- //this.pianqu()
901
- this.Mreadibook(`('${this.$login.f.orgid}')`)
902
- co(gen)
903
- }
904
- }
905
- </script>
1
+ <template>
2
+ <div class="flex-row">
3
+ <div class="basic-main">
4
+ <criteria-paged :model="model" v-ref:paged @sort="sort">
5
+ <criteria partial='criteria' class="search_area" @condition-changed='$parent.selfSearch' v-ref:criteria>
6
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
+ <div class="row">
8
+ <div class="form-group col-sm-2" >
9
+ <label class="font_normal_body">客户编号</label>
10
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
11
+ style="width: 60%" placeholder="客户编号" condition="f_userinfo_code='{}'">
12
+ </div>
13
+ <div class="form-group col-sm-2" >
14
+ <label class="font_normal_body">客户名称</label>
15
+ <input type="text" class="input_search" v-model="model.f_user_name"
16
+ style="width: 60%" placeholder="客户名称" condition="f_user_name like '%{}%'">
17
+ </div>
18
+ <div class="form-group col-sm-2" >
19
+ <label class="font_normal_body">客户电话</label>
20
+ <input type="text" class="input_search" v-model="model.f_user_phone"
21
+ style="width: 60%" placeholder="客户电话" condition="f_user_phone like '%{}%'">
22
+ </div>
23
+ <div class="form-group col-sm-2" >
24
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
25
+ <input type="text" class="input_search" v-model="model.f_residential_area"
26
+ style="width: 60%" placeholder="小区" condition="f_residential_area like '%{}%'">
27
+ </div>
28
+ <div class="form-group col-sm-4" style="display: flex; gap: 15px">
29
+ <export-excel :data="$parent.$parent.searchData"
30
+ :field="$parent.$parent.excelHeaders"
31
+ progress="safeGetExportProgress"
32
+ sqlurl="api/af-safecheck/logic/exportfile" sql-name="defectDetails" template-name='安检隐患明细'></export-excel>
33
+ <button class="button_search" @click="$parent.$parent.showaudio()" v-if="$parent.$parent.audioshow">隐藏</button>
34
+ <button class="button_search" @click="$parent.$parent.toRepair" v-if="$parent.$parent.canToRepair == '是'">转维修</button>
35
+ <button class="button_search" @click="search()">查询</button>
36
+ <div class="button_spacing"
37
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
38
+ @click="$parent.$parent.hidden()"></div>
39
+ </div>
40
+
41
+ </div>
42
+ <div class="row">
43
+ <div class="col-sm-4 form-group" v-show="$parent.$parent.criteriaShow" style="margin: 0">
44
+ <role-selector-safe
45
+ role-name="安检员"
46
+ role-lable="安&nbsp;检&nbsp;员&nbsp;"
47
+ @re-res="$parent.$parent.getRes"
48
+ :value.sync="model.f_checker_id"
49
+ v-model="model.f_checker_id"
50
+ :value-multiple="true"
51
+ :value-close="false"
52
+ condition="f_checker_name in {}">
53
+ </role-selector-safe>
54
+ </div>
55
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
56
+ <label class="font_normal_body">检&ensp;查&ensp;项</label>
57
+ <v-select :value.sync="model.f_device_type"
58
+ v-model="model.f_device_type"
59
+ style="width: 60%"
60
+ class="select_list select"
61
+ :options='$parent.$parent.device_types'
62
+ placeholder='检查项'
63
+ :multiple="true"
64
+ condition="f_device_type in {}"></v-select>
65
+ <!--<input type="text" class="input_search" v-model="model.f_device_type"-->
66
+ <!--style="width: 60%" placeholder="检&ensp;查&ensp;项" condition="f_device_type like '%{}%'">-->
67
+ </div>
68
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
69
+ <label class="font_normal_body">隐患名称</label>
70
+ <v-select :value.sync="model.f_item_name"
71
+ v-model='model.f_item_name'
72
+ style="width: 60%"
73
+ class="select_list select"
74
+ :options='$parent.$parent.DefectConfigs'
75
+ placeholder='隐患名称'
76
+ :multiple="true"
77
+ condition="f_item_name in {}"></v-select>
78
+ </div>
79
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
80
+ <label class="font_normal_body">安检起始</label>
81
+ <datepicker
82
+ class="select_list select"
83
+ :value.sync="model.f_check_start"
84
+ placeholder='安检起始时间' style="width: 60%"
85
+ :disabled-days-of-week="[]"
86
+ :format="'yyyy-MM-dd'"
87
+ :show-rest-button="reset"
88
+ v-model="model.f_check_start"
89
+ condition="f_offsite_time > ='{} 00:00:00'">
90
+ </datepicker>
91
+ </div>
92
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
93
+ <label class="font_normal_body">安检结束</label>
94
+ <datepicker
95
+ class="select_list select"
96
+ :value.sync="model.f_check_end"
97
+ placeholder='安检结束时间' style="width: 60%"
98
+ :disabled-days-of-week="[]"
99
+ :format="'yyyy-MM-dd'"
100
+ :show-rest-button="reset"
101
+ v-model="model.f_check_end"
102
+ condition="f_offsite_time <= '{} 23:59:59'">
103
+ </datepicker>
104
+ </div>
105
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
106
+ <label class="font_normal_body">用户类型</label>
107
+ <v-select :value.sync="model.f_check_type" v-model='model.f_check_type'
108
+ :value-single="true" style="width: 60%"
109
+ class="select_list select"
110
+ :options='$parent.$parent.f_check_type' placeholder='请选择'
111
+ close-on-select
112
+ condition="f_check_type = '{}'"></v-select>
113
+ </div>
114
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
115
+ <label class="font_normal_body">处理方式</label>
116
+ <v-select :value.sync="model.f_deal_dispose"
117
+ v-model='model.f_deal_dispose'
118
+ style="width: 60%"
119
+ class="select_list select"
120
+ :options='$parent.$parent.deal_dispose' placeholder='请选择'
121
+ :multiple="true"
122
+ condition="f_deal_dispose in {}"></v-select>
123
+ </div>
124
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
125
+ <label class="font_normal_body">详细地址</label>
126
+ <input type="text" class="input_search" v-model="model.f_address"
127
+ style="width: 60%" placeholder="详细地址" condition="f_address like '%{}%'">
128
+ </div>
129
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
130
+ <label class="font_normal_body">隐患状态</label>
131
+ <v-select :value.sync="model.f_is_repaired"
132
+ v-model='model.f_is_repaired'
133
+ style="width: 60%"
134
+ class="select_list select"
135
+ :options='$parent.$parent.repairStateOptions' placeholder='请选择'
136
+ :multiple="true"
137
+ condition="f_is_repaired in {}"></v-select>
138
+ </div>
139
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
140
+ <label class="font_normal_body">处理人</label>
141
+ <input type="text" class="input_search" v-model="model.f_repairman"
142
+ style="width: 60%" placeholder="处理人" condition="f_repairman = '{}'">
143
+ </div>
144
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
145
+ <label for="startDate" class="font_normal_body">处理时间:</label>
146
+ <datepicker id="startDate" placeholder="处理开始日期"
147
+ style="width: 60%!important;"
148
+ v-model="model.sq_startDate"
149
+ :value.sync="model.sq_startDate"
150
+ :format="'yyyy-MM-dd 00:00:00'"
151
+ :show-reset-button="true"
152
+ condition="f_repair_date >= '{}'">
153
+ </datepicker>
154
+ </div>
155
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
156
+ <label for="endDate" class="font_normal_body">处理时间:</label>
157
+ <datepicker id="endDate" placeholder="处理结束日期"
158
+ style="width: 60%!important;"
159
+ v-model="model.sq_endDate"
160
+ :value.sync="model.sq_endDate"
161
+ :format="'yyyy-MM-dd 23:59:59'"
162
+ :show-reset-button="true"
163
+ condition="f_repair_date<= '{}'">
164
+ </datepicker>
165
+ </div>
166
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
167
+ <label class="font_normal_body">开户时间</label>
168
+ <datepicker
169
+ :value.sync="model.f_check_gasstart"
170
+ placeholder='开始时间' style="width: 60%"
171
+ :format="'yyyy-MM-dd'"
172
+ :show-rest-button="true"
173
+ v-model="model.f_check_gasstart"
174
+ condition="f_gas_date > ='{} 00:00:00'">
175
+ </datepicker>
176
+ </div>
177
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
178
+ <label class="font_normal_body">开户时间</label>
179
+ <datepicker
180
+ :value.sync="model.f_check_gasend"
181
+ placeholder='结束时间' style="width: 60%"
182
+ :format="'yyyy-MM-dd'"
183
+ :show-rest-button="true"
184
+ v-model="model.f_check_gasend"
185
+ condition="f_gas_date <= '{} 23:59:59'">
186
+ </datepicker>
187
+ </div>
188
+ </div>
189
+ <modal :show.sync="$parent.$parent.showModal" v-ref:modal>
190
+ <div slot="modal-header" class="modal-header">
191
+ <h4 class="modal-title">
192
+ 选择计划
193
+ </h4>
194
+ </div>
195
+ <div slot="modal-body" class="modal-body">
196
+ <plan-chooser :f.sync="$parent.$parent.fun" v-ref:chooser></plan-chooser>
197
+ </div>
198
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
199
+ <button class="button_search" @click="$parent.$parent.ok">确认</button>
200
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
201
+ </div>
202
+ </modal>
203
+ </div>
204
+ </criteria>
205
+ <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
206
+ <template partial='head'>
207
+ <tr>
208
+ <th v-if="$parent.$parent.$parent.canToRepair=='是'"><nobr>选择</nobr></th>
209
+ <th>
210
+ <nobr>检查项</nobr>
211
+ </th>
212
+ <th>
213
+ <nobr>隐患原因</nobr>
214
+ </th>
215
+ <th>
216
+ <nobr>隐患级别</nobr>
217
+ </th>
218
+ <th>
219
+ <nobr>客户编号</nobr>
220
+ </th>
221
+ <th>
222
+ <nobr>客户名称</nobr>
223
+ </th>
224
+ <th>
225
+ <nobr>客户电话</nobr>
226
+ </th>
227
+ <th>
228
+ <nobr>客户小区</nobr>
229
+ </th>
230
+ <th>
231
+ <data-order field="f_address" name="客户地址"></data-order>
232
+ </th>
233
+
234
+ <th>
235
+ <data-order field="f_offsite_time" name="安检时间"></data-order>
236
+ </th>
237
+ <th>
238
+ <nobr>安检员</nobr>
239
+ </th>
240
+ <th>
241
+ <nobr>隐患状态</nobr>
242
+ </th>
243
+ <th>
244
+ <nobr>处理人</nobr>
245
+ </th>
246
+ <th>
247
+ <nobr>处理方式</nobr>
248
+ </th>
249
+ <th>
250
+ <nobr>处理时间</nobr>
251
+ </th>
252
+ <th>
253
+ <nobr>工单编号</nobr>
254
+ </th>
255
+ <th>
256
+ <nobr>转单类型</nobr>
257
+ </th>
258
+ <th>
259
+ <nobr>接收人</nobr>
260
+ </th>
261
+ <th v-if="$parent.$parent.$parent.canlook">
262
+ <nobr>材料明细</nobr>
263
+ </th>
264
+ </tr>
265
+ </template>
266
+ <template partial='body'>
267
+ <td v-if="$parent.$parent.$parent.canToRepair=='是'" style="text-align: center;white-space:nowrap;"><input type="checkbox" v-if="['用户自行整改', '现场已处理', '维修已处理', '转维修'].indexOf(row.f_is_repaired) == -1" @click="$event.cancelBubble=true" :checked="$parent.$parent.$parent.isChecked(row)" @change="$parent.$parent.$parent.setCheckes(row)"></input></td>
268
+ <td style="text-align: center">{{row.f_device_type}}</td>
269
+ <td style="text-align: center">{{row.f_item_name}}/{{row.f_item_value}}</td>
270
+ <td style="text-align: center">{{row.f_defect_level}}</td>
271
+ <td style="text-align: center">{{row.f_userinfo_code}}</td>
272
+ <td style="text-align: center">{{row.f_user_name}}</td>
273
+ <td style="text-align: center">{{row.f_user_phone}}</td>
274
+ <td style="text-align: center">{{row.f_residential_area}}</td>
275
+ <td style="text-align: center">{{row.f_address}}</td>
276
+ <td style="text-align: center">{{row.f_offsite_time}}</td>
277
+ <td style="text-align: center">{{row.f_checker_name}}</td>
278
+ <td style="text-align: center">{{row.f_is_repaired}}</td>
279
+ <td style="text-align: center">{{row.f_repairman}}</td>
280
+ <td style="text-align: center">{{row.f_deal_dispose}}</td>
281
+ <td style="text-align: center">{{row.f_repair_date}}</td>
282
+ <td style="text-align: center">{{row.f_service_id}}</td>
283
+ <td style="text-align: center">{{row.f_handlingtype}}</td>
284
+ <td style="text-align: center">{{row.f_order_man}}</td>
285
+ <td class="flex-around" v-if="$parent.$parent.$parent.canlook">
286
+ <button type="button" name="button" class="btn btn-link" @click.stop="$parent.$parent.$parent.lookMateril(row)">查看材料</button>
287
+ </td>
288
+ </template>
289
+ </data-grid>
290
+ </criteria-paged>
291
+ <check-msg v-if="showcheckmsg" :show="showcheckmsg" :data="checkInfo"></check-msg>
292
+ <modal :show.sync="showModal2" :backdrop="false">
293
+ <div slot="modal-header" class="modal-header">
294
+ <h4 class="modal-title">
295
+ 转维修
296
+ </h4>
297
+ </div>
298
+ <div slot="modal-body" class="modal-body">
299
+ <div v-if="true">
300
+ <div>
301
+
302
+ </div>
303
+ <!-- <div v-for="(index, item) in dangerGroup">-->
304
+
305
+ <!-- </div>-->
306
+ <div class="row" style="margin-top: 10px">
307
+ <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">派发类型</label>
308
+ <div class="col-xs-8 col-md-8">
309
+ <v-select :value.sync="selectData.dispatchType" :value-single="true" v-model="selectData.dispatchType"
310
+ :options='dispatchTypeOptions' placeholder='派发类型'
311
+ close-on-select>
312
+ </v-select>
313
+ </div>
314
+ </div>
315
+ <div class="row" style="margin-top: 10px" v-if="selectData.dispatchType=='派发给维修员'">
316
+ <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">维&ensp;修&ensp;员</label>
317
+ <div class="col-xs-8 col-md-8">
318
+ <v-select
319
+ :value.sync="selectData.f_repairman"
320
+ :value-single="true"
321
+ :options='repairers'
322
+ placeholder='请选择维修员'
323
+ close-on-select></v-select>
324
+ </div>
325
+ </div>
326
+ <div class="row" style="margin-top: 10px" v-if="selectData.dispatchType=='派发给站点'">
327
+ <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">站&ensp;&ensp;&ensp;&ensp;点</label>
328
+ <div class="col-xs-8 col-md-8">
329
+ <right-tree
330
+ islist
331
+ :userid="userid"
332
+ :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"
333
+ @re-res="getSiteRes"></right-tree>
334
+ </div>
335
+ </div>
336
+ <div class="row" style="margin-top: 10px">
337
+ <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">报修类型</label>
338
+ <div class="col-xs-8 col-md-8">
339
+ <v-select :value.sync="selectData.f_repairtype" style="width:60%"
340
+ class="select select_list"
341
+ :value-single="true"
342
+ :options='repairTypeOptions'
343
+ close-on-select>
344
+ </v-select>
345
+ </div>
346
+ </div>
347
+ <div class="row" style="margin-top: 10px">
348
+ <label class="control-label font text-left" style="float:left;margin-left:20%;margin-top:5px">备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注</label>
349
+ <div class="col-xs-8 col-md-8">
350
+ <textarea style="width: 60%; height: 100px" v-model="selectData.f_remarks"></textarea>
351
+ </div>
352
+ </div>
353
+ </div>
354
+ </div>
355
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
356
+ <button class="button_search" @click="rectification">转维修</button>
357
+ <button class="button_search" @click="cancel1">取消</button>
358
+ </div>
359
+ </modal>
360
+ <modal :show.sync="showModal3">
361
+ <div slot="modal-header" class="modal-header">
362
+ <h4 class="modal-title">
363
+ 转维修进度{{ progressbarWidth }}%
364
+ </h4>
365
+ </div>
366
+ <div slot="modal-body" class="modal-body">
367
+ <div class="progress">
368
+ <div class="progress-bar" role="progressbar" aria-valuenow="60"
369
+ aria-valuemin="0" aria-valuemax="100" :style="'width:'+ progressbarWidth+'%'">
370
+ </div>
371
+ </div>
372
+ </div>
373
+ <div slot="modal-footer" class="modal-footer" style="text-align: center" v-show="false"></div>
374
+ </modal>
375
+ <modal :show.sync="showmaterial" backdrop="false" style="overflow: scroll;height: 100%">
376
+ <header slot="modal-header" class="modal-header text-center">
377
+ <button type="button" class="close" @click="close2"><span>&times;</span></button>
378
+ <h4 class="modal-title">材料查看</h4>
379
+ </header>
380
+ <article slot="modal-body">
381
+ <defect-material-look v-if="showmaterial" :selectdata = "selectdata" ></defect-material-look>
382
+ </article>
383
+ <footer slot="modal-footer"></footer>
384
+ </modal>
385
+ </div>
386
+ </div>
387
+ </template>
388
+
389
+ <script>
390
+ import {PagedList} from 'vue-client'
391
+ import Vue from 'vue'
392
+ import co from 'co'
393
+ import AppData from '../../stores/AppData'
394
+ import * as Util from '../Util'
395
+ import getNowDate from "../../utils/getNowDate";
396
+ import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
397
+ import BenzAMRRecorder from 'benz-amr-recorder'
398
+
399
+ let asyncReady = async function (self) {
400
+ // 获取配置信息
401
+ try {
402
+ let res = await new HttpResetClass().load('get','/api/af-safecheck/vue',null, {resolveMsg: null, rejectMsg: null})
403
+ self.delConfigKey(res.data)
404
+ Vue.config.safecheck=res.data
405
+ self.getDefectInfoConfig(res.data)
406
+ console.log('获取配置结果===', res.data)
407
+ } catch (error) {
408
+ // 忽略704,文件找不到异常R
409
+ if (error.status !== 704) {
410
+ throw error
411
+ }
412
+ }
413
+ }
414
+
415
+ let select = function* (self) {
416
+ let http = new HttpResetClass()
417
+ let getGasman = yield http.load('POST', '/rs/search', {
418
+ source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
419
+ userid: self.$login.f.id
420
+ }, {resolveMsg: null, rejectMsg: null})
421
+ ////tag
422
+ self.checkersid.push({label: '全部', value: ''})
423
+ getGasman.data.forEach((checker) => {
424
+ self.checkersid.push({label: checker.name, value: checker.id})
425
+ })
426
+ }
427
+
428
+ export default {
429
+ title: '隐患明细查看',
430
+ data() {
431
+ let model = new PagedList('api/af-safecheck/sql/defectDetails', 20,{
432
+ f_filialeid: 'this.f_filialeid'
433
+ })
434
+ model.f_plan_id = ''
435
+ model.f_approved = ''
436
+ model.f_entry = ''
437
+ model.f_no_checkplan = ''
438
+ model.f_check_type=''
439
+ model.f_filialeid = `('${this.$login.f.orgid}')`
440
+ return {
441
+ audioshow:false,
442
+ showmaterial: false,
443
+ selectdata: {},
444
+ model: model,
445
+ deal_dispose:[{label:'全部',value:''},{label:'报修',value:'报修'},{label:'现场整改',value:'现场整改'},{label:'自行处理',value:'自行处理'},{label:'未处理',value:'未处理'}],
446
+ repairStateOptions: this.getSafeParam('隐患状态'),
447
+ //searchData:searchData,
448
+ excelHeaders: {
449
+ 'f_device_type': '检查项',
450
+ 'f_item_name': '隐患名称',
451
+ 'f_userinfo_code': '客户编号',
452
+ 'f_user_name': '客户姓名',
453
+ 'f_user_phone': '客户电话',
454
+ 'f_residential_area': '小区',
455
+ 'f_address': '客户地址',
456
+ 'f_offsite_time': '安检时间',
457
+ 'f_checker_name': '安检员',
458
+ 'f_deal_dispose': '处理方式',
459
+ 'f_is_repaired': '隐患状态',
460
+ 'f_repairman':'处理人',
461
+ 'f_repair_date':'处理时间'
462
+ },
463
+ fun: this.$login.f,
464
+ checkersid: [],
465
+ safetype: this.getSafeParam('安检类型'),
466
+ criteriaShow: false,
467
+ showModal: false,
468
+ f_approval_states: this.getSafeParam('安检单审核状态'),
469
+ f_entry_status:this.getSafeParam('安检状态'),
470
+ f_checkplans: this.getSafeParam('有无计划'),
471
+ showcheckmsg: false,
472
+ checkInfo: {},
473
+ orderDefault: "'f_offsite_time'",
474
+ orderFields: {
475
+ f_offsite_time: 'no'
476
+ },
477
+ sliceArea: [],
478
+ cbc:[],
479
+ DefectConfig:'' ,
480
+ DefectConfigs:[{label:'全部',value:''},{label: '金额异常差值', value: '金额异常差值'},{label: '气量异常差值', value: '气量异常差值'}],
481
+ device_types:[{label:'全部',value:''}],
482
+ f_check_type:[{label:'全部',value:''},{label:'民用',value:'民用'},{label:'非民用',value:'非民用'}],
483
+ showModal2: false,
484
+ selectData:{
485
+ dispatchType:'',
486
+ f_repairman:'',
487
+ f_remarks:'',
488
+ f_repairtype:''
489
+ },
490
+ repairers: [],
491
+ repairTypeOptions:this.$appdata.getParam('报修类型'),
492
+ dispatchTypeOptions: [{label: '派发给站点', value: '派发给站点'},{label: '派发给维修员', value: '派发给维修员'}],
493
+ dangerGroups: [],
494
+ showModal3: false,
495
+ progressbarWidth:'0',
496
+ canToRepair: this.$appdata.getSingleValue('隐患明细转维修'),
497
+ canlook: this.$appdata.getSingleValue('隐患明细查看材料')?true:false,
498
+ checkes: []
499
+ }
500
+ },
501
+ computed :{
502
+ searchData() {
503
+ return {condition: this.model.condition}
504
+ }
505
+ },
506
+ methods: {
507
+ lookMateril(row){
508
+ this.selectdata=row
509
+ this.showmaterial=true
510
+ },
511
+ close2(){
512
+ this.showmaterial=false
513
+ },
514
+ delConfigKey(obj){
515
+ // 从琉璃中获取的配置中会包含 $开头的一些额外描述新的key。为了兼容v3的代码逻辑在此函数中去掉
516
+ Object.keys(obj).forEach(key =>{
517
+ Object.keys(obj[key]).forEach(col => {
518
+ // 检查键是否以$开头
519
+ if (col.startsWith('$')) {
520
+ // 使用delete操作符删除键
521
+ delete obj[key][col];
522
+ }
523
+ })
524
+ })
525
+ },
526
+ isChecked(row) {
527
+ return this.checkes.findIndex(item => item.f_defect_id == row.f_defect_id) != -1
528
+ },
529
+ setCheckes(row) {
530
+ let index=this.checkes.findIndex(item => item.f_defect_id == row.f_defect_id)
531
+ if(index<0){
532
+ this.checkes.push(row)
533
+ }else{
534
+ this.checkes.splice(index,1)
535
+ }
536
+ console.log('this.checkes=', JSON.stringify(this.checkes))
537
+ },
538
+ toRepair(){
539
+ console.log('this.checkes=', JSON.stringify(this.checkes))
540
+ if(this.checkes.length==0){
541
+ return this.$showMessage('请先选择需要转维修的隐患!')
542
+ }
543
+
544
+ const dangerGroups = []
545
+ for (const danger of this.checkes) {
546
+ let i = dangerGroups.findIndex(dangerGroup => dangerGroup.f_userinfo_code === danger.f_userinfo_code)
547
+ if (i == -1){
548
+ dangerGroups.push({
549
+ f_userinfo_code: danger.f_userinfo_code,
550
+ dangers: []
551
+ })
552
+ i = dangerGroups.length - 1
553
+ }
554
+ dangerGroups[i].dangers.push(danger)
555
+ }
556
+ this.dangerGroups = dangerGroups
557
+ console.log('this.dangerGroups=', JSON.stringify(this.dangerGroups))
558
+ this.showModal2=true
559
+ },
560
+ getEmp() {
561
+ let val = {source: 'this.getParentByType($organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$)!=null ).where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1))', userid: `${this.$login.f.id}`}
562
+ let http = new HttpResetClass()
563
+ http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
564
+ if (res.data.length == 0){
565
+ this.repairers= []
566
+ return
567
+ }
568
+ let str=``
569
+ res.data.forEach((item,idx,arr) => {
570
+ if(idx+1==arr.length){
571
+ str += item.id
572
+ }else{
573
+ str += item.id+`','`
574
+ }
575
+ })
576
+ let http1 = new HttpResetClass()
577
+ http1.load('POST', 'api/af-safecheck/sql/safe_singleTable_OrderBy', {
578
+ data: {
579
+ items: 'id,f_user_telephone',
580
+ tablename: 't_user',
581
+ condition: `id in ('${str}')`,
582
+ orderitem: 'id'
583
+ }
584
+ }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
585
+ res.data.forEach((user)=>{
586
+ try {
587
+ ress.data.forEach((tel,tidx,arr)=>{
588
+ if(user.id==tel.id){
589
+ this.repairers.push({label: `${user.name}:${tel.f_user_telephone}`, value: user.name})
590
+ ress.data.splice(tidx,1)
591
+ }
592
+ })
593
+ }catch (e) {
594
+ }
595
+ })
596
+ }).catch(error=>{
597
+ res.data.forEach((user)=>{
598
+ this.repairers.push({label: user.name, value: user.name})
599
+ })
600
+ })
601
+
602
+ })
603
+ },
604
+ getSiteRes(obj) {
605
+ console.log('siteRes ---> ')
606
+ console.log(obj)
607
+ if(obj.resids[0]){
608
+ this.selectData.f_meetunit = obj.res.join('.')
609
+ this.selectData.f_reciever = obj.resids.join('.')
610
+ this.selectData.f_outlets = obj.res[obj.res.length - 1]
611
+ }else {
612
+ this.selectData.f_meetunit = ''
613
+ this.selectData.f_reciever = ''
614
+ this.selectData.f_outlets = ''
615
+ }
616
+ },
617
+ cancel1(){
618
+ this.showModal2=false
619
+ this.selectData={
620
+ dispatchType:'',
621
+ f_repairman:'',
622
+ f_remarks:'',
623
+ f_repairtype:''
624
+ }
625
+ },
626
+ async rectification(){
627
+ if(this.selectData.dispatchType){
628
+ if(this.selectData.dispatchType=='派发给站点'){
629
+ if(!this.selectData.f_reciever){
630
+ this.$showMessage('请选择部门!')
631
+ return
632
+ }
633
+ }else{
634
+ if(!this.selectData.f_repairman){
635
+ this.$showMessage('请选择维修员!')
636
+ return
637
+ }
638
+ }
639
+ }else {
640
+ this.$showMessage('请选择派发类型!')
641
+ return
642
+ }
643
+
644
+ if(!this.selectData.f_repairtype){
645
+ this.$showMessage('请选择报修类型!')
646
+ return
647
+ }
648
+ this.showModal3=true
649
+ let act={}
650
+ let toRepair=''
651
+ let successCount=0
652
+ if(this.selectData.dispatchType=='派发给站点'){
653
+ act={f_meetunit:this.selectData.f_meetunit,f_reciever:this.selectData.f_reciever,f_service_acitivity_type:'派单'}
654
+ toRepair=null
655
+ }else{
656
+ console.log('派发给维修员---------'+this.selectData.f_repairman)
657
+ act={f_meetunit:'',f_reciever:this.selectData.f_repairman,f_service_acitivity_type:'派单'}
658
+ toRepair='一级派单'
659
+ }
660
+ let rep={
661
+ loginUser: {
662
+ name: this.$login.f.name,
663
+ ename: this.$login.f.ename
664
+ },
665
+ f_meetunit: this.$login.f.deps,
666
+ f_attendant: this.$login.f.name,
667
+ f_outlets: this.$login.f.deps,
668
+ f_remarks: this.selectData.f_remarks,
669
+ f_repairtype: this.selectData.f_repairtype,
670
+ dispatchType: this.selectData.dispatchType,
671
+ toRepair: toRepair,
672
+ activity:act
673
+ }
674
+ for(let i=0; i<this.dangerGroups.length; i++){
675
+ let defectIdStr = ''
676
+ const defectIds = []
677
+ for (let j = 0; j < this.dangerGroups[i].dangers.length; j++) {
678
+ defectIds.push(`'${this.dangerGroups[i].dangers[j].f_defect_id}'`)
679
+ }
680
+ defectIdStr = `(${defectIds.join(',')})`
681
+ const data = {
682
+ id:this.dangerGroups[i].dangers[0].f_paper_id,
683
+ repData:rep,
684
+ source:'pc',
685
+ defectIdStr: defectIdStr
686
+ }
687
+ console.log('data=', JSON.stringify(data))
688
+ try {
689
+ let result =await new HttpResetClass().load('post','/api/af-safecheck/logic/phoneUploadRectification', data, {resolveMsg: null, rejectMsg: null})
690
+ if (result.data.code==200) {
691
+ successCount += result.data.successcon
692
+ this.progressbarWidth=Math.ceil((i+1)*100/(this.dangerGroups.length))
693
+ }
694
+ }catch (e) {
695
+ this.showModal3=false
696
+ this.$showMessage('网络异常,请稍后再试!')
697
+ return
698
+ }
699
+ }
700
+ this.showModal3=false
701
+ this.cancel1()
702
+ this.$showMessage('本次转维修成功'+successCount+'单')
703
+ },
704
+ getDefectInfoConfig(val){
705
+ try {
706
+ if (val.DevicesSetConfig != undefined) {
707
+ this.DefectConfig = val.DevicesConfig
708
+ // 获取到配置项,进行遍历,获取每个隐患项
709
+ for (var Key1 in this.DefectConfig){
710
+ this.device_types.push({label:Key1,value:Key1})
711
+ for(var Key2 in this.DefectConfig[Key1].items){
712
+ this.DefectConfigs.push({label:Key2,value:Key2})
713
+ }
714
+ }
715
+ // 非民用或其他配置项加入,在进行遍历
716
+ }
717
+ }catch (e) {
718
+ //tag
719
+ }
720
+ },
721
+ showaudio(){
722
+ //tag
723
+ this.audioshow=!this.audioshow
724
+ //tag
725
+ },
726
+ getmeterbook(val){
727
+ this.cbc=[]
728
+ this.cbc.push({
729
+ label:'全部',
730
+ value:''
731
+ })
732
+ if (val==''){
733
+
734
+ this.cbcs.forEach(res=>{
735
+ this.cbc.push({
736
+ label:res.f_book_name,
737
+ value:res.id
738
+ })
739
+ })
740
+ }else{
741
+ this.cbcs.forEach(res=>{
742
+ if (res.f_book_slice_area==val){
743
+ this.cbc.push({
744
+ label:res.f_book_name,
745
+ value:res.id
746
+ })
747
+ }
748
+ })
749
+ }
750
+ },
751
+ getSafeParam(val){
752
+ if(this.$appdata.getParam(val)){
753
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam(val)]
754
+ }else{
755
+ return [{label: '全部', value: ''}]
756
+ }
757
+
758
+ },
759
+ Mreadibook(val){
760
+ ////tag
761
+ ////tag
762
+ this.sliceArea=[]
763
+ if (val){
764
+ new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
765
+ items: 'name',
766
+ tablename: 't_zone',
767
+ condition: `parentid in ${val}`,
768
+ orderitem: 'id'
769
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
770
+ this.sliceArea.push({
771
+ label:'全部',
772
+ value:''
773
+ })
774
+ res.data.forEach(ress=>{
775
+ this.sliceArea.push({
776
+ label:ress.name,
777
+ value:ress.name
778
+ })
779
+ })
780
+
781
+ })
782
+ }
783
+ },
784
+ getAllMeterBook(val){
785
+ ////tag
786
+ ////tag
787
+ this.cbcs=[]
788
+ if (val){
789
+ new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
790
+ items: 'f_book_name,f_book_slice_area,id',
791
+ tablename: 't_meter_book',
792
+ condition: `f_filiale_id in ${val}`,
793
+ orderitem: 'id'
794
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
795
+ res.data.forEach(ress=>{
796
+ this.cbcs.push({
797
+ id:ress.id,
798
+ f_book_name:ress.f_book_name,
799
+ f_book_slice_area:ress.f_book_slice_area
800
+ })
801
+ })
802
+ this.cbc=[]
803
+ this.cbc.push({
804
+ label:'全部',
805
+ value:''
806
+ })
807
+ this.cbcs.forEach(res=>{
808
+ this.cbc.push({
809
+ label:res.f_book_name,
810
+ value:res.id
811
+ })
812
+ })
813
+ })
814
+ }
815
+ },
816
+ getRes(obj) {
817
+ this.model.f_filialeid = this.$login.convertToIn(obj.resids);
818
+ this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
819
+ this.Mreadibook(this.model.f_filialeid)
820
+ this.getAllMeterBook(this.model.f_filialeid)
821
+ //this.$refs.paged.$refs.criteria.search()
822
+ },
823
+
824
+ change(row) {
825
+ // Vue.$login = {jwt: row.f_checker_id}
826
+ asyncReady(this).then(() => {
827
+ ////tag)
828
+ row.f_upload_state = '已传'
829
+ this.$goto('new-check-paper', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
830
+ }).catch(
831
+ (respanse) => {
832
+ alert('获取配置文件失败')
833
+ })
834
+ },
835
+ readConfig() {
836
+ let gen = asyncReady(this)
837
+ return co(gen)
838
+ },
839
+ showChooser() {
840
+ this.showModal = true
841
+ },
842
+ hidden() {
843
+ this.criteriaShow = !this.criteriaShow
844
+ },
845
+ refresh() {
846
+ this.$refs.paged.$refs.criteria.search()
847
+ },
848
+ ok() {
849
+ this.showModal = false
850
+ if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
851
+ this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
852
+ this.model.f_check_plan=this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
853
+ }
854
+ },
855
+ cancel() {
856
+ this.showModal = false
857
+ this.model.f_check_plan = {f_plan_name: '', id: ''}
858
+ this.model.f_plan_id=''
859
+ },
860
+ print(row) {
861
+ this.showcheckmsg = true
862
+ this.checkInfo = row
863
+ },
864
+
865
+ sort(field, rule) {
866
+ // 将所有排序方式设为不排序,实现相互排斥
867
+ for (let key in this.orderFields) {
868
+ if (key === field) {
869
+ this.orderFields[key] = rule
870
+ } else {
871
+ this.orderFields[key] = 'no'
872
+ }
873
+ }
874
+ // 如果新规则不排序,还原为默认排序
875
+ if (rule === 'no') {
876
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
877
+ } else {
878
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
879
+ }
880
+ this.search()
881
+ },
882
+ search() {
883
+ this.$refs.paged.$refs.criteria.search()
884
+ },
885
+ selfSearch(args) {
886
+ ////tag
887
+ args.condition += ` and f_filialeid in ${this.model.f_filialeid}`
888
+ this.model.search(args.condition, args.model, args.condValue)
889
+ }
890
+ },
891
+
892
+ ready() {
893
+ this.getEmp()
894
+ this.readConfig()
895
+ ////tag
896
+ this.function = this.f
897
+ ////tag
898
+
899
+ let gen = select(this)
900
+ //this.pianqu()
901
+ this.Mreadibook(`('${this.$login.f.orgid}')`)
902
+ co(gen)
903
+ }
904
+ }
905
+ </script>