import React from 'react';
import { getControl } from 'zorod/components/Zform/controls';
import { ZsearchListHOC } from 'zorod';
import api from '@/Api';
import { EcDataSource, EcDataSourceAdd } from 'zorod-yc-dpweb-plugins';
import myColumns from './columns'
export default ZsearchListHOC({
    pageHeader: { show: true },
    pageFooter: { show: false },
    searchForm: {
        defaultExpanded: true,
        momentFormat: true,
        defaultSpan: { xxl: 4, xl: 6, lg: 8, md: 12, sm: 24 },
        items: [
            {
                key: 'department',
                label: '部门',
                render: (form) => {
                    const selectList = form.saveFieldOptions ? form.saveFieldOptions['department'] : null;
                    if (selectList) {
                        return getControl('Select', {
                            selectList,
                        });
                    }
                    //异步请求下拉选项
                    return api.system.getDepartments().then((res) => {
                        const selectList = res.data;
                        //将请求成功的数据保存在 form.saveFieldOptions['department']
                        form.saveFieldOptions && (form.saveFieldOptions['department'] = selectList);
                        return getControl('Select', {
                            selectList,
                        });
                    });
                },
            },
        ],
    },
    list: {
        listType: 'table',
        panelHeader: '列表',
        tableColumns: myColumns,
        showAddBtn: true,
        addPageRender(tool) {
            return <EcDataSourceAdd/>;
        },
        showDetailBtn: true,
        detailPageRender(record, tool) {
            alter(123)
            // return <div>详情页面</div>;
            return false;
        },

        showUpdateBtn: true,
        updatePageRender(record, tool) {
            return <EcDataSource/>;
        },

        showDeleteBtn: true,
        //删除按钮触发的接口函数，其必须内部返回Promise
        // deleteApiInterface:(data,tool)=>{
        //    return  Promise
        // },
        moreBtnMap: false,
        // 获取列表数据的后台接口函数，其必须内部返回Promise
        listApiInterface: (query) => {
            const { currPage, pageSize, ...others } = query;
            // return api.system.getDataPool({
            //     pageNo: currPage,
            //     pageSize,
            //     queryMap: { ...others },
            // }); //处理字段名
            return Promise.resolve({
                data:[{
                    tableName:"表1",
                    tableType:"文件"
                },{
                    tableName:"表2",
                    tableType:"数据库"
                },{
                    tableName:"表3",
                    tableType:"其他"
                }]
            })
        },
    },
});
