import React, { useState , useEffect } from 'react';
import { Form, Select, Button, message } from 'antd';
import DynamicForm from './DynamicForm'

const { Option } = Select;

const PlanningCycle = ({ value = {}, onChange }) => {
    const cycleList = [
        { title: '年', key: 1 },
        { title: '月', key: 2 },
        { title: '周', key: 3 },
        { title: '日', key: 4 },
        { title: '策略触发', key: 5 },
    ]
    const [cycle, setCycle] = useState(2);
    const [date, setDate] = useState([]);
    const [visible, setVisible] = useState(false)

    const triggerChange = (changedValue) => {
        onChange?.({
            cycle,
            ...changedValue
        });
    };

    const onCycleChange = (values) => {
        setDate([])
        if (values) {
            setCycle(values);
        }else{
            setCycle(2);
        }

        triggerChange({
            cycle: values,
            date
        });
    };

    const onDateChange = (values) => {
        if (values) {
            setDate(values);
        }else{
            setDate();
        }

        triggerChange({
            date: values,
        });
    };
    const cycleTypeAction = () => {
        if(value?.cycle === 1 || value?.cycle === 2 || value?.cycle === 3 || value?.cycle === 4){
            setVisible(true)
        }else{
            message.warn('只有类型为年月周日的才可选择!')
        }
    }
    useEffect(() => {
        setCycle(value.cycle)
    }, [value.cycle])
    console.log(value)
    return (
        <div style={{ display: 'flex', alignItems: 'center' }}>
            <span>每</span>
            <Select
                value={value.cycle}
                placeholder="请选择"
                allowClear
                style={{
                    width: 80,
                    margin: '0 8px',
                }}
                onChange={onCycleChange}
            >
                {
                    cycleList?.length > 0 && cycleList.map(item => (<Option value={item?.key} key={item?.key}>{item?.title}</Option>))
                }
            </Select>
            {
                (value?.date && value?.date?.length > 0 ) ? (<div onClick={cycleTypeAction} className="ellipsis_list" style={{cursor: 'pointer'}}>
                {
                    value?.date?.map((item , index)=>(
                        <span key={index} style={{marginRight: 5}}>{`${item?.executiveDate || ''} ${item?.startTime || ''}-${item?.executiveDate || ''} ${item?.endTime || ''},`}</span>
                    ))
                }
            </div>) : (
                <Button onClick={cycleTypeAction} style={{flex: 1}} type="link">请选择</Button>
            )
            }
            <DynamicForm visible={visible} setVisible={setVisible} cycle={value?.cycle} onDateChange={onDateChange} date={value?.date} />
        </div>
    );
}

export default PlanningCycle;