import React, { useState } from "react"; import { Card, Form, Input, Switch, Button, message } from "antd"; import { useNavigate } from "react-router-dom"; import { userToolsSetApi } from "../services/api"; const UserAdd = () => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const navigate = useNavigate(); const onFinish = async (values) => { const name = String(values.name || "").trim(); if (!name) { message.error("请输入有效的用户名"); return; } // 先查询是否已存在同名用户(admin 能查询到所有用户) try { const usersRes = await userToolsSetApi.getUsers(); const users = usersRes.data?.users || []; const exists = users.some((u) => String(u.name).trim().toLowerCase() === name.toLowerCase()); if (exists) { message.error("用户名已存在"); return; } } catch (err) { // 查询失败不影响后续创建,但提示一下 console.warn("检查用户名重名失败", err); } const payload = { name, password: values.password, is_admin: values.is_admin ? 1 : 0, }; try { setLoading(true); const res = await userToolsSetApi.addUser(payload); if (res.data?.success) { message.success("新增用户成功"); navigate("/user-tools-set", { replace: true }); } else { message.error(res.data?.error || "新增失败"); } } catch (error) { if (error?.response?.status === 409) { message.error("用户名已存在"); } else { message.error(error.response?.data?.error || "新增失败"); } } finally { setLoading(false); } }; return ( navigate(-1)}>返回} >
); }; export default UserAdd;