import React from 'react';
import {
    DeleteOutlined,
    EditOutlined,
    PlusOutlined,
    SearchOutlined,
    RedoOutlined,
    DownOutlined,
    ExclamationCircleFilled,
    UpOutlined,
    InfoCircleFilled,
    QuestionCircleFilled,
    DownloadOutlined
} from '@ant-design/icons';
import {connect, history} from '@umijs/max';
import {Button, Card, Divider, Dropdown, message, Modal, Popconfirm, Space, Switch, Tag, Row, Col} from 'antd';
import StandardTable from '@/components/StandardTable';
import { MyIcon } from "@/components/Icon"
import style from "@/global.less";
import styles from './SystemOrganizationList.less';
import datadictionary from "@/utils/dataDictionary";
import {formatDate} from "@/utils/formatUtils";
import { formatDictText, checkButtonAuthority } from "@/utils/globalCommon";
const { confirm } = Modal;
// 组织类型
const organization_type = datadictionary.organization_type || [];
const organization_status = datadictionary.organization_status || [];
const mockData = {
    list: [
        {
            id: '1',
            name: '总部',
            code: 'HQ',
            type: '1',
            parentId: '0',
            status: '1',
            createTime: '2023-01-01 10:00:00',
            createUser: 'admin'
        },
        {
            id: '2',
            name: '研发部',
            code: 'R&D',
            type: '2',
            parentId: '1',
            status: '1',
            createTime: '2023-01-02 14:30:00',
            createUser: 'admin'
        },
        {
            id: '3',
            name: '市场部',
            code: 'MKT',
            type: '2',
            parentId: '1',
            status: '1',
            createTime: '2023-01-03 09:15:00',
            createUser: 'admin'
        }
    ],
    pagination: {
        total: 3,
        pageSize: 10,
        current: 1
    }
};
@connect(({ systemOrganization, loading }) => ({
    systemOrganization,
    loading: loading.models.systemOrganization
}))
export default class SystemOrganizationList extends React.Component {
    state = {
        selectedRows: [],
        loading: false,
        advancedFormVisible: false,
        filterData: {},
        pagination: {
            pageSize: 10,
            current: 1
        },
        tableData: mockData.list
    };
    componentDidMount() {
        this.getOrganizationList();
    }
    // 获取组织列表
    getOrganizationList = () => {
        const { dispatch } = this.props;
        const { pagination, filterData } = this.state;
        this.setState({ loading: true });
        dispatch({
            type: 'systemOrganization/fetchList',
            payload: {
                pageNum: pagination.current,
                pageSize: pagination.pageSize,
                ...filterData
            },
            callback: (res) => {
                this.setState({ 
                    loading: false,
                    tableData: res?.list || [],
                    pagination: {
                        ...pagination,
                        total: res?.total || 0
                    }
                });
            }
        });
    };
    // 表格选择变化
    handleSelectChange = (selectedRowKeys, selectedRows) => {
        this.setState({ selectedRows });
    };
    // 分页变化
    handleTableChange = (pagination) => {
        this.setState({
            pagination: {
                ...this.state.pagination,
                current: pagination.current
            }
        }, () => {
            this.getOrganizationList();
        });
    };
    // 新增组织
    handleAdd = () => {
        // 新增逻辑
        message.success('新增组织功能');
    };
    // 编辑组织
    handleEdit = (record) => {
        // 编辑逻辑
        message.success('编辑组织功能');
    };
    // 删除组织
    handleDelete = (record) => {
        confirm({
            title: '确定要删除这个组织吗?',
            icon: