safecheck-client 3.0.34-6 → 3.0.34-60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (373) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/config/dev.env.js +6 -6
  5. package/config/index.js +38 -38
  6. package/config/prod.env.js +3 -3
  7. package/config/test.env.js +6 -6
  8. package/docs/AppBase.md +22 -22
  9. package/docs/Busy.md +14 -14
  10. package/docs/CriteriaPaged.md +47 -47
  11. package/docs/DataGrid.md +54 -54
  12. package/docs/DataModel.md +22 -22
  13. package/docs/Dynamic.md +42 -42
  14. package/docs/FormPrint.md +18 -18
  15. package/docs/GetParams.md +11 -11
  16. package/docs/GridTree.md +47 -47
  17. package/docs/HttpBusy.md +13 -13
  18. package/docs/HttpStore.md +29 -29
  19. package/docs/MessageBox.md +28 -28
  20. package/docs/PagedList.md +29 -29
  21. package/docs/Pager.md +21 -21
  22. package/docs/PrintFile.md +38 -38
  23. package/docs/Project.md +23 -23
  24. package/docs/Route.md +105 -105
  25. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  26. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  27. package/docs/Task.md +46 -46
  28. package/docs/TreeList.md +28 -28
  29. package/docs/TreeMixin.md +18 -18
  30. package/docs/all.md +10 -10
  31. package/docs/list.md +42 -42
  32. package/docs/partial.md +75 -75
  33. package/docs/selector.md +82 -82
  34. package/docs/tree.md +40 -40
  35. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  36. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue-strap/345/217/230/346/233/264/350/256/260/345/275/225.md +7 -7
  37. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue/345/217/230/346/233/264/350/256/260/345/275/225.md +13 -13
  38. package/docs//345/274/200/345/217/221/346/226/207/346/241/243//345/274/200/345/217/221/347/216/257/345/242/203/350/256/276/347/275/256.md +77 -77
  39. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  40. package/examples/AddressList/App.vue +13 -13
  41. package/examples/AddressList/index.html +11 -11
  42. package/examples/DispatchList/App.vue +10 -10
  43. package/examples/DispatchList/BaseTree.vue +13 -13
  44. package/examples/DispatchList/Init.vue +22 -22
  45. package/examples/DispatchList/Test.vue +20 -20
  46. package/examples/DispatchList/index.html +11 -11
  47. package/examples/DispatchList/main.js +18 -18
  48. package/home.html +16 -16
  49. package/package.json +1 -1
  50. package/publish.bat +7 -7
  51. package/release.bat +5 -5
  52. package/src/App-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.vue +55 -0
  53. package/src/Widget.vue +13 -13
  54. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  55. package/src/android-bootstrap/less/.csscomb.json +304 -304
  56. package/src/android-bootstrap/less/.csslintrc +19 -19
  57. package/src/android-bootstrap/less/alerts.less +73 -73
  58. package/src/android-bootstrap/less/badges.less +66 -66
  59. package/src/android-bootstrap/less/bootstrap.less +56 -56
  60. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  61. package/src/android-bootstrap/less/button-groups.less +247 -247
  62. package/src/android-bootstrap/less/buttons.less +173 -173
  63. package/src/android-bootstrap/less/carousel.less +269 -269
  64. package/src/android-bootstrap/less/close.less +34 -34
  65. package/src/android-bootstrap/less/code.less +69 -69
  66. package/src/android-bootstrap/less/component-animations.less +33 -33
  67. package/src/android-bootstrap/less/grid.less +84 -84
  68. package/src/android-bootstrap/less/input-groups.less +167 -167
  69. package/src/android-bootstrap/less/jumbotron.less +52 -52
  70. package/src/android-bootstrap/less/labels.less +64 -64
  71. package/src/android-bootstrap/less/list-group.less +141 -141
  72. package/src/android-bootstrap/less/media.less +66 -66
  73. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  74. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  75. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  76. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  77. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  78. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  79. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  80. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  81. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  82. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  83. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  84. package/src/android-bootstrap/less/mixins/image.less +33 -33
  85. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  86. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  87. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  88. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  89. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  90. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  91. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  92. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  93. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  94. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  95. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  96. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  97. package/src/android-bootstrap/less/mixins/size.less +10 -10
  98. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  99. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  100. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  101. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  102. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  103. package/src/android-bootstrap/less/mixins.less +40 -40
  104. package/src/android-bootstrap/less/modals.less +151 -151
  105. package/src/android-bootstrap/less/navbar.less +660 -660
  106. package/src/android-bootstrap/less/navs.less +290 -290
  107. package/src/android-bootstrap/less/normalize.less +424 -424
  108. package/src/android-bootstrap/less/pager.less +76 -76
  109. package/src/android-bootstrap/less/pagination.less +89 -89
  110. package/src/android-bootstrap/less/panels.less +274 -274
  111. package/src/android-bootstrap/less/popovers.less +131 -131
  112. package/src/android-bootstrap/less/print.less +101 -101
  113. package/src/android-bootstrap/less/progress-bars.less +87 -87
  114. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  115. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  116. package/src/android-bootstrap/less/scaffolding.less +161 -161
  117. package/src/android-bootstrap/less/tables.less +262 -262
  118. package/src/android-bootstrap/less/theme.less +291 -291
  119. package/src/android-bootstrap/less/thumbnails.less +36 -36
  120. package/src/android-bootstrap/less/tooltip.less +102 -102
  121. package/src/android-bootstrap/less/type.less +303 -303
  122. package/src/android-bootstrap/less/utilities.less +55 -55
  123. package/src/android-bootstrap/less/variables.less +896 -896
  124. package/src/android-bootstrap/less/wells.less +29 -29
  125. package/src/androidTest.js +20 -20
  126. package/src/assets/123.png +0 -0
  127. package/src/assets/f8632d3c8c4c1cb68e99da754cab1a7.png +0 -0
  128. package/src/bootstrap/less/.csscomb.json +304 -304
  129. package/src/bootstrap/less/.csslintrc +19 -19
  130. package/src/bootstrap/less/alerts.less +73 -73
  131. package/src/bootstrap/less/badges.less +66 -66
  132. package/src/bootstrap/less/breadcrumbs.less +26 -26
  133. package/src/bootstrap/less/button-groups.less +247 -247
  134. package/src/bootstrap/less/buttons.less +172 -172
  135. package/src/bootstrap/less/carousel.less +269 -269
  136. package/src/bootstrap/less/close.less +34 -34
  137. package/src/bootstrap/less/code.less +69 -69
  138. package/src/bootstrap/less/component-animations.less +33 -33
  139. package/src/bootstrap/less/dropdowns.less +216 -216
  140. package/src/bootstrap/less/forms.less +626 -626
  141. package/src/bootstrap/less/grid.less +84 -84
  142. package/src/bootstrap/less/input-groups.less +167 -167
  143. package/src/bootstrap/less/jumbotron.less +52 -52
  144. package/src/bootstrap/less/labels.less +64 -64
  145. package/src/bootstrap/less/list-group.less +141 -141
  146. package/src/bootstrap/less/media.less +66 -66
  147. package/src/bootstrap/less/mixins/alerts.less +14 -14
  148. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  149. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  150. package/src/bootstrap/less/mixins/buttons.less +69 -69
  151. package/src/bootstrap/less/mixins/center-block.less +7 -7
  152. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  153. package/src/bootstrap/less/mixins/forms.less +90 -90
  154. package/src/bootstrap/less/mixins/gradients.less +59 -59
  155. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  156. package/src/bootstrap/less/mixins/grid.less +122 -122
  157. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  158. package/src/bootstrap/less/mixins/image.less +33 -33
  159. package/src/bootstrap/less/mixins/labels.less +12 -12
  160. package/src/bootstrap/less/mixins/list-group.less +30 -30
  161. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  162. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  163. package/src/bootstrap/less/mixins/opacity.less +8 -8
  164. package/src/bootstrap/less/mixins/pagination.less +24 -24
  165. package/src/bootstrap/less/mixins/panels.less +24 -24
  166. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  167. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  168. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  169. package/src/bootstrap/less/mixins/resize.less +6 -6
  170. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  171. package/src/bootstrap/less/mixins/size.less +10 -10
  172. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  173. package/src/bootstrap/less/mixins/table-row.less +44 -44
  174. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  175. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  176. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  177. package/src/bootstrap/less/mixins.less +40 -40
  178. package/src/bootstrap/less/modals.less +151 -151
  179. package/src/bootstrap/less/navbar.less +660 -660
  180. package/src/bootstrap/less/normalize.less +424 -424
  181. package/src/bootstrap/less/pager.less +76 -76
  182. package/src/bootstrap/less/pagination.less +89 -89
  183. package/src/bootstrap/less/panels.less +275 -275
  184. package/src/bootstrap/less/popovers.less +131 -131
  185. package/src/bootstrap/less/print.less +101 -101
  186. package/src/bootstrap/less/progress-bars.less +87 -87
  187. package/src/bootstrap/less/responsive-embed.less +35 -35
  188. package/src/bootstrap/less/responsive-utilities.less +194 -194
  189. package/src/bootstrap/less/scaffolding.less +161 -161
  190. package/src/bootstrap/less/theme.less +291 -291
  191. package/src/bootstrap/less/thumbnails.less +36 -36
  192. package/src/bootstrap/less/tooltip.less +102 -102
  193. package/src/bootstrap/less/type.less +303 -303
  194. package/src/bootstrap/less/utilities.less +55 -55
  195. package/src/bootstrap/less/wells.less +29 -29
  196. package/src/components/FileUpload.vue +696 -696
  197. package/src/components/Hello.vue +39 -39
  198. package/src/components/LeftTree.vue +27 -27
  199. package/src/components/LoadData.vue +62 -0
  200. package/src/components/android/AddGas.vue +147 -147
  201. package/src/components/android/AddressList.vue +61 -61
  202. package/src/components/android/AndroidDefectDeal.vue +1 -0
  203. package/src/components/android/AreaPlan.vue +566 -566
  204. package/src/components/android/AreaSelect.vue +208 -0
  205. package/src/components/android/AttendanceTally.vue +116 -116
  206. package/src/components/android/Blank.vue +10 -10
  207. package/src/components/android/BuildingSelect.vue +217 -0
  208. package/src/components/android/CheckPlanSelect.vue +248 -0
  209. package/src/components/android/CheckUnplanPage.vue +56 -56
  210. package/src/components/android/Checker.vue +12 -12
  211. package/src/components/android/CheckerAnnual.vue +81 -81
  212. package/src/components/android/CheckerAvarta.vue +82 -82
  213. package/src/components/android/CheckerMonthly.vue +84 -84
  214. package/src/components/android/EquipmentInspection.vue +348 -348
  215. package/src/components/android/FootprintMap.vue +120 -120
  216. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  217. package/src/components/android/LcheckUnplan.vue +108 -108
  218. package/src/components/android/MasterMain.vue +77 -77
  219. package/src/components/android/Menu.vue +132 -132
  220. package/src/components/android/NavBottom.vue +157 -157
  221. package/src/components/android/PaperAlarm.vue +85 -85
  222. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  223. package/src/components/android/PaperFeedback.vue +33 -0
  224. package/src/components/android/PlumberAnnual.vue +83 -83
  225. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  226. package/src/components/android/PlumberMonthly.vue +84 -84
  227. package/src/components/android/PostMap.vue +83 -83
  228. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  229. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  230. package/src/components/android/QueryCheckHistory.vue +122 -122
  231. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  232. package/src/components/android/RepairMain.vue +60 -60
  233. package/src/components/android/Repairman.vue +12 -12
  234. package/src/components/android/SafecheckDevices.vue +1298 -1298
  235. package/src/components/android/SafecheckOrderV.vue +2805 -2809
  236. package/src/components/android/StationMaster.vue +12 -12
  237. package/src/components/android/SwitchValve.vue +323 -323
  238. package/src/components/android/examples/SafeListExamples.vue +96 -0
  239. package/src/components/android/examples/UserExamples.vue +130 -0
  240. package/src/components/checkerphonestate/Checker.vue +32 -32
  241. package/src/components/checkerphonestate/CheckerState.vue +97 -97
  242. package/src/components/defects/AddDefectModal.vue +120 -120
  243. package/src/components/defects/AddDevice.vue +95 -95
  244. package/src/components/defects/DefectModal.vue +101 -101
  245. package/src/components/defects/DevicesAndItem.vue +39 -39
  246. package/src/components/defects/DevicesSeting.vue +106 -106
  247. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  248. package/src/components/metterfiles/AddUserfiles.vue +246 -246
  249. package/src/components/metterfiles/MetterFiles.vue +104 -104
  250. package/src/components/notice/NoticeForm.vue +100 -100
  251. package/src/components/notice/NoticeIssue.vue +20 -20
  252. package/src/components/notice/NoticeQuery.vue +76 -76
  253. package/src/components/paper/PicViewer.vue +18 -18
  254. package/src/components/paper/RepairVerifyForm.vue +76 -76
  255. package/src/components/phonestate/DailyTraffic.vue +57 -57
  256. package/src/components/phonestate/LastKnownState.vue +74 -74
  257. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  258. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  259. package/src/components/phonestate/PostMap.vue +82 -82
  260. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  261. package/src/components/rongcheng/AddPlanItem.vue +4 -0
  262. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  263. package/src/components/rongcheng/CheckSearchUser.vue +40 -14
  264. package/src/components/rongcheng/PaperStatem.vue +6 -1
  265. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  266. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  267. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  268. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  269. package/src/components/task/RepairAnnual.vue +79 -79
  270. package/src/components/task/RepairAnnualDetail.vue +49 -49
  271. package/src/components/task/RepairMonthly.vue +91 -91
  272. package/src/components/task/TaskAnnual.vue +77 -77
  273. package/src/components/task/TaskAnnualDetail.vue +47 -47
  274. package/src/components/task/TaskMonthly.vue +89 -89
  275. package/src/components/userfile/MeterFile.vue +145 -145
  276. package/src/components/userfile/MeterModify.vue +46 -46
  277. package/src/components/userfile/UserfileChange.vue +277 -277
  278. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  279. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +633 -633
  280. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  281. package/src/filiale/baiyin/android.js +1 -0
  282. package/src/filiale/baiyin/pc/CheckSearchUser.vue +1067 -1067
  283. package/src/filiale/baiyin/pc/DefectListNew.vue +597 -597
  284. package/src/filiale/baiyin/pc/PaperList.vue +790 -790
  285. package/src/filiale/baiyin/pc/checkUserList.vue +771 -771
  286. package/src/filiale/baiyin/pc.js +21 -21
  287. package/src/filiale/bayan/android/SafecheckOrderV.vue +52 -29
  288. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  289. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  290. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  291. package/src/filiale/huaran/android.js +12 -0
  292. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  293. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  294. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  295. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  296. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  297. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  298. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  299. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  300. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  301. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  302. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  303. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  304. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  305. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  306. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  307. package/src/filiale/huaran/pc.js +27 -0
  308. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  309. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  310. package/src/filiale/jiaxian/android/SafecheckDevices.vue +1298 -1298
  311. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  312. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  313. package/src/filiale/jiaxian/android.js +4 -0
  314. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  315. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  316. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  317. package/src/filiale/ruihua/android.js +11 -0
  318. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +645 -0
  319. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  320. package/src/filiale/siyang/pc/CheckSearchUser.vue +982 -0
  321. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  322. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  323. package/src/filiale/siyang/pc/checkUserList.vue +22 -18
  324. package/src/filiale/siyang/pc.js +5 -0
  325. package/src/filiale/tongchuan/android/Select.vue +421 -0
  326. package/src/filiale/tongchuan/android.js +1 -0
  327. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  328. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  329. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  330. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  331. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  332. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  333. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  334. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  335. package/src/filiale/weinan/android/SafecheckDevices.vue +1 -1
  336. package/src/filiale/weinan/android/SafecheckOrderV.vue +1 -1
  337. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  338. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  339. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  340. package/src/filiale/weinan/pc/DefectMainNew.vue +63 -63
  341. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  342. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  343. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  344. package/src/filiale/weinan/pc.js +47 -46
  345. package/src/filiale/wuan/android/SafecheckOrderV.vue +1 -0
  346. package/src/filiale/wuan/android/SafecheckUserInfo.vue +4 -0
  347. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1192 -1192
  348. package/src/filiale/yangchunboneng/android/DailyworkloadQuery.vue +472 -472
  349. package/src/filiale/yangchunboneng/android/safeHistoryLook.vue +473 -473
  350. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +13 -11
  351. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +6 -6
  352. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  353. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +10 -10
  354. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +6 -6
  355. package/src/filiale/yangchunboneng/pc/PaperList.vue +6 -6
  356. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  357. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  358. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  359. package/src/main.js +33 -33
  360. package/src/plugins/LoadData.js +10 -10
  361. package/src/plugins/LoadParams.js +24 -24
  362. package/src/safecheck-android.js +7 -0
  363. package/src/safecheck-page.js +10 -0
  364. package/src/stores/wxconfig.js +10 -10
  365. package/src/utils/getNowDate.js +33 -33
  366. package/test/e2e/custom-assertions/elementCount.js +26 -26
  367. package/test/e2e/nightwatch.conf.js +40 -40
  368. package/test/e2e/runner.js +30 -30
  369. package/test/e2e/specs/test.js +13 -13
  370. package/test/unit/.eslintrc +5 -5
  371. package/test/unit/TestUtil.js +62 -62
  372. package/test/unit/context.html +20 -20
  373. package/test/unit/index.js +13 -13
