feat:设置查询范围
This commit is contained in:
parent
f208fc593a
commit
6cca06d4be
|
@ -25,7 +25,7 @@ const localizer = dayjsLocalizer(dayjs)
|
||||||
const DragAndDropCalendar = withDragAndDrop(Calendar)
|
const DragAndDropCalendar = withDragAndDrop(Calendar)
|
||||||
const CalShow: React.FC = () => {
|
const CalShow: React.FC = () => {
|
||||||
dayjs.locale('zh-cn')
|
dayjs.locale('zh-cn')
|
||||||
const [view, setView] = useState<View>('month');
|
const [view, setView] = useState<View>('week');
|
||||||
const [date, setDate] = useState<Date>(new Date());
|
const [date, setDate] = useState<Date>(new Date());
|
||||||
const clickRef = useRef<number|undefined|null>(null)
|
const clickRef = useRef<number|undefined|null>(null)
|
||||||
// 展示在页面的任务,默认获取当前月的信息。
|
// 展示在页面的任务,默认获取当前月的信息。
|
||||||
|
@ -36,6 +36,10 @@ const CalShow: React.FC = () => {
|
||||||
const [itemId, setItemId] = useState(-1);
|
const [itemId, setItemId] = useState(-1);
|
||||||
const [expectedStartTime, setExpectedStartTime] = useState<Dayjs>();
|
const [expectedStartTime, setExpectedStartTime] = useState<Dayjs>();
|
||||||
const [expectedEndTime, setExpectedEndTime] = useState<Dayjs>();
|
const [expectedEndTime, setExpectedEndTime] = useState<Dayjs>();
|
||||||
|
const [range, setRange] = useState<{start: Date; end: Date}>({
|
||||||
|
start: dayjs(date).startOf('week').toDate(),
|
||||||
|
end: dayjs(date).endOf('week').toDate()
|
||||||
|
});
|
||||||
|
|
||||||
let state: string = useContext(LocalContext).taskState
|
let state: string = useContext(LocalContext).taskState
|
||||||
const handleViewChange = (newView: View) => {
|
const handleViewChange = (newView: View) => {
|
||||||
|
@ -56,12 +60,13 @@ const CalShow: React.FC = () => {
|
||||||
operateType: "TREE"
|
operateType: "TREE"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
searchList.push({name: "expectedStartTime", value: dayjs(newDate).startOf('month'), operateType: ">="})
|
searchList.push({name: "expectedStartTime", value: range.start, operateType: ">="})
|
||||||
searchList.push({name: 'expectedStartTime', value: dayjs(newDate).endOf('month'), operateType: "<="})
|
searchList.push({name: 'expectedStartTime', value: range.end, operateType: "<="})
|
||||||
loadData(searchList);
|
loadData(searchList);
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
console.log("CalShow:useEffect:range",range)
|
||||||
const searchListE = []
|
const searchListE = []
|
||||||
if (pid != null) {
|
if (pid != null) {
|
||||||
searchListE.push({name: "pid", value: pid, operateType: "="}, {
|
searchListE.push({name: "pid", value: pid, operateType: "="}, {
|
||||||
|
@ -70,13 +75,8 @@ const CalShow: React.FC = () => {
|
||||||
operateType: "TREE"
|
operateType: "TREE"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (view === 'month') {
|
searchListE.push({name: 'expectedStartTime', value: range.start, operateType: ">="})
|
||||||
searchListE.push({name: 'expectedStartTime', value: dayjs(date).startOf('month'), operateType: ">="})
|
searchListE.push({name: 'expectedStartTime', value: range.end, operateType: "<="})
|
||||||
searchListE.push({name: 'expectedStartTime', value: dayjs(date).endOf('month'), operateType: "<="})
|
|
||||||
} else {
|
|
||||||
searchListE.push({name: 'expectedStartTime', value: dayjs(date).startOf('week'), operateType: ">="})
|
|
||||||
searchListE.push({name: 'expectedStartTime', value: dayjs(date).endOf('week'), operateType: "<="})
|
|
||||||
}
|
|
||||||
loadData(searchListE);
|
loadData(searchListE);
|
||||||
/**
|
/**
|
||||||
* What Is This?
|
* What Is This?
|
||||||
|
@ -243,6 +243,36 @@ const CalShow: React.FC = () => {
|
||||||
}),
|
}),
|
||||||
[setEvents]
|
[setEvents]
|
||||||
)
|
)
|
||||||
|
const rangeChange = (rangeLet: Date[]|{ start: Date; end: Date })=>{
|
||||||
|
console.log("rangeChange:",rangeLet)
|
||||||
|
// view 为天的时候类型为数组,index:0为当天
|
||||||
|
if (view==="day"&&Array.isArray(rangeLet)) {
|
||||||
|
if (range.start.valueOf()>rangeLet[0].valueOf()){
|
||||||
|
setRange({...range,start:rangeLet[0]})
|
||||||
|
}else if (range.end.valueOf()<rangeLet[0].valueOf()){
|
||||||
|
setRange({...range,end:rangeLet[0]})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 为周的时候类型为数组,周一到周日七天
|
||||||
|
if (view==="week"&&Array.isArray(rangeLet)){
|
||||||
|
if (range.start.valueOf()>rangeLet[0].valueOf()){
|
||||||
|
setRange({...range,start:rangeLet[0]})
|
||||||
|
}
|
||||||
|
if (range.end.valueOf()<rangeLet[6].valueOf()){
|
||||||
|
setRange({...range,end:rangeLet[6]})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 为周的时候类型为对象
|
||||||
|
if (view==="month"&& rangeLet && !Array.isArray(rangeLet)){
|
||||||
|
if (range.start.valueOf()>rangeLet.start.valueOf()){
|
||||||
|
setRange({...range,start:rangeLet.start})
|
||||||
|
}
|
||||||
|
if (range.end.valueOf()<rangeLet.end.valueOf()){
|
||||||
|
setRange({...range,end:rangeLet.end})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
return <div className="App" style={{height: '90vh'}}>
|
return <div className="App" style={{height: '90vh'}}>
|
||||||
{open&&<DetailModelForm operationId={operationId} description={description} open={open} haveButton={false}
|
{open&&<DetailModelForm operationId={operationId} description={description} open={open} haveButton={false}
|
||||||
itemId={itemId} pid={pid?Number(pid):0}
|
itemId={itemId} pid={pid?Number(pid):0}
|
||||||
|
@ -259,7 +289,7 @@ const CalShow: React.FC = () => {
|
||||||
view={view}
|
view={view}
|
||||||
// 界面改变
|
// 界面改变
|
||||||
onView={handleViewChange}
|
onView={handleViewChange}
|
||||||
// onRangeChange={rangeChange}
|
onRangeChange={rangeChange}
|
||||||
// 时间
|
// 时间
|
||||||
date={date}
|
date={date}
|
||||||
// 条目信息改变
|
// 条目信息改变
|
||||||
|
|
Loading…
Reference in New Issue