|
@ -31,14 +31,7 @@ import { PageStatusEnum } from '@/platform/components/utils'; |
|
|
const $q = useQuasar(); |
|
|
const $q = useQuasar(); |
|
|
const attrs = useAttrs(); |
|
|
const attrs = useAttrs(); |
|
|
const props = defineProps({ |
|
|
const props = defineProps({ |
|
|
colsNum: { type: Number, default: 0 }, |
|
|
colsNum: { type: [Number, Object], default: 0 }, |
|
|
// 不同屏幕尺寸下 colsNum 为 0 时一行显示的字段个数 |
|
|
|
|
|
screenCols: { |
|
|
|
|
|
type: Object, |
|
|
|
|
|
default: () => { |
|
|
|
|
|
return { xs: 1, sm: 2, md: 3, lg: 4, xl: 6 }; |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
colsXGap: { type: Number, default: 8 }, |
|
|
colsXGap: { type: Number, default: 8 }, |
|
|
colsYGap: { type: Number, default: 4 }, |
|
|
colsYGap: { type: Number, default: 4 }, |
|
|
fields: { |
|
|
fields: { |
|
@ -53,6 +46,8 @@ const formRef = ref(); |
|
|
const formStatus = ref(PageStatusEnum.新增); |
|
|
const formStatus = ref(PageStatusEnum.新增); |
|
|
const formModel: any = {}; |
|
|
const formModel: any = {}; |
|
|
const formFieldsMap = new Map(); |
|
|
const formFieldsMap = new Map(); |
|
|
|
|
|
// 不同屏幕尺寸下 colsNum 为 0 时一行显示的字段个数 |
|
|
|
|
|
const screenCols = { xs: 1, sm: 2, md: 3, lg: 4, xl: 6 }; |
|
|
|
|
|
|
|
|
const defaultValueHandler = (field) => { |
|
|
const defaultValueHandler = (field) => { |
|
|
if (field.hasOwnProperty('defaultValue') && field.defaultValue !== null && field.defaultValue !== undefined) { |
|
|
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 formData = reactive(formModel); |
|
|
|
|
|
|
|
|
const screenColsNumComputed = computed(() => { |
|
|
const screenColsNumComputed = computed(() => { |
|
|
if (props.colsNum > 0) { |
|
|
if (typeof props.colsNum === 'number' && props.colsNum > 0) { |
|
|
return props.colsNum; |
|
|
return props.colsNum; |
|
|
} else { |
|
|
} else if (typeof props.colsNum === 'object') { |
|
|
return props.screenCols[$q.screen.name]; |
|
|
const screen = { ...screenCols, ...props.colsNum }; |
|
|
|
|
|
return screen[$q.screen.name]; |
|
|
} |
|
|
} |
|
|
|
|
|
return screenCols[$q.screen.name]; |
|
|
}); |
|
|
}); |
|
|
const formLayoutComputed = computed(() => { |
|
|
const formLayoutComputed = computed(() => { |
|
|
let className = ''; |
|
|
let className = ''; |
|
|
if (props.colsNum > 0) { |
|
|
if (typeof props.colsNum === 'number' && props.colsNum > 0) { |
|
|
className = 'grid-cols-' + props.colsNum; |
|
|
className = 'grid-cols-' + props.colsNum; |
|
|
} else { |
|
|
} else { |
|
|
className = 'grid-cols-' + screenColsNumComputed.value; |
|
|
className = 'grid-cols-' + screenColsNumComputed.value; |
|
|