diff --git a/src/lib/task/project/data.tsx b/src/lib/task/project/data.tsx index 6e3f29d..7b23b02 100644 --- a/src/lib/task/project/data.tsx +++ b/src/lib/task/project/data.tsx @@ -1,7 +1,7 @@ import {unstable_noStore as noStore} from 'next/cache'; import {AxiosResponse} from "axios"; import {httpReq} from "@/utils/axiosReq"; -import {DataType, DictType, Request, ResponseVO, ResultPage} from "@/lib/definitions"; +import {DataType, DictType, Request, ResponseVO, ResultPage, TaskMessage} from "@/lib/definitions"; import {TaskWebSelectVO} from "@/lib/task/project/definitions"; export async function getTaskTreeResult(requestParam: string): Promise>> { @@ -52,12 +52,20 @@ export async function getTask(id: string): Promise> { return response.data; } -export async function addTask(task: DataType): Promise> { +export function addTask(task: DataType): Promise>> { noStore(); // 使用 Axios 发送 POST 请求添加数据 - const response: AxiosResponse> = await httpReq.post(process.env.NEXT_PUBLIC_TODO_REQUEST_URL + '/task', task); - // 从响应中提取数据并返回 - return response.data; + switch(task.taskType){ + // 常规任务 + case '0':return httpReq.post(process.env.NEXT_PUBLIC_TODO_REQUEST_URL + '/V2/task', task); + // 团队任务 + case '1':return httpReq.post(process.env.NEXT_PUBLIC_TODO_REQUEST_URL + '/V2/task', task); + // 顺序 + case '2':return httpReq.post(process.env.NEXT_PUBLIC_TODO_REQUEST_URL + '/task/step/sort', task); + // 周期 + case '3':return httpReq.post(process.env.NEXT_PUBLIC_TODO_REQUEST_URL + '/task/schedule', task); + default:throw new Error("创建任务必选任务类型"); + } } export async function updateTask(task: DataType): Promise> { diff --git a/src/ui/task/calendar/CalShow.tsx b/src/ui/task/calendar/CalShow.tsx index c85a400..1499ade 100644 --- a/src/ui/task/calendar/CalShow.tsx +++ b/src/ui/task/calendar/CalShow.tsx @@ -268,6 +268,7 @@ const CalShow: React.FC = () => { {open && setOpen(false)} expectedEndTime={expectedEndTime}/>} void, expectedStartTime?: Dayjs, expectedEndTime?: Dayjs, // 重新加载数据 @@ -44,14 +45,12 @@ export type PidSelectTree = { label: string; value: string; pid: string; childre export const DetailModelForm: React.FC = (props) => { console.log("DetailModelForm:props:", props) - const [closeButton,setCloseButton] =useState(false) const [form] = Form.useForm(); - const [requestTask,setRequestTask]=useState() + const [requestTask, setRequestTask] = useState() const [editFormDisable, setEditFormDisable] = useState(props.operationId === OPERATION_BUTTON_TYPE.DETAIL) // 团队第一层 pid必须为0 const [taskType, setTaskType] = useState('0') useEffect(() => { - setCloseButton(false) if (props.itemId != undefined && ( props.operationId === OPERATION_BUTTON_TYPE.DETAIL || props.operationId === OPERATION_BUTTON_TYPE.UPDATE)) { getTask(props.itemId).then(task => { @@ -65,8 +64,8 @@ export const DetailModelForm: React.FC = (props) => { task.data.expectedTimeRange = [task.data.expectedStartTime ? dayjs(task.data.expectedStartTime) : undefined, task.data.expectedEndTime ? dayjs(task.data.expectedEndTime) : undefined]; form.setFieldsValue(task.data) - if (task.data.pid=="0"){ - form.setFieldValue("pid",undefined) + if (task.data.pid == "0") { + form.setFieldValue("pid", undefined) } setRequestTask(task.data) console.log("form.setFieldsValue(task.data)" + JSON.stringify(task.data)) @@ -79,8 +78,8 @@ export const DetailModelForm: React.FC = (props) => { let data = { 'expectedTimeRange': [props.expectedStartTime ? props.expectedStartTime : dayjs(), props.expectedEndTime], 'pid': props.pid, - 'description':props.taskContent, - 'name':props.taskContent&&props.taskContent?.length>10?props.taskContent.substring(0,10):props.taskContent, + 'description': props.taskContent, + 'name': props.taskContent && props.taskContent?.length > 10 ? props.taskContent.substring(0, 10) : props.taskContent, }; form.setFieldsValue(data) } @@ -106,7 +105,7 @@ export const DetailModelForm: React.FC = (props) => { return ( title={props.description} - open={props.open && !props.haveButton&&!closeButton} + open={props.open && !props.haveButton} trigger={props.haveButton ? : undefined, + >编辑 : undefined, props.operationId === OPERATION_BUTTON_TYPE.DETAIL || props.operationId === OPERATION_BUTTON_TYPE.UPDATE ? = (props) => { } }} > - - : undefined - , - requestTask&&requestTask.id?:undefined, + : undefined, + requestTask && requestTask.id ? + : undefined, ] + // 非新增或者编辑状态不展示 if (!editFormDisable) { result.push(...defaultDoms) - }else { - result.push() + } else { + result.push() + result.push() } return result; }, - } : undefined} + } : { + render: (prop, defaultDoms) => { + console.log("submitter render: ", {prop}, {props},{taskType},{defaultDoms}) + // if ( prop.searchConfig) { + // if (taskType == '1') { + // prop.searchConfig.submitText = "创建团队" + // }else { + // prop.searchConfig.submitText = "确认" + // } + // } + // return defaultDoms; + const result = defaultDoms.filter(defaultButton=>defaultButton.key=='rest'); + result.push() + return result; + } + } + } onFinish={async (values) => { - console.log('Received values of form: ', values,{...requestTask,...values}); + {/* onFinish 返回true关闭窗口,范湖false不关闭窗口 */ + } + console.log('Received values of form: ', values, {...requestTask, ...values}); if (requestTask) { - const {sortNo}=requestTask; - values.sortNo=sortNo; + const {sortNo} = requestTask; + values.sortNo = sortNo; } if (values.pid === undefined) { values.pid = '0' @@ -231,16 +243,16 @@ export const DetailModelForm: React.FC = (props) => { } else { await addTask(values).then(response => { console.log('response', response) - if (response.status.success) { - message.success("添加任务成功:" + response.data) + if (response.data.status.success) { + message.success(`添加计划${response.data.data.name}成功`) // 树任务重新刷新 // 四象限任务重新刷新 // 如果可以直接更新列表而不请求。。。。。。 console.log('props.reloadData?.()', props.reloadData) + result = (taskType!='1') props.reloadData?.() - result = true } else { - message.error(response.status.message) + message.error(response.data.status.message) result = false } } @@ -259,7 +271,7 @@ export const DetailModelForm: React.FC = (props) => { width="sm" name="taskType" label="任务类型" - initialValue='0' + initialValue={taskType} disabled={editFormDisable} onChange={(value: string, option) => { setTaskType(value) @@ -290,12 +302,12 @@ export const DetailModelForm: React.FC = (props) => { pageSize: 1000, pageNumber: 1, data: [{code: 'pid', value: '0', operateType: '='}, - // 如果父任务完成会导致父任务不展示 - // { - // code: 'state', - // value: '8,9', - // operateType: 'IN' - // }, + // 如果父任务完成会导致父任务不展示 + // { + // code: 'state', + // value: '8,9', + // operateType: 'IN' + // }, {code: '', value: true, operateType: "TREE"}] } )).then(result => childReduce(result.data.content)) @@ -330,52 +342,48 @@ export const DetailModelForm: React.FC = (props) => { /> taskPriorityList.map(taskState => { - return { - 'label': taskState.name, - 'value': taskState.code - } - })} + request={async () => + taskPriorityList.map + ( + taskState => { + return {'label': taskState.name, 'value': taskState.code} + } + ) + } width="sm" name="priority" label="任务优先级" initialValue='3' disabled={editFormDisable} - rules={[ - { - required: true, - message: "请选择计划优先级" - } - ]} + rules={[{required: true, message: "请选择计划优先级"}]} /> { - return { - 'label': taskState.name, - 'value': taskState.code - } + return {'label': taskState.name, 'value': taskState.code} })} name="state" label="任务状态" initialValue='8' disabled={editFormDisable} - rules={[ - { - required: true, - message: "请选择计划状态" - } - ]} + rules={ + [ + { + required: true, + message: "请选择计划状态" + } + ] + } /> @@ -399,4 +407,4 @@ export const DetailModelForm: React.FC = (props) => { ); -}; +}; \ No newline at end of file