safecheck-client 4.0.2-42 → 4.0.2-44

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