From d6749f95c526c0e71ec946bd3bb777bc42b2c34a Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期日, 20 十月 2024 17:59:31 +0800 Subject: [PATCH] 工艺绑定优化 --- src/components/Form/src/helper.ts | 53 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 35 insertions(+), 18 deletions(-) diff --git a/src/components/Form/src/helper.ts b/src/components/Form/src/helper.ts index 7171c7b..09f3c4a 100644 --- a/src/components/Form/src/helper.ts +++ b/src/components/Form/src/helper.ts @@ -1,8 +1,8 @@ -import type { ValidationRule } from 'ant-design-vue/lib/form/Form'; -import type { ComponentType } from './types/index'; -import { useI18n } from '/@/hooks/web/useI18n'; -import { dateUtil } from '/@/utils/dateUtil'; -import { isNumber, isObject } from '/@/utils/is'; +import type { Rule as ValidationRule } from 'ant-design-vue/lib/form/interface'; +import type { ComponentType } from './types'; +import { useI18n } from '@/hooks/web/useI18n'; +import { dateUtil } from '@/utils/dateUtil'; +import { isObject } from '@/utils/is'; const { t } = useI18n(); @@ -31,8 +31,17 @@ const DATE_TYPE = ['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker']; +/** + * 涓婁紶缁勪欢 + */ +export const uploadItemType: ComponentType[] = [ + 'Upload', + 'ImageUpload' +]; + + function genType() { - return [...DATE_TYPE, 'RangePicker']; + return [...DATE_TYPE, 'RangePicker',"TimeRangePicker"]; } export function setComponentRuleType( @@ -40,9 +49,12 @@ component: ComponentType, valueFormat: string, ) { + if (Reflect.has(rule, 'type')) { + return; + } if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component)) { rule.type = valueFormat ? 'string' : 'object'; - } else if (['RangePicker', 'Upload', 'CheckboxGroup', 'TimePicker'].includes(component)) { + } else if (['RangePicker', 'CheckboxGroup'].includes(component)) { rule.type = 'array'; } else if (['InputNumber'].includes(component)) { rule.type = 'number'; @@ -52,36 +64,41 @@ export function processDateValue(attr: Recordable, component: string) { const { valueFormat, value } = attr; if (valueFormat) { - attr.value = isObject(value) ? dateUtil(value).format(valueFormat) : value; + attr.value = isObject(value) ? dateUtil(value as unknown as Date).format(valueFormat) : value; } else if (DATE_TYPE.includes(component) && value) { attr.value = dateUtil(attr.value); } } -export function handleInputNumberValue(component?: ComponentType, val?: any) { - if (!component) return val; - if (['Input', 'InputPassword', 'InputSearch', 'InputTextArea'].includes(component)) { - return val && isNumber(val) ? `${val}` : val; - } - return val; -} +export const defaultValueComponents = [ + 'Input', + 'InputPassword', + 'InputNumber', + 'InputSearch', + 'InputTextArea', +]; /** * 鏃堕棿瀛楁 */ export const dateItemType = genType(); -export const defaultValueComponents = ['Input', 'InputPassword', 'InputSearch', 'InputTextArea']; - // TODO 鑷畾涔夌粍浠跺皝瑁呬細鍑虹幇楠岃瘉闂锛屽洜姝よ繖閲岀洰鍓嶆敼鎴愭墜鍔ㄨЕ鍙戦獙璇� export const NO_AUTO_LINK_COMPONENTS: ComponentType[] = [ 'Upload', 'ApiTransfer', 'ApiTree', - 'ApiSelect', 'ApiTreeSelect', 'ApiRadioGroup', 'ApiCascader', 'AutoComplete', 'RadioButtonGroup', + 'ImageUpload', + 'ApiSelect', ]; + +export const simpleComponents = ['Divider', 'BasicTitle']; + +export function isIncludeSimpleComponents(component?: ComponentType) { + return simpleComponents.includes(component || ''); +} -- Gitblit v1.9.3