safecheck-client 3.0.34-49 → 3.0.34-50

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) 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 +3 -3
  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/android/AddressList.vue +61 -61
  193. package/src/components/android/AttendanceTally.vue +116 -116
  194. package/src/components/android/Blank.vue +10 -10
  195. package/src/components/android/CheckPlanSelect.vue +704 -0
  196. package/src/components/android/CheckUnplanPage.vue +56 -56
  197. package/src/components/android/Checker.vue +12 -12
  198. package/src/components/android/CheckerAnnual.vue +81 -81
  199. package/src/components/android/CheckerAvarta.vue +82 -82
  200. package/src/components/android/EquipmentInspection.vue +348 -348
  201. package/src/components/android/FootprintMap.vue +120 -120
  202. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  203. package/src/components/android/MasterMain.vue +77 -77
  204. package/src/components/android/Menu.vue +132 -132
  205. package/src/components/android/NavBottom.vue +157 -157
  206. package/src/components/android/PaperAlarm.vue +85 -85
  207. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  208. package/src/components/android/PlumberAnnual.vue +83 -83
  209. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  210. package/src/components/android/PlumberMonthly.vue +84 -84
  211. package/src/components/android/PostMap.vue +83 -83
  212. package/src/components/android/QRCode/QRCodeBinding.vue +294 -290
  213. package/src/components/android/QueryCheckHistory.vue +122 -122
  214. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  215. package/src/components/android/RepairMain.vue +60 -60
  216. package/src/components/android/Repairman.vue +12 -12
  217. package/src/components/android/StationMaster.vue +12 -12
  218. package/src/components/defects/DefectModal.vue +101 -101
  219. package/src/components/defects/DevicesAndItem.vue +39 -39
  220. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  221. package/src/components/notice/NoticeForm.vue +100 -100
  222. package/src/components/notice/NoticeIssue.vue +20 -20
  223. package/src/components/paper/PicViewer.vue +18 -18
  224. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  225. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  226. package/src/components/phonestate/PostMap.vue +82 -82
  227. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  228. package/src/components/rongcheng/AddPlanItem.vue +4 -0
  229. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  230. package/src/components/rongcheng/CheckSearchUser.vue +40 -14
  231. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  232. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  233. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  234. package/src/components/userfile/MeterFile.vue +145 -145
  235. package/src/components/userfile/MeterModify.vue +46 -46
  236. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  237. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +645 -0
  238. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  239. package/src/filiale/siyang/pc/CheckSearchUser.vue +982 -0
  240. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  241. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  242. package/src/filiale/siyang/pc/checkUserList.vue +22 -18
  243. package/src/filiale/siyang/pc.js +21 -16
  244. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1060 -1060
  245. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +720 -735
  246. package/src/filiale/weinan/pc/checkUserList.vue +697 -712
  247. package/src/main.js +33 -33
  248. package/src/plugins/LoadData.js +10 -10
  249. package/src/plugins/LoadParams.js +24 -24
  250. package/src/safecheck-android.js +301 -300
  251. package/src/stores/wxconfig.js +10 -10
  252. package/src/utils/getNowDate.js +33 -33
  253. package/test/e2e/custom-assertions/elementCount.js +26 -26
  254. package/test/e2e/nightwatch.conf.js +40 -40
  255. package/test/e2e/runner.js +30 -30
  256. package/test/e2e/specs/test.js +13 -13
  257. package/test/unit/.eslintrc +5 -5
  258. package/test/unit/TestUtil.js +62 -62
  259. package/test/unit/context.html +20 -20
  260. package/test/unit/index.js +13 -13
