feat(front-end): 初始化STP前端工程并提交页面框架

引入前端项目基础结构、页面骨架和UI组件,建立可运行的开发与构建配置,方便后续按模块迭代。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-22 14:25:22 +08:00
parent f6ff2e3625
commit 7f0f79420c
107 changed files with 18103 additions and 0 deletions
+179
View File
@@ -0,0 +1,179 @@
// 滨化集团智慧招标平台 (STP) - 多角色配置 V1.3
export type RoleId =
| "requester"
| "specialist"
| "purchaser"
| "expert"
| "committee"
| "approver"
| "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[];
}
export const ROLES: Record<RoleId, RoleConfig> = {
requester: {
id: "requester",
name: "需求部门人员",
user: "刘晓敏",
dept: "氯碱生产部",
color: "#0ea5e9",
bannerFrom: "#0c4a6e",
bannerTo: "#0ea5e9",
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/projects", label: "我的项目", icon: "FolderKanban" },
],
},
specialist: {
id: "specialist",
name: "招标专员",
user: "张伟",
dept: "招标采购中心",
color: "#2563eb",
bannerFrom: "#0f1e3d",
bannerTo: "#2563eb",
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: "#f59e0b",
bannerFrom: "#7c2d12",
bannerTo: "#f59e0b",
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/expert-tasks", label: "评标任务", icon: "Gavel" },
],
},
committee: {
id: "committee",
name: "评标委员会工作领导小组",
user: "孙建华",
dept: "评标委员会",
color: "#dc2626",
bannerFrom: "#7f1d1d",
bannerTo: "#dc2626",
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: "#8b5cf6",
bannerFrom: "#4c1d95",
bannerTo: "#8b5cf6",
nav: [
{ to: "/app", label: "工作台", icon: "LayoutDashboard", end: true },
{ to: "/app/bidding", label: "投标中心", icon: "PackageOpen" },
],
},
admin: {
id: "admin",
name: "系统管理员",
user: "运维管理员",
dept: "信息中心",
color: "#475569",
bannerFrom: "#1e293b",
bannerTo: "#475569",
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" },
{ to: "/app/reports", label: "报表中心", icon: "BarChart3" },
{ to: "/app/audit-logs", label: "审计日志", icon: "ScrollText" },
],
},
auditor: {
id: "auditor",
name: "合规 / 审计",
user: "李审计",
dept: "审计监察部",
color: "#0d9488",
bannerFrom: "#134e4a",
bannerTo: "#0d9488",
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",
"purchaser",
"expert",
"committee",
"approver",
"supplier",
"admin",
"auditor",
];