From 57edd9bbf983aca0ac64cebdba2be0a1f82d3f64 Mon Sep 17 00:00:00 2001 From: 13121765685 Date: Wed, 14 Jan 2026 14:11:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .trae/documents/添加备案号图标和悬浮弹窗.md | 37 ++++ apps/frontend/src/App.vue | 6 +- .../src/components/PurchaseModal/index.vue | 20 ++- .../src/components/layout/AppSidebar.vue | 169 +++++++++++++++++- apps/frontend/src/locales/index.js | 11 +- apps/frontend/src/views/Login/Login.vue | 2 +- apps/frontend/src/views/home/index.vue | 20 +-- apps/frontend/vite.config.js | 4 +- packages/utils/src/servers/payserver.js | 5 +- packages/utils/src/utils/request.js | 2 +- 10 files changed, 254 insertions(+), 22 deletions(-) create mode 100644 .trae/documents/添加备案号图标和悬浮弹窗.md diff --git a/.trae/documents/添加备案号图标和悬浮弹窗.md b/.trae/documents/添加备案号图标和悬浮弹窗.md new file mode 100644 index 0000000..febdb48 --- /dev/null +++ b/.trae/documents/添加备案号图标和悬浮弹窗.md @@ -0,0 +1,37 @@ +# 实现步骤 + +1. **修改导航组件**:在 `AppSidebar.vue` 中添加备案号图标项 + - 在 `coreMenuItems` 数组末尾添加一个新的菜单项 + - 使用自定义 SVG 实现圆形叹号图标(或使用现有图标组件) + +2. **实现悬浮弹窗功能**: + - 添加一个响应式状态来控制弹窗的显示/隐藏 + - 实现鼠标悬停和点击事件处理 + - 设计弹窗样式,确保在右侧悬浮显示 + - 添加备案号文本:"蜀ICP备2024078618号-2" + +3. **样式设计**: + - 设计圆形图标样式,与现有导航项保持一致 + - 设计弹窗样式,包含背景、边框、阴影等 + - 确保弹窗在不同屏幕尺寸下正确显示 + +4. **响应式处理**: + - 桌面端:鼠标悬停显示弹窗 + - 移动端:点击图标显示/隐藏弹窗 + - 添加媒体查询,确保在不同设备上的兼容性 + +5. **代码优化**: + - 确保代码符合项目的代码规范 + - 添加适当的注释 + - 测试交互效果 + +# 预期效果 + +- 在导航菜单中添加一个圆形叹号图标 +- 鼠标悬停或点击图标时,在右侧显示包含备案号的悬浮弹窗 +- 弹窗具有良好的视觉效果和交互体验 +- 适配移动端、桌面端和平板端 + +# 文件修改 + +- `d:\work\Aiproject\DeotalandAi\apps\frontend\src\components\layout\AppSidebar.vue` \ No newline at end of file diff --git a/apps/frontend/src/App.vue b/apps/frontend/src/App.vue index b19ff34..e9737bb 100644 --- a/apps/frontend/src/App.vue +++ b/apps/frontend/src/App.vue @@ -6,6 +6,7 @@ import AppHeader from '@/components/layout/AppHeader.vue' import AppSidebar from '@/components/layout/AppSidebar.vue' import { useAuthStore } from '@/stores/auth'; import footerCom from './components/footerBeiAn/index.vue'; +import {isWeChatBrowser} from '@deotaland/utils'; const authStore = useAuthStore(); authStore.updateUserInfo() const route = useRoute() @@ -42,6 +43,9 @@ const closeMethods = { qmLoading.value = false; } } +const isCn =()=>{ + return window.location.href.indexOf('cn')>-1 +} window.setElLoading = (qp=false)=>{ if(qp){ qmLoading.value = true @@ -96,7 +100,7 @@ onMounted(() => {
- + \ No newline at end of file diff --git a/apps/frontend/src/locales/index.js b/apps/frontend/src/locales/index.js index 7b32165..e2ca54d 100644 --- a/apps/frontend/src/locales/index.js +++ b/apps/frontend/src/locales/index.js @@ -1,5 +1,14 @@ import { isWeChatBrowser } from '@deotaland/utils' -let savedLang = localStorage.getItem('lang') || (isWeChatBrowser()?'zh':'en') +const isZh = ()=>{ + if(isWeChatBrowser()){ + return true + } + if(window.location.href.indexOf('cn')>-1){ + return true + } + return false +} +let savedLang = localStorage.getItem('lang') || (isZh()?'zh':'en') export default { legacy: false, locale: savedLang, diff --git a/apps/frontend/src/views/Login/Login.vue b/apps/frontend/src/views/Login/Login.vue index f79aa78..2f9fc42 100644 --- a/apps/frontend/src/views/Login/Login.vue +++ b/apps/frontend/src/views/Login/Login.vue @@ -153,7 +153,7 @@ const goToPhoneLogin = () => { // 页面挂载时初始化认证状态 onMounted(() => { // detectEnvironment() - isWeChatBrowser()&&goToPhoneLogin() + // isWeChatBrowser()&&goToPhoneLogin() }) diff --git a/apps/frontend/src/views/home/index.vue b/apps/frontend/src/views/home/index.vue index dc2a123..fbe1726 100644 --- a/apps/frontend/src/views/home/index.vue +++ b/apps/frontend/src/views/home/index.vue @@ -35,30 +35,30 @@ {{ t('nav.land') }} --> - {{ t('nav.creator') }} - - --> + + + @@ -519,12 +519,12 @@ -
+
diff --git a/apps/frontend/vite.config.js b/apps/frontend/vite.config.js index 915cfba..809d0cd 100644 --- a/apps/frontend/vite.config.js +++ b/apps/frontend/vite.config.js @@ -66,8 +66,8 @@ export default defineConfig({ // 配置代理解决CORS问题 proxy: { '/api': { - // target: 'https://api.deotaland.ai', - target: 'http://api.deotaland.local', + target: 'https://api.deotaland.ai', + // target: 'http://api.deotaland.local', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') } diff --git a/packages/utils/src/servers/payserver.js b/packages/utils/src/servers/payserver.js index c09786b..8016dcc 100644 --- a/packages/utils/src/servers/payserver.js +++ b/packages/utils/src/servers/payserver.js @@ -155,7 +155,6 @@ export class PayServer { payReducerUrl = `${window.location.origin}/#/order-management` pamras = { product_id: orderInfo.product_id, - shop_id: orderInfo.shop_id || '', "methods": [ "card" ], @@ -167,6 +166,9 @@ export class PayServer { "order_info": orderInfo.order_info, "coupon_ids": orderInfo.coupon_ids || [], } + if(orderInfo.shop_id){ + pamras.shop_id = orderInfo.shop_id + } break; case 2: payReducerUrl = `${window.location.origin}/#/points-recharge` @@ -182,6 +184,7 @@ export class PayServer { default: break; } + let requestUrl = { 1: clientApi.default.createPayorOrder, 2: clientApi.default.CREATE_RECHARGE_ORDER, diff --git a/packages/utils/src/utils/request.js b/packages/utils/src/utils/request.js index ae3e026..71ad6bd 100644 --- a/packages/utils/src/utils/request.js +++ b/packages/utils/src/utils/request.js @@ -19,7 +19,7 @@ const getEnvBaseURL = () => { const hostname = window.location.hostname; if(hostname=='localhost'){ baseURL = '/api' - }else if(hostname.indexOf('deotaland.ai')>-1){ + }else if(hostname.indexOf('deotaland.ai')>-1||hostname.indexOf('deota.cn')>-1){ baseURL = 'https://api.deotaland.ai' }else if(hostname.indexOf('deotaland.local')>-1){ baseURL = 'http://api.deotaland.local'