import { useMutation, useQuery } from "@tanstack/react-query"; import { useSearchParams } from "react-router-dom"; import { fetchWecomConfig, startWecomBind, unbindWecom } from "../api/auth"; import { PageHeader } from "../components/common/PageHeader"; import { useAuth } from "../auth/AuthContext"; import { Button } from "../components/ui/button"; export function ProfilePage() { const { me, permissions } = useAuth(); const [searchParams] = useSearchParams(); const wecomConfigQuery = useQuery({ queryKey: ["auth", "wecom-config"], queryFn: () => fetchWecomConfig(), staleTime: 60_000 }); const bindMutation = useMutation({ mutationFn: async () => startWecomBind("/settings/profile"), onSuccess: (payload) => { window.location.assign(payload.loginUrl); }, }); const unbindMutation = useMutation({ mutationFn: () => unbindWecom(), onSuccess: () => { window.location.reload(); }, }); return (

个人信息

姓名
{me?.name ?? "-"}
员工号
{me?.employeeNo ?? "-"}
邮箱
{me?.email ?? "-"}
手机号
{me?.phone ?? "-"}
部门ID
{me?.departmentId ?? "-"}
直属上级ID
{me?.directManagerId ?? "-"}

企业微信绑定

接入状态:{wecomConfigQuery.data?.enabled ? "已启用" : "未启用"}
绑定状态:{me?.wecomBinding?.externalUserId ?? "未绑定"}
{searchParams.get("wecomBind") ? (
绑定结果:{searchParams.get("wecomBind")}
) : null}

权限列表

{permissions.map((permission) => ( {permission} ))}
); }