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