From af614885b92b2d01bf478e1fd4f578fc443ffa1b Mon Sep 17 00:00:00 2001 From: xujiang Date: Sun, 27 Sep 2020 15:20:53 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20=E6=96=B0=E5=A2=9E=E5=A4=8D=E9=80=89?= =?UTF-8?q?=E6=A1=86=E7=BB=84=E4=BB=B6,=E6=B7=BB=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E5=BA=94ts=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 1 + .../BasicComponents/Form/BaseForm.tsx | 26 +++++++++++++++++-- .../BasicShop/BasicComponents/Form/index.tsx | 4 --- .../BasicShop/BasicComponents/Form/schema.ts | 5 +--- .../PanelComponents/FormEditor/types.ts | 9 +++++++ 5 files changed, 35 insertions(+), 10 deletions(-) diff --git a/readme.md b/readme.md index 990380f..51fe27a 100644 --- a/readme.md +++ b/readme.md @@ -135,6 +135,7 @@ yarn run start ## 赞助 开源不易, 有了您的赞助, 我们会做的更好~ + ## 技术反馈和交流 微信:beautifulFront diff --git a/src/components/BasicShop/BasicComponents/Form/BaseForm.tsx b/src/components/BasicShop/BasicComponents/Form/BaseForm.tsx index 78f4a3f..e1494d0 100644 --- a/src/components/BasicShop/BasicComponents/Form/BaseForm.tsx +++ b/src/components/BasicShop/BasicComponents/Form/BaseForm.tsx @@ -1,9 +1,10 @@ -import { Input, Cell, DateSelect, Radio, Select } from 'zarm'; +import { Input, Cell, DateSelect, Radio, Select, Checkbox } from 'zarm'; import styles from './baseForm.less'; -import React from 'react'; +import React, { ReactText } from 'react'; import { baseFormDateTpl, baseFormMyRadioTpl, + baseFormMyCheckboxTpl, baseFormMySelectTpl, baseFormNumberTpl, baseFormTextAreaTpl, @@ -67,6 +68,27 @@ const BaseForm: TBaseForm = { ); }, + MyCheckbox: ( + props: baseFormMyCheckboxTpl & { onChange: (v: Array | undefined) => void }, + ) => { + const { label, options, onChange } = props; + return ( +
+
{label}
+ + + {options.map((item, i) => { + return ( + + {item.label} + + ); + })} + + +
+ ); + }, Date: (props: baseFormDateTpl & { onChange: (v: Date) => void }) => { const { label, placeholder, onChange } = props; return ( diff --git a/src/components/BasicShop/BasicComponents/Form/index.tsx b/src/components/BasicShop/BasicComponents/Form/index.tsx index 482a38a..e92d476 100644 --- a/src/components/BasicShop/BasicComponents/Form/index.tsx +++ b/src/components/BasicShop/BasicComponents/Form/index.tsx @@ -9,10 +9,6 @@ const FormComponent = (props: IFormConfig) => { const formData: Record = {}; const handleChange = useCallback( (item, v) => { - if (item.options) { - formData[item.label] = v[0].label; - return; - } formData[item.label] = v; }, [formData], diff --git a/src/components/BasicShop/BasicComponents/Form/schema.ts b/src/components/BasicShop/BasicComponents/Form/schema.ts index 1e71fe5..4bf7f90 100644 --- a/src/components/BasicShop/BasicComponents/Form/schema.ts +++ b/src/components/BasicShop/BasicComponents/Form/schema.ts @@ -8,12 +8,11 @@ import { TNumberDefaultType, TTextDefaultType, } from '@/components/PanelComponents/FormEditor/types'; -import { baseConfig, baseDefault, ICommonBaseType } from '../../common'; export type TFormEditData = Array< ITextConfigType | INumberConfigType | IColorConfigType | ITextConfigType | IFormItemsConfigType >; -export interface IFormConfig extends ICommonBaseType { +export interface IFormConfig { title: TTextDefaultType; fontSize: TNumberDefaultType; titColor: TColorDefaultType; @@ -31,7 +30,6 @@ export interface IFormSchema { const Form: IFormSchema = { editData: [ - ...baseConfig, { key: 'title', name: '标题', @@ -105,7 +103,6 @@ const Form: IFormSchema = { ], }, ], - ...baseDefault, }, }; export default Form; diff --git a/src/components/PanelComponents/FormEditor/types.ts b/src/components/PanelComponents/FormEditor/types.ts index 9352801..914c719 100644 --- a/src/components/PanelComponents/FormEditor/types.ts +++ b/src/components/PanelComponents/FormEditor/types.ts @@ -167,6 +167,13 @@ export type baseFormMyRadioTpl = { options: baseFormOptionsType[]; }; +export type baseFormMyCheckboxTpl = { + id: string; + type: 'MyCheckbox'; + label: string; + options: baseFormOptionsType[]; +}; + export type baseFormMySelectTpl = { id: string; type: 'MySelect'; @@ -186,6 +193,7 @@ export type baseFormUnion = | baseFormNumberTpl | baseFormTextAreaTpl | baseFormMyRadioTpl + | baseFormMyCheckboxTpl | baseFormMySelectTpl | baseFormDateTpl; export type baseFormUnionType = @@ -193,6 +201,7 @@ export type baseFormUnionType = | baseFormNumberTpl['type'] | baseFormTextAreaTpl['type'] | baseFormMyRadioTpl['type'] + | baseFormMyCheckboxTpl['type'] | baseFormMySelectTpl['type'] | baseFormDateTpl['type'];