safecheck-client 4.0.2-64 → 4.0.2-65

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 (258) 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/PhoneUpUserinfo.vue +1249 -1249
  203. package/src/components/android/PlumberAnnual.vue +83 -83
  204. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  205. package/src/components/android/PlumberMonthly.vue +84 -84
  206. package/src/components/android/PostMap.vue +83 -83
  207. package/src/components/android/QueryCheckHistory.vue +122 -122
  208. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  209. package/src/components/android/RepairMain.vue +60 -60
  210. package/src/components/android/Repairman.vue +12 -12
  211. package/src/components/android/SafeRightTree.vue +218 -218
  212. package/src/components/android/SafecheckDevices.vue +1340 -1340
  213. package/src/components/android/StationMaster.vue +12 -12
  214. package/src/components/android/week/CheckResultSimple.vue +258 -258
  215. package/src/components/android/week/FirstWeekCheck.vue +301 -301
  216. package/src/components/android/week/StepHeaderBar.vue +485 -485
  217. package/src/components/android/week/WeekCheck.vue +267 -267
  218. package/src/components/android/week/WeekCheckPaper.vue +274 -274
  219. package/src/components/android/week/WeekCheckPlan.vue +145 -145
  220. package/src/components/android/week/WeekCheckUserInfo.vue +99 -99
  221. package/src/components/defects/DefectModal.vue +101 -101
  222. package/src/components/defects/DevicesAndItem.vue +39 -39
  223. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  224. package/src/components/notice/NoticeForm.vue +100 -100
  225. package/src/components/notice/NoticeIssue.vue +20 -20
  226. package/src/components/paper/PicViewer.vue +18 -18
  227. package/src/components/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/pc/PlanManage.vue +933 -927
  243. package/src/filiale/meihekou/android/CheckPlanList.vue +198 -198
  244. package/src/filiale/meihekou/android/CheckPlanListArea.vue +190 -190
  245. package/src/filiale/meihekou/android/SafecheckDevices.vue +1343 -1343
  246. package/src/filiale/meihekou/android.js +22 -22
  247. package/src/plugins/LoadData.js +10 -10
  248. package/src/plugins/LoadParams.js +24 -24
  249. package/src/stores/wxconfig.js +10 -10
  250. package/src/utils/getNowDate.js +33 -33
  251. package/test/e2e/custom-assertions/elementCount.js +26 -26
  252. package/test/e2e/nightwatch.conf.js +40 -40
  253. package/test/e2e/runner.js +30 -30
  254. package/test/e2e/specs/test.js +13 -13
  255. package/test/unit/.eslintrc +5 -5
  256. package/test/unit/TestUtil.js +62 -62
  257. package/test/unit/context.html +20 -20
  258. package/test/unit/index.js +13 -13
