fix: 修复页面间状态丢失问题并优化选择页面

- 修复选择审批人后再选择抄送人导致状态丢失的问题
- 使用独立的 sessionStorage key (selectedApprovers, selectedCc)
- 组件每次挂载时从 sessionStorage 恢复状态
- 只在提交/保存成功后清除 sessionStorage
- 优化人员选择页面布局和样式
- 更新 CLAUDE.md 文档记录问题和解决方案

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-02-25 15:22:12 +08:00
parent 2d39357cc3
commit 09d4cb8054
51 changed files with 2944 additions and 647 deletions
@@ -1,39 +1,161 @@
.detail {
min-height: 100vh;
background: #f5f5f5;
padding-bottom: 80px;
}
.loading {
display: flex;
align-items: center;
justify-content: center;
min-height: 50vh;
color: #999;
}
.content {
padding: 16px;
}
.card {
background: #fff;
border-radius: 8px;
padding: 16px;
.statusCard {
margin-bottom: 16px;
}
.card h2 {
margin: 0 0 12px 0;
font-size: 16px;
.statusHeader {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
padding-bottom: 12px;
border-bottom: 1px solid #f0f0f0;
}
.actions {
.reason {
font-size: 18px;
font-weight: 500;
color: #333;
flex: 1;
margin-right: 12px;
}
.statusInfo {
display: flex;
flex-direction: column;
gap: 12px;
}
.infoItem {
display: flex;
}
.label {
color: #999;
font-size: 14px;
width: 80px;
flex-shrink: 0;
}
.value {
color: #333;
font-size: 14px;
flex: 1;
}
.section {
margin-bottom: 16px;
}
.itineraries {
display: flex;
flex-direction: column;
gap: 16px;
}
.itineraryItem {
background: #fafafa;
border-radius: 8px;
padding: 12px;
}
.itineraryHeader {
font-weight: 500;
color: #333;
margin-bottom: 12px;
}
.itineraryContent {
display: flex;
flex-direction: column;
gap: 8px;
}
.row {
display: flex;
font-size: 14px;
}
.timeline {
padding: 16px 0;
}
.timelineItem {
position: relative;
}
.timelineTitle {
font-weight: 500;
color: #333;
margin-bottom: 4px;
}
.timelineTime {
font-size: 12px;
color: #999;
}
.timelineDesc {
font-size: 12px;
color: #666;
}
.timelineIconSuccess {
color: #52c41a;
font-size: 18px;
margin-right: 8px;
}
.timelineIconError {
color: #ff4d4f;
font-size: 18px;
margin-right: 8px;
}
.empty {
text-align: center;
color: #999;
padding: 20px 0;
font-size: 14px;
}
.footer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: #fff;
padding: 12px 16px;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
display: flex;
gap: 12px;
}
.actions button {
.footer button {
flex: 1;
padding: 12px;
border: none;
border-radius: 6px;
font-size: 16px;
cursor: pointer;
}
.approveBtn {
background: #52c41a;
color: #fff;
:global(.adm-card-body) {
padding: 16px;
}
.rejectBtn {
background: #ff4d4f;
color: #fff;
:global(.adm-card-header) {
padding: 16px 16px 12px;
}