safecheck-client 4.0.2-20 → 4.0.2-22

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 (262) 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/DefectPaperNew.vue +1184 -1184
  190. package/src/components/android/AttendanceTally.vue +116 -116
  191. package/src/components/android/Blank.vue +10 -10
  192. package/src/components/android/CheckUnplanPage.vue +56 -56
  193. package/src/components/android/Checker.vue +12 -12
  194. package/src/components/android/CheckerAnnual.vue +81 -81
  195. package/src/components/android/CheckerAvarta.vue +82 -82
  196. package/src/components/android/EquipmentInspection.vue +348 -348
  197. package/src/components/android/FootprintMap.vue +120 -120
  198. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  199. package/src/components/android/MasterMain.vue +77 -77
  200. package/src/components/android/Menu.vue +132 -132
  201. package/src/components/android/PaperAlarm.vue +85 -85
  202. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  203. package/src/components/android/PhoneUpUserinfo.vue +1249 -1249
  204. package/src/components/android/PlumberAnnual.vue +83 -83
  205. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  206. package/src/components/android/PlumberMonthly.vue +84 -84
  207. package/src/components/android/PostMap.vue +83 -83
  208. package/src/components/android/QueryCheckHistory.vue +122 -122
  209. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  210. package/src/components/android/RepairMain.vue +60 -60
  211. package/src/components/android/Repairman.vue +12 -12
  212. package/src/components/android/SafeRightTree.vue +218 -218
  213. package/src/components/android/SafecheckDevices.vue +1340 -1340
  214. package/src/components/android/StationMaster.vue +12 -12
  215. package/src/components/android/week/CheckResultSimple.vue +222 -222
  216. package/src/components/android/week/FirstWeekCheck.vue +236 -236
  217. package/src/components/android/week/StepHeaderBar.vue +323 -323
  218. package/src/components/android/week/WeekCheck.vue +151 -151
  219. package/src/components/android/week/WeekCheckPaper.vue +151 -151
  220. package/src/components/defects/DefectModal.vue +101 -101
  221. package/src/components/defects/DevicesAndItem.vue +39 -39
  222. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  223. package/src/components/notice/NoticeForm.vue +100 -100
  224. package/src/components/notice/NoticeIssue.vue +20 -20
  225. package/src/components/paper/PicViewer.vue +18 -18
  226. package/src/components/pc/CheckBook.vue +303 -303
  227. package/src/components/pc/CheckBookArea.vue +146 -146
  228. package/src/components/pc/CheckBookCompany.vue +144 -144
  229. package/src/components/pc/CheckBookDetails.vue +161 -161
  230. package/src/components/pc/CheckBookEntry.vue +60 -60
  231. package/src/components/pc/CheckBookSearchArea.vue +560 -560
  232. package/src/components/pc/CheckBookSearchUnit.vue +229 -229
  233. package/src/components/pc/CheckBookSearchUser.vue +659 -659
  234. package/src/components/pc/CheckBookSearchUserList.vue +674 -674
  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/jinhong/android/CurrentCreate.vue +1316 -1313
  243. package/src/filiale/jinhong/android/PhoneInsurancePurchaseDetail.vue +1 -1
  244. package/src/filiale/meihekou/android/CheckPlanList.vue +198 -198
  245. package/src/filiale/meihekou/android/CheckPlanListArea.vue +190 -190
  246. package/src/filiale/meihekou/android/PaperFeedback.vue +1542 -1542
  247. package/src/filiale/meihekou/android/SafecheckDevices.vue +1343 -1343
  248. package/src/filiale/meihekou/android.js +22 -22
  249. package/src/filiale/meihekou/pc/NewCheckpaperNew.vue +2050 -2050
  250. package/src/plugins/LoadData.js +10 -10
  251. package/src/plugins/LoadParams.js +24 -24
  252. package/src/safecheck-android.js +326 -326
  253. package/src/stores/wxconfig.js +10 -10
  254. package/src/utils/getNowDate.js +33 -33
  255. package/test/e2e/custom-assertions/elementCount.js +26 -26
  256. package/test/e2e/nightwatch.conf.js +40 -40
  257. package/test/e2e/runner.js +30 -30
  258. package/test/e2e/specs/test.js +13 -13
  259. package/test/unit/.eslintrc +5 -5
  260. package/test/unit/TestUtil.js +62 -62
  261. package/test/unit/context.html +20 -20
  262. package/test/unit/index.js +13 -13
