feat(aihr): align figma pages for release

This commit is contained in:
2026-07-14 02:04:36 +08:00
parent 922fe7ff29
commit 87360a25d3
51 changed files with 3575 additions and 629 deletions
+139 -83
View File
@@ -61,8 +61,14 @@
</view>
<view v-if="result" class="panel answer-panel employee-card">
<text class="panel-title">直给答案</text>
<text class="answer-text">{{ result.answer || '未生成直接答案,请查看下方引用。' }}</text>
<text class="panel-title">师傅回答</text>
<view class="question-card">
<text class="question-label">我的问题</text>
<text class="question-text">{{ query }}</text>
</view>
<view class="answer-copy-card">
<text class="answer-text">{{ result.answer || '未生成直接答案,请查看下方引用。' }}</text>
</view>
<view v-if="result.keyPoints?.length" class="keypoints">
<text v-for="(point, index) in result.keyPoints" :key="point" class="keypoint">
@@ -81,7 +87,7 @@
:disabled="feedbackSubmitting || Boolean(feedbackVerdict)"
@click="feedback('up')"
>
有用
有帮助
</button>
<button
class="secondary-button"
@@ -89,9 +95,12 @@
:disabled="feedbackSubmitting || Boolean(feedbackVerdict)"
@click="feedback('down')"
>
需要复核
没解决
</button>
</view>
<text v-if="feedbackVerdict" class="feedback-status">
{{ feedbackVerdict === 'up' ? '已记录为有帮助' : '已提交未解决反馈,后续会继续优化这条答案' }}
</text>
</view>
<view v-if="result?.snippets?.length" class="panel sources-panel">
@@ -115,7 +124,7 @@
<view class="modal-card" @click.stop>
<view class="modal-header">
<text class="modal-title">{{ summaryCard.title }}</text>
<button class="modal-close" @click="closeSummary">×</button>
<button class="modal-close" aria-label="关闭总结卡" title="关闭总结卡" @click="closeSummary">×</button>
</view>
<scroll-view scroll-y class="modal-body">
<view v-if="summaryCard.steps?.length" class="info-section">
@@ -378,24 +387,26 @@ onShow(() => {
<style scoped>
.sop-page {
padding: 0 18px 96px;
padding: 0 16px 108px;
background: linear-gradient(180deg, var(--employee-bg-soft) 0%, var(--employee-bg) 100%);
}
.sop-head {
position: relative;
margin: 0 -18px;
padding: 30px 28px 24px;
margin: 0 -16px;
padding: 30px 20px 24px;
border-bottom: 1px solid var(--employee-line);
background: linear-gradient(180deg, #eef4ff 0%, #f5f8fd 100%);
}
.sop-head::after {
position: absolute;
right: 28px;
bottom: 24px;
width: 56px;
height: 3px;
background: #e70014;
right: 20px;
bottom: 20px;
width: 42px;
height: 4px;
border-radius: 4px;
background: var(--employee-primary);
content: '';
}
@@ -436,7 +447,7 @@ onShow(() => {
}
.query-panel {
margin-top: 22px;
margin-top: 16px;
padding: 20px;
border-top: 0;
box-shadow: var(--employee-card-shadow);
@@ -523,13 +534,43 @@ onShow(() => {
}
.answer-panel {
border-color: #d9e7de;
border-left: 4px solid #168243;
border-color: var(--employee-line);
border-left: 4px solid var(--employee-primary);
box-shadow: var(--employee-card-shadow);
}
.answer-panel .panel-title {
color: #168243;
color: var(--employee-primary);
}
.question-card,
.answer-copy-card {
display: flex;
flex-direction: column;
gap: 6px;
margin-top: 12px;
padding: 14px 16px;
border-radius: 14px;
}
.question-card {
background: #fff1f1;
}
.question-label {
color: #e34b4b;
font-size: 13px;
font-weight: 700;
}
.question-text {
color: #25282d;
font-size: 16px;
line-height: 1.55;
}
.answer-copy-card {
background: #fff;
}
.keypoints {
@@ -568,15 +609,25 @@ onShow(() => {
}
.feedback-actions .active {
border-color: #168243;
background: #edf7f0;
color: #168243;
border-color: var(--employee-primary);
background: var(--employee-primary-soft);
color: var(--employee-primary);
}
.feedback-actions .negative {
border-color: #e70014;
background: #fff1f2;
color: #bd0010;
border-color: var(--employee-danger);
background: #fff1f0;
color: #c34d45;
}
.feedback-status {
display: block;
padding: 10px 12px;
border-radius: 12px;
background: var(--employee-primary-soft);
color: var(--employee-primary);
font-size: 13px;
line-height: 1.5;
}
.sources-panel {
@@ -600,7 +651,8 @@ onShow(() => {
gap: 6px;
padding: 14px;
border: 1px solid #e3e4e7;
border-radius: 8px;
border-color: var(--employee-line);
border-radius: 18px;
background: #ffffff;
box-shadow: 0 5px 14px rgba(37, 40, 45, 0.04);
}
@@ -629,8 +681,8 @@ onShow(() => {
}
.summary-panel {
border-color: #eadfbd;
background: #fffdf7;
border-color: #f4e4c4;
background: #fffaf2;
box-shadow: var(--employee-card-shadow);
}
@@ -719,7 +771,8 @@ onShow(() => {
.footer-btn {
width: 100%;
background: #168243;
background: var(--employee-primary);
box-shadow: 0 8px 18px rgba(47, 107, 255, 0.18);
color: #ffffff;
}
@@ -915,55 +968,55 @@ onShow(() => {
line-height: 1.45;
}
/* 视觉稿对齐:与练页统一的红白卡片体系 */
/* 视觉稿对齐:与员工端练页统一的蓝白轻卡片体系 */
.sop-page {
padding: 0 18px 96px;
background: #fafafa;
padding: 0 16px 108px;
background: linear-gradient(180deg, var(--employee-bg-soft) 0%, var(--employee-bg) 100%);
}
.sop-head {
margin: 0 -18px;
padding: 34px 18px 24px;
background: #ffffff;
text-align: center;
margin: 0 -16px;
padding: 30px 20px 24px;
border-bottom: 1px solid var(--employee-line);
background: linear-gradient(180deg, #eef4ff 0%, #f5f8fd 100%);
text-align: left;
}
.sop-head::after,
.sop-eyebrow,
.toolbar-tip {
display: none;
display: block;
}
.sop-head .page-title {
color: #111111;
font-size: 38px;
color: var(--employee-text);
font-size: 30px;
font-weight: 900;
}
.sop-head .page-subtitle {
max-width: none;
margin-top: 10px;
color: #858991;
font-size: 16px;
color: var(--employee-muted);
font-size: 14px;
}
.sop-context {
display: inline-flex;
margin-top: 14px;
padding: 7px 14px;
border: 1px solid #f8d7d8;
border: 1px solid #cfe0ff;
border-radius: 999px;
background: #fff7f7;
color: #d51b2b;
background: var(--employee-primary-soft);
color: var(--employee-primary);
font-size: 13px;
font-weight: 800;
}
.query-panel {
margin-top: 18px;
margin-top: 16px;
padding: 22px 18px 18px;
border: 0;
border-radius: 20px;
border-radius: var(--employee-card-radius);
background: #ffffff;
box-shadow: 0 8px 24px rgba(24, 28, 36, 0.06);
}
@@ -979,18 +1032,18 @@ onShow(() => {
.query-panel .chip {
min-height: 40px;
border-color: #e52323;
border-color: #cfe0ff;
border-radius: 999px;
background: #ffffff;
color: #e52323;
color: var(--employee-primary);
}
.query-submit {
min-height: 54px;
margin-top: 8px;
border-radius: 18px;
background: #e52323;
box-shadow: 0 8px 16px rgba(229, 35, 35, 0.18);
background: linear-gradient(135deg, #2f6bff, #5a8cff);
box-shadow: 0 8px 18px rgba(47, 107, 255, 0.2);
}
.knowledge-tip-card {
@@ -1001,8 +1054,10 @@ onShow(() => {
padding: 16px;
border: 0;
border-radius: 18px;
border: 1px solid var(--employee-line);
border-radius: var(--employee-card-radius);
background: #ffffff;
box-shadow: 0 8px 24px rgba(24, 28, 36, 0.05);
box-shadow: var(--employee-card-shadow);
}
.knowledge-tip-icon {
@@ -1012,8 +1067,8 @@ onShow(() => {
align-items: center;
justify-content: center;
border-radius: 14px;
background: #fff0f1;
color: #e52323;
background: var(--employee-primary-soft);
color: var(--employee-primary);
font-size: 28px;
font-weight: 900;
}
@@ -1050,7 +1105,7 @@ onShow(() => {
padding: 28px 18px;
flex-direction: column;
border: 0;
border-radius: 20px;
border-radius: var(--employee-card-radius);
background: #ffffff;
box-shadow: 0 8px 24px rgba(24, 28, 36, 0.04);
}
@@ -1075,67 +1130,68 @@ onShow(() => {
}
.answer-panel {
border-color: #f0dfe0;
border-left-color: #e52323;
border-color: var(--employee-line);
border-left-color: var(--employee-primary);
}
.answer-panel .panel-title,
.result-score {
color: #e52323;
color: var(--employee-primary);
}
.keypoint,
.speech-bubble {
border-left-color: #e52323;
background: #fff5f5;
border-left-color: var(--employee-primary);
background: var(--employee-primary-soft);
}
.cautions,
.reminder-item {
border-left-color: #e52323;
background: #fff5f5;
color: #b71925;
border-left-color: var(--employee-warning);
background: #fff8ec;
color: #8b5a1d;
}
.feedback-actions .active {
border-color: #e52323;
background: #fff0f1;
color: #e52323;
border-color: var(--employee-primary);
background: var(--employee-primary-soft);
color: var(--employee-primary);
}
.feedback-actions .negative {
border-color: #e52323;
background: #fff0f1;
color: #b71925;
border-color: var(--employee-danger);
background: #fff1f0;
color: #c34d45;
}
.summary-panel {
border-color: #f0dfe0;
border-color: #f4e4c4;
border-radius: var(--employee-card-radius);
background: #ffffff;
}
.summary-panel .ghost-button {
border-color: #e52323;
background: #ffffff;
color: #e52323;
border-color: #cfe0ff;
background: var(--employee-primary-soft);
color: var(--employee-primary);
}
.modal-card {
border-top-color: #e52323;
border-top-color: var(--employee-primary);
}
.badge-num,
.timeline-node {
background: #e52323;
background: var(--employee-primary);
}
.a-badge {
background: #fff0f1;
color: #e52323;
background: var(--employee-primary-soft);
color: var(--employee-primary);
}
.reminder-text {
color: #b71925;
color: #8b5a1d;
}
/* 原型对齐:问师傅主卡的标题与对话插画 */
@@ -1155,14 +1211,14 @@ onShow(() => {
}
.query-title {
color: #111111;
color: var(--employee-text);
font-size: 30px;
font-weight: 900;
line-height: 1.1;
}
.query-subtitle {
color: #858991;
color: var(--employee-muted);
font-size: 15px;
line-height: 1.45;
}
@@ -1174,7 +1230,7 @@ onShow(() => {
width: 42%;
height: 96px;
border-radius: 50%;
background: #fff3f3;
background: var(--employee-primary-soft);
}
.query-bubble {
@@ -1192,7 +1248,7 @@ onShow(() => {
width: 92px;
height: 56px;
border-radius: 28px 28px 28px 10px;
background: #f58d91;
background: #7ba4ff;
color: #ffffff;
font-size: 18px;
}
@@ -1203,7 +1259,7 @@ onShow(() => {
left: 18px;
width: 16px;
height: 16px;
background: #f58d91;
background: #7ba4ff;
content: '';
transform: rotate(28deg);
}
@@ -1215,8 +1271,8 @@ onShow(() => {
height: 42px;
border-radius: 22px 22px 8px 22px;
background: #ffffff;
box-shadow: 0 5px 14px rgba(229, 35, 35, 0.08);
color: #f3b7b9;
box-shadow: 0 5px 14px rgba(47, 107, 255, 0.1);
color: #9bb8ff;
font-size: 13px;
}