日期:2026-06-13
医梦AI OKR 绩效系统准备在公司内部上线。现有前端功能完整,覆盖登录、考核周期、OKR 对齐、团队 OKR、绩效自评、上级评分、绩效沟通、组织架构、模板配置和操作日志。主要问题不是业务缺失,而是视觉语言偏通用 AI 后台:高频使用紫青配色、圆角卡片、轻阴影、emoji 和分散的 scoped 样式,削弱了医疗科技公司内部系统应有的专业性、可靠性和审计感。
本次重构采用“方案 B:设计系统 + 重点页面重构”。先建立统一视觉系统,再重构最影响观感和工作效率的核心页面。业务逻辑、接口契约、权限模型和后端不纳入本阶段改动。
目标风格:现代医疗科技型内部工作台。
关键词:
公司主题色保留:
#2b1f99#3ad4d8使用约束:
#2b1f99 用作品牌锚点、主按钮、当前导航、关键标题和少量高权重标记。#3ad4d8 用作活跃状态、进度、焦点态和医疗科技感强调。已确认的主要问题:
page-hero + 白色圆角卡片 + 轻阴影,缺少业务特征。可量化验收指标:
| 指标 | 目标 |
|---|---|
| 颜色硬编码 | 核心页面硬编码颜色减少 70% 以上 |
| 重复样式 | 页面标题、面板、空状态、状态条等重复 CSS 减少 60% 以上 |
| 圆角体系 | 统一为 4px、6px、8px,避免大面积 12px+ 圆角 |
| 阴影使用 | 大面积阴影减少 60% 以上,主要使用边框、分隔线和浅底色 |
| emoji | 业务页面 emoji 全部替换为 Element Plus 图标或正式文本 |
| 响应式 | 1366px、1440px、1920px、移动宽度下无明显重叠和断行问题 |
| 构建 | npm run build 通过 |
| 业务行为 | 不改变现有 API、路由和主要交互流程 |
建议新增统一样式入口,例如 frontend/src/styles/theme.css,并在 main.js 或 App.vue 引入。
核心 token:
:root {
--color-brand: #2b1f99;
--color-brand-strong: #1d166b;
--color-brand-soft: #eceaf8;
--color-accent: #3ad4d8;
--color-accent-strong: #17a9ad;
--color-accent-soft: #e5fbfc;
--color-bg: #f5f8fa;
--color-surface: #ffffff;
--color-surface-subtle: #f8fafc;
--color-border: #dfe7ee;
--color-border-soft: #edf2f6;
--color-text: #18212f;
--color-text-secondary: #5f6b7a;
--color-text-muted: #8a97a8;
--color-success: #2e9d65;
--color-warning: #c98219;
--color-danger: #c94a4a;
--color-info: #4c6f91;
}
状态语义:
:root {
--radius-xs: 4px;
--radius-sm: 6px;
--radius-md: 8px;
--shadow-panel: 0 1px 2px rgba(15, 23, 42, 0.04);
--shadow-popover: 0 12px 28px rgba(15, 23, 42, 0.12);
--space-page-x: 24px;
--space-page-y: 20px;
--layout-sidebar: 220px;
--layout-topbar: 52px;
}
原则:
1px 边框和轻微阴影,不做漂浮卡片堆叠。保持系统中文字体栈,避免引入不可控外部字体。
建议字号:
新增统一覆盖层,减少页面内重复样式:
round,统一 6px 圆角。el-card 尽量减少使用;优先自定义业务面板类。el-tag 降低饱和度,避免大量 dark tag。建议优先抽象为样式类,不急于过度组件化。稳定后再提取 Vue 组件。
第一阶段需要的通用模式:
PageHeader / .app-page-header
.med-panel
.status-strip
.metric-row / .metric-card
.evidence-panel
.decision-panel
.empty-state
.audit-note
MainLayout.vue目标:建立系统第一印象。
改造点:
LoginView.vue目标:从“AI 暗色科技登录页”改为“医疗科技公司内部系统入口”。
改造点:
PeriodListView.vue目标:从卡片列表升级为周期生命周期工作台。
改造点:
MyOkrView.vue目标:强化对齐关系和阶段任务。
改造点:
O 和 KR 标记改为克制的胶囊或短标签。ScoringEditView.vue目标:做成评审工作台,这是第一阶段最重要页面。
布局:
左侧证据区:
右侧决策区:
改造点:
目标:结果页体现确认、沟通闭环和归档可信度。
改造点:
第一阶段只做全局样式适配:
新增全局样式基础
frontend/src/styles/theme.cssfrontend/src/styles/components.cssfrontend/src/styles/element-plus.css改造主布局和登录页
改造周期页和 PeriodBanner
改造我的 OKR 页面
改造绩效考评页
改造我的绩效和历史绩效
管理页统一适配
视觉 QA 和构建验证
npm run build本阶段不做:
风险 1:全局覆盖 Element Plus 影响已有页面。
应对:覆盖规则使用 .app-shell 或明确类名约束,避免无边界覆盖。
风险 2:页面 scoped 样式仍然覆盖新样式。
应对:先保留页面结构,逐页移除重复样式;每次只改一个页面组。
风险 3:评分页改动影响计算信任。
应对:评分逻辑不动,只改展示结构;改造后用同一输入检查总分、评级、提交 payload 不变。
风险 4:主题色使用过度,仍显 AI 感。
应对:品牌深色只做锚点,科技青只做活跃和焦点;内容区以中性色和细边框为主。
npm run build 通过。