Переглянути джерело

✨ feat(admin): add real name field for user management

- add "真实姓名" column to user list table
- add real name input field to user creation/edit form
- make nickname field optional in user form
- make phone, email, nickname, name and avatar optional in user creation API schema
yourname 5 місяців тому
батько
коміт
f8a3ed6a05
2 змінених файлів з 23 додано та 1 видалено
  1. 17 1
      src/client/admin/pages/Users.tsx
  2. 6 0
      src/server/api/users/post.ts

+ 17 - 1
src/client/admin/pages/Users.tsx

@@ -156,6 +156,11 @@ export const UsersPage = () => {
       dataIndex: 'email',
       key: 'email',
     },
+    {
+      title: '真实姓名',
+      dataIndex: 'name',
+      key: 'name',
+    },
     {
       title: '角色',
       dataIndex: 'role',
@@ -248,6 +253,7 @@ export const UsersPage = () => {
           <Form.Item
             name="username"
             label="用户名"
+            required
             rules={[
               { required: true, message: '请输入用户名' },
               { min: 3, message: '用户名至少3个字符' }
@@ -259,7 +265,7 @@ export const UsersPage = () => {
           <Form.Item
             name="nickname"
             label="昵称"
-            rules={[{ required: true, message: '请输入昵称' }]}
+            rules={[{ required: false, message: '请输入昵称' }]}
           >
             <Input placeholder="请输入昵称" />
           </Form.Item>
@@ -286,10 +292,19 @@ export const UsersPage = () => {
             <Input placeholder="请输入手机号" />
           </Form.Item>
 
+          <Form.Item
+            name="name"
+            label="真实姓名"
+            rules={[{ required: false, message: '请输入真实姓名' }]}
+          >
+            <Input placeholder="请输入真实姓名" />
+          </Form.Item>
+
           {!editingUser && (
             <Form.Item
               name="password"
               label="密码"
+              required
               rules={[
                 { required: true, message: '请输入密码' },
                 { min: 6, message: '密码至少6个字符' }
@@ -302,6 +317,7 @@ export const UsersPage = () => {
           <Form.Item
             name="isDisabled"
             label="状态"
+            required
             rules={[{ required: true, message: '请选择状态' }]}
           >
             <Select placeholder="请选择状态">

+ 6 - 0
src/server/api/users/post.ts

@@ -14,6 +14,12 @@ const CreateUserSchema = UserSchema.omit({
   id: true,
   createdAt: true,
   updatedAt: true,
+}).extend({
+  phone: UserSchema.shape.phone.optional(),
+  email: UserSchema.shape.email.optional(),
+  nickname: UserSchema.shape.nickname.optional(),
+  name: UserSchema.shape.name.optional(),
+  avatar: UserSchema.shape.avatar.optional(),
 })
 
 const createUserRoute = createRoute({