import React, { useState, useEffect, useRef } from "react"; import { connect } from "react-redux"; import { Button, Form, Modal, Skeleton, Pagination, Table } from "@douyinfe/semi-ui"; import { SkeletonScreen, } from "$components"; import moment from "moment"; import { validate } from "schema-utils"; import { emit } from "superagent"; const TableData = ({ route, dispatch, actions, collectData, setSetup, exhibition, selected, setSelected, setIfBulk, setConfirm, setGenre, query, setQuery }) => { const { problem } = actions const [tableData, setTableData] = useState([]) //表格数据 const [count, setCount] = useState(0) // const [search, setSearch] = useState({}) //查询 const [checkAll, setCheckAll] = useState(true) //查询 const api = useRef(); useEffect(() => { switch (route) { case 'useAbnormal': dispatch(problem.getAlarmLnspectionApi({})).then((res) => { console.log(res.payload.data) if (res.success) { let typeData = { element: "元素异常", apiError: "接口报错 ", timeout: "加载超时" } setCount(res.payload.data?.count || 0) let tableDatas = res.payload.data?.rows.map(v => ({ key: v.id, // serialNumber: v.serialNumber, projectName: v.app?.projectCorrelations?.map(r => (r.name ? { name: r.name, state: '自定义' } : { name: r.pepProject?.project_name, state: r.pepProject?.construction_status }))?.filter(c => c), appName: v.app?.name, url: v.app?.url, createTime: v.createTime ? moment(v.createTime).format("YYYY-MM-DD HH:mm:ss") : "", updateTime: v.updateTime ? moment(v.updateTime).format("YYYY-MM-DD HH:mm:ss") : "", confirmTime: v.confirmTime ? moment(v.confirmTime).format("YYYY-MM-DD HH:mm:ss") : "", alarmContent: v.alarmContent, screenshot: v.screenshot, type: v.type ? typeData[v.type] : "", confirm: v.confirm, })) console.log(tableDatas); setTableData(tableDatas) } }) break; case 'videoAbnormal': break; default: dispatch(problem.getAlarmDataGroup()).then((res) => { if (res.success) { // console.log(res.payload.data); let routeData = { dataLnterrupt: '数据中断', dataAbnormal: '数据异常', strategyHit: '策略命中', deviceAbnormal: '' } let data if (route == 'dataLnterrupt') data = res.payload.data?.filter(v => v.desc == '数据中断') if (route == 'dataAbnormal') data = res.payload.data?.filter(v => v.desc == '数据异常') if (route == 'strategyHit') data = res.payload.data?.filter(v => v.desc == '策略命中') if (route == 'deviceAbnormal') data = res.payload.data?.filter(v => v.desc == '掉线' || v.desc == '不活跃') // console.log(data); let genreData = [] data?.map(v => { v?.unit?.map(vv => { genreData.push({ name: vv.name, value: vv.id }) }) }) console.log(genreData); setGenre(genreData) if (data && data[0]?.id) { dispatch(problem.getAlarmDataList({ ...query, ...search, groupId: data.map(v => v.id).join(), pepProjectId: '' })).then((res) => { console.log(res); if (res.success) { setCount(res.payload.data?.count || 0) let tableDatas = res.payload.data?.rows?.map(v => ({ key: v.AlarmId, StructureName: v.StructureName, projectName: v.pomsProject?.map(r => (r.name ? { name: r.name, state: 'PMOS' } : { name: r.pepProject?.projectName, state: r.pepProject?.constructionStatus }))?.filter(c => c), createTime: v.StartTime ? moment(v.StartTime).format("YYYY-MM-DD HH:mm:ss") : "", updateTime: v.EndTime ? moment(v.EndTime).format("YYYY-MM-DD HH:mm:ss") : "", confirmTime: v.confirmedTime ? moment(v.confirmedTime).format("YYYY-MM-DD HH:mm:ss") : "", SourceName: v.SourceName, AlarmGroupUnit: v.AlarmGroupUnit ? genreData.find(r => r.value == v.AlarmGroupUnit)?.name : "", Strategy: v.AlarmGroupUnit ? genreData.find(r => r.value == v.AlarmGroupUnit)?.name : "", type: v.AlarmGroupUnit ? genreData.find(r => r.value == v.AlarmGroupUnit)?.name : "", AlarmCodeName: v.AlarmCodeName, CurrentLevel: v.CurrentLevel, detailCount: v.detailCount, AlarmContent: v.AlarmContent, State: v.State, alarmType: v.alarmType, confirm: v.confirmedContent, })) console.log(tableDatas); setTableData(tableDatas) } }) } } }) break; } }, [query, search]) return ( <>
console.log(values)} // onValueChange={values=>console.log(values)} getFormApi={(formApi) => (api.current = formApi)} layout="horizontal" style={{ position: "relative", width: "100%", flex: 1 }} > {(() => { let frame = [] collectData[route]?.map((v, index) => { if (index == 0) { frame.push( {[{ name: "告警源", value: "source" }, { name: "项目", value: "pepProject" }, { name: "结构物", value: "struc" },].map(vv => { return {vv.name} })} ) } else { frame.push( {v.data?.map((item) => { return ( {item.name} ); })} ) } }) frame.push( console.log(v)} />) return frame })()}
setSetup(true)} />
{ if (index % 1 === 0) { return { style: { background: '#FAFCFF' } } } }} rowSelection={{ selectedRowKeys: selected || [], getCheckboxProps: record => ({ disabled: record.confirmTime ? true : false, // name: record.name, }), onSelect: (record, selected) => { console.log(`select row: ${selected}`, record); }, // onSelectAll: (selected, selectedRows) => { // console.log(`select all rows: ${selected}`, selectedRows); // }, onChange: (selectedRowKeys, selectedRows) => { console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); setSelected(selectedRows?.map(v => v.key)) }, }} />
勾选{selected.length}条问题
{count > 0 ?
共{count}个问题 { setQuery({ limit: pageSize, page: currentPage - 1 }); // page.current = currentPage - 1 }} />
: ""}
) } function mapStateToProps (state) { const { auth, global, members } = state; // console.log(auth.user); return { user: auth.user, actions: global.actions, global: global, // members: members, }; } export default connect(mapStateToProps)(TableData);