fix: handle risk explanation standard adjustment

This commit is contained in:
caoxiaozhu
2026-06-03 17:31:40 +08:00
parent 67b81a1bd8
commit 8e2477587f
19 changed files with 976 additions and 61 deletions

View File

@@ -273,7 +273,12 @@
</div>
</template>
<template v-else>
<strong>{{ item.amount }}</strong>
<div v-if="item.hasStandardAdjustment" class="expense-adjusted-amount">
<span class="expense-original-amount">{{ item.originalAmountDisplay || item.amount }}</span>
<strong class="expense-reimbursable-amount">{{ item.reimbursableAmountDisplay }}</strong>
<em v-if="item.employeeAbsorbedAmountDisplay">自担 {{ item.employeeAbsorbedAmountDisplay }}</em>
</div>
<strong v-else>{{ item.amount }}</strong>
<span v-if="item.tone !== 'ok'" :class="['over-tag', item.tone]">{{ item.status }}</span>
</template>
</td>
@@ -370,9 +375,11 @@
<div class="cell-editor">
<textarea
v-model="expenseEditor.itemNote"
class="editor-textarea"
rows="3"
class="editor-textarea risk-note-editor-textarea"
rows="1"
placeholder="如票据存在异常或风险,请补充原因"
@input="resizeExpenseNoteInput"
@keydown.enter="resizeExpenseNoteInput"
></textarea>
<span>用于说明改签绕行超标票据异常等情况</span>
</div>
@@ -764,7 +771,7 @@
</div>
<div class="submit-confirm-row">
<span>{{ isApplicationDocument ? '预计金额' : '报销金额' }}</span>
<strong>{{ request.amountDisplay || expenseTotal }}</strong>
<strong>{{ submitConfirmAmountDisplay }}</strong>
</div>
<div v-if="!isApplicationDocument" class="submit-confirm-row">
<span>费用明细</span>
@@ -774,20 +781,20 @@
</ConfirmDialog>
<ConfirmDialog
:open="riskOverrideDialogOpen"
badge="重大风险"
badge="异常说明"
badge-tone="danger"
:title="`当前存在 ${submitRiskWarnings.length} 条重大风险`"
description="如仍需提交审批,请逐条填写每一个重大风险的原因,系统会写入附加说明并用于后续风险统计。"
:title="`当前存在 ${submitRiskWarnings.length} 条需说明的风险`"
description="请先补充异常说明后提交领导审批;也可以不填写说明,选择按职级最高可报销金额重新计算。"
cancel-text="返回整改"
confirm-text="保存原因并继续"
busy-text="保存中..."
confirm-text="按职级标准重算"
busy-text="处理中..."
confirm-tone="danger"
confirm-icon="mdi mdi-alert-circle-outline"
confirm-icon="mdi mdi-calculator-variant-outline"
:busy="riskOverrideBusy"
@close="closeRiskOverrideDialog"
@confirm="confirmRiskOverrideReasons"
@confirm="confirmStandardAdjustment"
>
<div v-if="currentSubmitRiskWarning" class="risk-override-panel" aria-label="重大风险说明">
<div v-if="currentSubmitRiskWarning" class="risk-override-panel" aria-label="异常说明">
<div class="risk-override-nav">
<button
type="button"
@@ -817,11 +824,26 @@
<p>{{ currentSubmitRiskWarning.risk }}</p>
<textarea
v-model="riskOverrideReasons[currentSubmitRiskWarning.id]"
class="risk-note-editor-textarea"
rows="1"
maxlength="160"
placeholder="请说明为什么仍需提交,例如客户指定酒店、会议高峰、协议酒店满房等"
aria-label="违规提交原因"
placeholder="请说明原因,例如客户指定酒店、会议高峰、协议酒店满房等"
aria-label="异常说明"
@input="resizeExpenseNoteInput"
@keydown.enter="resizeExpenseNoteInput"
></textarea>
</article>
<div class="risk-override-submit-row">
<button
class="risk-override-save-btn"
type="button"
:disabled="riskOverrideBusy"
@click="confirmRiskOverrideReasons"
>
保存说明并继续提交
</button>
<span>不填写说明时系统会按职级最高报销标准重算金额</span>
</div>
</div>
</ConfirmDialog>
<TravelRequestDeleteDialog :open="deleteDialogOpen" :badge="deleteActionLabel" :title="deleteDialogTitle" :description="deleteDialogDescription" :busy="deleteBusy" @close="closeDeleteDialog" @confirm="confirmDeleteRequest" />