Parcourir la source

fix:修复服务预约模块时间未格式化,错误信息没有优先使用服务端返回信息的问题

yangyi il y a 4 mois
Parent
commit
e0ffac6b24

+ 1 - 1
src/util/axios-instance.ts

@@ -32,7 +32,7 @@ axiosInstance.interceptors.response.use(
             // 未授权,跳转登录
             window.location.href = '/login';
         }
-        return Promise.reject(error);
+        return Promise.reject(error.response.data.message || error);
     }
 );
 

+ 6 - 3
src/view/booking/BoardingBookingView.vue

@@ -94,8 +94,8 @@
         <el-descriptions :column="2" border>
           <el-descriptions-item label="套餐">{{ selectedPackage?.name }}</el-descriptions-item>
           <el-descriptions-item label="房型">{{ selectedRoom?.name }}</el-descriptions-item>
-          <el-descriptions-item label="入住">{{ dateRange?.[0] }}</el-descriptions-item>
-          <el-descriptions-item label="离店">{{ dateRange?.[1] }}</el-descriptions-item>
+          <el-descriptions-item label="入住">{{ formatDate(dateRange?.[0]) }}</el-descriptions-item>
+          <el-descriptions-item label="离店">{{ formatDate(dateRange?.[1]) }}</el-descriptions-item>
           <el-descriptions-item label="宠物">{{ selectedPet?.name }}</el-descriptions-item>
           <el-descriptions-item label="总价">¥{{ totalPrice }}</el-descriptions-item>
         </el-descriptions>
@@ -257,6 +257,9 @@ const calcTotal = () => {
   }
 }
 
+const formatDate = (d: Date | undefined): string =>
+  d ? `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}` : ''
+
 const onPetSelected = (pet: Pet) => {
   selectedPet.value = pet
 }
@@ -281,7 +284,7 @@ const handleSubmit = async () => {
       ElMessage.error(res.message || '预约提交失败')
     }
   } catch (err: any) {
-    ElMessage.error(err.message || '预约提交失败')
+    ElMessage.error(err?.response?.data?.message || err?.message || err || '预约提交失败')
   }
 }
 

+ 7 - 2
src/view/booking/GroomingBookingView.vue

@@ -73,7 +73,7 @@
         <el-descriptions :column="2" border>
           <el-descriptions-item label="套餐">{{ selectedPackage?.name }}</el-descriptions-item>
           <el-descriptions-item label="价格">¥{{ selectedPackage?.price }}</el-descriptions-item>
-          <el-descriptions-item label="日期">{{ selectedDate }}</el-descriptions-item>
+          <el-descriptions-item label="日期">{{ formatDate(selectedDate) }}</el-descriptions-item>
           <el-descriptions-item label="时段">{{ timeSlotLabel }}</el-descriptions-item>
           <el-descriptions-item label="宠物">{{ selectedPet?.name }}</el-descriptions-item>
         </el-descriptions>
@@ -170,6 +170,11 @@ const fetchPets = async () => {
   }
 }
 
+const formatDate = (d: Date | null): string =>
+  d
+    ? `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`
+    : ''
+
 const onPetSelected = (pet: Pet) => {
   selectedPet.value = pet
 }
@@ -193,7 +198,7 @@ const handleSubmit = async () => {
       ElMessage.error(res.message || '预约提交失败')
     }
   } catch (err: any) {
-    ElMessage.error(err.message || '预约提交失败')
+    ElMessage.error(err?.response?.data?.message || err?.message || err || '预约提交失败')
   }
 }