diff --git a/TUICallKit-Vue3/main.js b/TUICallKit-Vue3/main.js index ce23c462..e6a8b7f1 100644 --- a/TUICallKit-Vue3/main.js +++ b/TUICallKit-Vue3/main.js @@ -1,5 +1,5 @@ import App from './App' -var baseUrl ='https://css.zhenyangtang.com.cn/'; +var baseUrl ='https://admin.zhenyangtang.com.cn/'; function joinApiUrl(base, path) { const b = String(base || '').replace(/\/+$/, '') diff --git a/TUICallKit-Vue3/tongji/components/FoodTileIcon.vue b/TUICallKit-Vue3/tongji/components/FoodTileIcon.vue index 413585a0..73451ef4 100644 --- a/TUICallKit-Vue3/tongji/components/FoodTileIcon.vue +++ b/TUICallKit-Vue3/tongji/components/FoodTileIcon.vue @@ -66,8 +66,8 @@ function onImageError() { left: 50%; top: 50%; transform: translate(-50%, -50%); - width: 58%; - height: 58%; + width: 75%; + height: 75%; z-index: 2; } diff --git a/TUICallKit-Vue3/tongji/data/gameFoodImg.js b/TUICallKit-Vue3/tongji/data/gameFoodImg.js index da960330..2c35bf60 100644 --- a/TUICallKit-Vue3/tongji/data/gameFoodImg.js +++ b/TUICallKit-Vue3/tongji/data/gameFoodImg.js @@ -32,7 +32,8 @@ export function warmUpFoodImgs(foods) { const list = Array.isArray(foods) ? foods : [] list.forEach((f) => { const icon = typeof f === 'string' ? f : f?.icon - const url = getFoodImgUrl(icon) + // 优先预热自定义图片素材,缺省回退 emoji PNG + const url = (typeof f === 'object' && f?.img) ? f.img : getFoodImgUrl(icon) if (!url) return // #ifdef MP-WEIXIN try { diff --git a/TUICallKit-Vue3/tongji/data/gameFoodLibrary.js b/TUICallKit-Vue3/tongji/data/gameFoodLibrary.js index 9ab52931..40956a42 100644 --- a/TUICallKit-Vue3/tongji/data/gameFoodLibrary.js +++ b/TUICallKit-Vue3/tongji/data/gameFoodLibrary.js @@ -58,7 +58,12 @@ const FOOD_TIP_OVERRIDE = { apple: '带皮整果,升糖较慢', milk: '低糖,含蛋白,适量喝好', fish: '优质蛋白,升糖低', - beef: '蛋白为主,升糖低' + beef: '蛋白为主,升糖低', + milkOats: '燕麦加奶,升糖中等,选无糖燕麦更好', + grainMantou: '杂粮做的,比白馒头稳,仍要控量', + riceNoodleSoup: '米粉升糖快,汤粉要少吃', + friedNoodles: '油多又是精面,升糖快', + centuryEggCongee: '白粥熬得软烂,升糖很快,糖友要少喝' } /** 含糖等级通用科普文案 */ @@ -76,6 +81,9 @@ export function getFoodTip(food) { return GI_TIP_DEFAULT[food.gi] || '' } +/** 自定义图片素材目录(腾讯云 COS,优先使用真实图片而非 emoji) */ +const GAMES_IMG_BASE = 'https://gz-1349751149.cos.ap-guangzhou.myqcloud.com/games' + const RAW_FOODS = [ // 低 GI { key: 'lettuce', icon: '🥬', name: '生菜', gi: 'low', val: -3, color: '#8BC34A' }, @@ -120,6 +128,8 @@ const RAW_FOODS = [ { key: 'coffee', icon: '☕', name: '咖啡', gi: 'mid', val: 2, color: '#6F4E37' }, { key: 'corn', icon: '🌽', name: '玉米', gi: 'mid', val: 5, color: '#F9C513' }, { key: 'udon', icon: '🍲', name: '乌冬面', gi: 'mid', val: 5, color: '#D9B88F' }, + { key: 'milkOats', icon: '🥣', name: '奶冲麦片', gi: 'mid', val: 6, color: '#E8D9B5', img: `${GAMES_IMG_BASE}/%E5%A5%B6%E5%86%B2%E9%BA%A6%E7%89%87.png` }, + { key: 'grainMantou', icon: '🫓', name: '杂粮馒头', gi: 'mid', val: 5, color: '#C8A878', img: `${GAMES_IMG_BASE}/%E6%9D%82%E7%B2%AE%E9%A6%92%E5%A4%B4.png` }, // 高 GI { key: 'whiteRice', icon: '🍚', name: '白米饭', gi: 'high', val: 18, color: '#E0E0E0' }, @@ -136,7 +146,10 @@ const RAW_FOODS = [ { key: 'maltose', icon: '🍬', name: '麦芽糖', gi: 'high', val: 24, color: '#FFA726' }, { key: 'soda', icon: '🥤', name: '汽水', gi: 'high', val: 25, color: '#C62828' }, { key: 'orangeJuice', icon: '🧃', name: '柳橙汁', gi: 'high', val: 22, color: '#FF9F1C' }, - { key: 'stickyRice', icon: '🍡', name: '糯米饭', gi: 'high', val: 19, color: '#F2A7B8' } + { key: 'stickyRice', icon: '🍡', name: '糯米饭', gi: 'high', val: 19, color: '#F2A7B8' }, + { key: 'riceNoodleSoup', icon: '🍜', name: '汤粉', gi: 'high', val: 16, color: '#E8C9A0', img: `${GAMES_IMG_BASE}/%E6%B1%A4%E7%B2%89.png` }, + { key: 'friedNoodles', icon: '🍝', name: '炒面', gi: 'high', val: 18, color: '#C8843C', img: `${GAMES_IMG_BASE}/%E7%82%92%E9%9D%A2.png` }, + { key: 'centuryEggCongee', icon: '🥣', name: '皮蛋瘦肉粥', gi: 'high', val: 15, color: '#D9CBB0', img: `${GAMES_IMG_BASE}/%E7%9A%AE%E8%9B%8B%E7%98%A6%E8%82%89%E7%B2%A5.png` } ] export const FOOD_LIBRARY = RAW_FOODS.map((f, i) => { @@ -149,7 +162,8 @@ export const FOOD_LIBRARY = RAW_FOODS.map((f, i) => { clearVal, giLabel: GI_LABEL[f.gi], get img() { - return getFoodImgUrl(f.icon) + // 优先使用自定义图片素材,缺省回退到 emoji PNG + return f.img || getFoodImgUrl(f.icon) } } }) @@ -170,6 +184,6 @@ export function cloneFoodType(food) { giLabel: food.giLabel, val: food.val, color: food.color, - img: getFoodImgUrl(food.icon) + img: food.img || getFoodImgUrl(food.icon) } } diff --git a/TUICallKit-Vue3/tongji/data/gameLevels.js b/TUICallKit-Vue3/tongji/data/gameLevels.js index 165c5a60..11d930c6 100644 --- a/TUICallKit-Vue3/tongji/data/gameLevels.js +++ b/TUICallKit-Vue3/tongji/data/gameLevels.js @@ -2,6 +2,14 @@ * 关卡配置:面向 45+ 的认知练习,节奏放慢、无失败惩罚。 * 每组目标只比上一组略增,步数充裕(仅展示,不会因耗尽判负)。 */ +/** + * 指定关卡固定食材(按 key)。未配置的关卡走随机抽取逻辑。 + * 第一关固定为这 5 种带真实图片素材的食物。 + */ +const FIXED_LEVEL_FOODS = { + 1: ['milkOats', 'grainMantou', 'riceNoodleSoup', 'friedNoodles', 'centuryEggCongee'] +} + export function getLevelConfig(levelId) { const lv = Math.max(1, Math.min(999, Number(levelId) || 1)) const tier = Math.floor((lv - 1) / 5) @@ -14,6 +22,8 @@ export function getLevelConfig(levelId) { goalTargets: [6 + tier, 8 + tier], scoreTarget: 2000 + lv * 300, startGlucose: 50, + // 固定食材(可选):存在时本关只用这些食物 + foods: FIXED_LEVEL_FOODS[lv] || null, boosters: { insulin: 3, fiber: 1, diff --git a/TUICallKit-Vue3/tongji/pages/game.vue b/TUICallKit-Vue3/tongji/pages/game.vue index 9620e04d..be42795c 100644 --- a/TUICallKit-Vue3/tongji/pages/game.vue +++ b/TUICallKit-Vue3/tongji/pages/game.vue @@ -158,29 +158,37 @@ - 上次消除 + + 上次消除 + + + {{ lastClearedFood.giShort }} + + - + {{ lastClearedFood.name }} - 含糖量 - {{ lastClearedFood.giShort }} + + 含糖 {{ lastClearedFood.giShort }} + {{ lastClearedFood.eatHint }} + 三连消除后,这里显示食物名称与含糖量 @@ -290,6 +298,7 @@ import { getClearVal, getFoodTip, formatEatLabel, + getFoodByKey, GI_SHORT, GI_COLOR } from '../data/gameFoodLibrary.js' @@ -365,6 +374,25 @@ function pickRandom(pool, n) { * 低/中各若干 + 仅 1 种高糖;再从中挑 2 种作为收集目标。 */ function selectSessionFoods() { + // 固定食材关卡(如第一关):只用配置里的这些食物 + const fixedKeys = levelConfig.value.foods + if (Array.isArray(fixedKeys) && fixedKeys.length) { + const fixed = fixedKeys.map((k) => getFoodByKey(k)).filter(Boolean) + const fixedHighs = fixed.filter((f) => f.gi === 'high') + const fixedHighPick = pickRandom(fixedHighs, 1) + sessionHighFood.value = fixedHighPick[0] ? cloneFoodType(fixedHighPick[0]) : null + + activeFoods.value = fixed + warmUpFoodImgs(fixed) + + const goalFoods = pickRandom(fixed, 2) + const fixedTargets = levelConfig.value.goalTargets || [10, 12] + goalDefs.value = goalFoods.map((f, i) => ({ key: f.key, food: cloneFoodType(f), target: fixedTargets[i] ?? 10 })) + + rebuildGoals() + return + } + const lows = FOOD_LIBRARY.filter((f) => f.gi === 'low') const mids = FOOD_LIBRARY.filter((f) => f.gi === 'mid') const highs = FOOD_LIBRARY.filter((f) => f.gi === 'high') @@ -554,7 +582,7 @@ const gridStyle = computed(() => { } if (w > 0 && h > 0) { style.width = `${w}px` - style.height = `${h}px` + style.height = `${h+10}px` } return style }) diff --git a/TUICallKit-Vue3/tongji/styles/game-stitch.scss b/TUICallKit-Vue3/tongji/styles/game-stitch.scss index e24868a0..a99b4666 100644 --- a/TUICallKit-Vue3/tongji/styles/game-stitch.scss +++ b/TUICallKit-Vue3/tongji/styles/game-stitch.scss @@ -124,39 +124,122 @@ color: #64748b; } -/* ===== 次:上次消除(名称 + 含糖量) ===== */ +/* ===== 次:上次消除(名称 + 含糖量),GI 三色编码学习卡 ===== */ .game-page .gg-hud-last-food { flex-shrink: 0; width: 100%; max-width: 750rpx; margin: 0 auto 14rpx; - padding: 16rpx 18rpx; - border-radius: 22rpx; - background: rgba(255, 255, 255, 0.88); + padding: 16rpx 18rpx 18rpx; + border-radius: 26rpx; + background: rgba(255, 255, 255, 0.92); border: 1rpx solid rgba(0, 108, 73, 0.1); box-sizing: border-box; - box-shadow: 0 4rpx 16rpx rgba(0, 108, 73, 0.06); + box-shadow: 0 6rpx 20rpx rgba(0, 108, 73, 0.07); +} + +/* 头部:标题 + GI 状态胶囊 */ +.game-page .gg-hud-last-food-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12rpx; + margin-bottom: 12rpx; } .game-page .gg-hud-last-food-kicker { - display: block; - font-size: 24rpx; - font-weight: 700; - color: #475569; - letter-spacing: 0.04em; - margin-bottom: 12rpx; - line-height: 1.3; -} - -.game-page .gg-hud-last-food-card { display: flex; align-items: center; - gap: 16rpx; - padding: 14rpx 16rpx; - border-radius: 18rpx; + font-size: 24rpx; + font-weight: 800; + color: #64748b; + letter-spacing: 0.08em; + line-height: 1.3; + padding-left: 16rpx; + position: relative; +} + +.game-page .gg-hud-last-food-kicker::before { + content: ''; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 6rpx; + height: 24rpx; + border-radius: 3rpx; + background: #006c49; +} + +/* 头部 GI 胶囊 */ +.game-page .gg-hud-last-food-chip { + display: flex; + align-items: center; + gap: 8rpx; + padding: 5rpx 16rpx 5rpx 12rpx; + border-radius: 999rpx; + font-weight: 800; + line-height: 1; + border: 1rpx solid transparent; +} + +.game-page .gg-hud-last-food-chip-dot { + width: 14rpx; + height: 14rpx; + border-radius: 50%; + flex-shrink: 0; +} + +.game-page .gg-hud-last-food-chip-text { + font-size: 24rpx; + font-weight: 800; +} + +.game-page .gg-hud-last-food-chip.is-low { + background: rgba(22, 163, 74, 0.12); + border-color: rgba(22, 163, 74, 0.22); +} +.game-page .gg-hud-last-food-chip.is-low .gg-hud-last-food-chip-dot { background: #16a34a; } +.game-page .gg-hud-last-food-chip.is-low .gg-hud-last-food-chip-text { color: #15803d; } + +.game-page .gg-hud-last-food-chip.is-mid { + background: rgba(234, 88, 12, 0.12); + border-color: rgba(234, 88, 12, 0.22); +} +.game-page .gg-hud-last-food-chip.is-mid .gg-hud-last-food-chip-dot { background: #ea580c; } +.game-page .gg-hud-last-food-chip.is-mid .gg-hud-last-food-chip-text { color: #c2410c; } + +.game-page .gg-hud-last-food-chip.is-high { + background: rgba(220, 38, 38, 0.12); + border-color: rgba(220, 38, 38, 0.24); +} +.game-page .gg-hud-last-food-chip.is-high .gg-hud-last-food-chip-dot { background: #dc2626; } +.game-page .gg-hud-last-food-chip.is-high .gg-hud-last-food-chip-text { color: #b91c1c; } + +/* 主卡:左侧 GI 强调条 + 图标 + 文案 */ +.game-page .gg-hud-last-food-card { + position: relative; + display: flex; + align-items: center; + gap: 18rpx; + padding: 16rpx 18rpx 16rpx 24rpx; + border-radius: 20rpx; + overflow: hidden; background: #f8fafc; - border: 1rpx solid rgba(0, 108, 73, 0.08); - animation: gg-last-food-in 0.22s ease-out; + border: 1rpx solid rgba(15, 23, 42, 0.06); + animation: gg-last-food-in 0.24s cubic-bezier(0.22, 1, 0.36, 1); +} + +/* 左侧强调条(GI 三色) */ +.game-page .gg-hud-last-food-card::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 8rpx; + border-radius: 8rpx; + background: #cbd5e1; } @media (prefers-reduced-motion: reduce) { @@ -166,35 +249,44 @@ } .game-page .gg-hud-last-food-card.is-high { - background: rgba(254, 242, 242, 0.9); - border-color: rgba(220, 38, 38, 0.2); + background: linear-gradient(90deg, rgba(254, 226, 226, 0.85) 0%, rgba(254, 242, 242, 0.6) 60%); + border-color: rgba(220, 38, 38, 0.18); } +.game-page .gg-hud-last-food-card.is-high::before { background: #dc2626; } .game-page .gg-hud-last-food-card.is-mid { - background: rgba(255, 251, 235, 0.95); - border-color: rgba(234, 88, 12, 0.18); + background: linear-gradient(90deg, rgba(255, 237, 213, 0.85) 0%, rgba(255, 251, 235, 0.6) 60%); + border-color: rgba(234, 88, 12, 0.16); } +.game-page .gg-hud-last-food-card.is-mid::before { background: #ea580c; } .game-page .gg-hud-last-food-card.is-low { - background: rgba(240, 253, 244, 0.95); - border-color: rgba(22, 163, 74, 0.15); + background: linear-gradient(90deg, rgba(220, 252, 231, 0.85) 0%, rgba(240, 253, 244, 0.6) 60%); + border-color: rgba(22, 163, 74, 0.16); } +.game-page .gg-hud-last-food-card.is-low::before { background: #16a34a; } +/* 图标:白底 + GI 彩色描边环 */ .game-page .gg-hud-last-food-icon { - width: 72rpx; - height: 72rpx; + width: 80rpx; + height: 80rpx; flex-shrink: 0; display: flex; align-items: center; justify-content: center; - border-radius: 16rpx; + border-radius: 18rpx; background: #fff; - box-shadow: 0 2rpx 8rpx rgba(15, 23, 42, 0.06); + border: 2rpx solid rgba(15, 23, 42, 0.06); + box-shadow: 0 3rpx 10rpx rgba(15, 23, 42, 0.08); } +.game-page .gg-hud-last-food-icon.is-low { border-color: rgba(22, 163, 74, 0.35); } +.game-page .gg-hud-last-food-icon.is-mid { border-color: rgba(234, 88, 12, 0.35); } +.game-page .gg-hud-last-food-icon.is-high { border-color: rgba(220, 38, 38, 0.4); } + .game-page .gg-hud-last-food-icon .food-tile-icon--goal { - width: 56rpx; - height: 56rpx; + width: 62rpx; + height: 62rpx; } .game-page .gg-hud-last-food-body { @@ -206,10 +298,10 @@ } .game-page .gg-hud-last-food-name { - font-size: 34rpx; - font-weight: 800; + font-size: 36rpx; + font-weight: 900; color: #0f172a; - line-height: 1.25; + line-height: 1.2; word-break: break-all; } @@ -217,42 +309,61 @@ display: flex; flex-wrap: wrap; align-items: center; - gap: 8rpx 12rpx; + gap: 8rpx 14rpx; } -.game-page .gg-hud-last-food-sugar-label { - font-size: 26rpx; - font-weight: 700; - color: #475569; +/* 含糖等级徽标:GI 三色实底 + 白字(保证对比度) */ +.game-page .gg-hud-last-food-gi { + display: inline-flex; + align-items: center; + padding: 5rpx 16rpx; + border-radius: 999rpx; line-height: 1.3; } -.game-page .gg-hud-last-food-gi { +.game-page .gg-hud-last-food-gi-text { font-size: 26rpx; font-weight: 800; color: #fff; - padding: 4rpx 14rpx; - border-radius: 8rpx; - line-height: 1.3; + letter-spacing: 0.02em; } +.game-page .gg-hud-last-food-gi.is-low { background: #16a34a; box-shadow: 0 2rpx 8rpx rgba(22, 163, 74, 0.3); } +.game-page .gg-hud-last-food-gi.is-mid { background: #ea580c; box-shadow: 0 2rpx 8rpx rgba(234, 88, 12, 0.3); } +.game-page .gg-hud-last-food-gi.is-high { background: #dc2626; box-shadow: 0 2rpx 8rpx rgba(220, 38, 38, 0.32); } + .game-page .gg-hud-last-food-sugar-hint { font-size: 26rpx; font-weight: 700; - color: #334155; + color: #475569; line-height: 1.35; } -.game-page .gg-hud-last-food-card.is-high .gg-hud-last-food-sugar-hint { - color: #991b1b; +.game-page .gg-hud-last-food-card.is-high .gg-hud-last-food-sugar-hint { color: #b91c1c; } +.game-page .gg-hud-last-food-card.is-mid .gg-hud-last-food-sugar-hint { color: #c2410c; } +.game-page .gg-hud-last-food-card.is-low .gg-hud-last-food-sugar-hint { color: #15803d; } + +/* 空态占位 */ +.game-page .gg-hud-last-food-placeholder { + display: flex; + align-items: center; + gap: 12rpx; + padding: 18rpx 16rpx; + border-radius: 20rpx; + background: #f8fafc; + border: 1rpx dashed rgba(15, 23, 42, 0.12); } -.game-page .gg-hud-last-food-placeholder { - padding: 12rpx 4rpx; +.game-page .gg-hud-last-food-placeholder-dot { + width: 16rpx; + height: 16rpx; + border-radius: 50%; + flex-shrink: 0; + background: #cbd5e1; } .game-page .gg-hud-last-food-placeholder text { - font-size: 28rpx; + font-size: 27rpx; font-weight: 600; color: #94a3b8; line-height: 1.45; @@ -435,7 +546,7 @@ justify-content: flex-start; box-sizing: border-box; overflow: hidden; - padding: 8rpx 16rpx 0; + padding: 8rpx 1rpx 0; } /* gg-hint-banner 已移除,提示直接显示在棋盘食物上 */ @@ -772,7 +883,7 @@ } .game-page .gg-tile-gi.is-low { background: #16a34a; } -.game-page .gg-tile-gi.is-mid { background: #ea580c; } +.game-page .gg-tile-gi.is-mid { background: #e67e22; } .game-page .gg-tile-gi.is-high { background: #dc2626; box-shadow: 0 2rpx 10rpx rgba(220, 38, 38, 0.45); diff --git a/admin/src/components/tcm-prescription/index.vue b/admin/src/components/tcm-prescription/index.vue index 5abc7cc5..018d9f52 100644 --- a/admin/src/components/tcm-prescription/index.vue +++ b/admin/src/components/tcm-prescription/index.vue @@ -559,7 +559,11 @@
{{ prescriptionTabType === 'internal' ? '药房联' : SLIP_TITLE }}
- 服药前请核对姓名、电话、医生等信息以及服法、医嘱等要点 + {{ + prescriptionTabType === 'user' + ? '服药前请核对姓名、电话、医生等信息以及医嘱等要点' + : '服药前请核对姓名、电话、医生等信息以及服法、医嘱等要点' + }} 日期:{{ rxDateText }} @@ -678,22 +682,30 @@
-

主方服法:{{ rxUsageText }}

-

服法:{{ rxUsageText }}

-

{{ prescriptionTabType === 'user' ? '辅服法' : '辅方服法' }}:{{ savedAuxUsageText }}

+

医嘱:{{ rxAdviceText }}

-

备注:{{ rxRemarkText }}

+

备注:{{ rxRemarkText }}

忌口:{{ Array.isArray(savedPrescription.dietary_taboo) ? savedPrescription.dietary_taboo.join('、') : savedPrescription.dietary_taboo }}

药房备注:{{ rxPharmacyRemarkText }}

-

+

出丸:{{ rxOutPelletText }}

-
+
医师
@@ -703,10 +715,12 @@ alt="医师签名" class="rx-bot-sign-img" /> -
{{ savedPrescription.doctor_name || '—' }}
+
+ {{ savedPrescription.doctor_name || '—' }} +
-
+
类型: {{ rxTypeText }}
@@ -714,7 +728,7 @@ 天数: {{ rxSlipMedicationDaysText }}
-
+
剂量: {{ rxPerDoseAmount }}克
@@ -2970,6 +2984,10 @@ defineExpose({ min-height: 70px; } +.rx-bot-row-1--user { + grid-template-columns: 1.4fr 0.6fr; +} + .rx-hospital-row { display: flex; flex-direction: column; diff --git a/admin/src/views/consumer/prescription/index.vue b/admin/src/views/consumer/prescription/index.vue index f854a294..f9e54a36 100644 --- a/admin/src/views/consumer/prescription/index.vue +++ b/admin/src/views/consumer/prescription/index.vue @@ -458,7 +458,9 @@ alt="医师签名" class="rx-bot-sign-img" /> -
{{ slipView.doctor_name || '—' }}
+
+ {{ slipView.doctor_name || '—' }} +
diff --git a/admin/src/views/consumer/prescription/order_list.vue b/admin/src/views/consumer/prescription/order_list.vue index 20a48bb3..74e2cfaf 100644 --- a/admin/src/views/consumer/prescription/order_list.vue +++ b/admin/src/views/consumer/prescription/order_list.vue @@ -2513,7 +2513,11 @@
{{ prescriptionTabType === 'internal' ? '药房联' : SLIP_TITLE }}
- 服药前请核对姓名、电话、医生等信息以及服法、医嘱等要点 + {{ + prescriptionTabType === 'user' + ? '服药前请核对姓名、电话、医生等信息以及医嘱等要点' + : '服药前请核对姓名、电话、医生等信息以及服法、医嘱等要点' + }}
@@ -2637,21 +2641,29 @@
-

主服法:{{ rxUsageText }}

-

服法:{{ rxUsageText }}

-

辅服法:{{ rxAuxUsageText }}

+

医嘱:{{ rxAdviceText }}

-

备注:{{ rxRemarkText }}

+

备注:{{ rxRemarkText }}

药房备注:{{ rxPharmacyRemarkText }}

-

+

出丸:{{ rxOutPelletText }}

-
+
医师
@@ -2661,11 +2673,14 @@ alt="医师签名" class="rx-bot-sign-img" /> - + {{ prescriptionViewData.doctor_name || '—' }}
-
+
类型: {{ rxTypeText }}
@@ -2679,7 +2694,7 @@ : '—' }}
-
+
剂量: {{ rxPerDoseAmount }}克
@@ -7109,6 +7124,10 @@ async function downloadPrescriptionSlipPdf() { min-height: 70px; } +.rx-bot-row-1--user { + grid-template-columns: 1.6fr 0.6fr; +} + .rx-bot-row-2 { grid-template-columns: repeat(6, 1fr); } diff --git a/admin/src/views/consumer/prescription/order_list_h5.vue b/admin/src/views/consumer/prescription/order_list_h5.vue index 5685180d..0b00dcaa 100644 --- a/admin/src/views/consumer/prescription/order_list_h5.vue +++ b/admin/src/views/consumer/prescription/order_list_h5.vue @@ -2300,7 +2300,10 @@ alt="医师签名" class="rx-bot-sign-img" /> - + {{ prescriptionViewData.doctor_name || '—' }}
diff --git a/admin/src/views/tcm/diagnosis/edit.vue b/admin/src/views/tcm/diagnosis/edit.vue index 7c56dbfd..3582f2b4 100644 --- a/admin/src/views/tcm/diagnosis/edit.vue +++ b/admin/src/views/tcm/diagnosis/edit.vue @@ -1262,7 +1262,7 @@ const handleSubmit = async () => { } const handleViewCase = (row: any) => { - prescriptionRef.value?.openById(row.id, { slipType: 'user', hideCaseRecord: true }) + prescriptionRef.value?.openById(row.id, { slipType: 'user' }) } // 开方:传入当前诊单数据,包含详细病历(深拷贝避免响应式引用)