feat:日历设置中文
This commit is contained in:
parent
698ef16905
commit
c69381abad
|
@ -3,9 +3,12 @@ import React, {Fragment} from "react";
|
|||
import {TitleOperation} from "@/ui/task/TitleOperation";
|
||||
import LocalContext from "@/ui/LocalContent";
|
||||
import dayjs from "dayjs";
|
||||
import 'dayjs/locale/zh-cn';
|
||||
import {ConfigProvider} from "antd";
|
||||
import locale from "antd/locale/zh_CN";
|
||||
|
||||
export default function Layout({children}: { children: React.ReactNode }) {
|
||||
dayjs.locale('zh-cn');
|
||||
const [taskState, setTaskState] = React.useState<string>('8,9,10')
|
||||
let expectStartTimeList = [];
|
||||
expectStartTimeList.push({'name': "expectedStartTime", 'value': dayjs().subtract(7, 'day'), 'operateType': ">="});
|
||||
|
@ -22,6 +25,7 @@ export default function Layout({children}: { children: React.ReactNode }) {
|
|||
return (
|
||||
<Fragment>
|
||||
<ConfigProvider
|
||||
locale={locale}
|
||||
theme={{
|
||||
components: {
|
||||
Table: {
|
||||
|
@ -41,7 +45,8 @@ export default function Layout({children}: { children: React.ReactNode }) {
|
|||
'expectedStartTime': expectedStartTime,
|
||||
'refreshData': refreshDataFlag,
|
||||
'taskTypeList':taskTypeList
|
||||
}}>
|
||||
}}
|
||||
>
|
||||
<TitleOperation setTaskState={setTaskState} setExpectedStartTime={setExpectedStartTime}
|
||||
setTaskTypeList={setTaskTypeList}
|
||||
refreshData={refreshData}/>
|
||||
|
|
|
@ -142,10 +142,18 @@ export const TitleOperation: React.FC<TitleOperationProps> = ({
|
|||
allowClear
|
||||
style={{minWidth: '100px'}}
|
||||
placeholder="任务状态"
|
||||
defaultValue={data.taskState.split(",")}
|
||||
defaultValue={data.taskState!=''&&data.taskState.split(",").length>0?data.taskState.split(","):[]}
|
||||
onChange={(value) => {
|
||||
console.log('onChange')
|
||||
setTaskState(value.join(','))
|
||||
console.log('onChange',{value})
|
||||
if(value.length == 0){
|
||||
setTaskState("")
|
||||
}else {
|
||||
setTaskState(value.join(','))
|
||||
}
|
||||
}}
|
||||
onClear={()=>{
|
||||
console.log('onChange,点击了清除无效果')
|
||||
setTaskState("")
|
||||
}}
|
||||
options={taskStateList.map(item => {
|
||||
return {label: item.name, value: item.code}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
import React, {Fragment, useCallback, useContext, useEffect, useMemo, useRef, useState} from "react";
|
||||
import {Calendar, dateFnsLocalizer, dayjsLocalizer, Event, SlotInfo, View} from 'react-big-calendar'
|
||||
import dayjs, {Dayjs} from 'dayjs'
|
||||
import 'dayjs/locale/zh-cn';
|
||||
import 'react-big-calendar/lib/css/react-big-calendar.css'
|
||||
import 'react-big-calendar/lib/sass/styles.scss'
|
||||
import 'react-big-calendar/lib/addons/dragAndDrop/styles.scss'
|
||||
|
@ -16,10 +17,11 @@ import {TaskEvent} from "@/lib/task/calendar/data";
|
|||
import {editExpectAPI, getTaskAndScheduleRecordAPI} from "@/lib/task/calendar/service";
|
||||
import TaskNameAndIcon from "@/components/TaskNameAndIcon";
|
||||
import {TaskWebSelectVO} from "@/lib/task/project/definitions";
|
||||
import {message} from "antd";
|
||||
import {message,Modal} from "antd";
|
||||
import ClickRecord from "@/components/ClickRecord";
|
||||
import {editClickRecordRangeAPI} from "@/components/service/ScheduleTask";
|
||||
|
||||
import {ExclamationCircleFilled} from "@ant-design/icons";
|
||||
const { confirm } = Modal;
|
||||
/**
|
||||
* https://github.com/jquense/react-big-calendar?tab=readme-ov-file
|
||||
* @constructor
|
||||
|
@ -46,8 +48,9 @@ const CalShow: React.FC = () => {
|
|||
start: dayjs(date).startOf('week').toDate(),
|
||||
end: dayjs(date).endOf('week').toDate()
|
||||
});
|
||||
// const [state,setState]=useState( useContext(LocalContext).taskState)
|
||||
// const [taskTypeList,setTaskTypeList] = useState(useContext(LocalContext).taskTypeList)
|
||||
const {taskState:state,taskTypeList} = useContext(LocalContext);
|
||||
|
||||
const [searchObject,setSearchObject] =
|
||||
useState<Request<TaskWebSelectVO>>({
|
||||
pageSize: 9999,
|
||||
|
@ -87,6 +90,7 @@ const CalShow: React.FC = () => {
|
|||
|
||||
useEffect(() => {
|
||||
console.log("CalShow:useEffect:range", range)
|
||||
|
||||
// const searchListE = []
|
||||
if (pid != null) {
|
||||
// searchListE.push(
|
||||
|
@ -109,7 +113,7 @@ const CalShow: React.FC = () => {
|
|||
return () => {
|
||||
clearClickTimeout()
|
||||
}
|
||||
}, [useContext(LocalContext), range]);
|
||||
}, [state,taskTypeList,range]);
|
||||
const calMessages = {
|
||||
week: '周',
|
||||
work_week: '工作周',
|
||||
|
@ -121,13 +125,8 @@ const CalShow: React.FC = () => {
|
|||
agenda: '日程'
|
||||
}
|
||||
const loadData = (searchList?: SearchObject[]) => {
|
||||
if (state.length > 0) {
|
||||
// searchList.push({name: 'state', value: state, operateType: "IN"})
|
||||
searchObject.data.state=state
|
||||
}
|
||||
if (taskTypeList.length>0){
|
||||
searchObject.data.taskTypeList=taskTypeList
|
||||
}
|
||||
searchObject.data.state=state
|
||||
searchObject.data.taskTypeList=taskTypeList
|
||||
searchObject.data.expectedStartTime=range.start
|
||||
searchObject.data.expectedEndTime=range.end
|
||||
setSearchObject({...searchObject})
|
||||
|
@ -232,31 +231,42 @@ const CalShow: React.FC = () => {
|
|||
message.error("计划双击完成,非计划双击无效果。")
|
||||
return;
|
||||
}
|
||||
// 数据落库
|
||||
commonUpdate({
|
||||
updateColumnList: [{
|
||||
name: '任务状态',
|
||||
code: 'state',
|
||||
value: 7
|
||||
}],
|
||||
conditionColumnList: [{
|
||||
name: 'id',
|
||||
code: 'id',
|
||||
operateType: '=',
|
||||
value: event.resource
|
||||
}]
|
||||
})
|
||||
setEvents((prev: TaskEvent[]) => {
|
||||
const existing: TaskEvent | undefined = prev.find((ev: TaskEvent) => ev.resource === event.resource);
|
||||
const filtered: TaskEvent[] | undefined = prev.filter((ev: TaskEvent) => ev.resource !== event.resource);
|
||||
let result: TaskEvent[] = [];
|
||||
if (existing !== undefined && filtered !== undefined) {
|
||||
result = [...filtered, {...existing, state: 7}];
|
||||
}
|
||||
let strings = state.split(",");
|
||||
console.log('result', result, strings)
|
||||
return result.filter((ev: TaskEvent) => !ev.state || strings.indexOf(ev.state.toString()) >= 0);
|
||||
})
|
||||
confirm({
|
||||
title: '完成任务',
|
||||
icon: <ExclamationCircleFilled />,
|
||||
content: `确认要完成任务${event.name}吗?`,
|
||||
onOk() {
|
||||
// 数据落库
|
||||
commonUpdate({
|
||||
updateColumnList: [{
|
||||
name: '任务状态',
|
||||
code: 'state',
|
||||
value: 7
|
||||
}],
|
||||
conditionColumnList: [{
|
||||
name: 'id',
|
||||
code: 'id',
|
||||
operateType: '=',
|
||||
value: event.resource
|
||||
}]
|
||||
})
|
||||
setEvents((prev: TaskEvent[]) => {
|
||||
const existing: TaskEvent | undefined = prev.find((ev: TaskEvent) => ev.resource === event.resource);
|
||||
const filtered: TaskEvent[] | undefined = prev.filter((ev: TaskEvent) => ev.resource !== event.resource);
|
||||
let result: TaskEvent[] = [];
|
||||
if (existing !== undefined && filtered !== undefined) {
|
||||
result = [...filtered, {...existing, state: 7}];
|
||||
}
|
||||
let strings = state.split(",");
|
||||
console.log('result', result, strings)
|
||||
return result.filter((ev: TaskEvent) => !ev.state || strings.indexOf(ev.state.toString()) >= 0);
|
||||
})
|
||||
},
|
||||
onCancel() {
|
||||
console.log('Cancel');
|
||||
},
|
||||
});
|
||||
|
||||
}, 250)
|
||||
}
|
||||
|
||||
|
|
|
@ -173,7 +173,7 @@ const TreeTablePro: React.FC = (props: { joinId?: string }) => {
|
|||
<Switch key={2} checkedChildren="树" unCheckedChildren="列表" checked={switchChecked}
|
||||
onChange={(checked, event) => {
|
||||
setSwitchChecked(checked);
|
||||
actionRef.current?.reset?.();
|
||||
actionRef.current?.reload?.();
|
||||
}}/>,
|
||||
];
|
||||
if (switchChecked) {
|
||||
|
@ -239,6 +239,7 @@ const TreeTablePro: React.FC = (props: { joinId?: string }) => {
|
|||
// data: searchList
|
||||
// })
|
||||
// // const response = await getTaskTreeResult(request)
|
||||
console.log({params})
|
||||
const search: TaskWebSelectVO =
|
||||
{
|
||||
pid: pid,
|
||||
|
|
Loading…
Reference in New Issue