safecheck-client 3.0.35-26 → 3.0.35-28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (245) 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/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/CheckUnplanPage.vue +56 -56
  196. package/src/components/android/Checker.vue +12 -12
  197. package/src/components/android/CheckerAnnual.vue +81 -81
  198. package/src/components/android/CheckerAvarta.vue +82 -82
  199. package/src/components/android/EquipmentInspection.vue +348 -348
  200. package/src/components/android/FootprintMap.vue +120 -120
  201. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  202. package/src/components/android/MasterMain.vue +77 -77
  203. package/src/components/android/Menu.vue +132 -132
  204. package/src/components/android/NavBottom.vue +157 -157
  205. package/src/components/android/PaperAlarm.vue +85 -85
  206. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  207. package/src/components/android/PlumberAnnual.vue +83 -83
  208. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  209. package/src/components/android/PlumberMonthly.vue +84 -84
  210. package/src/components/android/PostMap.vue +83 -83
  211. package/src/components/android/QueryCheckHistory.vue +122 -122
  212. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  213. package/src/components/android/RepairMain.vue +60 -60
  214. package/src/components/android/Repairman.vue +12 -12
  215. package/src/components/android/StationMaster.vue +12 -12
  216. package/src/components/defects/DefectModal.vue +101 -101
  217. package/src/components/defects/DevicesAndItem.vue +39 -39
  218. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  219. package/src/components/notice/NoticeForm.vue +100 -100
  220. package/src/components/notice/NoticeIssue.vue +20 -20
  221. package/src/components/paper/PicViewer.vue +18 -18
  222. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  223. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  224. package/src/components/phonestate/PostMap.vue +82 -82
  225. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  226. package/src/components/report/CheckPlanAreaList.vue +505 -505
  227. package/src/components/userfile/MeterFile.vue +145 -145
  228. package/src/components/userfile/MeterModify.vue +46 -46
  229. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  230. package/src/filiale/huaran/pc/PlanManage.vue +934 -887
  231. package/src/filiale/huaran/pc/checkUserList.vue +900 -867
  232. package/src/filiale/huaran/pc.js +28 -27
  233. package/src/main.js +33 -33
  234. package/src/plugins/LoadData.js +10 -10
  235. package/src/plugins/LoadParams.js +24 -24
  236. package/src/stores/wxconfig.js +10 -10
  237. package/src/utils/getNowDate.js +33 -33
  238. package/test/e2e/custom-assertions/elementCount.js +26 -26
  239. package/test/e2e/nightwatch.conf.js +40 -40
  240. package/test/e2e/runner.js +30 -30
  241. package/test/e2e/specs/test.js +13 -13
  242. package/test/unit/.eslintrc +5 -5
  243. package/test/unit/TestUtil.js +62 -62
  244. package/test/unit/context.html +20 -20
  245. package/test/unit/index.js +13 -13
