From 91af6caf5a797bcc912e9a22656c97775bd4a198 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期五, 05 九月 2025 11:20:16 +0800 Subject: [PATCH] 设备保养、设备维修真机测试,bug修改 --- src/pages/equipmentManagement/upkeep/maintain.vue | 159 ++++++++++++++++++++++++++++------------------------ 1 files changed, 85 insertions(+), 74 deletions(-) diff --git a/src/pages/equipmentManagement/upkeep/maintain.vue b/src/pages/equipmentManagement/upkeep/maintain.vue index 28b7186..7ffb435 100644 --- a/src/pages/equipmentManagement/upkeep/maintain.vue +++ b/src/pages/equipmentManagement/upkeep/maintain.vue @@ -4,47 +4,54 @@ <PageHeader title="鏂板淇濆吇" @back="goBack" /> <!-- 琛ㄥ崟鍐呭 --> - <u-form @submit="sendForm" ref="formRef" label-width="110" input-align="right" error-message-align="right"> + <u-form ref="formRef" :model="form" :rules="formRules" label-width="110px" :error-type="['message']"> <!-- 鍩烘湰淇℃伅 --> - <u-cell-group title="淇濆吇淇℃伅"> - <u-form-item label="瀹為檯淇濆吇浜�" prop="maintenanceActuallyName" required> - <u-input - v-model="form.maintenanceActuallyName" - placeholder="璇疯緭鍏ュ疄闄呬繚鍏讳汉" - clearable - /> - </u-form-item> - <u-form-item label="瀹為檯淇濆吇鏃ユ湡" prop="maintenanceActuallyTime" required> - <u-input - v-model="form.maintenanceActuallyTime" - placeholder="璇烽�夋嫨瀹為檯淇濆吇鏃ユ湡" - readonly - @click="showDatePicker" - clearable - /> - </u-form-item> - <u-form-item label="淇濆吇缁撴灉" prop="maintenanceResult" required> - <u-input - v-model="maintenanceResultText" - placeholder="璇烽�夋嫨淇濆吇缁撴灉" - readonly - @click="showResultPicker" - clearable - /> - </u-form-item> - </u-cell-group> + <u-form-item label="瀹為檯淇濆吇浜�" prop="maintenanceActuallyName" required border-bottom> + <u-input + v-model="form.maintenanceActuallyName" + placeholder="璇疯緭鍏ュ疄闄呬繚鍏讳汉" + clearable + /> + </u-form-item> + + <u-form-item label="瀹為檯淇濆吇鏃ユ湡" prop="maintenanceActuallyTime" required border-bottom> + <u-input + v-model="form.maintenanceActuallyTime" + placeholder="璇烽�夋嫨瀹為檯淇濆吇鏃ユ湡" + readonly + @click="showDatePicker" + clearable + /> + <template #right> + <u-icon name="arrow-right" @click.stop="showDatePicker" /> + </template> + </u-form-item> + + <u-form-item label="淇濆吇缁撴灉" prop="maintenanceResult" required border-bottom> + <u-input + v-model="maintenanceResultText" + placeholder="璇烽�夋嫨淇濆吇缁撴灉" + readonly + @click="showResultPicker" + clearable + /> + <template #right> + <u-icon name="arrow-right" @click.stop="showResultPicker" /> + </template> + </u-form-item> <!-- 鎻愪氦鎸夐挳 --> <view class="footer-btns"> <u-button class="cancel-btn" @click="goBack">鍙栨秷</u-button> - <u-button class="save-btn" type="primary" @click="sendForm" :loading="loading">淇濆瓨</u-button> + <u-button class="save-btn" @click="sendForm" :loading="loading">淇濆瓨</u-button> </view> </u-form> <!-- 鏃ユ湡閫夋嫨鍣� --> - <u-popup v-model="showDate" mode="bottom"> + <u-popup v-model="showDate" mode="bottom" :closeable="true"> <u-datetime-picker - v-model="currentDate" + v-model="form.maintenanceActuallyTime" + mode="date" title="閫夋嫨鏃ユ湡" @confirm="onDateConfirm" @cancel="showDate = false" @@ -52,14 +59,13 @@ </u-popup> <!-- 淇濆吇缁撴灉閫夋嫨鍣� --> - <u-popup v-model="showResult" mode="bottom"> - <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> @@ -70,16 +76,15 @@ import { addMaintenance } from '@/api/equipmentManagement/upkeep'; import useUserStore from "@/store/modules/user"; import dayjs from "dayjs"; -// 鏇挎崲 Vant 鐨� toast -// import { showToast } from 'vant'; +import { formatDateToYMD } from '@/utils/ruoyi'; -// 鏇挎崲 toast 鏂规硶 +// 鏄剧ず鎻愮ず淇℃伅 const showToast = (message) => { uni.showToast({ title: message, icon: 'none' }) -} +}; defineOptions({ name: "璁惧淇濆吇琛ㄥ崟", @@ -98,8 +103,8 @@ // 淇濆吇缁撴灉閫夐」 const resultColumns = [ - { text: '瀹屽ソ', value: 1 }, - { text: '缁翠慨', value: 0 } + { name: '瀹屽ソ', value: 1 }, + { name: '缁翠慨', value: 0 } ]; // 琛ㄥ崟楠岃瘉瑙勫垯 @@ -113,13 +118,12 @@ const form = ref({ maintenanceActuallyName: userStore.nickName || '', // 榛樿浣跨敤褰撳墠鐢ㄦ埛鏄电О maintenanceResult: undefined, // 淇濆吇缁撴灉 - maintenanceActuallyTime: dayjs().format("YYYY-MM-DD"), // 瀹為檯淇濆吇鏃ユ湡锛堝彧鏄剧ず鏃ユ湡锛� + maintenanceActuallyTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), // 瀹為檯淇濆吇鏃ユ湡锛堝彧鏄剧ず鏃ユ湡锛� }); // 娓呴櫎琛ㄥ崟鏍¢獙鐘舵�� const clearValidate = () => { - // Vant4涓笉闇�瑕佹墜鍔ㄦ竻闄ら獙璇佺姸鎬侊紝閲嶇疆琛ㄥ崟鏃朵細鑷姩娓呴櫎 - // formRef.value?.clearValidate(); // 鍒犻櫎杩欒 + // uview-plus涓嶉渶瑕佹墜鍔ㄦ竻闄ら獙璇佺姸鎬侊紝閲嶇疆琛ㄥ崟鏃朵細鑷姩娓呴櫎 }; // 閲嶇疆琛ㄥ崟鏁版嵁鍜屾牎楠岀姸鎬� @@ -127,7 +131,7 @@ form.value = { maintenanceActuallyName: userStore.nickName || '', maintenanceResult: undefined, - maintenanceActuallyTime: dayjs().format("YYYY-MM-DD"), + maintenanceActuallyTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), }; maintenanceResultText.value = ''; }; @@ -140,14 +144,27 @@ // 鎻愪氦琛ㄥ崟 const sendForm = async () => { try { - // 浣跨敤Vant4鐨勬纭獙璇佹柟寮� - formRef.value?.validate().then(() => { - // 楠岃瘉閫氳繃 - submitFormData(); - }).catch((errors) => { - // 楠岃瘉澶辫触 - showToast('璇峰~鍐欏畬鏁翠俊鎭�'); - }); + // 鎵嬪姩楠岃瘉琛ㄥ崟 + 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) { showToast('琛ㄥ崟楠岃瘉澶辫触'); } @@ -167,11 +184,6 @@ // 鍑嗗鎻愪氦鏁版嵁锛宮aintenanceActuallyTime 鍔犱笂褰撳墠鏃跺垎绉� 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) { @@ -191,15 +203,15 @@ // 杩斿洖涓婁竴椤� const goBack = () => { + // 娓呴櫎瀛樺偍鐨刬d + uni.removeStorageSync('repairId'); uni.navigateBack(); }; // 鑾峰彇椤甸潰ID const getPageId = () => { - const pages = getCurrentPages(); - const currentPage = pages[pages.length - 1]; - const options = currentPage.options; - return options.id; + // 浠庢湰鍦板瓨鍌ㄨ幏鍙杋d + return uni.getStorageSync('repairId'); }; // 鏄剧ず鏃ユ湡閫夋嫨鍣� @@ -208,10 +220,9 @@ }; // 纭鏃ユ湡閫夋嫨 -const onDateConfirm = ({ selectedValues }) => { +const onDateConfirm = (e) => { // 鍙繚瀛樺勾鏈堟棩锛屼笉鍖呭惈鏃跺垎绉� - form.value.maintenanceActuallyTime = selectedValues.join('-'); - currentDate.value = selectedValues; + form.value.maintenanceActuallyTime = dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'); showDate.value = false; }; @@ -221,10 +232,9 @@ }; // 纭淇濆吇缁撴灉閫夋嫨 -const onResultConfirm = ({ selectedValues, selectedOptions }) => { - form.value.maintenanceResult = selectedOptions[0].value; - maintenanceResultText.value = selectedOptions[0].text; - resultPickerValue.value = selectedValues; +const onResultConfirm = (selected) => { + form.value.maintenanceResult = selected.value; + maintenanceResultText.value = selected.name; showResult.value = false; }; @@ -233,7 +243,7 @@ // 璁剧疆淇濆吇浜轰负褰撳墠鐢ㄦ埛鏄电О 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()]; }; @@ -249,6 +259,7 @@ </script> <style scoped lang="scss"> +@import '@/static/scss/form-common.scss'; .upkeep-maintain { min-height: 100vh; background: #f8f9fa; -- Gitblit v1.9.3