safecheck-client 3.0.35-5 → 3.0.35-50

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