safecheck-client 3.0.35-5 → 3.0.35-7

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