Files
STP/front-end/src/app/roles.ts
T
vame d81ac936e7 feat(front-end): 依据内部评审意见对前端 UI 进行二次升级优化
- 主题色统一改回科技蓝(呼应滨化 LOGO)
- 合并"采购需求人员"、移除审批人角色(审批在 OA)
- 发起委托归属采购需求人员,招标专员不含该功能
- 删除合并招标/定标审批/合同生成/合同管理/供应商入库/审批中心/流程配置页面
- 小滨助手默认展开可收起、各角色主动提醒、问答直接给出按钮/链接
- 待办中心去掉"事找人"前缀
- 新增后台智能体任务监控组件(招标专员/管理员)
- 发起委托增加导入采购计划/直接填写/选择模板(含自动)
- 项目列表:排序/高级搜索/委托人列/提交审批/列显隐
- 项目详情:修正流程步骤、委托人信息、方案与文件合一、提交审批
- 长短名单去分支与推荐部门列、寻源关联项目并支持三来源
- 开标去自动开标、专家管理去抽取与回避、供应商管理去新增与入库
2026-07-10 23:35:54 +08:00

158 lines
4.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 滨化集团智慧招标平台 (STP) - 多角色配置 V1.4
// 说明:依据内部评审意见调整——
// 1)统一科技蓝主题(呼应滨化 LOGO);
// 2)合并"需求部门人员/采购专员"为"采购需求人员"
// 3)移除"审批人"(审批在 OA 中体现);
// 4)发起招标委托归属"采购需求人员",招标专员不含该功能;
// 5)移除合并招标、供应商入库、合同管理、审批中心、流程配置等入口。
export type RoleId =
| "requester"
| "specialist"
| "expert"
| "committee"
| "supplier"
| "admin"
| "auditor";
export interface NavItem {
to: string;
label: string;
icon: string;
end?: boolean;
}
export interface RoleConfig {
id: RoleId;
name: string; // 角色名
user: string; // 示例用户/企业名
dept: 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: "采购需求人员",
user: "刘晓敏",
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: {
id: "specialist",
name: "招标专员",
user: "张伟",
dept: "招标采购中心",
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/suppliers", label: "供应商管理", icon: "Building2" },
{ to: "/app/experts", label: "专家管理", icon: "UserCog" },
{ to: "/app/deposits", label: "保证金管理", icon: "Wallet" },
{ to: "/app/reports", label: "报表中心", icon: "BarChart3" },
],
},
expert: {
id: "expert",
name: "评标专家",
user: "郑国华",
dept: "外部专家 · 化工工艺",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/expert-tasks", label: "评标任务", icon: "Gavel" },
],
},
committee: {
id: "committee",
name: "评标委员会工作领导小组",
user: "孙建华",
dept: "评标委员会",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/exceptions", label: "异常决策", icon: "ShieldAlert" },
],
},
supplier: {
id: "supplier",
name: "供应商",
user: "浙江中控技术股份有限公司",
dept: "投标用户",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/bidding", label: "投标中心", icon: "PackageOpen" },
],
},
admin: {
id: "admin",
name: "系统管理员",
user: "运维管理员",
dept: "信息中心",
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/keys", label: "密钥管理", icon: "KeyRound" },
{ to: "/app/suppliers", label: "供应商管理", icon: "Building2" },
{ to: "/app/experts", label: "专家管理", icon: "UserCog" },
{ to: "/app/reports", label: "报表中心", icon: "BarChart3" },
{ to: "/app/audit-logs", label: "审计日志", icon: "ScrollText" },
],
},
auditor: {
id: "auditor",
name: "合规 / 审计",
user: "李审计",
dept: "审计监察部",
color: BRAND_DOT,
bannerFrom: BRAND_FROM,
bannerTo: BRAND_TO,
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/audit-logs", label: "审计日志", icon: "ScrollText" },
{ to: "/app/collusion", label: "围串标分析", icon: "Network" },
{ to: "/app/evidence", label: "存证验证", icon: "FileCheck2" },
{ to: "/app/reports", label: "报表中心", icon: "BarChart3" },
],
},
};
export const ROLE_ORDER: RoleId[] = [
"specialist",
"requester",
"expert",
"committee",
"supplier",
"admin",
"auditor",
];