import BasicField from '../Basic' import DateTimeField from '@/components/ui/DateTime' import type { IBasicDateTimeProps, BasicDateTimeValueType } from '@/types' import { FormControl } from '../../form' class BasicDateTime extends BasicField { props: IBasicDateTimeProps isComposite = true constructor(props: IBasicDateTimeProps, form: FormControl) { super(props, form) this.props = props this.rules = this.getRules(props.componentConfig) } getRules(config: IBasicDateTimeProps['componentConfig']) { const rules = [] if (config.required) { rules.push({ required: true, validator: (_: any, value: BasicDateTimeValueType) => { if (['DATE', 'DATE_TIME'].includes(config.dateType) && value) { return Promise.resolve() } else if ( ['DATE_RANGE', 'DATE_TIME_RANGE'].includes(config.dateType) && value && value.length && value?.[0] && value?.[1] ) { return Promise.resolve() } return Promise.reject(new Error(`请选择${this.name}`)) } }) } return rules } formDataTransform = (v: BasicDateTimeValueType) => { return v } render() { return } } export default BasicDateTime