feat: 新增单位咨询统计、咨询流程图、快速咨询等多项功能

- 管理端新增单位咨询统计页面,11个侧边栏页面同步更新菜单
- 单位报表详情页支持多入口共用(动态导航/侧边栏/面包屑)
- 员工端新增咨询流程图页面、选择档案页面
- 聊天页增加发送文件/发送位置按钮,支持快速咨询模式
- 选择咨询人页面增加快速咨询按钮
- 批量优化管理端小助手及应急端页面

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-16 16:03:26 +08:00
co-authored by Claude Opus 4.6
parent 71a9c91f32
commit dc2ba3000a
39 changed files with 1872 additions and 255 deletions
+93 -55
View File
@@ -61,6 +61,17 @@
}
/* 箭头图标 */
.arrow-icon { flex-shrink: 0; }
/* 分组展开收起 */
.group-header {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
user-select: none;
}
.group-toggle { transition: transform 0.25s ease; font-size: 0; flex-shrink: 0; }
.contacts-group.collapsed .group-toggle { transform: rotate(-90deg); }
.contacts-group.collapsed .contact-item { display: none !important; }
</style>
</head>
<body>
@@ -94,7 +105,7 @@
<!-- 小助手分组 -->
<div class="contacts-group" data-group="小助手">
<div class="group-header">小助手</div>
<div class="group-header" onclick="toggleGroup(this)">小助手<svg class="group-toggle" width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="#999" stroke-width="1.5"><path d="M3 1.5l4.5 4.5-4.5 4.5"/></svg></div>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#fff7e6,#ffd591);">🤖</div>
<div class="contact-info">
@@ -102,31 +113,54 @@
<span class="contact-name">咨询小助手</span>
<span class="tag tag-gray" style="font-size:10px;padding:1px 6px;">小助手</span>
</div>
<div class="contact-desc" style="color:#52c41a;">● 在线</div>
</div>
<svg class="arrow-icon" 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>
</a>
</a>
</div>
<!-- 咨询专家分组 -->
<div class="contacts-group" data-group="咨询专家">
<div class="group-header" onclick="toggleGroup(this)">咨询专家<svg class="group-toggle" width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="#999" stroke-width="1.5"><path d="M3 1.5l4.5 4.5-4.5 4.5"/></svg></div>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#fff7e6,#ffd591);">🏥</div>
<div class="contact-info">
<div class="contact-name-row">
<span class="contact-name">刘汐</span>
<span class="tag tag-green" style="font-size:10px;padding:1px 6px;">咨询专家</span>
</div>
<div class="contact-desc">主任医师·心内科·西京医院</div>
</div>
</a>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#fff7e6,#ffd591);">🏥</div>
<div class="contact-info">
<div class="contact-name-row">
<span class="contact-name">刘博</span>
<span class="tag tag-green" style="font-size:10px;padding:1px 6px;">咨询专家</span>
</div>
<div class="contact-desc">主任医师·心内科·西京医院</div>
</div>
</a>
</div>
<!-- 管理员分组 -->
<div class="contacts-group" data-group="管理员">
<div class="group-header">管理员</div>
<div class="group-header" onclick="toggleGroup(this)">健康管理员<svg class="group-toggle" width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="#999" stroke-width="1.5"><path d="M3 1.5l4.5 4.5-4.5 4.5"/></svg></div>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#fff1f0,#ffb3b3);">👤</div>
<div class="contact-info">
<div class="contact-name-row">
<span class="contact-name">系统管理员</span>
<span class="tag tag-red" style="font-size:10px;padding:1px 6px;">管理员</span>
<span class="contact-name">王旭</span>
<span class="tag tag-red" style="font-size:10px;padding:1px 6px;">健康管理员</span>
</div>
<div class="contact-desc">平台管理</div>
<div class="contact-desc">第一采油厂·XXX作业区</div>
</div>
<svg class="arrow-icon" 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>
</a>
</a>
</div>
<!-- 操作人员分组 -->
<div class="contacts-group" data-group="操作人员">
<div class="group-header">操作人员</div>
<div class="group-header" onclick="toggleGroup(this)">操作人员<svg class="group-toggle" width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="#999" stroke-width="1.5"><path d="M3 1.5l4.5 4.5-4.5 4.5"/></svg></div>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#f9f0ff,#d3adf7);">🧑‍💼</div>
<div class="contact-info">
@@ -134,10 +168,9 @@
<span class="contact-name">陈运营</span>
<span class="tag tag-orange" style="font-size:10px;padding:1px 6px;">操作人员</span>
</div>
<div class="contact-desc">运营部 · 运营专员</div>
<div class="contact-desc">西安应急中心</div>
</div>
<svg class="arrow-icon" 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>
</a>
</a>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#f9f0ff,#d3adf7);">👩‍💼</div>
<div class="contact-info">
@@ -145,42 +178,15 @@
<span class="contact-name">王数据</span>
<span class="tag tag-orange" style="font-size:10px;padding:1px 6px;">操作人员</span>
</div>
<div class="contact-desc">数据部 · 数据分析师</div>
<div class="contact-desc">西安应急中心</div>
</div>
<svg class="arrow-icon" 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>
</a>
</a>
</div>
<!-- 驻场人员分组 -->
<div class="contacts-group" data-group="驻场人员">
<div class="group-header">驻场人员</div>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#fff7e6,#ffd591);">🏥</div>
<div class="contact-info">
<div class="contact-name-row">
<span class="contact-name">刘驻场</span>
<span class="tag tag-green" style="font-size:10px;padding:1px 6px;">驻场人员</span>
</div>
<div class="contact-desc">健康顾问 · A栋驻场</div>
</div>
<svg class="arrow-icon" 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>
</a>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#fff7e6,#ffd591);">🏥</div>
<div class="contact-info">
<div class="contact-name-row">
<span class="contact-name">赵驻场</span>
<span class="tag tag-green" style="font-size:10px;padding:1px 6px;">驻场人员</span>
</div>
<div class="contact-desc">健康顾问 · B栋驻场</div>
</div>
<svg class="arrow-icon" 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>
</a>
</div>
<!-- 专业人员分组 -->
<div class="contacts-group" data-group="专业人员">
<div class="group-header">专业人员</div>
<div class="group-header" onclick="toggleGroup(this)">专业人员<svg class="group-toggle" width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="#999" stroke-width="1.5"><path d="M3 1.5l4.5 4.5-4.5 4.5"/></svg></div>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#f6ffed,#b7eb8f);">👨‍⚕️</div>
<div class="contact-info">
@@ -188,40 +194,72 @@
<span class="contact-name">李主任</span>
<span class="tag tag-blue" style="font-size:10px;padding:1px 6px;">专业人员</span>
</div>
<div class="contact-desc">心内科 · 主任医师</div>
<div class="contact-desc">主任医师 · 西安应急中心</div>
</div>
<svg class="arrow-icon" 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>
</a>
</a>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#e6f4ff,#91caff);">👩‍⚕️</div>
<div class="contact-info">
<div class="contact-name-row">
<span class="contact-name">护士长</span>
<span class="contact-name"></span>
<span class="tag tag-blue" style="font-size:10px;padding:1px 6px;">专业人员</span>
</div>
<div class="contact-desc">内科 · 护士长</div>
<div class="contact-desc">主治医师 · 西安应急中心</div>
</div>
<svg class="arrow-icon" 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>
</a>
</a>
<a href="./im-chat.html" class="contact-item" style="border-bottom:none;">
<div class="contact-avatar" style="background:linear-gradient(135deg,#e6f4ff,#91caff);">👨‍⚕️</div>
<div class="contact-info">
<div class="contact-name-row">
<span class="contact-name">孙营养师</span>
<span class="contact-name">高谢琼</span>
<span class="tag tag-blue" style="font-size:10px;padding:1px 6px;">专业人员</span>
</div>
<div class="contact-desc">营养科 · 营养师</div>
<div class="contact-desc">住院医师 · 西安应急中心</div>
</div>
<svg class="arrow-icon" 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>
</a>
</a>
</div>
<!-- 驻场人员分组 -->
<div class="contacts-group" data-group="驻场人员">
<div class="group-header" onclick="toggleGroup(this)">驻场人员<svg class="group-toggle" width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="#999" stroke-width="1.5"><path d="M3 1.5l4.5 4.5-4.5 4.5"/></svg></div>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#fff7e6,#ffd591);">🏥</div>
<div class="contact-info">
<div class="contact-name-row">
<span class="contact-name">刘汐</span>
<span class="tag tag-green" style="font-size:10px;padding:1px 6px;">驻场人员</span>
</div>
<div class="contact-desc">西京医院</div>
</div>
</a>
<a href="./im-chat.html" class="contact-item">
<div class="contact-avatar" style="background:linear-gradient(135deg,#fff7e6,#ffd591);">🏥</div>
<div class="contact-info">
<div class="contact-name-row">
<span class="contact-name">刘博</span>
<span class="tag tag-green" style="font-size:10px;padding:1px 6px;">驻场人员</span>
</div>
<div class="contact-desc">宝石花医院</div>
</div>
</a>
</div>
</div>
</div>
</div><!-- /phone-shell -->
<script>
/**
* 切换分组展开/收起
*/
function toggleGroup(headerEl) {
headerEl.closest('.contacts-group').classList.toggle('collapsed');
}
/**
* 通讯录搜索过滤功能
* 根据输入关键词过滤联系人,隐藏不匹配的联系人及空分组