@@ -1,867 +1,900 @@
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()">
39
- 更多条件
40
- </button>
41
- <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUploadCodeCondition()">
42
- 导入编号
43
- </button>
44
- <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.clearUserInfoId()">
45
- 清空编号
46
- </button>
47
- <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
48
- </div>
49
- <div class="form-group col-sm-1" style="float: right">
50
- <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.dragtoPlanItem()">
51
- 添入任务
52
- </button>
53
- </div>
54
- <modal :show.sync="$parent.$parent.showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
55
- <div slot="modal-header" class="modal-header">
56
- <h4 class="modal-title">
57
- 用户查询条件
58
- </h4>
59
- </div>
60
- <div slot="modal-body" class="modal-body">
61
- <div class="row">
62
- <div class="form-group col-sm-4">
63
- <label class="font_normal_body">用户类型:</label>
64
- <v-select
65
- class="select select_list"
66
- :value.sync="model.f_user_type"
67
- v-model="model.f_user_type"
68
- :options='$parent.$parent.userTypes'
69
- placeholder='请选择'
70
- condition="uf.f_user_type='{}'"
71
- :search="false"
72
- close-on-select
73
- value-single
74
- >
75
- </v-select>
76
- </div>
77
- <div class="form-group col-sm-4">
78
- <label class="font_normal_body">用户状态:</label>
79
- <v-select
80
- class="select select_list"
81
- :value.sync="model.f_user_state"
82
- v-model="model.f_user_state"
83
- :options='$parent.$parent.userStates'
84
- placeholder='请选择'
85
- condition="ui.f_user_state='{}'"
86
- :search="false"
87
- close-on-select
88
- value-single
89
- >
90
- </v-select>
91
- </div>
92
- <div class="form-group col-sm-4">
93
- <label class="font_normal_body">用气性质:</label>
94
- <v-select
95
- class="select select_list"
96
- :value.sync="model.f_gasproperties"
97
- v-model="model.f_gasproperties"
98
- :options='$parent.$parent.gasproperties'
99
- placeholder='请选择'
100
- condition="uf.f_gasproperties='{}'"
101
- :search="false"
102
- close-on-select
103
- value-single
104
- >
105
- </v-select>
106
- </div>
107
- <div class="form-group col-sm-4">
108
- <label class="font_normal_body">气表类型:</label>
109
- <v-select
110
- class="select select_list"
111
- :value.sync="model.meter_classify"
112
- v-model="model.meter_classify"
113
- :options='$parent.$parent.meter_classifys'
114
- placeholder='请选择'
115
- condition="uf.F_METER_CLASSIFY='{}'"
116
- :search="false"
117
- close-on-select
118
- value-single
119
- >
120
- </v-select>
121
- </div>
122
- <div class="form-group col-sm-4">
123
- <label class="font_normal_body">街&emsp;&emsp;道:</label>
124
- <v-select
125
- class="select select_list"
126
- :value.sync="model.f_street"
127
- v-model="model.f_street"
128
- :options='$parent.$parent.streets'
129
- placeholder='请选择'
130
- condition="ua.f_street_id='{}'"
131
- close-on-select
132
- value-single
133
- >
134
- </v-select>
135
- </div>
136
- <!--<div class="form-group col-sm-4" >
137
- <label class="font_normal_body">小区名称:</label>
138
- <input type="text" class="input_search" v-model="model.f_userinfo_code"
139
- style="width: 60%" placeholder="请选择" condition="ua.f_residential_area = '{}'">
140
- </div>-->
141
- <div class="form-group col-sm-4">
142
- <label class="font_normal_body">楼&ensp;栋&ensp;号:</label>
143
- <input type="text" class="input_search" v-model="model.f_building"
144
- style="width: 60%" placeholder="请选择" condition="ua.f_building='{}'">
145
- </div>
146
- <div class="form-group col-sm-4">
147
- <label class="font_normal_body">单&ensp;元&ensp;号:</label>
148
- <input type="text" class="input_search" v-model="model.f_unit"
149
- style="width: 60%" placeholder="请选择" condition="ua.f_unit='{}'">
150
- </div>
151
- <div class="form-group col-sm-4">
152
- <label class="font_normal_body">楼&ensp;层&ensp;号:</label>
153
- <input type="text" class="input_search" v-model="model.f_floor"
154
- style="width: 60%" placeholder="请选择" condition="ua.f_floor='{}'">
155
- </div>
156
- <div class="form-group col-sm-4">
157
- <label class="font_normal_body">开户起始:</label>
158
- <datepicker
159
- placeholder='请选择'
160
- style="width:60%"
161
- :disabled-days-of-week="[]"
162
- :format="'yyyy-MM-dd'"
163
- :show-rest-button="reset"
164
- :value.sync="model.f_startfile_time"
165
- v-model="model.f_startfile_time"
166
- condition="ui.f_createfile_date >= '{} 00:00:00'">
167
- </datepicker>
168
- </div>
169
- <div class="form-group col-sm-4">
170
- <label class="font_normal_body">开户截止:</label>
171
- <datepicker
172
- placeholder='请选择'
173
- :disabled-days-of-week="[]"
174
- style="width:60%"
175
- :format="'yyyy-MM-dd'"
176
- :show-rest-button="reset"
177
- :value.sync="model.f_endfile_time"
178
- v-model="model.f_endfile_time"
179
- condition="ui.f_createfile_date <= '{} 23:59:59'">
180
- </datepicker>
181
- </div>
182
- <div class="form-group col-sm-4">
183
- <label class="font_normal_body">表&ensp;箱&ensp;号:</label>
184
- <input type="text" class="input_search" v-model="model.f_metertitles"
185
- style="width: 60%" placeholder="请输入" condition="uf.f_metertitles='{}'">
186
- </div>
187
- <div class="form-group col-sm-4">
188
- <label class="font_normal_body">用户电话:</label>
189
- <input type="text" class="input_search" v-model="model.f_user_phone"
190
- style="width: 60%" placeholder="请输入" condition="ui.f_user_phone='{}'">
191
- </div>
192
- <div class="form-group col-sm-4">
193
- <label class="font_normal_body">片&ensp;&ensp;&ensp;&ensp;区:</label>
194
- <v-select
195
- class="select select_list"
196
- :value.sync="model.f_book_slice_area"
197
- v-model="model.f_book_slice_area"
198
- :options='$parent.$parent.sliceArea'
199
- @change="$parent.$parent.slice_areaChange(model.f_book_slice_area)"
200
- placeholder='请选择'
201
- condition="ua.f_slice_area ='{}'"
202
- close-on-select
203
- value-single
204
- >
205
- </v-select>
206
- </div>
207
- <div class="form-group col-sm-4">
208
- <label class="font_normal_body">抄&ensp;表&ensp;册:</label>
209
- <v-select
210
- class="select select_list"
211
- :value.sync="model.f_meter_book_num"
212
- v-model="model.f_meter_book_num"
213
- :options='$parent.$parent.cbc'
214
- placeholder='请选择'
215
- condition="uf.f_meter_book_num='{}'"
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="model.yearCheck"
226
- v-model="model.yearCheck"
227
- :options='$parent.$parent.yearCheckList'
228
- placeholder='请选择'
229
- condition="{}"
230
- :search="false"
231
- close-on-select
232
- value-single
233
- >
234
- </v-select>
235
- </div>
236
- <div class="form-group col-sm-4">
237
- <label class="font_normal_body">安检起始:</label>
238
- <datepicker
239
- placeholder='请选择'
240
- style="width:60%"
241
- :disabled-days-of-week="[]"
242
- :format="'yyyy-MM-dd'"
243
- :show-rest-button="reset"
244
- :value.sync="model.f_start_time"
245
- v-model="model.f_start_time"
246
- >
247
- </datepicker>
248
- </div>
249
- <div class="form-group col-sm-4">
250
- <label class="font_normal_body">安检截止:</label>
251
- <datepicker
252
- placeholder='请选择'
253
- :disabled-days-of-week="[]"
254
- style="width:60%"
255
- :format="'yyyy-MM-dd'"
256
- :show-rest-button="reset"
257
- :value.sync="model.f_end_time"
258
- v-model="model.f_end_time"
259
- >
260
- </datepicker>
261
- </div>
262
- <div class="form-group col-sm-4">
263
- <label class="font_normal_body">安检状态:</label>
264
- <v-select
265
- class="select select_list"
266
- :value.sync="model.f_last_check_state"
267
- v-model="model.f_last_check_state"
268
- :options='$parent.$parent.entry_status'
269
- placeholder='请选择'
270
- :search="false"
271
- close-on-select
272
- value-single
273
- >
274
- </v-select>
275
- </div>
276
- <div class="form-group col-sm-4">
277
- <label class="font_normal_body">安&ensp;检&ensp;册:</label>
278
- <v-select
279
- class="select select_list"
280
- :value.sync="model.checkBook"
281
- v-model="model.checkBook"
282
- :options='$parent.$parent.checkBooks'
283
- placeholder='请选择'
284
- :search="false"
285
- close-on-select
286
- value-single
287
- >
288
- </v-select>
289
- </div>
290
- <div class="form-group col-sm-4">
291
- <label class="font_normal_body">通气起始:</label>
292
- <datepicker
293
- placeholder='通气开始时间'
294
- style="width:60%"
295
- :disabled-days-of-week="[]"
296
- :format="'yyyy-MM-dd'"
297
- :show-rest-button="reset"
298
- :value.sync="model.f_startgas_time"
299
- v-model="model.f_startgas_time"
300
- condition="ui.f_uservent_date >= '{} 00:00:00'">
301
- </datepicker>
302
- </div>
303
- <div class="form-group col-sm-4">
304
- <label class="font_normal_body">通气截止:</label>
305
- <datepicker
306
- placeholder='通气结束时间'
307
- :disabled-days-of-week="[]"
308
- style="width:60%"
309
- :format="'yyyy-MM-dd'"
310
- :show-rest-button="reset"
311
- :value.sync="model.f_endgas_time"
312
- v-model="model.f_endgas_time"
313
- condition="ui.f_uservent_date <= '{} 23:59:59'">
314
- </datepicker>
315
- </div>
316
- <!--<div class="form-group col-sm-4" >
317
- <label class="font_normal_body">入户情况:</label>
318
- <v-select
319
- class="select select_list"
320
- :value.sync="model.f_hasHousehold"
321
- v-model="model.f_hasHousehold"
322
- :options='$parent.$parent.hasHousehold'
323
- placeholder='请选择'
324
- close-on-select
325
- :search="false"
326
- value-single
327
- >
328
- </v-select>
329
- </div>-->
330
-
331
- </div>
332
- </div>
333
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
334
- <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
335
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
336
- </div>
337
- </modal>
338
- <modal :show.sync="$parent.$parent.excelUserCondtion" width="500px" v-ref:modal1>
339
- <div slot="modal-header" class="modal-header">
340
- <h4 class="modal-title">
341
- 导入用户编号
342
- </h4>
343
- </div>
344
- <div slot="modal-body" class="modal-body">
345
- <div class="row">
346
- <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success"
347
- style="border-radius: 2px;"
348
- action="rs/file/uploadFile" tagname="档案信息导入" v-ref:file :headers="headers"
349
- multiple></file-upload>
350
- <img src="../../../assets/Excelformat.png" style="width: 100%"/>
351
- </div>
352
- </div>
353
- <footer slot="modal-footer" class="modal-footer">
354
- </footer>
355
- </modal>
356
- <!--<div class="form-group col-sm-4 button-range" >
357
-
358
- <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
359
- <export-excel-safe :data="$parent.$parent.exportParameter"
360
- :field="$parent.$parent.excelHeaders"
361
- sqlurl="rs/logic/SafeExportExcel" sql-name="planItem"
362
- template-name='安检任务明细' :choose-col="true">
363
- </export-excel-safe>
364
-
365
- </div>-->
366
- </div>
367
- </div>
368
- </criteria>
369
- <data-grid :model="model" partial='list' class="table_sy">
370
-
371
- <template partial='head'>
372
- <tr>
373
- <th>
374
- <nobr><input type="checkbox" onClick="event.cancelBubble = true"
375
- :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/>
376
- 全选
377
- </nobr>
378
- </th>
379
- <th>
380
- <nobr>用户编号</nobr>
381
- </th>
382
- <th>
383
- <nobr>用户名称</nobr>
384
- </th>
385
- <th>
386
- <nobr>用户类型</nobr>
387
- </th>
388
- <th>
389
- <nobr>用户电话</nobr>
390
- </th>
391
- <th>
392
- <nobr>表具类型</nobr>
393
- </th>
394
- <th>
395
- <nobr>小区名称</nobr>
396
- </th>
397
- <th>
398
- <nobr>安检册</nobr>
399
- </th>
400
- <th>
401
- <nobr>抄表册</nobr>
402
- </th>
403
- <th title="当前所在的安检任务名称">
404
- <nobr>所属任务</nobr>
405
- </th>
406
- <th title="最后一次安检日期">
407
- <nobr>安检日期</nobr>
408
- </th>
409
- <th>
410
- <nobr>首次通气时间</nobr>
411
- </th>
412
- <th>
413
- <nobr>详细地址</nobr>
414
- </th>
415
- </tr>
416
- </template>
417
- <template partial='body'>
418
- <td style="text-align: center;white-space:nowrap;"><input type="checkbox" onClick="event.cancelBubble = true"
419
- :checked="$parent.$parent.$parent.isChecked(row.id)"
420
- @change="$parent.$parent.$parent.setCheckes(row.id)"/>
421
- </td>
422
- <td style="text-align: center">
423
- <nobr>{{ row.f_userinfo_code }}</nobr>
424
- </td>
425
- <td style="text-align: center">
426
- <nobr>{{ row.f_user_name }}</nobr>
427
- </td>
428
- <td style="text-align: center">
429
- <nobr>{{ row.f_user_type }}</nobr>
430
- </td>
431
- <td style="text-align: center">
432
- <nobr>{{ row.f_user_phone }}</nobr>
433
- </td>
434
- <td style="text-align: center">
435
- <nobr>{{ row.f_meter_classify }}</nobr>
436
- </td>
437
- <td style="text-align: center">
438
- <nobr>{{ row.f_residential_area }}</nobr>
439
- </td>
440
- <td style="text-align: center">
441
- <nobr>{{ row.f_book_slice_area }}</nobr>
442
- </td>
443
- <td style="text-align: center">
444
- <nobr>{{ row.f_book_name }}</nobr>
445
- </td>
446
- <td style="text-align: center">
447
- <nobr>{{ row.f_plan_name }}</nobr>
448
- </td>
449
- <td style="text-align: center">
450
- <nobr>{{ row.f_last_check_date }}</nobr>
451
- </td>
452
- <td style="text-align: center">
453
- <nobr>{{ row.f_uservent_date }}</nobr>
454
- </td>
455
- <td style="text-align: center">
456
- <nobr>{{ row.f_address }}</nobr>
457
- </td>
458
- </template>
459
- </data-grid>
460
- </criteria-paged>
461
- </div>
462
- </template>
463
-
464
- <script>
465
- import {HttpResetClass, PagedList} from "vue-client";
466
- import Vue from "vue";
467
-
468
- export default {
469
- name: "PlanManage",
470
- title: '任务管理',
471
- data() {
472
- return {
473
- model: new PagedList('/rs/sql/FetchUserFileByOrgNoRuHuSXQ', 100, {
474
- "orderitem": "'f_residential_area,f_building,f_unit,f_floor,f_room'",
475
- "f_usertype": "''",
476
- "month": "''",
477
- "SafeCheckSX": {"f_check_start": '', "f_check_end": ''},
478
- "SafeCheckCQ": "''",
479
- "startday": "''",
480
- "endday": "''"
481
- }),
482
- a: '1',
483
- opt: [{label: "测试", value: "测试"}],
484
- showCondtion: false,
485
- userTypes: [],//用户类型
486
- userStates: [],//用户状态
487
- gasproperties: [],//用气性质
488
- meter_classifys: [],//气表类型
489
- hasHousehold: [{label: "全部", value: ""}, {label: "已入户", value: "已入户"}, {
490
- label: "未入户",
491
- value: "未入户"
492
- }],
493
- yearCheckList: [{label: "全部", value: ""}, {
494
- label: "已在任务中",
495
- value: "ua.f_plan_id is not null"
496
- }, {label: "未在任务中", value: "ua.f_plan_id is null"}],
497
- entry_status: this.$appdata.getParam('安检状态') ? [{
498
- label: '全部',
499
- value: ''
500
- }, ...this.$appdata.getParam('安检状态')] : [{label: '全部', value: ''}],
501
- sliceArea: [],
502
- meterbooks: [],
503
- // hasCheckBooks:'否',
504
- checkBooks: [],
505
- cbc: [],
506
- areaList: [],
507
- checkAll: false,
508
- checkes: [],
509
- excelUserCondtion: false,
510
- uploadCodeCondition: '',
511
- streets: []
512
- }
513
- },
514
- props: ["selectplan", "userlogin"],
515
- ready() {
516
- this.$refs.paged.$refs.criteria.model.f_user_state = '正常'
517
- // this.hasCheckBooks=this.$appdata.getSingleValue('是否使用安检册')
518
- // this.$refs.paged.$refs.criteria.model.f_endfile_time=Util.toStartDateYearString()
519
- //this.$refs.paged.$refs.criteria.model.f_hasHousehold='未入户'
520
- this.getCheckBook()
521
- this.setConList()
522
- this.loadpage()
523
-
524
- },
525
- methods: {
526
- getCheckBook() {
527
- this.checkBooks = []
528
- new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
529
- data: {
530
- items: 'id,f_check_book_name,f_check_book_type',
531
- tablename: 't_check_book',
532
- condition: `f_orgid = '${this.userlogin.orgid}'`,
533
- orderitem: 'id desc'
534
- }
535
- }, {resolveMsg: null, rejectMsg: null}).then(res => {
536
- this.checkBooks.push({label: '全部', value: ''})
537
- res.data.forEach(ress => {
538
- this.checkBooks.push({
539
- label: ress.f_check_book_name,
540
- value: `${ress.id}-${ress.f_check_book_type}`
541
- })
542
- })
543
- })
544
- },
545
- loadpage() {
546
- this.select_search()
547
- this.select_street()
548
- this.Mreadibook()
549
- this.getSliceArea()
550
- },
551
- cancel() {
552
- this.showCondtion = false
553
- this.excelUserCondtion = false
554
- },
555
- //清空用户编号
556
- clearUserInfoId() {
557
- this.uploadCodeCondition = ''
558
- Vue.showMessage("已清空用户编号")
559
- },
560
- showUploadCodeCondition() {
561
- this.excelUserCondtion = true
562
- },
563
- selfSearch(args) {
564
- //tag)
565
- args.condition += ` and ui.f_filialeid='${this.userlogin.orgid}'`
566
- /*if(args.model.f_hasHousehold=='已入户'){
567
- 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='入户'`
568
- }else if(args.model.f_hasHousehold=='未入户'){
569
- 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,'未入户')!='入户')`
570
- }*/
571
-
572
- if (args.model.f_last_check_state == '未检') {
573
- let nocheckcon = 'and ( ui.f_last_check_date is null '
574
- if (args.model.f_start_time) {
575
- nocheckcon += ` or ui.f_last_check_date <='${args.model.f_start_time} 00:00:00' `
576
- }
577
- if (args.model.f_end_time) {
578
- nocheckcon += ` or ui.f_last_check_date >='${args.model.f_end_time} 23:59:59' `
579
- }
580
- nocheckcon += ')'
581
- args.condition += nocheckcon
582
- } else {
583
- if (args.model.f_last_check_state) {
584
- args.condition += ` and ui.f_last_check_state = '${args.model.f_last_check_state}'`
585
- }
586
- if (args.model.f_start_time) {
587
- args.condition += ` and ui.f_last_check_date >='${args.model.f_start_time} 00:00:00' `
588
- }
589
- if (args.model.f_end_time) {
590
- args.condition += ` and ui.f_last_check_date <='${args.model.f_end_time} 23:59:59' `
591
- }
592
- }
593
-
594
- if (args.model.checkBook) {
595
- let arr = args.model.checkBook.split('-')
596
- if (arr[1] == '用户') {
597
- args.condition += ` and ua.f_check_book_id='${arr[0]}'`
598
- } else {
599
- args.condition += ` and area.f_check_book_id=${arr[0]} and ua.f_check_book_id is null`
600
- }
601
- }
602
- if (this.uploadCodeCondition) {
603
- args.condition += ` and ${this.uploadCodeCondition}`
604
- }
605
- this.cancel()
606
- this.checkes = []
607
- this.checkAll = false
608
- this.model.search(args.condition, args.model, args.condValue)
609
- },
610
- showUserCondition() {
611
- this.showCondtion = true
612
- },
613
- setConList() {
614
- this.userTypes = this.$appdata.getParam('用户类型') ? [{
615
- label: '全部',
616
- value: ''
617
- }, ...this.$appdata.getParam('用户类型')] : [{label: '全部', value: ''}]
618
-
619
- this.userStates = this.$appdata.getParam('安检用户状态') ? [{
620
- label: '全部',
621
- value: ''
622
- }, ...this.$appdata.getParam('安检用户状态')] : [{label: '全部', value: ''}]
623
- this.gasproperties = this.$appdata.getParam('用气性质') ? [{
624
- label: '全部',
625
- value: ''
626
- }, ...this.$appdata.getParam('用气性质')] : [{label: '全部', value: ''}]
627
- this.meter_classifys = this.$appdata.getParam('气表类型') ? [{
628
- label: '全部',
629
- value: ''
630
- }, ...this.$appdata.getParam('气表类型')] : [{label: '全部', value: ''}]
631
- },
632
- select_search(text) {
633
- //tag
634
- let pcdText = text ? ` and f_residential_area like '%${text}%'` : ''
635
- new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
636
- data: {
637
- items: "*",
638
- tablename: "t_area",
639
- orderitem: "id",
640
- condition: `f_orgid = '${this.userlogin.orgid}' ${pcdText} `
641
- }
642
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
643
- //tag)
644
- if (res.data.length > 0) {
645
- this.areaList = []
646
- this.areaList.push({label: "全部", value: ""})
647
- res.data.forEach((result) => {
648
- this.areaList.push({label: result.f_residential_area, value: result.f_residential_area})
649
- })
650
- }
651
- //tag)
652
- })
653
- },
654
- select_street() {
655
- //tag
656
- new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
657
- data: {
658
- items: "id,f_street",
659
- tablename: "t_street",
660
- orderitem: "id",
661
- condition: `f_orgid = '${this.userlogin.orgid}'`
662
- }
663
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
664
- //tag)
665
- if (res.data.length > 0) {
666
- this.streets = []
667
- this.streets.push({label: "全部", value: ""})
668
- res.data.forEach((result) => {
669
- this.streets.push({label: result.f_street, value: result.id})
670
- })
671
- }
672
- })
673
- },
674
- //获取抄表册
675
- async Mreadibook() {
676
- this.cbc = []
677
- this.sliceArea = []
678
- let http = new HttpResetClass()
679
- let getMeterReadingBooks = await http.load('POST', 'rs/logic/getMeterBooksData',
680
- {data: {f_orgid: "('" + this.userlogin.orgid + "')"}},
681
- {resolveMsg: null, rejectMsg: '获取失败!!!'})
682
- this.cbc = [{label: '全部', value: ''}]
683
- //tag
684
- //tag)
685
- //tag
686
- this.meterbooks = []
687
- this.meterbooks = getMeterReadingBooks.data.meterbooks
688
- this.meterbooks.forEach((res) => {
689
- this.cbc.push({label: res.f_book_name, value: res.id})
690
- /*if(res.f_book_slice_area){
691
- if(this.sliceArea.indexOf(res.f_book_slice_area)<0){
692
- this.sliceArea.push(res.f_book_slice_area)
693
- }
694
- }*/
695
- })
696
-
697
- },
698
- //安检册获取
699
- async getSliceArea() {
700
- let http = new HttpResetClass()
701
- let getAllArea = await http.load('POST', '/rs/search', {
702
- source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
703
- userid: this.userlogin.id
704
- }, {resolveMsg: null, rejectMsg: '获取安检册出错!!!'})
705
- this.sliceArea = [{label: '全部', value: ''}]
706
- //tag
707
- //tag
708
- //tag
709
- getAllArea.data.forEach((res) => {
710
- if (res.parentid == this.userlogin.orgid) {
711
- this.sliceArea.push({label: res.name, value: res.name})
712
- }
713
- })
714
- //tag
715
- },
716
- //安检册改变-对应抄表册下拉重新赋值
717
- slice_areaChange(value) {
718
- //tag
719
- if (!value) {
720
- this.cbc = []
721
- this.meterbooks.forEach((res) => {
722
- this.cbc.push({label: res.f_book_name, value: res.id})
723
- })
724
- } else {
725
- this.cbc = []
726
- this.meterbooks.forEach((res) => {
727
- if (res.f_book_slice_area == value) {
728
- this.cbc.push({label: res.f_book_name, value: res.id})
729
- }
730
- })
731
- }
732
- },
733
- isChecked(v) {
734
- // 如果全选,不在的按选中算,否则,在的按选中算
735
- if (this.checkAll) {
736
- return this.checkes.indexOf(v) == -1
737
- } else {
738
- return this.checkes.indexOf(v) != -1
739
- }
740
- },
741
- setCheckAll() {
742
- this.checkAll = this.checkAll ? false : true;
743
- // 全选改变后,清空选中数据
744
- this.checkes = []
745
- },
746
- setCheckes(id) {
747
- let index = this.checkes.indexOf(id)
748
- if (index < 0) {
749
- this.checkes.push(id)
750
- } else {
751
- this.checkes.splice(index, 1)
752
- }
753
- },
754
- //将客户信息拖至任务中
755
- async dragtoPlanItem() {
756
- if (this.model.rows.length == 0) {
757
- Vue.showMessage("未检测到列表中有用户!")
758
- return
759
- }
760
- if (!this.checkAll && this.checkes.length == 0) {
761
- Vue.showMessage("请先勾选你要添入到上方任务中的用户!")
762
- return
763
- }
764
- if (this.selectplan && this.selectplan.id) {
765
- this.$parent.isSend = true
766
- try {
767
- let res = await new HttpResetClass().load("POST", "/rs/logic/AddCheckPlanItem", {
768
- data: {
769
- f_operator: this.userlogin.name,
770
- f_plan_id: this.selectplan.id,
771
- f_safecheck_type: this.selectplan.f_safecheck_type,
772
- f_filialeid: this.userlogin.orgid,
773
- f_subscribe_date: '',
774
- condition: this.model.condition,
775
- switchCheckAll: true,
776
- checkAll: this.checkAll,
777
- param: this.checkes,
778
- columnName: "ua.id"
779
- }
780
- }, {resolveMsg: null, rejectMsg: null})
781
- //tag+"---"+res.data.result.length)
782
- this.$parent.isSend = false
783
- if (res.data.code == 200) {
784
- //alert("添加成功!有"+res.data.result.length+"条用户地址已经存在于其他任务中: \n"+res.data.result.reduce((c,v)=>{c += v.f_user_name+":"+v.f_address+"\n"}),0)
785
- this.$showMessage("添加成功!" + (res.data.result.length > 0 ? "有" + res.data.result.length + "条用户地址已经存在于其他任务中" : ""))
786
- this.$parent.refresh()
787
- } else {
788
- this.$showMessage("添加失败!")
789
- }
790
- } catch (e) {
791
- this.$showMessage("添加失败!")
792
- }
793
- } else {
794
- this.$parent.isSend = false
795
- this.$showMessage("请先打开一个任务再进行操作")
796
- }
797
- }
798
- },
799
- events: {
800
- onFileUpload: function (file, res) {
801
- //tag)
802
- //tag)
803
- let data = {
804
- filepath: res.f_downloadpath
805
- }
806
- new HttpResetClass().load('POST', '/rs/logic/safe_GetUserInfoFromExcel', {data: data}, {
807
- resolveMsg: '导入成功!已生成条件,若要去除导入条件请点击旁边 ‘清空用户编号’ 按钮。',
808
- rejectMsg: '导入失败'
809
- }).then((res) => {
810
- this.uploadCodeCondition = res.data.condition
811
- this.excelUserCondtion = false
812
- })
813
- },
814
-
815
- }
816
- }
817
- </script>
818
-
819
- <style scoped>
820
- .safe-planfont {
821
- font-family: MicrosoftYaHei;
822
- font-size: 15px;
823
- font-weight: normal;
824
- font-stretch: normal;
825
- letter-spacing: 2px;
826
- color: #333333;
827
- line-height: 25px;
828
- }
829
-
830
- .safe-bodyfont {
831
- font-family: MicrosoftYaHei;
832
- font-size: 14px;
833
- font-weight: normal;
834
- font-stretch: normal;
835
- letter-spacing: 0px;
836
- color: #999999;
837
- line-height: 30px;
838
- }
839
-
840
- .safe-leftplan {
841
- height: auto;
842
- border-bottom: 1px solid #ececec;
843
- padding: 10px 5px
844
- }
845
-
846
- .leftplan-center {
847
- border-top: 1px solid #ececec;
848
- border-bottom: 1px solid #ececec;
849
- }
850
-
851
- .safe_p {
852
- white-space: nowrap;
853
- overflow: hidden;
854
- text-overflow: ellipsis;
855
- }
856
-
857
- .safe-div-p {
858
- color: #4792de;
859
- text-align: end;
860
- padding: 8px 15px;
861
- }
862
- </style>
863
- <style lang="less">
864
- .upuserinfo_sel ul {
865
- width: 150% !important;
866
- }
867
- </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-1 upuserinfo_sel">
38
+ <v-select class="select select_list"
39
+ :width="'95%'"
40
+ class="select select_list"
41
+ :value.sync="model.checkBook"
42
+ v-model="model.checkBook"
43
+ :options='$parent.$parent.checkBooks'
44
+ placeholder='安&ensp;检&ensp;册'
45
+ :multiple="true"
46
+ >
47
+ </v-select>
48
+ </div>
49
+ <div class="form-group col-sm-4">
50
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUserCondition()">
51
+ 更多条件
52
+ </button>
53
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.showUploadCodeCondition()">
54
+ 导入编号
55
+ </button>
56
+ <button class="button_new" style="margin-right: 10px" @click="$parent.$parent.clearUserInfoId()">
57
+ 清空编号
58
+ </button>
59
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
60
+ </div>
61
+ <div class="form-group col-sm-1" style="float: right">
62
+ <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.dragtoPlanItem()">
63
+ 添入任务
64
+ </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">用户类型:</label>
76
+ <v-select
77
+ class="select select_list"
78
+ :value.sync="model.f_user_type"
79
+ v-model="model.f_user_type"
80
+ :options='$parent.$parent.userTypes'
81
+ placeholder='请选择'
82
+ condition="uf.f_user_type='{}'"
83
+ :search="false"
84
+ close-on-select
85
+ value-single
86
+ >
87
+ </v-select>
88
+ </div>
89
+ <div class="form-group col-sm-4">
90
+ <label class="font_normal_body">用户状态:</label>
91
+ <v-select
92
+ class="select select_list"
93
+ :value.sync="model.f_user_state"
94
+ v-model="model.f_user_state"
95
+ :options='$parent.$parent.userStates'
96
+ placeholder='请选择'
97
+ condition="ui.f_user_state='{}'"
98
+ :search="false"
99
+ close-on-select
100
+ value-single
101
+ >
102
+ </v-select>
103
+ </div>
104
+ <div class="form-group col-sm-4">
105
+ <label class="font_normal_body">用气性质:</label>
106
+ <v-select
107
+ class="select select_list"
108
+ :value.sync="model.f_gasproperties"
109
+ v-model="model.f_gasproperties"
110
+ :options='$parent.$parent.gasproperties'
111
+ placeholder='请选择'
112
+ condition="uf.f_gasproperties='{}'"
113
+ :search="false"
114
+ close-on-select
115
+ value-single
116
+ >
117
+ </v-select>
118
+ </div>
119
+ <div class="form-group col-sm-4">
120
+ <label class="font_normal_body">气表类型:</label>
121
+ <v-select
122
+ class="select select_list"
123
+ :value.sync="model.meter_classify"
124
+ v-model="model.meter_classify"
125
+ :options='$parent.$parent.meter_classifys'
126
+ placeholder='请选择'
127
+ condition="uf.F_METER_CLASSIFY='{}'"
128
+ :search="false"
129
+ close-on-select
130
+ value-single
131
+ >
132
+ </v-select>
133
+ </div>
134
+ <div class="form-group col-sm-4">
135
+ <label class="font_normal_body">街&emsp;&emsp;道:</label>
136
+ <v-select
137
+ class="select select_list"
138
+ :value.sync="model.f_street"
139
+ v-model="model.f_street"
140
+ :options='$parent.$parent.streets'
141
+ placeholder='请选择'
142
+ condition="ua.f_street_id='{}'"
143
+ close-on-select
144
+ value-single
145
+ >
146
+ </v-select>
147
+ </div>
148
+ <!--<div class="form-group col-sm-4" >
149
+ <label class="font_normal_body">小区名称:</label>
150
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
151
+ style="width: 60%" placeholder="请选择" condition="ua.f_residential_area = '{}'">
152
+ </div>-->
153
+ <div class="form-group col-sm-4">
154
+ <label class="font_normal_body">楼&ensp;栋&ensp;号:</label>
155
+ <input type="text" class="input_search" v-model="model.f_building"
156
+ style="width: 60%" placeholder="请选择" condition="ua.f_building='{}'">
157
+ </div>
158
+ <div class="form-group col-sm-4">
159
+ <label class="font_normal_body">单&ensp;元&ensp;号:</label>
160
+ <input type="text" class="input_search" v-model="model.f_unit"
161
+ style="width: 60%" placeholder="请选择" condition="ua.f_unit='{}'">
162
+ </div>
163
+ <div class="form-group col-sm-4">
164
+ <label class="font_normal_body">楼&ensp;层&ensp;号:</label>
165
+ <input type="text" class="input_search" v-model="model.f_floor"
166
+ style="width: 60%" placeholder="请选择" condition="ua.f_floor='{}'">
167
+ </div>
168
+ <div class="form-group col-sm-4">
169
+ <label class="font_normal_body">开户起始:</label>
170
+ <datepicker
171
+ placeholder='请选择'
172
+ style="width:60%"
173
+ :disabled-days-of-week="[]"
174
+ :format="'yyyy-MM-dd'"
175
+ :show-rest-button="reset"
176
+ :value.sync="model.f_startfile_time"
177
+ v-model="model.f_startfile_time"
178
+ condition="ui.f_createfile_date >= '{} 00:00:00'">
179
+ </datepicker>
180
+ </div>
181
+ <div class="form-group col-sm-4">
182
+ <label class="font_normal_body">开户截止:</label>
183
+ <datepicker
184
+ placeholder='请选择'
185
+ :disabled-days-of-week="[]"
186
+ style="width:60%"
187
+ :format="'yyyy-MM-dd'"
188
+ :show-rest-button="reset"
189
+ :value.sync="model.f_endfile_time"
190
+ v-model="model.f_endfile_time"
191
+ condition="ui.f_createfile_date <= '{} 23:59:59'">
192
+ </datepicker>
193
+ </div>
194
+ <div class="form-group col-sm-4">
195
+ <label class="font_normal_body">表&ensp;箱&ensp;号:</label>
196
+ <input type="text" class="input_search" v-model="model.f_metertitles"
197
+ style="width: 60%" placeholder="请输入" condition="uf.f_metertitles='{}'">
198
+ </div>
199
+ <div class="form-group col-sm-4">
200
+ <label class="font_normal_body">用户电话:</label>
201
+ <input type="text" class="input_search" v-model="model.f_user_phone"
202
+ style="width: 60%" placeholder="请输入" condition="ui.f_user_phone='{}'">
203
+ </div>
204
+ <div class="form-group col-sm-4">
205
+ <label class="font_normal_body">片&ensp;&ensp;&ensp;&ensp;区:</label>
206
+ <v-select
207
+ class="select select_list"
208
+ :value.sync="model.f_book_slice_area"
209
+ v-model="model.f_book_slice_area"
210
+ :options='$parent.$parent.sliceArea'
211
+ @change="$parent.$parent.slice_areaChange(model.f_book_slice_area)"
212
+ placeholder='请选择'
213
+ condition="ua.f_slice_area ='{}'"
214
+ close-on-select
215
+ value-single
216
+ >
217
+ </v-select>
218
+ </div>
219
+ <div class="form-group col-sm-4">
220
+ <label class="font_normal_body">抄&ensp;表&ensp;册:</label>
221
+ <v-select
222
+ class="select select_list"
223
+ :value.sync="model.f_meter_book_num"
224
+ v-model="model.f_meter_book_num"
225
+ :options='$parent.$parent.cbc'
226
+ placeholder='请选择'
227
+ condition="uf.f_meter_book_num='{}'"
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="model.yearCheck"
238
+ v-model="model.yearCheck"
239
+ :options='$parent.$parent.yearCheckList'
240
+ placeholder='请选择'
241
+ condition="{}"
242
+ :search="false"
243
+ close-on-select
244
+ value-single
245
+ >
246
+ </v-select>
247
+ </div>
248
+ <div class="form-group col-sm-4">
249
+ <label class="font_normal_body">安检起始:</label>
250
+ <datepicker
251
+ placeholder='请选择'
252
+ style="width:60%"
253
+ :disabled-days-of-week="[]"
254
+ :format="'yyyy-MM-dd'"
255
+ :show-rest-button="reset"
256
+ :value.sync="model.f_start_time"
257
+ v-model="model.f_start_time"
258
+ >
259
+ </datepicker>
260
+ </div>
261
+ <div class="form-group col-sm-4">
262
+ <label class="font_normal_body">安检截止:</label>
263
+ <datepicker
264
+ placeholder='请选择'
265
+ :disabled-days-of-week="[]"
266
+ style="width:60%"
267
+ :format="'yyyy-MM-dd'"
268
+ :show-rest-button="reset"
269
+ :value.sync="model.f_end_time"
270
+ v-model="model.f_end_time"
271
+ >
272
+ </datepicker>
273
+ </div>
274
+ <div class="form-group col-sm-4">
275
+ <label class="font_normal_body">安检状态:</label>
276
+ <v-select
277
+ class="select select_list"
278
+ :value.sync="model.f_last_check_state"
279
+ v-model="model.f_last_check_state"
280
+ :options='$parent.$parent.entry_status'
281
+ placeholder='请选择'
282
+ :search="false"
283
+ close-on-select
284
+ value-single
285
+ >
286
+ </v-select>
287
+ </div>
288
+ <!-- <div class="form-group col-sm-4">-->
289
+ <!-- <label class="font_normal_body">安&ensp;检&ensp;册:</label>-->
290
+ <!-- <v-select-->
291
+ <!-- class="select select_list"-->
292
+ <!-- :value.sync="model.checkBook"-->
293
+ <!-- v-model="model.checkBook"-->
294
+ <!-- :options='$parent.$parent.checkBooks'-->
295
+ <!-- placeholder='请选择'-->
296
+ <!-- :search="false"-->
297
+ <!-- close-on-select-->
298
+ <!-- value-single-->
299
+ <!-- >-->
300
+ <!-- </v-select>-->
301
+ <!-- </div>-->
302
+ <div class="form-group col-sm-4">
303
+ <label class="font_normal_body">通气起始:</label>
304
+ <datepicker
305
+ placeholder='通气开始时间'
306
+ style="width:60%"
307
+ :disabled-days-of-week="[]"
308
+ :format="'yyyy-MM-dd'"
309
+ :show-rest-button="reset"
310
+ :value.sync="model.f_startgas_time"
311
+ v-model="model.f_startgas_time"
312
+ condition="ui.f_uservent_date >= '{} 00:00:00'">
313
+ </datepicker>
314
+ </div>
315
+ <div class="form-group col-sm-4">
316
+ <label class="font_normal_body">通气截止:</label>
317
+ <datepicker
318
+ placeholder='通气结束时间'
319
+ :disabled-days-of-week="[]"
320
+ style="width:60%"
321
+ :format="'yyyy-MM-dd'"
322
+ :show-rest-button="reset"
323
+ :value.sync="model.f_endgas_time"
324
+ v-model="model.f_endgas_time"
325
+ condition="ui.f_uservent_date <= '{} 23:59:59'">
326
+ </datepicker>
327
+ </div>
328
+ <!--<div class="form-group col-sm-4" >
329
+ <label class="font_normal_body">入户情况:</label>
330
+ <v-select
331
+ class="select select_list"
332
+ :value.sync="model.f_hasHousehold"
333
+ v-model="model.f_hasHousehold"
334
+ :options='$parent.$parent.hasHousehold'
335
+ placeholder='请选择'
336
+ close-on-select
337
+ :search="false"
338
+ value-single
339
+ >
340
+ </v-select>
341
+ </div>-->
342
+
343
+ </div>
344
+ </div>
345
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
346
+ <button class="button_search" style="margin-right: 15px" @click="search()">查询</button>
347
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
348
+ </div>
349
+ </modal>
350
+ <modal :show.sync="$parent.$parent.excelUserCondtion" width="500px" v-ref:modal1>
351
+ <div slot="modal-header" class="modal-header">
352
+ <h4 class="modal-title">
353
+ 导入用户编号
354
+ </h4>
355
+ </div>
356
+ <div slot="modal-body" class="modal-body">
357
+ <div class="row">
358
+ <file-upload class="my-file-uploader " name="UploadFile" class="btn btn-success"
359
+ style="border-radius: 2px;"
360
+ action="rs/file/uploadFile" tagname="档案信息导入" v-ref:file :headers="headers"
361
+ multiple></file-upload>
362
+ <img src="../../../assets/Excelformat.png" style="width: 100%"/>
363
+ </div>
364
+ </div>
365
+ <footer slot="modal-footer" class="modal-footer">
366
+ </footer>
367
+ </modal>
368
+ <!--<div class="form-group col-sm-4 button-range" >
369
+
370
+ <button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
371
+ <export-excel-safe :data="$parent.$parent.exportParameter"
372
+ :field="$parent.$parent.excelHeaders"
373
+ sqlurl="rs/logic/SafeExportExcel" sql-name="planItem"
374
+ template-name='安检任务明细' :choose-col="true">
375
+ </export-excel-safe>
376
+
377
+ </div>-->
378
+ </div>
379
+ </div>
380
+ </criteria>
381
+ <data-grid :model="model" partial='list' class="table_sy">
382
+
383
+ <template partial='head'>
384
+ <tr>
385
+ <th>
386
+ <nobr><input type="checkbox" onClick="event.cancelBubble = true"
387
+ :checked="$parent.$parent.$parent.checkAll" @change="$parent.$parent.$parent.setCheckAll()"/>
388
+ 全选
389
+ </nobr>
390
+ </th>
391
+ <th>
392
+ <nobr>用户编号</nobr>
393
+ </th>
394
+ <th>
395
+ <nobr>用户名称</nobr>
396
+ </th>
397
+ <th>
398
+ <nobr>用户类型</nobr>
399
+ </th>
400
+ <th>
401
+ <nobr>用户电话</nobr>
402
+ </th>
403
+ <th>
404
+ <nobr>表具类型</nobr>
405
+ </th>
406
+ <th>
407
+ <nobr>小区名称</nobr>
408
+ </th>
409
+ <th>
410
+ <nobr>安检册</nobr>
411
+ </th>
412
+ <th>
413
+ <nobr>抄表册</nobr>
414
+ </th>
415
+ <th title="当前所在的安检任务名称">
416
+ <nobr>所属任务</nobr>
417
+ </th>
418
+ <th title="最后一次安检日期">
419
+ <nobr>安检日期</nobr>
420
+ </th>
421
+ <th>
422
+ <nobr>首次通气时间</nobr>
423
+ </th>
424
+ <th>
425
+ <nobr>详细地址</nobr>
426
+ </th>
427
+ </tr>
428
+ </template>
429
+ <template partial='body'>
430
+ <td style="text-align: center;white-space:nowrap;"><input type="checkbox" onClick="event.cancelBubble = true"
431
+ :checked="$parent.$parent.$parent.isChecked(row.id)"
432
+ @change="$parent.$parent.$parent.setCheckes(row.id)"/>
433
+ </td>
434
+ <td style="text-align: center">
435
+ <nobr>{{ row.f_userinfo_code }}</nobr>
436
+ </td>
437
+ <td style="text-align: center">
438
+ <nobr>{{ row.f_user_name }}</nobr>
439
+ </td>
440
+ <td style="text-align: center">
441
+ <nobr>{{ row.f_user_type }}</nobr>
442
+ </td>
443
+ <td style="text-align: center">
444
+ <nobr>{{ row.f_user_phone }}</nobr>
445
+ </td>
446
+ <td style="text-align: center">
447
+ <nobr>{{ row.f_meter_classify }}</nobr>
448
+ </td>
449
+ <td style="text-align: center">
450
+ <nobr>{{ row.f_residential_area }}</nobr>
451
+ </td>
452
+ <td style="text-align: center">
453
+ <nobr>{{ row.f_book_slice_area }}</nobr>
454
+ </td>
455
+ <td style="text-align: center">
456
+ <nobr>{{ row.f_book_name }}</nobr>
457
+ </td>
458
+ <td style="text-align: center">
459
+ <nobr>{{ row.f_plan_name }}</nobr>
460
+ </td>
461
+ <td style="text-align: center">
462
+ <nobr>{{ row.f_last_check_date }}</nobr>
463
+ </td>
464
+ <td style="text-align: center">
465
+ <nobr>{{ row.f_uservent_date }}</nobr>
466
+ </td>
467
+ <td style="text-align: center">
468
+ <nobr>{{ row.f_address }}</nobr>
469
+ </td>
470
+ </template>
471
+ </data-grid>
472
+ </criteria-paged>
473
+ </div>
474
+ </template>
475
+
476
+ <script>
477
+ import {HttpResetClass, PagedList} from "vue-client";
478
+ import Vue from "vue";
479
+
480
+ export default {
481
+ name: "PlanManage",
482
+ title: '任务管理',
483
+ data() {
484
+ return {
485
+ model: new PagedList('/rs/sql/FetchUserFileByOrgNoRuHuSXQ', 100, {
486
+ "orderitem": "'f_residential_area,f_building,f_unit,f_floor,f_room'",
487
+ "f_usertype": "''",
488
+ "month": "''",
489
+ "SafeCheckSX": {"f_check_start": '', "f_check_end": ''},
490
+ "SafeCheckCQ": "''",
491
+ "startday": "''",
492
+ "endday": "''"
493
+ }),
494
+ a: '1',
495
+ opt: [{label: "测试", value: "测试"}],
496
+ showCondtion: false,
497
+ userTypes: [],//用户类型
498
+ userStates: [],//用户状态
499
+ gasproperties: [],//用气性质
500
+ meter_classifys: [],//气表类型
501
+ hasHousehold: [{label: "全部", value: ""}, {label: "已入户", value: "已入户"}, {
502
+ label: "未入户",
503
+ value: "未入户"
504
+ }],
505
+ yearCheckList: [{label: "全部", value: ""}, {
506
+ label: "已在任务中",
507
+ value: "ua.f_plan_id is not null"
508
+ }, {label: "未在任务中", value: "ua.f_plan_id is null"}],
509
+ entry_status: this.$appdata.getParam('安检状态') ? [{
510
+ label: '全部',
511
+ value: ''
512
+ }, ...this.$appdata.getParam('安检状态')] : [{label: '全部', value: ''}],
513
+ sliceArea: [],
514
+ meterbooks: [],
515
+ // hasCheckBooks:'否',
516
+ checkBooks: [],
517
+ cbc: [],
518
+ areaList: [],
519
+ checkAll: false,
520
+ checkes: [],
521
+ excelUserCondtion: false,
522
+ uploadCodeCondition: '',
523
+ streets: []
524
+ }
525
+ },
526
+ props: ["selectplan", "userlogin"],
527
+ ready() {
528
+ console.log('-====')
529
+ console.log(this.$login.f)
530
+ this.$refs.paged.$refs.criteria.model.f_user_state = '正常'
531
+ // this.hasCheckBooks=this.$appdata.getSingleValue('是否使用安检册')
532
+ // this.$refs.paged.$refs.criteria.model.f_endfile_time=Util.toStartDateYearString()
533
+ //this.$refs.paged.$refs.criteria.model.f_hasHousehold='未入户'
534
+ this.getCheckBook()
535
+ this.setConList()
536
+ this.loadpage()
537
+
538
+ },
539
+ methods: {
540
+ getCheckBook() {
541
+ this.checkBooks = []
542
+ new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
543
+ data: {
544
+ items: 'id,f_check_book_name,f_check_book_type',
545
+ tablename: 't_check_book',
546
+ condition: `f_orgid = '${this.userlogin.orgid}'`,
547
+ orderitem: 'id desc'
548
+ }
549
+ }, {resolveMsg: null, rejectMsg: null}).then(res => {
550
+ // this.checkBooks.push({label: '全部', value: ''})
551
+ res.data.forEach(ress => {
552
+ this.checkBooks.push({
553
+ label: ress.f_check_book_name,
554
+ value: `${ress.id}-${ress.f_check_book_type}`
555
+ })
556
+ })
557
+ })
558
+ },
559
+ loadpage() {
560
+ this.select_search()
561
+ this.select_street()
562
+ this.Mreadibook()
563
+ this.getSliceArea()
564
+ },
565
+ cancel() {
566
+ this.showCondtion = false
567
+ this.excelUserCondtion = false
568
+ },
569
+ //清空用户编号
570
+ clearUserInfoId() {
571
+ this.uploadCodeCondition = ''
572
+ Vue.showMessage("已清空用户编号")
573
+ },
574
+ showUploadCodeCondition() {
575
+ this.excelUserCondtion = true
576
+ },
577
+ selfSearch(args) {
578
+ //tag)
579
+ args.condition += ` and ui.f_filialeid='${this.userlogin.orgid}'`
580
+ /*if(args.model.f_hasHousehold=='已入户'){
581
+ 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='入户'`
582
+ }else if(args.model.f_hasHousehold=='未入户'){
583
+ 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,'未入户')!='入户')`
584
+ }*/
585
+
586
+ if (args.model.f_last_check_state == '未检') {
587
+ let nocheckcon = 'and ( ui.f_last_check_date is null '
588
+ if (args.model.f_start_time) {
589
+ nocheckcon += ` or ui.f_last_check_date <='${args.model.f_start_time} 00:00:00' `
590
+ }
591
+ if (args.model.f_end_time) {
592
+ nocheckcon += ` or ui.f_last_check_date >='${args.model.f_end_time} 23:59:59' `
593
+ }
594
+ nocheckcon += ')'
595
+ args.condition += nocheckcon
596
+ } else {
597
+ if (args.model.f_last_check_state) {
598
+ args.condition += ` and ui.f_last_check_state = '${args.model.f_last_check_state}'`
599
+ }
600
+ if (args.model.f_start_time) {
601
+ args.condition += ` and ui.f_last_check_date >='${args.model.f_start_time} 00:00:00' `
602
+ }
603
+ if (args.model.f_end_time) {
604
+ args.condition += ` and ui.f_last_check_date <='${args.model.f_end_time} 23:59:59' `
605
+ }
606
+ }
607
+ debugger
608
+ if (args.model.checkBook && Array.isArray(args.model.checkBook)) {
609
+ let userIds = [];
610
+ let areaIds = [];
611
+ args.model.checkBook.forEach(checkBook => {
612
+ let arr = checkBook.split('-');
613
+ if (arr[1] == '用户') {
614
+ userIds.push(arr[0]);
615
+ } else {
616
+ areaIds.push(arr[0]);
617
+ }
618
+ });
619
+ if (userIds.length > 0 && areaIds.length == 0) {
620
+ args.condition += ` and ua.f_check_book_id in (${userIds.map(id => `'${id}'`).join(',')})`;
621
+ }
622
+ if (areaIds.length > 0 && userIds.length == 0) {
623
+ args.condition += ` and area.f_check_book_id in (${areaIds.map(id => `'${id}'`).join(',')}) and ua.f_check_book_id is null`;
624
+ }
625
+ if (userIds.length > 0 && areaIds.length > 0){
626
+ args.condition += ` and (ua.f_check_book_id in (${userIds.map(id => `'${id}'`).join(',')}) or area.f_check_book_id in (${areaIds.map(id => `'${id}'`).join(',')}))`;
627
+ }
628
+ }
629
+ if (this.uploadCodeCondition) {
630
+ args.condition += ` and ${this.uploadCodeCondition}`
631
+ }
632
+ this.cancel()
633
+ this.checkes = []
634
+ this.checkAll = false
635
+ this.model.search(args.condition, args.model, args.condValue)
636
+ },
637
+ showUserCondition() {
638
+ this.showCondtion = true
639
+ },
640
+ setConList() {
641
+ this.userTypes = this.$appdata.getParam('用户类型') ? [{
642
+ label: '全部',
643
+ value: ''
644
+ }, ...this.$appdata.getParam('用户类型')] : [{label: '全部', value: ''}]
645
+
646
+ this.userStates = this.$appdata.getParam('安检用户状态') ? [{
647
+ label: '全部',
648
+ value: ''
649
+ }, ...this.$appdata.getParam('安检用户状态')] : [{label: '全部', value: ''}]
650
+ this.gasproperties = this.$appdata.getParam('用气性质') ? [{
651
+ label: '全部',
652
+ value: ''
653
+ }, ...this.$appdata.getParam('用气性质')] : [{label: '全部', value: ''}]
654
+ this.meter_classifys = this.$appdata.getParam('气表类型') ? [{
655
+ label: '全部',
656
+ value: ''
657
+ }, ...this.$appdata.getParam('气表类型')] : [{label: '全部', value: ''}]
658
+ },
659
+ select_search(text) {
660
+ //tag
661
+ let pcdText = text ? ` and f_residential_area like '%${text}%'` : ''
662
+ new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
663
+ data: {
664
+ items: "*",
665
+ tablename: "t_area",
666
+ orderitem: "id",
667
+ condition: `f_orgid = '${this.userlogin.orgid}' ${pcdText} `
668
+ }
669
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
670
+ //tag)
671
+ if (res.data.length > 0) {
672
+ this.areaList = []
673
+ this.areaList.push({label: "全部", value: ""})
674
+ res.data.forEach((result) => {
675
+ this.areaList.push({label: result.f_residential_area, value: result.f_residential_area})
676
+ })
677
+ }
678
+ //tag)
679
+ })
680
+ },
681
+ select_street() {
682
+ //tag
683
+ new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
684
+ data: {
685
+ items: "id,f_street",
686
+ tablename: "t_street",
687
+ orderitem: "id",
688
+ condition: `f_orgid = '${this.userlogin.orgid}'`
689
+ }
690
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
691
+ //tag)
692
+ if (res.data.length > 0) {
693
+ this.streets = []
694
+ this.streets.push({label: "全部", value: ""})
695
+ res.data.forEach((result) => {
696
+ this.streets.push({label: result.f_street, value: result.id})
697
+ })
698
+ }
699
+ })
700
+ },
701
+ //获取抄表册
702
+ async Mreadibook() {
703
+ this.cbc = []
704
+ this.sliceArea = []
705
+ let http = new HttpResetClass()
706
+ let getMeterReadingBooks = await http.load('POST', 'rs/logic/getMeterBooksData',
707
+ {data: {f_orgid: "('" + this.userlogin.orgid + "')"}},
708
+ {resolveMsg: null, rejectMsg: '获取失败!!!'})
709
+ this.cbc = [{label: '全部', value: ''}]
710
+ //tag
711
+ //tag)
712
+ //tag
713
+ this.meterbooks = []
714
+ this.meterbooks = getMeterReadingBooks.data.meterbooks
715
+ this.meterbooks.forEach((res) => {
716
+ this.cbc.push({label: res.f_book_name, value: res.id})
717
+ /*if(res.f_book_slice_area){
718
+ if(this.sliceArea.indexOf(res.f_book_slice_area)<0){
719
+ this.sliceArea.push(res.f_book_slice_area)
720
+ }
721
+ }*/
722
+ })
723
+
724
+ },
725
+ //安检册获取
726
+ async getSliceArea() {
727
+ let http = new HttpResetClass()
728
+ let getAllArea = await http.load('POST', '/rs/search', {
729
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
730
+ userid: this.userlogin.id
731
+ }, {resolveMsg: null, rejectMsg: '获取安检册出错!!!'})
732
+ this.sliceArea = [{label: '全部', value: ''}]
733
+ //tag
734
+ //tag
735
+ //tag
736
+ getAllArea.data.forEach((res) => {
737
+ if (res.parentid == this.userlogin.orgid) {
738
+ this.sliceArea.push({label: res.name, value: res.name})
739
+ }
740
+ })
741
+ //tag
742
+ },
743
+ //安检册改变-对应抄表册下拉重新赋值
744
+ slice_areaChange(value) {
745
+ //tag
746
+ if (!value) {
747
+ this.cbc = []
748
+ this.meterbooks.forEach((res) => {
749
+ this.cbc.push({label: res.f_book_name, value: res.id})
750
+ })
751
+ } else {
752
+ this.cbc = []
753
+ this.meterbooks.forEach((res) => {
754
+ if (res.f_book_slice_area == value) {
755
+ this.cbc.push({label: res.f_book_name, value: res.id})
756
+ }
757
+ })
758
+ }
759
+ },
760
+ isChecked(v) {
761
+ // 如果全选,不在的按选中算,否则,在的按选中算
762
+ if (this.checkAll) {
763
+ return this.checkes.indexOf(v) == -1
764
+ } else {
765
+ return this.checkes.indexOf(v) != -1
766
+ }
767
+ },
768
+ setCheckAll() {
769
+ this.checkAll = this.checkAll ? false : true;
770
+ // 全选改变后,清空选中数据
771
+ this.checkes = []
772
+ },
773
+ setCheckes(id) {
774
+ let index = this.checkes.indexOf(id)
775
+ if (index < 0) {
776
+ this.checkes.push(id)
777
+ } else {
778
+ this.checkes.splice(index, 1)
779
+ }
780
+ },
781
+ //将客户信息拖至任务中
782
+ async dragtoPlanItem() {
783
+ if (this.model.rows.length == 0) {
784
+ Vue.showMessage("未检测到列表中有用户!")
785
+ return
786
+ }
787
+ if (!this.checkAll && this.checkes.length == 0) {
788
+ Vue.showMessage("请先勾选你要添入到上方任务中的用户!")
789
+ return
790
+ }
791
+ if (this.selectplan && this.selectplan.id) {
792
+ this.$parent.isSend = true
793
+ try {
794
+ let res = await new HttpResetClass().load("POST", "/rs/logic/AddCheckPlanItem", {
795
+ data: {
796
+ f_operator: this.userlogin.name,
797
+ f_plan_id: this.selectplan.id,
798
+ f_safecheck_type: this.selectplan.f_safecheck_type,
799
+ f_filialeid: this.userlogin.orgid,
800
+ f_subscribe_date: '',
801
+ condition: this.model.condition,
802
+ switchCheckAll: true,
803
+ checkAll: this.checkAll,
804
+ param: this.checkes,
805
+ columnName: "ua.id"
806
+ }
807
+ }, {resolveMsg: null, rejectMsg: null})
808
+ //tag+"---"+res.data.result.length)
809
+ this.$parent.isSend = false
810
+ if (res.data.code == 200) {
811
+ //alert("添加成功!有"+res.data.result.length+"条用户地址已经存在于其他任务中: \n"+res.data.result.reduce((c,v)=>{c += v.f_user_name+":"+v.f_address+"\n"}),0)
812
+ this.$showMessage("添加成功!" + (res.data.result.length > 0 ? "有" + res.data.result.length + "条用户地址已经存在于其他任务中" : ""))
813
+ this.$parent.refresh()
814
+ } else {
815
+ this.$showMessage("添加失败!")
816
+ }
817
+ } catch (e) {
818
+ this.$showMessage("添加失败!")
819
+ }
820
+ } else {
821
+ this.$parent.isSend = false
822
+ this.$showMessage("请先打开一个任务再进行操作")
823
+ }
824
+ }
825
+ },
826
+ events: {
827
+ onFileUpload: function (file, res) {
828
+ //tag)
829
+ //tag)
830
+ let data = {
831
+ filepath: res.f_downloadpath
832
+ }
833
+ new HttpResetClass().load('POST', '/rs/logic/safe_GetUserInfoFromExcel', {data: data}, {
834
+ resolveMsg: '导入成功!已生成条件,若要去除导入条件请点击旁边 ‘清空用户编号’ 按钮。',
835
+ rejectMsg: '导入失败'
836
+ }).then((res) => {
837
+ this.uploadCodeCondition = res.data.condition
838
+ this.excelUserCondtion = false
839
+ })
840
+ },
841
+
842
+ },
843
+ watch:{
844
+ 'userlogin.orgid'(){
845
+ this.getCheckBook()
846
+ this.loadpage()
847
+ }
848
+ }
849
+ }
850
+ </script>
851
+
852
+ <style scoped>
853
+ .safe-planfont {
854
+ font-family: MicrosoftYaHei;
855
+ font-size: 15px;
856
+ font-weight: normal;
857
+ font-stretch: normal;
858
+ letter-spacing: 2px;
859
+ color: #333333;
860
+ line-height: 25px;
861
+ }
862
+
863
+ .safe-bodyfont {
864
+ font-family: MicrosoftYaHei;
865
+ font-size: 14px;
866
+ font-weight: normal;
867
+ font-stretch: normal;
868
+ letter-spacing: 0px;
869
+ color: #999999;
870
+ line-height: 30px;
871
+ }
872
+
873
+ .safe-leftplan {
874
+ height: auto;
875
+ border-bottom: 1px solid #ececec;
876
+ padding: 10px 5px
877
+ }
878
+
879
+ .leftplan-center {
880
+ border-top: 1px solid #ececec;
881
+ border-bottom: 1px solid #ececec;
882
+ }
883
+
884
+ .safe_p {
885
+ white-space: nowrap;
886
+ overflow: hidden;
887
+ text-overflow: ellipsis;
888
+ }
889
+
890
+ .safe-div-p {
891
+ color: #4792de;
892
+ text-align: end;
893
+ padding: 8px 15px;
894
+ }
895
+ </style>
896
+ <style lang="less">
897
+ .upuserinfo_sel ul {
898
+ width: 150% !important;
899
+ }
900
+ </style>