diff --git a/src/components/formFields/select/multiple/index.tsx b/src/components/formFields/select/multiple/index.tsx index c8069ad4cd947a8b7108a4c969f1da557ea988c8..cb40ff4b203b71b58cb75b796c80bbe3815bf3f5 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} /> ) }