feat: 新增视频咨询四种状态详情页及多模块原型优化

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-10 13:50:08 +08:00
co-authored by Claude Opus 4.6
parent 014b7ef428
commit 47596eb02c
32 changed files with 2807 additions and 738 deletions
@@ -69,7 +69,23 @@
.info-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px;font-size:var(--font-sm);}
.info-row:last-child{margin-bottom:0;}
.info-row__label{color:var(--text-secondary);white-space:nowrap;min-width:72px;}
.info-row__value{color:var(--text-primary);flex:1;}
.detail-layout{display:grid;grid-template-columns:1fr;gap:16px;align-items:start;}
.tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:16px;}
.tab-btn{padding:12px 20px;font-size:var(--font-sm);color:var(--text-secondary);background:none;border:none;cursor:pointer;position:relative;transition:all .2s;}
.tab-btn.active{color:var(--primary);font-weight:600;}
.tab-btn.active::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--primary);}
.tab-content{display:none;}
.tab-content.active{display:block;}
.consult-info{background:#F5F7FA;border-radius:var(--radius-sm);padding:16px;margin-bottom:16px;}
.consult-info__header{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.consult-info__avatar{width:48px;height:48px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:600;flex-shrink:0;}
.consult-info__title{font-size:var(--font-base);font-weight:600;color:var(--text-primary);}
.consult-info__detail{font-size:var(--font-xs);color:var(--text-secondary);margin-top:2px;}
.consult-info__tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);margin-left:8px;}
.consult-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.consult-row{display:flex;flex-direction:column;gap:4px;}
.consult-row__label{font-size:var(--font-xs);color:var(--text-secondary);}
.consult-row__value{font-size:var(--font-sm);color:var(--text-primary);font-weight:500;}
</style>
</head>
<body>
@@ -130,180 +146,293 @@
</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">档案编号</span>
<span class="info-item__value" style="font-family:monospace;color:var(--text-secondary);">DA20260409001</span>
</div>
<div class="info-item">
<span class="info-item__label">创建时间</span>
<span class="info-item__value">2026-04-09 09:12</span>
</div>
<div class="info-item">
<span class="info-item__label">员工姓名</span>
<span class="info-item__label">姓名</span>
<span class="info-item__value">张伟</span>
</div>
<div class="info-item">
<span class="info-item__label"></span>
<span class="info-item__label">员工编</span>
<span class="info-item__value" style="font-family:monospace;">CQ001234</span>
</div>
<div class="info-item">
<span class="info-item__label">所属单位</span>
<span class="info-item__label">性别</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">年龄</span>
<span class="info-item__value">38岁</span>
</div>
<div class="info-item">
<span class="info-item__label">单位</span>
<span class="info-item__value">采油一厂</span>
</div>
<div class="info-item">
<span class="info-item__label">关联咨询数</span>
<span class="info-item__value" style="color:var(--primary);font-weight:600;">3 次</span>
<span class="info-item__label">部门</span>
<span class="info-item__value">心血管科</span>
</div>
<div class="info-item">
<span class="info-item__label">手机号</span>
<span class="info-item__value">13800138000</span>
</div>
<div class="info-item">
<span class="info-item__label">身份证号</span>
<span class="info-item__value" style="font-family:monospace;">610102198806150012</span>
</div>
</div>
</div>
<!-- 主诉 -->
<div class="card">
<div class="card__title">主诉</div>
<div class="chief-complaint-box">
心跳加速、胸闷,活动后加重,持续约2周,休息后可缓解。近期工作压力较大,睡眠质量下降。
<div class="card__title">咨询人信息</div>
<div class="tabs">
<button class="tab-btn active" onclick="switchTab(this, 'consult-1')">咨询人1</button>
<button class="tab-btn" onclick="switchTab(this, 'consult-2')">咨询人2</button>
<button class="tab-btn" onclick="switchTab(this, 'consult-3')">咨询人3</button>
</div>
</div>
<!-- 既往病史 & 过敏史 -->
<div class="card">
<div class="card__title">病史信息</div>
<div style="margin-bottom:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:8px;">既往病史</div>
<div style="display:flex;gap:8px;flex-wrap:wrap;">
<span class="tag tag-orange">高血压(确诊2年)</span>
<span class="tag tag-orange">高脂血症</span>
</div>
<div style="font-size:var(--font-xs);color:var(--text-secondary);margin-top:8px;line-height:1.6;">
目前服用:氨氯地平 5mg/日(降压)、阿托伐他汀 20mg/晚(调脂)
<!-- 咨询人1 -->
<div class="tab-content active" id="consult-1">
<div class="consult-info">
<div style="margin-bottom:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:600;">基本信息</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">咨询人姓名</span>
<span class="info-item__value">本人</span>
</div>
<div class="info-item">
<span class="info-item__label">性别</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">出生日期</span>
<span class="info-item__value">1988-06-15</span>
</div>
<div class="info-item">
<span class="info-item__label">与本人关系</span>
<span class="info-item__value">本人</span>
</div>
</div>
</div>
<div style="border-top:1px solid var(--border);padding-top:16px;margin-bottom:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:600;">生活习惯</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">是否抽烟</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">是否饮酒</span>
<span class="info-item__value">偶尔</span>
</div>
<div class="info-item">
<span class="info-item__label">饮食喜好</span>
<span class="info-item__value">清淡</span>
</div>
<div class="info-item">
<span class="info-item__label">睡眠质量</span>
<span class="info-item__value">一般</span>
</div>
</div>
</div>
<div style="border-top:1px solid var(--border);padding-top:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:600;">身体情况</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">身高</span>
<span class="info-item__value">175cm</span>
</div>
<div class="info-item">
<span class="info-item__label">体重</span>
<span class="info-item__value">72kg</span>
</div>
<div class="info-item">
<span class="info-item__label">过敏史</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">遗传史</span>
<span class="info-item__value">高血压家族史</span>
</div>
<div class="info-item">
<span class="info-item__label">既往史</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">其他疾病</span>
<span class="info-item__value"></span>
</div>
</div>
</div>
</div>
</div>
<div style="border-top:1px solid var(--border);padding-top:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:8px;">过敏史</div>
<span class="tag tag-gray">无已知过敏史</span>
</div>
</div>
<!-- 关联咨询记录 -->
<div class="card">
<div class="card__title">关联咨询记录(3次)</div>
<div class="consult-list">
<div class="consult-item" onclick="location.href='history-expert-detail.html'">
<div class="consult-item__header">
<span class="consult-item__id">ZX20260409088</span>
<div style="display:flex;align-items:center;gap:8px;">
<span class="tag tag-blue">图文咨询</span>
<span class="tag" style="background:#E6F7FF;color:var(--primary);">进行中</span>
<!-- 咨询人2 -->
<div class="tab-content" id="consult-2">
<div class="consult-info">
<div style="margin-bottom:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:600;">基本信息</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">咨询人姓名</span>
<span class="info-item__value">张三</span>
</div>
<div class="info-item">
<span class="info-item__label">性别</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">出生日期</span>
<span class="info-item__value">1960-03-20</span>
</div>
<div class="info-item">
<span class="info-item__label">与本人关系</span>
<span class="info-item__value">父亲</span>
</div>
</div>
</div>
<div style="display:flex;align-items:center;justify-content:space-between;">
<div>
<div class="consult-item__expert">李医生</div>
<div class="consult-item__dept">心血管内科 · 主任医师</div>
</div>
<div class="consult-item__meta">
<span>2026-04-09 09:12</span>
<span class="link">查看详情 →</span>
<div style="border-top:1px solid var(--border);padding-top:16px;margin-bottom:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:600;">生活习惯</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">是否抽烟</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">是否饮酒</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">饮食喜好</span>
<span class="info-item__value">偏油腻</span>
</div>
<div class="info-item">
<span class="info-item__label">睡眠质量</span>
<span class="info-item__value">较差</span>
</div>
</div>
</div>
</div>
<div class="consult-item" onclick="location.href='history-expert-detail.html'">
<div class="consult-item__header">
<span class="consult-item__id">ZX20260325044</span>
<div style="display:flex;align-items:center;gap:8px;">
<span class="tag tag-blue">图文咨询</span>
<span class="tag tag-green">已完成</span>
</div>
</div>
<div style="display:flex;align-items:center;justify-content:space-between;">
<div>
<div class="consult-item__expert">李医生</div>
<div class="consult-item__dept">心血管内科 · 主任医师</div>
</div>
<div class="consult-item__meta">
<span>2026-03-25 14:30</span>
<span class="stars">★★★★★</span>
<span class="link">查看详情 →</span>
</div>
</div>
</div>
<div class="consult-item" onclick="location.href='history-expert-detail.html'">
<div class="consult-item__header">
<span class="consult-item__id">ZX20260210018</span>
<div style="display:flex;align-items:center;gap:8px;">
<span class="tag" style="background:#F9F0FF;color:#722ED1;">视频咨询</span>
<span class="tag tag-green">已完成</span>
</div>
</div>
<div style="display:flex;align-items:center;justify-content:space-between;">
<div>
<div class="consult-item__expert">王医生</div>
<div class="consult-item__dept">内分泌科 · 副主任医师</div>
</div>
<div class="consult-item__meta">
<span>2026-02-10 10:00</span>
<span class="stars">★★★★</span>
<span class="link">查看详情 →</span>
<div style="border-top:1px solid var(--border);padding-top:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:600;">身体情况</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">身高</span>
<span class="info-item__value">170cm</span>
</div>
<div class="info-item">
<span class="info-item__label">体重</span>
<span class="info-item__value">78kg</span>
</div>
<div class="info-item">
<span class="info-item__label">过敏史</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">遗传史</span>
<span class="info-item__value">高血压、糖尿病家族史</span>
</div>
<div class="info-item">
<span class="info-item__label">既往史</span>
<span class="info-item__value">高血压(确诊5年)</span>
</div>
<div class="info-item">
<span class="info-item__label">其他疾病</span>
<span class="info-item__value">高脂血症</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 右侧:员工信息 -->
<div>
<div class="info-card">
<div class="info-card__title">员工信息</div>
<div style="display:flex;align-items:center;gap:12px;margin-bottom:14px;">
<div style="width:48px;height:48px;border-radius:50%;background:var(--primary-light);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:18px;font-weight:600;flex-shrink:0;"></div>
<div>
<div style="font-size:var(--font-base);font-weight:600;">张伟</div>
<div style="font-size:var(--font-xs);color:var(--text-secondary);">CQ001234 · 采油一厂</div>
</div>
</div>
<div class="info-row">
<span class="info-row__label">性别</span>
<span class="info-row__value"></span>
</div>
<div class="info-row">
<span class="info-row__label">年龄</span>
<span class="info-row__value">42岁</span>
</div>
<div class="info-row">
<span class="info-row__label">岗位</span>
<span class="info-row__value">采油工程师</span>
</div>
<div class="info-row">
<span class="info-row__label">联系方式</span>
<span class="info-row__value" style="color:var(--text-secondary);">已脱敏</span>
</div>
</div>
<div class="info-card">
<div class="info-card__title">档案统计</div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:10px;">
<div style="background:#F5F7FA;border-radius:var(--radius-sm);padding:10px 12px;text-align:center;">
<div style="font-size:20px;font-weight:700;color:var(--primary);">3</div>
<div style="font-size:var(--font-xs);color:var(--text-secondary);margin-top:2px;">关联咨询</div>
</div>
<div style="background:#F5F7FA;border-radius:var(--radius-sm);padding:10px 12px;text-align:center;">
<div style="font-size:20px;font-weight:700;color:var(--success);">2</div>
<div style="font-size:var(--font-xs);color:var(--text-secondary);margin-top:2px;">已完成</div>
</div>
</div>
<div style="margin-top:12px;">
<div class="info-row">
<span class="info-row__label">首次咨询</span>
<span class="info-row__value">2026-02-10</span>
</div>
<div class="info-row">
<span class="info-row__label">最近咨询</span>
<span class="info-row__value">2026-04-09</span>
<!-- 咨询人3 -->
<div class="tab-content" id="consult-3">
<div class="consult-info">
<div style="margin-bottom:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:600;">基本信息</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">咨询人姓名</span>
<span class="info-item__value">李梅</span>
</div>
<div class="info-item">
<span class="info-item__label">性别</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">出生日期</span>
<span class="info-item__value">1962-08-10</span>
</div>
<div class="info-item">
<span class="info-item__label">与本人关系</span>
<span class="info-item__value">母亲</span>
</div>
</div>
</div>
<div style="border-top:1px solid var(--border);padding-top:16px;margin-bottom:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:600;">生活习惯</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">是否抽烟</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">是否饮酒</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">饮食喜好</span>
<span class="info-item__value">清淡</span>
</div>
<div class="info-item">
<span class="info-item__label">睡眠质量</span>
<span class="info-item__value">良好</span>
</div>
</div>
</div>
<div style="border-top:1px solid var(--border);padding-top:16px;">
<div style="font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:600;">身体情况</div>
<div class="info-grid">
<div class="info-item">
<span class="info-item__label">身高</span>
<span class="info-item__value">162cm</span>
</div>
<div class="info-item">
<span class="info-item__label">体重</span>
<span class="info-item__value">58kg</span>
</div>
<div class="info-item">
<span class="info-item__label">过敏史</span>
<span class="info-item__value">青霉素过敏</span>
</div>
<div class="info-item">
<span class="info-item__label">遗传史</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">既往史</span>
<span class="info-item__value"></span>
</div>
<div class="info-item">
<span class="info-item__label">其他疾病</span>
<span class="info-item__value"></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<script>
function switchTab(btn, tabId) {
// 移除所有tab按钮的active状态
document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
// 隐藏所有tab内容
document.querySelectorAll('.tab-content').forEach(c => c.classList.remove('active'));
// 激活当前tab
btn.classList.add('active');
document.getElementById(tabId).classList.add('active');
}
</script>
</body>
</html>
+167 -68
View File
@@ -66,6 +66,20 @@
.pagination span{font-size:var(--font-sm);color:var(--text-secondary);}
.page-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;}
.page-btn:hover,.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);}
.filter-bar__row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.org-select-wrap{position:relative;display:inline-block;}
.org-trigger{height:36px;min-width:160px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;cursor:pointer;display:flex;align-items:center;user-select:none;white-space:nowrap;}
.org-trigger.open,.org-trigger:hover{border-color:var(--primary);}
.org-panel{display:none;position:absolute;top:40px;left:0;z-index:300;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 2px 8px rgba(0,0,0,0.12);width:420px;}
.org-panel.open{display:flex;}
.org-col{flex:1;overflow-y:auto;max-height:240px;border-right:1px solid var(--border);}
.org-col:last-child{border-right:none;}
.org-col__title{padding:8px 14px;font-size:var(--font-xs);color:var(--text-secondary);background:#FAFAFA;border-bottom:1px solid var(--border);font-weight:500;}
.org-item{padding:9px 14px;font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:4px;}
.org-item:hover{background:#F0F8FF;color:var(--primary);}
.org-item.active{background:#E6F7FF;color:var(--primary);font-weight:500;}
.table-card__content{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;}
.table-card__content table{min-width:100%;white-space:nowrap;}
</style>
</head>
<body>
@@ -107,29 +121,56 @@
</aside>
<main class="main">
<div class="filter-bar">
<div class="filter-item">
<label>员工姓名/工号</label>
<input class="filter-input" type="text" placeholder="请输入员工姓名或工号">
<div class="filter-bar__row">
<div class="filter-item">
<label>姓名</label>
<input class="filter-input" type="text" placeholder="请输入姓名">
</div>
<div class="filter-item">
<label>员工编号</label>
<input class="filter-input" type="text" placeholder="请输入员工编号">
</div>
<div class="filter-item">
<label style="white-space:nowrap;">所属单位部门</label>
<div class="org-select-wrap" id="orgWrap">
<div class="org-trigger" id="orgTrigger" onclick="toggleOrg()">全部单位/部门</div>
<div class="org-panel" id="orgPanel">
<div class="org-col" id="orgUnitCol">
<div class="org-col__title">单位</div>
<div class="org-item active" data-unit="" onclick="selectUnit(this,'全部单位/部门','')">
全部单位/部门
</div>
<div class="org-item" data-unit="cy1" onclick="selectUnit(this,'采油一厂','cy1')">
采油一厂
</div>
<div class="org-item" data-unit="cy2" onclick="selectUnit(this,'采油二厂','cy2')">
采油二厂
</div>
<div class="org-item" data-unit="cy3" onclick="selectUnit(this,'采油三厂','cy3')">
采油三厂
</div>
<div class="org-item" data-unit="kfyj" onclick="selectUnit(this,'勘探开发研究院','kfyj')">
勘探开发研究院
</div>
<div class="org-item" data-unit="jgsh" onclick="selectUnit(this,'机关事务服务中心','jgsh')">
机关事务服务中心
</div>
</div>
<div class="org-col" id="orgDeptCol">
<div class="org-col__title">部门</div>
<div class="org-item active" data-dept="" onclick="selectDept(this,'全部部门','')">
全部部门
</div>
</div>
</div>
</div>
</div>
<button class="btn btn-primary">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><circle cx="6" cy="6" r="4" stroke="currentColor" stroke-width="1.4"/><path d="M10 10l2.5 2.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/></svg>
查询
</button>
<button class="btn btn-default">重置</button>
</div>
<div class="filter-item">
<label>主诉关键词</label>
<input class="filter-input" type="text" placeholder="搜索主诉内容">
</div>
<div class="filter-item">
<label>创建时间</label>
<input class="filter-input" type="date" style="min-width:140px;">
<span style="color:var(--text-secondary);font-size:var(--font-sm);"></span>
<input class="filter-input" type="date" style="min-width:140px;">
</div>
<button class="btn btn-primary">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><circle cx="6" cy="6" r="4" stroke="currentColor" stroke-width="1.4"/><path d="M10 10l2.5 2.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/></svg>
查询
</button>
<button class="btn btn-default">重置</button>
<button class="btn btn-default" style="margin-left:auto;">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>
导出
</button>
</div>
<div style="display:flex;gap:12px;margin-bottom:16px;">
<!-- [交互] 点击导出列表数据 -->
@@ -142,90 +183,93 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>
查看导出任务
</button>
</div>
<div class="table-card">
<div class="table-card__header">
<div class="table-card__title">咨询档案列表</div>
<div style="font-size:var(--font-sm);color:var(--text-secondary);">共 8,432 条</div>
</div>
<div class="table-card__content">
<table>
<thead>
<tr>
<th>档案编号</th>
<th>员工姓名</th>
<th></th>
<th>所属单位</th>
<th>主诉</th>
<th>既往病史</th>
<th>过敏史</th>
<th>关联咨询数</th>
<th>创建时间</th>
<th>头像</th>
<th>姓名</th>
<th>员工编</th>
<th>性别</th>
<th>年龄</th>
<th>单位</th>
<th>部门</th>
<th>手机号</th>
<th>咨询人数量</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">DA20260409001</td>
<td><div class="avatar" style="width:36px;height:36px;font-size:var(--font-base);"></div></td>
<td>张伟</td>
<td>CQ001234</td>
<td style="font-family:monospace;color:var(--text-secondary);">CQ001234</td>
<td></td>
<td>38</td>
<td>采油一厂</td>
<td><div class="chief-complaint">心跳加速、胸闷,活动后加重</div></td>
<td><span class="tag tag-orange">高血压</span></td>
<td><span class="tag tag-gray"></span></td>
<td style="color:var(--primary);font-weight:500;">3次</td>
<td>2026-04-09 09:12</td>
<td>心血管科</td>
<td>13800138000</td>
<td style="font-weight:500;">3人</td>
<!-- [交互] 点击跳转至: ./consult-record-detail.html -->
<td><span class="link" onclick="location.href='consult-record-detail.html'">查看详情</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">DA20260409002</td>
<td><div class="avatar" style="width:36px;height:36px;font-size:var(--font-base);"></div></td>
<td>李明</td>
<td>CQ002571</td>
<td style="font-family:monospace;color:var(--text-secondary);">CQ002571</td>
<td></td>
<td>42</td>
<td>采油二厂</td>
<td><div class="chief-complaint">空腹血糖偏高,体检发现6.8mmol/L</div></td>
<td><span class="tag tag-gray"></span></td>
<td><span class="tag tag-gray"></span></td>
<td style="color:var(--primary);font-weight:500;">1次</td>
<td>2026-04-09 09:45</td>
<td>内分泌科</td>
<td>13800138001</td>
<td style="font-weight:500;">1人</td>
<td><span class="link" onclick="location.href='consult-record-detail.html'">查看详情</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">DA20260408010</td>
<td><div class="avatar" style="width:36px;height:36px;font-size:var(--font-base);"></div></td>
<td>刘洋</td>
<td>CQ004102</td>
<td style="font-family:monospace;color:var(--text-secondary);">CQ004102</td>
<td></td>
<td>35</td>
<td>采油三厂</td>
<td><div class="chief-complaint">腰部疼痛,久坐后加重,放射至左腿</div></td>
<td><span class="tag tag-orange">腰椎间盘突出</span></td>
<td><span class="tag tag-orange">青霉素过敏</span></td>
<td style="color:var(--primary);font-weight:500;">5次</td>
<td>2026-04-08 14:55</td>
<td>生产部</td>
<td>13800138002</td>
<td style="font-weight:500;">5人</td>
<td><span class="link" onclick="location.href='consult-record-detail.html'">查看详情</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">DA20260407005</td>
<td><div class="avatar" style="width:36px;height:36px;font-size:var(--font-base);"></div></td>
<td>陈磊</td>
<td>CQ006890</td>
<td style="font-family:monospace;color:var(--text-secondary);">CQ006890</td>
<td></td>
<td>45</td>
<td>采油一厂</td>
<td><div class="chief-complaint">反复头痛,以额部为主,伴有恶心</div></td>
<td><span class="tag tag-orange">高血压</span></td>
<td><span class="tag tag-gray"></span></td>
<td style="color:var(--primary);font-weight:500;">8次</td>
<td>2026-04-07 09:55</td>
<td>技术部</td>
<td>13800138003</td>
<td style="font-weight:500;">8人</td>
<td><span class="link" onclick="location.href='consult-record-detail.html'">查看详情</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">DA20260406003</td>
<td><div class="avatar" style="width:36px;height:36px;font-size:var(--font-base);"></div></td>
<td>王芳</td>
<td>CQ003388</td>
<td style="font-family:monospace;color:var(--text-secondary);">CQ003388</td>
<td></td>
<td>32</td>
<td>勘探开发研究院</td>
<td><div class="chief-complaint">睡眠质量差,入睡困难,多梦易醒</div></td>
<td><span class="tag tag-gray"></span></td>
<td><span class="tag tag-gray"></span></td>
<td style="color:var(--primary);font-weight:500;">2次</td>
<td>2026-04-06 11:20</td>
<td>医学研究部</td>
<td>13800138004</td>
<td style="font-weight:500;">2人</td>
<td><span class="link" onclick="location.href='consult-record-detail.html'">查看详情</span></td>
</tr>
</tbody>
</table>
</div>
<div class="pagination">
<span>共 8,432 条</span>
<button class="page-btn"></button>
@@ -239,5 +283,60 @@
</div>
</div>
</main>
</body>
</html>
<script>
// 部门数据映射
const deptMap = {
'cy1': ['心血管科', '内分泌科', '神经内科'],
'cy2': ['骨科', '消化内科', '呼吸科'],
'cy3': ['生产部', '技术部', '安全部'],
'kfyj': ['医学研究部', '数据分析部'],
'jgsh': ['行政部', '人力资源部']
};
function toggleOrg() {
const panel = document.getElementById('orgPanel');
const trigger = document.getElementById('orgTrigger');
panel.classList.toggle('open');
trigger.classList.toggle('open');
}
function selectUnit(elem, unitName, unitCode) {
// 更新单位列表的active状态
document.querySelectorAll('#orgUnitCol .org-item').forEach(item => {
item.classList.remove('active');
});
elem.classList.add('active');
// 更新部门列表
const deptCol = document.getElementById('orgDeptCol');
const depts = deptMap[unitCode] || [];
let deptHtml = '<div class="org-col__title">部门</div>';
deptHtml += '<div class="org-item active" data-dept="" onclick="selectDept(this,\'全部部门\',\'\')">全部部门</div>';
depts.forEach(dept => {
deptHtml += `<div class="org-item" data-dept="${dept}" onclick="selectDept(this,'${dept}','${dept}')">${dept}</div>`;
});
deptCol.innerHTML = deptHtml;
}
function selectDept(elem, deptName, deptCode) {
// 更新部门列表的active状态
document.querySelectorAll('#orgDeptCol .org-item').forEach(item => {
item.classList.remove('active');
});
elem.classList.add('active');
}
// 点击外部关闭下拉框
document.addEventListener('click', function(e) {
const orgWrap = document.getElementById('orgWrap');
if (orgWrap && !orgWrap.contains(e.target)) {
const panel = document.getElementById('orgPanel');
const trigger = document.getElementById('orgTrigger');
panel.classList.remove('open');
trigger.classList.remove('open');
}
});
</script>
+36 -109
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>专家咨询 - 系统脏数据 | 健康长庆原型</title>
<title>专家咨询 - 异常数据 | 健康长庆原型</title>
<style>
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;background:#F5F7FA;color:#333;min-width:1280px;}
@@ -104,50 +104,18 @@
<svg viewBox="0 0 16 16" fill="none"><path d="M8 2L2 13h12L8 2z" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/><path d="M8 6v4M8 11.5v.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/></svg>
系统脏数据
</a>
<a href="exception-result.html" class="sidebar-item">
<svg viewBox="0 0 16 16" fill="none"><circle cx="8" cy="8" r="6" stroke="currentColor" stroke-width="1.4"/><path d="M8 5v3M8 10v.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/></svg>
结果异常
</a>
</aside>
<main class="main">
<!-- 告警横幅 -->
<div class="alert-banner">
<div class="alert-banner__icon">⚠️</div>
<div class="alert-banner__text">
<strong>实时告警:</strong>当前有 <strong>7</strong> 条脏数据待处理,其中 <strong>3</strong> 条为高优先级(咨询时长异常),<strong>4</strong> 条为评分溢出。系统已自动推送告警至运维人员。
</div>
</div>
<!-- 说明框 -->
<div class="desc-box">
<strong>数据定义:</strong>咨询时长异常(时长 &lt; 0 或 &gt; 72小时)或评价分数溢出(评分 &gt; 5分)等情形。
处理方案:业务系统数据质量控制(第一道保障)→ 数据中台清洗质量筛查 → 中台标记异常并回传业务系统 → 实时推送告警至管理员。
</div>
<div class="stat-cards">
<div class="stat-card">
<div class="stat-card__label">待处理脏数据</div>
<div class="stat-card__value" style="color:var(--danger);">7</div>
<div class="stat-card__sub">需立即处理</div>
</div>
<div class="stat-card">
<div class="stat-card__label">本月累计脏数据</div>
<div class="stat-card__value" style="color:var(--warning);">23</div>
<div class="stat-card__sub">2026年4月</div>
</div>
<div class="stat-card">
<div class="stat-card__label">已处理</div>
<div class="stat-card__value" style="color:var(--success);">16</div>
<div class="stat-card__sub">本月已修复</div>
</div>
<div class="stat-card">
<div class="stat-card__label">数据质量率</div>
<div class="stat-card__value" style="color:var(--primary);">99.8%</div>
<div class="stat-card__sub">本月整体质量</div>
</div>
<strong>异常数据定义:</strong>咨询时长异常(时长 &gt; 168小时)、长时间待回复(>48小时未回复)或评价分数溢出(评分 &gt; 5分)等情形。
</div>
<div class="filter-bar">
<div class="filter-item">
<label>咨询单号</label>
<input class="filter-input" type="text" placeholder="请输入咨询单号">
</div>
<div class="filter-item">
<label>异常类型</label>
<select class="filter-select">
@@ -156,16 +124,6 @@
<option>评分溢出</option>
</select>
</div>
<div class="filter-item">
<label>处理状态</label>
<select class="filter-select">
<option>全部状态</option>
<option>待处理</option>
<option>处理中</option>
<option>已修复</option>
<option>已忽略</option>
</select>
</div>
<div class="filter-item">
<label>时间范围</label>
<input class="filter-input" type="date" style="min-width:140px;">
@@ -189,7 +147,7 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>
查看导出任务
</button>
</div>
<div class="table-card">
<div class="table-card__header">
<div class="table-card__title">脏数据列表</div>
@@ -202,97 +160,66 @@
<table>
<thead>
<tr>
<th>告警ID</th>
<th>咨询单号</th>
<th>异常类型</th>
<th>异常字段</th>
<th>咨询员工</th>
<th>员工编号</th>
<th>咨询专家</th>
<th>专家医院</th>
<th>异常值</th>
<th>正常范围</th>
<th>来源</th>
<th>告警时间</th>
<th>处理状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ALT20260409001</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260409088</td>
<td><span class="dirty-type">咨询时长异常</span></td>
<td>duration_minutes</td>
<td><span class="dirty-value">-15</span></td>
<td style="color:var(--text-secondary);">0 ~ 4320</td>
<td><span class="tag tag-red">业务系统</span></td>
<td>张三</td>
<td>EMP001</td>
<td>李医生</td>
<td>长庆医院</td>
<td><span class="dirty-value">-15分钟</span></td>
<td>2026-04-09 11:23</td>
<td><span class="tag tag-orange">待处理</span></td>
<td>
<div style="display:flex;gap:8px;">
<span class="link">查看详情</span>
<!-- [交互] 点击标记为已修复 -->
<span class="link" style="color:var(--success);">标记修复</span>
<span class="link-danger">忽略</span>
</div>
</td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ALT20260409002</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260409102</td>
<td><span class="dirty-type">咨询时长异常</span></td>
<td>duration_minutes</td>
<td><span class="dirty-value">5280</span></td>
<td style="color:var(--text-secondary);">0 ~ 4320</td>
<td><span class="tag tag-orange">数据中台</span></td>
<td>李四</td>
<td>EMP002</td>
<td>王医生</td>
<td>中心医院</td>
<td><span class="dirty-value">5280分钟</span></td>
<td>2026-04-09 11:45</td>
<td><span class="tag tag-orange">待处理</span></td>
<td>
<div style="display:flex;gap:8px;">
<span class="link">查看详情</span>
<span class="link" style="color:var(--success);">标记修复</span>
<span class="link-danger">忽略</span>
</div>
</td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ALT20260409003</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260408215</td>
<td><span class="dirty-type">评分溢出</span></td>
<td>rating_score</td>
<td><span class="dirty-value">7.5</span></td>
<td style="color:var(--text-secondary);">1 ~ 5</td>
<td><span class="tag tag-red">业务系统</span></td>
<td>王五</td>
<td>EMP003</td>
<td>张医生</td>
<td>人民医院</td>
<td><span class="dirty-value">7.5分</span></td>
<td>2026-04-09 10:12</td>
<td><span class="tag tag-orange">待处理</span></td>
<td>
<div style="display:flex;gap:8px;">
<span class="link">查看详情</span>
<span class="link" style="color:var(--success);">标记修复</span>
<span class="link-danger">忽略</span>
</div>
</td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ALT20260408010</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260407088</td>
<td><span class="dirty-type">评分溢出</span></td>
<td>rating_score</td>
<td><span class="dirty-value">-1</span></td>
<td style="color:var(--text-secondary);">1 ~ 5</td>
<td><span class="tag tag-orange">数据中台</span></td>
<td>赵六</td>
<td>EMP004</td>
<td>陈医生</td>
<td>长庆医院</td>
<td><span class="dirty-value">-1分</span></td>
<td>2026-04-08 16:30</td>
<td><span class="tag tag-green">已修复</span></td>
<td><span class="link">查看详情</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ALT20260408008</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260407055</td>
<td><span class="dirty-type">咨询时长异常</span></td>
<td>duration_minutes</td>
<td><span class="dirty-value">-3</span></td>
<td style="color:var(--text-secondary);">0 ~ 4320</td>
<td><span class="tag tag-red">业务系统</span></td>
<td>孙七</td>
<td>EMP005</td>
<td>孙医生</td>
<td>中心医院</td>
<td><span class="dirty-value">-3分钟</span></td>
<td>2026-04-08 14:22</td>
<td><span class="tag tag-gray">已忽略</span></td>
<td><span class="link">查看详情</span></td>
</tr>
</tbody>
</table>
@@ -1,339 +0,0 @@
<!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>
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;background:#F5F7FA;color:#333;min-width:1280px;}
:root{--primary:#1890FF;--primary-light:#E6F7FF;--success:#52C41A;--warning:#FAAD14;--danger:#FF4D4F;--text-primary:#333;--text-secondary:#666;--border:#E8E8E8;--font-xs:11px;--font-sm:13px;--font-base:15px;--font-lg:17px;--font-xl:20px;--radius-sm:4px;--radius-md:8px;--shadow-sm:0 1px 4px rgba(0,0,0,0.08);}
.top-bar{display:flex;align-items:center;height:56px;background:#001529;padding:0 24px;position:fixed;top:0;left:0;right:0;z-index:100;}
.top-bar__logo{display:flex;align-items:center;gap:8px;color:#fff;font-size:var(--font-lg);font-weight:600;width:240px;flex-shrink:0;white-space:nowrap;}
.top-bar__logo svg{width:28px;height:28px;}
.top-bar__nav{display:flex;align-items:center;gap:4px;flex:1;}
.top-bar__nav a{color:rgba(255,255,255,0.65);text-decoration:none;padding:6px 16px;border-radius:var(--radius-sm);font-size:var(--font-sm);transition:all .2s;}
.top-bar__nav a:hover{color:#fff;background:rgba(255,255,255,0.08);}
.top-bar__nav a.active{color:#fff;background:var(--primary);}
.top-bar__right{display:flex;align-items:center;gap:16px;font-size:var(--font-sm);}
.btn-back{color:rgba(255,255,255,0.65);cursor:pointer;display:flex;align-items:center;gap:4px;}
.avatar{width:32px;height:32px;border-radius:50%;background:#1890FF;display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--font-sm);}
.sidebar{position:fixed;top:56px;left:0;bottom:0;width:240px;background:#001529;overflow-y:auto;z-index:90;}
.sidebar-group-title{color:rgba(255,255,255,0.35);font-size:var(--font-xs);padding:16px 24px 8px;}
.sidebar-item{display:flex;align-items:center;gap:10px;padding:12px 24px;color:rgba(255,255,255,0.65);font-size:var(--font-sm);cursor:pointer;transition:all .2s;text-decoration:none;}
.sidebar-item:hover{color:#fff;background:rgba(255,255,255,0.06);}
.sidebar-item.active{color:#fff;background:var(--primary);}
.sidebar-item svg{width:16px;height:16px;flex-shrink:0;}
.main{margin-left:240px;margin-top:56px;padding:24px;}
.page-header{margin-bottom:20px;}
.page-header__title{font-size:var(--font-xl);font-weight:600;}
.page-header__desc{font-size:var(--font-sm);color:var(--text-secondary);margin-top:4px;}
.alert-banner{background:#FFF1F0;border:1px solid #FFCCC7;border-radius:var(--radius-md);padding:14px 20px;margin-bottom:16px;display:flex;align-items:center;gap:12px;}
.alert-banner__icon{color:var(--danger);font-size:20px;flex-shrink:0;}
.alert-banner__text{font-size:var(--font-sm);color:var(--danger);}
.alert-banner__text strong{font-weight:600;}
.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;}
.stat-card{background:#fff;border-radius:var(--radius-md);padding:20px 24px;box-shadow:var(--shadow-sm);}
.stat-card__label{font-size:var(--font-sm);color:var(--text-secondary);}
.stat-card__value{font-size:28px;font-weight:700;margin-top:8px;}
.stat-card__sub{font-size:var(--font-xs);color:var(--text-secondary);margin-top:4px;}
.filter-bar{background:#fff;border-radius:var(--radius-md);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.filter-item{display:flex;align-items:center;gap:8px;}
.filter-item label{font-size:var(--font-sm);color:var(--text-secondary);white-space:nowrap;}
.filter-input{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);outline:none;background:#fff;min-width:180px;}
.filter-input:focus{border-color:var(--primary);}
.filter-select{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;min-width:120px;}
.btn{height:36px;padding:0 16px;border-radius:var(--radius-sm);font-size:var(--font-sm);cursor:pointer;border:none;transition:all .2s;display:inline-flex;align-items:center;gap:6px;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:#40a9ff;}
.btn-default{background:#fff;color:var(--text-primary);border:1px solid var(--border);}
.btn-default:hover{color:var(--primary);border-color:var(--primary);}
.table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;}
.table-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);}
.table-card__title{font-size:var(--font-base);font-weight:600;}
table{width:100%;border-collapse:collapse;}
thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);}
tbody td{padding:14px 16px;font-size:var(--font-sm);border-bottom:1px solid var(--border);vertical-align:top;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#FFF8F8;}
.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);}
.tag-red{background:#FFF1F0;color:var(--danger);}
.tag-orange{background:#FFF7E6;color:var(--warning);}
.tag-green{background:#F6FFED;color:var(--success);}
.tag-gray{background:#F5F5F5;color:var(--text-secondary);}
.tag-purple{background:#F9F0FF;color:#722ED1;}
.anomaly-type{font-weight:500;color:var(--danger);}
.link{color:var(--primary);cursor:pointer;font-size:var(--font-sm);}
.link-danger{color:var(--danger);cursor:pointer;font-size:var(--font-sm);}
.link-warning{color:var(--warning);cursor:pointer;font-size:var(--font-sm);}
.pagination{display:flex;align-items:center;justify-content:flex-end;padding:16px 24px;gap:8px;border-top:1px solid var(--border);}
.pagination span{font-size:var(--font-sm);color:var(--text-secondary);}
.page-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;}
.page-btn:hover,.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);}
.desc-box{background:#FFFBE6;border:1px solid #FFE58F;border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:16px;font-size:var(--font-sm);color:#7C5800;line-height:1.7;}
.desc-box strong{color:#5C3D00;}
.rule-badge{display:inline-flex;align-items:center;gap:4px;background:#F0F5FF;color:#2F54EB;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);}
.severity-high{color:var(--danger);font-weight:600;}
.severity-mid{color:var(--warning);font-weight:600;}
</style>
</head>
<body>
<div class="top-bar">
<div class="top-bar__logo">
<svg viewBox="0 0 28 28" fill="none"><rect width="28" height="28" rx="6" fill="#1890FF"/><path d="M7 14h14M14 7v14" stroke="#fff" stroke-width="2.5" stroke-linecap="round"/></svg>
专家咨询–管理员
</div>
<nav class="top-bar__nav">
<a href="archive-personal.html">档案</a>
<a href="config-hospital.html">基础配置</a>
<a href="history-expert.html">咨询数据</a>
<a href="exception-dirty.html" class="active">异常事件</a>
</nav>
<div class="top-bar__right">
<div class="btn-back" onclick="history.back()">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M10 3L5 8l5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
返回首页
</div>
<div class="avatar"></div>
<span style="color:rgba(255,255,255,0.65);">系统管理员 ▾</span>
</div>
</div>
<aside class="sidebar">
<div class="sidebar-group-title">异常事件</div>
<a href="exception-dirty.html" class="sidebar-item">
<svg viewBox="0 0 16 16" fill="none"><path d="M8 2L2 13h12L8 2z" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/><path d="M8 6v4M8 11.5v.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/></svg>
系统脏数据
</a>
<a href="exception-result.html" class="sidebar-item active">
<svg viewBox="0 0 16 16" fill="none"><circle cx="8" cy="8" r="6" stroke="currentColor" stroke-width="1.4"/><path d="M8 5v3M8 10v.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/></svg>
结果异常
</a>
</aside>
<main class="main">
<!-- 告警横幅 -->
<div class="alert-banner">
<div class="alert-banner__icon">⚠️</div>
<div class="alert-banner__text">
<strong>实时告警:</strong>当前有 <strong>5</strong> 条结果异常待处理,其中 <strong>2</strong> 条为高危(恶意差评),<strong>3</strong> 条为响应超时。系统已自动推送告警至管理员。
</div>
</div>
<!-- 说明框 -->
<div class="desc-box">
<strong>结果异常定义:</strong>恶意差评(评价内容含侮辱性语言或明显虚假内容)或咨询响应超时(专家超过24小时未回复)等情形。
处理流程:数据入库 → 中台医学/业务模型分析 → 判定为风险或异常 → 生成待办工单 → 实时(高危)或每日定时(一般)推送告警至管理员。
</div>
<div class="stat-cards">
<div class="stat-card">
<div class="stat-card__label">待处理异常</div>
<div class="stat-card__value" style="color:var(--danger);">5</div>
<div class="stat-card__sub">需立即处理</div>
</div>
<div class="stat-card">
<div class="stat-card__label">本月累计异常</div>
<div class="stat-card__value" style="color:var(--warning);">31</div>
<div class="stat-card__sub">2026年4月</div>
</div>
<div class="stat-card">
<div class="stat-card__label">已处理</div>
<div class="stat-card__value" style="color:var(--success);">26</div>
<div class="stat-card__sub">本月已处置</div>
</div>
<div class="stat-card">
<div class="stat-card__label">处理率</div>
<div class="stat-card__value" style="color:var(--primary);">83.9%</div>
<div class="stat-card__sub">本月整体处置率</div>
</div>
</div>
<div class="filter-bar">
<div class="filter-item">
<label>异常类型</label>
<select class="filter-select">
<option>全部类型</option>
<option>恶意差评</option>
<option>响应超时</option>
</select>
</div>
<div class="filter-item">
<label>严重程度</label>
<select class="filter-select">
<option>全部级别</option>
<option>高危</option>
<option>一般</option>
</select>
</div>
<div class="filter-item">
<label>处理状态</label>
<select class="filter-select">
<option>全部状态</option>
<option>待处理</option>
<option>处理中</option>
<option>已处置</option>
<option>已忽略</option>
</select>
</div>
<div class="filter-item">
<label>时间范围</label>
<input class="filter-input" type="date" style="min-width:140px;">
<span style="color:var(--text-secondary);font-size:var(--font-sm);"></span>
<input class="filter-input" type="date" style="min-width:140px;">
</div>
<button class="btn btn-primary">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><circle cx="6" cy="6" r="4" stroke="currentColor" stroke-width="1.4"/><path d="M10 10l2.5 2.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/></svg>
查询
</button>
<button class="btn btn-default">重置</button>
</div>
<div style="display:flex;gap:12px;margin-bottom:16px;">
<!-- [交互] 点击导出列表数据 -->
<button class="btn btn-default">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>
导出列表数据
</button>
<!-- [交互] 点击查看导出任务列表 -->
<button class="btn btn-default">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>
查看导出任务
</button>
</div>
<div class="table-card">
<div class="table-card__header">
<div class="table-card__title">结果异常列表</div>
<div style="display:flex;gap:8px;align-items:center;">
<span style="font-size:var(--font-sm);color:var(--text-secondary);">共 31 条</span>
<button class="btn btn-default" style="height:30px;font-size:var(--font-xs);">批量忽略</button>
</div>
</div>
<table>
<thead>
<tr>
<th>工单ID</th>
<th>咨询单号</th>
<th>异常类型</th>
<th>严重程度</th>
<th>异常描述</th>
<th>触发规则</th>
<th>涉及专家</th>
<th>告警时间</th>
<th>处理状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">WO20260409001</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260406008</td>
<td><span class="anomaly-type">恶意差评</span></td>
<td><span class="severity-high">高危</span></td>
<td style="max-width:220px;color:var(--text-secondary);font-size:var(--font-xs);line-height:1.6;">评价内容含侮辱性语言,经NLP模型识别置信度 92%</td>
<td><span class="rule-badge">NLP-侮辱检测</span></td>
<td>孙医生 / 消化内科</td>
<td>2026-04-09 08:15</td>
<td><span class="tag tag-orange">待处理</span></td>
<td>
<div style="display:flex;gap:8px;">
<span class="link" onclick="location.href='history-evaluation.html'">查看评价</span>
<!-- [交互] 点击标记为已处置(屏蔽该评价) -->
<span class="link" style="color:var(--success);">屏蔽评价</span>
<span class="link-danger">忽略</span>
</div>
</td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">WO20260409002</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260408201</td>
<td><span class="anomaly-type">恶意差评</span></td>
<td><span class="severity-high">高危</span></td>
<td style="max-width:220px;color:var(--text-secondary);font-size:var(--font-xs);line-height:1.6;">评价内容疑似虚假,与咨询记录内容严重不符</td>
<td><span class="rule-badge">内容一致性校验</span></td>
<td>李医生 / 心血管内科</td>
<td>2026-04-09 09:02</td>
<td><span class="tag tag-orange">待处理</span></td>
<td>
<div style="display:flex;gap:8px;">
<span class="link" onclick="location.href='history-evaluation.html'">查看评价</span>
<span class="link" style="color:var(--success);">屏蔽评价</span>
<span class="link-danger">忽略</span>
</div>
</td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">WO20260409003</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260408088</td>
<td><span class="anomaly-type">响应超时</span></td>
<td><span class="severity-mid">一般</span></td>
<td style="max-width:220px;color:var(--text-secondary);font-size:var(--font-xs);line-height:1.6;">专家已超过 26.5 小时未回复,超出24小时SLA</td>
<td><span class="rule-badge">SLA-24h回复</span></td>
<td>陈医生 / 骨科</td>
<td>2026-04-09 10:30</td>
<td><span class="tag tag-orange">待处理</span></td>
<td>
<div style="display:flex;gap:8px;">
<span class="link" onclick="location.href='history-expert-detail.html'">查看咨询</span>
<!-- [交互] 点击催促专家回复 -->
<span class="link-warning">催促回复</span>
<span class="link-danger">忽略</span>
</div>
</td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">WO20260409004</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260408112</td>
<td><span class="anomaly-type">响应超时</span></td>
<td><span class="severity-mid">一般</span></td>
<td style="max-width:220px;color:var(--text-secondary);font-size:var(--font-xs);line-height:1.6;">专家已超过 31 小时未回复,超出24小时SLA</td>
<td><span class="rule-badge">SLA-24h回复</span></td>
<td>王医生 / 内分泌科</td>
<td>2026-04-09 11:00</td>
<td><span class="tag tag-orange">待处理</span></td>
<td>
<div style="display:flex;gap:8px;">
<span class="link" onclick="location.href='history-expert-detail.html'">查看咨询</span>
<span class="link-warning">催促回复</span>
<span class="link-danger">忽略</span>
</div>
</td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">WO20260408015</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260407055</td>
<td><span class="anomaly-type">响应超时</span></td>
<td><span class="severity-mid">一般</span></td>
<td style="max-width:220px;color:var(--text-secondary);font-size:var(--font-xs);line-height:1.6;">专家超时回复,已于次日补充回复</td>
<td><span class="rule-badge">SLA-24h回复</span></td>
<td>张医生 / 神经内科</td>
<td>2026-04-08 14:00</td>
<td><span class="tag tag-green">已处置</span></td>
<td><span class="link" onclick="location.href='history-expert-detail.html'">查看咨询</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">WO20260407008</td>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260405033</td>
<td><span class="anomaly-type">恶意差评</span></td>
<td><span class="severity-high">高危</span></td>
<td style="max-width:220px;color:var(--text-secondary);font-size:var(--font-xs);line-height:1.6;">评价内容含侮辱性语言,已屏蔽处理</td>
<td><span class="rule-badge">NLP-侮辱检测</span></td>
<td>孙医生 / 消化内科</td>
<td>2026-04-07 16:20</td>
<td><span class="tag tag-gray">已忽略</span></td>
<td><span class="link" onclick="location.href='history-evaluation.html'">查看评价</span></td>
</tr>
</tbody>
</table>
<div class="pagination">
<span>共 31 条</span>
<button class="page-btn"></button>
<button class="page-btn active">1</button>
<button class="page-btn">2</button>
<button class="page-btn">3</button>
<button class="page-btn">4</button>
<button class="page-btn"></button>
<select class="filter-select" style="min-width:70px;height:32px;"><option>10条</option><option>20条</option></select>
</div>
</div>
</main>
</body>
</html>
+20 -43
View File
@@ -117,12 +117,11 @@
<main class="main">
<div class="filter-bar">
<div class="filter-item">
<label>时间范围</label>
<label>年份</label>
<select class="filter-select" style="min-width:120px;">
<option>本月</option>
<option>本季度</option>
<option>本年度</option>
<option>自定义</option>
<option>2026</option>
<option>2025</option>
<option>2024</option>
</select>
</div>
<div class="filter-item">
@@ -130,7 +129,16 @@
<input class="filter-input" type="text" placeholder="请输入专家姓名">
</div>
<div class="filter-item">
<label>科室</label>
<label>所属医院</label>
<select class="filter-select">
<option>全部医院</option>
<option>长庆医院</option>
<option>中心医院</option>
<option>人民医院</option>
</select>
</div>
<div class="filter-item">
<label>所属科室</label>
<select class="filter-select">
<option>全部科室</option>
<option>心血管内科</option>
@@ -157,9 +165,6 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>
查看导出任务
</button>
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>
导出报表
</button>
</div>
<div class="table-card">
<div class="table-card__header">
@@ -170,13 +175,13 @@
<thead>
<tr>
<th>专家信息</th>
<th>专家医院</th>
<th class="sortable">总咨询次数 ↕</th>
<th>进行中</th>
<th class="sortable">图文咨询 ↕</th>
<th class="sortable">视频咨询 ↕</th>
<th class="sortable">满意度 ↕</th>
<th class="sortable">24h回复率 ↕</th>
<th class="sortable">热度 ↕</th>
</tr>
</thead>
<tbody>
@@ -190,6 +195,7 @@
</div>
</div>
</td>
<td>长庆医院</td>
<td style="font-weight:600;color:var(--primary);">1,234</td>
<td><span class="tag tag-blue">3</span></td>
<td>986</td>
@@ -206,14 +212,6 @@
<span style="font-size:var(--font-xs);">98%</span>
</div>
</td>
<td>
<div class="hot-bar">
<span class="hot-icon">🔥</span>
<span class="hot-icon">🔥</span>
<span class="hot-icon">🔥</span>
<span style="font-size:var(--font-xs);color:var(--text-secondary);">极热</span>
</div>
</td>
</tr>
<tr>
<td>
@@ -225,6 +223,7 @@
</div>
</div>
</td>
<td>中心医院</td>
<td style="font-weight:600;color:var(--primary);">987</td>
<td><span class="tag tag-blue">2</span></td>
<td>756</td>
@@ -241,13 +240,6 @@
<span style="font-size:var(--font-xs);">95%</span>
</div>
</td>
<td>
<div class="hot-bar">
<span class="hot-icon">🔥</span>
<span class="hot-icon">🔥</span>
<span style="font-size:var(--font-xs);color:var(--text-secondary);">热门</span>
</div>
</td>
</tr>
<tr>
<td>
@@ -259,6 +251,7 @@
</div>
</div>
</td>
<td>人民医院</td>
<td style="font-weight:600;color:var(--primary);">756</td>
<td><span class="tag tag-blue">1</span></td>
<td>612</td>
@@ -275,13 +268,6 @@
<span style="font-size:var(--font-xs);">92%</span>
</div>
</td>
<td>
<div class="hot-bar">
<span class="hot-icon">🔥</span>
<span class="hot-icon">🔥</span>
<span style="font-size:var(--font-xs);color:var(--text-secondary);">热门</span>
</div>
</td>
</tr>
<tr>
<td>
@@ -293,6 +279,7 @@
</div>
</div>
</td>
<td>长庆医院</td>
<td style="font-weight:600;color:var(--primary);">543</td>
<td><span class="tag tag-blue">0</span></td>
<td>489</td>
@@ -309,12 +296,6 @@
<span style="font-size:var(--font-xs);">88%</span>
</div>
</td>
<td>
<div class="hot-bar">
<span class="hot-icon">🔥</span>
<span style="font-size:var(--font-xs);color:var(--text-secondary);">一般</span>
</div>
</td>
</tr>
<tr>
<td>
@@ -326,6 +307,7 @@
</div>
</div>
</td>
<td>中心医院</td>
<td style="font-weight:600;color:var(--primary);">312</td>
<td><span class="tag tag-blue">1</span></td>
<td>278</td>
@@ -342,11 +324,6 @@
<span style="font-size:var(--font-xs);color:var(--warning);">75%</span>
</div>
</td>
<td>
<div class="hot-bar">
<span style="font-size:var(--font-xs);color:var(--text-secondary);">— 冷门</span>
</div>
</td>
</tr>
</tbody>
</table>
@@ -49,9 +49,10 @@
.table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;}
.table-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);}
.table-card__title{font-size:var(--font-base);font-weight:600;}
.table-card__content{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;}
table{width:100%;border-collapse:collapse;}
thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);}
tbody td{padding:14px 16px;font-size:var(--font-sm);border-bottom:1px solid var(--border);}
thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap;}
tbody td{padding:14px 16px;font-size:var(--font-sm);border-bottom:1px solid var(--border);white-space:nowrap;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#F8FBFF;}
.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);}
@@ -142,6 +143,10 @@
</aside>
<main class="main">
<div class="filter-bar">
<div class="filter-item">
<label>咨询单号</label>
<input class="filter-input" type="text" placeholder="请输入咨询单号">
</div>
<div class="filter-item">
<label>姓名</label>
<input class="filter-input" type="text" placeholder="请输入姓名">
@@ -214,9 +219,11 @@
<div class="table-card__title">咨询记录列表</div>
<div style="font-size:var(--font-sm);color:var(--text-secondary);">共 38,920 条</div>
</div>
<div class="table-card__content">
<table>
<thead>
<tr>
<th>咨询单号</th>
<th>姓名</th>
<th>员工编号</th>
<th>所属单位</th>
@@ -232,6 +239,7 @@
</thead>
<tbody>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260409001</td>
<td>张伟</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP001</td>
<td>采油一厂</td>
@@ -245,6 +253,7 @@
<td><span class="link" onclick="openChat('张伟','健康小助手','2026-04-09 08:30')">查看对话</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260409002</td>
<td>李明</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP002</td>
<td>采油二厂</td>
@@ -258,6 +267,7 @@
<td><span class="link" onclick="openChat('李明','健康小助手','2026-04-09 09:45')">查看对话</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260409003</td>
<td>王芳</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP003</td>
<td>勘探开发研究院</td>
@@ -271,6 +281,7 @@
<td><span class="link" onclick="openChat('王芳','健康小助手','2026-04-09 10:12')">查看对话</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260408004</td>
<td>刘洋</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP004</td>
<td>采油三厂</td>
@@ -284,6 +295,7 @@
<td><span class="link" onclick="openChat('刘洋','健康小助手','2026-04-08 14:55')">查看对话</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260408005</td>
<td>赵静</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP005</td>
<td>机关事务服务中心</td>
@@ -298,6 +310,7 @@
</tr>
</tbody>
</table>
</div>
<div class="pagination">
<span>共 38,920 条</span>
<button class="page-btn"></button>
@@ -54,9 +54,10 @@
.table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;}
.table-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);}
.table-card__title{font-size:var(--font-base);font-weight:600;}
.table-card__content{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;}
table{width:100%;border-collapse:collapse;}
thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);}
tbody td{padding:14px 16px;font-size:var(--font-sm);border-bottom:1px solid var(--border);vertical-align:top;}
thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap;}
tbody td{padding:14px 16px;font-size:var(--font-sm);border-bottom:1px solid var(--border);vertical-align:top;white-space:nowrap;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#F8FBFF;}
.stars{color:#FAAD14;font-size:var(--font-base);letter-spacing:1px;}
@@ -137,6 +138,10 @@
</aside>
<main class="main">
<div class="filter-bar">
<div class="filter-item">
<label>咨询单号</label>
<input class="filter-input" type="text" placeholder="请输入咨询单号">
</div>
<div class="filter-item">
<label>姓名</label>
<input class="filter-input" type="text" placeholder="请输入员工姓名">
@@ -170,9 +175,17 @@
查询
</button>
<button class="btn btn-default">重置</button>
<button class="btn btn-default" style="margin-left:auto;">
</div>
<div style="display:flex;gap:12px;margin-bottom:16px;">
<!-- [交互] 点击导出列表数据 -->
<button class="btn btn-default">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>
导出
导出列表数据
</button>
<!-- [交互] 点击查看导出任务列表 -->
<button class="btn btn-default">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>
查看导出任务
</button>
</div>
<div class="table-card">
@@ -180,9 +193,11 @@
<div class="table-card__title">评价列表</div>
<div style="font-size:var(--font-sm);color:var(--text-secondary);">共 9,823 条</div>
</div>
<div class="table-card__content">
<table>
<thead>
<tr>
<th>咨询单号</th>
<th>姓名</th>
<th>员工编号</th>
<th>咨询专家</th>
@@ -196,6 +211,7 @@
</thead>
<tbody>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260409001</td>
<td>张伟</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP001023</td>
<td>李医生</td>
@@ -207,6 +223,7 @@
<td><span class="link" onclick="openChat('张伟','李医生','北京协和医院','心血管内科','2026-04-09 09:40')">查看对话</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260409002</td>
<td>李明</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP002187</td>
<td>王医生</td>
@@ -218,6 +235,7 @@
<td><span class="link" onclick="openChat('李明','王医生','上海瑞金医院','内分泌科','2026-04-09 11:20')">查看对话</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260408003</td>
<td>刘洋</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP003456</td>
<td>陈医生</td>
@@ -229,6 +247,7 @@
<td><span class="link" onclick="openChat('刘洋','陈医生','广州中山医院','骨科','2026-04-08 15:10')">查看对话</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260407004</td>
<td>陈磊</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP004891</td>
<td>李医生</td>
@@ -240,6 +259,7 @@
<td><span class="link" onclick="openChat('陈磊','李医生','北京协和医院','心血管内科','2026-04-07 10:30')">查看对话</span></td>
</tr>
<tr>
<td style="font-family:monospace;color:var(--text-secondary);">ZX20260406005</td>
<td>孙丽</td>
<td style="font-family:monospace;color:var(--text-secondary);">EMP005234</td>
<td>孙医生</td>
@@ -255,6 +275,7 @@
</tr>
</tbody>
</table>
</div>
<div class="pagination">
<span>共 9,823 条</span>
<button class="page-btn"></button>