style(web): 更新差旅报销创建页面样式和业务脚本,增强前端交互和状态管理

This commit is contained in:
caoxiaozhu
2026-05-14 15:43:10 +00:00
parent 98f68c47b0
commit 7209c75ad8
5 changed files with 651 additions and 72 deletions

View File

@@ -264,16 +264,17 @@
</div>
</details>
<div v-if="resolveReviewPrimaryAction(message.reviewPayload) || message.draftPayload?.claim_no" class="review-footer-actions">
<div v-if="resolveReviewSubmitActions(message.reviewPayload).length || message.draftPayload?.claim_no" class="review-footer-actions">
<div class="review-footer-btn-row">
<button
v-if="resolveReviewPrimaryAction(message.reviewPayload)"
v-for="action in resolveReviewSubmitActions(message.reviewPayload)"
:key="`${message.id}-${action.action_type}`"
type="button"
class="review-footer-btn primary"
:class="['review-footer-btn', action.emphasis === 'primary' ? 'primary' : '']"
:disabled="reviewActionBusy"
@click="handleReviewAction(message, resolveReviewPrimaryAction(message.reviewPayload))"
@click="handleReviewAction(message, action)"
>
{{ buildReviewPrimaryButtonLabel(message.reviewPayload, message.draftPayload) }}
{{ action.label || buildReviewPrimaryButtonLabel(message.reviewPayload, message.draftPayload) }}
</button>
<button
@@ -290,7 +291,7 @@
type="button"
class="review-footer-btn"
:disabled="submitting || reviewActionBusy"
@click="triggerFileUpload"
@click="triggerFileUpload(message.reviewPayload.document_cards?.length ? 'composer-continue' : 'composer')"
>
{{ message.reviewPayload.document_cards?.length ? '继续上传票据' : '上传票据' }}
</button>
@@ -599,6 +600,18 @@
>
{{ scene }}
</button>
<input
v-if="reviewInlineForm.scene_label === REVIEW_SCENE_OTHER_OPTION"
v-model="reviewInlineForm.reason_value"
class="review-inline-input review-inline-select-custom"
:class="{ invalid: Boolean(reviewInlineErrors[item.key]) }"
type="text"
placeholder="请输入具体事由"
@click.stop
@input="clearInlineReviewFieldError(item.key)"
@blur="commitInlineReviewEditor"
@keydown.enter.prevent="commitInlineReviewEditor"
/>
</div>
</template>
<strong v-else :title="item.value">{{ item.value }}</strong>
@@ -905,6 +918,30 @@
@confirm="confirmCancelReview"
/>
<Transition name="assistant-modal">
<div v-if="uploadDecisionDialogOpen" class="assistant-overlay review-overlay">
<section class="review-confirm-modal review-upload-decision-modal">
<div class="review-upload-decision-copy">
<span class="assistant-badge">上传票据</span>
<h3>检测到你已有单据事件</h3>
<p>这次新上传的附件需要先确认处理方式你可以继续归集到上一笔单据也可以重新开启一张新单据</p>
</div>
<div class="review-confirm-actions review-upload-decision-actions">
<button type="button" class="primary-dialog-btn" :disabled="submitting || reviewActionBusy" @click="continueExistingUpload">
继续
</button>
<button type="button" class="secondary-dialog-btn" :disabled="submitting || reviewActionBusy" @click="createNewUploadDocument">
新单据
</button>
<button type="button" class="secondary-dialog-btn" :disabled="submitting || reviewActionBusy" @click="closeUploadDecisionDialog">
取消
</button>
</div>
</section>
</div>
</Transition>
<Transition name="assistant-modal">
<div v-if="documentPreviewDialog.open" class="assistant-overlay review-overlay">
<section class="review-preview-modal">