class 卫腾达例子 new hooks

复制代码
import React, { useState, useCallback, useEffect, useLayoutEffect } from 'react'
import { Checkbox, DatePicker, Tabs, Table, Select } from "antd";
import moment from 'moment';
import locale from "antd/es/date-picker/locale/zh_CN";
import Title from '../../components/Title'
import TableList from '../../components/TableList';
import CheckedList from "../../components/CheckedList";

import XLSX from 'xlsx'
import { SearchOutlined } from '@ant-design/icons';


import MyReport from './MyReport';
import VisualReport from './visual_report/VisualReport';
import VisualReportForBu from './visual_report/BuVisualReport';

import AlertUtil from "../../utils/AlertUtil";
import ApiUtils from '../../utils/ApiUtils';
import Utils from '../../utils/Utils';
import PageNav from "../navigation/PageNav";
import History from "../historical_changes/Historicalchanges";
import FileUpload from '../../components/FileUpload';
const CheckboxGroup = Checkbox.Group;
const columns = [
    { title: '指标编码', sort: 'indexCode', key: 'indexCode' },
    { title: '指标名称', sort: 'indexName', key: 'indexName' },
    { title: '指标主题', sort: 'indexTheme', key: 'indexTheme' },
    { title: '指标类型', sort: 'indexType', key: 'indexType' },
    { title: '计量单位', sort: 'unit', key: 'unit' },
    // { title: '指标口径', sort: 'caliber', key: 'caliber'},
    // { title: '规口管理部门', sort: 'centralizedManagement', key: 'centralizedManagement'},
    // { title: '统计频率', sort: 'statisticalFrequency', key: 'statisticalFrequency'},
    // { title: '统计时间', sort: 'statisticalTime', key: 'statisticalTime'},
    // { title: '数据来源', sort: 'dataSources', key: 'dataSources'},
    // { title: '指标状态', sort: 'indexState', key: 'indexState'},
    // { title: '是否PKI', sort: 'isKpi', key: 'isKpi'},
    { title: '操作历史', sort: 'viewhis', key: 'viewhis' },
    // {
    //   title: 'Action',
    //   dataIndex: '',
    //   key: 'x',
    //   render: () => <a>Delete</a>,
    //   width:'150rem'
    // },
];

const datasource = [
    {
        key: 1,
        name: 'John Brown',
        age: 32,
        address: 'New York No. 1 Lake Park',
        description: 'My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park.',
    },
    {
        key: 2,
        name: 'Jim Green',
        age: 42,
        address: 'London No. 1 Lake Park',
        description: 'My name is Jim Green, I am 42 years old, living in London No. 1 Lake Park.',
    },
    {
        key: 3,
        name: 'Not Expandable',
        age: 29,
        address: 'Jiangsu No. 1 Lake Park',
        description: 'This not expandable',
    },
    {
        key: 4,
        name: 'Joe Black',
        age: 32,
        address: 'Sidney No. 1 Lake Park',
        description: 'My name is Joe Black, I am 32 years old, living in Sidney No. 1 Lake Park.',
    },
];

