feat: 新增视频咨询四种状态详情页及多模块原型优化
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,32 @@
|
||||
# 咨询小助手端(健康应急APP)变更记录
|
||||
|
||||
## 2026-04-10
|
||||
|
||||
### feat: 新增"我的"个人中心模块
|
||||
|
||||
新增 3 个页面,覆盖个人中心主页、咨询统计、修改密码功能。
|
||||
|
||||
**涉及文件:**
|
||||
- `profile/index.html` — 个人中心主页(咨询统计入口、修改密码、关于我们、退出登录)
|
||||
- `profile/stats.html` — 咨询统计(数据概览、咨询类型分布、近7日完成量柱状图)
|
||||
- `profile/change-pwd.html` — 修改密码(表单 + 成功弹窗)
|
||||
|
||||
## 2026-04-10
|
||||
|
||||
### fix: 修复共用消息页面和AI助手页面的工作台跳转逻辑
|
||||
|
||||
**问题描述:** 小助手工作台点击消息/AI助手后,经过通讯录等中间页面再返回,点击工作台会错误跳转到专家工作台。
|
||||
|
||||
**根本原因:** 初版使用`document.referrer`判断来源,经过中间页面跳转后referrer会丢失原始来源信息。
|
||||
|
||||
**解决方案:** 改用`sessionStorage`存储角色标记(`appRole`)。小助手工作台写入`assistant`,专家工作台写入`expert`,共用页面读取该标记动态设置跳转目标。
|
||||
|
||||
**涉及文件:**
|
||||
- `workbench/index.html` — 写入`sessionStorage.appRole = 'assistant'`
|
||||
- `../expert/workbench/index.html` — 写入`sessionStorage.appRole = 'expert'`
|
||||
- `../message/index.html` — 读取appRole动态设置工作台链接
|
||||
- `../ai-assistant/index.html` — 读取appRole动态设置工作台链接
|
||||
|
||||
## 2026-04-09
|
||||
|
||||
### init: 初始化咨询小助手端原型
|
||||
|
||||
@@ -22,7 +22,11 @@
|
||||
│ └── 知识详情
|
||||
├── AI助手(底部Tab,共享模块)
|
||||
├── 消息(底部Tab,共享模块)
|
||||
└── 我的(底部Tab,暂无原型)
|
||||
└── 我的(底部Tab)
|
||||
├── 个人中心主页
|
||||
│ ├── 咨询统计
|
||||
│ └── 修改密码
|
||||
└── 退出登录(确认弹窗)
|
||||
```
|
||||
|
||||
### 咨询状态流转图
|
||||
@@ -47,6 +51,9 @@ stateDiagram-v2
|
||||
| 6 | workbench/push-expert.html | 选择专家 | 页面 | 工作台 |
|
||||
| 7 | knowledge/index.html | 知识库首页 | 页面 | 知识库 |
|
||||
| 8 | knowledge/detail.html | 知识详情 | 页面 | 知识库 |
|
||||
| 9 | profile/index.html | 个人中心主页 | 页面 | 我的 |
|
||||
| 10 | profile/stats.html | 咨询统计 | 页面 | 我的 |
|
||||
| 11 | profile/change-pwd.html | 修改密码 | 页面 | 我的 |
|
||||
|
||||
## 逐页说明
|
||||
|
||||
@@ -167,3 +174,56 @@ stateDiagram-v2
|
||||
|
||||
**交互说明:**
|
||||
- 返回按钮跳转到知识库首页
|
||||
|
||||
---
|
||||
|
||||
### 9. 个人中心主页(profile/index.html)
|
||||
|
||||
**功能说明:** 小助手个人中心入口,展示用户信息和功能菜单。
|
||||
|
||||
**业务规则:**
|
||||
- 蓝色渐变头部展示小助手头像、姓名、角色标签、所属机构
|
||||
- 功能菜单分两组:第一组为咨询统计(显示今日完成次数),第二组为修改密码和关于我们
|
||||
- 底部提供退出登录按钮
|
||||
|
||||
**交互说明:**
|
||||
- 点击"咨询统计"跳转到咨询统计页
|
||||
- 点击"修改密码"跳转到修改密码页
|
||||
- 点击"退出登录"弹出确认弹窗,确认后退出
|
||||
- 底部5Tab导航:工作台/知识库/AI助手/消息/我的
|
||||
|
||||
---
|
||||
|
||||
### 10. 咨询统计(profile/stats.html)
|
||||
|
||||
**功能说明:** 展示小助手的咨询工作量统计数据。
|
||||
|
||||
**业务规则:**
|
||||
- 数据概览2×2网格:今日完成、本周完成、本月完成、累计完成
|
||||
- 本月咨询类型仅图文咨询(小助手不支持视频咨询)
|
||||
- 近7日完成量以柱状图展示,今日高亮
|
||||
|
||||
**交互说明:**
|
||||
- 返回按钮跳转到个人中心主页
|
||||
|
||||
---
|
||||
|
||||
### 11. 修改密码(profile/change-pwd.html)
|
||||
|
||||
**功能说明:** 小助手修改登录密码。
|
||||
|
||||
**业务规则:**
|
||||
- 表单包含当前密码、新密码(至少8位)、确认新密码三个字段
|
||||
- 修改成功后弹窗提示
|
||||
|
||||
**交互说明:**
|
||||
- 点击"保存修改"弹出修改成功弹窗
|
||||
- 弹窗点击"确定"跳转到个人中心主页
|
||||
|
||||
**表单字段表:**
|
||||
|
||||
| 字段名 | 类型 | 必填 | 规则 |
|
||||
|--------|------|------|------|
|
||||
| 当前密码 | password | 是 | - |
|
||||
| 新密码 | password | 是 | 至少8位 |
|
||||
| 确认新密码 | password | 是 | 与新密码一致 |
|
||||
|
||||
@@ -175,6 +175,9 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
|
||||
</div>
|
||||
|
||||
<script>
|
||||
/* 标记当前角色为小助手 */
|
||||
sessionStorage.setItem('appRole', 'assistant');
|
||||
|
||||
/**
|
||||
* 切换知识库分类Tab
|
||||
* @param {HTMLElement} el - 被点击的Tab元素
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>咨询小助手 - 修改密码 | 健康长庆原型</title>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body { background: #f0f2f5; display: flex; justify-content: center; align-items: flex-start; min-height: 100vh; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', sans-serif; }
|
||||
.phone-shell { width: 390px; height: 844px; background: #fff; border-radius: 44px; box-shadow: 0 20px 60px rgba(0,0,0,0.25), inset 0 0 0 2px #e0e0e0; overflow: hidden; position: relative; display: flex; flex-direction: column; flex-shrink: 0; }
|
||||
.status-bar { height: 44px; background: #fff; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; flex-shrink: 0; z-index: 10; }
|
||||
.status-bar .time { font-size: 15px; font-weight: 700; color: #1a1a1a; }
|
||||
.status-bar .icons { display: flex; gap: 6px; align-items: center; font-size: 12px; color: #1a1a1a; }
|
||||
.nav-bar { height: 44px; display: flex; align-items: center; padding: 0 16px; background: #fff; border-bottom: 1px solid #f0f0f0; flex-shrink: 0; position: relative; }
|
||||
.back-btn { display: flex; align-items: center; gap: 4px; color: #1677ff; font-size: 15px; cursor: pointer; background: none; border: none; padding: 4px 0; }
|
||||
.nav-title { position: absolute; left: 50%; transform: translateX(-50%); font-size: 17px; font-weight: 600; color: #1a1a1a; white-space: nowrap; }
|
||||
.scroll-content { flex: 1; overflow-y: auto; background: #f7f8fa; }
|
||||
.scroll-content::-webkit-scrollbar { display: none; }
|
||||
.btn-primary { background: #1677ff; color: #fff; border: none; border-radius: 10px; padding: 12px 24px; font-size: 15px; font-weight: 600; cursor: pointer; width: 100%; }
|
||||
.modal-center { display: none; position: absolute; inset: 0; background: rgba(0,0,0,0.5); z-index: 200; align-items: center; justify-content: center; }
|
||||
.modal-center.active { display: flex; }
|
||||
.modal-box { width: 280px; background: #fff; border-radius: 16px; overflow: hidden; }
|
||||
.modal-box .modal-title { padding: 20px 20px 8px; font-size: 17px; font-weight: 700; text-align: center; color: #1a1a1a; }
|
||||
.modal-box .modal-body { padding: 8px 20px 20px; font-size: 14px; color: #666; text-align: center; line-height: 1.6; }
|
||||
.modal-box .modal-actions { display: flex; border-top: 1px solid #f0f0f0; }
|
||||
.modal-box .modal-actions button { flex: 1; padding: 14px; font-size: 16px; cursor: pointer; background: none; border: none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="phone-shell">
|
||||
<div class="status-bar">
|
||||
<span class="time">9:41</span>
|
||||
<div class="icons"><span>●●●</span><span>WiFi</span><span>🔋</span></div>
|
||||
</div>
|
||||
|
||||
<div class="nav-bar">
|
||||
<!-- [交互] 点击返回: ./index.html -->
|
||||
<button class="back-btn" onclick="location.href='./index.html'">
|
||||
<svg width="10" height="16" viewBox="0 0 10 16" fill="none" stroke="currentColor" stroke-width="2"><path d="M8 1L2 8l6 7"/></svg>返回
|
||||
</button>
|
||||
<span class="nav-title">修改密码</span>
|
||||
</div>
|
||||
|
||||
<div class="scroll-content" style="padding:16px;">
|
||||
<div style="background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,0.06);margin-bottom:20px;">
|
||||
<div style="display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid #f5f5f5;">
|
||||
<span style="font-size:14px;color:#999;width:80px;flex-shrink:0;">当前密码</span>
|
||||
<input type="password" placeholder="请输入当前密码" style="flex:1;border:none;font-size:14px;color:#1a1a1a;outline:none;text-align:right;" />
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid #f5f5f5;">
|
||||
<span style="font-size:14px;color:#999;width:80px;flex-shrink:0;">新密码</span>
|
||||
<input type="password" placeholder="请输入新密码(至少8位)" style="flex:1;border:none;font-size:14px;color:#1a1a1a;outline:none;text-align:right;" />
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;padding:14px 16px;">
|
||||
<span style="font-size:14px;color:#999;width:80px;flex-shrink:0;">确认新密码</span>
|
||||
<input type="password" placeholder="再次输入新密码" style="flex:1;border:none;font-size:14px;color:#1a1a1a;outline:none;text-align:right;" />
|
||||
</div>
|
||||
</div>
|
||||
<button onclick="openModal('modal-pwd-saved')" class="btn-primary">保存修改</button>
|
||||
</div>
|
||||
|
||||
<!-- 修改成功弹窗 -->
|
||||
<div id="modal-pwd-saved" class="modal-center">
|
||||
<div class="modal-box">
|
||||
<div class="modal-title">修改成功</div>
|
||||
<div class="modal-body">密码已更新,下次登录请使用新密码。</div>
|
||||
<div class="modal-actions">
|
||||
<!-- [交互] 确定后跳转至: ./index.html -->
|
||||
<button onclick="closeModal('modal-pwd-saved');location.href='./index.html'" style="color:#1677ff;font-weight:600;">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function openModal(id) {
|
||||
var m = document.getElementById(id);
|
||||
if (m) m.classList.add('active');
|
||||
}
|
||||
function closeModal(id) {
|
||||
var m = document.getElementById(id);
|
||||
if (m) m.classList.remove('active');
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,119 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>咨询小助手 - 我的 | 健康长庆原型</title>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body { background: #f0f2f5; display: flex; justify-content: center; align-items: flex-start; min-height: 100vh; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', sans-serif; }
|
||||
.phone-shell { width: 390px; height: 844px; background: #fff; border-radius: 44px; box-shadow: 0 20px 60px rgba(0,0,0,0.25), inset 0 0 0 2px #e0e0e0; overflow: hidden; position: relative; display: flex; flex-direction: column; flex-shrink: 0; }
|
||||
.status-bar { height: 44px; background: #fff; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; flex-shrink: 0; z-index: 10; }
|
||||
.status-bar .time { font-size: 15px; font-weight: 700; color: #1a1a1a; }
|
||||
.status-bar .icons { display: flex; gap: 6px; align-items: center; font-size: 12px; color: #1a1a1a; }
|
||||
.scroll-content { flex: 1; overflow-y: auto; background: #f7f8fa; }
|
||||
.scroll-content::-webkit-scrollbar { display: none; }
|
||||
.modal-center { display: none; position: absolute; inset: 0; background: rgba(0,0,0,0.5); z-index: 200; align-items: center; justify-content: center; }
|
||||
.modal-center.active { display: flex; }
|
||||
.modal-box { width: 280px; background: #fff; border-radius: 16px; overflow: hidden; }
|
||||
.modal-box .modal-title { padding: 20px 20px 8px; font-size: 17px; font-weight: 700; text-align: center; color: #1a1a1a; }
|
||||
.modal-box .modal-body { padding: 8px 20px 20px; font-size: 14px; color: #666; text-align: center; line-height: 1.6; }
|
||||
.modal-box .modal-actions { display: flex; border-top: 1px solid #f0f0f0; }
|
||||
.modal-box .modal-actions button { flex: 1; padding: 14px; font-size: 16px; cursor: pointer; background: none; border: none; }
|
||||
.modal-box .modal-actions button:first-child { color: #666; border-right: 1px solid #f0f0f0; }
|
||||
.modal-box .modal-actions button:last-child { color: #1677ff; font-weight: 600; }
|
||||
.tab-bar { height: 83px; background: #fff; border-top: 1px solid #e8e8e8; display: flex; align-items: flex-start; padding-top: 8px; flex-shrink: 0; }
|
||||
.tab-item { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; cursor: pointer; padding: 4px 0; position: relative; }
|
||||
.tab-item .tab-icon { font-size: 22px; line-height: 1; }
|
||||
.tab-item .tab-label { font-size: 10px; color: #999; font-weight: 500; }
|
||||
.tab-item.active .tab-label { color: #1677ff; }
|
||||
.tab-badge { position: absolute; top: 2px; right: 18px; background: #ff4d4f; color: #fff; font-size: 10px; font-weight: 700; min-width: 16px; height: 16px; border-radius: 8px; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="phone-shell">
|
||||
<!-- 状态栏 -->
|
||||
<div class="status-bar" style="background:transparent;position:absolute;top:0;left:0;right:0;z-index:10;">
|
||||
<span class="time" style="color:#fff;">9:41</span>
|
||||
<div class="icons" style="color:#fff;"><span>●●●</span><span>WiFi</span><span>🔋</span></div>
|
||||
</div>
|
||||
|
||||
<!-- 蓝色渐变头部 -->
|
||||
<div style="background:linear-gradient(135deg,#1677ff,#0958d9);padding:30px 20px 24px;flex-shrink:0;padding-top:60px;">
|
||||
<div style="display:flex;align-items:center;gap:16px;">
|
||||
<div style="width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,#e8f4ff,#bdd7ff);display:flex;align-items:center;justify-content:center;font-size:34px;border:3px solid rgba(255,255,255,0.5);">👩💼</div>
|
||||
<div>
|
||||
<div style="color:#fff;font-size:20px;font-weight:700;">李小雨</div>
|
||||
<div style="color:rgba(255,255,255,0.8);font-size:13px;margin-top:3px;">咨询小助手</div>
|
||||
<div style="color:rgba(255,255,255,0.65);font-size:12px;margin-top:2px;">健康管理中心</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 功能列表滚动区域 -->
|
||||
<div class="scroll-content" style="padding:12px 16px;">
|
||||
<!-- 第一组功能列表 -->
|
||||
<div style="background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,0.06);margin-bottom:12px;">
|
||||
<!-- [交互] 点击跳转至: ./stats.html -->
|
||||
<div onclick="location.href='./stats.html'" style="display:flex;align-items:center;padding:16px;cursor:pointer;border-bottom:1px solid #f5f5f5;">
|
||||
<span style="font-size:18px;margin-right:12px;">📊</span><span style="font-size:15px;color:#1a1a1a;flex:1;">咨询统计</span>
|
||||
<span style="font-size:13px;color:#1677ff;margin-right:8px;">今日 24 次</span>
|
||||
<svg width="7" height="12" viewBox="0 0 7 12" fill="none" stroke="#ccc" stroke-width="1.5"><path d="M1 1l5 5-5 5"/></svg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 第二组功能列表 -->
|
||||
<div style="background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,0.06);margin-bottom:12px;">
|
||||
<!-- [交互] 点击跳转至: ./change-pwd.html -->
|
||||
<div onclick="location.href='./change-pwd.html'" style="display:flex;align-items:center;padding:16px;border-bottom:1px solid #f5f5f5;cursor:pointer;">
|
||||
<span style="font-size:18px;margin-right:12px;">🔒</span><span style="font-size:15px;color:#1a1a1a;flex:1;">修改密码</span>
|
||||
<svg width="7" height="12" viewBox="0 0 7 12" fill="none" stroke="#ccc" stroke-width="1.5"><path d="M1 1l5 5-5 5"/></svg>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;padding:16px;cursor:pointer;">
|
||||
<span style="font-size:18px;margin-right:12px;">ℹ️</span><span style="font-size:15px;color:#1a1a1a;flex:1;">关于我们</span>
|
||||
<svg width="7" height="12" viewBox="0 0 7 12" fill="none" stroke="#ccc" stroke-width="1.5"><path d="M1 1l5 5-5 5"/></svg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 退出登录按钮 -->
|
||||
<button onclick="openModal('modal-logout')" style="width:100%;padding:14px;background:#fff;color:#ff4d4f;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,0.06);">退出登录</button>
|
||||
</div>
|
||||
|
||||
<!-- 退出确认弹窗 -->
|
||||
<div id="modal-logout" class="modal-center">
|
||||
<div class="modal-box">
|
||||
<div class="modal-title">退出登录</div>
|
||||
<div class="modal-body">确认退出当前账号?</div>
|
||||
<div class="modal-actions">
|
||||
<button onclick="closeModal('modal-logout')">取消</button>
|
||||
<button onclick="closeModal('modal-logout')" style="color:#ff4d4f;">确认退出</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 底部Tab栏 -->
|
||||
<div class="tab-bar">
|
||||
<div class="tab-item" onclick="location.href='../workbench/index.html'"><span class="tab-icon">🏥</span><span class="tab-label">工作台</span><span class="tab-badge">3</span></div>
|
||||
<div class="tab-item" onclick="location.href='../knowledge/index.html'"><span class="tab-icon">📚</span><span class="tab-label">知识库</span></div>
|
||||
<div class="tab-item" onclick="location.href='../../ai-assistant/index.html'"><span class="tab-icon">🤖</span><span class="tab-label">AI助手</span></div>
|
||||
<div class="tab-item" onclick="location.href='../../message/index.html'"><span class="tab-icon">💬</span><span class="tab-label">消息</span><span class="tab-badge">2</span></div>
|
||||
<div class="tab-item active" onclick="location.href='./index.html'"><span class="tab-icon">👤</span><span class="tab-label">我的</span></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
sessionStorage.setItem('appRole', 'assistant');
|
||||
|
||||
function openModal(id) {
|
||||
var m = document.getElementById(id);
|
||||
if (m) m.classList.add('active');
|
||||
}
|
||||
|
||||
function closeModal(id) {
|
||||
var m = document.getElementById(id);
|
||||
if (m) m.classList.remove('active');
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>咨询小助手 - 咨询统计 | 健康长庆原型</title>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body { background: #f0f2f5; display: flex; justify-content: center; align-items: flex-start; min-height: 100vh; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', sans-serif; }
|
||||
.phone-shell { width: 390px; height: 844px; background: #fff; border-radius: 44px; box-shadow: 0 20px 60px rgba(0,0,0,0.25), inset 0 0 0 2px #e0e0e0; overflow: hidden; position: relative; display: flex; flex-direction: column; flex-shrink: 0; }
|
||||
.status-bar { height: 44px; background: #fff; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; flex-shrink: 0; z-index: 10; }
|
||||
.status-bar .time { font-size: 15px; font-weight: 700; color: #1a1a1a; }
|
||||
.status-bar .icons { display: flex; gap: 6px; align-items: center; font-size: 12px; color: #1a1a1a; }
|
||||
.nav-bar { height: 44px; display: flex; align-items: center; padding: 0 16px; background: #fff; border-bottom: 1px solid #f0f0f0; flex-shrink: 0; position: relative; }
|
||||
.back-btn { display: flex; align-items: center; gap: 4px; color: #1677ff; font-size: 15px; cursor: pointer; background: none; border: none; padding: 4px 0; }
|
||||
.nav-title { position: absolute; left: 50%; transform: translateX(-50%); font-size: 17px; font-weight: 600; color: #1a1a1a; white-space: nowrap; }
|
||||
.scroll-content { flex: 1; overflow-y: auto; background: #f7f8fa; }
|
||||
.scroll-content::-webkit-scrollbar { display: none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="phone-shell">
|
||||
<div class="status-bar">
|
||||
<span class="time">9:41</span>
|
||||
<div class="icons"><span>●●●</span><span>WiFi</span><span>🔋</span></div>
|
||||
</div>
|
||||
|
||||
<div class="nav-bar">
|
||||
<!-- [交互] 点击返回: ./index.html -->
|
||||
<button class="back-btn" onclick="location.href='./index.html'">
|
||||
<svg width="10" height="16" viewBox="0 0 10 16" fill="none" stroke="currentColor" stroke-width="2"><path d="M8 1L2 8l6 7"/></svg>返回
|
||||
</button>
|
||||
<span class="nav-title">咨询统计</span>
|
||||
</div>
|
||||
|
||||
<div class="scroll-content" style="padding:16px;">
|
||||
<!-- 数据概览(2x2网格) -->
|
||||
<div style="background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 1px 6px rgba(0,0,0,0.06);">
|
||||
<div style="font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:14px;">数据概览</div>
|
||||
<div style="display:grid;grid-template-columns:1fr 1fr;gap:10px;">
|
||||
<div style="background:#f0f7ff;border-radius:10px;padding:14px;text-align:center;">
|
||||
<div style="font-size:26px;font-weight:700;color:#1677ff;">24</div>
|
||||
<div style="font-size:12px;color:#666;margin-top:3px;">今日完成</div>
|
||||
</div>
|
||||
<div style="background:#f6ffed;border-radius:10px;padding:14px;text-align:center;">
|
||||
<div style="font-size:26px;font-weight:700;color:#52c41a;">102</div>
|
||||
<div style="font-size:12px;color:#666;margin-top:3px;">本周完成</div>
|
||||
</div>
|
||||
<div style="background:#fff7e6;border-radius:10px;padding:14px;text-align:center;">
|
||||
<div style="font-size:26px;font-weight:700;color:#fa8c16;">436</div>
|
||||
<div style="font-size:12px;color:#666;margin-top:3px;">本月完成</div>
|
||||
</div>
|
||||
<div style="background:#f9f0ff;border-radius:10px;padding:14px;text-align:center;">
|
||||
<div style="font-size:26px;font-weight:700;color:#722ed1;">2,158</div>
|
||||
<div style="font-size:12px;color:#666;margin-top:3px;">累计完成</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 本月咨询类型 -->
|
||||
<div style="background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 1px 6px rgba(0,0,0,0.06);">
|
||||
<div style="font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:12px;">本月咨询类型</div>
|
||||
<div style="display:flex;align-items:center;gap:10px;">
|
||||
<span style="font-size:13px;color:#666;width:56px;flex-shrink:0;">图文咨询</span>
|
||||
<div style="flex:1;height:10px;background:#f0f0f0;border-radius:5px;overflow:hidden;">
|
||||
<div style="width:100%;height:100%;background:#1677ff;border-radius:5px;"></div>
|
||||
</div>
|
||||
<span style="font-size:13px;color:#1677ff;font-weight:600;width:36px;text-align:right;">436</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 近7日完成量柱状图 -->
|
||||
<div style="background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 1px 6px rgba(0,0,0,0.06);">
|
||||
<div style="font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:12px;">近7日完成量</div>
|
||||
<div style="display:flex;align-items:flex-end;justify-content:space-between;height:70px;gap:4px;">
|
||||
<div style="display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;">
|
||||
<div style="font-size:10px;color:#999;">18</div>
|
||||
<div style="width:100%;height:45%;background:#1677ff;border-radius:3px 3px 0 0;"></div>
|
||||
<div style="font-size:10px;color:#bbb;">4/4</div>
|
||||
</div>
|
||||
<div style="display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;">
|
||||
<div style="font-size:10px;color:#999;">22</div>
|
||||
<div style="width:100%;height:55%;background:#1677ff;border-radius:3px 3px 0 0;"></div>
|
||||
<div style="font-size:10px;color:#bbb;">4/5</div>
|
||||
</div>
|
||||
<div style="display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;">
|
||||
<div style="font-size:10px;color:#999;">30</div>
|
||||
<div style="width:100%;height:75%;background:#1677ff;border-radius:3px 3px 0 0;"></div>
|
||||
<div style="font-size:10px;color:#bbb;">4/6</div>
|
||||
</div>
|
||||
<div style="display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;">
|
||||
<div style="font-size:10px;color:#999;">15</div>
|
||||
<div style="width:100%;height:38%;background:#1677ff;border-radius:3px 3px 0 0;"></div>
|
||||
<div style="font-size:10px;color:#bbb;">4/7</div>
|
||||
</div>
|
||||
<div style="display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;">
|
||||
<div style="font-size:10px;color:#999;">28</div>
|
||||
<div style="width:100%;height:70%;background:#1677ff;border-radius:3px 3px 0 0;"></div>
|
||||
<div style="font-size:10px;color:#bbb;">4/8</div>
|
||||
</div>
|
||||
<div style="display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;">
|
||||
<div style="font-size:10px;color:#999;">20</div>
|
||||
<div style="width:100%;height:50%;background:#1677ff;border-radius:3px 3px 0 0;"></div>
|
||||
<div style="font-size:10px;color:#bbb;">4/9</div>
|
||||
</div>
|
||||
<div style="display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;">
|
||||
<div style="font-size:10px;color:#1677ff;font-weight:600;">24</div>
|
||||
<div style="width:100%;height:60%;background:#1677ff;border-radius:3px 3px 0 0;"></div>
|
||||
<div style="font-size:10px;color:#1677ff;font-weight:600;">今日</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="height:16px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -193,6 +193,9 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
|
||||
</div>
|
||||
|
||||
<script>
|
||||
/* 标记当前角色为小助手,供共用页面(消息、AI助手)判断返回目标 */
|
||||
sessionStorage.setItem('appRole', 'assistant');
|
||||
|
||||
/**
|
||||
* 切换二级Tab(待回复/进行中/已完成)
|
||||
* @param {HTMLElement} el - 被点击的Tab元素
|
||||
|
||||
Reference in New Issue
Block a user