@@ -1,735 +1,720 @@
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
- <div class="form-group col-sm-2" >
8
- <label class="font_normal_body">用户信息</label>
9
- <input type="text" class="input_search" v-model="model.f_userinfo_code"
10
- style="width: 60%" placeholder="客户编号" condition="ui.f_userinfo_code='{}'">
11
- </div>
12
- <div class="form-group col-sm-2" >
13
- <label class="font_normal_body" title="参数名称:安检用户状态">用户状态:</label>
14
- <v-select
15
- class="select select_list"
16
- :value.sync="model.f_user_state"
17
- v-model="model.f_user_state"
18
- :options='$parent.$parent.userStates'
19
- placeholder='请选择'
20
- condition="ui.f_user_state='{}'"
21
- :search="false"
22
- close-on-select
23
- value-single
24
- >
25
- </v-select>
26
- </div>
27
- <div class="form-group col-sm-2" >
28
- <label class="font_normal_body"title="参数名称:用气性质">用气性质:</label>
29
- <v-select
30
- class="select select_list"
31
- :value.sync="model.f_gasproperties"
32
- v-model="model.f_gasproperties"
33
- :options='$parent.$parent.gasproperties'
34
- placeholder='请选择'
35
- condition="uf.f_gasproperties in {}"
36
- :search="false"
37
- :multiple="true"
38
- close-on-select
39
- >
40
- </v-select>
41
- </div>
42
- <div class="form-group col-sm-2" >
43
- <label class="font_normal_body">气表品牌:</label>
44
- <v-select
45
- class="select select_list"
46
- :value.sync="model.metergasbrand"
47
- v-model="model.metergasbrand"
48
- :options='$parent.$parent.meter_gasbrand'
49
- placeholder='气表品牌'
50
- condition="uf.f_gasbrand_id in {}"
51
- :search="false"
52
- :multiple="true"
53
- close-on-select
54
- >
55
- </v-select>
56
- </div>
57
- <div class="form-group col-sm-4" >
58
- <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUserCondition()">更多条件</button>
59
- <export-excel-safe :data="$parent.$parent.searchData"
60
- :field="$parent.$parent.excelHeaders"
61
- :choose-col="true"
62
- sqlurl="rs/logic/SafeExportExcel" sql-name="FetchUserFileByOrgNoRuHuSXQ" template-name='安检筛选用户信息导出'></export-excel-safe>
63
- <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
64
- <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.createAndSend()">下发</button>
65
- </div>
66
- <modal :show.sync="$parent.$parent.showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
67
- <div slot="modal-header" class="modal-header">
68
- <h4 class="modal-title">
69
- 用户查询条件
70
- </h4>
71
- </div>
72
- <div slot="modal-body" class="modal-body">
73
- <div class="row">
74
- <div class="form-group col-sm-4" >
75
- <label class="font_normal_body">楼&ensp;栋&ensp;号:</label>
76
- <input type="text" class="input_search" v-model="model.f_building"
77
- style="width: 60%" placeholder="请选择" condition="ua.f_building='{}'">
78
- </div>
79
- <div class="form-group col-sm-4" >
80
- <label class="font_normal_body">单&ensp;元&ensp;号:</label>
81
- <input type="text" class="input_search" v-model="model.f_unit"
82
- style="width: 60%" placeholder="请选择" condition="ua.f_unit='{}'">
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.yearCheck"
89
- v-model="model.yearCheck"
90
- :options='$parent.$parent.yearCheckList'
91
- placeholder='请选择'
92
- condition="{}"
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
- :multiple="true"
104
- :value.sync="model.f_last_check_state"
105
- v-model="model.f_last_check_state"
106
- :options='$parent.$parent.entry_status'
107
- placeholder='请选择'
108
- :search="false"
109
- >
110
- </v-select>
111
- </div>
112
- <div class="form-group col-sm-4" >
113
- <label class="font_normal_body">安检起始:</label>
114
- <datepicker
115
- placeholder='请选择'
116
- style="width:60%;text-align: center"
117
- :disabled-days-of-week="[]"
118
- :format="'yyyy-MM-dd 00:00:00'"
119
- :show-rest-button="reset"
120
- :value.sync="model.f_check_start"
121
- v-model="model.f_check_start">
122
- </datepicker>
123
- </div>
124
- <div class="form-group col-sm-4" >
125
- <label class="font_normal_body">安检截止:</label>
126
- <datepicker
127
- placeholder='请选择'
128
- :disabled-days-of-week="[]"
129
- style="width:60%;text-align: center"
130
- :format="'yyyy-MM-dd 23:59:59'"
131
- :show-rest-button="reset"
132
- :value.sync="model.f_check_end"
133
- v-model="model.f_check_end">
134
- </datepicker>
135
- </div>
136
- <div class="form-group col-sm-4" >
137
- <label class="font_normal_body">入户截止:</label>
138
- <datepicker
139
- placeholder='请选择'
140
- :disabled-days-of-week="[]"
141
- style="width:60%;text-align: center"
142
- :format="'yyyy-MM-dd 23:59:59'"
143
- :show-rest-button="reset"
144
- :value.sync="model.f_ruhu_end"
145
- v-model="model.f_ruhu_end">
146
- </datepicker>
147
- </div>
148
-
149
- </div>
150
- </div>
151
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
152
- <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
153
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
154
- </div>
155
- </modal>
156
- <modal :show.sync="$parent.$parent.excelUserCondtion" width="500px" v-ref:modal1 >
157
- <div slot="modal-header" class="modal-header">
158
- <h4 class="modal-title">
159
- 导入用户编号
160
- </h4>
161
- </div>
162
- <div slot="modal-body" class="modal-body">
163
- <div class="row">
164
- <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success" style="border-radius: 2px;"
165
- action="rs/file/uploadFile" tagname="档案信息导入" v-ref:file :headers="headers" multiple></file-upload>
166
- <img src="../../../assets/Excelformat.png" style="width: 100%"/>
167
- </div>
168
- </div>
169
- <footer slot="modal-footer" class="modal-footer">
170
- </footer>
171
- </modal>
172
- </div>
173
- </div>
174
- </criteria>
175
- <data-grid :model="model" partial='list' class="table_sy">
176
-
177
- <template partial='head'>
178
- <tr>
179
- <th><nobr><input type="checkbox" @dblclick.stop="" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/> 全选</nobr></th>
180
- <th><nobr>用户编号</nobr></th>
181
- <th><nobr>用户名称</nobr></th>
182
- <th><nobr>用户类型</nobr></th>
183
- <th><nobr>小区名称</nobr></th>
184
- <!-- <th><nobr>片区</nobr></th>-->
185
- <!-- <th><nobr>抄表册</nobr></th>-->
186
- <!-- <th title="当前所在的安检计划名称"><nobr>所属计划</nobr></th>-->
187
- <th title="最后一次安检日期"><nobr>安检日期</nobr></th>
188
- <th title="最后一次安检状态"><nobr>安检状态</nobr></th>
189
- <th><nobr>详细地址</nobr></th>
190
- </tr>
191
- </template>
192
- <template partial='body'>
193
- <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>
194
- <td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
195
- <td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
196
- <td style="text-align: center"><nobr>{{row.f_user_type}}</nobr></td>
197
- <td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
198
- <!-- <td style="text-align: center"><nobr>{{row.f_slice_area}}</nobr></td>-->
199
- <!-- <td style="text-align: center"><nobr>{{row.f_book_name}}</nobr></td>-->
200
- <!-- <td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>-->
201
- <td style="text-align: center"><nobr>{{row.f_last_check_date}}</nobr></td>
202
- <td style="text-align: center"><nobr>{{row.f_last_check_state}}</nobr></td>
203
- <td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
204
- </template>
205
- </data-grid>
206
- </criteria-paged>
207
- <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
208
- <div slot="modal-header" class="modal-header">
209
- <h4 class="modal-title">
210
- 新建计划
211
- </h4>
212
- </div>
213
- <div slot="modal-body" class="modal-body">
214
- <div class="row">
215
- <div class="form-group col-sm-4" >
216
- <label class="font_normal_body">计划名称:</label>
217
- <input type="text" class="input_search" v-model="createPlan.f_plan_name"
218
- style="width: 60%" placeholder="请选择" />
219
- </div>
220
- <div class="form-group col-sm-4" >
221
- <label class="font_normal_body">计划年份:</label>
222
- <v-select
223
- class="select select_list"
224
- :value.sync="createPlan.f_plan_year"
225
- v-model="createPlan.f_plan_year"
226
- :search="false"
227
- :options='yearList'
228
- close-on-select
229
- value-single
230
- >
231
- </v-select>
232
- </div>
233
- <div class="form-group col-sm-4" >
234
- <label class="font_normal_body">计划月份:</label>
235
- <v-select
236
- class="select select_list"
237
- :value.sync="createPlan.f_plan_month"
238
- v-model="createPlan.f_plan_month"
239
- :search="false"
240
- :options='monthList'
241
- close-on-select
242
- value-single>
243
- </v-select>
244
- </div>
245
- <div class="form-group col-sm-4" >
246
- <label class="font_normal_body">计划开始:</label>
247
- <datepicker
248
- placeholder='请选择'
249
- style="width:60%"
250
- :disabled-days-of-week="[]"
251
- :format="'yyyy-MM-dd'"
252
- :show-rest-button="reset"
253
- :value.sync="createPlan.f_start_time"
254
- v-model="createPlan.f_start_time">
255
- </datepicker>
256
- </div>
257
- <div class="form-group col-sm-4" >
258
- <label class="font_normal_body">计划结束:</label>
259
- <datepicker
260
- placeholder='请选择'
261
- style="width:60%"
262
- :disabled-days-of-week="[]"
263
- :format="'yyyy-MM-dd'"
264
- :show-rest-button="reset"
265
- :value.sync="createPlan.f_end_time"
266
- v-model="createPlan.f_end_time">
267
- </datepicker>
268
- </div>
269
- </div>
270
- </div>
271
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
272
- <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
273
- <button class="button_search" @click="cancelCreatePlan">取消</button>
274
- </div>
275
- </modal>
276
- </div>
277
- </template>
278
-
279
- <script>
280
- import {HttpResetClass, PagedList} from "vue-client";
281
- import * as Util from "../../../components/Util";
282
- import Vue from "vue";
283
- import {toStandardDateString} from "../../../components/Util";
284
-
285
- export default {
286
- title: '计划管理',
287
- data() {
288
- let model = new PagedList('/rs/sql/FetchUserFileByOrgNoRuHuSXQ', 20, {
289
- "orderitem": "'f_residential_area,f_building,f_unit,f_floor,f_room'",
290
- "f_usertype": "''",
291
- "month": "''",
292
- "SafeCheckSX": 'this.SafeCheckSX',
293
- "SafeCheckCQ": "''",
294
- "startday":"''",
295
- "endday":"''"})
296
- model.SafeCheckSX = '1 = 1'
297
- return {
298
- searchData: {
299
- condition: "1=1",
300
- orderitem: "f_residential_area,f_building,f_unit,f_floor,f_room",
301
- SafeCheckSX:""
302
- },
303
- excelHeaders: {
304
- 'f_userinfo_code': '用户编号',
305
- 'f_user_name': '用户姓名',
306
- 'f_user_type': '用户类型',
307
- 'f_residential_area': '小区名称',
308
- 'f_last_check_date': '最后一次安检日期',
309
- 'f_last_check_state': '最后一次安检状态',
310
- 'f_address': '详细地址'
311
- },
312
- model: model,
313
- createPlan:{
314
- f_safecheck_type:"年度普检",
315
- checker:"",
316
- isShare:"否",
317
- f_usertype:"",
318
- f_issued:'是',
319
- f_end_time:Util.toStandardDateString().replace(new Date().getFullYear().toString(),(new Date().getFullYear()+1).toString()),
320
- f_start_time:Util.toStandardDateString(),
321
- f_plan_month:(new Date().getMonth()+1).toString(),
322
- f_plan_year:new Date().getFullYear().toString(),
323
- f_plan_name:""
324
- },
325
- yearList:[{label:"2020",value:"2020"},{label:"2021",value:"2021"},{label:"2022",value:"2022"},{label:"2023",value:"2023"},{label:"2024",value:"2024"},{label:"2025",value:"2025"},{label:"2026",value:"2026"},{label:"2027",value:"2027"},{label:"2028",value:"2028"},{label:"2029",value:"2029"},{label:"2030",value:"2030"}],
326
- monthList:[{label:"1",value:"1"},{label:"2",value:"2"},{label:"3",value:"3"},{label:"4",value:"4"},{label:"5",value:"5"},{label:"6",value:"6"},{label:"7",value:"7"},{label:"8",value:"8"},{label:"9",value:"9"},{label:"10",value:"10"},{label:"11",value:"11"},{label:"12",value:"12"}],
327
- showCreatePlan:false,
328
- a:'1',
329
- opt:[{label:"测试",value:"测试"}],
330
- showCondtion:false,
331
- userTypes:[],//用户类型
332
- entry_status:[],
333
- userStates:[],//用户状态
334
- gasproperties:[],//用气性质
335
- meter_gasbrand:[],//气表品牌
336
- hasHousehold:[{label:"全部",value:""},{label:"已入户",value:"已入户"},{label:"未入户",value:"未入户"}],
337
- yearCheckList:[{label:"全部",value:""},{label:"已在计划中",value:"ua.f_plan_id is not null"},{label:"未在计划中",value:"ua.f_plan_id is null"}],
338
- checkStateList:[{label:"全部",value:""},{label:"两年内已检",value:"DATEDIFF(day,isnull(ui.f_last_check_date,'2010-01-01'),GETDATE())<=730"},{label:"两年内未检",value:"DATEDIFF(day,isnull(ui.f_last_check_date,'2010-01-01'),GETDATE())>730"},{label:"从未安检",value:"从未安检"}],
339
- hasResidentialArea:[{label:"全部",value:""},{label:"有名称",value:"有名称"},{label:"无名称",value:"无名称"}],
340
- sliceArea:[],
341
- meterbooks:[],
342
- checkBooks:[{label:'sss',value:'1-用户'},{label:'ssssss',value:'1-小区'}],
343
- cbc:[],
344
- areaList:[],
345
- checkAll:false,
346
- checkes:[],
347
- areaen:[],//片区
348
- excelUserCondtion:false,
349
- uploadCodeCondition:''
350
- }
351
- },
352
- props:["userlogin","bookrow","needprops","row","bookrowsdata","addcondata"],
353
- ready(){
354
- console.log("this.bookrow",this.bookrow)
355
- console.log("this.row",this.row)
356
- console.log("this.needprops",this.needprops)
357
- this.createPlan.checker = this.needprops.checker.filter(item=>item.label == this.row.f_checker_name)[0].value
358
- this.createPlan.f_checker_id=this.createPlan.checker.id
359
- this.createPlan.f_checker=this.createPlan.checker.name
360
- this.createPlan.f_usertype = this.row.f_user_type
361
- if(this.row.f_user_type == '非民用'){
362
- this.createPlan.f_plan_name = `${this.row.f_check_book_name}${this.createPlan.f_plan_year}年${this.createPlan.f_plan_month}月`
363
- }else{
364
- this.createPlan.f_plan_name = `${this.row.f_check_book_name}${this.createPlan.f_plan_year}年`
365
- }
366
- this.$refs.paged.$refs.criteria.model.f_user_state='正常'
367
- this.meter_gasbrand=this.needprops.meter_gasbrand,
368
- this.checkBooks=this.needprops.checkBooks,
369
- this.entry_status=this.needprops.entry_status,
370
- this.userTypes=this.needprops.userTypes,
371
- this.userStates=this.needprops.userStates,
372
- this.gasproperties=this.needprops.gasproperties,
373
- this.areaList=this.needprops.areaList,
374
- this.sliceArea=this.needprops.sliceArea,
375
- this.cbc=this.needprops.cbc,
376
- this.meterbooks=this.needprops.meterbooks
377
- },
378
- methods: {
379
- async addNewPlan(){
380
- this.createPlan.f_plan_type='预约计划'
381
- this.createPlan.f_subcompany=this.userlogin.orgstr
382
- this.createPlan.f_filialeid=this.userlogin.orgid
383
- this.createPlan.f_create_operator=this.userlogin.name
384
- this.createPlan.f_create_time=Util.toStandardTimeString()
385
- this.createPlan.f_check_book_id = this.row.id
386
- console.log(this.createPlan)
387
- const addPlan = {
388
- f_operator:this.userlogin.name,
389
- f_filialeid:this.userlogin.orgid,
390
- f_subscribe_date:'',
391
- condition:this.model.condition,
392
- SafeCheckSX: this.model.SafeCheckSX,
393
- switchCheckAll:true,
394
- checkAll:this.checkAll,
395
- param:this.checkes,
396
- columnName: "ua.id"
397
- }
398
- new HttpResetClass().load("POST",'/rs/logic/createAndAddPlan',{createPlan:this.createPlan,addPlan}).then(res=>{
399
- if(res.data.code==200){
400
- this.$showMessage("计划下发成功!"+(res.data.result.length>0?"有"+res.data.result.length+"条用户地址已经存在于其他计划中":""))
401
- this.cancelCreatePlan()
402
- }else{
403
- this.$showMessage("计划下发失败!")
404
- }
405
- })
406
- },
407
- cancelCreatePlan(){
408
- this.showCreatePlan = false
409
- },
410
- createAndSend(){
411
- if(this.model.rows.length==0){
412
- Vue.showMessage("未检测到列表中有用户!")
413
- return
414
- }
415
- if(!this.checkAll && this.checkes.length==0){
416
- Vue.showMessage("请先勾选你要添入到上方计划中的用户!")
417
- return
418
- }
419
- this.showCreatePlan = true
420
- },
421
- cancel(){
422
- this.showCondtion=false
423
- this.excelUserCondtion=false
424
- },
425
- //清空用户编号
426
- clearUserInfoId(){
427
- this.uploadCodeCondition=''
428
- Vue.showMessage("已清空用户编号")
429
- },
430
- showUploadCodeCondition(){
431
- this.excelUserCondtion=true
432
- },
433
- selfSearch (args) {
434
- if(args.model.f_last_check_state.length == 1 && args.model.f_last_check_state[0] == '入户' && args.model.f_ruhu_end) {
435
- args.condition += `and DATEADD(YEAR, 2, CAST(ruhuend.f_offsite_time AS datetime)) < '${args.model.f_ruhu_end}'`
436
- }
437
- if(args.model.f_last_check_state.length > 0 && Util.isEmpty(args.model.f_ruhu_end) && (Util.isEmpty(args.model.f_check_start) || Util.isEmpty(args.model.f_check_end))) {
438
- this.$showMessage("选择安检状态时,需要选择安检时间区间!")
439
- return
440
- }
441
- if(args.model.f_last_check_state.length > 0 && Util.isEmpty(args.model.f_ruhu_end)) {
442
- let zzcon = ''
443
- this.model.SafeCheckSX = ` f_offsite_time > '${args.model.f_check_start}' and f_offsite_time < '${args.model.f_check_end}'`
444
- for (let i = 0; i < args.model.f_last_check_state.length; i++) {
445
- if (args.model.f_last_check_state[i] == '未检') {
446
- zzcon += ' tcp.ruhu is null '
447
- if (i != args.model.f_last_check_state.length - 1) {
448
- zzcon += ' or'
449
- }
450
- } else if (args.model.f_last_check_state[i] == '入户') {
451
- zzcon += `tcp.ruhu > 0`
452
- if (i != args.model.f_last_check_state.length - 1) {
453
- zzcon += ' or'
454
- }
455
- } else if (args.model.f_last_check_state[i] == '拒检') {
456
- zzcon += `(tcp.jujian > 0 and tcp.ruhu = 0 and tcp.daofang >= 0) `
457
- if (i != args.model.f_last_check_state.length - 1) {
458
- zzcon += ' or'
459
- }
460
- } else if (args.model.f_last_check_state[i] == '到访不遇') {
461
- zzcon += `(tcp.daofang > 0 and tcp.ruhu = 0 and tcp.jujian = 0) `
462
- if (i != args.model.f_last_check_state.length - 1) {
463
- zzcon += ' or'
464
- }
465
- }
466
- }
467
- args.condition += `and ( ${zzcon} )`
468
- }else{
469
- //无条件
470
- this.model.SafeCheckSX = ` 1 != 1 `
471
- }
472
- this.searchData.SafeCheckSX = this.model.SafeCheckSX
473
- let condition1=`(ui.f_last_check_date is null or ui.f_last_check_date ='')`
474
- let arge = args.condition.replace('从未安检',condition1)
475
- args.condition = arge
476
- // 上一个界面条件拼接进来
477
- if(this.addcondata){
478
- args.condition += this.addcondata
479
- }
480
- var checkallcond = ''
481
- // 判断小区或者单位是否是多选 全选
482
- if(this.bookrowsdata.checkAll){
483
- if(this.row.f_user_type === '民用'){
484
- checkallcond = ` and area.f_check_book_id = ${this.row.id} `
485
- if(this.bookrowsdata.checkallconres){
486
- checkallcond += ` and area.f_residential_area = '${this.bookrowsdata.checkallconres} '`
487
- }
488
- if(this.bookrowsdata.checkallconuse){
489
- checkallcond += ` and area.f_use_institution = '${this.bookrowsdata.checkallconuse}' `
490
- }
491
- }else{
492
- checkallcond = ` and tc.f_check_book_id = ${this.row.id} `
493
- }
494
-
495
- if(this.bookrowsdata.bookrows.length > 0){
496
- this.bookrowsdata.bookrows.forEach((item) => {
497
- if(this.row.f_user_type === '民用'){
498
- checkallcond += ` and area.id != ${item}`
499
- }else{
500
- checkallcond += ` and tc.id != ${item}`
501
- }
502
- })
503
- }
504
- }else{
505
- var nums = '('
506
- this.bookrowsdata.bookrows.forEach((item) => {
507
- if(this.bookrowsdata.bookrows[this.bookrowsdata.bookrows.length -1] == item){
508
- nums += item +')'
509
- }else{
510
- nums += item +','
511
- }
512
- })
513
- if(this.row.f_user_type === '民用'){
514
- checkallcond += ` and area.id in ${nums}`
515
- }else{
516
- checkallcond += ` and tc.id in ${nums}`
517
- }
518
- }
519
- args.condition += checkallcond
520
- args.condition += ` and ui.f_filialeid='${this.userlogin.orgid}'`
521
- if (args.model.f_residential_area == "无名称"){
522
- args.condition +=" and (ua.f_residential_area is null or ua.f_residential_area ='')"
523
- }else if (args.model.f_residential_area == "有名称"){
524
- args.condition +=" and (ua.f_residential_area is not null and ua.f_residential_area !='')"
525
- }
526
- if(this.uploadCodeCondition){
527
- args.condition +=` and ${this.uploadCodeCondition}`
528
- }
529
- this.cancel()
530
- this.checkes=[]
531
- this.checkAll=false
532
- this.searchData.condition = args.condition
533
- this.model.search(args.condition, args.model, args.condValue)
534
- },
535
- showUserCondition(){
536
- this.showCondtion=true
537
- },
538
- setConList(){
539
- this.entry_status=this.$appdata.getParam('安检状态') ? [{
540
- label: '全部',
541
- value: ''
542
- }, ...this.$appdata.getParam('安检状态')] : [{label: '全部', value: ''}]
543
-
544
- this.userTypes=this.$appdata.getParam('用户类型') ? [{
545
- label: '全部',
546
- value: ''
547
- }, ...this.$appdata.getParam('用户类型')] : [{label: '全部', value: ''}]
548
- this.userStates=this.$appdata.getParam('安检用户状态') ? [{
549
- label: '全部',
550
- value: ''
551
- }, ...this.$appdata.getParam('安检用户状态')] : [{label: '全部', value: ''}]
552
- this.gasproperties=this.$appdata.getParam('用气性质') ? [{
553
- label: '全部',
554
- value: ''
555
- }, ...this.$appdata.getParam('用气性质')] : [{label: '全部', value: ''}]
556
- // this.meter_classifys=this.$appdata.getParam('气表类型') ? [{
557
- // label: '全部',
558
- // value: ''
559
- // }, ...this.$appdata.getParam('气表类型')] : [{label: '全部', value: ''}]
560
- },
561
- select_search(text, type){
562
- //tag
563
- let pcdText=text?` and f_residential_area like '%${text}%'`:''
564
- if (type == 'pqId'){
565
- if(text.length==0){
566
- pcdText=text?` and 1=1`:''
567
- }else {
568
- pcdText =text?`and f_check_book_id in (${text})`:''
569
- }
570
-
571
- }
572
- 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)=>{
573
- //tag)
574
- this.areaList=[]
575
- this.areaList.push({label:"全部",value:""})
576
- res.data.forEach((result)=>{
577
- this.areaList.push({label:result.f_residential_area,value:result.f_residential_area})
578
- //console.log('this.areaList=', JSON.stringify(this.areaList))
579
- })
580
- //tag)
581
- })
582
-
583
-
584
- },
585
- //获取抄表册
586
- async Mreadibook(){
587
- this.cbc=[]
588
- this.sliceArea=[]
589
- let http = new HttpResetClass()
590
- let getMeterReadingBooks = await http.load('POST','rs/logic/getMeterBooksData',
591
- {data: {f_orgid: "('"+this.userlogin.orgid+"')"}},
592
- {resolveMsg: null, rejectMsg: '获取失败!!!'})
593
- this.cbc = [{label: '全部', value: ''}]
594
- //tag
595
- //tag)
596
- //tag
597
- this.meterbooks=[]
598
- this.meterbooks=getMeterReadingBooks.data.meterbooks
599
- this.meterbooks.forEach((res) => {
600
- this.cbc.push({label: res.f_book_name, value: res.id})
601
- /*if(res.f_book_slice_area){
602
- if(this.sliceArea.indexOf(res.f_book_slice_area)<0){
603
- this.sliceArea.push(res.f_book_slice_area)
604
- }
605
- }*/
606
- })
607
-
608
- },
609
- //片区获取
610
- async getSliceArea() {
611
- let http = new HttpResetClass()
612
- let getAllArea = await http.load('POST', '/rs/search', {
613
- source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
614
- userid: this.userlogin.id
615
- }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
616
- this.sliceArea = [{label: '全部', value: ''}]
617
- //tag
618
- //tag
619
- //tag
620
- getAllArea.data.forEach((res) => {
621
- if(res.parentid==this.userlogin.orgid){
622
- this.sliceArea.push({label:res.name,value:res.name})
623
- }
624
- })
625
- //tag
626
- },
627
- //片区改变-对应抄表册下拉重新赋值
628
- slice_areaChange(value) {
629
- //tag
630
- if(!value){
631
- this.cbc=[]
632
- this.meterbooks.forEach((res) => {
633
- this.cbc.push({label: res.f_book_name, value: res.id})
634
- })
635
- }else{
636
- this.cbc=[]
637
- this.meterbooks.forEach((res) => {
638
- if(res.f_book_slice_area==value){
639
- this.cbc.push({label: res.f_book_name, value: res.id})
640
- }
641
- })
642
- }
643
- },
644
- isChecked(v) {
645
- // 如果全选,不在的按选中算,否则,在的按选中算
646
- if (this.checkAll) {
647
- return this.checkes.indexOf(v) == -1
648
- } else {
649
- return this.checkes.indexOf(v) != -1
650
- }
651
- },
652
- setCheckAll() {
653
- this.checkAll=this.checkAll?false:true;
654
- // 全选改变后,清空选中数据
655
- this.checkes = []
656
- },
657
- setCheckes(id) {
658
- let index=this.checkes.indexOf(id)
659
- if(index<0){
660
- this.checkes.push(id)
661
- }else{
662
- this.checkes.splice(index,1)
663
- }
664
- },
665
- },
666
- watch: {
667
- 'areaen'(val) {
668
- //console.log('val=', JSON.stringify(val))
669
- this.select_search(val, 'pqId')
670
- }
671
- },
672
- events: {
673
- onFileUpload: function (file, res) {
674
- //tag)
675
- //tag)
676
- let data = {
677
- filepath: res.f_downloadpath
678
- }
679
- new HttpResetClass().load('POST','/rs/logic/safe_GetUserInfoFromExcel', {data: data}, {
680
- resolveMsg: '导入成功!已生成条件,若要去除导入条件请点击旁边 ‘清空用户编号’ 按钮。',
681
- rejectMsg: '导入失败'
682
- }).then((res) => {
683
- this.uploadCodeCondition=res.data.condition
684
- this.excelUserCondtion = false
685
- })
686
- },
687
-
688
- }
689
- }
690
- </script>
691
-
692
- <style scoped>
693
- .safe-planfont{
694
- font-family: MicrosoftYaHei;
695
- font-size: 15px;
696
- font-weight: normal;
697
- font-stretch: normal;
698
- letter-spacing: 2px;
699
- color: #333333;
700
- line-height: 25px;
701
- }
702
- .safe-bodyfont{
703
- font-family: MicrosoftYaHei;
704
- font-size: 14px;
705
- font-weight: normal;
706
- font-stretch: normal;
707
- letter-spacing: 0px;
708
- color: #999999;
709
- line-height: 30px;
710
- }
711
- .safe-leftplan{
712
- height:auto;
713
- border-bottom:1px solid #ececec;
714
- padding: 10px 5px
715
- }
716
- .leftplan-center{
717
- border-top:1px solid #ececec;
718
- border-bottom:1px solid #ececec;
719
- }
720
- .safe_p{
721
- white-space: nowrap;
722
- overflow: hidden;
723
- text-overflow: ellipsis;
724
- }
725
- .safe-div-p{
726
- color: #4792de;
727
- text-align: end;
728
- padding: 8px 15px;
729
- }
730
- </style>
731
- <style lang="less">
732
- .upuserinfo_sel ul{
733
- width: 150% !important;
734
- }
735
- </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
+ <div class="form-group col-sm-2" >
8
+ <label class="font_normal_body">用户信息</label>
9
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
10
+ style="width: 60%" placeholder="客户编号" condition="ui.f_userinfo_code='{}'">
11
+ </div>
12
+ <div class="form-group col-sm-2" >
13
+ <label class="font_normal_body" title="参数名称:安检用户状态">用户状态:</label>
14
+ <v-select
15
+ class="select select_list"
16
+ :value.sync="model.f_user_state"
17
+ v-model="model.f_user_state"
18
+ :options='$parent.$parent.userStates'
19
+ placeholder='请选择'
20
+ condition="ui.f_user_state='{}'"
21
+ :search="false"
22
+ close-on-select
23
+ value-single
24
+ >
25
+ </v-select>
26
+ </div>
27
+ <div class="form-group col-sm-2" >
28
+ <label class="font_normal_body"title="参数名称:用气性质">用气性质:</label>
29
+ <v-select
30
+ class="select select_list"
31
+ :value.sync="model.f_gasproperties"
32
+ v-model="model.f_gasproperties"
33
+ :options='$parent.$parent.gasproperties'
34
+ placeholder='请选择'
35
+ condition="uf.f_gasproperties in {}"
36
+ :search="false"
37
+ :multiple="true"
38
+ close-on-select
39
+ >
40
+ </v-select>
41
+ </div>
42
+ <div class="form-group col-sm-2" >
43
+ <label class="font_normal_body">气表品牌:</label>
44
+ <v-select
45
+ class="select select_list"
46
+ :value.sync="model.metergasbrand"
47
+ v-model="model.metergasbrand"
48
+ :options='$parent.$parent.meter_gasbrand'
49
+ placeholder='气表品牌'
50
+ condition="uf.f_gasbrand_id in {}"
51
+ :search="false"
52
+ :multiple="true"
53
+ close-on-select
54
+ >
55
+ </v-select>
56
+ </div>
57
+ <div class="form-group col-sm-4" >
58
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUserCondition()">更多条件</button>
59
+ <export-excel-safe :data="$parent.$parent.searchData"
60
+ :field="$parent.$parent.excelHeaders"
61
+ :choose-col="true"
62
+ sqlurl="rs/logic/SafeExportExcel" sql-name="FetchUserFileByOrgNoRuHuSXQ" template-name='安检筛选用户信息导出'></export-excel-safe>
63
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
64
+ <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.createAndSend()">下发</button>
65
+ </div>
66
+ <modal :show.sync="$parent.$parent.showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
67
+ <div slot="modal-header" class="modal-header">
68
+ <h4 class="modal-title">
69
+ 用户查询条件
70
+ </h4>
71
+ </div>
72
+ <div slot="modal-body" class="modal-body">
73
+ <div class="row">
74
+ <div class="form-group col-sm-4" >
75
+ <label class="font_normal_body">楼&ensp;栋&ensp;号:</label>
76
+ <input type="text" class="input_search" v-model="model.f_building"
77
+ style="width: 60%" placeholder="请选择" condition="ua.f_building='{}'">
78
+ </div>
79
+ <div class="form-group col-sm-4" >
80
+ <label class="font_normal_body">单&ensp;元&ensp;号:</label>
81
+ <input type="text" class="input_search" v-model="model.f_unit"
82
+ style="width: 60%" placeholder="请选择" condition="ua.f_unit='{}'">
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.yearCheck"
89
+ v-model="model.yearCheck"
90
+ :options='$parent.$parent.yearCheckList'
91
+ placeholder='请选择'
92
+ condition="{}"
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
+ :multiple="true"
104
+ :value.sync="model.f_last_check_state"
105
+ v-model="model.f_last_check_state"
106
+ :options='$parent.$parent.entry_status'
107
+ placeholder='请选择'
108
+ :search="false"
109
+ >
110
+ </v-select>
111
+ </div>
112
+ <div class="form-group col-sm-4" >
113
+ <label class="font_normal_body">安检起始:</label>
114
+ <datepicker
115
+ placeholder='请选择'
116
+ style="width:60%;text-align: center"
117
+ :disabled-days-of-week="[]"
118
+ :format="'yyyy-MM-dd 00:00:00'"
119
+ :show-rest-button="reset"
120
+ :value.sync="model.f_check_start"
121
+ v-model="model.f_check_start">
122
+ </datepicker>
123
+ </div>
124
+ <div class="form-group col-sm-4" >
125
+ <label class="font_normal_body">安检截止:</label>
126
+ <datepicker
127
+ placeholder='请选择'
128
+ :disabled-days-of-week="[]"
129
+ style="width:60%;text-align: center"
130
+ :format="'yyyy-MM-dd 23:59:59'"
131
+ :show-rest-button="reset"
132
+ :value.sync="model.f_check_end"
133
+ v-model="model.f_check_end">
134
+ </datepicker>
135
+ </div>
136
+
137
+ </div>
138
+ </div>
139
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
140
+ <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
141
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
142
+ </div>
143
+ </modal>
144
+ <modal :show.sync="$parent.$parent.excelUserCondtion" width="500px" v-ref:modal1 >
145
+ <div slot="modal-header" class="modal-header">
146
+ <h4 class="modal-title">
147
+ 导入用户编号
148
+ </h4>
149
+ </div>
150
+ <div slot="modal-body" class="modal-body">
151
+ <div class="row">
152
+ <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success" style="border-radius: 2px;"
153
+ action="rs/file/uploadFile" tagname="档案信息导入" v-ref:file :headers="headers" multiple></file-upload>
154
+ <img src="../../../assets/Excelformat.png" style="width: 100%"/>
155
+ </div>
156
+ </div>
157
+ <footer slot="modal-footer" class="modal-footer">
158
+ </footer>
159
+ </modal>
160
+ </div>
161
+ </div>
162
+ </criteria>
163
+ <data-grid :model="model" partial='list' class="table_sy">
164
+
165
+ <template partial='head'>
166
+ <tr>
167
+ <th><nobr><input type="checkbox" @dblclick.stop="" onClick="event.cancelBubble = true" :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/> 全选</nobr></th>
168
+ <th><nobr>用户编号</nobr></th>
169
+ <th><nobr>用户名称</nobr></th>
170
+ <th><nobr>用户类型</nobr></th>
171
+ <th><nobr>小区名称</nobr></th>
172
+ <!-- <th><nobr>片区</nobr></th>-->
173
+ <!-- <th><nobr>抄表册</nobr></th>-->
174
+ <!-- <th title="当前所在的安检计划名称"><nobr>所属计划</nobr></th>-->
175
+ <th title="最后一次安检日期"><nobr>安检日期</nobr></th>
176
+ <th title="最后一次安检状态"><nobr>安检状态</nobr></th>
177
+ <th><nobr>详细地址</nobr></th>
178
+ </tr>
179
+ </template>
180
+ <template partial='body'>
181
+ <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>
182
+ <td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
183
+ <td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
184
+ <td style="text-align: center"><nobr>{{row.f_user_type}}</nobr></td>
185
+ <td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
186
+ <!-- <td style="text-align: center"><nobr>{{row.f_slice_area}}</nobr></td>-->
187
+ <!-- <td style="text-align: center"><nobr>{{row.f_book_name}}</nobr></td>-->
188
+ <!-- <td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>-->
189
+ <td style="text-align: center"><nobr>{{row.f_last_check_date}}</nobr></td>
190
+ <td style="text-align: center"><nobr>{{row.f_last_check_state}}</nobr></td>
191
+ <td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
192
+ </template>
193
+ </data-grid>
194
+ </criteria-paged>
195
+ <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
196
+ <div slot="modal-header" class="modal-header">
197
+ <h4 class="modal-title">
198
+ 新建计划
199
+ </h4>
200
+ </div>
201
+ <div slot="modal-body" class="modal-body">
202
+ <div class="row">
203
+ <div class="form-group col-sm-4" >
204
+ <label class="font_normal_body">计划名称:</label>
205
+ <input type="text" class="input_search" v-model="createPlan.f_plan_name"
206
+ style="width: 60%" placeholder="请选择" />
207
+ </div>
208
+ <div class="form-group col-sm-4" >
209
+ <label class="font_normal_body">计划年份:</label>
210
+ <v-select
211
+ class="select select_list"
212
+ :value.sync="createPlan.f_plan_year"
213
+ v-model="createPlan.f_plan_year"
214
+ :search="false"
215
+ :options='yearList'
216
+ close-on-select
217
+ value-single
218
+ >
219
+ </v-select>
220
+ </div>
221
+ <div class="form-group col-sm-4" >
222
+ <label class="font_normal_body">计划月份:</label>
223
+ <v-select
224
+ class="select select_list"
225
+ :value.sync="createPlan.f_plan_month"
226
+ v-model="createPlan.f_plan_month"
227
+ :search="false"
228
+ :options='monthList'
229
+ close-on-select
230
+ value-single>
231
+ </v-select>
232
+ </div>
233
+ <div class="form-group col-sm-4" >
234
+ <label class="font_normal_body">计划开始:</label>
235
+ <datepicker
236
+ placeholder='请选择'
237
+ style="width:60%"
238
+ :disabled-days-of-week="[]"
239
+ :format="'yyyy-MM-dd'"
240
+ :show-rest-button="reset"
241
+ :value.sync="createPlan.f_start_time"
242
+ v-model="createPlan.f_start_time">
243
+ </datepicker>
244
+ </div>
245
+ <div class="form-group col-sm-4" >
246
+ <label class="font_normal_body">计划结束:</label>
247
+ <datepicker
248
+ placeholder='请选择'
249
+ style="width:60%"
250
+ :disabled-days-of-week="[]"
251
+ :format="'yyyy-MM-dd'"
252
+ :show-rest-button="reset"
253
+ :value.sync="createPlan.f_end_time"
254
+ v-model="createPlan.f_end_time">
255
+ </datepicker>
256
+ </div>
257
+ </div>
258
+ </div>
259
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
260
+ <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
261
+ <button class="button_search" @click="cancelCreatePlan">取消</button>
262
+ </div>
263
+ </modal>
264
+ </div>
265
+ </template>
266
+
267
+ <script>
268
+ import {HttpResetClass, PagedList} from "vue-client";
269
+ import * as Util from "../../../components/Util";
270
+ import Vue from "vue";
271
+ import {toStandardDateString} from "../../../components/Util";
272
+
273
+ export default {
274
+ title: '计划管理',
275
+ data() {
276
+ let model = new PagedList('/rs/sql/FetchUserFileByOrgNoRuHuSXQ', 20, {
277
+ "orderitem": "'f_residential_area,f_building,f_unit,f_floor,f_room'",
278
+ "f_usertype": "''",
279
+ "month": "''",
280
+ "SafeCheckSX": 'this.SafeCheckSX',
281
+ "SafeCheckCQ": "''",
282
+ "startday":"''",
283
+ "endday":"''"})
284
+ model.SafeCheckSX = '1 = 1'
285
+ return {
286
+ searchData: {
287
+ condition: "1=1",
288
+ orderitem: "f_residential_area,f_building,f_unit,f_floor,f_room",
289
+ SafeCheckSX:""
290
+ },
291
+ excelHeaders: {
292
+ 'f_userinfo_code': '用户编号',
293
+ 'f_user_name': '用户姓名',
294
+ 'f_user_type': '用户类型',
295
+ 'f_residential_area': '小区名称',
296
+ 'f_last_check_date': '最后一次安检日期',
297
+ 'f_last_check_state': '最后一次安检状态',
298
+ 'f_address': '详细地址'
299
+ },
300
+ model: model,
301
+ createPlan:{
302
+ f_safecheck_type:"年度普检",
303
+ checker:"",
304
+ isShare:"否",
305
+ f_usertype:"",
306
+ f_issued:'',
307
+ f_end_time:Util.toStandardDateString().replace(new Date().getFullYear().toString(),(new Date().getFullYear()+1).toString()),
308
+ f_start_time:Util.toStandardDateString(),
309
+ f_plan_month:(new Date().getMonth()+1).toString(),
310
+ f_plan_year:new Date().getFullYear().toString(),
311
+ f_plan_name:""
312
+ },
313
+ yearList:[{label:"2020",value:"2020"},{label:"2021",value:"2021"},{label:"2022",value:"2022"},{label:"2023",value:"2023"},{label:"2024",value:"2024"},{label:"2025",value:"2025"},{label:"2026",value:"2026"},{label:"2027",value:"2027"},{label:"2028",value:"2028"},{label:"2029",value:"2029"},{label:"2030",value:"2030"}],
314
+ monthList:[{label:"1",value:"1"},{label:"2",value:"2"},{label:"3",value:"3"},{label:"4",value:"4"},{label:"5",value:"5"},{label:"6",value:"6"},{label:"7",value:"7"},{label:"8",value:"8"},{label:"9",value:"9"},{label:"10",value:"10"},{label:"11",value:"11"},{label:"12",value:"12"}],
315
+ showCreatePlan:false,
316
+ a:'1',
317
+ opt:[{label:"测试",value:"测试"}],
318
+ showCondtion:false,
319
+ userTypes:[],//用户类型
320
+ entry_status:[],
321
+ userStates:[],//用户状态
322
+ gasproperties:[],//用气性质
323
+ meter_gasbrand:[],//气表品牌
324
+ hasHousehold:[{label:"全部",value:""},{label:"已入户",value:"已入户"},{label:"未入户",value:"未入户"}],
325
+ yearCheckList:[{label:"全部",value:""},{label:"已在计划中",value:"ua.f_plan_id is not null"},{label:"未在计划中",value:"ua.f_plan_id is null"}],
326
+ checkStateList:[{label:"全部",value:""},{label:"两年内已检",value:"DATEDIFF(day,isnull(ui.f_last_check_date,'2010-01-01'),GETDATE())<=730"},{label:"两年内未检",value:"DATEDIFF(day,isnull(ui.f_last_check_date,'2010-01-01'),GETDATE())>730"},{label:"从未安检",value:"从未安检"}],
327
+ hasResidentialArea:[{label:"全部",value:""},{label:"有名称",value:"有名称"},{label:"无名称",value:"无名称"}],
328
+ sliceArea:[],
329
+ meterbooks:[],
330
+ checkBooks:[{label:'sss',value:'1-用户'},{label:'ssssss',value:'1-小区'}],
331
+ cbc:[],
332
+ areaList:[],
333
+ checkAll:false,
334
+ checkes:[],
335
+ areaen:[],//片区
336
+ excelUserCondtion:false,
337
+ uploadCodeCondition:''
338
+ }
339
+ },
340
+ props:["userlogin","bookrow","needprops","row","bookrowsdata","addcondata"],
341
+ ready(){
342
+ console.log("this.bookrow",this.bookrow)
343
+ console.log("this.row",this.row)
344
+ console.log("this.needprops",this.needprops)
345
+ this.createPlan.checker = this.needprops.checker.filter(item=>item.label == this.row.f_checker_name)[0].value
346
+ this.createPlan.f_checker_id=this.createPlan.checker.id
347
+ this.createPlan.f_checker=this.createPlan.checker.name
348
+ this.createPlan.f_usertype = this.row.f_user_type
349
+ if(this.row.f_user_type == '非民用'){
350
+ this.createPlan.f_plan_name = `${this.row.f_check_book_name}${this.createPlan.f_plan_year}年${this.createPlan.f_plan_month}月`
351
+ }else{
352
+ this.createPlan.f_plan_name = `${this.row.f_check_book_name}${this.createPlan.f_plan_year}年`
353
+ }
354
+ this.$refs.paged.$refs.criteria.model.f_user_state='正常'
355
+ this.meter_gasbrand=this.needprops.meter_gasbrand,
356
+ this.checkBooks=this.needprops.checkBooks,
357
+ this.entry_status=this.needprops.entry_status,
358
+ this.userTypes=this.needprops.userTypes,
359
+ this.userStates=this.needprops.userStates,
360
+ this.gasproperties=this.needprops.gasproperties,
361
+ this.areaList=this.needprops.areaList,
362
+ this.sliceArea=this.needprops.sliceArea,
363
+ this.cbc=this.needprops.cbc,
364
+ this.meterbooks=this.needprops.meterbooks
365
+ },
366
+ methods: {
367
+ async addNewPlan(){
368
+ this.createPlan.f_plan_type='预约计划'
369
+ this.createPlan.f_subcompany=this.userlogin.orgstr
370
+ this.createPlan.f_filialeid=this.userlogin.orgid
371
+ this.createPlan.f_create_operator=this.userlogin.name
372
+ this.createPlan.f_create_time=Util.toStandardTimeString()
373
+ this.createPlan.f_check_book_id = this.row.id
374
+ console.log(this.createPlan)
375
+ const addPlan = {
376
+ f_operator:this.userlogin.name,
377
+ f_filialeid:this.userlogin.orgid,
378
+ f_subscribe_date:'',
379
+ condition:this.model.condition,
380
+ SafeCheckSX: this.model.SafeCheckSX,
381
+ switchCheckAll:true,
382
+ checkAll:this.checkAll,
383
+ param:this.checkes,
384
+ columnName: "ua.id"
385
+ }
386
+ new HttpResetClass().load("POST",'/rs/logic/createAndAddPlan',{createPlan:this.createPlan,addPlan}).then(res=>{
387
+ if(res.data.code==200){
388
+ this.$showMessage("计划下发成功!"+(res.data.result.length>0?"有"+res.data.result.length+"条用户地址已经存在于其他计划中":""))
389
+ this.cancelCreatePlan()
390
+ }else{
391
+ this.$showMessage("计划下发失败!")
392
+ }
393
+ })
394
+ },
395
+ cancelCreatePlan(){
396
+ this.showCreatePlan = false
397
+ },
398
+ createAndSend(){
399
+ if(this.model.rows.length==0){
400
+ Vue.showMessage("未检测到列表中有用户!")
401
+ return
402
+ }
403
+ if(!this.checkAll && this.checkes.length==0){
404
+ Vue.showMessage("请先勾选你要添入到上方计划中的用户!")
405
+ return
406
+ }
407
+ this.showCreatePlan = true
408
+ },
409
+ cancel(){
410
+ this.showCondtion=false
411
+ this.excelUserCondtion=false
412
+ },
413
+ //清空用户编号
414
+ clearUserInfoId(){
415
+ this.uploadCodeCondition=''
416
+ Vue.showMessage("已清空用户编号")
417
+ },
418
+ showUploadCodeCondition(){
419
+ this.excelUserCondtion=true
420
+ },
421
+ selfSearch (args) {
422
+ if(args.model.f_last_check_state.length > 0) {
423
+ let zzcon = ''
424
+ if (Util.isEmpty(args.model.f_check_start) || Util.isEmpty(args.model.f_check_end)) {
425
+ this.$showMessage("选择安检状态时,需要选择安检时间区间!")
426
+ return
427
+ }
428
+ this.model.SafeCheckSX = ` f_offsite_time > '${args.model.f_check_start}' and f_offsite_time < '${args.model.f_check_end}'`
429
+ for (let i = 0; i < args.model.f_last_check_state.length; i++) {
430
+ if (args.model.f_last_check_state[i] == '未检') {
431
+ zzcon += ' tcp.ruhu is null '
432
+ if (i != args.model.f_last_check_state.length - 1) {
433
+ zzcon += ' or'
434
+ }
435
+ } else if (args.model.f_last_check_state[i] == '入户') {
436
+ zzcon += `tcp.ruhu > 0`
437
+ if (i != args.model.f_last_check_state.length - 1) {
438
+ zzcon += ' or'
439
+ }
440
+ } else if (args.model.f_last_check_state[i] == '拒检') {
441
+ zzcon += `(tcp.jujian > 0 and tcp.ruhu = 0 and tcp.daofang >= 0) `
442
+ if (i != args.model.f_last_check_state.length - 1) {
443
+ zzcon += ' or'
444
+ }
445
+ } else if (args.model.f_last_check_state[i] == '到访不遇') {
446
+ zzcon += `(tcp.daofang > 0 and tcp.ruhu = 0 and tcp.jujian = 0) `
447
+ if (i != args.model.f_last_check_state.length - 1) {
448
+ zzcon += ' or'
449
+ }
450
+ }
451
+ }
452
+ args.condition += `and ( ${zzcon} )`
453
+ }else{
454
+ //无条件
455
+ this.model.SafeCheckSX = ` 1 != 1 `
456
+ }
457
+ this.searchData.SafeCheckSX = this.model.SafeCheckSX
458
+ let condition1=`(ui.f_last_check_date is null or ui.f_last_check_date ='')`
459
+ let arge = args.condition.replace('从未安检',condition1)
460
+ args.condition = arge
461
+ // 上一个界面条件拼接进来
462
+ if(this.addcondata){
463
+ args.condition += this.addcondata
464
+ }
465
+ var checkallcond = ''
466
+ // 判断小区或者单位是否是多选 全选
467
+ if(this.bookrowsdata.checkAll){
468
+ if(this.row.f_user_type === '民用'){
469
+ checkallcond = ` and area.f_check_book_id = ${this.row.id} `
470
+ if(this.bookrowsdata.checkallconres){
471
+ checkallcond += ` and area.f_residential_area = '${this.bookrowsdata.checkallconres} '`
472
+ }
473
+ if(this.bookrowsdata.checkallconuse){
474
+ checkallcond += ` and area.f_use_institution = '${this.bookrowsdata.checkallconuse}' `
475
+ }
476
+ }else{
477
+ checkallcond = ` and tc.f_check_book_id = ${this.row.id} `
478
+ }
479
+
480
+ if(this.bookrowsdata.bookrows.length > 0){
481
+ this.bookrowsdata.bookrows.forEach((item) => {
482
+ if(this.row.f_user_type === '民用'){
483
+ checkallcond += ` and area.id != ${item}`
484
+ }else{
485
+ checkallcond += ` and tc.id != ${item}`
486
+ }
487
+ })
488
+ }
489
+ }else{
490
+ var nums = '('
491
+ this.bookrowsdata.bookrows.forEach((item) => {
492
+ if(this.bookrowsdata.bookrows[this.bookrowsdata.bookrows.length -1] == item){
493
+ nums += item +')'
494
+ }else{
495
+ nums += item +','
496
+ }
497
+ })
498
+ if(this.row.f_user_type === '民用'){
499
+ checkallcond += ` and area.id in ${nums}`
500
+ }else{
501
+ checkallcond += ` and tc.id in ${nums}`
502
+ }
503
+ }
504
+ args.condition += checkallcond
505
+ args.condition += ` and ui.f_filialeid='${this.userlogin.orgid}'`
506
+ if (args.model.f_residential_area == "无名称"){
507
+ args.condition +=" and (ua.f_residential_area is null or ua.f_residential_area ='')"
508
+ }else if (args.model.f_residential_area == "有名称"){
509
+ args.condition +=" and (ua.f_residential_area is not null and ua.f_residential_area !='')"
510
+ }
511
+ if(this.uploadCodeCondition){
512
+ args.condition +=` and ${this.uploadCodeCondition}`
513
+ }
514
+ this.cancel()
515
+ this.checkes=[]
516
+ this.checkAll=false
517
+ this.searchData.condition = args.condition
518
+ this.model.search(args.condition, args.model, args.condValue)
519
+ },
520
+ showUserCondition(){
521
+ this.showCondtion=true
522
+ },
523
+ setConList(){
524
+ this.entry_status=this.$appdata.getParam('安检状态') ? [{
525
+ label: '全部',
526
+ value: ''
527
+ }, ...this.$appdata.getParam('安检状态')] : [{label: '全部', value: ''}]
528
+
529
+ this.userTypes=this.$appdata.getParam('用户类型') ? [{
530
+ label: '全部',
531
+ value: ''
532
+ }, ...this.$appdata.getParam('用户类型')] : [{label: '全部', value: ''}]
533
+ this.userStates=this.$appdata.getParam('安检用户状态') ? [{
534
+ label: '全部',
535
+ value: ''
536
+ }, ...this.$appdata.getParam('安检用户状态')] : [{label: '全部', value: ''}]
537
+ this.gasproperties=this.$appdata.getParam('用气性质') ? [{
538
+ label: '全部',
539
+ value: ''
540
+ }, ...this.$appdata.getParam('用气性质')] : [{label: '全部', value: ''}]
541
+ // this.meter_classifys=this.$appdata.getParam('气表类型') ? [{
542
+ // label: '全部',
543
+ // value: ''
544
+ // }, ...this.$appdata.getParam('气表类型')] : [{label: '全部', value: ''}]
545
+ },
546
+ select_search(text, type){
547
+ //tag
548
+ let pcdText=text?` and f_residential_area like '%${text}%'`:''
549
+ if (type == 'pqId'){
550
+ if(text.length==0){
551
+ pcdText=text?` and 1=1`:''
552
+ }else {
553
+ pcdText =text?`and f_check_book_id in (${text})`:''
554
+ }
555
+
556
+ }
557
+ 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)=>{
558
+ //tag)
559
+ this.areaList=[]
560
+ this.areaList.push({label:"全部",value:""})
561
+ res.data.forEach((result)=>{
562
+ this.areaList.push({label:result.f_residential_area,value:result.f_residential_area})
563
+ //console.log('this.areaList=', JSON.stringify(this.areaList))
564
+ })
565
+ //tag)
566
+ })
567
+
568
+
569
+ },
570
+ //获取抄表册
571
+ async Mreadibook(){
572
+ this.cbc=[]
573
+ this.sliceArea=[]
574
+ let http = new HttpResetClass()
575
+ let getMeterReadingBooks = await http.load('POST','rs/logic/getMeterBooksData',
576
+ {data: {f_orgid: "('"+this.userlogin.orgid+"')"}},
577
+ {resolveMsg: null, rejectMsg: '获取失败!!!'})
578
+ this.cbc = [{label: '全部', value: ''}]
579
+ //tag
580
+ //tag)
581
+ //tag
582
+ this.meterbooks=[]
583
+ this.meterbooks=getMeterReadingBooks.data.meterbooks
584
+ this.meterbooks.forEach((res) => {
585
+ this.cbc.push({label: res.f_book_name, value: res.id})
586
+ /*if(res.f_book_slice_area){
587
+ if(this.sliceArea.indexOf(res.f_book_slice_area)<0){
588
+ this.sliceArea.push(res.f_book_slice_area)
589
+ }
590
+ }*/
591
+ })
592
+
593
+ },
594
+ //片区获取
595
+ async getSliceArea() {
596
+ let http = new HttpResetClass()
597
+ let getAllArea = await http.load('POST', '/rs/search', {
598
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
599
+ userid: this.userlogin.id
600
+ }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
601
+ this.sliceArea = [{label: '全部', value: ''}]
602
+ //tag
603
+ //tag
604
+ //tag
605
+ getAllArea.data.forEach((res) => {
606
+ if(res.parentid==this.userlogin.orgid){
607
+ this.sliceArea.push({label:res.name,value:res.name})
608
+ }
609
+ })
610
+ //tag
611
+ },
612
+ //片区改变-对应抄表册下拉重新赋值
613
+ slice_areaChange(value) {
614
+ //tag
615
+ if(!value){
616
+ this.cbc=[]
617
+ this.meterbooks.forEach((res) => {
618
+ this.cbc.push({label: res.f_book_name, value: res.id})
619
+ })
620
+ }else{
621
+ this.cbc=[]
622
+ this.meterbooks.forEach((res) => {
623
+ if(res.f_book_slice_area==value){
624
+ this.cbc.push({label: res.f_book_name, value: res.id})
625
+ }
626
+ })
627
+ }
628
+ },
629
+ isChecked(v) {
630
+ // 如果全选,不在的按选中算,否则,在的按选中算
631
+ if (this.checkAll) {
632
+ return this.checkes.indexOf(v) == -1
633
+ } else {
634
+ return this.checkes.indexOf(v) != -1
635
+ }
636
+ },
637
+ setCheckAll() {
638
+ this.checkAll=this.checkAll?false:true;
639
+ // 全选改变后,清空选中数据
640
+ this.checkes = []
641
+ },
642
+ setCheckes(id) {
643
+ let index=this.checkes.indexOf(id)
644
+ if(index<0){
645
+ this.checkes.push(id)
646
+ }else{
647
+ this.checkes.splice(index,1)
648
+ }
649
+ },
650
+ },
651
+ watch: {
652
+ 'areaen'(val) {
653
+ //console.log('val=', JSON.stringify(val))
654
+ this.select_search(val, 'pqId')
655
+ }
656
+ },
657
+ events: {
658
+ onFileUpload: function (file, res) {
659
+ //tag)
660
+ //tag)
661
+ let data = {
662
+ filepath: res.f_downloadpath
663
+ }
664
+ new HttpResetClass().load('POST','/rs/logic/safe_GetUserInfoFromExcel', {data: data}, {
665
+ resolveMsg: '导入成功!已生成条件,若要去除导入条件请点击旁边 ‘清空用户编号’ 按钮。',
666
+ rejectMsg: '导入失败'
667
+ }).then((res) => {
668
+ this.uploadCodeCondition=res.data.condition
669
+ this.excelUserCondtion = false
670
+ })
671
+ },
672
+
673
+ }
674
+ }
675
+ </script>
676
+
677
+ <style scoped>
678
+ .safe-planfont{
679
+ font-family: MicrosoftYaHei;
680
+ font-size: 15px;
681
+ font-weight: normal;
682
+ font-stretch: normal;
683
+ letter-spacing: 2px;
684
+ color: #333333;
685
+ line-height: 25px;
686
+ }
687
+ .safe-bodyfont{
688
+ font-family: MicrosoftYaHei;
689
+ font-size: 14px;
690
+ font-weight: normal;
691
+ font-stretch: normal;
692
+ letter-spacing: 0px;
693
+ color: #999999;
694
+ line-height: 30px;
695
+ }
696
+ .safe-leftplan{
697
+ height:auto;
698
+ border-bottom:1px solid #ececec;
699
+ padding: 10px 5px
700
+ }
701
+ .leftplan-center{
702
+ border-top:1px solid #ececec;
703
+ border-bottom:1px solid #ececec;
704
+ }
705
+ .safe_p{
706
+ white-space: nowrap;
707
+ overflow: hidden;
708
+ text-overflow: ellipsis;
709
+ }
710
+ .safe-div-p{
711
+ color: #4792de;
712
+ text-align: end;
713
+ padding: 8px 15px;
714
+ }
715
+ </style>
716
+ <style lang="less">
717
+ .upuserinfo_sel ul{
718
+ width: 150% !important;
719
+ }
720
+ </style>