From 40071529d276bfdbff7610adf01aa4af36ff3f77 Mon Sep 17 00:00:00 2001 From: Cyrus Zhou Date: Sun, 10 Jul 2022 12:26:39 +0200 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Form=20ApiTransfer=20,=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A0=87=E7=AD=BE=E9=A1=B5=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E7=81=B0=E5=B1=8F=E4=B8=8D=E6=98=BE=E7=A4=BA=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(#2052)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Table BasicColumn 添加 editDynamicDisabled Co-authored-by: Cyrus Zhou <6802207@qq.com> 使用方式同 Form FormSchema dynamicDisabled ``` export const Columns: BasicColumn[] = [ { title: 'Title', dataIndex: 'Title', editRow: true, editComponent: 'Select', editDynamicDisabled: ({ record }) => record.isDisabled, }, * editComponentProps onChange 功能恢复 Co-authored-by: Cyrus Zhou <6802207@qq.com> 说明: ...omit(compProps, 'onChange') 这会忽略 onChange ,导致 editComponentProps onChange 被取消 如下功能将不支持: ``` editComponentProps: ({ record }) => { return { options: effectTypeData, onChange: () => { }, }; }, ``` * tableData == null 报错 * ApiSelect 第一次选择触发required错误提示问题 * 恢复 虽然可以解决第一次选择提示报错问题,但是会导致 onChange: (e: any, options: any) => 无法获得 options 的值 * 修复标签页切换灰屏不显示内容问题 Co-authored-by: Cyrus Zhou <6802207@qq.com> 问题描述页面没有用 div 包括 会提示 Component inside renders non-element root node that cannot be animated , 导致页灰屏必须刷新页面才可以显示内容 * 添加 Form ApiTransfer ## 使用方式 api 方式: ``` ...... component: 'ApiTransfer', componentProps: { api: sysUserSelector, labelField: 'name', valueField: 'id', }, ..... ``` 数据方式: ``` .... componentProps: { dataSource: [ { title: 'Test01', key: '0', disabled: false, description: 'description 01' }, { title: 'Test02', key: '1', disabled: false, description: 'description 02' }, { title: 'Test03', key: '2', disabled: false, description: 'description 03' }, { title: 'Test04', key: '3', disabled: false, description: 'description 04' }, { title: 'Test05', key: '4', disabled: false, description: 'description 05' }, ], }, .... ``` --- src/components/Form/index.ts | 1 + src/components/Form/src/componentMap.ts | 2 + .../Form/src/components/ApiTransfer.vue | 135 ++++++++++++++++++ src/components/Form/src/types/index.ts | 3 +- src/layouts/page/index.vue | 8 +- 5 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 src/components/Form/src/components/ApiTransfer.vue diff --git a/src/components/Form/index.ts b/src/components/Form/index.ts index 3144dae8..d85b3c51 100644 --- a/src/components/Form/index.ts +++ b/src/components/Form/index.ts @@ -12,5 +12,6 @@ export { default as ApiTreeSelect } from './src/components/ApiTreeSelect.vue'; export { default as ApiTree } from './src/components/ApiTree.vue'; export { default as ApiRadioGroup } from './src/components/ApiRadioGroup.vue'; export { default as ApiCascader } from './src/components/ApiCascader.vue'; +export { default as ApiTransfer } from './src/components/ApiTransfer.vue'; export { BasicForm }; diff --git a/src/components/Form/src/componentMap.ts b/src/components/Form/src/componentMap.ts index 52739a6f..53e65c95 100644 --- a/src/components/Form/src/componentMap.ts +++ b/src/components/Form/src/componentMap.ts @@ -27,6 +27,7 @@ import ApiSelect from './components/ApiSelect.vue'; import ApiTree from './components/ApiTree.vue'; import ApiTreeSelect from './components/ApiTreeSelect.vue'; import ApiCascader from './components/ApiCascader.vue'; +import ApiTransfer from './components/ApiTransfer.vue'; import { BasicUpload } from '/@/components/Upload'; import { StrengthMeter } from '/@/components/StrengthMeter'; import { IconPicker } from '/@/components/Icon'; @@ -57,6 +58,7 @@ componentMap.set('ApiCascader', ApiCascader); componentMap.set('Cascader', Cascader); componentMap.set('Slider', Slider); componentMap.set('Rate', Rate); +componentMap.set('ApiTransfer', ApiTransfer); componentMap.set('DatePicker', DatePicker); componentMap.set('MonthPicker', DatePicker.MonthPicker); diff --git a/src/components/Form/src/components/ApiTransfer.vue b/src/components/Form/src/components/ApiTransfer.vue new file mode 100644 index 00000000..8c39c611 --- /dev/null +++ b/src/components/Form/src/components/ApiTransfer.vue @@ -0,0 +1,135 @@ + + + diff --git a/src/components/Form/src/types/index.ts b/src/components/Form/src/types/index.ts index 3da7e4ae..294b0805 100644 --- a/src/components/Form/src/types/index.ts +++ b/src/components/Form/src/types/index.ts @@ -113,4 +113,5 @@ export type ComponentType = | 'Render' | 'Slider' | 'Rate' - | 'Divider'; + | 'Divider' + | 'ApiTransfer'; diff --git a/src/layouts/page/index.vue b/src/layouts/page/index.vue index 72fe90f6..34cb5c4b 100644 --- a/src/layouts/page/index.vue +++ b/src/layouts/page/index.vue @@ -15,9 +15,13 @@ appear > - +
+ +
- +
+ +