Commit df24e712b80a87c155fbe86ef7563377d2e8ad42
1 parent
ec13a95c
养护计划 添加 待优化
Showing
4 changed files
with
37 additions
and
30 deletions
pages-sub/daily/maintain-manage/add-record.vue
| 1 | 1 | <template> |
| 2 | - <view class="u-page"> | |
| 2 | + <view class="page-container"> | |
| 3 | 3 | <!-- 核心:将所有 up-form-item 包裹在同一个 up-form 内 --> |
| 4 | 4 | <view class="inspect-form-content commonPageLRpadding"> |
| 5 | 5 | <up-form |
| ... | ... | @@ -42,7 +42,7 @@ |
| 42 | 42 | ></up-upload> |
| 43 | 43 | </up-form-item> |
| 44 | 44 | |
| 45 | - <!-- 3. 完成进度(滑块) --> | |
| 45 | + <!-- 3. 完成进度(滑块)- 核心修改:min绑定initProgress --> | |
| 46 | 46 | <up-form-item |
| 47 | 47 | label="完成进度" |
| 48 | 48 | prop="progress" |
| ... | ... | @@ -52,17 +52,18 @@ |
| 52 | 52 | <view class="progress-wrap"> |
| 53 | 53 | <up-slider |
| 54 | 54 | v-model="inspectForm.progress" |
| 55 | - :min="initProgress" | |
| 56 | - :max="100" | |
| 57 | - | |
| 58 | - active-color="#1989fa" | |
| 59 | - inactive-color="#e5e5e5" | |
| 60 | - block-size="24" | |
| 61 | - class="progress-slider" | |
| 55 | + :min="0" | |
| 56 | + :max="100" | |
| 57 | + active-color="#1989fa" | |
| 58 | + inactive-color="#e5e5e5" | |
| 59 | + block-size="24" | |
| 60 | + class="progress-slider" | |
| 61 | + @change="handleProgressChange" | |
| 62 | 62 | ></up-slider> |
| 63 | 63 | <view class="progress-value">{{ inspectForm.progress }}%</view> |
| 64 | + <!-- 优化提示文案:动态显示初始进度值 --> | |
| 64 | 65 | <view class="progress-tips" v-if="inspectForm.progress <= initProgress"> |
| 65 | - 进度低于等于{{ initProgress }}%,无法调整 | |
| 66 | + 进度不能低于或等于{{ initProgress }}%,请调整 | |
| 66 | 67 | </view> |
| 67 | 68 | </view> |
| 68 | 69 | </up-form-item> |
| ... | ... | @@ -135,7 +136,7 @@ export default { |
| 135 | 136 | message: '请设置完成进度', |
| 136 | 137 | trigger: ['change'], |
| 137 | 138 | validator: (rule, value, callback) => { |
| 138 | - // 自定义校验:进度必须大于初始进度值 | |
| 139 | + // 自定义校验:进度必须大于初始进度值(兜底校验) | |
| 139 | 140 | if (value <= this.initProgress) { |
| 140 | 141 | callback(new Error(`完成进度必须大于${this.initProgress}%`)) |
| 141 | 142 | } else { |
| ... | ... | @@ -152,9 +153,9 @@ export default { |
| 152 | 153 | this.paramsOptins = option |
| 153 | 154 | |
| 154 | 155 | // 从URL参数中获取进度值,默认0 |
| 155 | - this.initProgress = option.progress ? Number(option.progress) : 0 | |
| 156 | - // 设置表单初始进度值 | |
| 157 | - this.inspectForm.progress = this.initProgress | |
| 156 | + this.initProgress = option.finishPercent ? Number(option.finishPercent) : 0 | |
| 157 | + // 设置表单初始进度值(若初始进度>0,默认设为初始进度+1,避免刚进入就提示) | |
| 158 | + this.inspectForm.progress = this.initProgress + 1 || 1 | |
| 158 | 159 | |
| 159 | 160 | console.log('初始进度值:', this.initProgress) |
| 160 | 161 | }, |
| ... | ... | @@ -165,6 +166,21 @@ export default { |
| 165 | 166 | }, |
| 166 | 167 | methods: { |
| 167 | 168 | /** |
| 169 | + * 新增:进度滑块拖动后校验(兜底,防止手动修改值) | |
| 170 | + */ | |
| 171 | + handleProgressChange(val) { | |
| 172 | + // 若拖动后值<=初始进度,强制重置为初始进度+1 | |
| 173 | + if (val <= this.initProgress) { | |
| 174 | + this.inspectForm.progress = this.initProgress + 1 | |
| 175 | + uni.showToast({ | |
| 176 | + title: `进度不能低于${this.initProgress}%`, | |
| 177 | + icon: 'none', | |
| 178 | + duration: 1500 | |
| 179 | + }) | |
| 180 | + } | |
| 181 | + }, | |
| 182 | + | |
| 183 | + /** | |
| 168 | 184 | * 删除图片 |
| 169 | 185 | */ |
| 170 | 186 | deleteImg(event) { |
| ... | ... | @@ -300,7 +316,7 @@ export default { |
| 300 | 316 | // 延迟跳转(等待提示框显示完成) |
| 301 | 317 | setTimeout(() => { |
| 302 | 318 | uni.redirectTo({ |
| 303 | - url: '/pages-sub/daily/maintain-manage/road-detail-list' | |
| 319 | + url: '/pages-sub/daily/maintain-manage/index' | |
| 304 | 320 | }) |
| 305 | 321 | }, 1000) |
| 306 | 322 | |
| ... | ... | @@ -327,11 +343,7 @@ export default { |
| 327 | 343 | </script> |
| 328 | 344 | |
| 329 | 345 | <style lang="scss" scoped> |
| 330 | -// 全局页面样式 | |
| 331 | -.u-page { | |
| 332 | - background-color: #f5f5f5; | |
| 333 | - min-height: 100vh; | |
| 334 | -} | |
| 346 | + | |
| 335 | 347 | |
| 336 | 348 | // 巡查表单内容容器 |
| 337 | 349 | .inspect-form-content { |
| ... | ... | @@ -362,10 +374,5 @@ export default { |
| 362 | 374 | } |
| 363 | 375 | } |
| 364 | 376 | |
| 365 | -// 表单项目间距 | |
| 366 | -.form-item { | |
| 367 | - margin-bottom: 20rpx; | |
| 368 | -} | |
| 369 | - | |
| 370 | 377 | |
| 371 | 378 | </style> |
| 372 | 379 | \ No newline at end of file | ... | ... |
pages-sub/daily/maintain-manage/finish-plan-detail.vue
pages-sub/daily/maintain-manage/pending-plan-detail.vue
| ... | ... | @@ -93,12 +93,14 @@ const batchNo = ref('') |
| 93 | 93 | const planNo = ref('') |
| 94 | 94 | const finishState = ref('') |
| 95 | 95 | const planTypeId = ref('') |
| 96 | +const finishPercent = ref('') | |
| 96 | 97 | |
| 97 | 98 | // 页面加载接收参数(逻辑完全保留) |
| 98 | 99 | onLoad((options) => { |
| 99 | 100 | planNo.value = options.planNo; |
| 100 | 101 | finishState.value = options.finishState |
| 101 | 102 | planTypeId.value = options.planTypeId |
| 103 | + finishPercent.value = options.finishPercent | |
| 102 | 104 | }); |
| 103 | 105 | |
| 104 | 106 | // 页面显示时请求数据(逻辑完全保留) |
| ... | ... | @@ -135,7 +137,7 @@ const gotoFinishPlanDetail = (i) => { |
| 135 | 137 | // 新增记录(逻辑完全保留) |
| 136 | 138 | const addNewRecord = () => { |
| 137 | 139 | uni.navigateTo({ |
| 138 | - url: `/pages-sub/daily/maintain-manage/add-record?planNo=${planInfo.value[0].planNo}&batchNo=${batchNo.value}`, | |
| 140 | + url: `/pages-sub/daily/maintain-manage/add-record?planNo=${planNo.value}&finishPercent=${finishPercent.value}`, | |
| 139 | 141 | }); |
| 140 | 142 | }; |
| 141 | 143 | </script> |
| ... | ... | @@ -144,6 +146,4 @@ const addNewRecord = () => { |
| 144 | 146 | .page-container { |
| 145 | 147 | |
| 146 | 148 | } |
| 147 | - | |
| 148 | - | |
| 149 | 149 | </style> |
| 150 | 150 | \ No newline at end of file | ... | ... |