feat(web): 优化差旅详情、风险建议卡片与文档中心交互

- 拆分阶段风险建议卡片样式到独立文件
- 完善差旅申请审批对话框与详情视图交互
- 调整文档中心列表共享样式与状态筛选
- 同步应用外壳、视图初始化与系统状态 composables
This commit is contained in:
caoxiaozhu
2026-06-17 14:39:12 +08:00
parent a3e5295915
commit 0fac8b615f
19 changed files with 1415 additions and 558 deletions

View File

@@ -777,12 +777,16 @@
:title="`确认提交 ${request.id} 吗?`"
:description="submitConfirmDescription"
cancel-text="返回核对"
:secondary-text="submitConfirmSecondaryText"
secondary-tone="warning"
secondary-icon="mdi mdi-calculator-variant-outline"
:confirm-text="submitConfirmText"
busy-text="提交中..."
confirm-tone="primary"
confirm-icon="mdi mdi-send-circle-outline"
:busy="submitBusy"
@close="closeSubmitConfirmDialog"
@secondary="confirmStandardAdjustment"
@confirm="confirmSubmitRequest"
>
<div class="submit-confirm-summary" aria-label="提交前核对摘要">
@@ -807,51 +811,55 @@
<ConfirmDialog
:open="riskOverrideDialogOpen"
badge="异常说明"
badge-tone="danger"
:badge-tone="riskOverrideBadgeTone"
size="review"
:title="`当前存在 ${submitRiskWarnings.length} 条需说明的风险`"
description="请回到费用明细的异常说明列补充原因后再提交;如果不补充说明,可选择按职级最高可报销金额重新计算。"
cancel-text="返回整改"
confirm-text="按职级标准重算"
:title="riskOverrideDialogTitle"
:description="riskOverrideDialogDescription"
:cancel-text="riskOverrideCancelText"
:confirm-text="riskOverrideConfirmText"
busy-text="处理中..."
confirm-tone="danger"
confirm-icon="mdi mdi-calculator-variant-outline"
:confirm-tone="riskOverrideConfirmTone"
:confirm-icon="riskOverrideConfirmIcon"
:busy="riskOverrideBusy"
@close="closeRiskOverrideDialog"
@confirm="confirmStandardAdjustment"
@confirm="confirmRiskOverrideDialog"
>
<div v-if="currentSubmitRiskWarning" class="risk-override-panel" aria-label="异常说明">
<div class="risk-override-nav">
<div class="risk-override-card-shell">
<button
type="button"
class="risk-override-nav-btn"
:disabled="submitRiskWarnings.length <= 1 || riskOverrideBusy"
class="risk-override-side-nav risk-override-side-nav--previous"
:disabled="submitRiskReviewWarnings.length <= 1 || riskOverrideBusy"
aria-label="上一条风险"
@click="goToPreviousSubmitRisk"
>
<i class="mdi mdi-chevron-left"></i>
</button>
<span>{{ riskOverrideIndexLabel }}</span>
<article :class="['risk-override-card', currentSubmitRiskWarning.tone]">
<div class="risk-override-card-head">
<span>{{ currentSubmitRiskWarning.label }}</span>
<strong>{{ currentSubmitRiskWarning.title }}</strong>
</div>
<p>{{ currentSubmitRiskWarning.risk }}</p>
<div v-if="currentSubmitRiskWarningNotes.length" class="risk-override-notes">
<span>已填写异常说明</span>
<strong v-for="note in currentSubmitRiskWarningNotes" :key="note">{{ note }}</strong>
</div>
</article>
<button
type="button"
class="risk-override-nav-btn"
:disabled="submitRiskWarnings.length <= 1 || riskOverrideBusy"
class="risk-override-side-nav risk-override-side-nav--next"
:disabled="submitRiskReviewWarnings.length <= 1 || riskOverrideBusy"
aria-label="下一条风险"
@click="goToNextSubmitRisk"
>
<i class="mdi mdi-chevron-right"></i>
</button>
</div>
<article :class="['risk-override-card', currentSubmitRiskWarning.tone]">
<div class="risk-override-card-head">
<span>{{ currentSubmitRiskWarning.label }}</span>
<strong>{{ currentSubmitRiskWarning.title }}</strong>
</div>
<p>{{ currentSubmitRiskWarning.risk }}</p>
</article>
<div class="risk-override-index">{{ riskOverrideIndexLabel }}</div>
<div class="risk-override-guidance">
<strong>请在费用明细的异常说明列补充原因后再提交</strong>
<span>如果不补充说明可直接选择按职级标准重算超出标准的部分由员工自担</span>
<strong>{{ riskOverrideGuidanceTitle }}</strong>
<span>{{ riskOverrideGuidanceText }}</span>
</div>
</div>
</ConfirmDialog>
@@ -869,6 +877,9 @@
:opinion-placeholder="approvalOpinionPlaceholder"
:opinion-hint="approvalOpinionHint"
:opinion-required="requiresApprovalOpinion"
:risk-confirm-required="approvalRiskConfirmRequired"
v-model:risk-confirmed="approvalRiskConfirmed"
:risk-confirm-items="approvalRiskConfirmItems"
@close="closeApproveConfirmDialog"
@confirm="confirmApproveRequest"
/>