safecheck-client 3.0.35-4 → 3.0.35-6

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