|
@ -159,9 +159,9 @@ export default function useGetTasks() { |
|
|
|
|
|
|
|
|
async function handleTasksData(params, centerData, realTasks) { |
|
|
async function handleTasksData(params, centerData, realTasks) { |
|
|
let showTasks = currRoleShowTasks.value; // 显示的数据
|
|
|
let showTasks = currRoleShowTasks.value; // 显示的数据
|
|
|
let firstTime = showTasks.length > 0 ? dayjs(+showTasks[0].planStart).subtract(1, timeGranularity.value) : new Date().getTime(); // 显示的数据第一个数据的时间
|
|
|
let firstTime = showTasks.length > 0 ? showTasks[0].planStart : new Date().getTime(); // 显示的数据第一个数据的时间
|
|
|
let lastTime = showTasks.length > 0 ? dayjs(+showTasks[showTasks.length - 1].planStart).add(1, timeGranularity.value) : new Date().getTime(); // 显示的数据最后一个数据的时间
|
|
|
let lastTime = showTasks.length > 0 ? dayjs(+showTasks[showTasks.length - 1].planStart).add(1, timeGranularity.value) : new Date().getTime(); // 显示的数据最后一个数据的时间
|
|
|
let upTargetTime = dayjs(+firstTime).subtract(params.pageSize - 1, timeGranularity.value); |
|
|
let upTargetTime = dayjs(+firstTime).subtract(params.pageSize, timeGranularity.value); |
|
|
let downTargetTime = dayjs(+lastTime).add(params.pageSize - 1, timeGranularity.value); |
|
|
let downTargetTime = dayjs(+lastTime).add(params.pageSize - 1, timeGranularity.value); |
|
|
const nextPage = params.queryType === 0 ? upNextPage.value : downNextPage.value; // 下一页的值
|
|
|
const nextPage = params.queryType === 0 ? upNextPage.value : downNextPage.value; // 下一页的值
|
|
|
|
|
|
|
|
@ -189,33 +189,80 @@ export default function useGetTasks() { |
|
|
if (arr.length === centerData.length && centerData.length < params.pageSize && nextPage > 0) { |
|
|
if (arr.length === centerData.length && centerData.length < params.pageSize && nextPage > 0) { |
|
|
getTasks({pageNum: nextPage, queryType: params.queryType}); |
|
|
getTasks({pageNum: nextPage, queryType: params.queryType}); |
|
|
} else { |
|
|
} else { |
|
|
if (arr.length < centerData.length || (arr.length === centerData.length && centerData.length < params.pageSize && nextPage === 0)) { |
|
|
let cycleIndex = params.pageSize; |
|
|
let newArr = []; |
|
|
let newArr = []; |
|
|
const time = params.queryType === 1 ? lastTime : upTargetTime; |
|
|
let breakTime = ''; // 循环结束时间
|
|
|
let currTime = params.queryType === 0 ? upTargetTime : lastTime; |
|
|
let continueTime = ''; // 第一个数据的时间
|
|
|
|
|
|
// 循环开始时间
|
|
|
|
|
|
let currTime = params.queryType === 0 ? upTargetTime : lastTime; |
|
|
|
|
|
|
|
|
|
|
|
// 符合条件的数据 < centerData的数据
|
|
|
|
|
|
// 或者
|
|
|
|
|
|
// centerData的数据全部符合条件,但是 < 15,而且没有下一页,不能向下查
|
|
|
|
|
|
// 数据需要补齐15天的刻度
|
|
|
|
|
|
// 所以循环长度为params.pageSize
|
|
|
|
|
|
|
|
|
|
|
|
// centerData的数据全部显示,且数量 = 15
|
|
|
|
|
|
// 需要补齐数据中间的空刻度
|
|
|
|
|
|
// 循环长度为 结束时间到开始时间的差
|
|
|
|
|
|
// 当循环到的时间 = 数据最后一条的时间,则跳出循环
|
|
|
|
|
|
if (arr.length === centerData.length && centerData.length === params.pageSize) { |
|
|
|
|
|
if (params.queryType === 0) { |
|
|
|
|
|
continueTime = arr[0].planStart; |
|
|
|
|
|
} else { |
|
|
|
|
|
breakTime = arr[arr.length - 1].planStart; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// if (arr.length < centerData.length || (arr.length === centerData.length && centerData.length < params.pageSize && nextPage === 0)) {
|
|
|
|
|
|
const startTime = params.queryType === 0 ? firstTime : dayjs(+lastTime).subtract(1, timeGranularity.value); |
|
|
|
|
|
let firstArr = arr.filter(item => dayjs(+item.planStart).isSame(+startTime, timeGranularity.value)); |
|
|
|
|
|
|
|
|
const firstTime = params.queryType === 0 ? dayjs(+upTargetTime).add(1, timeGranularity.value) : dayjs(+lastTime).subtract(1, timeGranularity.value); |
|
|
if (firstArr.length && params.queryType === 1) { |
|
|
let firstArr = arr.filter(item => dayjs(+item.planStart).isSame(+firstTime, timeGranularity.value)); |
|
|
newArr = [...newArr, ...firstArr]; |
|
|
if (firstArr.length) { |
|
|
} |
|
|
newArr = params.queryType === 0 ? [...firstArr, ...newArr] : [...newArr, ...firstArr]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < params.pageSize; i++) { |
|
|
// }
|
|
|
let termArr = arr.filter(item => dayjs(+item.planStart).isSame(+currTime, timeGranularity.value)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < params.pageSize; i++) { |
|
|
|
|
|
if (continueTime && dayjs(+currTime).isBefore(+continueTime, timeGranularity.value)) { |
|
|
|
|
|
currTime = dayjs(+currTime).add(1, timeGranularity.value); |
|
|
|
|
|
continue; |
|
|
|
|
|
} else { |
|
|
|
|
|
let termArr = arr.filter(item => dayjs(+item.planStart).isSame(+currTime, timeGranularity.value)); |
|
|
if (termArr.length === 0) { |
|
|
if (termArr.length === 0) { |
|
|
const newTasks = uni.$task.setPlaceholderTasks(+currTime, false, timeGranularity.value, 1); |
|
|
const newTasks = uni.$task.setPlaceholderTasks(+currTime, false, timeGranularity.value, 1); |
|
|
newArr = [...newArr, ...newTasks]; |
|
|
newArr = [...newArr, ...newTasks]; |
|
|
} else { |
|
|
} else { |
|
|
newArr = [...newArr, ...termArr]; |
|
|
newArr = [...newArr, ...termArr]; |
|
|
} |
|
|
} |
|
|
currTime = dayjs(+currTime).add(1, timeGranularity.value); |
|
|
|
|
|
|
|
|
if (breakTime && dayjs(+currTime).isSame(+breakTime, timeGranularity.value)) { |
|
|
|
|
|
break; |
|
|
|
|
|
} else { |
|
|
|
|
|
currTime = dayjs(+currTime).add(1, timeGranularity.value); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
showTasks = params.queryType === 0 ? [...newArr, ...showTasks] : [...showTasks, ...newArr]; |
|
|
if (firstArr.length && params.queryType === 0) { |
|
|
|
|
|
newArr = [...newArr, ...firstArr]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const repeatTime = params.queryType === 0 ? newArr[newArr.length - 1].planStart : newArr[0].planStart; |
|
|
|
|
|
const repeatTimeArr = showTasks.filter(item => dayjs(+item.planStart).isSame(+repeatTime, timeGranularity.value)); |
|
|
|
|
|
|
|
|
|
|
|
if (repeatTimeArr.length) { |
|
|
|
|
|
const index = repeatTimeArr.findIndex(item => item.detailId); |
|
|
|
|
|
|
|
|
|
|
|
if (index > -1) { |
|
|
|
|
|
showTasks = params.queryType === 0 ? [...newArr, ...showTasks] : [...showTasks, ...newArr]; |
|
|
|
|
|
} else { |
|
|
|
|
|
showTasks = params.queryType === 0 ? showTasks.slice(1) : showTasks.slice(0, showTasks.length - 2); |
|
|
|
|
|
showTasks = params.queryType === 0 ? [...newArr, ...showTasks] : [...showTasks, ...newArr]; |
|
|
|
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
showTasks = params.queryType === 0 ? [...arr, ...showTasks] : [...showTasks, ...arr]; |
|
|
showTasks = params.queryType === 0 ? [...newArr, ...showTasks] : [...showTasks, ...newArr]; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|