feat(front-end): 依据内部评审意见对前端 UI 进行二次升级优化

- 主题色统一改回科技蓝(呼应滨化 LOGO)
- 合并"采购需求人员"、移除审批人角色(审批在 OA)
- 发起委托归属采购需求人员,招标专员不含该功能
- 删除合并招标/定标审批/合同生成/合同管理/供应商入库/审批中心/流程配置页面
- 小滨助手默认展开可收起、各角色主动提醒、问答直接给出按钮/链接
- 待办中心去掉"事找人"前缀
- 新增后台智能体任务监控组件(招标专员/管理员)
- 发起委托增加导入采购计划/直接填写/选择模板(含自动)
- 项目列表:排序/高级搜索/委托人列/提交审批/列显隐
- 项目详情:修正流程步骤、委托人信息、方案与文件合一、提交审批
- 长短名单去分支与推荐部门列、寻源关联项目并支持三来源
- 开标去自动开标、专家管理去抽取与回避、供应商管理去新增与入库
This commit is contained in:
vame
2026-07-10 23:35:54 +08:00
parent 38a804ce41
commit d81ac936e7
23 changed files with 844 additions and 1720 deletions
+38 -60
View File
@@ -1,12 +1,16 @@
// 滨化集团智慧招标平台 (STP) - 多角色配置 V1.3
// 滨化集团智慧招标平台 (STP) - 多角色配置 V1.4
// 说明:依据内部评审意见调整——
// 1)统一科技蓝主题(呼应滨化 LOGO);
// 2)合并"需求部门人员/采购专员"为"采购需求人员"
// 3)移除"审批人"(审批在 OA 中体现);
// 4)发起招标委托归属"采购需求人员",招标专员不含该功能;
// 5)移除合并招标、供应商入库、合同管理、审批中心、流程配置等入口。
export type RoleId =
| "requester"
| "specialist"
| "purchaser"
| "expert"
| "committee"
| "approver"
| "supplier"
| "admin"
| "auditor";
@@ -23,24 +27,31 @@ export interface RoleConfig {
name: string; // 角色名
user: string; // 示例用户/企业名
dept: string;
color: string; // 辅助色
color: string; // 辅助色(统一科技蓝)
bannerFrom: string;
bannerTo: string;
nav: NavItem[];
}
// 全平台统一科技蓝
const BRAND_FROM = "#0d47a1";
const BRAND_TO = "#1e88e5";
const BRAND_DOT = "#1565c0";
export const ROLES: Record<RoleId, RoleConfig> = {
requester: {
id: "requester",
name: "需求部门人员",
name: "采购需求人员",
user: "刘晓敏",
dept: "氯碱生产部",
color: "#0ea5e9",
bannerFrom: "#0c4a6e",
bannerTo: "#0ea5e9",
dept: "氯碱生产部 / 采购供应部",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/delegation", label: "发起委托", icon: "FilePlus2" },
{ to: "/app/projects", label: "我的项目", icon: "FolderKanban" },
{ to: "/app/deposits", label: "保证金管理", icon: "Wallet" },
],
},
specialist: {
@@ -48,43 +59,26 @@ export const ROLES: Record<RoleId, RoleConfig> = {
name: "招标专员",
user: "张伟",
dept: "招标采购中心",
color: "#00695c",
bannerFrom: "#00695c",
bannerTo: "#00897b",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/projects", label: "项目管理", icon: "FolderKanban" },
{ to: "/app/merge", label: "合并招标", icon: "GitMerge" },
{ to: "/app/suppliers", label: "供应商管理", icon: "Building2" },
{ to: "/app/experts", label: "专家管理", icon: "UserCog" },
{ to: "/app/deposits", label: "保证金管理", icon: "Wallet" },
{ to: "/app/reports", label: "报表中心", icon: "BarChart3" },
],
},
purchaser: {
id: "purchaser",
name: "采购专员",
user: "陈晨",
dept: "采购供应部",
color: "#6366f1",
bannerFrom: "#312e81",
bannerTo: "#6366f1",
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/projects", label: "我的项目", icon: "FolderKanban" },
{ to: "/app/contracts", label: "合同管理", icon: "FileSignature" },
{ to: "/app/inbound", label: "供应商入库", icon: "PackagePlus" },
{ to: "/app/deposits", label: "保证金管理", icon: "Wallet" },
],
},
expert: {
id: "expert",
name: "评标专家",
user: "郑国华",
dept: "外部专家 · 化工工艺",
color: "#1565c0",
bannerFrom: "#0d47a1",
bannerTo: "#1976d2",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/expert-tasks", label: "评标任务", icon: "Gavel" },
@@ -95,35 +89,22 @@ export const ROLES: Record<RoleId, RoleConfig> = {
name: "评标委员会工作领导小组",
user: "孙建华",
dept: "评标委员会",
color: "#dc2626",
bannerFrom: "#7f1d1d",
bannerTo: "#dc2626",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/exceptions", label: "异常决策", icon: "ShieldAlert" },
],
},
approver: {
id: "approver",
name: "审批人",
user: "王立强",
dept: "分管副总",
color: "#10b981",
bannerFrom: "#064e3b",
bannerTo: "#10b981",
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/approvals", label: "待审批", icon: "ClipboardCheck" },
],
},
supplier: {
id: "supplier",
name: "供应商",
user: "浙江中控技术股份有限公司",
dept: "投标用户",
color: "#c2185b",
bannerFrom: "#c2185b",
bannerTo: "#e91e63",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/bidding", label: "投标中心", icon: "PackageOpen" },
@@ -134,13 +115,12 @@ export const ROLES: Record<RoleId, RoleConfig> = {
name: "系统管理员",
user: "运维管理员",
dept: "信息中心",
color: "#475569",
bannerFrom: "#1e293b",
bannerTo: "#475569",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/admin/users", label: "用户与权限", icon: "Users" },
{ to: "/app/admin/process", label: "流程配置", icon: "Workflow" },
{ to: "/app/admin/keys", label: "密钥管理", icon: "KeyRound" },
{ to: "/app/suppliers", label: "供应商管理", icon: "Building2" },
{ to: "/app/experts", label: "专家管理", icon: "UserCog" },
@@ -153,9 +133,9 @@ export const ROLES: Record<RoleId, RoleConfig> = {
name: "合规 / 审计",
user: "李审计",
dept: "审计监察部",
color: "#0d9488",
bannerFrom: "#134e4a",
bannerTo: "#0d9488",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/audit-logs", label: "审计日志", icon: "ScrollText" },
@@ -169,10 +149,8 @@ export const ROLES: Record<RoleId, RoleConfig> = {
export const ROLE_ORDER: RoleId[] = [
"specialist",
"requester",
"purchaser",
"expert",
"committee",
"approver",
"supplier",
"admin",
"auditor",