From c76f8bc4943c7697380ed3d12ff6ded7eb445666 Mon Sep 17 00:00:00 2001 From: kailong321200875 <321200875@qq.com> Date: Wed, 21 Jun 2023 17:59:37 +0800 Subject: [PATCH] =?UTF-8?q?wip:=20Search=E9=87=8D=E6=9E=84=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Form/index.ts | 1 - src/components/Form/src/Form.vue | 3 +- src/components/Form/src/helper/index.ts | 2 +- src/components/Form/src/types/index.ts | 12 +- src/components/Search/src/Search.vue | 157 ++++++++++++++++-------- src/hooks/web/useSearch.ts | 125 +++++++++++++++++++ src/router/index.ts | 24 ++-- src/views/Components/Search.vue | 104 +++++++--------- 8 files changed, 293 insertions(+), 135 deletions(-) create mode 100644 src/hooks/web/useSearch.ts diff --git a/src/components/Form/index.ts b/src/components/Form/index.ts index e4ba998..5c7510f 100644 --- a/src/components/Form/index.ts +++ b/src/components/Form/index.ts @@ -1,5 +1,4 @@ import Form from './src/Form.vue' -import { ElForm } from 'element-plus' import type { FormSchema, FormSetProps } from './src/types' export type { ComponentNameEnum, diff --git a/src/components/Form/src/Form.vue b/src/components/Form/src/Form.vue index bdcb453..bda7119 100644 --- a/src/components/Form/src/Form.vue +++ b/src/components/Form/src/Form.vue @@ -200,7 +200,7 @@ export default defineComponent({ const { schema = [], isCol } = unref(getProps) return schema - .filter((v) => !v.hidden) + .filter((v) => !v.remove) .map((item) => { // 如果是 Divider 组件,需要自己占用一行 const isDivider = item.component === 'Divider' @@ -312,6 +312,7 @@ export default defineComponent({ } return ( setFormItemRefMap(el, item.field)} {...(item.formItemProps || {})} prop={item.field} diff --git a/src/components/Form/src/helper/index.ts b/src/components/Form/src/helper/index.ts index 16cf2e8..f93edd1 100644 --- a/src/components/Form/src/helper/index.ts +++ b/src/components/Form/src/helper/index.ts @@ -144,7 +144,7 @@ export const initModel = (schema: FormSchema[], formModel: Recordable) => { const model: Recordable = { ...formModel } schema.map((v) => { // 如果是hidden,就删除对应的值 - if (v.hidden) { + if (v.remove) { delete model[v.field] } else if (v.component && v.component !== 'Divider') { const hasField = Reflect.has(model, v.field) diff --git a/src/components/Form/src/types/index.ts b/src/components/Form/src/types/index.ts index 87db3dc..46b7fdb 100644 --- a/src/components/Form/src/types/index.ts +++ b/src/components/Form/src/types/index.ts @@ -785,11 +785,6 @@ export interface FormSchema { */ label?: string - /** - * 提示信息 - */ - labelMessage?: string - /** * col组件属性 */ @@ -834,7 +829,12 @@ export interface FormSchema { value?: any /** - * 是否隐藏 + * 是否隐藏,如果为true,会连同值一同删除,类似v-if + */ + remove?: boolean + + /** + * 样式隐藏,不会把值一同删掉,类似v-show */ hidden?: boolean diff --git a/src/components/Search/src/Search.vue b/src/components/Search/src/Search.vue index 3ff06ef..8d1d77d 100644 --- a/src/components/Search/src/Search.vue +++ b/src/components/Search/src/Search.vue @@ -1,16 +1,19 @@ -