@@ -1,323 +1,323 @@
1
- <template>
2
- <div class="auto">
3
- <div class="step-header">
4
- <div class="step-track">
5
- <div v-for="(idx, s) in steps" :key="idx" class="step-item">
6
- <div style="display: flex;align-items: center;">
7
- <!-- 分隔线(仅在非第一个步骤时显示) -->
8
- <div v-if="idx !== 0" class="step-divider" :class="{ active: idx <= current }"></div>
9
- <!-- 圆形数字 -->
10
- <div class="step-number" :class="{ active: idx <= current }" @click="weekCheckChange(s,idx)">
11
- {{ idx + 1 }}
12
- </div>
13
- </div>
14
- <!-- 步骤标题 -->
15
- <div class="step-title">{{ s }}</div>
16
- </div>
17
- </div>
18
- </div>
19
- <check-rsult-simple v-if="showSimple" :items="weekCheck" ></check-rsult-simple>
20
- <div class="row text-center" style="margin-top: 20px;">
21
- <button v-if="showbutton" type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;" @click="uploadCheckPaper">提交</button>
22
- </div>
23
- </div>
24
- </template>
25
-
26
- <script>
27
- import {HttpResetClass, PagedList} from 'vue-client'
28
- import Vue from 'vue'
29
- import * as Util from '../../Util'
30
-
31
- export default {
32
- title: '周检待办详情',
33
- props: {
34
- weekdata:{
35
- type: Object,
36
- default () {
37
- return {}
38
- }
39
- }
40
- },
41
- data () {
42
- return {
43
- weekConfig:{},
44
- weekCheck: [],
45
- steps: [],
46
- current: null,
47
- showbutton:false,
48
- showSimple:false,
49
- weekCheckPaper:{}
50
- }
51
- },
52
- ready () {
53
- this.getweekconfig(this.weekdata.safechecktype_id)
54
- if (!Util.isEmpty(this.weekdata.paper_id)){
55
- const http = new HttpResetClass()
56
- http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getWeekCheckPaperById`, {id: this.weekdata.paper_id }).then(res=>{
57
- console.log('res', res.data)
58
- this.weekCheckPaper = res.data
59
- if (this.weekdata.f_complete == '已完成'){
60
- const json = JSON.parse(this.weekCheckPaper.f_safe_content)
61
- json.forEach((row) => {
62
- this.steps = []
63
- this.steps.push(row.itemname)
64
- })
65
- this.weekCheckChange(json[json.length-1].itemname,json.length-1)
66
- }
67
- })
68
-
69
- }
70
- },
71
- computed: {
72
- },
73
- methods:{
74
- // 获取周检配置
75
- getweekconfig(row){
76
- const http = new HttpResetClass()
77
- http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getWeekCheckTypeById`, {id: row }).then(res=>{
78
- if (res.data && res.data.length > 0 ){
79
- this.weekConfig = res.data[0]
80
- const json = JSON.parse(this.weekConfig.f_json)
81
- if (json && json.length > 0){
82
- this.steps = []
83
- json.forEach((row,index) => {
84
- if (Util.isEmpty(this.weekdata.f_complete)){
85
- this.current = 0
86
- }else if (row.itemname === this.weekdata.f_complete){
87
- this.current = index
88
- }
89
- this.steps.push(row.itemname)
90
- })
91
- if (Util.isEmpty(this.weekdata.f_complete)){
92
- this.weekCheckChange('',this.current)
93
- }else {
94
- if (this.weekdata.f_complete != '已完成'){
95
- this.weekCheckChange(this.weekdata.f_complete,this.current)
96
- }
97
- }
98
- }
99
- }
100
- })
101
- },
102
- // 获取当前环节周检配置
103
- weekCheckChange(row,id){
104
- this.showSimple = false
105
- if (this.current < id) {
106
- this.$showMessage('请先完成当前环节!')
107
- } else if (this.current == id){
108
- this.showbutton = true
109
- const json = JSON.parse(this.weekConfig.f_json)
110
- this.weekCheck = []
111
- if (json && json.length > 0){
112
- if (Util.isEmpty(row)){
113
- json[0].items.forEach(row => {
114
- this.weekCheck.push({
115
- f_item_name: row.itemname,
116
- f_item_value: row.f_item_value || '',
117
- options:row.options,
118
- type: row.type,
119
- isshow:true,
120
- f_path: '',
121
- multiple: row.multiple?row.multiple:false,
122
- readonly:false
123
- })
124
- })
125
- }
126
- else {
127
- for (let i = 0; i < json.length; i++){
128
- if (json[i].itemname === row){
129
- json[i].items.forEach(row => {
130
- this.weekCheck.push({
131
- f_item_name: row.itemname,
132
- f_item_value: row.f_item_value || '',
133
- options:row.options,
134
- type: row.type,
135
- isshow:true,
136
- f_path: '',
137
- multiple: row.multiple?row.multiple:false,
138
- readonly:false
139
- })
140
- })
141
- }
142
- }
143
- }
144
- }
145
- this.weekCheck.forEach(item=>{
146
- if (item.f_item_name === '表号' && !Util.isEmpty(this.weekdata.f_meternumber)){
147
- item.f_item_value = this.weekdata.f_meternumber
148
- item.readonly = true
149
- }
150
- if (item.f_item_name === '气表品牌' && !Util.isEmpty(this.weekdata.f_meter_brand)){
151
- item.f_item_value = this.weekdata.f_meter_brand
152
- item.readonly = true
153
- }
154
- if (item.f_item_name === '气表型号' && !Util.isEmpty(this.weekdata.f_meter_style)){
155
- item.f_item_value = this.weekdata.f_meter_style
156
- item.readonly = true
157
- }
158
- })
159
- }else {
160
- this.showbutton = false
161
- const json = JSON.parse(this.weekCheckPaper.f_safe_content)
162
- this.weekCheck = []
163
- json[0].items.forEach(row => {
164
- this.weekCheck.push({
165
- f_item_name: row.f_item_name,
166
- f_item_value: row.f_item_value || '',
167
- type: row.type,
168
- isshow:true,
169
- f_path: '',
170
- multiple: row.multiple?row.multiple:false,
171
- readonly:true
172
- })
173
- })
174
- console.log('this.weekCheck',this.weekCheck)
175
- }
176
- this.showSimple = true
177
- },
178
- uploadCheckPaper () {
179
- const http = new HttpResetClass()
180
- let json = []
181
- if (this.weekCheckPaper && !Util.isEmpty(this.weekCheckPaper.f_safe_content)){
182
- json = JSON.parse(this.weekCheckPaper.f_safe_content)
183
- }
184
- JSON.parse(this.weekConfig.f_json).forEach(res=>{
185
- if (res.itemname === this.steps[this.current]){
186
- res.items = this.weekCheck
187
- json.push(res)
188
- }
189
- })
190
- let data = {
191
- f_userinfo_id: this.weekdata.f_userinfo_id,
192
- f_user_name: this.weekdata.f_user_name,
193
- f_user_phone: this.weekdata.f_user_phone,
194
- f_meter_brand: this.weekdata.f_meter_brand,
195
- f_meter_style: this.weekdata.f_meter_style,
196
- f_meternumber: this.weekdata.f_meternumber,
197
- f_address: this.weekdata.f_address,
198
- f_checker_id: Vue.user.id,
199
- f_checker_name: Vue.user.name,
200
- f_safe_type: '周检',
201
- f_safe_content: json,
202
- f_safecheck_type_id: this.weekdata.safechecktype_id,
203
- f_check_item_id: this.weekdata.id,
204
- f_check_plan_id: this.weekdata.f_plan_id,
205
- f_upload_date: Util.toStandardTimeString(),
206
- f_filiale_id: Vue.user.orgid,
207
- f_filiale: Vue.user.orgs,
208
- }
209
- if (!Util.isEmpty(this.weekdata.paper_id)){
210
- data.id = this.weekdata.paper_id
211
- }
212
- if (this.steps[this.current] == '上传报告'){
213
- data.f_complete = '已完成'
214
- data.f_state = '已检'
215
- data.f_entry_status = '正常'
216
- }else {
217
- data.f_complete = this.steps[this.current]
218
- data.f_state = '未检'
219
- }
220
- this.weekCheck.forEach(item => {
221
- if (this.steps[this.current] == '下表'){
222
- if (item.f_item_name === '是否停用表具' && item.f_item_value == '是'){
223
- data.f_table_state = '停用'
224
- data.f_complete = '已完成'
225
- data.f_state = '已检'
226
- }else {
227
- data.f_table_state = '正常'
228
- }
229
- }
230
- if (this.steps[this.current] == '装表'){
231
- if (item.f_item_name === '处理方式' && !Util.isEmpty(item.f_item_value)){
232
- data.f_entry_status = item.f_item_value
233
- data.f_complete = '已完成'
234
- data.f_state = '已检'
235
- }else {
236
- data.f_entry_status = '正常'
237
- }
238
- }
239
- })
240
-
241
-
242
- http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/saveWeekPaper`, data).then(res=>{
243
- console.log('res', res.data)
244
- this.weekCheckPaper = res.data[0]
245
- })
246
- this.$dispatch('confirm')
247
- }
248
- }
249
- }
250
- </script>
251
-
252
- <style scoped>
253
- .step-header {
254
- background: #ffffff;
255
- padding: 15px 20px;
256
- }
257
-
258
- .step-track {
259
- display: flex;
260
- justify-content: flex-start;
261
- padding: 0 10px;
262
- font-size: 14px;
263
- color: #666;
264
- overflow-x: auto; /* 启用横向滚动 */
265
- /* 隐藏滚动条 */
266
- scrollbar-width: none; /* Firefox */
267
- -ms-overflow-style: none; /* IE/Edge */
268
- }
269
-
270
- /* 隐藏WebKit浏览器的滚动条 */
271
- .step-track::-webkit-scrollbar {
272
- display: none;
273
- }
274
-
275
- .step-item {
276
- position: relative;
277
- display: flex;
278
- flex-direction: column;
279
- align-items: end;
280
- }
281
-
282
- .step-number {
283
- width: 30px;
284
- height: 30px;
285
- border-radius: 50%;
286
- background: #e0e0e0;
287
- color: #666;
288
- line-height: 30px;
289
- text-align: center;
290
- font-weight: bold;
291
- font-size: 14px;
292
- transition: all 0.3s ease;
293
- }
294
-
295
- .step-number.active {
296
- background: #499EDF;
297
- color: white;
298
- }
299
-
300
- .step-title {
301
- margin-top: 8px;
302
- font-size: 14px;
303
- color: #666;
304
- font-weight: 500;
305
- width: 3em;
306
- text-align: center;
307
- word-break: break-all;
308
- line-height: 1.4;
309
- }
310
-
311
- /* 分隔线 */
312
- .step-divider {
313
- width: 80px;
314
- height: 2px;
315
- background: #e0e0e0;
316
- margin: 0 16px;
317
- transition: all 0.3s ease;
318
- }
319
-
320
- .step-divider.active {
321
- background: #499EDF;
322
- }
323
- </style>
1
+ <template>
2
+ <div class="auto">
3
+ <div class="step-header">
4
+ <div class="step-track">
5
+ <div v-for="(idx, s) in steps" :key="idx" class="step-item">
6
+ <div style="display: flex;align-items: center;">
7
+ <!-- 分隔线(仅在非第一个步骤时显示) -->
8
+ <div v-if="idx !== 0" class="step-divider" :class="{ active: idx <= current }"></div>
9
+ <!-- 圆形数字 -->
10
+ <div class="step-number" :class="{ active: idx <= current }" @click="weekCheckChange(s,idx)">
11
+ {{ idx + 1 }}
12
+ </div>
13
+ </div>
14
+ <!-- 步骤标题 -->
15
+ <div class="step-title">{{ s }}</div>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ <check-rsult-simple v-if="showSimple" :items="weekCheck" ></check-rsult-simple>
20
+ <div class="row text-center" style="margin-top: 20px;">
21
+ <button v-if="showbutton" type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;" @click="uploadCheckPaper">提交</button>
22
+ </div>
23
+ </div>
24
+ </template>
25
+
26
+ <script>
27
+ import {HttpResetClass, PagedList} from 'vue-client'
28
+ import Vue from 'vue'
29
+ import * as Util from '../../Util'
30
+
31
+ export default {
32
+ title: '周检待办详情',
33
+ props: {
34
+ weekdata:{
35
+ type: Object,
36
+ default () {
37
+ return {}
38
+ }
39
+ }
40
+ },
41
+ data () {
42
+ return {
43
+ weekConfig:{},
44
+ weekCheck: [],
45
+ steps: [],
46
+ current: null,
47
+ showbutton:false,
48
+ showSimple:false,
49
+ weekCheckPaper:{}
50
+ }
51
+ },
52
+ ready () {
53
+ this.getweekconfig(this.weekdata.safechecktype_id)
54
+ if (!Util.isEmpty(this.weekdata.paper_id)){
55
+ const http = new HttpResetClass()
56
+ http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getWeekCheckPaperById`, {id: this.weekdata.paper_id }).then(res=>{
57
+ console.log('res', res.data)
58
+ this.weekCheckPaper = res.data
59
+ if (this.weekdata.f_complete == '已完成'){
60
+ const json = JSON.parse(this.weekCheckPaper.f_safe_content)
61
+ json.forEach((row) => {
62
+ this.steps = []
63
+ this.steps.push(row.itemname)
64
+ })
65
+ this.weekCheckChange(json[json.length-1].itemname,json.length-1)
66
+ }
67
+ })
68
+
69
+ }
70
+ },
71
+ computed: {
72
+ },
73
+ methods:{
74
+ // 获取周检配置
75
+ getweekconfig(row){
76
+ const http = new HttpResetClass()
77
+ http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getWeekCheckTypeById`, {id: row }).then(res=>{
78
+ if (res.data && res.data.length > 0 ){
79
+ this.weekConfig = res.data[0]
80
+ const json = JSON.parse(this.weekConfig.f_json)
81
+ if (json && json.length > 0){
82
+ this.steps = []
83
+ json.forEach((row,index) => {
84
+ if (Util.isEmpty(this.weekdata.f_complete)){
85
+ this.current = 0
86
+ }else if (row.itemname === this.weekdata.f_complete){
87
+ this.current = index
88
+ }
89
+ this.steps.push(row.itemname)
90
+ })
91
+ if (Util.isEmpty(this.weekdata.f_complete)){
92
+ this.weekCheckChange('',this.current)
93
+ }else {
94
+ if (this.weekdata.f_complete != '已完成'){
95
+ this.weekCheckChange(this.weekdata.f_complete,this.current)
96
+ }
97
+ }
98
+ }
99
+ }
100
+ })
101
+ },
102
+ // 获取当前环节周检配置
103
+ weekCheckChange(row,id){
104
+ this.showSimple = false
105
+ if (this.current < id) {
106
+ this.$showMessage('请先完成当前环节!')
107
+ } else if (this.current == id){
108
+ this.showbutton = true
109
+ const json = JSON.parse(this.weekConfig.f_json)
110
+ this.weekCheck = []
111
+ if (json && json.length > 0){
112
+ if (Util.isEmpty(row)){
113
+ json[0].items.forEach(row => {
114
+ this.weekCheck.push({
115
+ f_item_name: row.itemname,
116
+ f_item_value: row.f_item_value || '',
117
+ options:row.options,
118
+ type: row.type,
119
+ isshow:true,
120
+ f_path: '',
121
+ multiple: row.multiple?row.multiple:false,
122
+ readonly:false
123
+ })
124
+ })
125
+ }
126
+ else {
127
+ for (let i = 0; i < json.length; i++){
128
+ if (json[i].itemname === row){
129
+ json[i].items.forEach(row => {
130
+ this.weekCheck.push({
131
+ f_item_name: row.itemname,
132
+ f_item_value: row.f_item_value || '',
133
+ options:row.options,
134
+ type: row.type,
135
+ isshow:true,
136
+ f_path: '',
137
+ multiple: row.multiple?row.multiple:false,
138
+ readonly:false
139
+ })
140
+ })
141
+ }
142
+ }
143
+ }
144
+ }
145
+ this.weekCheck.forEach(item=>{
146
+ if (item.f_item_name === '表号' && !Util.isEmpty(this.weekdata.f_meternumber)){
147
+ item.f_item_value = this.weekdata.f_meternumber
148
+ item.readonly = true
149
+ }
150
+ if (item.f_item_name === '气表品牌' && !Util.isEmpty(this.weekdata.f_meter_brand)){
151
+ item.f_item_value = this.weekdata.f_meter_brand
152
+ item.readonly = true
153
+ }
154
+ if (item.f_item_name === '气表型号' && !Util.isEmpty(this.weekdata.f_meter_style)){
155
+ item.f_item_value = this.weekdata.f_meter_style
156
+ item.readonly = true
157
+ }
158
+ })
159
+ }else {
160
+ this.showbutton = false
161
+ const json = JSON.parse(this.weekCheckPaper.f_safe_content)
162
+ this.weekCheck = []
163
+ json[0].items.forEach(row => {
164
+ this.weekCheck.push({
165
+ f_item_name: row.f_item_name,
166
+ f_item_value: row.f_item_value || '',
167
+ type: row.type,
168
+ isshow:true,
169
+ f_path: '',
170
+ multiple: row.multiple?row.multiple:false,
171
+ readonly:true
172
+ })
173
+ })
174
+ console.log('this.weekCheck',this.weekCheck)
175
+ }
176
+ this.showSimple = true
177
+ },
178
+ uploadCheckPaper () {
179
+ const http = new HttpResetClass()
180
+ let json = []
181
+ if (this.weekCheckPaper && !Util.isEmpty(this.weekCheckPaper.f_safe_content)){
182
+ json = JSON.parse(this.weekCheckPaper.f_safe_content)
183
+ }
184
+ JSON.parse(this.weekConfig.f_json).forEach(res=>{
185
+ if (res.itemname === this.steps[this.current]){
186
+ res.items = this.weekCheck
187
+ json.push(res)
188
+ }
189
+ })
190
+ let data = {
191
+ f_userinfo_id: this.weekdata.f_userinfo_id,
192
+ f_user_name: this.weekdata.f_user_name,
193
+ f_user_phone: this.weekdata.f_user_phone,
194
+ f_meter_brand: this.weekdata.f_meter_brand,
195
+ f_meter_style: this.weekdata.f_meter_style,
196
+ f_meternumber: this.weekdata.f_meternumber,
197
+ f_address: this.weekdata.f_address,
198
+ f_checker_id: Vue.user.id,
199
+ f_checker_name: Vue.user.name,
200
+ f_safe_type: '周检',
201
+ f_safe_content: json,
202
+ f_safecheck_type_id: this.weekdata.safechecktype_id,
203
+ f_check_item_id: this.weekdata.id,
204
+ f_check_plan_id: this.weekdata.f_plan_id,
205
+ f_upload_date: Util.toStandardTimeString(),
206
+ f_filiale_id: Vue.user.orgid,
207
+ f_filiale: Vue.user.orgs,
208
+ }
209
+ if (!Util.isEmpty(this.weekdata.paper_id)){
210
+ data.id = this.weekdata.paper_id
211
+ }
212
+ if (this.steps[this.current] == '上传报告'){
213
+ data.f_complete = '已完成'
214
+ data.f_state = '已检'
215
+ data.f_entry_status = '正常'
216
+ }else {
217
+ data.f_complete = this.steps[this.current]
218
+ data.f_state = '未检'
219
+ }
220
+ this.weekCheck.forEach(item => {
221
+ if (this.steps[this.current] == '下表'){
222
+ if (item.f_item_name === '是否停用表具' && item.f_item_value == '是'){
223
+ data.f_table_state = '停用'
224
+ data.f_complete = '已完成'
225
+ data.f_state = '已检'
226
+ }else {
227
+ data.f_table_state = '正常'
228
+ }
229
+ }
230
+ if (this.steps[this.current] == '装表'){
231
+ if (item.f_item_name === '处理方式' && !Util.isEmpty(item.f_item_value)){
232
+ data.f_entry_status = item.f_item_value
233
+ data.f_complete = '已完成'
234
+ data.f_state = '已检'
235
+ }else {
236
+ data.f_entry_status = '正常'
237
+ }
238
+ }
239
+ })
240
+
241
+
242
+ http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/saveWeekPaper`, data).then(res=>{
243
+ console.log('res', res.data)
244
+ this.weekCheckPaper = res.data[0]
245
+ })
246
+ this.$dispatch('confirm')
247
+ }
248
+ }
249
+ }
250
+ </script>
251
+
252
+ <style scoped>
253
+ .step-header {
254
+ background: #ffffff;
255
+ padding: 15px 20px;
256
+ }
257
+
258
+ .step-track {
259
+ display: flex;
260
+ justify-content: flex-start;
261
+ padding: 0 10px;
262
+ font-size: 14px;
263
+ color: #666;
264
+ overflow-x: auto; /* 启用横向滚动 */
265
+ /* 隐藏滚动条 */
266
+ scrollbar-width: none; /* Firefox */
267
+ -ms-overflow-style: none; /* IE/Edge */
268
+ }
269
+
270
+ /* 隐藏WebKit浏览器的滚动条 */
271
+ .step-track::-webkit-scrollbar {
272
+ display: none;
273
+ }
274
+
275
+ .step-item {
276
+ position: relative;
277
+ display: flex;
278
+ flex-direction: column;
279
+ align-items: end;
280
+ }
281
+
282
+ .step-number {
283
+ width: 30px;
284
+ height: 30px;
285
+ border-radius: 50%;
286
+ background: #e0e0e0;
287
+ color: #666;
288
+ line-height: 30px;
289
+ text-align: center;
290
+ font-weight: bold;
291
+ font-size: 14px;
292
+ transition: all 0.3s ease;
293
+ }
294
+
295
+ .step-number.active {
296
+ background: #499EDF;
297
+ color: white;
298
+ }
299
+
300
+ .step-title {
301
+ margin-top: 8px;
302
+ font-size: 14px;
303
+ color: #666;
304
+ font-weight: 500;
305
+ width: 3em;
306
+ text-align: center;
307
+ word-break: break-all;
308
+ line-height: 1.4;
309
+ }
310
+
311
+ /* 分隔线 */
312
+ .step-divider {
313
+ width: 80px;
314
+ height: 2px;
315
+ background: #e0e0e0;
316
+ margin: 0 16px;
317
+ transition: all 0.3s ease;
318
+ }
319
+
320
+ .step-divider.active {
321
+ background: #499EDF;
322
+ }
323
+ </style>