safecheck-client 4.0.1-6 → 4.0.1-7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) 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/bootstrap/less/.csscomb.json +304 -304
  121. package/src/bootstrap/less/.csslintrc +19 -19
  122. package/src/bootstrap/less/alerts.less +73 -73
  123. package/src/bootstrap/less/badges.less +66 -66
  124. package/src/bootstrap/less/breadcrumbs.less +26 -26
  125. package/src/bootstrap/less/button-groups.less +247 -247
  126. package/src/bootstrap/less/buttons.less +172 -172
  127. package/src/bootstrap/less/carousel.less +269 -269
  128. package/src/bootstrap/less/close.less +34 -34
  129. package/src/bootstrap/less/code.less +69 -69
  130. package/src/bootstrap/less/component-animations.less +33 -33
  131. package/src/bootstrap/less/dropdowns.less +216 -216
  132. package/src/bootstrap/less/grid.less +84 -84
  133. package/src/bootstrap/less/input-groups.less +167 -167
  134. package/src/bootstrap/less/jumbotron.less +52 -52
  135. package/src/bootstrap/less/labels.less +64 -64
  136. package/src/bootstrap/less/list-group.less +141 -141
  137. package/src/bootstrap/less/media.less +66 -66
  138. package/src/bootstrap/less/mixins/alerts.less +14 -14
  139. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  140. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  141. package/src/bootstrap/less/mixins/buttons.less +69 -69
  142. package/src/bootstrap/less/mixins/center-block.less +7 -7
  143. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  144. package/src/bootstrap/less/mixins/forms.less +90 -90
  145. package/src/bootstrap/less/mixins/gradients.less +59 -59
  146. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  147. package/src/bootstrap/less/mixins/grid.less +122 -122
  148. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  149. package/src/bootstrap/less/mixins/image.less +33 -33
  150. package/src/bootstrap/less/mixins/labels.less +12 -12
  151. package/src/bootstrap/less/mixins/list-group.less +30 -30
  152. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  153. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  154. package/src/bootstrap/less/mixins/opacity.less +8 -8
  155. package/src/bootstrap/less/mixins/pagination.less +24 -24
  156. package/src/bootstrap/less/mixins/panels.less +24 -24
  157. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  158. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  159. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  160. package/src/bootstrap/less/mixins/resize.less +6 -6
  161. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  162. package/src/bootstrap/less/mixins/size.less +10 -10
  163. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  164. package/src/bootstrap/less/mixins/table-row.less +44 -44
  165. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  166. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  167. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  168. package/src/bootstrap/less/mixins.less +40 -40
  169. package/src/bootstrap/less/modals.less +151 -151
  170. package/src/bootstrap/less/navbar.less +660 -660
  171. package/src/bootstrap/less/normalize.less +424 -424
  172. package/src/bootstrap/less/pagination.less +89 -89
  173. package/src/bootstrap/less/panels.less +275 -275
  174. package/src/bootstrap/less/popovers.less +131 -131
  175. package/src/bootstrap/less/print.less +101 -101
  176. package/src/bootstrap/less/progress-bars.less +87 -87
  177. package/src/bootstrap/less/responsive-embed.less +35 -35
  178. package/src/bootstrap/less/responsive-utilities.less +194 -194
  179. package/src/bootstrap/less/scaffolding.less +161 -161
  180. package/src/bootstrap/less/theme.less +291 -291
  181. package/src/bootstrap/less/thumbnails.less +36 -36
  182. package/src/bootstrap/less/tooltip.less +102 -102
  183. package/src/bootstrap/less/type.less +303 -303
  184. package/src/bootstrap/less/utilities.less +55 -55
  185. package/src/bootstrap/less/wells.less +29 -29
  186. package/src/components/FileUpload.vue +696 -696
  187. package/src/components/Hello.vue +39 -39
  188. package/src/components/LeftTree.vue +27 -27
  189. package/src/components/android/AttendanceTally.vue +116 -116
  190. package/src/components/android/Blank.vue +10 -10
  191. package/src/components/android/CheckUnplanPage.vue +56 -56
  192. package/src/components/android/Checker.vue +12 -12
  193. package/src/components/android/CheckerAnnual.vue +81 -81
  194. package/src/components/android/CheckerAvarta.vue +82 -82
  195. package/src/components/android/EquipmentInspection.vue +348 -348
  196. package/src/components/android/FootprintMap.vue +120 -120
  197. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  198. package/src/components/android/MasterMain.vue +77 -77
  199. package/src/components/android/Menu.vue +132 -132
  200. package/src/components/android/PaperAlarm.vue +85 -85
  201. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  202. package/src/components/android/PlumberAnnual.vue +83 -83
  203. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  204. package/src/components/android/PlumberMonthly.vue +84 -84
  205. package/src/components/android/PostMap.vue +83 -83
  206. package/src/components/android/QueryCheckHistory.vue +122 -122
  207. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  208. package/src/components/android/RepairMain.vue +60 -60
  209. package/src/components/android/Repairman.vue +12 -12
  210. package/src/components/android/StationMaster.vue +12 -12
  211. package/src/components/defects/DefectModal.vue +101 -101
  212. package/src/components/defects/DevicesAndItem.vue +39 -39
  213. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  214. package/src/components/notice/NoticeForm.vue +100 -100
  215. package/src/components/notice/NoticeIssue.vue +20 -20
  216. package/src/components/paper/PicViewer.vue +18 -18
  217. package/src/components/pc/CheckBookUser.vue +337 -333
  218. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  219. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  220. package/src/components/phonestate/PostMap.vue +82 -82
  221. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  222. package/src/components/userfile/MeterFile.vue +145 -145
  223. package/src/components/userfile/MeterModify.vue +46 -46
  224. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  225. package/src/filiale/jinhong/pc/checkUserList.vue +742 -742
  226. package/src/plugins/LoadData.js +10 -10
  227. package/src/plugins/LoadParams.js +24 -24
  228. package/src/stores/wxconfig.js +10 -10
  229. package/src/utils/getNowDate.js +33 -33
  230. package/test/e2e/custom-assertions/elementCount.js +26 -26
  231. package/test/e2e/nightwatch.conf.js +40 -40
  232. package/test/e2e/runner.js +30 -30
  233. package/test/e2e/specs/test.js +13 -13
  234. package/test/unit/.eslintrc +5 -5
  235. package/test/unit/TestUtil.js +62 -62
  236. package/test/unit/context.html +20 -20
  237. package/test/unit/index.js +13 -13
