feat: 完善审批退回流程与报销申请关联
后端优化报销单访问策略和常量定义,增强退回原因和审批状态 流转,前端完善退回对话框和审批交互组件,新增报销申请关联 模型,优化文档中心行数据和审批收件箱工具函数,增强引导 流程和会话模型,补充单元测试覆盖。
This commit is contained in:
@@ -182,21 +182,26 @@
|
||||
<span><i class="mdi mdi-account-tie-outline"></i>领导意见</span>
|
||||
<strong v-if="leaderApprovalReadonlyMeta">{{ leaderApprovalReadonlyMeta }}</strong>
|
||||
</div>
|
||||
<div v-if="showApplicationLeaderOpinionInput" class="leader-approval-card inline-leader-opinion">
|
||||
<textarea
|
||||
v-model="leaderOpinion"
|
||||
maxlength="500"
|
||||
:required="requiresApprovalOpinion"
|
||||
:placeholder="approvalOpinionPlaceholder"
|
||||
:aria-label="approvalOpinionTitle"
|
||||
></textarea>
|
||||
<div class="leader-opinion-meta">
|
||||
<span>{{ approvalOpinionHint }}</span>
|
||||
<strong>{{ leaderOpinion.length }}/500</strong>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="detail-note readonly application-leader-opinion-display">
|
||||
<p>{{ leaderApprovalReadonlyText }}</p>
|
||||
<div v-if="hasLeaderApprovalEvents" class="application-leader-opinion-timeline" aria-label="领导批复事件流">
|
||||
<article
|
||||
v-for="event in leaderApprovalEvents"
|
||||
:key="event.id"
|
||||
class="application-leader-opinion-event"
|
||||
:class="event.tone"
|
||||
>
|
||||
<div class="application-leader-opinion-event-head">
|
||||
<span>
|
||||
<i :class="event.type === 'returned' ? 'mdi mdi-arrow-u-left-top' : 'mdi mdi-check-circle-outline'"></i>
|
||||
{{ event.title }}
|
||||
</span>
|
||||
<time v-if="event.time">{{ event.time }}</time>
|
||||
</div>
|
||||
<p>{{ event.opinion }}</p>
|
||||
<footer>
|
||||
<span>{{ event.operator }}</span>
|
||||
<span v-if="event.returnCount">第 {{ event.returnCount }} 次退回</span>
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -475,20 +480,6 @@
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article v-if="showLeaderApprovalPanel" class="detail-card panel leader-approval-card">
|
||||
<h3>{{ approvalOpinionTitle }}</h3>
|
||||
<textarea
|
||||
v-model="leaderOpinion"
|
||||
maxlength="500"
|
||||
:required="requiresApprovalOpinion"
|
||||
:placeholder="approvalOpinionPlaceholder"
|
||||
:aria-label="approvalOpinionTitle"
|
||||
></textarea>
|
||||
<div class="leader-opinion-meta">
|
||||
<span>{{ approvalOpinionHint }}</span>
|
||||
<strong>{{ leaderOpinion.length }}/500</strong>
|
||||
</div>
|
||||
</article>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@@ -774,7 +765,10 @@
|
||||
:summary-label="approvalConfirmSummaryLabel"
|
||||
:next-stage="approvalNextStage"
|
||||
:opinion-title="approvalOpinionTitle"
|
||||
:opinion="leaderOpinion"
|
||||
v-model:opinion="leaderOpinion"
|
||||
:opinion-placeholder="approvalOpinionPlaceholder"
|
||||
:opinion-hint="approvalOpinionHint"
|
||||
:opinion-required="requiresApprovalOpinion"
|
||||
@close="closeApproveConfirmDialog"
|
||||
@confirm="confirmApproveRequest"
|
||||
/>
|
||||
@@ -784,6 +778,7 @@
|
||||
:title="`确认退回 ${request.id} 吗?`"
|
||||
:description="returnDialogDescription"
|
||||
:busy="returnBusy"
|
||||
:application="isApplicationDocument"
|
||||
@close="closeReturnDialog"
|
||||
@confirm="confirmReturnRequest"
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user