From eba0cc02a8d345bd36c948d31de6b5bfeb09129e Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Tue, 17 Sep 2024 16:07:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86(?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E6=88=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/system/user/data.tsx | 121 ++++++++++++++++++ .../web-antd/src/views/system/user/drawer.vue | 28 ---- apps/web-antd/src/views/system/user/index.vue | 16 ++- apps/web-antd/src/views/system/user/modal.vue | 24 ---- apps/web-antd/src/views/system/user/table.tsx | 99 -------------- .../src/views/system/user/user-drawer.vue | 84 ++++++++++++ 6 files changed, 220 insertions(+), 152 deletions(-) create mode 100644 apps/web-antd/src/views/system/user/data.tsx delete mode 100644 apps/web-antd/src/views/system/user/drawer.vue delete mode 100644 apps/web-antd/src/views/system/user/modal.vue delete mode 100644 apps/web-antd/src/views/system/user/table.tsx create mode 100644 apps/web-antd/src/views/system/user/user-drawer.vue diff --git a/apps/web-antd/src/views/system/user/data.tsx b/apps/web-antd/src/views/system/user/data.tsx new file mode 100644 index 00000000..a0dbb7ce --- /dev/null +++ b/apps/web-antd/src/views/system/user/data.tsx @@ -0,0 +1,121 @@ +import { DictEnum } from '@vben/constants'; + +import { type FormSchemaGetter, z } from '#/adapter'; +import { getDictOptions } from '#/utils/dict'; + +export const drawerSchema: FormSchemaGetter = () => [ + { + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + fieldName: 'userId', + }, + { + component: 'Input', + componentProps: { + placeholder: '请输入', + }, + fieldName: 'userName', + label: '用户账号', + rules: 'required', + }, + { + component: 'InputPassword', + componentProps: { + placeholder: '请输入', + }, + fieldName: 'password', + label: '用户密码', + rules: 'required', + }, + { + component: 'Input', + componentProps: { + placeholder: '请输入', + }, + fieldName: 'nickName', + label: '用户昵称', + rules: 'required', + }, + { + component: 'TreeSelect', + componentProps: { class: 'w-full', placeholder: '请选择' }, + fieldName: 'deptId', + label: '所属部门', + rules: 'required', + }, + { + component: 'Input', + componentProps: { + placeholder: '请输入', + }, + fieldName: 'phone', + label: '手机号码', + rules: z + .string() + .regex(/^1[3-9]\d{9}$/, '请输入正确的手机号码') + .optional(), + }, + { + component: 'Input', + componentProps: { + placeholder: '请输入', + }, + fieldName: 'email', + label: '邮箱', + rules: z.string().email('请输入正确的邮箱').optional(), + }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: getDictOptions(DictEnum.SYS_USER_SEX), + optionType: 'button', + }, + defaultValue: '0', + fieldName: 'sex', + formItemClass: 'col-span-2 lg:col-span-1', + label: '性别', + }, + { + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: getDictOptions(DictEnum.SYS_COMMON_STATUS), + optionType: 'button', + }, + defaultValue: '0', + fieldName: 'status', + formItemClass: 'col-span-2 lg:col-span-1', + label: '状态', + }, + { + component: 'Select', + componentProps: { + class: 'w-full', + placeholder: '请选择', + }, + fieldName: 'postIds', + label: '岗位', + }, + { + component: 'Select', + componentProps: { + class: 'w-full', + placeholder: '请选择', + }, + fieldName: 'roleIds', + label: '角色', + }, + { + component: 'Textarea', + componentProps: { + placeholder: '请输入', + }, + fieldName: 'remark', + formItemClass: 'items-baseline', + label: '备注', + }, +]; diff --git a/apps/web-antd/src/views/system/user/drawer.vue b/apps/web-antd/src/views/system/user/drawer.vue deleted file mode 100644 index 7197fc8d..00000000 --- a/apps/web-antd/src/views/system/user/drawer.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/system/user/index.vue b/apps/web-antd/src/views/system/user/index.vue index e48a8b87..407d0ae0 100644 --- a/apps/web-antd/src/views/system/user/index.vue +++ b/apps/web-antd/src/views/system/user/index.vue @@ -1,10 +1,11 @@ diff --git a/apps/web-antd/src/views/system/user/modal.vue b/apps/web-antd/src/views/system/user/modal.vue deleted file mode 100644 index d8cb3184..00000000 --- a/apps/web-antd/src/views/system/user/modal.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/system/user/table.tsx b/apps/web-antd/src/views/system/user/table.tsx deleted file mode 100644 index ab95c94f..00000000 --- a/apps/web-antd/src/views/system/user/table.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import type { ColumnsType } from 'ant-design-vue/es/table'; - -import { defineComponent, ref } from 'vue'; - -import { - Button, - message, - Modal, - Popconfirm, - Space, - Table, -} from 'ant-design-vue'; - -export default defineComponent({ - name: 'TableTest', - setup() { - const dataSource = [ - { age: 20, id: 1, name: '张三' }, - { age: 21, id: 2, name: '李四' }, - { age: 22, id: 3, name: '王五' }, - ]; - - const columns: ColumnsType = [ - { - align: 'center', - dataIndex: 'id', - title: 'id', - }, - { - align: 'center', - dataIndex: 'name', - title: '姓名', - }, - { - align: 'center', - dataIndex: 'age', - title: '年龄', - }, - { - align: 'center', - key: 'action', - title: '操作', - }, - ]; - - const open = ref(false); - - return () => ( -
- - {{ - bodyCell: ({ column }: { column: any }) => { - if (column.key === 'action') { - return ( - - - { - message.success('删除成功'); - }} - placement="left" - title={'确认删除该条记录?'} - > - - - - ); - } - }, - }} -
- (open.value = false)} - open={open.value} - title={'modal'} - > -

弹窗内容

-
-
- ); - }, -}); diff --git a/apps/web-antd/src/views/system/user/user-drawer.vue b/apps/web-antd/src/views/system/user/user-drawer.vue new file mode 100644 index 00000000..dd7e0a66 --- /dev/null +++ b/apps/web-antd/src/views/system/user/user-drawer.vue @@ -0,0 +1,84 @@ + + +