feat(bid): 完成招投标业务模块多需求迭代
本次提交包含多项功能改进与业务优化: 1. 全局主题色替换为#4A6FA5,统一前端UI风格 2. 新增客户报价单clientId字段,完善客户报价数据结构 3. 实现发货单状态流转功能,支持发货、完成、撤回、设置结单日期操作 4. 新增物料发货记录多表关联查询功能 5. 优化客户管理页面UI布局与交互体验 6. 修复客户报价表单自动补全逻辑,关联clientId与clientName 7. 补充租户ID自动填充逻辑,完善多租户数据隔离
This commit is contained in:
@@ -1,33 +1,41 @@
|
||||
<template>
|
||||
<div class="app-container quotation-page">
|
||||
<!-- ── 顶部统计卡片 ── -->
|
||||
<el-row :gutter="14" class="stat-row">
|
||||
<!-- ═══ 顶部统计卡片 ═══ -->
|
||||
<el-row :gutter="12" class="stat-row">
|
||||
<el-col :span="6">
|
||||
<div class="stat-card stat-all">
|
||||
<div class="stat-num">{{ stats.total }}</div>
|
||||
<div class="stat-lbl">全部报价</div>
|
||||
<i class="el-icon-document stat-icon"></i>
|
||||
<div class="stat-card" style="border-top-color:#1171c4">
|
||||
<div class="stat-body">
|
||||
<div class="stat-num">{{ stats.total || 0 }}</div>
|
||||
<div class="stat-lbl">全部报价</div>
|
||||
</div>
|
||||
<i class="el-icon-document stat-icon" style="color:#1171c4"></i>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="stat-card stat-draft">
|
||||
<div class="stat-num">{{ stats.draft }}</div>
|
||||
<div class="stat-lbl">草稿</div>
|
||||
<i class="el-icon-edit-outline stat-icon"></i>
|
||||
<div class="stat-card" style="border-top-color:#909399">
|
||||
<div class="stat-body">
|
||||
<div class="stat-num">{{ stats.draft || 0 }}</div>
|
||||
<div class="stat-lbl">草稿</div>
|
||||
</div>
|
||||
<i class="el-icon-edit-outline stat-icon" style="color:#909399"></i>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="stat-card stat-submitted">
|
||||
<div class="stat-num">{{ stats.submitted }}</div>
|
||||
<div class="stat-lbl">待处理</div>
|
||||
<i class="el-icon-time stat-icon"></i>
|
||||
<div class="stat-card" style="border-top-color:#e6a23c">
|
||||
<div class="stat-body">
|
||||
<div class="stat-num">{{ stats.submitted || 0 }}</div>
|
||||
<div class="stat-lbl">待处理</div>
|
||||
</div>
|
||||
<i class="el-icon-time stat-icon" style="color:#e6a23c"></i>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="stat-card stat-accepted">
|
||||
<div class="stat-num">{{ stats.accepted }}</div>
|
||||
<div class="stat-lbl">已采纳</div>
|
||||
<i class="el-icon-circle-check stat-icon"></i>
|
||||
<div class="stat-card" style="border-top-color:#67c23a">
|
||||
<div class="stat-body">
|
||||
<div class="stat-num">{{ stats.accepted || 0 }}</div>
|
||||
<div class="stat-lbl">已采纳</div>
|
||||
</div>
|
||||
<i class="el-icon-circle-check stat-icon" style="color:#67c23a"></i>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -550,18 +558,15 @@ export default {
|
||||
.quotation-page { padding-bottom: 30px; }
|
||||
|
||||
/* ── 顶部统计卡片 ── */
|
||||
.stat-row { margin-bottom: 16px; }
|
||||
.stat-row { margin-bottom: 12px !important; }
|
||||
.stat-card {
|
||||
border-radius: 10px; padding: 18px 20px; position: relative;
|
||||
overflow: hidden; color: #fff; cursor: default;
|
||||
background: #fff; border-radius: 4px; border-top: 3px solid #1171c4;
|
||||
padding: 16px 20px; display: flex; align-items: center; justify-content: space-between;
|
||||
box-shadow: 0 1px 4px rgba(0,0,0,0.06);
|
||||
}
|
||||
.stat-num { font-size: 32px; font-weight: 700; line-height: 1; }
|
||||
.stat-lbl { font-size: 13px; margin-top: 6px; opacity: 0.9; }
|
||||
.stat-icon { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 48px; opacity: 0.2; }
|
||||
.stat-all { background: linear-gradient(135deg, #1171c4, #22a4ff); }
|
||||
.stat-draft { background: linear-gradient(135deg, #909399, #b0b3b8); }
|
||||
.stat-submitted{ background: linear-gradient(135deg, #e6a23c, #f0c040); }
|
||||
.stat-accepted { background: linear-gradient(135deg, #67c23a, #85ce61); }
|
||||
.stat-num { font-size: 26px; font-weight: 700; color: #1a2c4e; line-height: 1.2; }
|
||||
.stat-lbl { font-size: 12px; color: #8c97a8; margin-top: 4px; }
|
||||
.stat-icon { font-size: 28px; opacity: 0.5; }
|
||||
|
||||
/* ── 搜索 ── */
|
||||
.search-card { ::v-deep .el-card__body { padding: 16px 20px 8px; } }
|
||||
|
||||
Reference in New Issue
Block a user