From c1e58831e1129389d439d9b7d0dce3303ce4ba7e Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Tue, 24 Sep 2024 11:23:02 +0800 Subject: [PATCH] feat: search form --- .../src/views/monitor/logininfor/data.tsx | 35 ++++++++++++ .../src/views/monitor/logininfor/index.vue | 27 ++++++++- .../web-antd/src/views/monitor/online/data.ts | 20 +++++++ .../src/views/monitor/online/index.vue | 35 ++++++++++-- .../src/views/monitor/operlog/data.ts | 55 +++++++++++++++++++ .../src/views/monitor/operlog/index.vue | 35 ++++++++++-- .../web-antd/src/views/system/client/data.tsx | 28 ++++++++++ .../src/views/system/client/index.vue | 27 +++++++++ apps/web-antd/src/views/system/config/data.ts | 35 ++++++++++++ .../src/views/system/config/index.vue | 30 +++++++++- apps/web-antd/src/views/system/dept/data.ts | 21 +++++++ apps/web-antd/src/views/system/dept/index.vue | 45 ++++++++++++--- .../src/views/system/dict/data/data.ts | 22 ++++++++ .../src/views/system/dict/data/index.vue | 37 +++++++++++-- apps/web-antd/src/views/system/dict/index.vue | 10 +--- .../src/views/system/dict/type/data.ts | 19 +++++++ .../src/views/system/dict/type/index.vue | 37 +++++++++++-- apps/web-antd/src/views/system/menu/data.tsx | 32 +++++++++++ apps/web-antd/src/views/system/menu/index.vue | 39 +++++++++++-- apps/web-antd/src/views/system/notice/data.ts | 30 ++++++++++ .../src/views/system/notice/index.vue | 37 ++++++++++++- .../src/views/system/oss-config/data.tsx | 28 ++++++++++ .../src/views/system/oss-config/index.vue | 27 +++++++++ apps/web-antd/src/views/system/oss/data.tsx | 41 ++++++++++++++ apps/web-antd/src/views/system/oss/index.vue | 28 ++++++++++ apps/web-antd/src/views/system/post/data.ts | 29 ++++++++++ apps/web-antd/src/views/system/post/index.vue | 37 ++++++++++++- .../web-antd/src/views/system/tenant/data.tsx | 35 ++++++++++++ .../src/views/system/tenant/index.vue | 27 +++++++++ .../src/views/system/tenantPackage/data.ts | 2 +- apps/web-antd/src/views/tool/gen/data.tsx | 35 ++++++++++++ apps/web-antd/src/views/tool/gen/index.vue | 28 +++++++++- 32 files changed, 924 insertions(+), 49 deletions(-) create mode 100644 apps/web-antd/src/views/monitor/online/data.ts create mode 100644 apps/web-antd/src/views/monitor/operlog/data.ts create mode 100644 apps/web-antd/src/views/system/oss/data.tsx create mode 100644 apps/web-antd/src/views/tool/gen/data.tsx diff --git a/apps/web-antd/src/views/monitor/logininfor/data.tsx b/apps/web-antd/src/views/monitor/logininfor/data.tsx index 8fa91c0d..471f4450 100644 --- a/apps/web-antd/src/views/monitor/logininfor/data.tsx +++ b/apps/web-antd/src/views/monitor/logininfor/data.tsx @@ -1,13 +1,48 @@ import type { ColumnsType } from 'ant-design-vue/es/table'; +import type { FormSchemaGetter } from '#/adapter'; import type { DescItem } from '#/components/description'; import { DictEnum } from '@vben/constants'; import { Tooltip } from 'ant-design-vue'; +import { getDictOptions } from '#/utils/dict'; import { renderBrowserIcon, renderDict, renderOsIcon } from '#/utils/render'; +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + componentProps: { + placeholder: '请输入', + }, + fieldName: 'ipaddr', + label: 'IP地址', + }, + { + component: 'Input', + componentProps: { + placeholder: '请输入', + }, + fieldName: 'userName', + label: '用户账号', + }, + { + component: 'Select', + componentProps: { + options: getDictOptions(DictEnum.SYS_COMMON_STATUS), + placeholder: '请选择', + }, + fieldName: 'status', + label: '登录状态', + }, + { + component: 'RangePicker', + fieldName: 'dateTime', + label: '登录日期', + }, +]; + export const columns: ColumnsType = [ { align: 'center', diff --git a/apps/web-antd/src/views/monitor/logininfor/index.vue b/apps/web-antd/src/views/monitor/logininfor/index.vue index 22b6d91b..c954d8f7 100644 --- a/apps/web-antd/src/views/monitor/logininfor/index.vue +++ b/apps/web-antd/src/views/monitor/logininfor/index.vue @@ -7,12 +7,13 @@ import { onMounted, ref } from 'vue'; import { Page, useVbenModal } from '@vben/common-ui'; -import { Space, Table } from 'ant-design-vue'; +import { Card, Space, Table } from 'ant-design-vue'; +import { useVbenForm } from '#/adapter'; import { loginInfoClean, loginInfoList } from '#/api/monitor/logininfo'; import { confirmDeleteModal } from '#/utils/modal'; -import { columns } from './data'; +import { columns, querySchema } from './data'; import loginInfoModal from './login-info-modal.vue'; const [LoginInfoModal, modalApi] = useVbenModal({ @@ -39,10 +40,32 @@ function handleClear() { }, }); } + +const [QueryForm] = useVbenForm({ + // 默认展开 + collapsed: false, + // 所有表单项共用,可单独在表单内覆盖 + commonConfig: { + // 所有表单项 + componentProps: { + class: 'w-full', + }, + }, + schema: querySchema(), + // 是否可展开 + showCollapseButton: true, + submitButtonOptions: { + text: '查询', + }, + wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', +});