export default function ReportManagement(props: any) {

    useEffect(() => {
        localStorageUpdated()
        GetReportInit();
        getBU()
        search_click(null)
        props.history.location.state&&props.history.location.state.option&&setOpenStates(props.history.location.state.option)
    }, []);

    const localStorageUpdated = () => {
        var _this = localStorage.getItem("localstorage-status")
        _this == "false" ? setFontColor("#302F2C") : setFontColor('rgb(244 76 76)')
        window.addEventListener("setItemEvent", (e: any) => {
            if (e.key == 'localstorage-status') {
                var _this = localStorage.getItem("localstorage-status")
                console.log(e.newValue)
                e.newValue == "false" ? setFontColor("#302F2C") : setFontColor('rgb(244 76 76)')
            }
        });
    }
    /* --- 数据 ----*/
    const [rendreport, setRendreport] = useState<any>(0);
    const [tabledata, setTabledata] = useState<any>([]);
    const [tablecolumns, setTablecolumns] = useState<any>(columns)
    const [condtiontime, setCondtiontime] = useState<any>({ stime: '', etime: '' });
    const [tasktype, setTasktype] = useState<any>({
        核保: false, 理赔: false, 保全: false, 通用: false,
    });
    const [CollectList, setCollectList] = useState<any>()
    const [extract, setExtract] = useState<any>({
        "rid": "",
        "reportCode": "",
        reportModule: null,
        "reportStatus": "",
        "reportName": "",
        "reportTheme": "",
        "reportPurpose": "",
        "keyIndicators": "",
        "reportRange": "",
        "presentationDimension": "",
        "reportType": "",
        "centralizedManagement": "",
        "userDepartment": "",
        "usageFrequency": "",
        "originalReport": "",
        "userId": "",
        starttime: '',
        endtime: '',
        SSO: null,
        BU: null,
        CITY: null,
    });
    const [checkedList, setCheckedList] = useState<any>({
        SSO: ["S-SSO", "N-SSO"],
        BU: [],
        CITY: [],
    })
    const [viewHistory, setViewHistory] = useState<any>({
        tunon: false,
        rootId: ''
    });
    //search 的条件
    const [queryCondtion, setQueryCondtion] = useState<any>(
        {
            rid: "",
            reportCode: "",
            reportModule: "",
            reportStatus: "",
            reportName: "",
            reportTheme: "",
            reportPurpose: "",
            keyIndicators: "",
            reportRange: "",
            presentationDimension: "",
            reportType: null,
            centralizedManagement: null,
            userDepartment: null,
            usageFrequency: "",
            originalReport: "",
            userId: "",
            sso: '',
            bu: '',
            city: ''
        }
    );
    //信息和修改的载体
    const [editCondtion, setEditCondtion] = useState<any>(
        {
            rid: "",
            reportCode: "",
            reportModule: "",
            reportStatus: "",
            reportName: "",
            reportTheme: "",
            reportPurpose: "",
            keyIndicators: "",
            reportRange: "",
            presentationDimension: "",
            reportType: null,
            centralizedManagement: null,
            userDepartment: null,
            usageFrequency: null,
            originalReport: "",
            userId: "",
            belongingDepartment: "",
            sso: '',
            bu: '',
            city: ''
        }
    );
    const [quotaConfig, setQuotaConfig] = useState<any>();
    const [authlist, setAuthlist] = useState<any>()
    const [open, setOpen] = useState<any>(props.history.location.state ? true : false)
    const [openStates, setOpenStates] = useState<any>("UNI")
    const [xFontColor, setFontColor] = useState<any>("#000")

    const { Option } = Select;
    const { TabPane } = Tabs;
    const { RangePicker } = DatePicker;
    //多选框状态
    const [checked, setChecked] = useState<any>({
        reportModule: false,
        centralizedManagement: false,
        userDepartment: false,
        edit_userDepartment: false,
        usageFrequency: false,
        extract_reportModule: false,
        extract_SSO: false,
        extract_BU: false,
        extract_CITY: false

    })
    // 复选框下拉框初始化数据
    const GetReportInit = () => {
        ApiUtils.ReportInit().then((res: any) => {
            if (res && res.code == 0) {
                setQuotaConfig(res.data.data)
            } else {
                AlertUtil.warningMsg(res.msg)
            }
        })
    }

    //BU
    const getBU = () => {
        ApiUtils.getBuByOrg().then((res: any) => {

            res && setCheckedList({
                ...checkedList,
                BU: res.data,

            })
        })

        console.log(checkedList)

    }
    //CITY
    const getCITY = (data: any) => {
        let jsonDate = data != null ? data.join(',') : ''
        ApiUtils.getCityByBu(jsonDate).then((res: any) => {
            res && setCheckedList({
                ...checkedList,
                CITY: res.data,


            })
        })



    }

    /* --- 方法----*/
    const table_rowclick = (rowitem: any) => {
        // console.log(rowitem,e,"sso2-quota")
        // if(!e.target.matches('span')){
        setRendreport(1)

        if (rowitem != '') {

            setEditCondtion({
                rid: rowitem.rid,
                reportCode: rowitem.reportCode,
                reportModule: rowitem.reportModule,
                reportName: rowitem.reportName,
                reportStatus: rowitem.reportStatus,
                reportPurpose: rowitem.reportPurpose,
                keyIndicators: rowitem.keyIndicators,
                reportRange: rowitem.reportRange,
                presentationDimension: rowitem.presentationDimension,
                reportType: rowitem.reportType,
                caliber: rowitem.caliber,
                centralizedManagement: rowitem.centralizedManagement,
                userDepartment: rowitem.userDepartment ? rowitem.userDepartment.split(',') : rowitem.userDepartment,
                usageFrequency: rowitem.usageFrequency ? rowitem.usageFrequency.split('/') : rowitem.usageFrequency,
                originalReport: rowitem.originalReport,
                userId: rowitem.userId,
                belongingDepartment: rowitem.belongingDepartment
            })
        }
    }

    const RowDoubleClick = (record: any) => {
        table_rowclick(record)
    }

    const TableRowClick = () => {
        let RowElement: any = document.getElementsByClassName('table_container')
        if (RowElement.length) {
            console.log(RowElement[0].children, "sso2-rep")
        }
    }

    const search_click = async (type: any) => {
        let search_condtion: any
        if (type === 'page') {
            //页面条件
            search_condtion = {
                reportCode: queryCondtion.reportCode,
                reportName: queryCondtion.reportName,
                reportTheme: queryCondtion.indexTheme,
                centralizedManagement: queryCondtion.centralizedManagement != null ? queryCondtion.centralizedManagement.join(',') : '',
                userDepartment: queryCondtion.userDepartment != null ? queryCondtion.userDepartment.join(',') : '',
                // reportModule: Object.entries(tasktype).filter((el: any) => el[1] == true).map((el: any) => el[0]).join(','),
                reportModule: queryCondtion.reportModule  ? queryCondtion.reportModule.join(',') : '',
                userId: ApiUtils.userInfo.userId
            }
        } else {
            search_condtion = {
                reportCode: '',
                reportName: '',
                reportTheme: '',
                centralizedManagement: '',
                userDepartment: '',
                reportModule: '',
                userId: ApiUtils.userInfo.userId
            }
        }

        // if (type == "4") {
        //     await ApiUtils.CollectList(ApiUtils.userInfo.userId).then((res: any) => {
        //         if (res && res.code == 0) {
        //             setCollectList(res.data)
        //         }
        //     })
        // }

            await ApiUtils.GetReportList(search_condtion).then((res: any) => {
                if (res && res.code == 0) {
                    // console.log(res,"sso2-quota")
                    //format thead
                    let arr: any = []
                    let column: any
                    let attributeName: any
                    let columnrow = {
                        "reportCode": queryCondtion.reportCode,
                        "reportName": queryCondtion.reportName,
                        // "indexTheme": queryCondtion.reportName,
                        "reportPurpose": queryCondtion.reportPurpose,
                        "reportModule": queryCondtion.reportModule,
                        "reportStatus": queryCondtion.reportStatus,
                        "reportType": queryCondtion.reportType,
                        "centralizedManagement": queryCondtion.centralizedManagement,
                    }

                    Object.keys(columnrow).map((el: any) => {
                        // console.log(el,"sso2-dic")
                        switch (el) {
                            case 'reportCode':
                                attributeName = '报表编码'
                                break;
                            case 'reportName':
                                attributeName = '报表名称'
                                break;
                            case 'reportModule':
                                attributeName = '任务类型'
                                break;
                            case 'reportStatus':
                                attributeName = '报表状态'
                                break;
                            case 'reportPurpose':
                                attributeName = '报表用途概述'
                                break;
                            case 'keyIndicators':
                                attributeName = '所含关键指标'
                                break;
                            case 'reportRange':
                                attributeName = '报表范围框定条件'
                                break;
                            case 'presentationDimension':
                                attributeName = '报表数据列示维度'
                                break;
                            case 'reportType':
                                attributeName = '报表类型'
                                break;
                            // case 'caliber':
                            //     attributeName='报表口径'
                            //     break;
                            case 'centralizedManagement':
                                attributeName = '归口管理部门'
                                break
                            case 'userDepartment':
                                attributeName = '报表使用部门'
                                break
                            case 'usageFrequency':
                                attributeName = '报表使用频率'
                                break
                            case 'originalReport':
                                attributeName = '原报表名称'
                                break
                            case 'userId':
                                attributeName = '用户id'
                                break
                            case 'belongingDepartment':
                                attributeName = '报表所在系统'
                                break
                        }


                        if (attributeName == '报表名称' || attributeName == '报表用途概述') {
                            arr.push({
                                "title": attributeName,
                                "sort": el,
                                "width": "250",
                                "align": "center"
                            })
                        } else if(attributeName=="报表编码"){
                            arr.push({
                                "title": attributeName,
                                "sort": el,
                                "width": "156",
                                "align": "center"
                            })
                        }else{
                            arr.push({
                                "title": attributeName,
                                "sort": el,
                                "width": "100",
                                "align": "center"
                            })
                        }
                    })
                    setTablecolumns([...arr, { title: '操作', sort: 'viewhis', "width": "250", key: 'viewhis' },])
                    setTabledata(res.data.map((item: any) => {
                        item = {
                            "reportCode": item.reportCode,
                            "rid": item.rid,
                            // "taskType": queryCondtion.taskType,
                            "reportName": item.reportName,
                            // "indexCategory": queryCondtion.indexCategory,
                            // "indexSubclass": queryCondtion.indexSubclass,
                            "indexTheme": item.reportName,
                            // "indexDefinition": queryCondtion.indexDefinition,
                            // "formula": queryCondtion.formula,
                            "reportPurpose": item.reportPurpose,
                            "reportModule": item.reportModule,
                            "reportStatus": item.reportStatus,
                            "keyIndicators": item.keyIndicators,
                            "reportRange": item.reportRange,
                            "presentationDimension": item.presentationDimension,
                            "reportType": item.reportType,
                            "centralizedManagement": item.centralizedManagement,
                            "userDepartment": item.userDepartment,
                            "usageFrequency": item.usageFrequency,
                            "originalReport": item.originalReport,
                            "userId": item.userId,
                            belongingDepartment: item.belongingDepartment,
                            "viewhis": [<a title='查看操作历史' key={'history' + item.rid} onClick={() => setViewHistory({ tunon: true, rootId: item.rid })}>操作历史</a>, <a key={'extract' + item.rid} title='抽取' onClick={() => extractRow(item)}>抽取</a>, <a title='报表修改' key={'modfly' + item.rid} onClick={() => modfly(item)}>修改</a>]
                        }
                        return item
                    }))
                }
            })
        }

    const search_tasktype = (type: any, value: any, e: any) => {
        console.log(type, value, e.target, "sso2-dic")
        setTasktype({
            ...tasktype,
            [type]: value
        })
    }

    const clear_click = () => {
        setQueryCondtion({
            "rid": null,
            "reportCode": '',
            "reportModule": null,
            "reportStatus": null,
            "reportName": '',
            "reportTheme": null,
            "reportPurpose": null,
            "keyIndicators": null,
            "reportRange": null,
            "presentationDimension": null,
            "reportType": null,
            "centralizedManagement": null,
            "userDepartment": null,
            "usageFrequency": null,
            "originalReport": null,
            "userId": null,
        })
        setTasktype({
            核保: false, 理赔: false, 保全: false, 通用: false,
        })

    }

    const clear_extract = () => {
        setExtract({
            "rid": null,
            "reportCode": null,
            "reportModule": '',
            "reportStatus": null,
            "reportName": null,
            "reportTheme": null,
            "reportPurpose": null,
            "keyIndicators": null,
            "reportRange": null,
            "presentationDimension": null,
            "reportType": null,
            "centralizedManagement": null,
            "userDepartment": null,
            "usageFrequency": null,
            "originalReport": null,
            "userId": null,
            model: '',
            starttime: null,
            endtime: null,
            SSO: null,
            BU: null,
            CITY: null,
        })
        setCondtiontime({ ...condtiontime, stime: '', etime: '' })
        // setCheckedList({ SSO: [], BU: [], CITY: [] })
    }

    const checkbox_click = (quota: any, value: any) => {
        setEditCondtion({
            ...editCondtion,
            [quota]: value,
        })
    }
    const checkbox_click_select = (value: any, quota: any) => {

        setEditCondtion({
            ...editCondtion,
            [quota]: value,
        })
    }
    const checkbox_click_search = (quota: any, value: any) => {
        setQueryCondtion({
            ...queryCondtion,
            [quota]: value,
        })
    }

    //时间组件触发函数
    const EnddisabledDate = (current: any) => {

        return current && current < moment(`${JSON.stringify(condtiontime.stime)}}`, 'YYYY-MM-DD')
    }
    const StartdisabledDate = (current: any) => {

        return current && current > moment(`${JSON.stringify(condtiontime.etime)}}`, 'YYYY-MM-DD')
    }
    const cstime = (value: any, dateString: any) => {
        setCondtiontime({ ...condtiontime, stime: dateString })
        console.log(dateString, condtiontime, "sso2-report")
    }
    const cetime = (value: any, dateString: any) => {
        setCondtiontime({ ...condtiontime, etime: dateString })
        console.log(dateString, condtiontime, "sso2-report")
    }

    const modfily_comit = async () => {

        let reqlist = {
            "rid": editCondtion.rid,
            "reportCode": editCondtion.reportCode ? editCondtion.reportCode : (AlertUtil.errorMsg('编码不能为空'), null),
            "reportModule": editCondtion.reportModule,//
            "reportStatus": editCondtion.reportStatus ? editCondtion.reportStatus : (AlertUtil.errorMsg('报表状态不能为空'), null),
            "reportName": editCondtion.reportName ? editCondtion.reportName : (AlertUtil.errorMsg('报表名称不能为空'), null),
            "reportTheme": editCondtion.reportTheme,
            "reportPurpose": !editCondtion.reportPurpose ? (AlertUtil.errorMsg('报表用途概述不能为空')) : editCondtion.reportPurpose.length > 60 ? (AlertUtil.errorMsg('报表用途概述长度超过“60个字符!”'), null) : editCondtion.reportPurpose,
            "keyIndicators": editCondtion.keyIndicators ? editCondtion.keyIndicators : (AlertUtil.errorMsg('所含关键指标不能为空'), null),
            "reportRange": editCondtion.reportRange ? editCondtion.reportRange : (AlertUtil.errorMsg('报表范围框定条件不能为空'), null),
            "presentationDimension": editCondtion.presentationDimension,
            "reportType": editCondtion.reportType ? editCondtion.reportType : (AlertUtil.errorMsg('报表类型不能为空'), null),
            "centralizedManagement": editCondtion.centralizedManagement ? editCondtion.centralizedManagement : (AlertUtil.errorMsg('归口管理部门不能为空'), null),
            "userDepartment": editCondtion.userDepartment != null ? editCondtion.userDepartment.join(',') : (AlertUtil.errorMsg('报表使用部门不能为空'), null),
            "usageFrequency": editCondtion.usageFrequency != null ? editCondtion.usageFrequency.join(',') : (AlertUtil.errorMsg('报表使用频率不能为空'), null),
            "originalReport": editCondtion.originalReport,
            "userId": ApiUtils.userInfo.userId,
            belongingDepartment: !editCondtion.belongingDepartment ? (AlertUtil.errorMsg('报表所在系统不能为空')) : editCondtion.belongingDepartment.length > 100 ? (AlertUtil.errorMsg('报表所在系统长度超过“100个字符!”'), null) : editCondtion.belongingDepartment,
            sso: '',
            bu: '',
            city: ''
        }
        if (!reqlist.reportCode || !reqlist.reportName || !reqlist.centralizedManagement || !reqlist.reportType || !reqlist.reportStatus || !reqlist.userDepartment || !reqlist.usageFrequency || !reqlist.belongingDepartment || !reqlist.reportPurpose || !reqlist.keyIndicators || !reqlist.reportRange) {
            return
        }
        await ApiUtils.UpdateReport(reqlist).then((res: any) => {
            if (res && res.code == 0) {
                AlertUtil.showMsg('修改成功!')
            } else {
                AlertUtil.warningMsg(res.msg)
            }
        })


        search_click(null)

        setRendreport(2)
    }

    const modfly = (rowitem: any) => {
        console.log(rowitem)
        ApiUtils.isPurview("F1501") ? setRendreport(2) : AlertUtil.errorMsg('您没报表修改权限!')
        if (rowitem != '') {
            setEditCondtion({


                rid: rowitem.rid,
                reportCode: rowitem.reportCode,
                reportModule: rowitem.reportModule,
                reportStatus: rowitem.reportStatus,
                reportName: rowitem.reportName,
                reportPurpose: rowitem.reportPurpose,
                keyIndicators: rowitem.keyIndicators,
                reportRange: rowitem.reportRange,
                presentationDimension: rowitem.presentationDimension,
                reportType: rowitem.reportType,
                centralizedManagement: rowitem.centralizedManagement,
                userDepartment: rowitem.userDepartment ? rowitem.userDepartment.split('/') : rowitem.userDepartment,
                usageFrequency: rowitem.usageFrequency ? rowitem.usageFrequency.split('/') : rowitem.usageFrequency,
                originalReport: rowitem.originalReport,
                userId: ApiUtils.userInfo.userId,
                belongingDepartment: rowitem.belongingDepartment
            })
        }


    }

    const scribeReport = () => {
        let userid = ApiUtils.userInfo.userId
        ApiUtils.CollectReport(editCondtion.rid, ApiUtils.userInfo.userId).then((res: any) => {
            if (res && res.code == 0) {
                AlertUtil.showMsg('收藏成功!')
            } else {
                AlertUtil.showMsg(res.msg)
            }
        })

        ApiUtils.CollectList(ApiUtils.userInfo.userId).then((res: any) => {
            if (res && res.code == 0) {
                setCollectList(res.data)
            }
        })

        search_click(null)

    }

    const Extract = (item: any) => {

    }



    const BuildReport = () => {
        let reqlist = {
            reportCode: extract.reportCode,
            reportModule: extract.reportModule ? extract.reportModule.join(',') : '',
            frequency: extract.frequency,
            startDate: condtiontime.stime,
            endDate: condtiontime.etime,
            zoneflg: extract.SSO ? extract.SSO.join(',') : '',
            model: extract.model,
            bu: extract.BU ? extract.BU.join(',') : '',
            city: extract.CITY ? extract.CITY.join(',') : '',
            name: extract.name
            // frequency    适用频率        false
            // startDate    起始时间        false
            // endDate    终止时间        false
            // zoneflg    SSO        false
            // model    任务类型        false
            // bu
            // city
        }
        if (reqlist.startDate == '') {
            AlertUtil.showMsg('请先选择起始日期!')
        } else if (reqlist.endDate == '') {
            AlertUtil.showMsg('请先选择终止日期!')
        } else if (reqlist.model == '') {
            AlertUtil.showMsg('请先选择任务类型!')
        }
        // else if (reqlist.zoneflg == '') {
        //     AlertUtil.showMsg('请先选择SS0!')
        // } else if (reqlist.bu == '') {
        //     AlertUtil.showMsg('请先选择BU!')
        // } else if (reqlist.city == '') {
        //     AlertUtil.showMsg('请先选择CITY!')
        // } 
        else {
            ApiUtils.ExtractReport(reqlist)
        }
    }

    //Excel导出
    const onExportExcel = (file: any) => {

        let workbook: any = {
            SheetNames: [],
            Sheets: {}
        };

        if (tabledata != undefined && tabledata.length) {
            let ws = XLSX.utils.json_to_sheet([...tabledata]);
            let wb = XLSX.utils.book_new()
            XLSX.utils.book_append_sheet(wb, ws, '指标查询') // 工作簿名称
            XLSX.writeFile(wb, '.\指标查询.xlsx') // 保存的文件名
        } else {
            AlertUtil.errorMsg('当前无表格数据!')
        }

        // ApiUtils.downloadFile(`/index/manage/getTemplate`, null, '参数导入模板.xlsx')

    }

    const extractRow = (itemrow: any) => {
        let authlist = ApiUtils.userInfo
        let coecode = ['002', '00200', '00201', '00202', '003', '004', '005', '006', '00600', '0060000', '00602', '0060200']
        console.log(authlist, "sso2-report")
        // if (authlist.orgCategory == 'CHO' || coecode.includes(authlist.orgCode) && itemrow.userDepartment.includes('SSO' || 'BU') || authlist.orgCategory == 'BU') {
        setRendreport(3)
        setExtract({


            "reportCode": itemrow.reportCode,
            "reportModule":itemrow.reportModule? itemrow.reportModule.split(','):null,
            "frequency": itemrow.usageFrequency,
            "startDate": condtiontime.stime,
            "endDate": condtiontime.etime,
            SSO: null,
            "model": itemrow.reportType,
            BU: null,
            CITY: null,
            name: itemrow.reportName
        })
        // }
        // else {
        //     AlertUtil.errorMsg('您无权抽取该报表!')
        // }
    }

    const render_report = () => {
        // if (ApiUtils.isPurview("F1500") && rendreport == 1 || ApiUtils.isPurview("F1501") && rendreport == 2){
        if (rendreport == 1 || rendreport == 2) {
            return <div className='base_report'>
                <div className='report_basic'>
                    <div className='lab_sp'>
                        <div className='search_resul_rectangle'></div>
                        <span>报表基本信息</span>
                    </div>
                    <div className="close" onClick={() => setRendreport(0)}>
                        <span></span>
                        <img src={(window.rootUrl + "/images/deletebtn.svg")} alt="" />
                    </div>
                    <div className='report_basic_line1'>
                        <div >
                            <span>编码</span>
                            {
                                rendreport == 1 &&
                                <input className="disable" value={editCondtion.reportCode} disabled />
                            }
                            {
                                rendreport == 2 &&
                                <input className="disable" type="text" value={editCondtion.reportCode} onChange={(e: any) => checkbox_click('reportCode', e.target.value)} disabled />
                            }
                        </div>
                        <div >
                            <span>报表名称</span>
                            {
                                rendreport == 1 &&
                                <Select defaultValue={editCondtion.reportName} className="disable" allowClear disabled>
                                    {quotaConfig.reportName.map((item: any, index: any) => {
                                        return <Option key={`reportName${index}`} value={item}>{item}</Option>

                                    })}
                                </Select>
                            }
                            {
                                rendreport == 2 &&
                                <Select defaultValue={editCondtion.reportName} style={{ background: '#f8f8f8' }} onChange={(e: any) => checkbox_click_select(e, 'reportName')} allowClear >
                                    {quotaConfig.reportName.map((item: any, index: any) => {
                                        return <Option key={`reportName${index}`} value={item}>{item}</Option>

                                    })}
                                </Select>
                                // <input type="text" value={editCondtion.reportName} onChange={(e: any) => checkbox_click('reportName', e.target.value)} />
                            }
                        </div>
                        {/* <div >
                            <span>报表主题</span>
                            {
                                rendreport == 1 &&
                                <input type="text" style={{ background: '#f8f8f8' }} value={editCondtion.reportName} disabled />
                            }
                            {
                                rendreport == 2 &&
                                <input type="text" value={editCondtion.reportName} onChange={(e: any) => checkbox_click('reportName', e.target.value)} />
                            }

                        </div> */}
                        <div >
                            <span>报表状态</span>
                            {
                                rendreport == 1 &&
                                <Select defaultValue={editCondtion.reportStatus} className="disable" allowClear disabled>
                                    {quotaConfig.reportStatus.map((item: any, index: any) => {
                                        return <Option key={`reportStatus${index}`} value={item}>{item}</Option>

                                    })}
                                </Select>
                            }
                            {
                                rendreport == 2 &&
                                <Select defaultValue={editCondtion.reportStatus} style={{ background: '#f8f8f8' }} onChange={(e: any) => checkbox_click_select(e, 'reportStatus')} allowClear>
                                    {quotaConfig.reportStatus.map((item: any, index: any) => {
                                        return <Option key={`reportStatus${index}`} value={item}>{item}</Option>

                                    })}
                                </Select>
                            }
                        </div>
                    </div>
                    <div className='report_basic_line2'>
                        <div >
                            <span>报表类型</span>
                            {
                                rendreport == 1 &&
                                <Select defaultValue={editCondtion.reportType} className="disable" allowClear disabled>
                                    {quotaConfig.reportType.map((item: any, index: any) => {
                                        return <Option key={`reportType${index}`} value={item}>{item}</Option>

                                    })}
                                </Select>
                                // <input type="text" style={{ background: '#f8f8f8' }} value={editCondtion.reportType} disabled />
                            }
                            {
                                rendreport == 2 &&
                                <Select defaultValue={editCondtion.reportType} style={{ background: '#f8f8f8' }} onChange={(e: any) => checkbox_click_select(e, 'reportType')} allowClear>
                                    {quotaConfig.reportType.map((item: any, index: any) => {
                                        return <Option key={`reportType${index}`} value={item}>{item}</Option>

                                    })}
                                </Select>
                                // <input type="text" value={editCondtion.reportType} onChange={(e: any) => checkbox_click('reportType', e.target.value)} />
                            }

                        </div>
                        <div >
                            <span>归口管理部门</span>
                            {
                                rendreport == 1 &&
                                <Select defaultValue={editCondtion.centralizedManagement} className="disable" disabled allowClear>
                                    {quotaConfig.centralizedManagement.map((item: any, index: any) => {
                                        return <Option key={`centralizedManagement${index}`} value={item}>{item}</Option>

                                    })}
                                </Select>
                                // <input type="text" style={{ background: '#f8f8f8' }} value={editCondtion.centralizedManagement} disabled />
                            }
                            {
                                rendreport == 2 &&
                                <Select defaultValue={editCondtion.centralizedManagement} style={{ background: '#f8f8f8' }} onChange={(e: any) => checkbox_click_select(e, 'centralizedManagement')} allowClear>
                                    {quotaConfig.centralizedManagement.map((item: any, index: any) => {
                                        return <Option key={`centralizedManagement${index}`} value={item}>{item}</Option>

                                    })}
                                </Select>
                                // <input type="text" value={editCondtion.centralizedManagement} onChange={(e: any) => checkbox_click('centralizedManagement', e.target.value)} />
                            }

                        </div>
                        <div>
                            <span>报表使用部门:</span>
                            {
                                rendreport == 1 &&
                                <div className='DivInput disable'>
                                    {
                                        editCondtion.userDepartment ? (editCondtion.userDepartment.length <= 2 ? editCondtion.userDepartment.map((value: React.ReactNode, index: string | number | undefined) => {
                                            return <p key={index}>{value}</p>
                                        }) :
                                            <Title data={editCondtion.userDepartment} shu={2} />

                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                    }
                                    <SearchOutlined className='svg' />
                                </div>
                            }
                            {
                                rendreport == 2 &&
                                <div className='DivInput'>
                                    {
                                        editCondtion.userDepartment ? (editCondtion.userDepartment.length <= 2 ? editCondtion.userDepartment.map((value: React.ReactNode, index: string | number | undefined) => {
                                            return <p key={index}>{value}</p>
                                        }) :
                                            <Title data={editCondtion.userDepartment} shu={2} />

                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                    }
                                    <SearchOutlined className='svg' onClick={() => checkcall('edit_userDepartment')} />
                                </div>
                            }


                        </div>

                    </div>
                    <div className='report_basic_line3'>
                        <div >
                            <span>统计频率</span>
                            {
                                rendreport == 1 &&
                                <div className='DivInput disable'>
                                    {
                                        editCondtion.usageFrequency ? (editCondtion.usageFrequency.length <= 2 ? editCondtion.usageFrequency.map((value: React.ReactNode, index: string | number | undefined) => {
                                            return <p key={index}>{value}</p>
                                        }) :
                                            <Title data={editCondtion.usageFrequency} shu={2} />

                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                    }
                                    <SearchOutlined className='svg' />
                                </div>
                            }
                            {
                                rendreport == 2 &&
                                <div className='DivInput'>
                                    {
                                        editCondtion.usageFrequency ? (editCondtion.usageFrequency.length <= 2 ? editCondtion.usageFrequency.map((value: React.ReactNode, index: string | number | undefined) => {
                                            return <p key={index}>{value}</p>
                                        }) :
                                            <Title data={editCondtion.usageFrequency} shu={2} />

                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                    }
                                    <SearchOutlined className='svg' onClick={() => checkcall('usageFrequency')} />
                                </div>
                            }

                        </div>
                        <div >
                            <span>报表所在系统</span>
                            {
                                rendreport == 1 &&
                                <input type="text" className="disable" value={editCondtion.belongingDepartment} disabled />
                            }
                            {
                                rendreport == 2 &&
                                <input type="text" value={editCondtion.belongingDepartment} onChange={(e: any) => checkbox_click('belongingDepartment', e.target.value)} />
                            }
                        </div>
                        <div></div>

                    </div>
                    <div className='report_basic_line4'>
                        <div >
                            <span>报表用途概述</span>
                            {
                                rendreport == 1 &&
                                <textarea className="disable" value={editCondtion.reportPurpose} disabled />
                            }
                            {
                                rendreport == 2 &&
                                <textarea value={editCondtion.reportPurpose} onChange={(e: any) => checkbox_click('reportPurpose', e.target.value)} />
                            }

                        </div>
                        <div >
                            <span>报表范围框定条件</span>
                            {
                                rendreport == 1 &&
                                <textarea className="disable" value={editCondtion.reportRange} disabled />
                            }
                            {
                                rendreport == 2 &&
                                <textarea className='disable' style={{ background: '#f8f8f8' }} value={editCondtion.reportRange} disabled onChange={(e: any) => checkbox_click('reportRange', e.target.value)} />
                            }
                        </div>
                    </div>

                    <div className='report_basic_line6'>
                        <div >
                            <span>所含关键指标</span>
                            {
                                rendreport == 1 &&
                                <textarea className="disable" value={editCondtion.keyIndicators} disabled />
                            }
                            {
                                rendreport == 2 &&
                                <textarea className='disable' style={{ background: '#f8f8f8' }} value={editCondtion.keyIndicators} onChange={(e: any) => checkbox_click('keyIndicators', e.target.value)} disabled />
                            }

                        </div>


                    </div>

                    {
                        rendreport == 1 &&
                        <div className='cancel'>
                            <button className='btn_white hoverBorder2' onClick={() => { setRendreport(0) }} >取消</button>
                            <button className={CollectList != null && CollectList.filter((el: any) => el.rid == editCondtion.rid).length > 0 ? 'btn_white disable btn_return' : 'btn_white hoverBorder2  btn_return'} onClick={() => CollectList != null && CollectList.filter((el: any) => el.rid == editCondtion.rid).length > 0 ? null : scribeReport()} >收藏</button>
                            <button style={{ marginLeft: "15rem" }} className='btn_return btn_white  hoverBorder2' onClick={() => { ApiUtils.isPurview("F1501") ? setRendreport(2) : AlertUtil.errorMsg('您没报表修改权限!') }}>修改</button>

                        </div>
                    }
                    {
                        rendreport == 2 &&
                        <div className='cancel'>
                            <button className='btn_white hoverBorder2' onClick={() => { setRendreport(0) }} >取消</button>
                            <button className={CollectList != null && CollectList.filter((el: any) => el.rid == editCondtion.rid).length > 0 ? 'btn_white disable btn_return' : 'btn_white hoverBorder2  btn_return'} onClick={() => CollectList != null && CollectList.filter((el: any) => el.rid == editCondtion.rid).length > 0 ? null : scribeReport()} >收藏</button>
                            <button style={{ marginLeft: "15rem" }} className='btn_return btn_red  hoverBorder2' onClick={modfily_comit}>提交</button>

                        </div>
                    }
                    <div style={{ clear: 'both' }}></div>
                </div>
            </div>
        }
    }


    //多选框点击弹出

    const checkcall = (val: any) => {
        setChecked({
            ...checked,
            [val]: true
        })
    }

    const reportModule_callback = (val: any, list: any, chk: any) => {
        console.log(list)
        setChecked({
            ...checked,
            reportModule: val
        })
        setQueryCondtion({
            ...queryCondtion,
            reportModule: list ? list : null
        })
    }
    const extract_reportModule_callback = (val: any, list: any, chk: any) => {
        console.log(list)
        setChecked({
            ...checked,
            extract_reportModule: val
        })
        setQueryCondtion({
            ...extract,
            reportModule: list ? list : null
        })
    }
    const extract_SSO_callback = (val: any, list: any, chk: any) => {
        console.log(list)
        setChecked({
            ...checked,
            extract_SSO: val
        })
        setExtract({
            ...extract,
            SSO: list ? list : null
        })
    }
    const extract_BU_callback = (val: any, list: any, chk: any) => {
        let BU_list: any = [];
        setChecked({
            ...checked,
            extract_BU: val
        })
        if (list) {
            checkedList.BU.forEach((item: any) => {
                list.forEach((i: any) => {
                    if (i == item.ORG_NAME) {
                        BU_list.push(item.ORG_ENGNAME)
                    }
                })
            })
            getCITY(BU_list)

            setExtract({
                ...extract,
                BU: list
            })
        }

    }
    const extract_CITY_callback = (val: any, list: any, chk: any) => {
        let CITY_list: any = [];
        setChecked({
            ...checked,
            extract_CITY: val
        })
        list ? setExtract({
            ...extract,
            CITY: list
        }) : setExtract({
            ...extract
        })


    }
    const centralizedManagement_callback = (val: any, list: any, chk: any) => {
        setChecked({
            ...checked,
            centralizedManagement: val
        })
        setQueryCondtion({
            ...queryCondtion,
            centralizedManagement: list ? list : null
        })
    }
    const userDepartment_callback = (val: any, list: any, chk: any) => {
        setChecked({
            ...checked,
            userDepartment: val
        })
        setQueryCondtion({
            ...queryCondtion,
            userDepartment: list ? list : null
        })
    }
    const edit_userDepartment_callback = (val: any, list: any, chk: any) => {
        setChecked({
            ...checked,
            edit_userDepartment: val
        })
        list ? setEditCondtion({
            ...editCondtion,
            userDepartment: list
        }) : setEditCondtion({
            ...editCondtion
        })
    }
    const usageFrequency_callback = (val: any, list: any, chk: any) => {
        setChecked({
            ...checked,
            usageFrequency: val
        })
        list ? setEditCondtion({
            ...editCondtion,
            usageFrequency: list
        }) : setEditCondtion({
            ...editCondtion
        })
    }
    const header = () => {
        console.log(openStates)
    }
    return (
        // <div style={{height: 'calc(100vh - 72rem)'}}>
        <div style={{ width: '100%', height: 'calc(100vh - 72rem)', display: 'flex', flexDirection: 'column' }}>

            <PageNav {...props} />
            <div className='report_management'>

                <div style={{
                    display: open ? "flex" : "none",
                    zIndex: 1000,
                    position: "absolute",
                    right: '22rem',
                    top: "0",
                    alignContent: 'center'
                }}>
                    {
                        ApiUtils.isPurview('F2101') ?
                            <span style={{ color: openStates == 'UNI' ? xFontColor : "#D6D8DA", marginRight: "15rem" }}
                                onClick={() => setOpenStates('UNI')}>核保 </span>
                            : ""
                    }
                    {
                        (ApiUtils.isPurview('F2101') && ApiUtils.isPurview('F2103')) ?
                            <span style={{ marginRight: "15rem" }}>| </span>
                            : ""
                    }
                    {
                        ApiUtils.isPurview('F2103') ?
                            <span style={{ color: openStates == 'CLM' ? xFontColor : "#D6D8DA", marginRight: "15rem" }}
                                onClick={() => setOpenStates('CLM')}> 理赔 </span>
                            : ""
                    }
                    {
                        ((ApiUtils.isPurview('F2103') && ApiUtils.isPurview('F2102')) || (ApiUtils.isPurview('F2101') && ApiUtils.isPurview('F2102'))) ?
                            <span style={{ marginRight: "15rem" }}>| </span>
                            : ""
                    }
                    {
                        ApiUtils.isPurview('F2102') ?
                            <span style={{ color: openStates == 'POS' ? xFontColor : "#D6D8DA", marginRight: "15rem" }}
                                onClick={() => setOpenStates('POS')}> 保全</span>
                            : ""
                    }

                </div>
                <Tabs className='tabs' defaultActiveKey={props.history.location.state ? (props.history.location.state.keys) : "1"} centered={true} onChange={(e: any) => {
                    if (e == 1) {
                        search_click(null)
                    }
                }}>
                    <TabPane
                        tab={
                            <div onClick={() => { setOpen(false) }}>
                                <span className='tabs_triangle'></span>
                                <span >格式报表管理</span>
                            </div>
                        }
                        key="1"
                        style={{ position: "relative" }}
                    // locale={locale}
                    >
                        <div className='page_big'>
                            <div className='search_condtion'>
                                <div className='sp_lab'>
                                    <div className='search_resul_rectangle'></div>
                                    <span>查询条件</span>
                                </div>
                                <div className='search_condtion_top'>
                                    <div>
                                        <span>编码:</span>
                                        <input type="text" value={queryCondtion.reportCode} onChange={(e: any) => checkbox_click_search('reportCode', e.target.value)} />
                                    </div>
                                    <div>
                                        <span>报表名称:</span>
                                        <input type="text" value={queryCondtion.reportName || ''} onChange={(e: any) => checkbox_click_search('reportName', e.target.value)} />
                                    </div>
                                    <div>
                                        <span>任务类型:</span>
                                        <div className='DivInput'>
                                            {
                                                queryCondtion.reportModule ? (queryCondtion.reportModule.length <= 2 ? queryCondtion.reportModule.map((value: React.ReactNode, index: string | number | undefined) => {
                                                    return <p key={index}>{value}</p>
                                                }) :
                                                    <Title data={queryCondtion.reportModule} shu={2} />

                                                ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                            }
                                            <SearchOutlined className='svg' onClick={() => checkcall('reportModule')} />
                                        </div>
                                    </div>
                                    <div>
                                        <span>归口管理部门:</span>
                                        <div className='DivInput'>
                                            {
                                                queryCondtion.centralizedManagement ? (queryCondtion.centralizedManagement.length <= 2 ? queryCondtion.centralizedManagement.map((value: React.ReactNode, index: string | number | undefined) => {
                                                    return <p key={index}>{value}</p>
                                                }) :
                                                    <Title data={queryCondtion.centralizedManagement} shu={2} />

                                                ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                            }
                                            <SearchOutlined className='svg' onClick={() => checkcall('centralizedManagement')} />
                                        </div>
                                    </div>
                                    <div>
                                        <span>报表使用部门:</span>
                                        <div className='DivInput'>
                                            {
                                                queryCondtion.userDepartment ? (queryCondtion.userDepartment.length <= 2 ? queryCondtion.userDepartment.map((value: React.ReactNode, index: string | number | undefined) => {
                                                    return <p key={index}>{value}</p>
                                                }) :
                                                    <Title data={queryCondtion.userDepartment} shu={2} />

                                                ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                            }
                                            <SearchOutlined className='svg' onClick={() => checkcall('userDepartment')} />
                                        </div>

                                    </div>
                                    <div></div>
                                </div>

                                <div className='search_condtion_btn'>
                                    <button className='btn_white hoverBorder2' onClick={clear_click}>清空</button>
                                    <button className='btn_red btn_return hoverBorder2' onClick={() => search_click('page')} >查询</button>
                                </div>
                            </div>
                            <div id="hisHead">
                                {
                                    viewHistory.tunon && <History rootIdData={viewHistory.rootId} guan={() => setViewHistory({ ...viewHistory, tunon: !viewHistory.tunon })} getHistoricalList={viewHistory.tunon}></History>
                                }
                            </div>
                            <div className='search_resul'>

                                <div className='search_resul_table'>
                                    {
                                        // tabledata != undefined && tablecolumns != undefined ?
                                        <TableList flag={true} theadList={tablecolumns} tbodyList={tabledata} isBig={false} isCheckBox={false} changesTHlist={Extract} getWorkteamId={RowDoubleClick} title="查询结果" />
                                        // :null
                                    }
                                </div>
                                {
                                    ApiUtils.isPurview("F1502") &&
                                    <div className='search_resul_btn'>
                                        <div className="itableList_inData btn_icon btn_back  hoverBorder2" onClick={onExportExcel}>
                                            <i className="bg_imgIcon_daochu" />
                                            <span>导出</span>
                                            {/* <FileUpload uploadType={"DictionaryQuota"} /> */}
                                        </div>
                                    </div>
                                }
                            </div>

                            {
                                rendreport == 3 &&
                                <div className='condtion_extract'>
                                    <div className='condtion_select'>
                                        <div className="close" onClick={() => setRendreport(0)}>
                                            <span></span>
                                            <img src={(window.rootUrl + "/images/deletebtn.svg")} alt="" />
                                        </div>
                                        <div className='sp_lab'>
                                            <div className='search_resul_rectangle'></div>
                                            <span>条件框定</span>
                                        </div>
                                        <div className='condtion_select_line1'>
                                            <div>
                                                <span>起始日期:</span>
                                                <DatePicker format="YYYY-MM-DD" value={condtiontime.stime ? moment(condtiontime.stime, 'YYYY-MM-DD') : null} disabledDate={StartdisabledDate} onChange={cstime} />
                                            </div>
                                            <div>
                                                <span>终止日期:</span>
                                                <DatePicker format="YYYY-MM-DD" value={condtiontime.etime ? moment(condtiontime.etime, 'YYYY-MM-DD') : null} disabledDate={EnddisabledDate} onChange={cetime} />
                                            </div>
                                            <div style={{ width: "350rem" }}>
                                                <span>任务类型:</span>
                                                <div className='DivInput'>
                                                    {
                                                        extract.reportModule ? (extract.reportModule.length <= 2 ? extract.reportModule.map((value: React.ReactNode, index: string | number | undefined) => {
                                                            return <p key={index}>{value}</p>
                                                        }) :
                                                            <Title data={extract.reportModule} shu={2} />

                                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                                    }
                                                    <SearchOutlined className='svg' onClick={() => checkcall('extract_reportModule')} />
                                                </div>

                                            </div>

                                        </div>
                                        <div className='condtion_select_line2'>
                                            <div>
                                                <span>SSO:</span>
                                                <div className='DivInput'>
                                                    {
                                                        extract.SSO ? (extract.SSO.length <= 2 ? extract.SSO.map((value: React.ReactNode, index: string | number | undefined) => {
                                                            return <p key={index}>{value}</p>
                                                        }) :
                                                            <Title data={extract.SSO} shu={2} />

                                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                                    }
                                                    <SearchOutlined className='svg' onClick={() => checkcall('extract_SSO')} />
                                                </div>
                                                {/* <CheckboxGroup value={checkedList.SSO} onChange={(e: any) => { GenerateReport('SSO', e) }}>
                                                    <Checkbox value={"S-SSO"}>S-SSO</Checkbox>
                                                    <Checkbox value={"N-SSO"}>N-SSO</Checkbox>
                                                </CheckboxGroup> */}

                                            </div>
                                            <div>
                                                <span>BU:</span>
                                                <div className='DivInput'>
                                                    {
                                                        extract.BU ? (extract.BU.length <= 2 ? extract.BU.map((value: React.ReactNode, index: string | number | undefined) => {
                                                            return <p key={index}>{value}</p>
                                                        }) :
                                                            <Title data={extract.BU} shu={2} />

                                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                                    }
                                                    <SearchOutlined className='svg' onClick={() => checkcall('extract_BU')} />
                                                </div>
                                                {/* <CheckboxGroup value={checkedList.BU} onChange={(e: any) => { GenerateReport('BU', e) }}>
                                                    <Checkbox value={"上海BU"}>上海BU</Checkbox>
                                                    <Checkbox value={"北京BU"}>北京BU</Checkbox>
                                                </CheckboxGroup> */}
                                            </div>
                                            <div>
                                                <span>CITY:</span>
                                                <div className='DivInput'>
                                                    {
                                                        extract.CITY ? (extract.CITY.length <= 2 ? extract.CITY.map((value: React.ReactNode, index: string | number | undefined) => {
                                                            return <p key={index}>{value}</p>
                                                        }) :
                                                            <Title data={extract.CITY} shu={2} />

                                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>
                                                    }
                                                    <SearchOutlined className='svg' onClick={() => checkcall('extract_CITY')} />
                                                </div>
                                                {/* <CheckboxGroup value={checkedList.CITY} onChange={(e: any) => { GenerateReport('CITY', e) }}>
                                                    <Checkbox value={"上海"}>上海</Checkbox>
                                                    <Checkbox value={"北京"}>北京</Checkbox>
                                                    <Checkbox value={"广州"}>广州</Checkbox>
                                                </CheckboxGroup> */}

                                            </div>
                                        </div>
                                        <div className='condtion_select_btn'>
                                            <button className='btn_white hoverBorder2' onClick={() => clear_extract()}>清空</button>
                                            <button className='btn_red btn_return hoverBorder2' onClick={BuildReport}>生成</button>
                                        </div>
                                    </div>
                                </div>

                            }
                        </div>
                        <div>
                            {
                                render_report()
                            }
                        </div>
                    </TabPane>

                    {/* <TabPane
                        tab={
                            <div>
                                <span className='tabs_triangle'></span>
                                <span >自定义报表</span>
                            </div>
                        }
                        key="2"
                        style={{ position: "relative" }}
                        // locale={locale}
                    >
                        <ReportCustom />                        
                    </TabPane>

                    <TabPane
                        tab={
                            // <div style={{height: 'calc(100vh - 15rem)',overflow: 'auto'}}>
                            <div>
                                <span className='tabs_triangle'></span>
                                <span >报表订阅</span>
                            </div>
                        }                
                        key="3"
                        style={{ position: "relative" }}
                        // locale={locale}
                    >
                        <ReportSubscribe />                        
                    </TabPane> */}

                    <TabPane
                        tab={
                            <div onClick={() => { setOpen(false) }}>
                                <span className='tabs_triangle'></span>
                                <span >我的报表</span>
                            </div>
                        }
                        key="4"
                        style={{ position: "relative" }}
                    // locale={locale}
                    >
                        <MyReport CollectList={CollectList} />
                    </TabPane>

                    <TabPane
                        tab={
                            <div onClick={() => { setOpen(true) }}>
                                <span className='tabs_triangle'></span>
                                <span>可视化报表</span>
                            </div>
                        }
                        key="5" style={{ position: "relative" }}>
                        <VisualReport openStates={openStates} xFontColor={xFontColor} />
                    </TabPane>

                    <TabPane
                        tab={
                            <div onClick={() => { setOpen(true) }}>
                                <span className='tabs_triangle'></span>
                                <span>BU可视化报表</span>
                            </div>
                        }
                        key="6" style={{ position: "relative" }}>
                        <VisualReportForBu openStates={openStates} xFontColor={xFontColor} />
                    </TabPane>

                </Tabs>
            </div>
            {/* 引入所有的多选框弹出框 */}
            {
                checked.reportModule && <CheckedList title="选择任务类型" data={quotaConfig.reportModule.map((item: any) => item = { code: item, title: item })} titlelist={queryCondtion.reportModule} flag={7} callBack={reportModule_callback} />
            }
            {
                checked.extract_reportModule && <CheckedList title="选择任务类型" data={quotaConfig.reportModule.map((item: any) => item = { code: item, title: item })} titlelist={extract.reportModule} flag={7} callBack={extract_reportModule_callback} />
            }
            {
                checked.centralizedManagement && <CheckedList title="选择归口管理部门" data={quotaConfig.centralizedManagement.map((item: any) => item = { code: item, title: item })} titlelist={queryCondtion.centralizedManagement} flag={7} callBack={centralizedManagement_callback} />
            }
            {
                checked.userDepartment && <CheckedList title="选择报表使用部门" data={quotaConfig.userDepartment.map((item: any) => item = { code: item, title: item })} titlelist={queryCondtion.userDepartment} flag={7} callBack={userDepartment_callback} />
            }
            {
                checked.edit_userDepartment && <CheckedList title="选择报表使用部门" data={quotaConfig.userDepartment.map((item: any) => item = { code: item, title: item })} titlelist={editCondtion.userDepartment} flag={7} callBack={edit_userDepartment_callback} />
            }
            {
                checked.usageFrequency && <CheckedList title="选择统计频率" data={quotaConfig.usageFrequency.map((item: any) => item = { code: item, title: item })} titlelist={editCondtion.usageFrequency} flag={7} callBack={usageFrequency_callback} />
            }
            {
                checked.extract_SSO && <CheckedList title="选择SSO" data={checkedList.SSO.map((item: any) => item = { code: item, title: item })} titlelist={extract.SSO} flag={7} callBack={extract_SSO_callback} />
            }{
                checked.extract_BU && <CheckedList title="选择BU" data={checkedList.BU.map((item: any) => item = { code: item.ORG_NAME, title: item.ORG_NAME })} titlelist={extract.BU} flag={7} callBack={extract_BU_callback} />
            }{
                checked.extract_CITY && <CheckedList title="选择CITY" data={checkedList.CITY.map((item: any) => item = { code: item.CITYNAME, title: item.CITYNAME })} titlelist={extract.CITY} flag={7} callBack={extract_CITY_callback} />
            }
        </div>
    )
}
复制代码

 

import React, { useState, useCallback, useEffect, useLayoutEffect } from 'react'import { Checkbox, DatePicker, Tabs, Table, Select } from "antd";import moment from 'moment';import locale from "antd/es/date-picker/locale/zh_CN";import Title from '../../components/Title'import TableList from '../../components/TableList';import CheckedList from "../../components/CheckedList";
import XLSX from 'xlsx'import { SearchOutlined } from '@ant-design/icons';

import MyReport from './MyReport';import VisualReport from './visual_report/VisualReport';import VisualReportForBu from './visual_report/BuVisualReport';
import AlertUtil from "../../utils/AlertUtil";import ApiUtils from '../../utils/ApiUtils';import Utils from '../../utils/Utils';import PageNav from "../navigation/PageNav";import History from "../historical_changes/Historicalchanges";import FileUpload from '../../components/FileUpload';const CheckboxGroup = Checkbox.Group;const columns = [    { title: '指标编码', sort: 'indexCode', key: 'indexCode' },    { title: '指标名称', sort: 'indexName', key: 'indexName' },    { title: '指标主题', sort: 'indexTheme', key: 'indexTheme' },    { title: '指标类型', sort: 'indexType', key: 'indexType' },    { title: '计量单位', sort: 'unit', key: 'unit' },    // { title: '指标口径', sort: 'caliber', key: 'caliber'},    // { title: '规口管理部门', sort: 'centralizedManagement', key: 'centralizedManagement'},    // { title: '统计频率', sort: 'statisticalFrequency', key: 'statisticalFrequency'},    // { title: '统计时间', sort: 'statisticalTime', key: 'statisticalTime'},    // { title: '数据来源', sort: 'dataSources', key: 'dataSources'},    // { title: '指标状态', sort: 'indexState', key: 'indexState'},    // { title: '是否PKI', sort: 'isKpi', key: 'isKpi'},    { title: '操作历史', sort: 'viewhis', key: 'viewhis' },    // {    //   title: 'Action',    //   dataIndex: '',    //   key: 'x',    //   render: () => <a>Delete</a>,    //   width:'150rem'    // },];
const datasource = [    {        key: 1,        name: 'John Brown',        age: 32,        address: 'New York No. 1 Lake Park',        description: 'My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park.',    },    {        key: 2,        name: 'Jim Green',        age: 42,        address: 'London No. 1 Lake Park',        description: 'My name is Jim Green, I am 42 years old, living in London No. 1 Lake Park.',    },    {        key: 3,        name: 'Not Expandable',        age: 29,        address: 'Jiangsu No. 1 Lake Park',        description: 'This not expandable',    },    {        key: 4,        name: 'Joe Black',        age: 32,        address: 'Sidney No. 1 Lake Park',        description: 'My name is Joe Black, I am 32 years old, living in Sidney No. 1 Lake Park.',    },];
export default function ReportManagement(props: any) {
    useEffect(() => {        localStorageUpdated()        GetReportInit();        getBU()        search_click(null)        props.history.location.state&&props.history.location.state.option&&setOpenStates(props.history.location.state.option)    }, []);
    const localStorageUpdated = () => {        var _this = localStorage.getItem("localstorage-status")        _this == "false" ? setFontColor("#302F2C") : setFontColor('rgb(244 76 76)')        window.addEventListener("setItemEvent", (e: any) => {            if (e.key == 'localstorage-status') {                var _this = localStorage.getItem("localstorage-status")                console.log(e.newValue)                e.newValue == "false" ? setFontColor("#302F2C") : setFontColor('rgb(244 76 76)')            }        });    }    /* --- 数据 ----*/    const [rendreport, setRendreport] = useState<any>(0);    const [tabledata, setTabledata] = useState<any>([]);    const [tablecolumns, setTablecolumns] = useState<any>(columns)    const [condtiontime, setCondtiontime] = useState<any>({ stime: '', etime: '' });    const [tasktype, setTasktype] = useState<any>({        核保: false, 理赔: false, 保全: false, 通用: false,    });    const [CollectList, setCollectList] = useState<any>()    const [extract, setExtract] = useState<any>({        "rid": "",        "reportCode": "",        reportModule: null,        "reportStatus": "",        "reportName": "",        "reportTheme": "",        "reportPurpose": "",        "keyIndicators": "",        "reportRange": "",        "presentationDimension": "",        "reportType": "",        "centralizedManagement": "",        "userDepartment": "",        "usageFrequency": "",        "originalReport": "",        "userId": "",        starttime: '',        endtime: '',        SSO: null,        BU: null,        CITY: null,    });    const [checkedList, setCheckedList] = useState<any>({        SSO: ["S-SSO", "N-SSO"],        BU: [],        CITY: [],    })    const [viewHistory, setViewHistory] = useState<any>({        tunon: false,        rootId: ''    });    //search 的条件    const [queryCondtion, setQueryCondtion] = useState<any>(        {            rid: "",            reportCode: "",            reportModule: "",            reportStatus: "",            reportName: "",            reportTheme: "",            reportPurpose: "",            keyIndicators: "",            reportRange: "",            presentationDimension: "",            reportType: null,            centralizedManagement: null,            userDepartment: null,            usageFrequency: "",            originalReport: "",            userId: "",            sso: '',            bu: '',            city: ''        }    );    //信息和修改的载体    const [editCondtion, setEditCondtion] = useState<any>(        {            rid: "",            reportCode: "",            reportModule: "",            reportStatus: "",            reportName: "",            reportTheme: "",            reportPurpose: "",            keyIndicators: "",            reportRange: "",            presentationDimension: "",            reportType: null,            centralizedManagement: null,            userDepartment: null,            usageFrequency: null,            originalReport: "",            userId: "",            belongingDepartment: "",            sso: '',            bu: '',            city: ''        }    );    const [quotaConfig, setQuotaConfig] = useState<any>();    const [authlist, setAuthlist] = useState<any>()    const [open, setOpen] = useState<any>(props.history.location.state ? true : false)    const [openStates, setOpenStates] = useState<any>("UNI")    const [xFontColor, setFontColor] = useState<any>("#000")
    const { Option } = Select;    const { TabPane } = Tabs;    const { RangePicker } = DatePicker;    //多选框状态    const [checked, setChecked] = useState<any>({        reportModule: false,        centralizedManagement: false,        userDepartment: false,        edit_userDepartment: false,        usageFrequency: false,        extract_reportModule: false,        extract_SSO: false,        extract_BU: false,        extract_CITY: false
    })    // 复选框下拉框初始化数据    const GetReportInit = () => {        ApiUtils.ReportInit().then((res: any) => {            if (res && res.code == 0) {                setQuotaConfig(res.data.data)            } else {                AlertUtil.warningMsg(res.msg)            }        })    }
    //BU    const getBU = () => {        ApiUtils.getBuByOrg().then((res: any) => {
            res && setCheckedList({                ...checkedList,                BU: res.data,
            })        })
        console.log(checkedList)
    }    //CITY    const getCITY = (data: any) => {        let jsonDate = data != null ? data.join(',') : ''        ApiUtils.getCityByBu(jsonDate).then((res: any) => {            res && setCheckedList({                ...checkedList,                CITY: res.data,

            })        })


    }
    /* --- 方法----*/    const table_rowclick = (rowitem: any) => {        // console.log(rowitem,e,"sso2-quota")        // if(!e.target.matches('span')){        setRendreport(1)
        if (rowitem != '') {
            setEditCondtion({                rid: rowitem.rid,                reportCode: rowitem.reportCode,                reportModule: rowitem.reportModule,                reportName: rowitem.reportName,                reportStatus: rowitem.reportStatus,                reportPurpose: rowitem.reportPurpose,                keyIndicators: rowitem.keyIndicators,                reportRange: rowitem.reportRange,                presentationDimension: rowitem.presentationDimension,                reportType: rowitem.reportType,                caliber: rowitem.caliber,                centralizedManagement: rowitem.centralizedManagement,                userDepartment: rowitem.userDepartment ? rowitem.userDepartment.split(',') : rowitem.userDepartment,                usageFrequency: rowitem.usageFrequency ? rowitem.usageFrequency.split('/') : rowitem.usageFrequency,                originalReport: rowitem.originalReport,                userId: rowitem.userId,                belongingDepartment: rowitem.belongingDepartment            })        }    }
    const RowDoubleClick = (record: any) => {        table_rowclick(record)    }
    const TableRowClick = () => {        let RowElement: any = document.getElementsByClassName('table_container')        if (RowElement.length) {            console.log(RowElement[0].children, "sso2-rep")        }    }
    const search_click = async (type: any) => {        let search_condtion: any        if (type === 'page') {            //页面条件            search_condtion = {                reportCode: queryCondtion.reportCode,                reportName: queryCondtion.reportName,                reportTheme: queryCondtion.indexTheme,                centralizedManagement: queryCondtion.centralizedManagement != null ? queryCondtion.centralizedManagement.join(',') : '',                userDepartment: queryCondtion.userDepartment != null ? queryCondtion.userDepartment.join(',') : '',                // reportModule: Object.entries(tasktype).filter((el: any) => el[1] == true).map((el: any) => el[0]).join(','),                reportModule: queryCondtion.reportModule  ? queryCondtion.reportModule.join(',') : '',                userId: ApiUtils.userInfo.userId            }        } else {            search_condtion = {                reportCode: '',                reportName: '',                reportTheme: '',                centralizedManagement: '',                userDepartment: '',                reportModule: '',                userId: ApiUtils.userInfo.userId            }        }
        // if (type == "4") {        //     await ApiUtils.CollectList(ApiUtils.userInfo.userId).then((res: any) => {        //         if (res && res.code == 0) {        //             setCollectList(res.data)        //         }        //     })        // }
            await ApiUtils.GetReportList(search_condtion).then((res: any) => {                if (res && res.code == 0) {                    // console.log(res,"sso2-quota")                    //format thead                    let arr: any = []                    let column: any                    let attributeName: any                    let columnrow = {                        "reportCode": queryCondtion.reportCode,                        "reportName": queryCondtion.reportName,                        // "indexTheme": queryCondtion.reportName,                        "reportPurpose": queryCondtion.reportPurpose,                        "reportModule": queryCondtion.reportModule,                        "reportStatus": queryCondtion.reportStatus,                        "reportType": queryCondtion.reportType,                        "centralizedManagement": queryCondtion.centralizedManagement,                    }
                    Object.keys(columnrow).map((el: any) => {                        // console.log(el,"sso2-dic")                        switch (el) {                            case 'reportCode':                                attributeName = '报表编码'                                break;                            case 'reportName':                                attributeName = '报表名称'                                break;                            case 'reportModule':                                attributeName = '任务类型'                                break;                            case 'reportStatus':                                attributeName = '报表状态'                                break;                            case 'reportPurpose':                                attributeName = '报表用途概述'                                break;                            case 'keyIndicators':                                attributeName = '所含关键指标'                                break;                            case 'reportRange':                                attributeName = '报表范围框定条件'                                break;                            case 'presentationDimension':                                attributeName = '报表数据列示维度'                                break;                            case 'reportType':                                attributeName = '报表类型'                                break;                            // case 'caliber':                            //     attributeName='报表口径'                            //     break;                            case 'centralizedManagement':                                attributeName = '归口管理部门'                                break                            case 'userDepartment':                                attributeName = '报表使用部门'                                break                            case 'usageFrequency':                                attributeName = '报表使用频率'                                break                            case 'originalReport':                                attributeName = '原报表名称'                                break                            case 'userId':                                attributeName = '用户id'                                break                            case 'belongingDepartment':                                attributeName = '报表所在系统'                                break                        }

                        if (attributeName == '报表名称' || attributeName == '报表用途概述') {                            arr.push({                                "title": attributeName,                                "sort": el,                                "width": "250",                                "align": "center"                            })                        } else if(attributeName=="报表编码"){                            arr.push({                                "title": attributeName,                                "sort": el,                                "width": "156",                                "align": "center"                            })                        }else{                            arr.push({                                "title": attributeName,                                "sort": el,                                "width": "100",                                "align": "center"                            })                        }                    })                    setTablecolumns([...arr, { title: '操作', sort: 'viewhis', "width": "250", key: 'viewhis' },])                    setTabledata(res.data.map((item: any) => {                        item = {                            "reportCode": item.reportCode,                            "rid": item.rid,                            // "taskType": queryCondtion.taskType,                            "reportName": item.reportName,                            // "indexCategory": queryCondtion.indexCategory,                            // "indexSubclass": queryCondtion.indexSubclass,                            "indexTheme": item.reportName,                            // "indexDefinition": queryCondtion.indexDefinition,                            // "formula": queryCondtion.formula,                            "reportPurpose": item.reportPurpose,                            "reportModule": item.reportModule,                            "reportStatus": item.reportStatus,                            "keyIndicators": item.keyIndicators,                            "reportRange": item.reportRange,                            "presentationDimension": item.presentationDimension,                            "reportType": item.reportType,                            "centralizedManagement": item.centralizedManagement,                            "userDepartment": item.userDepartment,                            "usageFrequency": item.usageFrequency,                            "originalReport": item.originalReport,                            "userId": item.userId,                            belongingDepartment: item.belongingDepartment,                            "viewhis": [<a title='查看操作历史' key={'history' + item.rid} onClick={() => setViewHistory({ tunon: true, rootId: item.rid })}>操作历史</a>, <a key={'extract' + item.rid} title='抽取' onClick={() => extractRow(item)}>抽取</a>, <a title='报表修改' key={'modfly' + item.rid} onClick={() => modfly(item)}>修改</a>]                        }                        return item                    }))                }            })        }
    const search_tasktype = (type: any, value: any, e: any) => {        console.log(type, value, e.target, "sso2-dic")        setTasktype({            ...tasktype,            [type]: value        })    }
    const clear_click = () => {        setQueryCondtion({            "rid": null,            "reportCode": '',            "reportModule": null,            "reportStatus": null,            "reportName": '',            "reportTheme": null,            "reportPurpose": null,            "keyIndicators": null,            "reportRange": null,            "presentationDimension": null,            "reportType": null,            "centralizedManagement": null,            "userDepartment": null,            "usageFrequency": null,            "originalReport": null,            "userId": null,        })        setTasktype({            核保: false, 理赔: false, 保全: false, 通用: false,        })
    }
    const clear_extract = () => {        setExtract({            "rid": null,            "reportCode": null,            "reportModule": '',            "reportStatus": null,            "reportName": null,            "reportTheme": null,            "reportPurpose": null,            "keyIndicators": null,            "reportRange": null,            "presentationDimension": null,            "reportType": null,            "centralizedManagement": null,            "userDepartment": null,            "usageFrequency": null,            "originalReport": null,            "userId": null,            model: '',            starttime: null,            endtime: null,            SSO: null,            BU: null,            CITY: null,        })        setCondtiontime({ ...condtiontime, stime: '', etime: '' })        // setCheckedList({ SSO: [], BU: [], CITY: [] })    }
    const checkbox_click = (quota: any, value: any) => {        setEditCondtion({            ...editCondtion,            [quota]: value,        })    }    const checkbox_click_select = (value: any, quota: any) => {
        setEditCondtion({            ...editCondtion,            [quota]: value,        })    }    const checkbox_click_search = (quota: any, value: any) => {        setQueryCondtion({            ...queryCondtion,            [quota]: value,        })    }
    //时间组件触发函数    const EnddisabledDate = (current: any) => {
        return current && current < moment(`${JSON.stringify(condtiontime.stime)}}`, 'YYYY-MM-DD')    }    const StartdisabledDate = (current: any) => {
        return current && current > moment(`${JSON.stringify(condtiontime.etime)}}`, 'YYYY-MM-DD')    }    const cstime = (value: any, dateString: any) => {        setCondtiontime({ ...condtiontime, stime: dateString })        console.log(dateString, condtiontime, "sso2-report")    }    const cetime = (value: any, dateString: any) => {        setCondtiontime({ ...condtiontime, etime: dateString })        console.log(dateString, condtiontime, "sso2-report")    }
    const modfily_comit = async () => {
        let reqlist = {            "rid": editCondtion.rid,            "reportCode": editCondtion.reportCode ? editCondtion.reportCode : (AlertUtil.errorMsg('编码不能为空'), null),            "reportModule": editCondtion.reportModule,//            "reportStatus": editCondtion.reportStatus ? editCondtion.reportStatus : (AlertUtil.errorMsg('报表状态不能为空'), null),            "reportName": editCondtion.reportName ? editCondtion.reportName : (AlertUtil.errorMsg('报表名称不能为空'), null),            "reportTheme": editCondtion.reportTheme,            "reportPurpose": !editCondtion.reportPurpose ? (AlertUtil.errorMsg('报表用途概述不能为空')) : editCondtion.reportPurpose.length > 60 ? (AlertUtil.errorMsg('报表用途概述长度超过“60个字符!”'), null) : editCondtion.reportPurpose,            "keyIndicators": editCondtion.keyIndicators ? editCondtion.keyIndicators : (AlertUtil.errorMsg('所含关键指标不能为空'), null),            "reportRange": editCondtion.reportRange ? editCondtion.reportRange : (AlertUtil.errorMsg('报表范围框定条件不能为空'), null),            "presentationDimension": editCondtion.presentationDimension,            "reportType": editCondtion.reportType ? editCondtion.reportType : (AlertUtil.errorMsg('报表类型不能为空'), null),            "centralizedManagement": editCondtion.centralizedManagement ? editCondtion.centralizedManagement : (AlertUtil.errorMsg('归口管理部门不能为空'), null),            "userDepartment": editCondtion.userDepartment != null ? editCondtion.userDepartment.join(',') : (AlertUtil.errorMsg('报表使用部门不能为空'), null),            "usageFrequency": editCondtion.usageFrequency != null ? editCondtion.usageFrequency.join(',') : (AlertUtil.errorMsg('报表使用频率不能为空'), null),            "originalReport": editCondtion.originalReport,            "userId": ApiUtils.userInfo.userId,            belongingDepartment: !editCondtion.belongingDepartment ? (AlertUtil.errorMsg('报表所在系统不能为空')) : editCondtion.belongingDepartment.length > 100 ? (AlertUtil.errorMsg('报表所在系统长度超过“100个字符!”'), null) : editCondtion.belongingDepartment,            sso: '',            bu: '',            city: ''        }        if (!reqlist.reportCode || !reqlist.reportName || !reqlist.centralizedManagement || !reqlist.reportType || !reqlist.reportStatus || !reqlist.userDepartment || !reqlist.usageFrequency || !reqlist.belongingDepartment || !reqlist.reportPurpose || !reqlist.keyIndicators || !reqlist.reportRange) {            return        }        await ApiUtils.UpdateReport(reqlist).then((res: any) => {            if (res && res.code == 0) {                AlertUtil.showMsg('修改成功!')            } else {                AlertUtil.warningMsg(res.msg)            }        })

        search_click(null)
        setRendreport(2)    }
    const modfly = (rowitem: any) => {        console.log(rowitem)        ApiUtils.isPurview("F1501") ? setRendreport(2) : AlertUtil.errorMsg('您没报表修改权限!')        if (rowitem != '') {            setEditCondtion({

                rid: rowitem.rid,                reportCode: rowitem.reportCode,                reportModule: rowitem.reportModule,                reportStatus: rowitem.reportStatus,                reportName: rowitem.reportName,                reportPurpose: rowitem.reportPurpose,                keyIndicators: rowitem.keyIndicators,                reportRange: rowitem.reportRange,                presentationDimension: rowitem.presentationDimension,                reportType: rowitem.reportType,                centralizedManagement: rowitem.centralizedManagement,                userDepartment: rowitem.userDepartment ? rowitem.userDepartment.split('/') : rowitem.userDepartment,                usageFrequency: rowitem.usageFrequency ? rowitem.usageFrequency.split('/') : rowitem.usageFrequency,                originalReport: rowitem.originalReport,                userId: ApiUtils.userInfo.userId,                belongingDepartment: rowitem.belongingDepartment            })        }

    }
    const scribeReport = () => {        let userid = ApiUtils.userInfo.userId        ApiUtils.CollectReport(editCondtion.rid, ApiUtils.userInfo.userId).then((res: any) => {            if (res && res.code == 0) {                AlertUtil.showMsg('收藏成功!')            } else {                AlertUtil.showMsg(res.msg)            }        })
        ApiUtils.CollectList(ApiUtils.userInfo.userId).then((res: any) => {            if (res && res.code == 0) {                setCollectList(res.data)            }        })
        search_click(null)
    }
    const Extract = (item: any) => {
    }


    const BuildReport = () => {        let reqlist = {            reportCode: extract.reportCode,            reportModule: extract.reportModule ? extract.reportModule.join(',') : '',            frequency: extract.frequency,            startDate: condtiontime.stime,            endDate: condtiontime.etime,            zoneflg: extract.SSO ? extract.SSO.join(',') : '',            model: extract.model,            bu: extract.BU ? extract.BU.join(',') : '',            city: extract.CITY ? extract.CITY.join(',') : '',            name: extract.name            // frequency    适用频率        false            // startDate    起始时间        false            // endDate    终止时间        false            // zoneflg    SSO        false            // model    任务类型        false            // bu            // city        }        if (reqlist.startDate == '') {            AlertUtil.showMsg('请先选择起始日期!')        } else if (reqlist.endDate == '') {            AlertUtil.showMsg('请先选择终止日期!')        } else if (reqlist.model == '') {            AlertUtil.showMsg('请先选择任务类型!')        }        // else if (reqlist.zoneflg == '') {        //     AlertUtil.showMsg('请先选择SS0!')        // } else if (reqlist.bu == '') {        //     AlertUtil.showMsg('请先选择BU!')        // } else if (reqlist.city == '') {        //     AlertUtil.showMsg('请先选择CITY!')        // }         else {            ApiUtils.ExtractReport(reqlist)        }    }
    //Excel导出    const onExportExcel = (file: any) => {
        let workbook: any = {            SheetNames: [],            Sheets: {}        };
        if (tabledata != undefined && tabledata.length) {            let ws = XLSX.utils.json_to_sheet([...tabledata]);            let wb = XLSX.utils.book_new()            XLSX.utils.book_append_sheet(wb, ws, '指标查询') // 工作簿名称            XLSX.writeFile(wb, '.\指标查询.xlsx') // 保存的文件名        } else {            AlertUtil.errorMsg('当前无表格数据!')        }
        // ApiUtils.downloadFile(`/index/manage/getTemplate`, null, '参数导入模板.xlsx')
    }
    const extractRow = (itemrow: any) => {        let authlist = ApiUtils.userInfo        let coecode = ['002', '00200', '00201', '00202', '003', '004', '005', '006', '00600', '0060000', '00602', '0060200']        console.log(authlist, "sso2-report")        // if (authlist.orgCategory == 'CHO' || coecode.includes(authlist.orgCode) && itemrow.userDepartment.includes('SSO' || 'BU') || authlist.orgCategory == 'BU') {        setRendreport(3)        setExtract({

            "reportCode": itemrow.reportCode,            "reportModule":itemrow.reportModule? itemrow.reportModule.split(','):null,            "frequency": itemrow.usageFrequency,            "startDate": condtiontime.stime,            "endDate": condtiontime.etime,            SSO: null,            "model": itemrow.reportType,            BU: null,            CITY: null,            name: itemrow.reportName        })        // }        // else {        //     AlertUtil.errorMsg('您无权抽取该报表!')        // }    }
    const render_report = () => {        // if (ApiUtils.isPurview("F1500") && rendreport == 1 || ApiUtils.isPurview("F1501") && rendreport == 2){        if (rendreport == 1 || rendreport == 2) {            return <div className='base_report'>                <div className='report_basic'>                    <div className='lab_sp'>                        <div className='search_resul_rectangle'></div>                        <span>报表基本信息</span>                    </div>                    <div className="close" onClick={() => setRendreport(0)}>                        <span></span>                        <img src={(window.rootUrl + "/images/deletebtn.svg")} alt="" />                    </div>                    <div className='report_basic_line1'>                        <div >                            <span>编码</span>                            {                                rendreport == 1 &&                                <input className="disable" value={editCondtion.reportCode} disabled />                            }                            {                                rendreport == 2 &&                                <input className="disable" type="text" value={editCondtion.reportCode} onChange={(e: any) => checkbox_click('reportCode', e.target.value)} disabled />                            }                        </div>                        <div >                            <span>报表名称</span>                            {                                rendreport == 1 &&                                <Select defaultValue={editCondtion.reportName} className="disable" allowClear disabled>                                    {quotaConfig.reportName.map((item: any, index: any) => {                                        return <Option key={`reportName${index}`} value={item}>{item}</Option>
                                    })}                                </Select>                            }                            {                                rendreport == 2 &&                                <Select defaultValue={editCondtion.reportName} style={{ background: '#f8f8f8' }} onChange={(e: any) => checkbox_click_select(e, 'reportName')} allowClear >                                    {quotaConfig.reportName.map((item: any, index: any) => {                                        return <Option key={`reportName${index}`} value={item}>{item}</Option>
                                    })}                                </Select>                                // <input type="text" value={editCondtion.reportName} onChange={(e: any) => checkbox_click('reportName', e.target.value)} />                            }                        </div>                        {/* <div >                            <span>报表主题</span>                            {                                rendreport == 1 &&                                <input type="text" style={{ background: '#f8f8f8' }} value={editCondtion.reportName} disabled />                            }                            {                                rendreport == 2 &&                                <input type="text" value={editCondtion.reportName} onChange={(e: any) => checkbox_click('reportName', e.target.value)} />                            }
                        </div> */}                        <div >                            <span>报表状态</span>                            {                                rendreport == 1 &&                                <Select defaultValue={editCondtion.reportStatus} className="disable" allowClear disabled>                                    {quotaConfig.reportStatus.map((item: any, index: any) => {                                        return <Option key={`reportStatus${index}`} value={item}>{item}</Option>
                                    })}                                </Select>                            }                            {                                rendreport == 2 &&                                <Select defaultValue={editCondtion.reportStatus} style={{ background: '#f8f8f8' }} onChange={(e: any) => checkbox_click_select(e, 'reportStatus')} allowClear>                                    {quotaConfig.reportStatus.map((item: any, index: any) => {                                        return <Option key={`reportStatus${index}`} value={item}>{item}</Option>
                                    })}                                </Select>                            }                        </div>                    </div>                    <div className='report_basic_line2'>                        <div >                            <span>报表类型</span>                            {                                rendreport == 1 &&                                <Select defaultValue={editCondtion.reportType} className="disable" allowClear disabled>                                    {quotaConfig.reportType.map((item: any, index: any) => {                                        return <Option key={`reportType${index}`} value={item}>{item}</Option>
                                    })}                                </Select>                                // <input type="text" style={{ background: '#f8f8f8' }} value={editCondtion.reportType} disabled />                            }                            {                                rendreport == 2 &&                                <Select defaultValue={editCondtion.reportType} style={{ background: '#f8f8f8' }} onChange={(e: any) => checkbox_click_select(e, 'reportType')} allowClear>                                    {quotaConfig.reportType.map((item: any, index: any) => {                                        return <Option key={`reportType${index}`} value={item}>{item}</Option>
                                    })}                                </Select>                                // <input type="text" value={editCondtion.reportType} onChange={(e: any) => checkbox_click('reportType', e.target.value)} />                            }
                        </div>                        <div >                            <span>归口管理部门</span>                            {                                rendreport == 1 &&                                <Select defaultValue={editCondtion.centralizedManagement} className="disable" disabled allowClear>                                    {quotaConfig.centralizedManagement.map((item: any, index: any) => {                                        return <Option key={`centralizedManagement${index}`} value={item}>{item}</Option>
                                    })}                                </Select>                                // <input type="text" style={{ background: '#f8f8f8' }} value={editCondtion.centralizedManagement} disabled />                            }                            {                                rendreport == 2 &&                                <Select defaultValue={editCondtion.centralizedManagement} style={{ background: '#f8f8f8' }} onChange={(e: any) => checkbox_click_select(e, 'centralizedManagement')} allowClear>                                    {quotaConfig.centralizedManagement.map((item: any, index: any) => {                                        return <Option key={`centralizedManagement${index}`} value={item}>{item}</Option>
                                    })}                                </Select>                                // <input type="text" value={editCondtion.centralizedManagement} onChange={(e: any) => checkbox_click('centralizedManagement', e.target.value)} />                            }
                        </div>                        <div>                            <span>报表使用部门:</span>                            {                                rendreport == 1 &&                                <div className='DivInput disable'>                                    {                                        editCondtion.userDepartment ? (editCondtion.userDepartment.length <= 2 ? editCondtion.userDepartment.map((value: React.ReactNode, index: string | number | undefined) => {                                            return <p key={index}>{value}</p>                                        }) :                                            <Title data={editCondtion.userDepartment} shu={2} />
                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                    }                                    <SearchOutlined className='svg' />                                </div>                            }                            {                                rendreport == 2 &&                                <div className='DivInput'>                                    {                                        editCondtion.userDepartment ? (editCondtion.userDepartment.length <= 2 ? editCondtion.userDepartment.map((value: React.ReactNode, index: string | number | undefined) => {                                            return <p key={index}>{value}</p>                                        }) :                                            <Title data={editCondtion.userDepartment} shu={2} />
                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                    }                                    <SearchOutlined className='svg' onClick={() => checkcall('edit_userDepartment')} />                                </div>                            }

                        </div>
                    </div>                    <div className='report_basic_line3'>                        <div >                            <span>统计频率</span>                            {                                rendreport == 1 &&                                <div className='DivInput disable'>                                    {                                        editCondtion.usageFrequency ? (editCondtion.usageFrequency.length <= 2 ? editCondtion.usageFrequency.map((value: React.ReactNode, index: string | number | undefined) => {                                            return <p key={index}>{value}</p>                                        }) :                                            <Title data={editCondtion.usageFrequency} shu={2} />
                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                    }                                    <SearchOutlined className='svg' />                                </div>                            }                            {                                rendreport == 2 &&                                <div className='DivInput'>                                    {                                        editCondtion.usageFrequency ? (editCondtion.usageFrequency.length <= 2 ? editCondtion.usageFrequency.map((value: React.ReactNode, index: string | number | undefined) => {                                            return <p key={index}>{value}</p>                                        }) :                                            <Title data={editCondtion.usageFrequency} shu={2} />
                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                    }                                    <SearchOutlined className='svg' onClick={() => checkcall('usageFrequency')} />                                </div>                            }
                        </div>                        <div >                            <span>报表所在系统</span>                            {                                rendreport == 1 &&                                <input type="text" className="disable" value={editCondtion.belongingDepartment} disabled />                            }                            {                                rendreport == 2 &&                                <input type="text" value={editCondtion.belongingDepartment} onChange={(e: any) => checkbox_click('belongingDepartment', e.target.value)} />                            }                        </div>                        <div></div>
                    </div>                    <div className='report_basic_line4'>                        <div >                            <span>报表用途概述</span>                            {                                rendreport == 1 &&                                <textarea className="disable" value={editCondtion.reportPurpose} disabled />                            }                            {                                rendreport == 2 &&                                <textarea value={editCondtion.reportPurpose} onChange={(e: any) => checkbox_click('reportPurpose', e.target.value)} />                            }
                        </div>                        <div >                            <span>报表范围框定条件</span>                            {                                rendreport == 1 &&                                <textarea className="disable" value={editCondtion.reportRange} disabled />                            }                            {                                rendreport == 2 &&                                <textarea className='disable' style={{ background: '#f8f8f8' }} value={editCondtion.reportRange} disabled onChange={(e: any) => checkbox_click('reportRange', e.target.value)} />                            }                        </div>                    </div>
                    <div className='report_basic_line6'>                        <div >                            <span>所含关键指标</span>                            {                                rendreport == 1 &&                                <textarea className="disable" value={editCondtion.keyIndicators} disabled />                            }                            {                                rendreport == 2 &&                                <textarea className='disable' style={{ background: '#f8f8f8' }} value={editCondtion.keyIndicators} onChange={(e: any) => checkbox_click('keyIndicators', e.target.value)} disabled />                            }
                        </div>

                    </div>
                    {                        rendreport == 1 &&                        <div className='cancel'>                            <button className='btn_white hoverBorder2' onClick={() => { setRendreport(0) }} >取消</button>                            <button className={CollectList != null && CollectList.filter((el: any) => el.rid == editCondtion.rid).length > 0 ? 'btn_white disable btn_return' : 'btn_white hoverBorder2  btn_return'} onClick={() => CollectList != null && CollectList.filter((el: any) => el.rid == editCondtion.rid).length > 0 ? null : scribeReport()} >收藏</button>                            <button style={{ marginLeft: "15rem" }} className='btn_return btn_white  hoverBorder2' onClick={() => { ApiUtils.isPurview("F1501") ? setRendreport(2) : AlertUtil.errorMsg('您没报表修改权限!') }}>修改</button>
                        </div>                    }                    {                        rendreport == 2 &&                        <div className='cancel'>                            <button className='btn_white hoverBorder2' onClick={() => { setRendreport(0) }} >取消</button>                            <button className={CollectList != null && CollectList.filter((el: any) => el.rid == editCondtion.rid).length > 0 ? 'btn_white disable btn_return' : 'btn_white hoverBorder2  btn_return'} onClick={() => CollectList != null && CollectList.filter((el: any) => el.rid == editCondtion.rid).length > 0 ? null : scribeReport()} >收藏</button>                            <button style={{ marginLeft: "15rem" }} className='btn_return btn_red  hoverBorder2' onClick={modfily_comit}>提交</button>
                        </div>                    }                    <div style={{ clear: 'both' }}></div>                </div>            </div>        }    }

    //多选框点击弹出
    const checkcall = (val: any) => {        setChecked({            ...checked,            [val]: true        })    }
    const reportModule_callback = (val: any, list: any, chk: any) => {        console.log(list)        setChecked({            ...checked,            reportModule: val        })        setQueryCondtion({            ...queryCondtion,            reportModule: list ? list : null        })    }    const extract_reportModule_callback = (val: any, list: any, chk: any) => {        console.log(list)        setChecked({            ...checked,            extract_reportModule: val        })        setQueryCondtion({            ...extract,            reportModule: list ? list : null        })    }    const extract_SSO_callback = (val: any, list: any, chk: any) => {        console.log(list)        setChecked({            ...checked,            extract_SSO: val        })        setExtract({            ...extract,            SSO: list ? list : null        })    }    const extract_BU_callback = (val: any, list: any, chk: any) => {        let BU_list: any = [];        setChecked({            ...checked,            extract_BU: val        })        if (list) {            checkedList.BU.forEach((item: any) => {                list.forEach((i: any) => {                    if (i == item.ORG_NAME) {                        BU_list.push(item.ORG_ENGNAME)                    }                })            })            getCITY(BU_list)
            setExtract({                ...extract,                BU: list            })        }
    }    const extract_CITY_callback = (val: any, list: any, chk: any) => {        let CITY_list: any = [];        setChecked({            ...checked,            extract_CITY: val        })        list ? setExtract({            ...extract,            CITY: list        }) : setExtract({            ...extract        })

    }    const centralizedManagement_callback = (val: any, list: any, chk: any) => {        setChecked({            ...checked,            centralizedManagement: val        })        setQueryCondtion({            ...queryCondtion,            centralizedManagement: list ? list : null        })    }    const userDepartment_callback = (val: any, list: any, chk: any) => {        setChecked({            ...checked,            userDepartment: val        })        setQueryCondtion({            ...queryCondtion,            userDepartment: list ? list : null        })    }    const edit_userDepartment_callback = (val: any, list: any, chk: any) => {        setChecked({            ...checked,            edit_userDepartment: val        })        list ? setEditCondtion({            ...editCondtion,            userDepartment: list        }) : setEditCondtion({            ...editCondtion        })    }    const usageFrequency_callback = (val: any, list: any, chk: any) => {        setChecked({            ...checked,            usageFrequency: val        })        list ? setEditCondtion({            ...editCondtion,            usageFrequency: list        }) : setEditCondtion({            ...editCondtion        })    }    const header = () => {        console.log(openStates)    }    return (        // <div style={{height: 'calc(100vh - 72rem)'}}>        <div style={{ width: '100%', height: 'calc(100vh - 72rem)', display: 'flex', flexDirection: 'column' }}>
            <PageNav {...props} />            <div className='report_management'>
                <div style={{                    display: open ? "flex" : "none",                    zIndex: 1000,                    position: "absolute",                    right: '22rem',                    top: "0",                    alignContent: 'center'                }}>                    {                        ApiUtils.isPurview('F2101') ?                            <span style={{ color: openStates == 'UNI' ? xFontColor : "#D6D8DA", marginRight: "15rem" }}                                onClick={() => setOpenStates('UNI')}>核保 </span>                            : ""                    }                    {                        (ApiUtils.isPurview('F2101') && ApiUtils.isPurview('F2103')) ?                            <span style={{ marginRight: "15rem" }}>| </span>                            : ""                    }                    {                        ApiUtils.isPurview('F2103') ?                            <span style={{ color: openStates == 'CLM' ? xFontColor : "#D6D8DA", marginRight: "15rem" }}                                onClick={() => setOpenStates('CLM')}> 理赔 </span>                            : ""                    }                    {                        ((ApiUtils.isPurview('F2103') && ApiUtils.isPurview('F2102')) || (ApiUtils.isPurview('F2101') && ApiUtils.isPurview('F2102'))) ?                            <span style={{ marginRight: "15rem" }}>| </span>                            : ""                    }                    {                        ApiUtils.isPurview('F2102') ?                            <span style={{ color: openStates == 'POS' ? xFontColor : "#D6D8DA", marginRight: "15rem" }}                                onClick={() => setOpenStates('POS')}> 保全</span>                            : ""                    }
                </div>                <Tabs className='tabs' defaultActiveKey={props.history.location.state ? (props.history.location.state.keys) : "1"} centered={true} onChange={(e: any) => {                    if (e == 1) {                        search_click(null)                    }                }}>                    <TabPane                        tab={                            <div onClick={() => { setOpen(false) }}>                                <span className='tabs_triangle'></span>                                <span >格式报表管理</span>                            </div>                        }                        key="1"                        style={{ position: "relative" }}                    // locale={locale}                    >                        <div className='page_big'>                            <div className='search_condtion'>                                <div className='sp_lab'>                                    <div className='search_resul_rectangle'></div>                                    <span>查询条件</span>                                </div>                                <div className='search_condtion_top'>                                    <div>                                        <span>编码:</span>                                        <input type="text" value={queryCondtion.reportCode} onChange={(e: any) => checkbox_click_search('reportCode', e.target.value)} />                                    </div>                                    <div>                                        <span>报表名称:</span>                                        <input type="text" value={queryCondtion.reportName || ''} onChange={(e: any) => checkbox_click_search('reportName', e.target.value)} />                                    </div>                                    <div>                                        <span>任务类型:</span>                                        <div className='DivInput'>                                            {                                                queryCondtion.reportModule ? (queryCondtion.reportModule.length <= 2 ? queryCondtion.reportModule.map((value: React.ReactNode, index: string | number | undefined) => {                                                    return <p key={index}>{value}</p>                                                }) :                                                    <Title data={queryCondtion.reportModule} shu={2} />
                                                ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                            }                                            <SearchOutlined className='svg' onClick={() => checkcall('reportModule')} />                                        </div>                                    </div>                                    <div>                                        <span>归口管理部门:</span>                                        <div className='DivInput'>                                            {                                                queryCondtion.centralizedManagement ? (queryCondtion.centralizedManagement.length <= 2 ? queryCondtion.centralizedManagement.map((value: React.ReactNode, index: string | number | undefined) => {                                                    return <p key={index}>{value}</p>                                                }) :                                                    <Title data={queryCondtion.centralizedManagement} shu={2} />
                                                ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                            }                                            <SearchOutlined className='svg' onClick={() => checkcall('centralizedManagement')} />                                        </div>                                    </div>                                    <div>                                        <span>报表使用部门:</span>                                        <div className='DivInput'>                                            {                                                queryCondtion.userDepartment ? (queryCondtion.userDepartment.length <= 2 ? queryCondtion.userDepartment.map((value: React.ReactNode, index: string | number | undefined) => {                                                    return <p key={index}>{value}</p>                                                }) :                                                    <Title data={queryCondtion.userDepartment} shu={2} />
                                                ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                            }                                            <SearchOutlined className='svg' onClick={() => checkcall('userDepartment')} />                                        </div>
                                    </div>                                    <div></div>                                </div>
                                <div className='search_condtion_btn'>                                    <button className='btn_white hoverBorder2' onClick={clear_click}>清空</button>                                    <button className='btn_red btn_return hoverBorder2' onClick={() => search_click('page')} >查询</button>                                </div>                            </div>                            <div id="hisHead">                                {                                    viewHistory.tunon && <History rootIdData={viewHistory.rootId} guan={() => setViewHistory({ ...viewHistory, tunon: !viewHistory.tunon })} getHistoricalList={viewHistory.tunon}></History>                                }                            </div>                            <div className='search_resul'>
                                <div className='search_resul_table'>                                    {                                        // tabledata != undefined && tablecolumns != undefined ?                                        <TableList flag={true} theadList={tablecolumns} tbodyList={tabledata} isBig={false} isCheckBox={false} changesTHlist={Extract} getWorkteamId={RowDoubleClick} title="查询结果" />                                        // :null                                    }                                </div>                                {                                    ApiUtils.isPurview("F1502") &&                                    <div className='search_resul_btn'>                                        <div className="itableList_inData btn_icon btn_back  hoverBorder2" onClick={onExportExcel}>                                            <i className="bg_imgIcon_daochu" />                                            <span>导出</span>                                            {/* <FileUpload uploadType={"DictionaryQuota"} /> */}                                        </div>                                    </div>                                }                            </div>
                            {                                rendreport == 3 &&                                <div className='condtion_extract'>                                    <div className='condtion_select'>                                        <div className="close" onClick={() => setRendreport(0)}>                                            <span></span>                                            <img src={(window.rootUrl + "/images/deletebtn.svg")} alt="" />                                        </div>                                        <div className='sp_lab'>                                            <div className='search_resul_rectangle'></div>                                            <span>条件框定</span>                                        </div>                                        <div className='condtion_select_line1'>                                            <div>                                                <span>起始日期:</span>                                                <DatePicker format="YYYY-MM-DD" value={condtiontime.stime ? moment(condtiontime.stime, 'YYYY-MM-DD') : null} disabledDate={StartdisabledDate} onChange={cstime} />                                            </div>                                            <div>                                                <span>终止日期:</span>                                                <DatePicker format="YYYY-MM-DD" value={condtiontime.etime ? moment(condtiontime.etime, 'YYYY-MM-DD') : null} disabledDate={EnddisabledDate} onChange={cetime} />                                            </div>                                            <div style={{ width: "350rem" }}>                                                <span>任务类型:</span>                                                <div className='DivInput'>                                                    {                                                        extract.reportModule ? (extract.reportModule.length <= 2 ? extract.reportModule.map((value: React.ReactNode, index: string | number | undefined) => {                                                            return <p key={index}>{value}</p>                                                        }) :                                                            <Title data={extract.reportModule} shu={2} />
                                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                                    }                                                    <SearchOutlined className='svg' onClick={() => checkcall('extract_reportModule')} />                                                </div>
                                            </div>
                                        </div>                                        <div className='condtion_select_line2'>                                            <div>                                                <span>SSO:</span>                                                <div className='DivInput'>                                                    {                                                        extract.SSO ? (extract.SSO.length <= 2 ? extract.SSO.map((value: React.ReactNode, index: string | number | undefined) => {                                                            return <p key={index}>{value}</p>                                                        }) :                                                            <Title data={extract.SSO} shu={2} />
                                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                                    }                                                    <SearchOutlined className='svg' onClick={() => checkcall('extract_SSO')} />                                                </div>                                                {/* <CheckboxGroup value={checkedList.SSO} onChange={(e: any) => { GenerateReport('SSO', e) }}>                                                    <Checkbox value={"S-SSO"}>S-SSO</Checkbox>                                                    <Checkbox value={"N-SSO"}>N-SSO</Checkbox>                                                </CheckboxGroup> */}
                                            </div>                                            <div>                                                <span>BU:</span>                                                <div className='DivInput'>                                                    {                                                        extract.BU ? (extract.BU.length <= 2 ? extract.BU.map((value: React.ReactNode, index: string | number | undefined) => {                                                            return <p key={index}>{value}</p>                                                        }) :                                                            <Title data={extract.BU} shu={2} />
                                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                                    }                                                    <SearchOutlined className='svg' onClick={() => checkcall('extract_BU')} />                                                </div>                                                {/* <CheckboxGroup value={checkedList.BU} onChange={(e: any) => { GenerateReport('BU', e) }}>                                                    <Checkbox value={"上海BU"}>上海BU</Checkbox>                                                    <Checkbox value={"北京BU"}>北京BU</Checkbox>                                                </CheckboxGroup> */}                                            </div>                                            <div>                                                <span>CITY:</span>                                                <div className='DivInput'>                                                    {                                                        extract.CITY ? (extract.CITY.length <= 2 ? extract.CITY.map((value: React.ReactNode, index: string | number | undefined) => {                                                            return <p key={index}>{value}</p>                                                        }) :                                                            <Title data={extract.CITY} shu={2} />
                                                        ) : <span style={{ color: "#b2b2b2" }}>请选择</span>                                                    }                                                    <SearchOutlined className='svg' onClick={() => checkcall('extract_CITY')} />                                                </div>                                                {/* <CheckboxGroup value={checkedList.CITY} onChange={(e: any) => { GenerateReport('CITY', e) }}>                                                    <Checkbox value={"上海"}>上海</Checkbox>                                                    <Checkbox value={"北京"}>北京</Checkbox>                                                    <Checkbox value={"广州"}>广州</Checkbox>                                                </CheckboxGroup> */}
                                            </div>                                        </div>                                        <div className='condtion_select_btn'>                                            <button className='btn_white hoverBorder2' onClick={() => clear_extract()}>清空</button>                                            <button className='btn_red btn_return hoverBorder2' onClick={BuildReport}>生成</button>                                        </div>                                    </div>                                </div>
                            }                        </div>                        <div>                            {                                render_report()                            }                        </div>                    </TabPane>
                    {/* <TabPane                        tab={                            <div>                                <span className='tabs_triangle'></span>                                <span >自定义报表</span>                            </div>                        }                        key="2"                        style={{ position: "relative" }}                        // locale={locale}                    >                        <ReportCustom />                                            </TabPane>
                    <TabPane                        tab={                            // <div style={{height: 'calc(100vh - 15rem)',overflow: 'auto'}}>                            <div>                                <span className='tabs_triangle'></span>                                <span >报表订阅</span>                            </div>                        }                                        key="3"                        style={{ position: "relative" }}                        // locale={locale}                    >                        <ReportSubscribe />                                            </TabPane> */}
                    <TabPane                        tab={                            <div onClick={() => { setOpen(false) }}>                                <span className='tabs_triangle'></span>                                <span >我的报表</span>                            </div>                        }                        key="4"                        style={{ position: "relative" }}                    // locale={locale}                    >                        <MyReport CollectList={CollectList} />                    </TabPane>
                    <TabPane                        tab={                            <div onClick={() => { setOpen(true) }}>                                <span className='tabs_triangle'></span>                                <span>可视化报表</span>                            </div>                        }                        key="5" style={{ position: "relative" }}>                        <VisualReport openStates={openStates} xFontColor={xFontColor} />                    </TabPane>
                    <TabPane                        tab={                            <div onClick={() => { setOpen(true) }}>                                <span className='tabs_triangle'></span>                                <span>BU可视化报表</span>                            </div>                        }                        key="6" style={{ position: "relative" }}>                        <VisualReportForBu openStates={openStates} xFontColor={xFontColor} />                    </TabPane>
                </Tabs>            </div>            {/* 引入所有的多选框弹出框 */}            {                checked.reportModule && <CheckedList title="选择任务类型" data={quotaConfig.reportModule.map((item: any) => item = { code: item, title: item })} titlelist={queryCondtion.reportModule} flag={7} callBack={reportModule_callback} />            }            {                checked.extract_reportModule && <CheckedList title="选择任务类型" data={quotaConfig.reportModule.map((item: any) => item = { code: item, title: item })} titlelist={extract.reportModule} flag={7} callBack={extract_reportModule_callback} />            }            {                checked.centralizedManagement && <CheckedList title="选择归口管理部门" data={quotaConfig.centralizedManagement.map((item: any) => item = { code: item, title: item })} titlelist={queryCondtion.centralizedManagement} flag={7} callBack={centralizedManagement_callback} />            }            {                checked.userDepartment && <CheckedList title="选择报表使用部门" data={quotaConfig.userDepartment.map((item: any) => item = { code: item, title: item })} titlelist={queryCondtion.userDepartment} flag={7} callBack={userDepartment_callback} />            }            {                checked.edit_userDepartment && <CheckedList title="选择报表使用部门" data={quotaConfig.userDepartment.map((item: any) => item = { code: item, title: item })} titlelist={editCondtion.userDepartment} flag={7} callBack={edit_userDepartment_callback} />            }            {                checked.usageFrequency && <CheckedList title="选择统计频率" data={quotaConfig.usageFrequency.map((item: any) => item = { code: item, title: item })} titlelist={editCondtion.usageFrequency} flag={7} callBack={usageFrequency_callback} />            }            {                checked.extract_SSO && <CheckedList title="选择SSO" data={checkedList.SSO.map((item: any) => item = { code: item, title: item })} titlelist={extract.SSO} flag={7} callBack={extract_SSO_callback} />            }{                checked.extract_BU && <CheckedList title="选择BU" data={checkedList.BU.map((item: any) => item = { code: item.ORG_NAME, title: item.ORG_NAME })} titlelist={extract.BU} flag={7} callBack={extract_BU_callback} />            }{                checked.extract_CITY && <CheckedList title="选择CITY" data={checkedList.CITY.map((item: any) => item = { code: item.CITYNAME, title: item.CITYNAME })} titlelist={extract.CITY} flag={7} callBack={extract_CITY_callback} />            }        </div>    )}

posted @   德姆哥  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示