@@ -1,485 +1,485 @@
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
- <week-check-user-info :userinfo="weekUserInfo"></week-check-user-info>
20
- <check-rsult-simple :itemname="itemname" :items="weekCheck" ></check-rsult-simple>
21
- <div class="row text-center" style="margin-top: 20px;">
22
- <button v-if="showbutton" type="button" class="col-sm-3 btn btn-primary" @click="uploadCheckPaper">提交</button>
23
- </div>
24
- </div>
25
- </template>
26
-
27
- <script>
28
- import {HttpResetClass, PagedList} from 'vue-client'
29
- import Vue from 'vue'
30
- import * as Util from '../../Util'
31
- import WeekCheckUserInfo from './WeekCheckUserInfo'
32
-
33
- export default {
34
- title: '周检待办详情',
35
- props: {
36
- weekdata:{
37
- type: Object,
38
- default () {
39
- return {}
40
- }
41
- }
42
- },
43
- components: {
44
- WeekCheckUserInfo
45
- },
46
- data () {
47
- return {
48
- weekConfig:{},
49
- weekCheck: [],
50
- steps: [],
51
- current: null,
52
- showbutton:false,
53
- weekCheckPaper:{},
54
- itemname:'',
55
- weekUserInfo:{}
56
- }
57
- },
58
- ready () {
59
- if (!Util.isEmpty(this.weekdata.paper_id)){
60
- const http = new HttpResetClass()
61
- http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getWeekCheckPaperById`, {id: this.weekdata.paper_id }).then(res=>{
62
- console.log('res', res.data)
63
- this.weekCheckPaper = res.data
64
- if (this.weekdata.f_complete == '已完成'){
65
- const json = JSON.parse(this.weekCheckPaper.f_safe_content)
66
- this.steps = []
67
- json.forEach((row) => {
68
- this.steps.push(row.itemname)
69
- })
70
- this.current = json.length
71
- this.weekCheckChange(json[json.length-1].itemname,json.length-1)
72
- }else {
73
- this.getweekconfig(this.weekdata.safechecktype_id)
74
- }
75
- })
76
- }else {
77
- this.getweekconfig(this.weekdata.safechecktype_id)
78
- }
79
- this.getWeekUserInfo()
80
- },
81
- computed: {
82
- },
83
- methods:{
84
- // 获取周检配置
85
- getweekconfig(row){
86
- const http = new HttpResetClass()
87
- http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getWeekCheckTypeById`, {id: row }).then(res=>{
88
- if (res.data && res.data.length > 0 ){
89
- this.weekConfig = res.data[0]
90
- const json = JSON.parse(this.weekConfig.f_json)
91
- if (json && json.length > 0){
92
- this.steps = []
93
- json.forEach((row,index) => {
94
- if (Util.isEmpty(this.weekdata.f_complete)){
95
- this.current = 0
96
- }else if (row.itemname === this.weekdata.f_complete){
97
- this.current = index+1
98
- }
99
- this.steps.push(row.itemname)
100
- })
101
- if (Util.isEmpty(this.weekdata.f_complete)){
102
- this.weekCheckChange(json[0].itemname,this.current)
103
- }else {
104
- if (this.weekdata.f_complete != '已完成'){
105
- this.weekCheckChange(this.steps[this.current],this.current)
106
- }
107
- }
108
- }
109
- }
110
- })
111
- },
112
- // 获取当前环节周检配置
113
- weekCheckChange(row,id){
114
- if (this.current < id) {
115
- this.weekCheck = []
116
- this.showbutton = false
117
- this.$showMessage('请先完成当前环节!')
118
- }
119
- else if (this.current == id){
120
- this.showbutton = true
121
- const json = JSON.parse(this.weekConfig.f_json)
122
- this.weekCheck = []
123
- if (json && json.length > 0){
124
- if (Util.isEmpty(row)){
125
- json[0].items.forEach(row => {
126
- this.weekCheck.push({
127
- f_item_name: row.itemname,
128
- f_item_value: row.f_item_value || '',
129
- options:row.options,
130
- type: row.type,
131
- isshow:true,
132
- images: row.images|| [],
133
- multiple: row.multiple?row.multiple:false,
134
- readonly:false,
135
- state:'未检'
136
- })
137
- })
138
- }
139
- else {
140
- for (let i = 0; i < json.length; i++){
141
- if (json[i].itemname === row){
142
- json[i].items.forEach(row => {
143
- this.weekCheck.push({
144
- f_item_name: row.itemname,
145
- f_item_value: row.f_item_value || '',
146
- options:row.options,
147
- type: row.type,
148
- isshow:true,
149
- images: row.images|| [],
150
- multiple: row.multiple?row.multiple:false,
151
- readonly:false,
152
- state:'未检'
153
- })
154
- })
155
- }
156
- }
157
- }
158
- }
159
- this.setFormData()
160
- }
161
- else if (this.current > id){
162
- this.showbutton = false
163
- this.weekCheck = []
164
- const json = JSON.parse(this.weekCheckPaper.f_safe_content)
165
- json.forEach(res=>{
166
- if (res.itemname === row){
167
- res.items.forEach(row => {
168
- this.weekCheck.push({
169
- f_item_name: row.f_item_name,
170
- f_item_value: row.f_item_value || '',
171
- options:row.options,
172
- type: row.type,
173
- isshow:true,
174
- images: row.images|| [],
175
- multiple: row.multiple?row.multiple:false,
176
- readonly:true,
177
- state:'已检'
178
- })
179
- })
180
- }
181
- })
182
- }
183
- else {
184
- this.showbutton = false
185
- const json = JSON.parse(this.weekCheckPaper.f_safe_content)
186
- this.weekCheck = []
187
- json[0].items.forEach(row => {
188
- this.weekCheck.push({
189
- f_item_name: row.f_item_name,
190
- f_item_value: row.f_item_value || '',
191
- options:row.options,
192
- type: row.type,
193
- isshow:true,
194
- images: row.images|| [],
195
- multiple: row.multiple?row.multiple:false,
196
- readonly:true,
197
- state:'已检'
198
- })
199
- })
200
- }
201
- this.watchitem()
202
- this.itemname = row
203
- },
204
- // 表单数据
205
- setFormData(){
206
- this.weekCheck.forEach(item=>{
207
- if (item.f_item_name === '表号' && !Util.isEmpty(this.weekdata.f_meternumber)){
208
- item.f_item_value = this.weekdata.f_meternumber
209
- item.readonly = true
210
- }
211
- if (item.f_item_name === '气表品牌' && !Util.isEmpty(this.weekdata.f_meter_brand)){
212
- item.f_item_value = this.weekdata.f_meter_brand
213
- item.readonly = true
214
- }
215
- if (item.f_item_name === '气表型号' && !Util.isEmpty(this.weekdata.f_meter_style)){
216
- item.f_item_value = this.weekdata.f_meter_style
217
- item.readonly = true
218
- }
219
- if (item.f_item_name === '表具状态' && !Util.isEmpty(this.weekdata.f_table_state)){
220
- item.f_item_value = this.weekdata.f_table_state
221
- item.readonly = true
222
- }
223
- if (item.f_item_name === '操作人'){
224
- item.f_item_value = Vue.user.name
225
- item.readonly = true
226
- }
227
- if (item.f_item_name === '完成时间') {
228
- item.f_item_value = Util.toStandardTimeString()
229
- item.readonly = true
230
- }
231
- })
232
- },
233
- // 监听表单
234
- watchitem(){
235
- for (let item in this.weekCheck) {
236
- if (this.weekCheck[item].f_item_name === "是否停用表具") {
237
- this.$watch('weekCheck[' + item + '].f_item_value', function (val) {
238
- if (val === '是') {
239
- this.weekCheck.forEach((item) => {
240
- if (item.f_item_name === '是否停用表具' || item.f_item_name === '停用备注' || item.f_item_name === '停用图片') {
241
- item.isshow = true
242
- } else {
243
- item.isshow = false
244
- }
245
- })
246
- }
247
- if (val === '否') {
248
- this.weekCheck.forEach((item) => {
249
- if (item.f_item_name === '停用备注' || item.f_item_name === '停用图片') {
250
- item.f_item_value = ''
251
- item.images = []
252
- item.isshow = false
253
- } else {
254
- item.isshow = true
255
- }
256
- })
257
- }
258
- })
259
- }
260
- if (this.weekCheck[item].f_item_name === "检定结果") {
261
- this.$watch('weekCheck[' + item + '].f_item_value', function (val) {
262
- if (val === '不合格') {
263
- this.weekCheck.forEach((item) => {
264
- if (item.f_item_name === '检定结果' || item.f_item_name === '处理方式' ) {
265
- item.isshow = true
266
- } else {
267
- item.f_item_value = ''
268
- item.isshow = false
269
- }
270
- })
271
- }
272
- if (val === '合格') {
273
- this.weekCheck.forEach((item) => {
274
- if (item.f_item_name === '处理方式' ) {
275
- item.f_item_value = ''
276
- item.isshow = false
277
- } else {
278
- item.isshow = true
279
- }
280
- })
281
- }
282
- })
283
- }
284
- }
285
- },
286
- async commitCallBack(jo) {
287
- if (jo.state != 'ok'){
288
- this.$showMessage('上传图片失败')
289
- throw '上传图片失败'
290
- }
291
- },
292
- async uploadCheckPaperPics () {
293
- let tableImages = []
294
- this.weekCheck.forEach((item) => {
295
- if (item.type == 'picture'){
296
- item.images.forEach(image=>{
297
- image.filename = image.f_path.substring(image.f_path.lastIndexOf('/')+1)
298
- tableImages.push({
299
- path: image.f_path,
300
- })
301
- })
302
- }
303
- })
304
- HostApp.__this__ = this
305
- HostApp.logicWithHint({
306
- 'logic': 'imagesUploadAndroid', 'callback': 'javascript: HostApp.__this__.commitCallBack()',
307
- 'data': {tableImages:tableImages}, 'backresult': 1
308
- })
309
- },
310
- async uploadCheckPaper () {
311
- await this.uploadCheckPaperPics()
312
- const http = new HttpResetClass()
313
- let json = []
314
- if (this.weekCheckPaper && !Util.isEmpty(this.weekCheckPaper.f_safe_content)){
315
- json = JSON.parse(this.weekCheckPaper.f_safe_content)
316
- }
317
- JSON.parse(this.weekConfig.f_json).forEach(res=>{
318
- if (res.itemname === this.steps[this.current]){
319
- res.items = this.weekCheck
320
- json.push(res)
321
- }
322
- })
323
- let data = {
324
- f_userinfo_id: this.weekdata.f_userinfo_id,
325
- f_user_name: this.weekdata.f_user_name,
326
- f_user_phone: this.weekdata.f_user_phone,
327
- f_meter_brand: this.weekdata.f_meter_brand,
328
- f_meter_style: this.weekdata.f_meter_style,
329
- f_meternumber: this.weekdata.f_meternumber,
330
- f_address: this.weekdata.f_address,
331
- f_checker_id: Vue.user.id,
332
- f_checker_name: Vue.user.name,
333
- f_safe_type: '周检',
334
- f_entry_status :'正常',
335
- f_week_check_result: '合格',
336
- f_table_state: this.weekdata.f_table_state,
337
- f_safe_content: json,
338
- f_safecheck_type_id: this.weekdata.safechecktype_id,
339
- f_check_item_id: this.weekdata.id,
340
- f_check_plan_id: this.weekdata.f_plan_id,
341
- f_upload_date: Util.toStandardTimeString(),
342
- f_filiale_id: Vue.user.orgid,
343
- f_filiale: Vue.user.orgs,
344
- }
345
- if (!Util.isEmpty(this.weekdata.paper_id)){
346
- data.id = this.weekdata.paper_id
347
- }
348
- if (this.steps[this.current] == '上传报告'){
349
- data.f_current_complete = '已完成'
350
- data.f_complete = '已完成'
351
- data.f_state = '已检'
352
- data.f_entry_status = '正常'
353
- }else {
354
- data.f_current_complete = this.steps[this.current + 1]
355
- data.f_complete = this.steps[this.current]
356
- data.f_state = '未检'
357
- }
358
- this.weekCheck.forEach(item => {
359
- if (this.steps[this.current] == '下表'){
360
- if (item.f_item_name === '是否停用表具'){
361
- if (item.f_item_value == '是'){
362
- data.f_table_state = '停用'
363
- data.f_complete = '已完成'
364
- data.f_state = '已检'
365
- }
366
- }
367
- }
368
- if (this.steps[this.current] == '输入检定结果'){
369
- if (item.f_item_name === '处理方式' ){
370
- if (!Util.isEmpty(item.f_item_value)){
371
- data.f_entry_status = item.f_item_value
372
- data.f_complete = '已完成'
373
- data.f_state = '已检'
374
- }
375
- }
376
- if (item.f_item_name === '检定结果' ){
377
- data.f_week_check_result = item.f_item_value
378
- }
379
- if (item.f_item_name === '检定机构' ){
380
- data.f_last_inspection_agency = item.f_item_value
381
- }
382
- }
383
- if (this.steps[this.current] == '上传报告'){
384
- if (item.f_item_name === '检定时间' ){
385
- if (item.f_item_value && item.f_item_value > Util.toStandardTimeString()){
386
- this.$showMessage('只能选择当前或者之前的时间!')
387
- throw '只能选择当前或者之前的时间!'
388
- return
389
- }
390
- data.f_complete_date = item.f_item_value
391
- }
392
- }
393
- })
394
-
395
-
396
- http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/saveWeekPaper`, data).then(res=>{
397
- console.log('res', res.data)
398
- this.weekCheckPaper = res.data[0]
399
- })
400
- this.$dispatch('confirm')
401
- },
402
- async getWeekUserInfo () {
403
- const http = new HttpResetClass()
404
- http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/getWeekUserinfo`, {
405
- condition:` uf.f_userinfo_id = '${this.weekdata.f_userinfo_id}'`
406
- }).then(res=>{
407
- this.weekUserInfo = res.data[0]
408
- })
409
- },
410
- }
411
- }
412
- </script>
413
-
414
- <style scoped>
415
- .step-header {
416
- background: #ffffff;
417
- padding: 15px 20px;
418
- }
419
-
420
- .step-track {
421
- display: flex;
422
- justify-content: flex-start;
423
- padding: 0 10px;
424
- font-size: 14px;
425
- color: #666;
426
- overflow-x: auto; /* 启用横向滚动 */
427
- /* 隐藏滚动条 */
428
- scrollbar-width: none; /* Firefox */
429
- -ms-overflow-style: none; /* IE/Edge */
430
- }
431
-
432
- /* 隐藏WebKit浏览器的滚动条 */
433
- .step-track::-webkit-scrollbar {
434
- display: none;
435
- }
436
-
437
- .step-item {
438
- position: relative;
439
- display: flex;
440
- flex-direction: column;
441
- align-items: end;
442
- }
443
-
444
- .step-number {
445
- width: 30px;
446
- height: 30px;
447
- border-radius: 50%;
448
- background: #e0e0e0;
449
- color: #666;
450
- line-height: 30px;
451
- text-align: center;
452
- font-weight: bold;
453
- font-size: 14px;
454
- transition: all 0.3s ease;
455
- }
456
-
457
- .step-number.active {
458
- background: #499EDF;
459
- color: white;
460
- }
461
-
462
- .step-title {
463
- margin-top: 8px;
464
- font-size: 14px;
465
- color: #666;
466
- font-weight: 500;
467
- width: 3em;
468
- text-align: center;
469
- word-break: break-all;
470
- line-height: 1.4;
471
- }
472
-
473
- /* 分隔线 */
474
- .step-divider {
475
- width: 80px;
476
- height: 2px;
477
- background: #e0e0e0;
478
- margin: 0 16px;
479
- transition: all 0.3s ease;
480
- }
481
-
482
- .step-divider.active {
483
- background: #499EDF;
484
- }
485
- </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
+ <week-check-user-info :userinfo="weekUserInfo"></week-check-user-info>
20
+ <check-rsult-simple :itemname="itemname" :items="weekCheck" ></check-rsult-simple>
21
+ <div class="row text-center" style="margin-top: 20px;">
22
+ <button v-if="showbutton" type="button" class="col-sm-3 btn btn-primary" @click="uploadCheckPaper">提交</button>
23
+ </div>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ import {HttpResetClass, PagedList} from 'vue-client'
29
+ import Vue from 'vue'
30
+ import * as Util from '../../Util'
31
+ import WeekCheckUserInfo from './WeekCheckUserInfo'
32
+
33
+ export default {
34
+ title: '周检待办详情',
35
+ props: {
36
+ weekdata:{
37
+ type: Object,
38
+ default () {
39
+ return {}
40
+ }
41
+ }
42
+ },
43
+ components: {
44
+ WeekCheckUserInfo
45
+ },
46
+ data () {
47
+ return {
48
+ weekConfig:{},
49
+ weekCheck: [],
50
+ steps: [],
51
+ current: null,
52
+ showbutton:false,
53
+ weekCheckPaper:{},
54
+ itemname:'',
55
+ weekUserInfo:{}
56
+ }
57
+ },
58
+ ready () {
59
+ if (!Util.isEmpty(this.weekdata.paper_id)){
60
+ const http = new HttpResetClass()
61
+ http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getWeekCheckPaperById`, {id: this.weekdata.paper_id }).then(res=>{
62
+ console.log('res', res.data)
63
+ this.weekCheckPaper = res.data
64
+ if (this.weekdata.f_complete == '已完成'){
65
+ const json = JSON.parse(this.weekCheckPaper.f_safe_content)
66
+ this.steps = []
67
+ json.forEach((row) => {
68
+ this.steps.push(row.itemname)
69
+ })
70
+ this.current = json.length
71
+ this.weekCheckChange(json[json.length-1].itemname,json.length-1)
72
+ }else {
73
+ this.getweekconfig(this.weekdata.safechecktype_id)
74
+ }
75
+ })
76
+ }else {
77
+ this.getweekconfig(this.weekdata.safechecktype_id)
78
+ }
79
+ this.getWeekUserInfo()
80
+ },
81
+ computed: {
82
+ },
83
+ methods:{
84
+ // 获取周检配置
85
+ getweekconfig(row){
86
+ const http = new HttpResetClass()
87
+ http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getWeekCheckTypeById`, {id: row }).then(res=>{
88
+ if (res.data && res.data.length > 0 ){
89
+ this.weekConfig = res.data[0]
90
+ const json = JSON.parse(this.weekConfig.f_json)
91
+ if (json && json.length > 0){
92
+ this.steps = []
93
+ json.forEach((row,index) => {
94
+ if (Util.isEmpty(this.weekdata.f_complete)){
95
+ this.current = 0
96
+ }else if (row.itemname === this.weekdata.f_complete){
97
+ this.current = index+1
98
+ }
99
+ this.steps.push(row.itemname)
100
+ })
101
+ if (Util.isEmpty(this.weekdata.f_complete)){
102
+ this.weekCheckChange(json[0].itemname,this.current)
103
+ }else {
104
+ if (this.weekdata.f_complete != '已完成'){
105
+ this.weekCheckChange(this.steps[this.current],this.current)
106
+ }
107
+ }
108
+ }
109
+ }
110
+ })
111
+ },
112
+ // 获取当前环节周检配置
113
+ weekCheckChange(row,id){
114
+ if (this.current < id) {
115
+ this.weekCheck = []
116
+ this.showbutton = false
117
+ this.$showMessage('请先完成当前环节!')
118
+ }
119
+ else if (this.current == id){
120
+ this.showbutton = true
121
+ const json = JSON.parse(this.weekConfig.f_json)
122
+ this.weekCheck = []
123
+ if (json && json.length > 0){
124
+ if (Util.isEmpty(row)){
125
+ json[0].items.forEach(row => {
126
+ this.weekCheck.push({
127
+ f_item_name: row.itemname,
128
+ f_item_value: row.f_item_value || '',
129
+ options:row.options,
130
+ type: row.type,
131
+ isshow:true,
132
+ images: row.images|| [],
133
+ multiple: row.multiple?row.multiple:false,
134
+ readonly:false,
135
+ state:'未检'
136
+ })
137
+ })
138
+ }
139
+ else {
140
+ for (let i = 0; i < json.length; i++){
141
+ if (json[i].itemname === row){
142
+ json[i].items.forEach(row => {
143
+ this.weekCheck.push({
144
+ f_item_name: row.itemname,
145
+ f_item_value: row.f_item_value || '',
146
+ options:row.options,
147
+ type: row.type,
148
+ isshow:true,
149
+ images: row.images|| [],
150
+ multiple: row.multiple?row.multiple:false,
151
+ readonly:false,
152
+ state:'未检'
153
+ })
154
+ })
155
+ }
156
+ }
157
+ }
158
+ }
159
+ this.setFormData()
160
+ }
161
+ else if (this.current > id){
162
+ this.showbutton = false
163
+ this.weekCheck = []
164
+ const json = JSON.parse(this.weekCheckPaper.f_safe_content)
165
+ json.forEach(res=>{
166
+ if (res.itemname === row){
167
+ res.items.forEach(row => {
168
+ this.weekCheck.push({
169
+ f_item_name: row.f_item_name,
170
+ f_item_value: row.f_item_value || '',
171
+ options:row.options,
172
+ type: row.type,
173
+ isshow:true,
174
+ images: row.images|| [],
175
+ multiple: row.multiple?row.multiple:false,
176
+ readonly:true,
177
+ state:'已检'
178
+ })
179
+ })
180
+ }
181
+ })
182
+ }
183
+ else {
184
+ this.showbutton = false
185
+ const json = JSON.parse(this.weekCheckPaper.f_safe_content)
186
+ this.weekCheck = []
187
+ json[0].items.forEach(row => {
188
+ this.weekCheck.push({
189
+ f_item_name: row.f_item_name,
190
+ f_item_value: row.f_item_value || '',
191
+ options:row.options,
192
+ type: row.type,
193
+ isshow:true,
194
+ images: row.images|| [],
195
+ multiple: row.multiple?row.multiple:false,
196
+ readonly:true,
197
+ state:'已检'
198
+ })
199
+ })
200
+ }
201
+ this.watchitem()
202
+ this.itemname = row
203
+ },
204
+ // 表单数据
205
+ setFormData(){
206
+ this.weekCheck.forEach(item=>{
207
+ if (item.f_item_name === '表号' && !Util.isEmpty(this.weekdata.f_meternumber)){
208
+ item.f_item_value = this.weekdata.f_meternumber
209
+ item.readonly = true
210
+ }
211
+ if (item.f_item_name === '气表品牌' && !Util.isEmpty(this.weekdata.f_meter_brand)){
212
+ item.f_item_value = this.weekdata.f_meter_brand
213
+ item.readonly = true
214
+ }
215
+ if (item.f_item_name === '气表型号' && !Util.isEmpty(this.weekdata.f_meter_style)){
216
+ item.f_item_value = this.weekdata.f_meter_style
217
+ item.readonly = true
218
+ }
219
+ if (item.f_item_name === '表具状态' && !Util.isEmpty(this.weekdata.f_table_state)){
220
+ item.f_item_value = this.weekdata.f_table_state
221
+ item.readonly = true
222
+ }
223
+ if (item.f_item_name === '操作人'){
224
+ item.f_item_value = Vue.user.name
225
+ item.readonly = true
226
+ }
227
+ if (item.f_item_name === '完成时间') {
228
+ item.f_item_value = Util.toStandardTimeString()
229
+ item.readonly = true
230
+ }
231
+ })
232
+ },
233
+ // 监听表单
234
+ watchitem(){
235
+ for (let item in this.weekCheck) {
236
+ if (this.weekCheck[item].f_item_name === "是否停用表具") {
237
+ this.$watch('weekCheck[' + item + '].f_item_value', function (val) {
238
+ if (val === '是') {
239
+ this.weekCheck.forEach((item) => {
240
+ if (item.f_item_name === '是否停用表具' || item.f_item_name === '停用备注' || item.f_item_name === '停用图片') {
241
+ item.isshow = true
242
+ } else {
243
+ item.isshow = false
244
+ }
245
+ })
246
+ }
247
+ if (val === '否') {
248
+ this.weekCheck.forEach((item) => {
249
+ if (item.f_item_name === '停用备注' || item.f_item_name === '停用图片') {
250
+ item.f_item_value = ''
251
+ item.images = []
252
+ item.isshow = false
253
+ } else {
254
+ item.isshow = true
255
+ }
256
+ })
257
+ }
258
+ })
259
+ }
260
+ if (this.weekCheck[item].f_item_name === "检定结果") {
261
+ this.$watch('weekCheck[' + item + '].f_item_value', function (val) {
262
+ if (val === '不合格') {
263
+ this.weekCheck.forEach((item) => {
264
+ if (item.f_item_name === '检定结果' || item.f_item_name === '处理方式' ) {
265
+ item.isshow = true
266
+ } else {
267
+ item.f_item_value = ''
268
+ item.isshow = false
269
+ }
270
+ })
271
+ }
272
+ if (val === '合格') {
273
+ this.weekCheck.forEach((item) => {
274
+ if (item.f_item_name === '处理方式' ) {
275
+ item.f_item_value = ''
276
+ item.isshow = false
277
+ } else {
278
+ item.isshow = true
279
+ }
280
+ })
281
+ }
282
+ })
283
+ }
284
+ }
285
+ },
286
+ async commitCallBack(jo) {
287
+ if (jo.state != 'ok'){
288
+ this.$showMessage('上传图片失败')
289
+ throw '上传图片失败'
290
+ }
291
+ },
292
+ async uploadCheckPaperPics () {
293
+ let tableImages = []
294
+ this.weekCheck.forEach((item) => {
295
+ if (item.type == 'picture'){
296
+ item.images.forEach(image=>{
297
+ image.filename = image.f_path.substring(image.f_path.lastIndexOf('/')+1)
298
+ tableImages.push({
299
+ path: image.f_path,
300
+ })
301
+ })
302
+ }
303
+ })
304
+ HostApp.__this__ = this
305
+ HostApp.logicWithHint({
306
+ 'logic': 'imagesUploadAndroid', 'callback': 'javascript: HostApp.__this__.commitCallBack()',
307
+ 'data': {tableImages:tableImages}, 'backresult': 1
308
+ })
309
+ },
310
+ async uploadCheckPaper () {
311
+ await this.uploadCheckPaperPics()
312
+ const http = new HttpResetClass()
313
+ let json = []
314
+ if (this.weekCheckPaper && !Util.isEmpty(this.weekCheckPaper.f_safe_content)){
315
+ json = JSON.parse(this.weekCheckPaper.f_safe_content)
316
+ }
317
+ JSON.parse(this.weekConfig.f_json).forEach(res=>{
318
+ if (res.itemname === this.steps[this.current]){
319
+ res.items = this.weekCheck
320
+ json.push(res)
321
+ }
322
+ })
323
+ let data = {
324
+ f_userinfo_id: this.weekdata.f_userinfo_id,
325
+ f_user_name: this.weekdata.f_user_name,
326
+ f_user_phone: this.weekdata.f_user_phone,
327
+ f_meter_brand: this.weekdata.f_meter_brand,
328
+ f_meter_style: this.weekdata.f_meter_style,
329
+ f_meternumber: this.weekdata.f_meternumber,
330
+ f_address: this.weekdata.f_address,
331
+ f_checker_id: Vue.user.id,
332
+ f_checker_name: Vue.user.name,
333
+ f_safe_type: '周检',
334
+ f_entry_status :'正常',
335
+ f_week_check_result: '合格',
336
+ f_table_state: this.weekdata.f_table_state,
337
+ f_safe_content: json,
338
+ f_safecheck_type_id: this.weekdata.safechecktype_id,
339
+ f_check_item_id: this.weekdata.id,
340
+ f_check_plan_id: this.weekdata.f_plan_id,
341
+ f_upload_date: Util.toStandardTimeString(),
342
+ f_filiale_id: Vue.user.orgid,
343
+ f_filiale: Vue.user.orgs,
344
+ }
345
+ if (!Util.isEmpty(this.weekdata.paper_id)){
346
+ data.id = this.weekdata.paper_id
347
+ }
348
+ if (this.steps[this.current] == '上传报告'){
349
+ data.f_current_complete = '已完成'
350
+ data.f_complete = '已完成'
351
+ data.f_state = '已检'
352
+ data.f_entry_status = '正常'
353
+ }else {
354
+ data.f_current_complete = this.steps[this.current + 1]
355
+ data.f_complete = this.steps[this.current]
356
+ data.f_state = '未检'
357
+ }
358
+ this.weekCheck.forEach(item => {
359
+ if (this.steps[this.current] == '下表'){
360
+ if (item.f_item_name === '是否停用表具'){
361
+ if (item.f_item_value == '是'){
362
+ data.f_table_state = '停用'
363
+ data.f_complete = '已完成'
364
+ data.f_state = '已检'
365
+ }
366
+ }
367
+ }
368
+ if (this.steps[this.current] == '输入检定结果'){
369
+ if (item.f_item_name === '处理方式' ){
370
+ if (!Util.isEmpty(item.f_item_value)){
371
+ data.f_entry_status = item.f_item_value
372
+ data.f_complete = '已完成'
373
+ data.f_state = '已检'
374
+ }
375
+ }
376
+ if (item.f_item_name === '检定结果' ){
377
+ data.f_week_check_result = item.f_item_value
378
+ }
379
+ if (item.f_item_name === '检定机构' ){
380
+ data.f_last_inspection_agency = item.f_item_value
381
+ }
382
+ }
383
+ if (this.steps[this.current] == '上传报告'){
384
+ if (item.f_item_name === '检定时间' ){
385
+ if (item.f_item_value && item.f_item_value > Util.toStandardTimeString()){
386
+ this.$showMessage('只能选择当前或者之前的时间!')
387
+ throw '只能选择当前或者之前的时间!'
388
+ return
389
+ }
390
+ data.f_complete_date = item.f_item_value
391
+ }
392
+ }
393
+ })
394
+
395
+
396
+ http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/saveWeekPaper`, data).then(res=>{
397
+ console.log('res', res.data)
398
+ this.weekCheckPaper = res.data[0]
399
+ })
400
+ this.$dispatch('confirm')
401
+ },
402
+ async getWeekUserInfo () {
403
+ const http = new HttpResetClass()
404
+ http.load('post',`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/getWeekUserinfo`, {
405
+ condition:` uf.f_userinfo_id = '${this.weekdata.f_userinfo_id}'`
406
+ }).then(res=>{
407
+ this.weekUserInfo = res.data[0]
408
+ })
409
+ },
410
+ }
411
+ }
412
+ </script>
413
+
414
+ <style scoped>
415
+ .step-header {
416
+ background: #ffffff;
417
+ padding: 15px 20px;
418
+ }
419
+
420
+ .step-track {
421
+ display: flex;
422
+ justify-content: flex-start;
423
+ padding: 0 10px;
424
+ font-size: 14px;
425
+ color: #666;
426
+ overflow-x: auto; /* 启用横向滚动 */
427
+ /* 隐藏滚动条 */
428
+ scrollbar-width: none; /* Firefox */
429
+ -ms-overflow-style: none; /* IE/Edge */
430
+ }
431
+
432
+ /* 隐藏WebKit浏览器的滚动条 */
433
+ .step-track::-webkit-scrollbar {
434
+ display: none;
435
+ }
436
+
437
+ .step-item {
438
+ position: relative;
439
+ display: flex;
440
+ flex-direction: column;
441
+ align-items: end;
442
+ }
443
+
444
+ .step-number {
445
+ width: 30px;
446
+ height: 30px;
447
+ border-radius: 50%;
448
+ background: #e0e0e0;
449
+ color: #666;
450
+ line-height: 30px;
451
+ text-align: center;
452
+ font-weight: bold;
453
+ font-size: 14px;
454
+ transition: all 0.3s ease;
455
+ }
456
+
457
+ .step-number.active {
458
+ background: #499EDF;
459
+ color: white;
460
+ }
461
+
462
+ .step-title {
463
+ margin-top: 8px;
464
+ font-size: 14px;
465
+ color: #666;
466
+ font-weight: 500;
467
+ width: 3em;
468
+ text-align: center;
469
+ word-break: break-all;
470
+ line-height: 1.4;
471
+ }
472
+
473
+ /* 分隔线 */
474
+ .step-divider {
475
+ width: 80px;
476
+ height: 2px;
477
+ background: #e0e0e0;
478
+ margin: 0 16px;
479
+ transition: all 0.3s ease;
480
+ }
481
+
482
+ .step-divider.active {
483
+ background: #499EDF;
484
+ }
485
+ </style>