safecheck-client 4.0.1-3 → 4.0.1-4

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 (263) 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/NewDefectList/DefectListNew.vue +663 -660
  190. package/src/components/NewDefectList/DefectPaperNew.vue +1184 -1184
  191. package/src/components/Util/SafecheckUpload.vue +281 -281
  192. package/src/components/android/AttendanceTally.vue +116 -116
  193. package/src/components/android/Blank.vue +10 -10
  194. package/src/components/android/CheckUnplanPage.vue +56 -56
  195. package/src/components/android/Checker.vue +12 -12
  196. package/src/components/android/CheckerAnnual.vue +81 -81
  197. package/src/components/android/CheckerAvarta.vue +82 -82
  198. package/src/components/android/EquipmentInspection.vue +348 -348
  199. package/src/components/android/FootprintMap.vue +120 -120
  200. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  201. package/src/components/android/MasterMain.vue +77 -77
  202. package/src/components/android/Menu.vue +132 -132
  203. package/src/components/android/PaperAlarm.vue +85 -85
  204. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  205. package/src/components/android/PhoneUpUserinfo.vue +1249 -1249
  206. package/src/components/android/PlumberAnnual.vue +83 -83
  207. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  208. package/src/components/android/PlumberMonthly.vue +84 -84
  209. package/src/components/android/PostMap.vue +83 -83
  210. package/src/components/android/QueryCheckHistory.vue +122 -122
  211. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  212. package/src/components/android/RepairMain.vue +60 -60
  213. package/src/components/android/Repairman.vue +12 -12
  214. package/src/components/android/SafeRightTree.vue +218 -218
  215. package/src/components/android/SafecheckDevices.vue +1340 -1340
  216. package/src/components/android/StationMaster.vue +12 -12
  217. package/src/components/defects/DefectModal.vue +101 -101
  218. package/src/components/defects/DevicesAndItem.vue +39 -39
  219. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  220. package/src/components/notice/NoticeForm.vue +100 -100
  221. package/src/components/notice/NoticeIssue.vue +20 -20
  222. package/src/components/paper/PaperList.vue +797 -797
  223. package/src/components/paper/PicViewer.vue +18 -18
  224. package/src/components/pc/CheckBook.vue +303 -303
  225. package/src/components/pc/CheckBookArea.vue +146 -146
  226. package/src/components/pc/CheckBookCompany.vue +144 -144
  227. package/src/components/pc/CheckBookDetails.vue +161 -161
  228. package/src/components/pc/CheckBookEntry.vue +60 -60
  229. package/src/components/pc/CheckBookSearchArea.vue +560 -560
  230. package/src/components/pc/CheckBookSearchUnit.vue +229 -229
  231. package/src/components/pc/CheckBookSearchUser.vue +659 -659
  232. package/src/components/pc/CheckBookSearchUserList.vue +674 -674
  233. package/src/components/pc/CheckBookUser.vue +333 -333
  234. package/src/components/pc/PaperDefectMain.vue +880 -880
  235. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  236. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  237. package/src/components/phonestate/PostMap.vue +82 -82
  238. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  239. package/src/components/userfile/MeterFile.vue +145 -145
  240. package/src/components/userfile/MeterModify.vue +46 -46
  241. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  242. package/src/filiale/meihekou/android/CheckPlanList.vue +198 -198
  243. package/src/filiale/meihekou/android/CheckPlanListArea.vue +190 -190
  244. package/src/filiale/meihekou/android/CurrentCreate.vue +1038 -1038
  245. package/src/filiale/meihekou/android/PaperFeedback.vue +1542 -1542
  246. package/src/filiale/meihekou/android/SafecheckDevices.vue +1340 -1340
  247. package/src/filiale/meihekou/android/SafecheckOrderV.vue +2433 -2433
  248. package/src/filiale/meihekou/android.js +22 -22
  249. package/src/filiale/meihekou/pc/NewCheckpaper.vue +2027 -2027
  250. package/src/filiale/yunchengminsheng/android/SafecheckOrderV.vue +2850 -2850
  251. package/src/main.js +33 -33
  252. package/src/plugins/LoadData.js +10 -10
  253. package/src/plugins/LoadParams.js +24 -24
  254. package/src/stores/wxconfig.js +10 -10
  255. package/src/utils/getNowDate.js +33 -33
  256. package/test/e2e/custom-assertions/elementCount.js +26 -26
  257. package/test/e2e/nightwatch.conf.js +40 -40
  258. package/test/e2e/runner.js +30 -30
  259. package/test/e2e/specs/test.js +13 -13
  260. package/test/unit/.eslintrc +5 -5
  261. package/test/unit/TestUtil.js +62 -62
  262. package/test/unit/context.html +20 -20
  263. package/test/unit/index.js +13 -13
@@ -1,333 +1,333 @@
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 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>