From 8c3e7c4f5639fdcd30a2fec9adce0c9d0e98c197 Mon Sep 17 00:00:00 2001 From: lzx_win <2602107437@qq.com> Date: Tue, 14 Oct 2025 14:06:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=92=8C=E4=BF=AE=E5=A4=8D=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新生产环境和开发环境的API基础路径 - 修复案例详情页的数据获取逻辑,优先使用API返回数据 - 为联系信息添加条件渲染防止空值显示 - 调整vite代理配置的目标端口 - 注释掉首页的客户评价组件 --- .env.development | 4 +-- .env.production | 2 +- src/App.vue | 6 ++-- src/components/home/CaseSection.vue | 4 ++- src/stores/cases.js | 5 +++- src/views/pages/CaseDetail.vue | 59 ++++++++++++++++++++++++++++--------- src/views/pages/Home.vue | 2 +- vite.config.js | 2 +- 8 files changed, 60 insertions(+), 24 deletions(-) diff --git a/.env.development b/.env.development index 7b19594..ec1a694 100644 --- a/.env.development +++ b/.env.development @@ -2,5 +2,5 @@ # 开发环境 -# VITE_APP_BASE_API = '/dev-api' -VITE_APP_BASE_API = 'http://42.194.239.145:8005/official' +VITE_APP_BASE_API = '/dev-api' +# VITE_APP_BASE_API = 'http://42.194.239.145:8005/official' diff --git a/.env.production b/.env.production index 39bf6ac..04b7a42 100644 --- a/.env.production +++ b/.env.production @@ -1,3 +1,3 @@ # 生产环境 -VITE_APP_BASE_API = 'http://42.194.239.145:8005/official' \ No newline at end of file +VITE_APP_BASE_API = 'https://official-admin.hhlm1688.com/official' \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index f48c5fe..dbf93ca 100644 --- a/src/App.vue +++ b/src/App.vue @@ -115,9 +115,9 @@ onMounted(() => { diff --git a/src/components/home/CaseSection.vue b/src/components/home/CaseSection.vue index b96ff28..2662ea1 100644 --- a/src/components/home/CaseSection.vue +++ b/src/components/home/CaseSection.vue @@ -2,9 +2,11 @@ // 导入案例项组件 import CaseItem from '../cases/CaseItem.vue'; import { useRouter } from 'vue-router'; +import { storeToRefs } from 'pinia'; import { useCasesStore } from '@/stores/cases' -const { selectedCase } = useCasesStore() +const casesStore = useCasesStore() +const { selectedCase } = storeToRefs(casesStore) // 获取路由实例 const router = useRouter(); diff --git a/src/stores/cases.js b/src/stores/cases.js index 08c4c0d..6db3926 100644 --- a/src/stores/cases.js +++ b/src/stores/cases.js @@ -104,13 +104,16 @@ export const useCasesStore = defineStore('cases', () => { } ]; - const selectedCase = ref(mockSelectedCases); + const selectedCase = ref([]); const getSelectedCase = async () => { try { const res = await api.getSelectedCase(); if (res.data && res.data.length > 0) { selectedCase.value = res.data; + } else { + // 如果API返回空数据,使用mock数据 + selectedCase.value = mockSelectedCases; } } catch (error) { console.error('获取精选案例失败:', error); diff --git a/src/views/pages/CaseDetail.vue b/src/views/pages/CaseDetail.vue index a44ee46..e4088cf 100644 --- a/src/views/pages/CaseDetail.vue +++ b/src/views/pages/CaseDetail.vue @@ -3,13 +3,14 @@ import { ref, onMounted, computed, watch } from 'vue'; import { useRoute, useRouter } from 'vue-router'; import PageHeader from '../../components/PageHeader.vue'; import { useCasesStore } from '@/stores/cases'; +import api from '@/api' const route = useRoute(); const router = useRouter(); const { selectedCase } = useCasesStore(); // 获取案例ID -const caseId = computed(() => Number(route.params.id)); +const caseId = computed(() => route.params.id); // 当前案例数据 const currentCase = ref(null); @@ -45,23 +46,29 @@ const defaultCaseData = { const getCaseDetail = async () => { console.log('当前案例ID:', caseId.value); console.log('所有案例:', selectedCase.value); + + // 调用API获取案例详情 + currentCase.value = await api.getCaseDetail(caseId.value); + if (currentCase.value.data) { + currentCase.value = currentCase.value.data; + } // 尝试从selectedCase中获取数据 - if (selectedCase.value && selectedCase.value.length > 0) { - const currentCaseData = selectedCase.value[0]; - console.log('使用的案例数据:', currentCaseData); + // if (selectedCase.value && selectedCase.value.length > 0) { + // const currentCaseData = selectedCase.value[0]; + // console.log('使用的案例数据:', currentCaseData); - // 处理图片路径,如果是数组则取第一个 - if (currentCaseData.imageUrl && typeof currentCaseData.imageUrl === 'string') { - currentCaseData.image = currentCaseData.imageUrl.split(',')[0]; - } + // // 处理图片路径,如果是数组则取第一个 + // if (currentCaseData.imageUrl && typeof currentCaseData.imageUrl === 'string') { + // currentCaseData.image = currentCaseData.imageUrl.split(',')[0]; + // } - currentCase.value = currentCaseData; - } else { - // 如果没有可用数据,使用默认的静态数据 - console.log('使用默认的静态数据'); - currentCase.value = defaultCaseData; - } + // currentCase.value = currentCaseData; + // } else { + // // 如果没有可用数据,使用默认的静态数据 + // console.log('使用默认的静态数据'); + // currentCase.value = defaultCaseData; + // } }; // 返回案例列表 @@ -154,6 +161,12 @@ onMounted(() => { + + + @@ -218,6 +231,24 @@ onMounted(() => { background-color: #0056b3; } +.btn-outline { + display: inline-block; + padding: 10px 20px; + background: transparent; + color: #007bff; + border: 2px solid #007bff; + border-radius: 6px; + text-decoration: none; + font-weight: 500; + transition: all 0.3s ease; +} + +.btn-outline:hover { + background: #007bff; + color: white; + transform: translateY(-2px); +} + .qrcode-image { max-width: 200px; margin: 0 auto; diff --git a/src/views/pages/Home.vue b/src/views/pages/Home.vue index f6eeb61..71627d0 100644 --- a/src/views/pages/Home.vue +++ b/src/views/pages/Home.vue @@ -138,7 +138,7 @@ onMounted(() => { - +
diff --git a/vite.config.js b/vite.config.js index 43401da..f053ac5 100644 --- a/vite.config.js +++ b/vite.config.js @@ -18,7 +18,7 @@ export default defineConfig(({ command, mode }) => { open: true, proxy: { [env.VITE_APP_BASE_API]: { - target: 'http://localhost:8080', + target: 'http://localhost:8000', changeOrigin: true, ws: true, rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')