From 70974db3b4cacb077a9f9ea0b2ce8aa60f3b8e62 Mon Sep 17 00:00:00 2001 From: likunming Date: Thu, 11 Jan 2024 16:02:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=B1=9E=E6=80=A7=E9=87=8D?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E5=8F=8A=E6=8B=86=E5=88=86=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/platform/components/form/WForm.vue | 21 ++++++++----------- .../src/platform/components/grid/WGrid.vue | 2 +- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/io.sc.platform.core.frontend/src/platform/components/form/WForm.vue b/io.sc.platform.core.frontend/src/platform/components/form/WForm.vue index dfc0d7aa..8449692e 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/WForm.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/WForm.vue @@ -31,14 +31,7 @@ import { PageStatusEnum } from '@/platform/components/utils'; const $q = useQuasar(); const attrs = useAttrs(); const props = defineProps({ - colsNum: { type: Number, default: 0 }, - // 不同屏幕尺寸下 colsNum 为 0 时一行显示的字段个数 - screenCols: { - type: Object, - default: () => { - return { xs: 1, sm: 2, md: 3, lg: 4, xl: 6 }; - }, - }, + colsNum: { type: [Number, Object], default: 0 }, colsXGap: { type: Number, default: 8 }, colsYGap: { type: Number, default: 4 }, fields: { @@ -53,6 +46,8 @@ const formRef = ref(); const formStatus = ref(PageStatusEnum.新增); const formModel: any = {}; const formFieldsMap = new Map(); +// 不同屏幕尺寸下 colsNum 为 0 时一行显示的字段个数 +const screenCols = { xs: 1, sm: 2, md: 3, lg: 4, xl: 6 }; const defaultValueHandler = (field) => { if (field.hasOwnProperty('defaultValue') && field.defaultValue !== null && field.defaultValue !== undefined) { @@ -87,15 +82,17 @@ for (const field of props.fields as any) { const formData = reactive(formModel); const screenColsNumComputed = computed(() => { - if (props.colsNum > 0) { + if (typeof props.colsNum === 'number' && props.colsNum > 0) { return props.colsNum; - } else { - return props.screenCols[$q.screen.name]; + } else if (typeof props.colsNum === 'object') { + const screen = { ...screenCols, ...props.colsNum }; + return screen[$q.screen.name]; } + return screenCols[$q.screen.name]; }); const formLayoutComputed = computed(() => { let className = ''; - if (props.colsNum > 0) { + if (typeof props.colsNum === 'number' && props.colsNum > 0) { className = 'grid-cols-' + props.colsNum; } else { className = 'grid-cols-' + screenColsNumComputed.value; diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue b/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue index bae8794a..12b413ea 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue +++ b/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue @@ -23,7 +23,7 @@