'use client' import { CheckSquareFilled, EllipsisOutlined, HeartFilled, HeartOutlined, PlusOutlined, QuestionCircleOutlined } from '@ant-design/icons'; import type {ActionType, ProColumns} from '@ant-design/pro-components'; import {ProTable, TableDropdown} from '@ant-design/pro-components'; import {Button, Dropdown, Space, Switch, Tag, Tooltip} from 'antd'; import React, {useContext, useEffect, useRef} from 'react'; import {DataType} from "@/app/lib/definitions"; import { getTaskTreeResult, OPERATION_BUTTON_TYPE, taskPriorityList, taskStateList, taskTreeResult } from "@/app/lib/task/project/data"; import {DetailModelForm} from "@/app/ui/task/project/DetailModelForm"; import OperationButton from "@/app/ui/task/OperationButton"; import LocalContext from "@/app/ui/LocalContent"; const TreeTablePro: React.FC = () => { const actionRef = useRef(); const [switchChecked, setSwitchChecked] = React.useState(true); const [filterChecked, setFilterChecked] = React.useState(true); const columns: ProColumns[] = [ { title: '任务编码', dataIndex: 'code', width: '10%', }, { title: '任务名称', dataIndex: 'name', width: '15%', copyable: true, ellipsis: true, tooltip: '标题过长会自动收缩', formItemProps: { rules: [ { required: true, message: '此项为必填项', }, ], }, }, { title: '任务描述', dataIndex: 'description', }, { title: '任务优先级', dataIndex: 'priority', order:1, valueType: 'select', fieldProps: { mode:"tags", options: taskPriorityList.map(item => { return {label: item.name, value: item.code} }) }, // renderFormItem: (_, { defaultRender }) => { // return defaultRender(_); // }, render: (_, record) => ( { // item.code === record.priority?.toString())?.color} // key={taskPriorityList.find(item => item.code === record.priority?.toString())?.code}> // {taskPriorityList.find(item => item.code === record.priority?.toString())?.name} //
{/*< HeartFilled/>*/} item.code === record.priority?.toString())?.color}}/> {taskPriorityList.find(item => item.code === record.priority?.toString())?.name}
}
), }, { title: '任务状态', dataIndex: 'state', valueType: 'select', order:2, initialValue:['8','9'], fieldProps: { defaultValue:['8','9'], mode:"tags", options: taskStateList.map(item => { return {label: item.name, value: item.code} }) }, // renderFormItem: (_, { defaultRender }) => { // return defaultRender(_); // }, // render: (_, record) => ( // // { // item.code === record.state?.toString())?.color} // key={taskStateList.find(item => item.code === record.state?.toString())?.code}> // {taskStateList.find(item => item.code === record.state?.toString())?.name} // // } // // ), }, { title: '期望开始时间', dataIndex: 'expectedStartTime', valueType: 'date', }, { title: '期望结束时间', dataIndex: 'expectedEndTime', valueType: 'date', }, { title: '实际开始时间', dataIndex: 'actualStartTime', valueType: 'date', }, { title: '期望结束时间', dataIndex: 'actualEndTime', valueType: 'date', }, { title: '操作', key: 'option', valueType: 'option', render: (_, record) => , } ]; let toolBarRenderList = [ , {setSwitchChecked(checked);actionRef.current?.reset?.();}} />, ]; if (switchChecked){ toolBarRenderList.push(<>树子集是否参与过滤 {setFilterChecked(checked);actionRef.current?.reload();}} />) } return ( columns={columns} actionRef={actionRef} cardBordered request={async (params, sort, filter) => { console.log('request',params,params.keyword,sort, filter); const searchList=[] if (switchChecked) { searchList.push({name:'pid',value:'0',operateType:"="},{name:'tree',value:'TRUE',operateType:"TREE"}) } if (filterChecked) { searchList.push({name:'tree',value:'TRUE',operateType:"TREE-FILTER"}) } if (params.state instanceof Array&¶ms.state.length>0){ searchList.push({name:'state',value:params.state.join(','),operateType:"IN"}) } if (params.priority instanceof Array&¶ms.state.length>0){ searchList.push({name:'priority',value:params.priority.join(','),operateType:"IN"}) } if (params.name){ searchList.push({name:'name',value:params.name,operateType:"LIKE"}) } if (params.description){ searchList.push({name:'description',value:params.description,operateType:"LIKE"}) } if (params.code){ searchList.push({name:'code',value:params.code,operateType:"="}) } let request = JSON.stringify({ pageSize:params.pageSize, pageNumber:params.current, data: searchList }) const response = await getTaskTreeResult(request) return { data: response.data.content, success: response.status.success, total :response.data.totalElements, } }} editable={{ type: 'multiple', }} columnsState={{ persistenceKey: 'pro-table-singe-demos', persistenceType: 'localStorage', defaultValue: { option: {fixed: 'right', disable: true}, }, // onChange(value) { // console.log('value: ', value); // }, }} rowKey="id" pagination={{ pageSize: 5, onChange: (page) => console.log(page), }} dateFormatter="string" // headerTitle="任务管理" toolBarRender={()=>toolBarRenderList}> ); }; export default TreeTablePro