feat(平台端): 账号创建角色改中文三类 — 子账号/OPC/园区账号

新增账号「账号类型」下拉改中文:子账号(平台端/operator)、OPC 账号(其它端口通用/opc_member)、
园区账号(园区端/用于绑定园区管理员/carrier),附类型提示;未选择项不显示历史端口。npm run build 通过。
This commit is contained in:
Pine
2026-08-24 19:06:08 +08:00
parent 560641eb27
commit d31ad5ba14
+13 -5
View File
@@ -13,7 +13,12 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@
import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { formatDate } from "@/lib/utils";
const PORT_ROLES = ["operator", "government", "enterprise", "provider", "carrier", "opc_member", "investor"];
// 账号三类(中文):子账号=平台端账号;OPC=其它端口通用 OPC 账号;园区账号=园区端(用于绑定园区管理员)
const ACCOUNT_ROLES = [
{ label: "子账号(平台端)", value: "operator", hint: "平台管理方/运营" },
{ label: "OPC 账号(其它端口通用)", value: "opc_member", hint: "OPC 超级个体默认" },
{ label: "园区账号(园区端 · 用于绑定园区管理员)", value: "carrier", hint: "绑定为园区管理员" },
];
const EMPTY = { username: "", nickname: "", role: "opc_member", sub_role: "" };
export default function UsersPage() {
@@ -75,11 +80,14 @@ export default function UsersPage() {
<div className="space-y-1.5"><Label></Label><Input disabled={!!editing} value={form.username} onChange={(e) => setForm((f) => ({ ...f, username: e.target.value }))} /></div>
{!editing && <div className="space-y-1.5"><Label></Label><Input value={form.password ?? ""} onChange={(e) => setForm((f) => ({ ...f, password: e.target.value }))} /></div>}
<div className="space-y-1.5"><Label></Label><Input value={form.nickname} onChange={(e) => setForm((f) => ({ ...f, nickname: e.target.value }))} /></div>
<div className="space-y-1.5"><Label></Label>
<Select value={form.role} onValueChange={(v) => setForm((f) => ({ ...f, role: v }))}>
<SelectTrigger className="w-full"><SelectValue /></SelectTrigger>
<SelectContent>{PORT_ROLES.map((r) => <SelectItem key={r} value={r}>{r}</SelectItem>)}</SelectContent>
<div className="space-y-1.5"><Label></Label>
<Select value={form.role} onValueChange={(v) => setForm((f) => ({ ...f, role: v, sub_role: "" }))}>
<SelectTrigger className="w-full"><SelectValue placeholder="选择账号类型" /></SelectTrigger>
<SelectContent>
{ACCOUNT_ROLES.map((r) => <SelectItem key={r.value} value={r.value}>{r.label}</SelectItem>)}
</SelectContent>
</Select>
<p className="text-xs text-muted-foreground">{ACCOUNT_ROLES.find((r) => r.value === form.role)?.hint}</p>
</div>
<div className="space-y-1.5"><Label></Label><Input value={form.sub_role} onChange={(e) => setForm((f) => ({ ...f, sub_role: e.target.value }))} /></div>
</div>