3.4 KiB
3.4 KiB
线索详情弹窗视觉优化设计说明
背景
当前 WonderQ-Admin-UI-Vue 的线索详情弹窗使用四列无分组信息网格。联系人、联系方式、需求类型、提交时间、目的地和出行日期在同一视觉层级中展示,长联系方式容易挤压其他字段;备注区域与基础信息的层次也不够明确。
本次采用已确认的 A 方案「信息分组卡片」,目标是在不改变接口、数据结构和状态操作的前提下,提高线索详情的扫描效率和信息层次。
设计目标
- 保留现有线索详情字段、状态下拉操作、用车行程和备注内容。
- 用两列信息卡片承载基础字段,降低长文本对布局的影响。
- 让状态操作、基础信息、用车行程和备注形成清晰的阅读顺序。
- 沿用项目现有蓝色主色、浅色背景、细边框和 Element Plus 视觉语言。
- 弹窗窄屏时从两列退化为一列,长联系方式和日期自然换行。
非目标
- 不修改 Admin API、请求参数、响应字段、鉴权或状态流转逻辑。
- 不新增字段、筛选能力、按钮或业务动作。
- 不重构通用弹窗组件或全局主题,只调整线索详情所需的局部模板和样式。
页面结构
弹窗内容顺序固定为:
- Element Plus 弹窗标题和关闭操作。
- 状态摘要行:当前状态标签 + 权限控制的状态选择器。
- 基础信息卡片:联系人、联系方式、需求类型、提交时间、目的地、出行日期,两列排列。
- 条件区块:仅当存在
vehicleDemand时展示用车行程。 - 备注区块:展示特殊要求、备注或空态文案。
基础信息卡片使用统一边框容器和细分隔线;每个字段采用“弱化标签 + 强化值”的两级排版。联系方式使用 overflow-wrap: anywhere,确保测试串和真实长联系方式不会撑破弹窗。
视觉与交互规则
- 弹窗主体保持白色,信息卡片使用项目现有的
--line、--muted、--ink等变量。 - 状态行与信息卡片之间使用稳定的垂直间距,不额外增加装饰性渐变、光晕或重阴影。
- 用车行程和备注继续使用浅色区块,区块标题增加左侧短强调线,帮助快速定位。
- 状态选择器继续由
v-permission="'admin:leads:update'"控制,加载状态继续使用updatingId。 - 所有内容仍通过当前
selectedLead、formatDate和leadStatusLabel渲染,不引入新的数据源。
响应式规则
- 默认弹窗宽度仍由现有
width="min(720px, 94vw)"控制。 - 宽度小于 640px 时,基础信息由两列切换为一列。
- 字段值允许换行,避免水平滚动和文本截断。
- 用车行程和备注区块保持完整宽度,按钮与状态操作不改变现有权限行为。
实施范围与验证
- 修改
WonderQ-Admin-UI-Vue/src/pages/LeadsPage.vue:为基础信息增加语义化分组标记,保留现有业务表达式。 - 修改
WonderQ-Admin-UI-Vue/src/styles.css:调整详情弹窗的网格、信息卡片、区块标题、长文本和响应式规则。 - 更新
WonderQ-Admin-UI-Vue/src/pages/LeadsPage.test.ts:增加模板结构回归检查,确保六个基础字段、状态选择器和备注区块未被遗漏。 - 运行
yarn test和yarn build;再通过本地浏览器检查普通线索、长联系方式、用车线索和窄屏布局。