safecheck-client 3.0.35-29 → 3.0.35-30

Sign up to get free protection for your applications and to get access to all the features.
Files changed (247) 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/planmanage/PlanManage.vue +888 -888
  226. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  227. package/src/components/report/CheckPlanAreaList.vue +505 -505
  228. package/src/components/rongcheng/CheckSearchUser.vue +936 -936
  229. package/src/components/userfile/MeterFile.vue +145 -145
  230. package/src/components/userfile/MeterModify.vue +46 -46
  231. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  232. package/src/filiale/huaran/pc/PlanManage.vue +934 -934
  233. package/src/filiale/huaran/pc/checkUserList.vue +900 -900
  234. package/src/filiale/huaran/pc.js +28 -28
  235. package/src/main.js +33 -33
  236. package/src/plugins/LoadData.js +10 -10
  237. package/src/plugins/LoadParams.js +24 -24
  238. package/src/stores/wxconfig.js +10 -10
  239. package/src/utils/getNowDate.js +33 -33
  240. package/test/e2e/custom-assertions/elementCount.js +26 -26
  241. package/test/e2e/nightwatch.conf.js +40 -40
  242. package/test/e2e/runner.js +30 -30
  243. package/test/e2e/specs/test.js +13 -13
  244. package/test/unit/.eslintrc +5 -5
  245. package/test/unit/TestUtil.js +62 -62
  246. package/test/unit/context.html +20 -20
  247. package/test/unit/index.js +13 -13
@@ -1,900 +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-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>
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>