Browse Source

图标头像加载修复

zhaohan 1 month ago
parent
commit
5de150d84c

File diff suppressed because it is too large
+ 0 - 0
RobotSample-main/app/src/main/assets/medical_triage/css/app.09c59828.css


File diff suppressed because it is too large
+ 0 - 0
RobotSample-main/app/src/main/assets/medical_triage/css/app.0fa1d7f9.css


+ 1 - 1
RobotSample-main/app/src/main/assets/medical_triage/index.html

@@ -22,4 +22,4 @@
         min-height: 100vh;
         min-height: 100dvh;
         min-height: -webkit-fill-available;
-      }</style><script defer="defer" src="js/chunk-vendors.ea83c1f4.js"></script><script defer="defer" src="js/app.1052ef3d.js"></script><link href="css/app.0fa1d7f9.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 甘肃省中医院 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
+      }</style><script defer="defer" src="js/chunk-vendors.ea83c1f4.js"></script><script defer="defer" src="js/app.75f65201.js"></script><link href="css/app.09c59828.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 甘肃省中医院 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

File diff suppressed because it is too large
+ 0 - 0
RobotSample-main/app/src/main/assets/medical_triage/js/app.1052ef3d.js


File diff suppressed because it is too large
+ 0 - 0
RobotSample-main/app/src/main/assets/medical_triage/js/app.1052ef3d.js.map


File diff suppressed because it is too large
+ 0 - 0
RobotSample-main/app/src/main/assets/medical_triage/js/app.330852b0.js


File diff suppressed because it is too large
+ 0 - 0
RobotSample-main/app/src/main/assets/medical_triage/js/app.330852b0.js.map


File diff suppressed because it is too large
+ 0 - 0
RobotSample-main/app/src/main/assets/medical_triage/js/app.75f65201.js


File diff suppressed because it is too large
+ 0 - 0
RobotSample-main/app/src/main/assets/medical_triage/js/app.75f65201.js.map


+ 8 - 8
medical-card-demo/frontend/src/components/ChatInterface.vue

@@ -3,7 +3,7 @@
     <!-- 头部 -->
     <div class="chat-header">
       <div class="header-avatar">
-        <img :src="brandLogoSrc" :alt="brandLogoAlt" class="header-logo">
+        <img :src="assetUrl('balogo.png')" :alt="brandLogoAlt" class="header-logo">
       </div>
       <div class="header-info">
         <h1 class="header-title">{{ brandHeaderTitle }}</h1>
@@ -30,12 +30,12 @@
         <div class="message-avatar" :class="message.type === 'user' ? 'avatar-user' : 'avatar-service'">
           <img
             v-if="message.type === 'user'"
-            src="/emoonloge.png"
+            :src="assetUrl('emoonloge.png')"
             alt="用户头像"
           >
           <img
             v-else
-            src="/lsxlz.jpg"
+            :src="assetUrl('lsxlz.jpg')"
             alt="机器人头像"
           >
         </div>
@@ -54,7 +54,7 @@
       <!-- 加载中 -->
       <div v-if="isLoading" class="message message-ai loading-message">
         <div class="message-avatar avatar-service">
-          <img src="/lsxlz.jpg" alt="机器人头像">
+          <img :src="assetUrl('lsxlz.jpg')" alt="机器人头像">
         </div>
         <div class="message-content">
           <div class="typing-indicator">
@@ -175,6 +175,7 @@ import {
   requestStartNavigation,
   requestStopNavigation
 } from '../utils/robotNavBridge.js'
+import { publicAssetUrl } from '../utils/publicAssetUrl.js'
 import DepartmentSelectionCard from './cards/DepartmentSelectionCard.vue'
 import DoctorSelectionCard from './cards/DoctorSelectionCard.vue'
 import AppointmentSuccessCard from './cards/AppointmentSuccessCard.vue'
@@ -201,8 +202,8 @@ export default {
     TongueDiagnosisResultCard
   },
   setup () {
-    /** 与后端 app.branding 同步;拉取失败时保持甘肃省中医院默认 */
-    const brandLogoSrc = ref('/szlogo.png')
+    const assetUrl = publicAssetUrl
+    /** 与后端 app.branding 同步;顶部医院旁图标固定为 public/balogo.png,不由接口覆盖 */
     const brandLogoAlt = ref('甘肃省中医院')
     const brandHeaderTitle = ref('甘肃省中医院')
     const brandHeaderSubtitle = ref('AI未来医院 · 统一智能体入口')
@@ -213,7 +214,6 @@ export default {
     async function applyBranding () {
       try {
         const b = await chatApi.fetchBranding()
-        if (b.logoPath) brandLogoSrc.value = b.logoPath
         if (b.logoAlt) brandLogoAlt.value = b.logoAlt
         if (b.headerTitle) brandHeaderTitle.value = b.headerTitle
         if (b.headerSubtitle != null && String(b.headerSubtitle).trim() !== '') {
@@ -1142,7 +1142,7 @@ export default {
     })
     
     return {
-      brandLogoSrc,
+      assetUrl,
       brandLogoAlt,
       brandHeaderTitle,
       brandHeaderSubtitle,

+ 3 - 1
medical-card-demo/frontend/src/services/welcomeAudio.js

@@ -1,10 +1,12 @@
+import { publicAssetUrl } from '../utils/publicAssetUrl.js'
+
 let currentWelcomeAudio = null
 
 /**
  * 播放本地欢迎语音频。
  * @returns {Promise<boolean>} true=成功开始播放,false=被自动播放策略拦截或失败
  */
-export async function playWelcomeAudio (src = '/hyy.wav') {
+export async function playWelcomeAudio (src = publicAssetUrl('hyy.wav')) {
   try {
     // 若已有欢迎音频在播放,避免重复创建
     if (currentWelcomeAudio && !currentWelcomeAudio.paused) {

+ 16 - 0
medical-card-demo/frontend/src/utils/publicAssetUrl.js

@@ -0,0 +1,16 @@
+/**
+ * public 目录下资源的访问 URL。与 {@link process.env.BASE_URL}(vue.config.js publicPath)一致,
+ * 在打包进 Android assets、子路径部署时避免误用网站根路径 `/xxx.png` 导致 404。
+ */
+export function publicAssetUrl (name) {
+  const base = typeof process !== 'undefined' && process.env && process.env.BASE_URL
+    ? String(process.env.BASE_URL)
+    : './'
+  if (base === './' || base === '.') {
+    return `./${name}`
+  }
+  if (base.endsWith('/')) {
+    return base + name
+  }
+  return `${base}/${name}`
+}

Some files were not shown because too many files changed in this diff