@@ -1,771 +1,771 @@
1
- <template>
2
- <div>
3
- <criteria-paged :model="model" v-ref:paged>
4
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
5
- <div partial>
6
- <div class="row " >
7
- <label class="form-group font_normal_body"><b>用户信息</b></label>
8
-
9
- <div class="form-group col-sm-1" >
10
- <input type="text" class="input_search" v-model="model.f_userinfo_code"
11
- style="width: 95%" placeholder="客户编号" condition="ui.f_userinfo_code='{}'">
12
- </div>
13
- <div class="form-group col-sm-1" >
14
- <input type="text" class="input_search" v-model="model.f_user_name"
15
- style="width: 95%" placeholder="客户名称" condition="ui.f_user_name like '%{}%'">
16
- </div>
17
- <div class="form-group col-sm-1" >
18
- <input type="text" class="input_search" v-model="model.f_address"
19
- style="width: 95%" placeholder="客户地址" condition="ua.f_address like '%{}%'">
20
- </div>
21
- <div class="form-group col-sm-1 upuserinfo_sel" >
22
- <v-select
23
- class="select select_list"
24
- :width="'95%'"
25
- :value.sync="model.f_area"
26
- v-model="model.f_area"
27
- :options='$parent.$parent.areaList'
28
- :timeout="500"
29
- @select-search="$parent.$parent.select_search"
30
- placeholder='小区选择'
31
- condition="ua.f_residential_area = '{}'"
32
- close-on-select
33
- value-single
34
- >
35
- </v-select>
36
- </div>
37
- <div class="form-group col-sm-4" >
38
- <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUserCondition()">更多条件</button>
39
- <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUploadCodeCondition()">导入编号</button>
40
- <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.clearUserInfoId()">清空编号</button>
41
- <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
42
- </div>
43
- <div class="form-group col-sm-1" style="float: right">
44
- <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.dragtoPlanItem()">添入计划</button>
45
- </div>
46
- <modal :show.sync="$parent.$parent.showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
47
- <div slot="modal-header" class="modal-header">
48
- <h4 class="modal-title">
49
- 用户查询条件
50
- </h4>
51
- </div>
52
- <div slot="modal-body" class="modal-body">
53
- <div class="row">
54
- <div class="form-group col-sm-4" >
55
- <label class="font_normal_body">用户类型:</label>
56
- <v-select
57
- class="select select_list"
58
- :value.sync="model.f_user_type"
59
- v-model="model.f_user_type"
60
- :options='$parent.$parent.userTypes'
61
- placeholder='请选择'
62
- condition="uf.f_user_type='{}'"
63
- :search="false"
64
- close-on-select
65
- value-single
66
- >
67
- </v-select>
68
- </div>
69
- <div class="form-group col-sm-4" >
70
- <label class="font_normal_body">用户状态:</label>
71
- <v-select
72
- class="select select_list"
73
- :value.sync="model.f_user_state"
74
- v-model="model.f_user_state"
75
- :options='$parent.$parent.userStates'
76
- placeholder='请选择'
77
- condition="ui.f_user_state='{}'"
78
- :search="false"
79
- close-on-select
80
- value-single
81
- >
82
- </v-select>
83
- </div>
84
- <div class="form-group col-sm-4" >
85
- <label class="font_normal_body">用气性质:</label>
86
- <v-select
87
- class="select select_list"
88
- :value.sync="model.f_gasproperties"
89
- v-model="model.f_gasproperties"
90
- :options='$parent.$parent.gasproperties'
91
- placeholder='请选择'
92
- condition="uf.f_gasproperties='{}'"
93
- :search="false"
94
- close-on-select
95
- value-single
96
- >
97
- </v-select>
98
- </div>
99
- <div class="form-group col-sm-4" >
100
- <label class="font_normal_body">气表类型:</label>
101
- <v-select
102
- class="select select_list"
103
- :value.sync="model.meter_classify"
104
- v-model="model.meter_classify"
105
- :options='$parent.$parent.meter_classifys'
106
- placeholder='请选择'
107
- condition="uf.F_METER_CLASSIFY='{}'"
108
- :search="false"
109
- close-on-select
110
- value-single
111
- >
112
- </v-select>
113
- </div>
114
- <div class="form-group col-sm-4" >
115
- <label class="font_normal_body">街&emsp;&emsp;道:</label>
116
- <v-select
117
- class="select select_list"
118
- :value.sync="model.f_street"
119
- v-model="model.f_street"
120
- :options='$parent.$parent.streets'
121
- placeholder='请选择'
122
- condition="ua.f_street_id='{}'"
123
- close-on-select
124
- value-single
125
- >
126
- </v-select>
127
- </div>
128
- <!--<div class="form-group col-sm-4" >
129
- <label class="font_normal_body">小区名称:</label>
130
- <input type="text" class="input_search" v-model="model.f_userinfo_code"
131
- style="width: 60%" placeholder="请选择" condition="ua.f_residential_area = '{}'">
132
- </div>-->
133
- <div class="form-group col-sm-4" >
134
- <label class="font_normal_body">楼&ensp;栋&ensp;号:</label>
135
- <input type="text" class="input_search" v-model="model.f_building"
136
- style="width: 60%" placeholder="请选择" condition="ua.f_building='{}'">
137
- </div>
138
- <div class="form-group col-sm-4" >
139
- <label class="font_normal_body">单&ensp;元&ensp;号:</label>
140
- <input type="text" class="input_search" v-model="model.f_unit"
141
- style="width: 60%" placeholder="请选择" condition="ua.f_unit='{}'">
142
- </div>
143
- <div class="form-group col-sm-4" >
144
- <label class="font_normal_body">楼&ensp;层&ensp;号:</label>
145
- <input type="text" class="input_search" v-model="model.f_floor"
146
- style="width: 60%" placeholder="请选择" condition="ua.f_floor='{}'">
147
- </div>
148
- <div class="form-group col-sm-4" >
149
- <label class="font_normal_body">开户起始:</label>
150
- <datepicker
151
- placeholder='请选择'
152
- style="width:60%"
153
- :disabled-days-of-week="[]"
154
- :format="'yyyy-MM-dd'"
155
- :show-rest-button="reset"
156
- :value.sync="model.f_startfile_time"
157
- v-model="model.f_startfile_time"
158
- condition="ui.f_createfile_date >= '{} 00:00:00'">
159
- </datepicker>
160
- </div>
161
- <div class="form-group col-sm-4" >
162
- <label class="font_normal_body">开户截止:</label>
163
- <datepicker
164
- placeholder='请选择'
165
- :disabled-days-of-week="[]"
166
- style="width:60%"
167
- :format="'yyyy-MM-dd'"
168
- :show-rest-button="reset"
169
- :value.sync="model.f_endfile_time"
170
- v-model="model.f_endfile_time"
171
- condition="ui.f_createfile_date <= '{} 23:59:59'">
172
- </datepicker>
173
- </div>
174
- <div class="form-group col-sm-4" >
175
- <label class="font_normal_body">表&ensp;箱&ensp;号:</label>
176
- <input type="text" class="input_search" v-model="model.f_metertitles"
177
- style="width: 60%" placeholder="请输入" condition="uf.f_metertitles='{}'">
178
- </div>
179
- <div class="form-group col-sm-4" >
180
- <label class="font_normal_body">用户电话:</label>
181
- <input type="text" class="input_search" v-model="model.f_user_phone"
182
- style="width: 60%" placeholder="请输入" condition="ui.f_user_phone='{}'">
183
- </div>
184
- <div class="form-group col-sm-4" >
185
- <label class="font_normal_body">片&ensp;&ensp;&ensp;&ensp;区:</label>
186
- <v-select
187
- class="select select_list"
188
- :value.sync="model.f_book_slice_area"
189
- v-model="model.f_book_slice_area"
190
- :options='$parent.$parent.sliceArea'
191
- @change="$parent.$parent.slice_areaChange(model.f_book_slice_area)"
192
- placeholder='请选择'
193
- condition="ua.f_slice_area ='{}'"
194
- close-on-select
195
- value-single
196
- >
197
- </v-select>
198
- </div>
199
- <div class="form-group col-sm-4" >
200
- <label class="font_normal_body">抄&ensp;表&ensp;册:</label>
201
- <v-select
202
- class="select select_list"
203
- :value.sync="model.f_meter_book_num"
204
- v-model="model.f_meter_book_num"
205
- :options='$parent.$parent.cbc'
206
- placeholder='请选择'
207
- condition="uf.f_meter_book_num='{}'"
208
- close-on-select
209
- value-single
210
- >
211
- </v-select>
212
- </div>
213
- <div class="form-group col-sm-4" >
214
- <label class="font_normal_body">派发情况:</label>
215
- <v-select
216
- class="select select_list"
217
- :value.sync="model.yearCheck"
218
- v-model="model.yearCheck"
219
- :options='$parent.$parent.yearCheckList'
220
- placeholder='请选择'
221
- condition="{}"
222
- :search="false"
223
- close-on-select
224
- value-single
225
- >
226
- </v-select>
227
- </div>
228
- <div class="form-group col-sm-4" >
229
- <label class="font_normal_body">安检起始:</label>
230
- <datepicker
231
- placeholder='请选择'
232
- style="width:60%"
233
- :disabled-days-of-week="[]"
234
- :format="'yyyy-MM-dd'"
235
- :show-rest-button="reset"
236
- :value.sync="model.f_start_time"
237
- v-model="model.f_start_time"
238
- >
239
- </datepicker>
240
- </div>
241
- <div class="form-group col-sm-4" >
242
- <label class="font_normal_body">安检截止:</label>
243
- <datepicker
244
- placeholder='请选择'
245
- :disabled-days-of-week="[]"
246
- style="width:60%"
247
- :format="'yyyy-MM-dd'"
248
- :show-rest-button="reset"
249
- :value.sync="model.f_end_time"
250
- v-model="model.f_end_time"
251
- >
252
- </datepicker>
253
- </div>
254
- <div class="form-group col-sm-4">
255
- <label class="font_normal_body">安检状态:</label>
256
- <v-select
257
- class="select select_list"
258
- :value.sync="model.f_last_check_state"
259
- v-model="model.f_last_check_state"
260
- :options='$parent.$parent.entry_status'
261
- placeholder='请选择'
262
- :search="false"
263
- close-on-select
264
- value-single
265
- >
266
- </v-select>
267
- </div>
268
- <div class="form-group col-sm-4" v-if="$parent.$parent.hasCheckBooks == '是'">
269
- <label class="font_normal_body">安检册:</label>
270
- <v-select
271
- class="select select_list"
272
- :value.sync="model.checkBook"
273
- v-model="model.checkBook"
274
- :options='$parent.$parent.checkBooks'
275
- placeholder='请选择'
276
- :search="false"
277
- close-on-select
278
- value-single
279
- >
280
- </v-select>
281
- </div>
282
- <div class="form-group col-sm-4" >
283
- <label class="font_normal_body">通气起始:</label>
284
- <datepicker
285
- placeholder='通气开始时间'
286
- style="width:60%"
287
- :disabled-days-of-week="[]"
288
- :format="'yyyy-MM-dd'"
289
- :show-rest-button="reset"
290
- :value.sync="model.f_startgas_time"
291
- v-model="model.f_startgas_time"
292
- condition="ui.f_uservent_date >= '{} 00:00:00'">
293
- </datepicker>
294
- </div>
295
- <div class="form-group col-sm-4" >
296
- <label class="font_normal_body">通气截止:</label>
297
- <datepicker
298
- placeholder='通气结束时间'
299
- :disabled-days-of-week="[]"
300
- style="width:60%"
301
- :format="'yyyy-MM-dd'"
302
- :show-rest-button="reset"
303
- :value.sync="model.f_endgas_time"
304
- v-model="model.f_endgas_time"
305
- condition="ui.f_uservent_date <= '{} 23:59:59'">
306
- </datepicker>
307
- </div>
308
- <!--<div class="form-group col-sm-4" >
309
- <label class="font_normal_body">入户情况:</label>
310
- <v-select
311
- class="select select_list"
312
- :value.sync="model.f_hasHousehold"
313
- v-model="model.f_hasHousehold"
314
- :options='$parent.$parent.hasHousehold'
315
- placeholder='请选择'
316
- close-on-select
317
- :search="false"
318
- value-single
319
- >
320
- </v-select>
321
- </div>-->
322
-
323
- </div>
324
- </div>
325
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
326
- <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
327
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
328
- </div>
329
- </modal>
330
- <modal :show.sync="$parent.$parent.excelUserCondtion" width="500px" v-ref:modal1 >
331
- <div slot="modal-header" class="modal-header">
332
- <h4 class="modal-title">
333
- 导入用户编号
334
- </h4>
335
- </div>
336
- <div slot="modal-body" class="modal-body">
337
- <div class="row">
338
- <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success" style="border-radius: 2px;"
339
- action="rs/file/uploadFile" tagname="档案信息导入" v-ref:file :headers="headers" multiple></file-upload>
340
- <img src="../../../assets/Excelformat.png" style="width: 100%"/>
341
- </div>
342
- </div>
343
- <footer slot="modal-footer" class="modal-footer">
344
- </footer>
345
- </modal>
346
- <!--<div class="form-group col-sm-4 button-range" >
347
-
348
- <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
349
- <export-excel-safe :data="$parent.$parent.exportParameter"
350
- :field="$parent.$parent.excelHeaders"
351
- sqlurl="rs/logic/SafeExportExcel" sql-name="planItem"
352
- template-name='安检计划明细' :choose-col="true">
353
- </export-excel-safe>
354
-
355
- </div>-->
356
- </div>
357
- </div>
358
- </criteria>
359
- <data-grid :model="model" partial='list' class="table_sy">
360
-
361
- <template partial='head'>
362
- <tr>
363
- <th><nobr><input type="checkbox" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/> 全选</nobr></th>
364
- <th><nobr>用户编号</nobr></th>
365
- <th><nobr>用户名称</nobr></th>
366
- <th><nobr>用户类型</nobr></th>
367
- <th><nobr>用户电话</nobr></th>
368
- <th><nobr>表具类型</nobr></th>
369
- <th><nobr>小区名称</nobr></th>
370
- <th><nobr>片区</nobr></th>
371
- <th><nobr>抄表册</nobr></th>
372
- <th title="当前所在的安检计划名称"><nobr>所属计划</nobr></th>
373
- <th title="最后一次安检日期"><nobr>安检日期</nobr></th>
374
- <th><nobr>首次通气时间</nobr></th>
375
- <th><nobr>详细地址</nobr></th>
376
- </tr>
377
- </template>
378
- <template partial='body'>
379
- <td style="text-align: center;white-space:nowrap;"><input type="checkbox" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.isChecked(row.id)" @change="$parent.$parent.$parent.setCheckes(row.id)" /></td>
380
- <td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
381
- <td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
382
- <td style="text-align: center"><nobr>{{row.f_user_type}}</nobr></td>
383
- <td style="text-align: center"><nobr>{{row.f_user_phone}}</nobr></td>
384
- <td style="text-align: center"><nobr>{{row.f_meter_classify}}</nobr></td>
385
- <td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
386
- <td style="text-align: center"><nobr>{{row.f_book_slice_area}}</nobr></td>
387
- <td style="text-align: center"><nobr>{{row.f_book_name}}</nobr></td>
388
- <td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>
389
- <td style="text-align: center"><nobr>{{row.f_last_check_date}}</nobr></td>
390
- <td style="text-align: center"><nobr>{{row.f_uservent_date}}</nobr></td>
391
- <td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
392
- </template>
393
- </data-grid>
394
- </criteria-paged>
395
- </div>
396
- </template>
397
-
398
- <script>
399
- import {HttpResetClass, PagedList} from "vue-client";
400
- import * as Util from "../../Util";
401
- import Vue from "vue";
402
-
403
- export default {
404
- name: "PlanManage",
405
- title: '计划管理',
406
- data() {
407
- return {
408
- model:new PagedList('/rs/sql/FetchUserFileByOrgNoRuHuSXQ', 100, {
409
- "orderitem": "'f_residential_area,f_building,f_unit,f_floor,f_room'",
410
- "f_usertype": "''",
411
- "month": "''",
412
- "SafeCheckSX": {"f_check_start": '', "f_check_end": ''},
413
- "SafeCheckCQ": "''",
414
- "startday":"''",
415
- "endday":"''"}),
416
- a:'1',
417
- opt:[{label:"测试",value:"测试"}],
418
- showCondtion:false,
419
- userTypes:[],//用户类型
420
- userStates:[],//用户状态
421
- gasproperties:[],//用气性质
422
- meter_classifys:[],//气表类型
423
- hasHousehold:[{label:"全部",value:""},{label:"已入户",value:"已入户"},{label:"未入户",value:"未入户"}],
424
- yearCheckList:[{label:"全部",value:""},{label:"已在计划中",value:"ua.f_plan_id is not null"},{label:"未在计划中",value:"ua.f_plan_id is null"}],
425
- entry_status: this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
426
- sliceArea:[],
427
- meterbooks:[],
428
- hasCheckBooks:'否',
429
- checkBooks:[],
430
- cbc:[],
431
- areaList:[],
432
- checkAll:false,
433
- checkes:[],
434
- excelUserCondtion:false,
435
- uploadCodeCondition:'',
436
- streets:[]
437
- }
438
- },
439
- props:["selectplan","userlogin"],
440
- ready(){
441
- this.$refs.paged.$refs.criteria.model.f_user_state='正常'
442
- this.hasCheckBooks=this.$appdata.getSingleValue('是否使用安检册')
443
- // this.$refs.paged.$refs.criteria.model.f_endfile_time=Util.toStartDateYearString()
444
- //this.$refs.paged.$refs.criteria.model.f_hasHousehold='未入户'
445
- this.getCheckBook()
446
- this.setConList()
447
- this.loadpage()
448
-
449
- },
450
- methods: {
451
- getCheckBook(){
452
- this.checkBooks=[]
453
- new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
454
- data: {
455
- items: 'id,f_check_book_name,f_check_book_type',
456
- tablename: 't_check_book',
457
- condition: ` 1 = 1 `,
458
- orderitem: 'id desc'
459
- }
460
- }, {resolveMsg: null, rejectMsg: null}).then(res => {
461
- this.checkBooks.push({label: '全部', value: ''})
462
- res.data.forEach(ress => {
463
- this.checkBooks.push({
464
- label: ress.f_check_book_name,
465
- value: `${ress.id}-${ress.f_check_book_type}`
466
- })
467
- })
468
- })
469
- },
470
- loadpage(){
471
- this.select_search()
472
- this.select_street()
473
- this.Mreadibook()
474
- this.getSliceArea()
475
- },
476
- cancel(){
477
- this.showCondtion=false
478
- this.excelUserCondtion=false
479
- },
480
- //清空用户编号
481
- clearUserInfoId(){
482
- this.uploadCodeCondition=''
483
- Vue.showMessage("已清空用户编号")
484
- },
485
- showUploadCodeCondition(){
486
- this.excelUserCondtion=true
487
- },
488
- selfSearch (args) {
489
- //tag)
490
- args.condition += ` and ui.f_filialeid='${this.userlogin.orgid}'`
491
- /*if(args.model.f_hasHousehold=='已入户'){
492
- args.condition +=` and Extract(year from TO_DATE(ua.f_last_check_date,'yyyy-mm-dd hh24:mi:ss'))=2021 and ua.F_LAST_CHECK_STATE='入户'`
493
- }else if(args.model.f_hasHousehold=='未入户'){
494
- args.condition +=` and (Extract(year from nvl(TO_DATE(ua.f_last_check_date,'yyyy-mm-dd hh24:mi:ss'),'1990-01-01 00:00:00'))!=2021 or nvl(ua.F_LAST_CHECK_STATE,'未入户')!='入户')`
495
- }*/
496
-
497
- if (args.model.f_last_check_state == '未检') {
498
- let nocheckcon = 'and ( ui.f_last_check_date is null '
499
- if(args.model.f_start_time){
500
- nocheckcon += ` or ui.f_last_check_date <='${args.model.f_start_time} 00:00:00' `
501
- }
502
- if(args.model.f_end_time){
503
- nocheckcon += ` or ui.f_last_check_date >='${args.model.f_end_time} 23:59:59' `
504
- }
505
- nocheckcon += ')'
506
- args.condition += nocheckcon
507
- }else{
508
- if(args.model.f_last_check_state){
509
- args.condition += ` and ui.f_last_check_state = '${args.model.f_last_check_state}'`
510
- }
511
- if(args.model.f_start_time){
512
- args.condition += ` and ui.f_last_check_date >='${args.model.f_start_time} 00:00:00' `
513
- }
514
- if(args.model.f_end_time){
515
- args.condition += ` and ui.f_last_check_date <='${args.model.f_end_time} 23:59:59' `
516
- }
517
- }
518
-
519
- if(args.model.checkBook){
520
- let arr=args.model.checkBook.split('-')
521
- if(arr[1] == '用户'){
522
- args.condition +=` and ua.f_check_book_id='${arr[0]}'`
523
- }else{
524
- args.condition +=` and area.f_check_book_id=${arr[0]} and ua.f_check_book_id is null`
525
- }
526
- }
527
- if(this.uploadCodeCondition){
528
- args.condition +=` and ${this.uploadCodeCondition}`
529
- }
530
- this.cancel()
531
- this.checkes=[]
532
- this.checkAll=false
533
- this.model.search(args.condition, args.model, args.condValue)
534
- },
535
- showUserCondition(){
536
- this.showCondtion=true
537
- },
538
- setConList(){
539
- this.userTypes=this.$appdata.getParam('用户类型') ? [{
540
- label: '全部',
541
- value: ''
542
- }, ...this.$appdata.getParam('用户类型')] : [{label: '全部', value: ''}]
543
-
544
- this.userStates=this.$appdata.getParam('安检用户状态') ? [{
545
- label: '全部',
546
- value: ''
547
- },...this.$appdata.getParam('安检用户状态')] : [{label: '全部', value: ''}]
548
- this.gasproperties=this.$appdata.getParam('用气性质') ? [{
549
- label: '全部',
550
- value: ''
551
- }, ...this.$appdata.getParam('用气性质')] : [{label: '全部', value: ''}]
552
- this.meter_classifys=this.$appdata.getParam('气表类型') ? [{
553
- label: '全部',
554
- value: ''
555
- }, ...this.$appdata.getParam('气表类型')] : [{label: '全部', value: ''}]
556
- },
557
- select_search(){
558
- new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {data:{items:"*",tablename:"t_area",orderitem:"id",condition:`1 = 1`}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
559
- //tag)
560
- if(res.data.length>0){
561
- this.areaList=[]
562
- this.areaList.push({label:"全部",value:""})
563
- res.data.forEach((result)=>{
564
- this.areaList.push({label:result.f_residential_area,value:result.f_residential_area})
565
- })
566
- }
567
- //tag)
568
- })
569
- },
570
- select_street(){
571
- //tag
572
- new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {data:{items:"id,f_street",tablename:"t_street",orderitem:"id",condition:`1 = 1`}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
573
- //tag)
574
- if(res.data.length>0){
575
- this.streets=[]
576
- this.streets.push({label:"全部",value:""})
577
- res.data.forEach((result)=>{
578
- this.streets.push({label:result.f_street,value:result.id})
579
- })
580
- }
581
- })
582
- },
583
- //获取抄表册
584
- async Mreadibook(){
585
- this.cbc=[]
586
- this.sliceArea=[]
587
- let http = new HttpResetClass()
588
- let getMeterReadingBooks = await http.load('POST','rs/logic/getMeterBooksData',
589
- {data: {f_orgid: "('"+this.userlogin.orgid+"')"}},
590
- {resolveMsg: null, rejectMsg: '获取失败!!!'})
591
- this.cbc = [{label: '全部', value: ''}]
592
- //tag
593
- //tag)
594
- //tag
595
- this.meterbooks=[]
596
- this.meterbooks=getMeterReadingBooks.data.meterbooks
597
- this.meterbooks.forEach((res) => {
598
- this.cbc.push({label: res.f_book_name, value: res.id})
599
- /*if(res.f_book_slice_area){
600
- if(this.sliceArea.indexOf(res.f_book_slice_area)<0){
601
- this.sliceArea.push(res.f_book_slice_area)
602
- }
603
- }*/
604
- })
605
-
606
- },
607
- //片区获取
608
- async getSliceArea() {
609
- let http = new HttpResetClass()
610
- let getAllArea = await http.load('POST', '/rs/search', {
611
- source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
612
- userid: this.userlogin.id
613
- }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
614
- this.sliceArea = [{label: '全部', value: ''}]
615
- //tag
616
- //tag
617
- //tag
618
- getAllArea.data.forEach((res) => {
619
- if(res.parentid==this.userlogin.orgid){
620
- this.sliceArea.push({label:res.name,value:res.name})
621
- }
622
- })
623
- //tag
624
- },
625
- //片区改变-对应抄表册下拉重新赋值
626
- slice_areaChange(value) {
627
- //tag
628
- if(!value){
629
- this.cbc=[]
630
- this.meterbooks.forEach((res) => {
631
- this.cbc.push({label: res.f_book_name, value: res.id})
632
- })
633
- }else{
634
- this.cbc=[]
635
- this.meterbooks.forEach((res) => {
636
- if(res.f_book_slice_area==value){
637
- this.cbc.push({label: res.f_book_name, value: res.id})
638
- }
639
- })
640
- }
641
- },
642
- isChecked(v) {
643
- // 如果全选,不在的按选中算,否则,在的按选中算
644
- if (this.checkAll) {
645
- return this.checkes.indexOf(v) == -1
646
- } else {
647
- return this.checkes.indexOf(v) != -1
648
- }
649
- },
650
- setCheckAll() {
651
- this.checkAll=this.checkAll?false:true;
652
- // 全选改变后,清空选中数据
653
- this.checkes = []
654
- },
655
- setCheckes(id) {
656
- let index=this.checkes.indexOf(id)
657
- if(index<0){
658
- this.checkes.push(id)
659
- }else{
660
- this.checkes.splice(index,1)
661
- }
662
- },
663
- //将客户信息拖至计划中
664
- async dragtoPlanItem() {
665
- if(this.model.rows.length==0){
666
- Vue.showMessage("未检测到列表中有用户!")
667
- return
668
- }
669
- if(!this.checkAll && this.checkes.length==0){
670
- Vue.showMessage("请先勾选你要添入到上方计划中的用户!")
671
- return
672
- }
673
- if(this.selectplan && this.selectplan.id){
674
- this.$parent.isSend=true
675
- try{
676
- let res=await new HttpResetClass().load("POST", "/rs/logic/AddCheckPlanItem", {
677
- data:{
678
- f_operator:this.userlogin.name,
679
- f_plan_id:this.selectplan.id,
680
- f_safecheck_type:this.selectplan.f_safecheck_type,
681
- f_filialeid:this.userlogin.orgid,
682
- f_subscribe_date:'',
683
- condition:this.model.condition,
684
- switchCheckAll:true,
685
- checkAll:this.checkAll,
686
- param:this.checkes,
687
- columnName: "ua.id"
688
- }
689
- }, {resolveMsg: null, rejectMsg: null})
690
- //tag+"---"+res.data.result.length)
691
- this.$parent.isSend=false
692
- if(res.data.code==200){
693
- //alert("添加成功!有"+res.data.result.length+"条用户地址已经存在于其他计划中: \n"+res.data.result.reduce((c,v)=>{c += v.f_user_name+":"+v.f_address+"\n"}),0)
694
- this.$showMessage("添加成功!"+(res.data.result.length>0?"有"+res.data.result.length+"条用户地址已经存在于其他计划中":""))
695
- this.$parent.refresh()
696
- }else{
697
- this.$showMessage("添加失败!")
698
- }
699
- }catch (e) {
700
- this.$showMessage("添加失败!")
701
- }
702
- }else{
703
- this.$parent.isSend=false
704
- this.$showMessage("请先打开一个计划再进行操作")
705
- }
706
- }
707
- },
708
- events: {
709
- onFileUpload: function (file, res) {
710
- //tag)
711
- //tag)
712
- let data = {
713
- filepath: res.f_downloadpath
714
- }
715
- new HttpResetClass().load('POST','/rs/logic/safe_GetUserInfoFromExcel', {data: data}, {
716
- resolveMsg: '导入成功!已生成条件,若要去除导入条件请点击旁边 ‘清空用户编号’ 按钮。',
717
- rejectMsg: '导入失败'
718
- }).then((res) => {
719
- this.uploadCodeCondition=res.data.condition
720
- this.excelUserCondtion = false
721
- })
722
- },
723
-
724
- }
725
- }
726
- </script>
727
-
728
- <style scoped>
729
- .safe-planfont{
730
- font-family: MicrosoftYaHei;
731
- font-size: 15px;
732
- font-weight: normal;
733
- font-stretch: normal;
734
- letter-spacing: 2px;
735
- color: #333333;
736
- line-height: 25px;
737
- }
738
- .safe-bodyfont{
739
- font-family: MicrosoftYaHei;
740
- font-size: 14px;
741
- font-weight: normal;
742
- font-stretch: normal;
743
- letter-spacing: 0px;
744
- color: #999999;
745
- line-height: 30px;
746
- }
747
- .safe-leftplan{
748
- height:auto;
749
- border-bottom:1px solid #ececec;
750
- padding: 10px 5px
751
- }
752
- .leftplan-center{
753
- border-top:1px solid #ececec;
754
- border-bottom:1px solid #ececec;
755
- }
756
- .safe_p{
757
- white-space: nowrap;
758
- overflow: hidden;
759
- text-overflow: ellipsis;
760
- }
761
- .safe-div-p{
762
- color: #4792de;
763
- text-align: end;
764
- padding: 8px 15px;
765
- }
766
- </style>
767
- <style lang="less">
768
- .upuserinfo_sel ul{
769
- width: 150% !important;
770
- }
771
- </style>
1
+ <template>
2
+ <div>
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
5
+ <div partial>
6
+ <div class="row " >
7
+ <label class="form-group font_normal_body"><b>用户信息</b></label>
8
+
9
+ <div class="form-group col-sm-1" >
10
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
11
+ style="width: 95%" placeholder="客户编号" condition="ui.f_userinfo_code='{}'">
12
+ </div>
13
+ <div class="form-group col-sm-1" >
14
+ <input type="text" class="input_search" v-model="model.f_user_name"
15
+ style="width: 95%" placeholder="客户名称" condition="ui.f_user_name like '%{}%'">
16
+ </div>
17
+ <div class="form-group col-sm-1" >
18
+ <input type="text" class="input_search" v-model="model.f_address"
19
+ style="width: 95%" placeholder="客户地址" condition="ua.f_address like '%{}%'">
20
+ </div>
21
+ <div class="form-group col-sm-1 upuserinfo_sel" >
22
+ <v-select
23
+ class="select select_list"
24
+ :width="'95%'"
25
+ :value.sync="model.f_area"
26
+ v-model="model.f_area"
27
+ :options='$parent.$parent.areaList'
28
+ :timeout="500"
29
+ @select-search="$parent.$parent.select_search"
30
+ placeholder='小区选择'
31
+ condition="ua.f_residential_area = '{}'"
32
+ close-on-select
33
+ value-single
34
+ >
35
+ </v-select>
36
+ </div>
37
+ <div class="form-group col-sm-4" >
38
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUserCondition()">更多条件</button>
39
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUploadCodeCondition()">导入编号</button>
40
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.clearUserInfoId()">清空编号</button>
41
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
42
+ </div>
43
+ <div class="form-group col-sm-1" style="float: right">
44
+ <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.dragtoPlanItem()">添入计划</button>
45
+ </div>
46
+ <modal :show.sync="$parent.$parent.showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
47
+ <div slot="modal-header" class="modal-header">
48
+ <h4 class="modal-title">
49
+ 用户查询条件
50
+ </h4>
51
+ </div>
52
+ <div slot="modal-body" class="modal-body">
53
+ <div class="row">
54
+ <div class="form-group col-sm-4" >
55
+ <label class="font_normal_body">用户类型:</label>
56
+ <v-select
57
+ class="select select_list"
58
+ :value.sync="model.f_user_type"
59
+ v-model="model.f_user_type"
60
+ :options='$parent.$parent.userTypes'
61
+ placeholder='请选择'
62
+ condition="uf.f_user_type='{}'"
63
+ :search="false"
64
+ close-on-select
65
+ value-single
66
+ >
67
+ </v-select>
68
+ </div>
69
+ <div class="form-group col-sm-4" >
70
+ <label class="font_normal_body">用户状态:</label>
71
+ <v-select
72
+ class="select select_list"
73
+ :value.sync="model.f_user_state"
74
+ v-model="model.f_user_state"
75
+ :options='$parent.$parent.userStates'
76
+ placeholder='请选择'
77
+ condition="ui.f_user_state='{}'"
78
+ :search="false"
79
+ close-on-select
80
+ value-single
81
+ >
82
+ </v-select>
83
+ </div>
84
+ <div class="form-group col-sm-4" >
85
+ <label class="font_normal_body">用气性质:</label>
86
+ <v-select
87
+ class="select select_list"
88
+ :value.sync="model.f_gasproperties"
89
+ v-model="model.f_gasproperties"
90
+ :options='$parent.$parent.gasproperties'
91
+ placeholder='请选择'
92
+ condition="uf.f_gasproperties='{}'"
93
+ :search="false"
94
+ close-on-select
95
+ value-single
96
+ >
97
+ </v-select>
98
+ </div>
99
+ <div class="form-group col-sm-4" >
100
+ <label class="font_normal_body">气表类型:</label>
101
+ <v-select
102
+ class="select select_list"
103
+ :value.sync="model.meter_classify"
104
+ v-model="model.meter_classify"
105
+ :options='$parent.$parent.meter_classifys'
106
+ placeholder='请选择'
107
+ condition="uf.F_METER_CLASSIFY='{}'"
108
+ :search="false"
109
+ close-on-select
110
+ value-single
111
+ >
112
+ </v-select>
113
+ </div>
114
+ <div class="form-group col-sm-4" >
115
+ <label class="font_normal_body">街&emsp;&emsp;道:</label>
116
+ <v-select
117
+ class="select select_list"
118
+ :value.sync="model.f_street"
119
+ v-model="model.f_street"
120
+ :options='$parent.$parent.streets'
121
+ placeholder='请选择'
122
+ condition="ua.f_street_id='{}'"
123
+ close-on-select
124
+ value-single
125
+ >
126
+ </v-select>
127
+ </div>
128
+ <!--<div class="form-group col-sm-4" >
129
+ <label class="font_normal_body">小区名称:</label>
130
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
131
+ style="width: 60%" placeholder="请选择" condition="ua.f_residential_area = '{}'">
132
+ </div>-->
133
+ <div class="form-group col-sm-4" >
134
+ <label class="font_normal_body">楼&ensp;栋&ensp;号:</label>
135
+ <input type="text" class="input_search" v-model="model.f_building"
136
+ style="width: 60%" placeholder="请选择" condition="ua.f_building='{}'">
137
+ </div>
138
+ <div class="form-group col-sm-4" >
139
+ <label class="font_normal_body">单&ensp;元&ensp;号:</label>
140
+ <input type="text" class="input_search" v-model="model.f_unit"
141
+ style="width: 60%" placeholder="请选择" condition="ua.f_unit='{}'">
142
+ </div>
143
+ <div class="form-group col-sm-4" >
144
+ <label class="font_normal_body">楼&ensp;层&ensp;号:</label>
145
+ <input type="text" class="input_search" v-model="model.f_floor"
146
+ style="width: 60%" placeholder="请选择" condition="ua.f_floor='{}'">
147
+ </div>
148
+ <div class="form-group col-sm-4" >
149
+ <label class="font_normal_body">开户起始:</label>
150
+ <datepicker
151
+ placeholder='请选择'
152
+ style="width:60%"
153
+ :disabled-days-of-week="[]"
154
+ :format="'yyyy-MM-dd'"
155
+ :show-rest-button="reset"
156
+ :value.sync="model.f_startfile_time"
157
+ v-model="model.f_startfile_time"
158
+ condition="ui.f_createfile_date >= '{} 00:00:00'">
159
+ </datepicker>
160
+ </div>
161
+ <div class="form-group col-sm-4" >
162
+ <label class="font_normal_body">开户截止:</label>
163
+ <datepicker
164
+ placeholder='请选择'
165
+ :disabled-days-of-week="[]"
166
+ style="width:60%"
167
+ :format="'yyyy-MM-dd'"
168
+ :show-rest-button="reset"
169
+ :value.sync="model.f_endfile_time"
170
+ v-model="model.f_endfile_time"
171
+ condition="ui.f_createfile_date <= '{} 23:59:59'">
172
+ </datepicker>
173
+ </div>
174
+ <div class="form-group col-sm-4" >
175
+ <label class="font_normal_body">表&ensp;箱&ensp;号:</label>
176
+ <input type="text" class="input_search" v-model="model.f_metertitles"
177
+ style="width: 60%" placeholder="请输入" condition="uf.f_metertitles='{}'">
178
+ </div>
179
+ <div class="form-group col-sm-4" >
180
+ <label class="font_normal_body">用户电话:</label>
181
+ <input type="text" class="input_search" v-model="model.f_user_phone"
182
+ style="width: 60%" placeholder="请输入" condition="ui.f_user_phone='{}'">
183
+ </div>
184
+ <div class="form-group col-sm-4" >
185
+ <label class="font_normal_body">片&ensp;&ensp;&ensp;&ensp;区:</label>
186
+ <v-select
187
+ class="select select_list"
188
+ :value.sync="model.f_book_slice_area"
189
+ v-model="model.f_book_slice_area"
190
+ :options='$parent.$parent.sliceArea'
191
+ @change="$parent.$parent.slice_areaChange(model.f_book_slice_area)"
192
+ placeholder='请选择'
193
+ condition="ua.f_slice_area ='{}'"
194
+ close-on-select
195
+ value-single
196
+ >
197
+ </v-select>
198
+ </div>
199
+ <div class="form-group col-sm-4" >
200
+ <label class="font_normal_body">抄&ensp;表&ensp;册:</label>
201
+ <v-select
202
+ class="select select_list"
203
+ :value.sync="model.f_meter_book_num"
204
+ v-model="model.f_meter_book_num"
205
+ :options='$parent.$parent.cbc'
206
+ placeholder='请选择'
207
+ condition="uf.f_meter_book_num='{}'"
208
+ close-on-select
209
+ value-single
210
+ >
211
+ </v-select>
212
+ </div>
213
+ <div class="form-group col-sm-4" >
214
+ <label class="font_normal_body">派发情况:</label>
215
+ <v-select
216
+ class="select select_list"
217
+ :value.sync="model.yearCheck"
218
+ v-model="model.yearCheck"
219
+ :options='$parent.$parent.yearCheckList'
220
+ placeholder='请选择'
221
+ condition="{}"
222
+ :search="false"
223
+ close-on-select
224
+ value-single
225
+ >
226
+ </v-select>
227
+ </div>
228
+ <div class="form-group col-sm-4" >
229
+ <label class="font_normal_body">安检起始:</label>
230
+ <datepicker
231
+ placeholder='请选择'
232
+ style="width:60%"
233
+ :disabled-days-of-week="[]"
234
+ :format="'yyyy-MM-dd'"
235
+ :show-rest-button="reset"
236
+ :value.sync="model.f_start_time"
237
+ v-model="model.f_start_time"
238
+ >
239
+ </datepicker>
240
+ </div>
241
+ <div class="form-group col-sm-4" >
242
+ <label class="font_normal_body">安检截止:</label>
243
+ <datepicker
244
+ placeholder='请选择'
245
+ :disabled-days-of-week="[]"
246
+ style="width:60%"
247
+ :format="'yyyy-MM-dd'"
248
+ :show-rest-button="reset"
249
+ :value.sync="model.f_end_time"
250
+ v-model="model.f_end_time"
251
+ >
252
+ </datepicker>
253
+ </div>
254
+ <div class="form-group col-sm-4">
255
+ <label class="font_normal_body">安检状态:</label>
256
+ <v-select
257
+ class="select select_list"
258
+ :value.sync="model.f_last_check_state"
259
+ v-model="model.f_last_check_state"
260
+ :options='$parent.$parent.entry_status'
261
+ placeholder='请选择'
262
+ :search="false"
263
+ close-on-select
264
+ value-single
265
+ >
266
+ </v-select>
267
+ </div>
268
+ <div class="form-group col-sm-4" v-if="$parent.$parent.hasCheckBooks == '是'">
269
+ <label class="font_normal_body">安检册:</label>
270
+ <v-select
271
+ class="select select_list"
272
+ :value.sync="model.checkBook"
273
+ v-model="model.checkBook"
274
+ :options='$parent.$parent.checkBooks'
275
+ placeholder='请选择'
276
+ :search="false"
277
+ close-on-select
278
+ value-single
279
+ >
280
+ </v-select>
281
+ </div>
282
+ <div class="form-group col-sm-4" >
283
+ <label class="font_normal_body">通气起始:</label>
284
+ <datepicker
285
+ placeholder='通气开始时间'
286
+ style="width:60%"
287
+ :disabled-days-of-week="[]"
288
+ :format="'yyyy-MM-dd'"
289
+ :show-rest-button="reset"
290
+ :value.sync="model.f_startgas_time"
291
+ v-model="model.f_startgas_time"
292
+ condition="ui.f_uservent_date >= '{} 00:00:00'">
293
+ </datepicker>
294
+ </div>
295
+ <div class="form-group col-sm-4" >
296
+ <label class="font_normal_body">通气截止:</label>
297
+ <datepicker
298
+ placeholder='通气结束时间'
299
+ :disabled-days-of-week="[]"
300
+ style="width:60%"
301
+ :format="'yyyy-MM-dd'"
302
+ :show-rest-button="reset"
303
+ :value.sync="model.f_endgas_time"
304
+ v-model="model.f_endgas_time"
305
+ condition="ui.f_uservent_date <= '{} 23:59:59'">
306
+ </datepicker>
307
+ </div>
308
+ <!--<div class="form-group col-sm-4" >
309
+ <label class="font_normal_body">入户情况:</label>
310
+ <v-select
311
+ class="select select_list"
312
+ :value.sync="model.f_hasHousehold"
313
+ v-model="model.f_hasHousehold"
314
+ :options='$parent.$parent.hasHousehold'
315
+ placeholder='请选择'
316
+ close-on-select
317
+ :search="false"
318
+ value-single
319
+ >
320
+ </v-select>
321
+ </div>-->
322
+
323
+ </div>
324
+ </div>
325
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
326
+ <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
327
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
328
+ </div>
329
+ </modal>
330
+ <modal :show.sync="$parent.$parent.excelUserCondtion" width="500px" v-ref:modal1 >
331
+ <div slot="modal-header" class="modal-header">
332
+ <h4 class="modal-title">
333
+ 导入用户编号
334
+ </h4>
335
+ </div>
336
+ <div slot="modal-body" class="modal-body">
337
+ <div class="row">
338
+ <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success" style="border-radius: 2px;"
339
+ action="rs/file/uploadFile" tagname="档案信息导入" v-ref:file :headers="headers" multiple></file-upload>
340
+ <img src="../../../assets/Excelformat.png" style="width: 100%"/>
341
+ </div>
342
+ </div>
343
+ <footer slot="modal-footer" class="modal-footer">
344
+ </footer>
345
+ </modal>
346
+ <!--<div class="form-group col-sm-4 button-range" >
347
+
348
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
349
+ <export-excel-safe :data="$parent.$parent.exportParameter"
350
+ :field="$parent.$parent.excelHeaders"
351
+ sqlurl="rs/logic/SafeExportExcel" sql-name="planItem"
352
+ template-name='安检计划明细' :choose-col="true">
353
+ </export-excel-safe>
354
+
355
+ </div>-->
356
+ </div>
357
+ </div>
358
+ </criteria>
359
+ <data-grid :model="model" partial='list' class="table_sy">
360
+
361
+ <template partial='head'>
362
+ <tr>
363
+ <th><nobr><input type="checkbox" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/> 全选</nobr></th>
364
+ <th><nobr>用户编号</nobr></th>
365
+ <th><nobr>用户名称</nobr></th>
366
+ <th><nobr>用户类型</nobr></th>
367
+ <th><nobr>用户电话</nobr></th>
368
+ <th><nobr>表具类型</nobr></th>
369
+ <th><nobr>小区名称</nobr></th>
370
+ <th><nobr>片区</nobr></th>
371
+ <th><nobr>抄表册</nobr></th>
372
+ <th title="当前所在的安检计划名称"><nobr>所属计划</nobr></th>
373
+ <th title="最后一次安检日期"><nobr>安检日期</nobr></th>
374
+ <th><nobr>首次通气时间</nobr></th>
375
+ <th><nobr>详细地址</nobr></th>
376
+ </tr>
377
+ </template>
378
+ <template partial='body'>
379
+ <td style="text-align: center;white-space:nowrap;"><input type="checkbox" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.isChecked(row.id)" @change="$parent.$parent.$parent.setCheckes(row.id)" /></td>
380
+ <td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
381
+ <td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
382
+ <td style="text-align: center"><nobr>{{row.f_user_type}}</nobr></td>
383
+ <td style="text-align: center"><nobr>{{row.f_user_phone}}</nobr></td>
384
+ <td style="text-align: center"><nobr>{{row.f_meter_classify}}</nobr></td>
385
+ <td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
386
+ <td style="text-align: center"><nobr>{{row.f_book_slice_area}}</nobr></td>
387
+ <td style="text-align: center"><nobr>{{row.f_book_name}}</nobr></td>
388
+ <td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>
389
+ <td style="text-align: center"><nobr>{{row.f_last_check_date}}</nobr></td>
390
+ <td style="text-align: center"><nobr>{{row.f_uservent_date}}</nobr></td>
391
+ <td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
392
+ </template>
393
+ </data-grid>
394
+ </criteria-paged>
395
+ </div>
396
+ </template>
397
+
398
+ <script>
399
+ import {HttpResetClass, PagedList} from "vue-client";
400
+ import * as Util from "../../Util";
401
+ import Vue from "vue";
402
+
403
+ export default {
404
+ name: "PlanManage",
405
+ title: '计划管理',
406
+ data() {
407
+ return {
408
+ model:new PagedList('/rs/sql/FetchUserFileByOrgNoRuHuSXQ', 100, {
409
+ "orderitem": "'f_residential_area,f_building,f_unit,f_floor,f_room'",
410
+ "f_usertype": "''",
411
+ "month": "''",
412
+ "SafeCheckSX": {"f_check_start": '', "f_check_end": ''},
413
+ "SafeCheckCQ": "''",
414
+ "startday":"''",
415
+ "endday":"''"}),
416
+ a:'1',
417
+ opt:[{label:"测试",value:"测试"}],
418
+ showCondtion:false,
419
+ userTypes:[],//用户类型
420
+ userStates:[],//用户状态
421
+ gasproperties:[],//用气性质
422
+ meter_classifys:[],//气表类型
423
+ hasHousehold:[{label:"全部",value:""},{label:"已入户",value:"已入户"},{label:"未入户",value:"未入户"}],
424
+ yearCheckList:[{label:"全部",value:""},{label:"已在计划中",value:"ua.f_plan_id is not null"},{label:"未在计划中",value:"ua.f_plan_id is null"}],
425
+ entry_status: this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
426
+ sliceArea:[],
427
+ meterbooks:[],
428
+ hasCheckBooks:'否',
429
+ checkBooks:[],
430
+ cbc:[],
431
+ areaList:[],
432
+ checkAll:false,
433
+ checkes:[],
434
+ excelUserCondtion:false,
435
+ uploadCodeCondition:'',
436
+ streets:[]
437
+ }
438
+ },
439
+ props:["selectplan","userlogin"],
440
+ ready(){
441
+ this.$refs.paged.$refs.criteria.model.f_user_state='正常'
442
+ this.hasCheckBooks=this.$appdata.getSingleValue('是否使用安检册')
443
+ // this.$refs.paged.$refs.criteria.model.f_endfile_time=Util.toStartDateYearString()
444
+ //this.$refs.paged.$refs.criteria.model.f_hasHousehold='未入户'
445
+ this.getCheckBook()
446
+ this.setConList()
447
+ this.loadpage()
448
+
449
+ },
450
+ methods: {
451
+ getCheckBook(){
452
+ this.checkBooks=[]
453
+ new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
454
+ data: {
455
+ items: 'id,f_check_book_name,f_check_book_type',
456
+ tablename: 't_check_book',
457
+ condition: ` 1 = 1 `,
458
+ orderitem: 'id desc'
459
+ }
460
+ }, {resolveMsg: null, rejectMsg: null}).then(res => {
461
+ this.checkBooks.push({label: '全部', value: ''})
462
+ res.data.forEach(ress => {
463
+ this.checkBooks.push({
464
+ label: ress.f_check_book_name,
465
+ value: `${ress.id}-${ress.f_check_book_type}`
466
+ })
467
+ })
468
+ })
469
+ },
470
+ loadpage(){
471
+ this.select_search()
472
+ this.select_street()
473
+ this.Mreadibook()
474
+ this.getSliceArea()
475
+ },
476
+ cancel(){
477
+ this.showCondtion=false
478
+ this.excelUserCondtion=false
479
+ },
480
+ //清空用户编号
481
+ clearUserInfoId(){
482
+ this.uploadCodeCondition=''
483
+ Vue.showMessage("已清空用户编号")
484
+ },
485
+ showUploadCodeCondition(){
486
+ this.excelUserCondtion=true
487
+ },
488
+ selfSearch (args) {
489
+ //tag)
490
+ args.condition += ` and ui.f_filialeid='${this.userlogin.orgid}'`
491
+ /*if(args.model.f_hasHousehold=='已入户'){
492
+ args.condition +=` and Extract(year from TO_DATE(ua.f_last_check_date,'yyyy-mm-dd hh24:mi:ss'))=2021 and ua.F_LAST_CHECK_STATE='入户'`
493
+ }else if(args.model.f_hasHousehold=='未入户'){
494
+ args.condition +=` and (Extract(year from nvl(TO_DATE(ua.f_last_check_date,'yyyy-mm-dd hh24:mi:ss'),'1990-01-01 00:00:00'))!=2021 or nvl(ua.F_LAST_CHECK_STATE,'未入户')!='入户')`
495
+ }*/
496
+
497
+ if (args.model.f_last_check_state == '未检') {
498
+ let nocheckcon = 'and ( ui.f_last_check_date is null '
499
+ if(args.model.f_start_time){
500
+ nocheckcon += ` or ui.f_last_check_date <='${args.model.f_start_time} 00:00:00' `
501
+ }
502
+ if(args.model.f_end_time){
503
+ nocheckcon += ` or ui.f_last_check_date >='${args.model.f_end_time} 23:59:59' `
504
+ }
505
+ nocheckcon += ')'
506
+ args.condition += nocheckcon
507
+ }else{
508
+ if(args.model.f_last_check_state){
509
+ args.condition += ` and ui.f_last_check_state = '${args.model.f_last_check_state}'`
510
+ }
511
+ if(args.model.f_start_time){
512
+ args.condition += ` and ui.f_last_check_date >='${args.model.f_start_time} 00:00:00' `
513
+ }
514
+ if(args.model.f_end_time){
515
+ args.condition += ` and ui.f_last_check_date <='${args.model.f_end_time} 23:59:59' `
516
+ }
517
+ }
518
+
519
+ if(args.model.checkBook){
520
+ let arr=args.model.checkBook.split('-')
521
+ if(arr[1] == '用户'){
522
+ args.condition +=` and ua.f_check_book_id='${arr[0]}'`
523
+ }else{
524
+ args.condition +=` and area.f_check_book_id=${arr[0]} and ua.f_check_book_id is null`
525
+ }
526
+ }
527
+ if(this.uploadCodeCondition){
528
+ args.condition +=` and ${this.uploadCodeCondition}`
529
+ }
530
+ this.cancel()
531
+ this.checkes=[]
532
+ this.checkAll=false
533
+ this.model.search(args.condition, args.model, args.condValue)
534
+ },
535
+ showUserCondition(){
536
+ this.showCondtion=true
537
+ },
538
+ setConList(){
539
+ this.userTypes=this.$appdata.getParam('用户类型') ? [{
540
+ label: '全部',
541
+ value: ''
542
+ }, ...this.$appdata.getParam('用户类型')] : [{label: '全部', value: ''}]
543
+
544
+ this.userStates=this.$appdata.getParam('安检用户状态') ? [{
545
+ label: '全部',
546
+ value: ''
547
+ },...this.$appdata.getParam('安检用户状态')] : [{label: '全部', value: ''}]
548
+ this.gasproperties=this.$appdata.getParam('用气性质') ? [{
549
+ label: '全部',
550
+ value: ''
551
+ }, ...this.$appdata.getParam('用气性质')] : [{label: '全部', value: ''}]
552
+ this.meter_classifys=this.$appdata.getParam('气表类型') ? [{
553
+ label: '全部',
554
+ value: ''
555
+ }, ...this.$appdata.getParam('气表类型')] : [{label: '全部', value: ''}]
556
+ },
557
+ select_search(){
558
+ new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {data:{items:"*",tablename:"t_area",orderitem:"id",condition:`1 = 1`}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
559
+ //tag)
560
+ if(res.data.length>0){
561
+ this.areaList=[]
562
+ this.areaList.push({label:"全部",value:""})
563
+ res.data.forEach((result)=>{
564
+ this.areaList.push({label:result.f_residential_area,value:result.f_residential_area})
565
+ })
566
+ }
567
+ //tag)
568
+ })
569
+ },
570
+ select_street(){
571
+ //tag
572
+ new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {data:{items:"id,f_street",tablename:"t_street",orderitem:"id",condition:`1 = 1`}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
573
+ //tag)
574
+ if(res.data.length>0){
575
+ this.streets=[]
576
+ this.streets.push({label:"全部",value:""})
577
+ res.data.forEach((result)=>{
578
+ this.streets.push({label:result.f_street,value:result.id})
579
+ })
580
+ }
581
+ })
582
+ },
583
+ //获取抄表册
584
+ async Mreadibook(){
585
+ this.cbc=[]
586
+ this.sliceArea=[]
587
+ let http = new HttpResetClass()
588
+ let getMeterReadingBooks = await http.load('POST','rs/logic/getMeterBooksData',
589
+ {data: {f_orgid: "('"+this.userlogin.orgid+"')"}},
590
+ {resolveMsg: null, rejectMsg: '获取失败!!!'})
591
+ this.cbc = [{label: '全部', value: ''}]
592
+ //tag
593
+ //tag)
594
+ //tag
595
+ this.meterbooks=[]
596
+ this.meterbooks=getMeterReadingBooks.data.meterbooks
597
+ this.meterbooks.forEach((res) => {
598
+ this.cbc.push({label: res.f_book_name, value: res.id})
599
+ /*if(res.f_book_slice_area){
600
+ if(this.sliceArea.indexOf(res.f_book_slice_area)<0){
601
+ this.sliceArea.push(res.f_book_slice_area)
602
+ }
603
+ }*/
604
+ })
605
+
606
+ },
607
+ //片区获取
608
+ async getSliceArea() {
609
+ let http = new HttpResetClass()
610
+ let getAllArea = await http.load('POST', '/rs/search', {
611
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
612
+ userid: this.userlogin.id
613
+ }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
614
+ this.sliceArea = [{label: '全部', value: ''}]
615
+ //tag
616
+ //tag
617
+ //tag
618
+ getAllArea.data.forEach((res) => {
619
+ if(res.parentid==this.userlogin.orgid){
620
+ this.sliceArea.push({label:res.name,value:res.name})
621
+ }
622
+ })
623
+ //tag
624
+ },
625
+ //片区改变-对应抄表册下拉重新赋值
626
+ slice_areaChange(value) {
627
+ //tag
628
+ if(!value){
629
+ this.cbc=[]
630
+ this.meterbooks.forEach((res) => {
631
+ this.cbc.push({label: res.f_book_name, value: res.id})
632
+ })
633
+ }else{
634
+ this.cbc=[]
635
+ this.meterbooks.forEach((res) => {
636
+ if(res.f_book_slice_area==value){
637
+ this.cbc.push({label: res.f_book_name, value: res.id})
638
+ }
639
+ })
640
+ }
641
+ },
642
+ isChecked(v) {
643
+ // 如果全选,不在的按选中算,否则,在的按选中算
644
+ if (this.checkAll) {
645
+ return this.checkes.indexOf(v) == -1
646
+ } else {
647
+ return this.checkes.indexOf(v) != -1
648
+ }
649
+ },
650
+ setCheckAll() {
651
+ this.checkAll=this.checkAll?false:true;
652
+ // 全选改变后,清空选中数据
653
+ this.checkes = []
654
+ },
655
+ setCheckes(id) {
656
+ let index=this.checkes.indexOf(id)
657
+ if(index<0){
658
+ this.checkes.push(id)
659
+ }else{
660
+ this.checkes.splice(index,1)
661
+ }
662
+ },
663
+ //将客户信息拖至计划中
664
+ async dragtoPlanItem() {
665
+ if(this.model.rows.length==0){
666
+ Vue.showMessage("未检测到列表中有用户!")
667
+ return
668
+ }
669
+ if(!this.checkAll && this.checkes.length==0){
670
+ Vue.showMessage("请先勾选你要添入到上方计划中的用户!")
671
+ return
672
+ }
673
+ if(this.selectplan && this.selectplan.id){
674
+ this.$parent.isSend=true
675
+ try{
676
+ let res=await new HttpResetClass().load("POST", "/rs/logic/AddCheckPlanItem", {
677
+ data:{
678
+ f_operator:this.userlogin.name,
679
+ f_plan_id:this.selectplan.id,
680
+ f_safecheck_type:this.selectplan.f_safecheck_type,
681
+ f_filialeid:this.userlogin.orgid,
682
+ f_subscribe_date:'',
683
+ condition:this.model.condition,
684
+ switchCheckAll:true,
685
+ checkAll:this.checkAll,
686
+ param:this.checkes,
687
+ columnName: "ua.id"
688
+ }
689
+ }, {resolveMsg: null, rejectMsg: null})
690
+ //tag+"---"+res.data.result.length)
691
+ this.$parent.isSend=false
692
+ if(res.data.code==200){
693
+ //alert("添加成功!有"+res.data.result.length+"条用户地址已经存在于其他计划中: \n"+res.data.result.reduce((c,v)=>{c += v.f_user_name+":"+v.f_address+"\n"}),0)
694
+ this.$showMessage("添加成功!"+(res.data.result.length>0?"有"+res.data.result.length+"条用户地址已经存在于其他计划中":""))
695
+ this.$parent.refresh()
696
+ }else{
697
+ this.$showMessage("添加失败!")
698
+ }
699
+ }catch (e) {
700
+ this.$showMessage("添加失败!")
701
+ }
702
+ }else{
703
+ this.$parent.isSend=false
704
+ this.$showMessage("请先打开一个计划再进行操作")
705
+ }
706
+ }
707
+ },
708
+ events: {
709
+ onFileUpload: function (file, res) {
710
+ //tag)
711
+ //tag)
712
+ let data = {
713
+ filepath: res.f_downloadpath
714
+ }
715
+ new HttpResetClass().load('POST','/rs/logic/safe_GetUserInfoFromExcel', {data: data}, {
716
+ resolveMsg: '导入成功!已生成条件,若要去除导入条件请点击旁边 ‘清空用户编号’ 按钮。',
717
+ rejectMsg: '导入失败'
718
+ }).then((res) => {
719
+ this.uploadCodeCondition=res.data.condition
720
+ this.excelUserCondtion = false
721
+ })
722
+ },
723
+
724
+ }
725
+ }
726
+ </script>
727
+
728
+ <style scoped>
729
+ .safe-planfont{
730
+ font-family: MicrosoftYaHei;
731
+ font-size: 15px;
732
+ font-weight: normal;
733
+ font-stretch: normal;
734
+ letter-spacing: 2px;
735
+ color: #333333;
736
+ line-height: 25px;
737
+ }
738
+ .safe-bodyfont{
739
+ font-family: MicrosoftYaHei;
740
+ font-size: 14px;
741
+ font-weight: normal;
742
+ font-stretch: normal;
743
+ letter-spacing: 0px;
744
+ color: #999999;
745
+ line-height: 30px;
746
+ }
747
+ .safe-leftplan{
748
+ height:auto;
749
+ border-bottom:1px solid #ececec;
750
+ padding: 10px 5px
751
+ }
752
+ .leftplan-center{
753
+ border-top:1px solid #ececec;
754
+ border-bottom:1px solid #ececec;
755
+ }
756
+ .safe_p{
757
+ white-space: nowrap;
758
+ overflow: hidden;
759
+ text-overflow: ellipsis;
760
+ }
761
+ .safe-div-p{
762
+ color: #4792de;
763
+ text-align: end;
764
+ padding: 8px 15px;
765
+ }
766
+ </style>
767
+ <style lang="less">
768
+ .upuserinfo_sel ul{
769
+ width: 150% !important;
770
+ }
771
+ </style>