fix(mobile): replace emoji glyphs with uni-icons and flex centering app-wide

- ChatComposer panel contract: callers now pass uni-icons type names
  (image/sound/list/help/checkmark) instead of emoji
- voice playback buttons: sound icon + pulse animation, no more 🔊/◼ chars
- practice recent list: rare symbols ⌕⌁◉ (tofu risk) -> wallet/gear/chatbubble
- sop resource icon ▶/文 -> 视/文 character badges
- back arrows: 22 char-based ← -> uni-icons back across 21 pages
- line-height centering -> flex in 8 spots (back buttons, media-remove,
  turn-voice capsule, option-marker, text-button, play-question)
This commit is contained in:
2026-07-19 20:16:05 +08:00
parent 925b48e436
commit c47bf748cb
25 changed files with 101 additions and 56 deletions
@@ -1,7 +1,7 @@
<template>
<view class="page assign-page">
<view class="subpage-header">
<button class="subpage-back-button" aria-label="返回" title="返回" :disabled="assigning" @click="goBack">←</button>
<button class="subpage-back-button" aria-label="返回" title="返回" :disabled="assigning" @click="goBack"><uni-icons type="back" size="20" color="#25282d" /></button>
<view class="subpage-heading">
<text class="page-title">指派专项</text>
<text class="page-subtitle">{{ selectedTargetLabel }}</text>
@@ -737,13 +737,16 @@ onBeforeUnmount(() => {
}
.text-button {
display: inline-flex;
min-height: 32px;
align-items: center;
justify-content: center;
padding: 0 8px;
border: 0;
background: transparent;
color: var(--employee-primary);
font-size: 12px;
line-height: 32px;
line-height: 1.2;
}
.field-input,
@@ -1,7 +1,7 @@
<template>
<view class="page exam-edit-page">
<view class="subpage-header">
<button class="subpage-back-button" aria-label="返回考试列表" :disabled="saving" @click="goBack">←</button>
<button class="subpage-back-button" aria-label="返回考试列表" :disabled="saving" @click="goBack"><uni-icons type="back" size="20" color="#25282d" /></button>
<view class="subpage-heading"><text class="page-title">{{ examId ? '编辑考试' : '新建考试' }}</text><text class="page-subtitle">发布后冻结题目版本,已派发试卷不随草稿变化。</text></view>
</view>
<text v-if="message" class="status-message">{{ message }}</text>
@@ -1,7 +1,7 @@
<template>
<view class="page supervisor-exams-page">
<view class="subpage-header">
<button class="subpage-back-button" aria-label="返回主管首页" @click="goBack">←</button>
<button class="subpage-back-button" aria-label="返回主管首页" @click="goBack"><uni-icons type="back" size="20" color="#25282d" /></button>
<view class="subpage-heading"><text class="page-title">岗前测试</text><text class="page-subtitle">按岗位组卷、选择真实员工并查看完成情况。</text></view>
</view>
<button class="primary-button create-button" @click="createExam">新建考试</button>
@@ -1,6 +1,6 @@
<template>
<view class="page exam-results-page">
<view class="subpage-header"><button class="subpage-back-button" aria-label="返回" @click="goBack">←</button><view class="subpage-heading"><text class="page-title">考试结果</text><text class="page-subtitle">按人员查看成绩、未完成与通过状态。</text></view></view>
<view class="subpage-header"><button class="subpage-back-button" aria-label="返回" @click="goBack"><uni-icons type="back" size="20" color="#25282d" /></button><view class="subpage-heading"><text class="page-title">考试结果</text><text class="page-subtitle">按人员查看成绩、未完成与通过状态。</text></view></view>
<text v-if="message" class="status-message">{{ message }}</text>
<view class="metric-grid">
<view class="metric-card"><text>{{ results.length }}</text><label>已派发</label></view>
@@ -1,7 +1,7 @@
<template>
<view class="page review-page">
<view class="subpage-header">
<button class="subpage-back-button" aria-label="返回待复盘" title="返回待复盘" @click="goBack">←</button>
<button class="subpage-back-button" aria-label="返回待复盘" title="返回待复盘" @click="goBack"><uni-icons type="back" size="20" color="#25282d" /></button>
<view class="subpage-heading">
<text class="page-title">复盘详情</text>
<text class="page-subtitle">{{ detail ? `${detail.trainee} · ${detail.scene}` : '训练记录' }}</text>
@@ -1,7 +1,7 @@
<template>
<view class="page reviews-page">
<view class="subpage-header">
<button class="subpage-back-button" aria-label="返回主管首页" title="返回主管首页" @click="goBack">←</button>
<button class="subpage-back-button" aria-label="返回主管首页" title="返回主管首页" @click="goBack"><uni-icons type="back" size="20" color="#25282d" /></button>
<view class="subpage-heading">
<text class="page-title">待复盘</text>
<text class="page-subtitle">{{ reviewCountText }}</text>
@@ -1,7 +1,7 @@
<template>
<view class="page team-page">
<view class="subpage-header">
<button class="subpage-back-button" aria-label="返回主管首页" title="返回主管首页" @click="goBack">←</button>
<button class="subpage-back-button" aria-label="返回主管首页" title="返回主管首页" @click="goBack"><uni-icons type="back" size="20" color="#25282d" /></button>
<view class="subpage-heading">
<text class="page-title">团队画像</text>
<text class="page-subtitle">{{ teamProfiles.length }} 名成员</text>