feat(bid): 新增甲方履约订单管理模块
1. 新增甲方履约菜单分类,包含待发、在途、签收三个子菜单并配置权限 2. 重构发货单号生成逻辑,支持区分供应商和甲方履约订单前缀 3. 新增甲方发货单生成功能,可从确认的甲方报价单一键创建 4. 新增京东红主题样式并支持快速切换 5. 优化物料发货记录查询,兼容两种履约订单的客户信息关联 6. 修复订单详情弹窗的空值判断和异常捕获逻辑 7. 新增配套SQL脚本用于菜单初始化和数据修复
This commit is contained in:
@@ -77,21 +77,26 @@
|
||||
</el-select>
|
||||
|
||||
<el-table v-loading="recordLoading" :data="recordList" border stripe size="small" style="width:100%;margin-top:12px">
|
||||
<el-table-column label="发货单号" prop="doNo" width="160" />
|
||||
<el-table-column label="供应商" prop="supplierName" width="150" show-overflow-tooltip />
|
||||
<el-table-column label="甲方客户" prop="clientName" width="150" show-overflow-tooltip />
|
||||
<el-table-column label="数量" prop="quantity" width="80" align="right" />
|
||||
<el-table-column label="单价" width="100" align="right">
|
||||
<template slot-scope="s">¥{{ s.row.unitPrice }}</template>
|
||||
<el-table-column label="发货单号" width="150">
|
||||
<template slot-scope="s">{{ s.row.do_no || '-' }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="小计" width="100" align="right">
|
||||
<template slot-scope="s">¥{{ s.row.totalPrice }}</template>
|
||||
<el-table-column label="类型" width="60" align="center">
|
||||
<template slot-scope="s"><el-tag :type="s.row.type==='client'?'primary':'warning'" size="mini" effect="plain">{{ s.row.type==='client'?'甲方':'供应商' }}</el-tag></template>
|
||||
</el-table-column>
|
||||
<el-table-column label="交货期" prop="deliveryDate" width="95" align="center" />
|
||||
<el-table-column label="结单日期" prop="actualCloseDate" width="95" align="center" />
|
||||
<el-table-column label="状态" width="85" align="center">
|
||||
<el-table-column label="供应商" width="140" show-overflow-tooltip>
|
||||
<template slot-scope="s">{{ s.row.type==='client' ? '——' : (s.row.supplier_name || '-') }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="甲方客户" width="140" show-overflow-tooltip>
|
||||
<template slot-scope="s">{{ s.row.client_name || '-' }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="数量" prop="quantity" width="75" align="right" />
|
||||
<el-table-column label="单价" width="95" align="right"><template slot-scope="s">¥{{ s.row.unit_price || 0 }}</template></el-table-column>
|
||||
<el-table-column label="小计" width="95" align="right"><template slot-scope="s">¥{{ s.row.total_price || 0 }}</template></el-table-column>
|
||||
<el-table-column label="交货期" prop="delivery_date" width="90" align="center" />
|
||||
<el-table-column label="结单" prop="actual_close_date" width="90" align="center" />
|
||||
<el-table-column label="状态" width="80" align="center">
|
||||
<template slot-scope="s">
|
||||
<el-tag :type="recordStatusType(s.row.deliveryStatus)" size="small" effect="dark">{{ recordStatusLabel(s.row.deliveryStatus) }}</el-tag>
|
||||
<el-tag :type="recordStatusType(s.row.delivery_status)" size="small" effect="dark">{{ recordStatusLabel(s.row.delivery_status) }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -339,16 +344,19 @@ export default {
|
||||
.catch(() => { this.recordLoading = false })
|
||||
},
|
||||
recordStatusType(s) { return { pending: "warning", transit: "primary", history: "success" }[s] || "" },
|
||||
recordStatusLabel(s) { return { pending: "待发", transit: "在途", history: "已收货" }[s] || s || "-" }
|
||||
recordStatusLabel(s) { return { pending: "待发", transit: "在途", history: "已收货" }[s] || s || "-" },
|
||||
// 兼容 snake_case 和 camelCase
|
||||
fmtRow(r) { return r }
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* ═══ 京东主题 — 页面级变量覆盖 ═══ */
|
||||
.app-container {
|
||||
background: #fff;
|
||||
background: var(--bg-page);
|
||||
padding: 16px 20px;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius-base);
|
||||
}
|
||||
|
||||
/* 紧凑表格行 */
|
||||
@@ -356,11 +364,11 @@ export default {
|
||||
.el-table th { padding: 6px 4px !important; }
|
||||
|
||||
/* 圆角按钮 */
|
||||
.el-button--mini { border-radius: 4px !important; }
|
||||
.el-button--mini { border-radius: var(--radius-base) !important; }
|
||||
|
||||
/* 搜索按钮浅蓝 */
|
||||
.search-btn { background: #409EFF; color: #fff; border: none; border-radius: 4px; }
|
||||
.search-btn:hover { background: #66b1ff; }
|
||||
/* 搜索按钮(适配京东红) */
|
||||
.search-btn { background: var(--brand-primary); color: #fff; border: none; border-radius: var(--radius-base); }
|
||||
.search-btn:hover { background: var(--brand-primary-hover); }
|
||||
|
||||
/* 搜索表单样式 */
|
||||
.el-form--inline .el-form-item {
|
||||
|
||||
Reference in New Issue
Block a user