import React, { useState, useEffect } from 'react';
import { Form, Select, Modal, Button, Table, Divider, Tag, Input } from 'antd';
import { apis, fetch } from '../../utils/request';
import Navigate from '@/components/Navigate';

const getList = fetch(apis.announcement.listAnnouncement)
const { Search } = Input;

export default (props) => {
  const {
    value,
    onChange,
    ...rest
  } = props;

  const [list, setList] = useState([]);
  const [visible, setVisible] = useState(false);
  const [activity, setActivity] = useState({ id: undefined, announcementTitle: '请选择公告' })
  const getActTitle = val => ((list.filter(x => x.id === val)[0]) || {}).announcementTitle || '请选择公告'
  const setAct = val => setActivity({ id: val, announcementTitle: getActTitle(val) })

  const buildingId = props.buildingId()

  useEffect(() => {
    getList({
      data: {
        pageNum: 1,
        pageSize: 999,
        announcementTitle: '',
      }
    }).then((data) => {
      setList(data.list || [])

      console.log('----', buildingId, value)

      setAct(buildingId ? undefined : value);
    })
  }, [buildingId]);

  if (value !== activity.id) {
    setAct(value);
  }
  const searchActivity =(e)=>{
    getList({
      data: {
        pageNum: 1,
        pageSize: 999,
        announcementTitle:e
      }
    }).then((data) => {
      setList(data.list || [])

      console.log('----', buildingId, value)

      // setAct(buildingId ? undefined : value);
    })
  }

  let chooseVal = value

  const handleChange = val => chooseVal = val

  const setData = val => {
    setAct(val)
    onChange(val)
    setVisible(false)
  }

  const columns = [
    {
      title: '标题',
      dataIndex: 'announcementTitle',
      key: 'id',
      align: 'center',
      ellipsis: true,
      render: text => <a>{text}</a>,
    },
    {
      title: '操作',
      dataIndex: 'name',
      align: 'center',
      width: '20%',
      render: (text, record) => (
        <Navigate onClick={() => setData(record.id)}>选择</Navigate>
      ),
    },
  ];

  return (

    <div>
      <div ><Navigate onClick={() => setVisible(true)}>{activity.announcementTitle}</Navigate></div>
      <Modal
        title="请选择"
        visible={visible}
        onCancel={() => setVisible(false)}
        footer={[]}
      >
        <Search
          placeholder="请输入标题"
          enterButton="搜索"
          size="large"
          onSearch={value => searchActivity(value)}
          style={{ marginBottom: '16px' }}
        />
        <Table rowKey={list => list.id} columns={columns} dataSource={list} />
      </Modal>
    </div>

  );
}
