| | |
| | | </u-popup> |
| | | |
| | | <!-- 保养结果选择器 --> |
| | | <u-popup v-model="showResult" mode="bottom" :closeable="true"> |
| | | <view class="popup-title">选择保养结果</view> |
| | | <u-picker |
| | | v-model="resultPickerValue" |
| | | :columns="resultColumns" |
| | | @confirm="onResultConfirm" |
| | | @cancel="showResult = false" |
| | | /> |
| | | </u-popup> |
| | | <up-action-sheet |
| | | :show="showResult" |
| | | :actions="resultColumns" |
| | | title="选择保养结果" |
| | | @select="onResultConfirm" |
| | | @close="showResult = false" |
| | | /> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | |
| | | // 保养结果选项 |
| | | const resultColumns = [ |
| | | { text: '完好', value: 1 }, |
| | | { text: '维修', value: 0 } |
| | | { name: '完好', value: 1 }, |
| | | { name: '维修', value: 0 } |
| | | ]; |
| | | |
| | | // 表单验证规则 |
| | |
| | | const form = ref({ |
| | | maintenanceActuallyName: userStore.nickName || '', // 默认使用当前用户昵称 |
| | | maintenanceResult: undefined, // 保养结果 |
| | | maintenanceActuallyTime: dayjs().format("YYYY-MM-DD"), // 实际保养日期(只显示日期) |
| | | maintenanceActuallyTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), // 实际保养日期(只显示日期) |
| | | }); |
| | | |
| | | // 清除表单校验状态 |
| | |
| | | form.value = { |
| | | maintenanceActuallyName: userStore.nickName || '', |
| | | maintenanceResult: undefined, |
| | | maintenanceActuallyTime: dayjs().format("YYYY-MM-DD"), |
| | | maintenanceActuallyTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), |
| | | }; |
| | | maintenanceResultText.value = ''; |
| | | }; |
| | |
| | | // 提交表单 |
| | | const sendForm = async () => { |
| | | try { |
| | | // 使用uview-plus的表单验证方式 |
| | | const valid = await formRef.value.validate(); |
| | | if (!valid) return; |
| | | // 手动验证表单 |
| | | let isValid = true; |
| | | let errorMessage = ''; |
| | | if (!form.value.maintenanceActuallyName) { |
| | | isValid = false; |
| | | errorMessage = '请输入实际保养人'; |
| | | } else if (!form.value.maintenanceActuallyTime) { |
| | | isValid = false; |
| | | errorMessage = '请选择实际保养日期'; |
| | | } else if (form.value.maintenanceResult === undefined) { |
| | | isValid = false; |
| | | errorMessage = '请选择保养结果'; |
| | | } |
| | | |
| | | if (!isValid) { |
| | | showToast(errorMessage); |
| | | return; |
| | | } |
| | | |
| | | // 验证通过 |
| | | submitFormData(); |
| | | } catch (e) { |
| | |
| | | |
| | | // 准备提交数据,maintenanceActuallyTime 加上当前时分秒 |
| | | const submitData = { ...form.value }; |
| | | if (submitData.maintenanceActuallyTime && !submitData.maintenanceActuallyTime.includes(':')) { |
| | | // 如果 maintenanceActuallyTime 只包含日期,添加当前时分秒 |
| | | submitData.maintenanceActuallyTime = submitData.maintenanceActuallyTime + ' ' + dayjs().format('HH:mm:ss'); |
| | | } |
| | | |
| | | const { code } = await addMaintenance({ id: id, ...submitData }); |
| | | |
| | | if (code == 200) { |
| | |
| | | |
| | | // 返回上一页 |
| | | const goBack = () => { |
| | | // 清除存储的id |
| | | uni.removeStorageSync('repairId'); |
| | | uni.navigateBack(); |
| | | }; |
| | | |
| | | // 获取页面ID |
| | | const getPageId = () => { |
| | | const pages = getCurrentPages(); |
| | | const currentPage = pages[pages.length - 1]; |
| | | const options = currentPage.options; |
| | | return options.id; |
| | | // 从本地存储获取id |
| | | return uni.getStorageSync('repairId'); |
| | | }; |
| | | |
| | | // 显示日期选择器 |
| | |
| | | // 确认日期选择 |
| | | const onDateConfirm = (e) => { |
| | | // 只保存年月日,不包含时分秒 |
| | | form.value.maintenanceActuallyTime = formatDateToYMD(e.value); |
| | | form.value.maintenanceActuallyTime = dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'); |
| | | showDate.value = false; |
| | | }; |
| | | |
| | |
| | | }; |
| | | |
| | | // 确认保养结果选择 |
| | | const onResultConfirm = ({ selectedIndex, selectedValue, selectedLabel }) => { |
| | | form.value.maintenanceResult = selectedValue; |
| | | maintenanceResultText.value = selectedLabel; |
| | | resultPickerValue.value = selectedValue; |
| | | const onResultConfirm = (selected) => { |
| | | form.value.maintenanceResult = selected.value; |
| | | maintenanceResultText.value = selected.name; |
| | | showResult.value = false; |
| | | }; |
| | | |
| | |
| | | // 设置保养人为当前用户昵称 |
| | | form.value.maintenanceActuallyName = userStore.nickName || ''; |
| | | // 设置当前日期(只包含年月日) |
| | | form.value.maintenanceActuallyTime = dayjs().format('YYYY-MM-DD'); |
| | | form.value.maintenanceActuallyTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); |
| | | currentDate.value = [new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate()]; |
| | | }; |
| | | |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | @import '@/static/scss/form-common.scss'; |
| | | .upkeep-maintain { |
| | | min-height: 100vh; |
| | | background: #f8f9fa; |