From 3a55028265f4f4d266d7d82e2ff3ef153f507577 Mon Sep 17 00:00:00 2001 From: icssoa <615206459@qq.com> Date: Wed, 21 Feb 2024 14:05:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- packages/crud/index.d.ts | 6 +- packages/crud/package.json | 2 +- packages/crud/src/components/form/index.tsx | 40 +++-- packages/crud/src/components/search/index.tsx | 14 +- packages/crud/src/static/index.scss | 135 ++++++++++------ .../crud/types/components/form/index.d.ts | 2 +- .../crud/types/components/search/index.d.ts | 18 +++ .../views/crud/components/search/layout.vue | 152 ++++++++++++++++++ src/modules/demo/views/crud/index.vue | 3 +- yarn.lock | 8 +- 11 files changed, 300 insertions(+), 82 deletions(-) create mode 100644 src/modules/demo/views/crud/components/search/layout.vue diff --git a/package.json b/package.json index 17598a6..98081e6 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "lint:eslint": "eslint \"./src/**/*.{vue,ts,tsx}\" --fix" }, "dependencies": { - "@cool-vue/crud": "^7.1.12", + "@cool-vue/crud": "^7.1.13", "@element-plus/icons-vue": "^2.1.0", "@vueuse/core": "^10.4.0", "@wangeditor/editor": "^5.1.23", diff --git a/packages/crud/index.d.ts b/packages/crud/index.d.ts index 38cef6f..d5d7f0f 100644 --- a/packages/crud/index.d.ts +++ b/packages/crud/index.d.ts @@ -40,8 +40,8 @@ declare type obj = { declare type DeepPartial = T extends Function ? T : T extends object - ? { [P in keyof T]?: DeepPartial } - : T; + ? { [P in keyof T]?: DeepPartial } + : T; // 合并 declare type Merge = Omit & B; @@ -650,8 +650,10 @@ declare namespace ClAdvSearch { declare namespace ClSearch { interface Config { + inline?: boolean; items?: ClForm.Item[]; data?: T; + props?: ElementPlus.FormProps; resetBtn?: boolean; onLoad?(data: T): void; onSearch?(data: T, options: { next: ClCrud.Service["api"]["page"] }): void; diff --git a/packages/crud/package.json b/packages/crud/package.json index a440612..3102b09 100644 --- a/packages/crud/package.json +++ b/packages/crud/package.json @@ -1,6 +1,6 @@ { "name": "@cool-vue/crud", - "version": "7.1.12", + "version": "7.1.13", "private": false, "main": "./dist/index.umd.min.js", "typings": "types/index.d.ts", diff --git a/packages/crud/src/components/form/index.tsx b/packages/crud/src/components/form/index.tsx index 983fbf7..dd23e1c 100644 --- a/packages/crud/src/components/form/index.tsx +++ b/packages/crud/src/components/form/index.tsx @@ -451,11 +451,17 @@ export default defineComponent({ } ); + let span = e.span || style.form.span; + + if (browser.isMini) { + span = 24; + } + // 是否行内 const Item = props.inline ? ( FormItem ) : ( - + {FormItem} ); @@ -468,6 +474,12 @@ export default defineComponent({ // 表单项列表 const children = config.items.map(renderFormItem); + // 表单标签位置 + const labelPosition = + browser.isMini && !props.inline + ? "top" + : config.props.labelPosition || style.form.labelPosition; + return (
{h( @@ -486,29 +498,23 @@ export default defineComponent({ />, { ...config.props, - labelPosition: - browser.isMini && !props.inline - ? "top" - : config.props.labelPosition || style.form.labelPosition + labelPosition }, { default: () => { + const items = [ + slots.prepend && slots.prepend({ scope: form }), + children, + slots.append && slots.append({ scope: form }) + ]; + return ( -
- {/* 前 */} - {slots.prepend && slots.prepend({ scope: form })} - - {/* 项 */} +
{props.inline ? ( - children + items ) : ( - - {children} - + {items} )} - - {/* 后 */} - {slots.append && slots.append({ scope: form })}
); } diff --git a/packages/crud/src/components/search/index.tsx b/packages/crud/src/components/search/index.tsx index 0eaabc8..c8f887f 100644 --- a/packages/crud/src/components/search/index.tsx +++ b/packages/crud/src/components/search/index.tsx @@ -7,6 +7,15 @@ export default defineComponent({ name: "cl-search", props: { + inline: { + type: Boolean, + default: true + }, + props: { + type: Object, + default: () => {} + }, + // 表单值 data: { type: Object, @@ -114,6 +123,7 @@ export default defineComponent({ op: { hidden: true }, + props: config.props, items: config.items, form: config.data, on: { @@ -129,12 +139,12 @@ export default defineComponent({ isEmpty(config.items) || (