- 新增审批配置主子表(biz_approval_config / biz_approval_config_user),支持或签 - 5 个业务模块接入审批: 采购订单/客户报价/供应商报价/发货单/订单异议 - 统一审批动作接口(提交/通过/驳回),status=10 表示审批中 - 新增"待我审批"聚合页面,按业务类型筛选 - 修复 logback 写本地路径报错,去除文件 appender - 修复 Redis SSL 配置在 Spring Boot 4 下需对象格式 - 补齐部分业务表缺失的 update_by/update_time 审计列 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
87 lines
3.5 KiB
Vue
87 lines
3.5 KiB
Vue
<template>
|
|
<div class="app-container">
|
|
<div style="margin-bottom:12px;display:flex;align-items:center;gap:8px">
|
|
<span style="font-size:16px;font-weight:600">待我审批</span>
|
|
<el-tag type="warning" size="small">共 {{ list.length }} 条</el-tag>
|
|
<el-button size="mini" icon="el-icon-refresh" @click="getList" style="margin-left:auto">刷新</el-button>
|
|
</div>
|
|
|
|
<el-form :inline="true" size="small">
|
|
<el-form-item label="业务类型">
|
|
<el-select v-model="filterBizType" placeholder="全部" clearable style="width:160px">
|
|
<el-option label="采购订单" value="PURCHASE_ORDER"/>
|
|
<el-option label="客户报价" value="CLIENT_QUOTE"/>
|
|
<el-option label="供应商报价" value="QUOTATION"/>
|
|
<el-option label="发货单" value="DELIVERY_ORDER"/>
|
|
<el-option label="订单异议" value="ORDER_OBJECTION"/>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form>
|
|
|
|
<el-table v-loading="loading" :data="filteredList" border>
|
|
<el-table-column label="业务类型" width="140">
|
|
<template slot-scope="s">
|
|
<el-tag size="small">{{ s.row.bizName }}</el-tag>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="单号" prop="bizNo" width="200"/>
|
|
<el-table-column label="金额" prop="amount" width="140" align="right">
|
|
<template slot-scope="s">
|
|
<span v-if="s.row.amount" style="color:#e4393c;font-weight:600">¥{{ s.row.amount }}</span>
|
|
<span v-else style="color:#999">-</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="提交人" prop="createBy" width="120"/>
|
|
<el-table-column label="提交时间" prop="createTime" width="180"/>
|
|
<el-table-column label="状态" width="100" align="center">
|
|
<template><el-tag type="warning">审批中</el-tag></template>
|
|
</el-table-column>
|
|
<el-table-column label="操作" align="center" width="180">
|
|
<template slot-scope="s">
|
|
<el-button size="mini" type="text" style="color:#67C23A" @click="handleApprove(s.row)">通过</el-button>
|
|
<el-button size="mini" type="text" style="color:#F56C6C" @click="handleReject(s.row)">驳回</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
<template slot="empty">
|
|
<div style="padding:24px;color:#999">暂无待审批单据</div>
|
|
</template>
|
|
</el-table>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { listPending, approveBiz, rejectBiz } from "@/api/bid/approvalAction";
|
|
|
|
export default {
|
|
name: "ApprovalPending",
|
|
data() {
|
|
return { loading: false, list: [], filterBizType: null };
|
|
},
|
|
computed: {
|
|
filteredList() {
|
|
if (!this.filterBizType) return this.list;
|
|
return this.list.filter(r => r.bizType === this.filterBizType);
|
|
}
|
|
},
|
|
created() { this.getList(); },
|
|
methods: {
|
|
getList() {
|
|
this.loading = true;
|
|
listPending().then(r => { this.list = r.data || []; this.loading = false; })
|
|
.catch(() => { this.loading = false; });
|
|
},
|
|
handleApprove(row) {
|
|
this.$modal.confirm(`确认通过【${row.bizName} · ${row.bizNo}】?`)
|
|
.then(() => approveBiz(row.bizType, row.id))
|
|
.then(() => { this.$modal.msgSuccess("审批通过"); this.getList(); });
|
|
},
|
|
handleReject(row) {
|
|
this.$prompt("请输入驳回原因", "驳回", { inputPattern: /.+/, inputErrorMessage: "请填写原因" })
|
|
.then(({ value }) => rejectBiz(row.bizType, row.id, value))
|
|
.then(() => { this.$modal.msgSuccess("已驳回"); this.getList(); })
|
|
.catch(() => {});
|
|
}
|
|
}
|
|
};
|
|
</script>
|