@@ -1,333 +1,337 @@
1
- <template>
2
- <div class="auto select-overspread">
3
- <criteria-paged :model="model" v-ref:paged>
4
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
5
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
- <div class="row">
7
- <div class="form-group col-sm-3">
8
- <label class="font_normal_body">客户编号</label>
9
- <input type="text" class="input_search" style="width:60%" v-model="model.f_userinfo_code"
10
- placeholder='客户编号'
11
- condition="f_userinfo_code = '{}'" @keyup.enter="search()">
12
- </div>
13
- <div class="form-group col-sm-2 button-range">
14
- <button class="button_search" style="margin-right: 10px" @click="search()" v-el:cba>查询</button>
15
- <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.createAndSend()">下发</button>
16
- </div>
17
- <div class="form-group col-sm-2 button-range">
18
- <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.delOfCheckBook()" v-el:cba>移出</button>
19
-
20
- </div>
21
- </div>
22
- </div>
23
- </criteria>
24
- <data-grid :model="model" class="table_sy" partial='list' v-ref:grid>
25
- <template partial='head'>
26
- <tr>
27
- <th>
28
- <nobr><input type="checkbox" v-model="$parent.$parent.$parent.bookAll"></input>全选</nobr>
29
- </th>
30
- <th>
31
- <nobr>序号</nobr>
32
- </th>
33
- <th>
34
- <nobr>用户编号</nobr>
35
- </th>
36
- <th>
37
- <nobr>用户姓名</nobr>
38
- </th>
39
- <th>
40
- <nobr>用户电话</nobr>
41
- </th>
42
- <th>
43
- <nobr>用户地址</nobr>
44
- </th>
45
-
46
- </tr>
47
- </template>
48
- <template partial='body'>
49
- <tr>
50
- <td style="text-align: center">
51
- <nobr><input type="checkbox" :checked="$parent.$parent.$parent.checkModel(row)"
52
- @change="$parent.$parent.$parent.checkChange(row, $event)"></input>
53
- </nobr>
54
- </td>
55
- <td style="text-align:center;">{{ $index + 1 }}</td>
56
- <td style="text-align:center">{{ row.f_userinfo_code }}</td>
57
- <td style="text-align:center">{{ row.f_user_name }}</td>
58
- <td style="text-align:center">{{ row.f_user_phone }}</td>
59
- <td style="text-align:center">{{ row.f_address }}</td>
60
- </tr>
61
- </template>
62
- <template partial='foot'></template>
63
- </data-grid>
64
- </criteria-paged>
65
- <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
66
- <div slot="modal-header" class="modal-header">
67
- <h4 class="modal-title">
68
- 新建计划
69
- </h4>
70
- </div>
71
- <div slot="modal-body" class="modal-body">
72
- <div class="row">
73
- <div class="form-group col-sm-4" >
74
- <label class="font_normal_body">计划名称:</label>
75
- <input type="text" class="input_search" v-model="createPlan.f_plan_name"
76
- style="width: 60%" placeholder="请选择" />
77
- </div>
78
- <div class="form-group col-sm-4" >
79
- <label class="font_normal_body">计划年份:</label>
80
- <v-select
81
- class="select select_list"
82
- :value.sync="createPlan.f_plan_year"
83
- v-model="createPlan.f_plan_year"
84
- :search="false"
85
- :options='yearList'
86
- close-on-select
87
- value-single
88
- >
89
- </v-select>
90
- </div>
91
- <div class="form-group col-sm-4" >
92
- <label class="font_normal_body">计划月份:</label>
93
- <v-select
94
- class="select select_list"
95
- :value.sync="createPlan.f_plan_month"
96
- v-model="createPlan.f_plan_month"
97
- :search="false"
98
- :options='monthList'
99
- close-on-select
100
- value-single>
101
- </v-select>
102
- </div>
103
- <div class="form-group col-sm-4" >
104
- <label class="font_normal_body">是否共享:</label>
105
- <v-select
106
- class="select select_list"
107
- :search="false"
108
- :value.sync="createPlan.isShare"
109
- v-model="createPlan.isShare"
110
- :options='isAndNot'
111
- placeholder='请选择'
112
- close-on-select
113
- value-single
114
- >
115
- </v-select>
116
- </div>
117
- <div class="form-group col-sm-4" v-show="createPlan.isShare=='否'">
118
- <label class="font_normal_body">安&ensp;检&ensp;员:</label>
119
- <v-select
120
- class="select select_list"
121
- :value.sync="createPlan.checker"
122
- v-model="createPlan.checker"
123
- :options='checker'
124
- close-on-select
125
- value-single
126
- >
127
- </v-select>
128
- </div>
129
- <div class="form-group col-sm-4" >
130
- <label class="font_normal_body">计划开始:</label>
131
- <datepicker
132
- placeholder='请选择'
133
- style="width:60%"
134
- :disabled-days-of-week="[]"
135
- :format="'yyyy-MM-dd'"
136
- :show-rest-button="reset"
137
- :value.sync="createPlan.f_start_time"
138
- v-model="createPlan.f_start_time">
139
- </datepicker>
140
- </div>
141
- <div class="form-group col-sm-4" >
142
- <label class="font_normal_body">计划结束:</label>
143
- <datepicker
144
- placeholder='请选择'
145
- style="width:60%"
146
- :disabled-days-of-week="[]"
147
- :format="'yyyy-MM-dd'"
148
- :show-rest-button="reset"
149
- :value.sync="createPlan.f_end_time"
150
- v-model="createPlan.f_end_time">
151
- </datepicker>
152
- </div>
153
- </div>
154
- </div>
155
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
156
- <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
157
- <button class="button_search" @click="cancelCreatePlan">取消</button>
158
- </div>
159
- </modal>
160
- </div>
161
- </template>
162
-
163
- <script>
164
- import {HttpResetClass, PagedList} from 'vue-client'
165
- import Vue from 'vue'
166
- import * as Util from '../../components/Util'
167
-
168
- export default {
169
- title: '安检记录列表',
170
- props: ['row'],
171
- data() {
172
- return {
173
- createPlan:{
174
- f_safecheck_type:"年度普检",
175
- checker:{},
176
- isShare:"否",
177
- f_usertype:"",
178
- f_issued:'是',
179
- f_end_time:Util.toStandardDateString().replace(new Date().getFullYear().toString(),(new Date().getFullYear()+1).toString()),
180
- f_start_time:Util.toStandardDateString(),
181
- f_plan_month:(new Date().getMonth()+1).toString(),
182
- f_plan_year:new Date().getFullYear().toString(),
183
- f_plan_name:""
184
- },
185
- checker:[],
186
- isAndNot:[{label:'是',value:'是'},{label:'否',value:'否'}],
187
- yearList:[{label:"2020",value:"2020"},{label:"2021",value:"2021"},{label:"2022",value:"2022"},{label:"2023",value:"2023"},{label:"2024",value:"2024"},{label:"2025",value:"2025"},{label:"2026",value:"2026"},{label:"2027",value:"2027"},{label:"2028",value:"2028"},{label:"2029",value:"2029"},{label:"2030",value:"2030"}],
188
- monthList:[{label:"1",value:"1"},{label:"2",value:"2"},{label:"3",value:"3"},{label:"4",value:"4"},{label:"5",value:"5"},{label:"6",value:"6"},{label:"7",value:"7"},{label:"8",value:"8"},{label:"9",value:"9"},{label:"10",value:"10"},{label:"11",value:"11"},{label:"12",value:"12"}],
189
- rowdata: this.row,
190
- bookAll: false,
191
- bookList:[],
192
- showCreatePlan: false,
193
- model: new PagedList('api/af-safecheck/sql/safe_singleTable_OrderBy', 50,
194
- {
195
- items: '"ua.id,ua.f_address,tui.f_userinfo_code,tui.f_user_name,tui.f_user_phone,tui.f_userinfo_id"',
196
- tablename: '"t_user_address ua left join t_userinfo tui on ua.f_userinfo_id = tui.f_userinfo_id"',
197
- orderitem: '"ua.id desc"'
198
- }
199
- )
200
- }
201
- },
202
- ready() {
203
- if (this.row) {
204
- let condition = ''
205
- condition = `ua.f_check_book_id =${this.row.id}`
206
- this.model.search(condition)
207
- //只显示用户页面
208
- this.row.f_check_book_type = '用户'
209
- }
210
- this.searchChecker()
211
- },
212
- watch: {
213
- 'row'(val) {
214
- if (val) {
215
- this.rowdata = val
216
- let condition = ''
217
- condition = `ua.f_check_book_id =${val.id} `
218
- this.model.search(condition)
219
- }
220
- }
221
- },
222
- methods: {
223
- async searchChecker(){
224
- console.log(this.$login.f.orgid)
225
- let res=await new HttpResetClass().load('POST', '/rs/search', {
226
- data:{
227
- source: `root.getResourceById($${this.$login.f.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1)`,
228
- userid: this.$login.f.id
229
- }
230
- }, {resolveMsg: null, rejectMsg: null})
231
- res.data.forEach((resRow) => {
232
- this.checker.push({label:resRow.name,value:resRow})
233
- })
234
- },
235
- async addNewPlan(){
236
- this.createPlan.f_plan_type='预约计划'
237
- this.createPlan.f_subcompany=this.$login.f.orgstr
238
- this.createPlan.f_filialeid=this.$login.f.orgid
239
- this.createPlan.f_create_operator=this.$login.f.name
240
- this.createPlan.f_create_time=Util.toStandardTimeString()
241
- this.createPlan.f_book_id = this.row.id
242
- console.log(this.createPlan)
243
- const addPlan = {
244
- f_operator:this.$login.f.name,
245
- f_filialeid:this.$login.f.orgid,
246
- f_subscribe_date:'',
247
- condition:this.model.condition,
248
- switchCheckAll:true,
249
- checkAll:this.bookAll,
250
- param:this.bookList,
251
- columnName: "ua.id"
252
- }
253
- if(this.createPlan.isShare=="是"){
254
- this.createPlan.f_checker_id=null
255
- this.createPlan.f_checker=null
256
- }else{
257
- this.createPlan.f_checker_id=this.createPlan.checker.id
258
- this.createPlan.f_checker=this.createPlan.checker.name
259
- }
260
- new HttpResetClass().load("POST",'/api/af-safecheck/logic/createAndAddPlan',{createPlan:this.createPlan,addPlan}).then(res=>{
261
- if(res.data.code==200){
262
- this.$showMessage("计划下发成功!"+(res.data.result.length>0?"有"+res.data.result.length+"条用户地址已经存在于其他计划中":""))
263
- this.cancelCreatePlan()
264
- }else{
265
- this.$showMessage("计划下发失败!")
266
- }
267
- })
268
- },
269
- createAndSend(){
270
- if(this.model.rows.length==0){
271
- Vue.showMessage("未检测到列表中有用户!")
272
- return
273
- }
274
- if(!this.bookAll && this.bookList.length==0){
275
- Vue.showMessage("请先勾选你要添入到上方计划中的用户!")
276
- return
277
- }
278
- this.showCreatePlan = true
279
- },
280
- cancelCreatePlan(){
281
- this.showCreatePlan = false
282
- },
283
- selfSearch(args) {
284
- if (this.rowdata.id) {
285
- args.condition += `and ua.f_check_book_id =${this.rowdata.id}`
286
- this.model.search(args.condition)
287
- } else {
288
- this.$showMessage('请选择片区')
289
- }
290
- },
291
- checkModel (row) {
292
- if (this.bookAll) {
293
- return true
294
- } else {
295
- return this.bookList.findIndex(res => res === row.id) !== -1;
296
- }
297
- },
298
- checkChange (row, e) {
299
- if (e.target.checked) {
300
- this.bookList.push(row.id)
301
- } else {
302
- this.bookList.splice(this.bookList.findIndex(res => res === row.id), 1)
303
- }
304
- },
305
- delOfCheckBook(){
306
- try {
307
- let upAddress = `update t_user_address set f_check_book_id = null where 1 = 2 `
308
- if (this.bookAll){
309
- upAddress = `update t_user_address set f_check_book_id = null where f_check_book_id = '${this.row.id}'`
310
- }else if (this.bookList.length > 0){
311
- let codes = this.bookList.map( item => { return `'${item}'` } ).join()
312
- upAddress = `update t_user_address set f_check_book_id = null where id in (${codes})`
313
- }
314
- this.$showMessage('确认移出安检册', ['confirm', 'cancel']).then((res) => {
315
- if (res === 'confirm') {
316
- let http = new HttpResetClass()
317
- http.load('POST', 'api/af-safecheck/logic/runSQL', {data: {sql: upAddress}},
318
- {resolveMsg: null, rejectMsg: '移出安检册失败'}).then(resp=>{
319
- this.$showMessage('移出成功')
320
- this.$refs.paged.$refs.criteria.search()
321
- }).catch(error=>{
322
- this.$showMessage('移出失败',error)
323
-
324
- })
325
- }
326
- })
327
- }catch (e) {
328
- this.$showMessage('移出失败',e)
329
- }
330
- }
331
- }
332
- }
333
- </script>
1
+ <template>
2
+ <div class="auto select-overspread">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <div class="form-group col-sm-3">
8
+ <label class="font_normal_body">客户编号</label>
9
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_userinfo_code"
10
+ placeholder='客户编号'
11
+ condition="f_userinfo_code = '{}'" @keyup.enter="search()">
12
+ </div>
13
+ <div class="form-group col-sm-2 button-range">
14
+ <button class="button_search" style="margin-right: 10px" @click="search()" v-el:cba>查询</button>
15
+ <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.createAndSend()">下发</button>
16
+ </div>
17
+ <div class="form-group col-sm-2 button-range">
18
+ <button class="button_search" style="margin-right: 10px" @click="$parent.$parent.delOfCheckBook()" v-el:cba>移出</button>
19
+
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </criteria>
24
+ <data-grid :model="model" class="table_sy" partial='list' v-ref:grid>
25
+ <template partial='head'>
26
+ <tr>
27
+ <th>
28
+ <nobr><input type="checkbox" v-model="$parent.$parent.$parent.bookAll"></input>全选</nobr>
29
+ </th>
30
+ <th>
31
+ <nobr>序号</nobr>
32
+ </th>
33
+ <th>
34
+ <nobr>用户编号</nobr>
35
+ </th>
36
+ <th>
37
+ <nobr>用户姓名</nobr>
38
+ </th>
39
+ <th>
40
+ <nobr>用户电话</nobr>
41
+ </th>
42
+ <th>
43
+ <nobr>用户地址</nobr>
44
+ </th>
45
+
46
+ </tr>
47
+ </template>
48
+ <template partial='body'>
49
+ <tr>
50
+ <td style="text-align: center">
51
+ <nobr><input type="checkbox" :checked="$parent.$parent.$parent.checkModel(row)"
52
+ @change="$parent.$parent.$parent.checkChange(row, $event)"></input>
53
+ </nobr>
54
+ </td>
55
+ <td style="text-align:center;">{{ $index + 1 }}</td>
56
+ <td style="text-align:center">{{ row.f_userinfo_code }}</td>
57
+ <td style="text-align:center">{{ row.f_user_name }}</td>
58
+ <td style="text-align:center">{{ row.f_user_phone }}</td>
59
+ <td style="text-align:center">{{ row.f_address }}</td>
60
+ </tr>
61
+ </template>
62
+ <template partial='foot'></template>
63
+ </data-grid>
64
+ </criteria-paged>
65
+ <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
66
+ <div slot="modal-header" class="modal-header">
67
+ <h4 class="modal-title">
68
+ 新建计划
69
+ </h4>
70
+ </div>
71
+ <div slot="modal-body" class="modal-body">
72
+ <div class="row">
73
+ <div class="form-group col-sm-4" >
74
+ <label class="font_normal_body">计划名称:</label>
75
+ <input type="text" class="input_search" v-model="createPlan.f_plan_name"
76
+ style="width: 60%" placeholder="请选择" />
77
+ </div>
78
+ <div class="form-group col-sm-4" >
79
+ <label class="font_normal_body">计划年份:</label>
80
+ <v-select
81
+ class="select select_list"
82
+ :value.sync="createPlan.f_plan_year"
83
+ v-model="createPlan.f_plan_year"
84
+ :search="false"
85
+ :options='yearList'
86
+ close-on-select
87
+ value-single
88
+ >
89
+ </v-select>
90
+ </div>
91
+ <div class="form-group col-sm-4" >
92
+ <label class="font_normal_body">计划月份:</label>
93
+ <v-select
94
+ class="select select_list"
95
+ :value.sync="createPlan.f_plan_month"
96
+ v-model="createPlan.f_plan_month"
97
+ :search="false"
98
+ :options='monthList'
99
+ close-on-select
100
+ value-single>
101
+ </v-select>
102
+ </div>
103
+ <div class="form-group col-sm-4" >
104
+ <label class="font_normal_body">是否共享:</label>
105
+ <v-select
106
+ class="select select_list"
107
+ :search="false"
108
+ :value.sync="createPlan.isShare"
109
+ v-model="createPlan.isShare"
110
+ :options='isAndNot'
111
+ placeholder='请选择'
112
+ close-on-select
113
+ value-single
114
+ >
115
+ </v-select>
116
+ </div>
117
+ <div class="form-group col-sm-4" v-show="createPlan.isShare=='否'">
118
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
119
+ <v-select
120
+ class="select select_list"
121
+ :value.sync="createPlan.checker"
122
+ v-model="createPlan.checker"
123
+ :options='checker'
124
+ close-on-select
125
+ value-single
126
+ >
127
+ </v-select>
128
+ </div>
129
+ <div class="form-group col-sm-4" >
130
+ <label class="font_normal_body">计划开始:</label>
131
+ <datepicker
132
+ placeholder='请选择'
133
+ style="width:60%"
134
+ :disabled-days-of-week="[]"
135
+ :format="'yyyy-MM-dd'"
136
+ :show-rest-button="reset"
137
+ :value.sync="createPlan.f_start_time"
138
+ v-model="createPlan.f_start_time">
139
+ </datepicker>
140
+ </div>
141
+ <div class="form-group col-sm-4" >
142
+ <label class="font_normal_body">计划结束:</label>
143
+ <datepicker
144
+ placeholder='请选择'
145
+ style="width:60%"
146
+ :disabled-days-of-week="[]"
147
+ :format="'yyyy-MM-dd'"
148
+ :show-rest-button="reset"
149
+ :value.sync="createPlan.f_end_time"
150
+ v-model="createPlan.f_end_time">
151
+ </datepicker>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
156
+ <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
157
+ <button class="button_search" @click="cancelCreatePlan">取消</button>
158
+ </div>
159
+ </modal>
160
+ </div>
161
+ </template>
162
+
163
+ <script>
164
+ import {HttpResetClass, PagedList} from 'vue-client'
165
+ import Vue from 'vue'
166
+ import * as Util from '../../components/Util'
167
+
168
+ export default {
169
+ title: '安检记录列表',
170
+ props: ['row'],
171
+ data() {
172
+ return {
173
+ createPlan:{
174
+ f_safecheck_type:"年度普检",
175
+ checker:{},
176
+ isShare:"否",
177
+ f_usertype:"",
178
+ f_issued:'是',
179
+ f_end_time:Util.toStandardDateString().replace(new Date().getFullYear().toString(),(new Date().getFullYear()+1).toString()),
180
+ f_start_time:Util.toStandardDateString(),
181
+ f_plan_month:(new Date().getMonth()+1).toString(),
182
+ f_plan_year:new Date().getFullYear().toString(),
183
+ f_plan_name:""
184
+ },
185
+ checker:[],
186
+ isAndNot:[{label:'是',value:'是'},{label:'否',value:'否'}],
187
+ yearList:[{label:"2020",value:"2020"},{label:"2021",value:"2021"},{label:"2022",value:"2022"},{label:"2023",value:"2023"},{label:"2024",value:"2024"},{label:"2025",value:"2025"},{label:"2026",value:"2026"},{label:"2027",value:"2027"},{label:"2028",value:"2028"},{label:"2029",value:"2029"},{label:"2030",value:"2030"}],
188
+ monthList:[{label:"1",value:"1"},{label:"2",value:"2"},{label:"3",value:"3"},{label:"4",value:"4"},{label:"5",value:"5"},{label:"6",value:"6"},{label:"7",value:"7"},{label:"8",value:"8"},{label:"9",value:"9"},{label:"10",value:"10"},{label:"11",value:"11"},{label:"12",value:"12"}],
189
+ rowdata: this.row,
190
+ bookAll: false,
191
+ bookList:[],
192
+ showCreatePlan: false,
193
+ model: new PagedList('api/af-safecheck/sql/safe_singleTable_OrderBy', 50,
194
+ {
195
+ items: '"ua.id,ua.f_address,tui.f_userinfo_code,tui.f_user_name,tui.f_user_phone,tui.f_userinfo_id"',
196
+ tablename: '"t_user_address ua left join t_userinfo tui on ua.f_userinfo_id = tui.f_userinfo_id"',
197
+ orderitem: '"ua.id desc"'
198
+ }
199
+ )
200
+ }
201
+ },
202
+ ready() {
203
+ if (this.row) {
204
+ let condition = ''
205
+ condition = `ua.f_check_book_id =${this.row.id}`
206
+ this.model.search(condition)
207
+ //只显示用户页面
208
+ this.row.f_check_book_type = '用户'
209
+ }
210
+ this.searchChecker()
211
+ },
212
+ watch: {
213
+ 'row'(val) {
214
+ if (val) {
215
+ this.rowdata = val
216
+ let condition = ''
217
+ condition = `ua.f_check_book_id =${val.id} `
218
+ this.model.search(condition)
219
+ }
220
+ }
221
+ },
222
+ methods: {
223
+ async searchChecker(){
224
+ console.log(this.$login.f.orgid)
225
+ let res=await new HttpResetClass().load('POST', '/rs/search', {
226
+ data:{
227
+ source: `root.getResourceById($${this.$login.f.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1)`,
228
+ userid: this.$login.f.id
229
+ }
230
+ }, {resolveMsg: null, rejectMsg: null})
231
+ res.data.forEach((resRow) => {
232
+ this.checker.push({label:resRow.name,value:resRow})
233
+ })
234
+ },
235
+ async addNewPlan(){
236
+ this.createPlan.f_plan_type='预约计划'
237
+ this.createPlan.f_subcompany=this.$login.f.orgstr
238
+ this.createPlan.f_filialeid=this.$login.f.orgid
239
+ this.createPlan.f_create_operator=this.$login.f.name
240
+ this.createPlan.f_create_time=Util.toStandardTimeString()
241
+ this.createPlan.f_book_id = this.row.id
242
+ console.log(this.createPlan)
243
+ const addPlan = {
244
+ f_operator:this.$login.f.name,
245
+ f_filialeid:this.$login.f.orgid,
246
+ f_subscribe_date:'',
247
+ condition:this.model.condition,
248
+ switchCheckAll:true,
249
+ checkAll:this.bookAll,
250
+ param:this.bookList,
251
+ columnName: "ua.id"
252
+ }
253
+ if(this.createPlan.isShare=="是"){
254
+ this.createPlan.f_checker_id=null
255
+ this.createPlan.f_checker=null
256
+ }else{
257
+ this.createPlan.f_checker_id=this.createPlan.checker.id
258
+ this.createPlan.f_checker=this.createPlan.checker.name
259
+ }
260
+ new HttpResetClass().load("POST",'/api/af-safecheck/logic/createAndAddPlan',{createPlan:this.createPlan,addPlan}).then(res=>{
261
+ if(res.data.code==200){
262
+ this.$showMessage("计划下发成功!"+(res.data.result.length>0?"有"+res.data.result.length+"条用户地址已经存在于其他计划中":""))
263
+ this.cancelCreatePlan()
264
+ }else{
265
+ this.$showMessage("计划下发失败!")
266
+ }
267
+ })
268
+ },
269
+ createAndSend(){
270
+ if(this.model.rows.length==0){
271
+ Vue.showMessage("未检测到列表中有用户!")
272
+ return
273
+ }
274
+ if(!this.bookAll && this.bookList.length==0){
275
+ Vue.showMessage("请先勾选你要添入到上方计划中的用户!")
276
+ return
277
+ }
278
+ this.showCreatePlan = true
279
+ },
280
+ cancelCreatePlan(){
281
+ this.showCreatePlan = false
282
+ },
283
+ selfSearch(args) {
284
+ if (this.rowdata.id) {
285
+ args.condition += `and ua.f_check_book_id =${this.rowdata.id}`
286
+ this.model.search(args.condition)
287
+ } else {
288
+ this.$showMessage('请选择片区')
289
+ }
290
+ },
291
+ checkModel (row) {
292
+ if (this.bookAll) {
293
+ return true
294
+ } else {
295
+ return this.bookList.findIndex(res => res === row.id) !== -1;
296
+ }
297
+ },
298
+ checkChange (row, e) {
299
+ if (e.target.checked) {
300
+ this.bookList.push(row.id)
301
+ } else {
302
+ this.bookList.splice(this.bookList.findIndex(res => res === row.id), 1)
303
+ }
304
+ },
305
+ delOfCheckBook(){
306
+ try {
307
+ let condata = {
308
+ condition :null,
309
+ bookAll:'false'
310
+ }
311
+ if (this.bookAll){
312
+ condata.bookAll = 'true'
313
+ condata.condition = this.row.id
314
+ }else if (this.bookList.length > 0){
315
+ let codes = this.bookList.map( item => { return `'${item}'` } ).join()
316
+ condata.condition = `(${codes})`
317
+ }
318
+ this.$showMessage('确认移出安检册', ['confirm', 'cancel']).then((res) => {
319
+ if (res === 'confirm') {
320
+ let http = new HttpResetClass()
321
+ http.load('POST', 'api/af-safecheck/logic/CheckBookUserRemove', {data:condata},
322
+ {resolveMsg: null, rejectMsg: '移出安检册失败'}).then(resp=>{
323
+ this.$showMessage('移出成功')
324
+ this.$refs.paged.$refs.criteria.search()
325
+ }).catch(error=>{
326
+ this.$showMessage('移出失败',error)
327
+
328
+ })
329
+ }
330
+ })
331
+ }catch (e) {
332
+ this.$showMessage('移出失败',e)
333
+ }
334
+ }
335
+ }
336
+ }
337
+ </script>