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
+5 -5
View File
@@ -25,7 +25,7 @@ interface LogItem {
}
const logSeq: LogItem[] = [
{ time: "10:00:00", title: "系统自动开标", desc: "开标时间到达,系统自动启动开标程序", icon: Play, color: "#2563eb" },
{ time: "10:00:00", title: "开标启动", desc: "招标专员在开标时间到达启动开标程序", icon: Play, color: "#1565c0" },
{ time: "10:00:03", title: "投标截止确认", desc: "确认共收到 3 家有效投标文件", icon: CheckCircle2, color: "#0ea5e9" },
{ time: "10:00:08", title: "文件自动解密", desc: "使用投标人 CA 证书自动解密投标文件", icon: Unlock, color: "#14b8a6" },
{ time: "10:00:15", title: "投标文件哈希上链", desc: "各投标文件哈希值已写入区块链存证,不可篡改", icon: Link2, color: "#8b5cf6" },
@@ -52,7 +52,7 @@ export function BidOpeningHall() {
<Button variant="ghost" size="icon" onClick={() => navigate(-1)}>
<ArrowLeft className="size-5" />
</Button>
<PageHeader title="开标大厅" description="DCS 控制系统升级采购 · 自动化开标与链上存证" />
<PageHeader title="开标大厅" description="DCS 控制系统升级采购 · 在线开标与链上存证" />
</div>
{/* 顶部状态条 */}
@@ -79,7 +79,7 @@ export function BidOpeningHall() {
</div>
{!started && (
<Button className="bg-white text-primary hover:bg-white/90" onClick={() => setStarted(true)}>
<Play className="size-4" />
<Play className="size-4" />
</Button>
)}
</div>
@@ -92,7 +92,7 @@ export function BidOpeningHall() {
{!started ? (
<div className="flex h-64 flex-col items-center justify-center gap-2 text-muted-foreground">
<Clock className="size-10 text-muted-foreground/40" />
<p className="text-sm"></p>
<p className="text-sm"></p>
</div>
) : (
<div className="space-y-0">
@@ -149,7 +149,7 @@ export function BidOpeningHall() {
)}
</div>
<div className="mt-2 flex items-center gap-1.5 text-xs text-muted-foreground">
<Link2 className="size-3.5 text-violet-500" />
<Link2 className="size-3.5 text-primary" />
<span className="font-mono">{revealed ? b.hash : "····················"}</span>
</div>
</div>