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