From a17155a64931295a18631f16d411c1aedf07332e Mon Sep 17 00:00:00 2001 From: shixiaohua Date: Fri, 26 Apr 2024 09:10:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=AE=BE=E7=BD=AE=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/lib/task/project/data.tsx | 15 ++++++++++++++ src/app/task/layout.tsx | 21 +++++++++++++++---- src/app/ui/task/OperationButton.tsx | 23 ++++++++++++++++++++- src/app/ui/task/project/TreeTablePro.tsx | 26 +++++++++++++----------- 4 files changed, 68 insertions(+), 17 deletions(-) diff --git a/src/app/lib/task/project/data.tsx b/src/app/lib/task/project/data.tsx index d45db1a..ac19189 100644 --- a/src/app/lib/task/project/data.tsx +++ b/src/app/lib/task/project/data.tsx @@ -18,6 +18,21 @@ export async function getTaskTreeResult(requestParam:string): Promise> { + noStore(); + try { + // 使用 Axios 发送 PUT 请求获取数据 + const response: AxiosResponse> = await axios.put( + 'http://localhost:8090/search/task_message_tree',requestParam); + // 从响应中提取数据并返回 + return response.data; + } catch (error) { + // 处理错误 + console.error('Error fetching data:', error); + // 返回一个默认值或者抛出错误 + throw new Error('Failed to fetch data'); + } +} export async function taskTreeResult(): Promise>> { noStore(); diff --git a/src/app/task/layout.tsx b/src/app/task/layout.tsx index 7627050..1594c07 100644 --- a/src/app/task/layout.tsx +++ b/src/app/task/layout.tsx @@ -3,6 +3,8 @@ import React from "react"; import {TitleOperation} from "@/app/ui/task/TitleOperation"; import LocalContext from "@/app/ui/LocalContent"; import dayjs from "dayjs"; +import {taskPriorityList} from "@/app/lib/task/project/data"; +import {ConfigProvider} from "antd"; export default function Layout({children}: { children: React.ReactNode }) { const [taskState, setTaskState] = React.useState('8,9') @@ -17,11 +19,22 @@ export default function Layout({children}: { children: React.ReactNode }) { console.log('taskState,expectedStartTime,refreshDataFlag',taskState,expectedStartTime,refreshDataFlag) return (
+ + + + {children} + + - - - {children} -
); } diff --git a/src/app/ui/task/OperationButton.tsx b/src/app/ui/task/OperationButton.tsx index f8c5f5d..f8376e2 100644 --- a/src/app/ui/task/OperationButton.tsx +++ b/src/app/ui/task/OperationButton.tsx @@ -2,7 +2,7 @@ import React, {Fragment} from "react"; import {Button, Dropdown, MenuProps, message, Modal, Popconfirm, Space} from "antd"; import {DownOutlined, QuestionCircleOutlined} from "@ant-design/icons"; import {DetailForm} from "@/app/ui/task/four/DetailForm"; -import {deleteTask, OPERATION_BUTTON_TYPE} from "@/app/lib/task/project/data"; +import {commonUpdate, deleteTask, OPERATION_BUTTON_TYPE} from "@/app/lib/task/project/data"; import Link from "next/link"; export interface OperationButtonProps { @@ -87,6 +87,27 @@ class OperationButton extends React.Component { + commonUpdate({ + updateColoumList:[{ + name:'state', + code:'state', + value:'7' + }], + conditionColoumList:[{ + name:'id', + code:'id', + operateType:'=', + value:this.props.itemId + }] + }).then((response => { + console.log('response', response) + if (response.status.success) { + message.success("完成任务成功") + this.props.refreshDate?.() + } + })); + }} >完成任务, }, { diff --git a/src/app/ui/task/project/TreeTablePro.tsx b/src/app/ui/task/project/TreeTablePro.tsx index 596e081..42ad2c9 100644 --- a/src/app/ui/task/project/TreeTablePro.tsx +++ b/src/app/ui/task/project/TreeTablePro.tsx @@ -1,15 +1,11 @@ 'use client' import { CheckSquareFilled, - EllipsisOutlined, - HeartFilled, - HeartOutlined, - PlusOutlined, QuestionCircleOutlined } from '@ant-design/icons'; -import type {ActionType, ProColumns} from '@ant-design/pro-components'; +import type {ActionType, FormInstance, ProColumns} from '@ant-design/pro-components'; import {ProTable, TableDropdown} from '@ant-design/pro-components'; -import {Button, Dropdown, Space, Switch, Tag, Tooltip} from 'antd'; +import {Button, DatePicker, Dropdown, Space, Switch, Tag, Tooltip} from 'antd'; import React, {useContext, useEffect, useRef} from 'react'; import {DataType} from "@/app/lib/definitions"; import { @@ -17,18 +13,22 @@ import { 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 formRef = useRef(); const [switchChecked, setSwitchChecked] = React.useState(true); const [filterChecked, setFilterChecked] = React.useState(true); + const reloadData=()=>{ + actionRef.current?.reload(); + formRef.current?.submit(); + } + const { RangePicker } = DatePicker; const columns: ProColumns[] = [ { title: '任务编码', @@ -116,6 +116,7 @@ const TreeTablePro: React.FC = () => { title: '期望开始时间', dataIndex: 'expectedStartTime', valueType: 'date', + renderFormItem:()=> }, { title: '期望结束时间', @@ -136,22 +137,23 @@ const TreeTablePro: React.FC = () => { title: '操作', key: 'option', valueType: 'option', - render: (_, record) => , + render: (_, record) => , } ]; let toolBarRenderList = [ - , + , {setSwitchChecked(checked);actionRef.current?.reset?.();}} />, + onChange={(checked, event) => {setSwitchChecked(checked);actionRef.current?.reset?.();formRef.current?.submit();}} />, ]; if (switchChecked){ toolBarRenderList.push(<>树子集是否参与过滤 {setFilterChecked(checked);actionRef.current?.reload();}} />) + onChange={(checked, event) => {setFilterChecked(checked);reloadData();}} />) } return ( columns={columns} + formRef={formRef} actionRef={actionRef} cardBordered request={async (params, sort, filter) => {