feat(frontend): 移除万华相关元素并更新门户登录展示

统一清理前端万华相关文案与公司展示口径为滨化集团,移除登录与门户页角色选框,并同步更新全量页面截图及Word汇总文档。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-13 15:48:44 +08:00
parent 41fc6e86dd
commit 3dba6db9d2
19 changed files with 24 additions and 92 deletions
+6 -51
View File
@@ -8,20 +8,11 @@ import { XiaobinAssistant } from "../components/XiaobinAssistant";
type Mode = "employee" | "vendor";
type Tab = "account" | "mobile";
type LoginRole = "purchaser" | "supplier" | "expert" | "other";
const ROLE_BUTTONS: { id: LoginRole; label: string; en: string }[] = [
{ id: "purchaser", label: "采购人", en: "Purchaser" },
{ id: "supplier", label: "供应商", en: "Supplier" },
{ id: "expert", label: "专家", en: "Expert" },
{ id: "other", label: "其他", en: "Other" },
];
export function LoginPage() {
const navigate = useNavigate();
const [mode, setMode] = useState<Mode>("vendor");
const [tab, setTab] = useState<Tab>("account");
const [loginRole, setLoginRole] = useState<LoginRole>("supplier");
const [account, setAccount] = useState("zhangwei");
const [pwd, setPwd] = useState("123456");
const [showPwd, setShowPwd] = useState(false);
@@ -51,25 +42,13 @@ export function LoginPage() {
function submit(e: React.FormEvent) {
e.preventDefault();
if (mode === "employee") {
toast.info("正在跳转至集团 IAM 统一身份认证…");
toast.info("正在跳转至滨化集团 IAM 统一身份认证…");
setTimeout(() => navigate("/app"), 800);
return;
}
navigate("/app");
}
function selectRole(role: LoginRole) {
setLoginRole(role);
// 与现有登录逻辑联动:供应商走外部账号,其他角色默认走内部员工
if (role === "supplier") {
setMode("vendor");
setTab("account");
} else {
setMode("employee");
setTab("account");
}
}
return (
<div className="min-h-screen bg-[#f3f5f8]">
<header className="border-b bg-[#0f4ea6] text-white">
@@ -90,26 +69,6 @@ export function LoginPage() {
<Link to="/register" className="ml-1 text-primary hover:underline"></Link>
</p>
{/* 角色登录按钮:对齐万华站点风格 */}
<div className="mt-4 grid grid-cols-2 gap-2">
{ROLE_BUTTONS.map((r) => (
<button
key={r.id}
type="button"
onClick={() => selectRole(r.id)}
className={cn(
"border px-3 py-3 text-center transition-colors",
loginRole === r.id
? "border-primary bg-[#eef5ff] text-primary"
: "border-[#d9dee7] bg-white text-[#374151] hover:border-primary/60 hover:bg-[#f8fbff]",
)}
>
<div className="text-sm font-medium leading-none">{r.label}</div>
<div className="mt-1 text-[11px] text-[#6b7280]">{r.en}</div>
</button>
))}
</div>
<div className="mt-4 flex border bg-[#f8fafc] p-1">
{(
[
@@ -130,10 +89,6 @@ export function LoginPage() {
</button>
))}
</div>
<p className="mt-1 text-[11px] text-muted-foreground">
{ROLE_BUTTONS.find((x) => x.id === loginRole)?.label}
</p>
<div className="mt-3 flex border-b border-border">
{(
[
@@ -279,8 +234,8 @@ export function LoginPage() {
{[
["[公开招标] 扣电测试柜框架", "2026-07-13"],
["[公开招标] 2026年橡胶密封件框架招标O型圈", "2026-07-13"],
["[公开招标] 万华莱州100MW分散式风电项目EPC工程总承包[变更公告]", "2026-07-13"],
["[公开招标] 万华旋塞阀框架包一 金属旋塞阀、包二 衬氟旋塞阀", "2026-07-10"],
["[公开招标] 莱州100MW分散式风电项目EPC工程总承包[变更公告]", "2026-07-13"],
["[公开招标] 旋塞阀框架包一 金属旋塞阀、包二 衬氟旋塞阀", "2026-07-10"],
["[公开招标] 改性TPU熟化料仓", "2026-07-09"],
].map(([title, date]) => (
<li key={title} className="flex items-center gap-3 border-b border-dashed py-1.5">
@@ -295,9 +250,9 @@ export function LoginPage() {
<div className="border bg-white">
<div className="border-b bg-[#f8fafc] px-4 py-3 text-sm font-semibold"></div>
<div className="space-y-1 p-4 text-sm text-muted-foreground">
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</div>
</div>
<div className="border bg-white">