Ver Fonte

修复服务项目的bug

Huanyi há 1 semana atrás
pai
commit
842943c754

+ 17 - 3
src/components/PetDetailDrawer/index.vue

@@ -163,9 +163,19 @@ const historyOrders = ref([])
 const detailActiveTab = ref('info')
 const remarkDialogVisible = ref(false)
 const remarkContent = ref('')
+const internalServiceList = ref([])
 
-// 直接使用父组件传入的服务列表数据
-const serviceOptions = computed(() => props.serviceList || [])
+// 优先使用父组件传入的服务列表数据,若无则使用内部加载的数据
+const serviceOptions = computed(() => (props.serviceList && props.serviceList.length > 0) ? props.serviceList : internalServiceList.value)
+
+const getServiceList = () => {
+  if (props.serviceList && props.serviceList.length > 0) return;
+  import('@/api/service/list/index').then(api => {
+    api.listAllService().then((res) => {
+      internalServiceList.value = res.data || [];
+    });
+  });
+};
 
 const getServiceName = (serviceId) => {
   const item = serviceOptions.value.find((i) => i.id === serviceId)
@@ -199,6 +209,8 @@ const loadData = async (id) => {
   listSubOrderOnPet(id).then((res) => {
     historyOrders.value = res.data || []
   })
+
+  getServiceList()
 }
 
 const handleRemark = () => {
@@ -228,7 +240,9 @@ watch(() => props.visible, (val) => {
 })
 
 onMounted(() => {
-  // 服务列表数据由父组件传入,无需在这里请求
+  if (props.visible && props.petId) {
+    getServiceList()
+  }
 })
 </script>
 

+ 1 - 1
src/views/order/dispatch/components/DispatchDialog.vue

@@ -158,7 +158,7 @@
     </el-dialog>
 
     <CustomerDetailDrawer v-model:visible="customerDialogVisible" :customer-id="customerId" :service-list="serviceList" :area-station-list="areaStationList" />
-    <PetDetailDrawer v-model:visible="petDialogVisible" :pet-id="petId" />
+    <PetDetailDrawer v-model:visible="petDialogVisible" :pet-id="petId" :service-list="serviceOptions" />
 </template>
 
 <script setup>

+ 1 - 1
src/views/order/orderList/components/DispatchDialog.vue

@@ -158,7 +158,7 @@
     </el-dialog>
 
     <CustomerDetailDrawer v-model:visible="customerDialogVisible" :customer-id="customerId" :area-station-list="areaStationList" />
-    <PetDetailDrawer v-model:visible="petDialogVisible" :pet-id="petId" />
+    <PetDetailDrawer v-model:visible="petDialogVisible" :pet-id="petId" :service-list="serviceOptions" />
 </template>
 
 <script setup>

+ 4 - 4
src/views/order/orderList/index.vue

@@ -398,10 +398,10 @@ const getServiceModeTag = (row) => {
 
 const getServiceOrderTypeTag = (row) => {
   const t = row?.type;
-  if (t === 0 || t === '0') return { label: '接', type: 'primary' };
-  if (t === 1 || t === '1') return { label: '送', type: 'success' };
-  if (t === 2 || t === '2') return { label: '单程接', type: 'primary' };
-  if (t === 3 || t === '3') return { label: '单程送', type: 'success' };
+  if (t === 0 || t === '0') return { label: '接', type: 'primary' as const };
+  if (t === 1 || t === '1') return { label: '送', type: 'success' as const };
+  if (t === 2 || t === '2') return { label: '单程接', type: 'primary' as const };
+  if (t === 3 || t === '3') return { label: '单程送', type: 'success' as const };
   return null;
 };
 

+ 2 - 2
vite.config.ts

@@ -25,8 +25,8 @@ export default defineConfig(({ mode, command }) => {
       // open: true,
       proxy: {
         [env.VITE_APP_BASE_API]: {
-          target: 'http://127.0.0.1:8080',
-          // target: 'http://www.hoomeng.pet/api',
+          // target: 'http://127.0.0.1:8080',
+          target: 'http://www.hoomeng.pet/api',
           changeOrigin: true,
           ws: true,
           rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')