From c5942e879d1690b9636b63a8652cbb9fac73ebbe Mon Sep 17 00:00:00 2001 From: zjt Date: Wed, 27 Apr 2022 17:53:08 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=A4=9A=E9=80=89=E6=A1=86):=20=E5=85=BC?= =?UTF-8?q?=E5=AE=B9null=E5=92=8Cundefined=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../formFields/select/multiple/index.tsx | 60 +++++++++++-------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/src/components/formFields/select/multiple/index.tsx b/src/components/formFields/select/multiple/index.tsx index c8069ad..cb40ff4 100644 --- a/src/components/formFields/select/multiple/index.tsx +++ b/src/components/formFields/select/multiple/index.tsx @@ -1,21 +1,14 @@ import React from 'react' import { SelectMultipleField } from 'ccms' import { Checkbox, Select } from 'antd' -import { ISelectMultipleField, SelectMultipleFieldConfig } from 'ccms/dist/src/components/formFields/select/multiple' +import { ISelectMultipleField } from 'ccms/dist/src/components/formFields/select/multiple' import InterfaceHelper from '../../../../util/interface' + export default class SelectSingleFieldComponent extends SelectMultipleField { interfaceHelper = new InterfaceHelper() renderDorpdownComponent = (props: ISelectMultipleField) => { - const { - value, - options, - onChange, - onClear, - disabled, - readonly, - placeholder - } = props + const { value, options, onChange, onClear, disabled, readonly, placeholder } = props return ( ) } renderCheckboxComponent = (props: ISelectMultipleField) => { - const { - value, - options, - onChange, - disabled, - readonly - } = props - + const { value, options, onChange, disabled, readonly } = props + let tempValue + let tempOptions + let onCheckBoxChange + const createTemp = options.find((option) => option.value === null || option.value === undefined) + if (createTemp) { + tempOptions = options.map((option, index) => { + return { + label: option.label, + value: index, + realValue: option.value + } + }) + if (value) { + tempValue = value.map((v) => { + return tempOptions.findIndex((option) => v === option.realValue) + }) + } + onCheckBoxChange = (checkedValue) => onChange(checkedValue.map((i: number) => tempOptions[i].realValue)) + } else { + tempValue = value + tempOptions = options + onCheckBoxChange = onChange + } return ( onChange((value as Array))} - options={options} + value={tempValue} + onChange={(checkedValue) => onCheckBoxChange(checkedValue as Array)} + options={tempOptions} /> ) } -- Gitee