From 0e96e539abfaa3c59a96212176e153eb534ad293 Mon Sep 17 00:00:00 2001 From: xuesinan <1404152492@qq.com> Date: Thu, 17 Mar 2022 15:13:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8F=92=E4=BB=B6=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +- components/Render/Render.vue | 2 + hooks/project/useGetTasks.js | 151 ++++++++--------- .../{useGetTasks111.js => useGetTasks222.js} | 157 +++++++++--------- manifest.json | 6 +- 5 files changed, 158 insertions(+), 161 deletions(-) rename hooks/project/{useGetTasks111.js => useGetTasks222.js} (72%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d20069..92d0d58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# 1.0.0 (2022-03-16) +# 1.0.0 (2022-03-17) ### 🌟 新功能 范围|描述|commitId @@ -42,6 +42,7 @@ - | 设置状态栏 | [9871356](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/9871356) - | 审核插件的基本信息展示 | [aa4f17f](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/aa4f17f) - | 审核插件的通过与驳回功能 | [03a7c35](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/03a7c35) + - | 时间轴版本1 | [a01de09](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/a01de09) - | 时间轴版本2、根据服务查询项目、区分不同服务 | [c612768](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/c612768) - | 时间轴调整 | [81d2500](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/81d2500) - | 时间轴接口 | [a95d005](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/a95d005) diff --git a/components/Render/Render.vue b/components/Render/Render.vue index 8f97d23..3d9b6d5 100644 --- a/components/Render/Render.vue +++ b/components/Render/Render.vue @@ -17,6 +17,7 @@ :data-uid="userId" :prop="pluginInfo" :change:prop="projectRender.renderDom" + :data-url="domain" > @@ -40,6 +41,7 @@ export default { }; }, computed: { + ...mapState(['domain']), ...mapState(['allPlugin', 'businessPlugin']), ...mapState('role', ['roleId']), ...mapState('user', ['token']), diff --git a/hooks/project/useGetTasks.js b/hooks/project/useGetTasks.js index a969c59..8963acb 100644 --- a/hooks/project/useGetTasks.js +++ b/hooks/project/useGetTasks.js @@ -30,8 +30,9 @@ export default function useGetTasks() { // 初始化 定期任务 async function initPlanTasks() { - if (timeLineType.value === 1) setNextPlaceholderTasks({}); - console.log('查询定期任务'); + // if (timeLineType.value === 1) setNextPlaceholderTasks({}); + uni.$ui.showLoading(); + console.log('查询定期任务11111111111111111'); await getTasks({}); // 获取初始数据 // await dataRender({}); } @@ -62,6 +63,7 @@ export default function useGetTasks() { * @param {number} query.queryType 0向上查找 1向下查找(默认) 下查包含自己,上查不包含 */ function getTasks(query) { + uni.$ui.showLoading(); store.commit('task/setShowSkeleton', false); const params = generateGetTaskParam(query); @@ -89,9 +91,9 @@ export default function useGetTasks() { params.queryType === 0 ? store.commit('task/setUpNextPage', arr[index].upNextPage) : store.commit('task/setDownNextPage', arr[index].downNextPage); // 下一页 // 如果第一次渲染但没有空数据则加载空数据 - if (!currRoleShowTasks.value || !currRoleShowTasks.value.length && timeLineType.value === 1) { - setNextPlaceholderTasks(params); - } + // if (!currRoleShowTasks.value || !currRoleShowTasks.value.length && timeLineType.value === 1) { + // setNextPlaceholderTasks(params); + // } // 数据处理 dataRender(params); @@ -156,82 +158,71 @@ export default function useGetTasks() { } async function handleTasksData(params, centerData, realTasks) { - /** - * 3、查找的任务数量是否>=15 - * 3-1、是。 - * 判断时间跨度是否>=15 - * 3-1-1、是。显示时间刻度范围内的任务 - * 3-1-2、否。显示全部任务并删除多余的刻度 - * 3-2、否。 - * 判断时间跨度是否>=15 - * 3-2-1、是。显示时间刻度范围内的任务 - * 3-2-2、否。 - * 下一页是否为0 - * 3-2-2-1、是。无下一页,显示任务和刻度,之后继续展示刻度 - * 3-2-2-1、否。查找下一页数据并重复上述步骤 - */ let showTasks = currRoleShowTasks.value; // 显示的数据 + let firstTime = showTasks.length > 0 ? dayjs(+showTasks[0].planStart).subtract(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 downTargetTime = dayjs(+lastTime).add(params.pageSize - 1, timeGranularity.value); const nextPage = params.queryType === 0 ? upNextPage.value : downNextPage.value; // 下一页的值 + if (centerData.length) { - let centerDataTime = '', // 中间数据的时间 - scaleTime = '', // 空时间节点的开始时间 - centerTime = '', // 中间数据+/-15后的数据 - isExceed = false; // 时间跨度是否大于15 - - if (params.queryType) { - centerDataTime = centerData[centerData.length - 1].planStart; - scaleTime = currDownTimeNode.value; - centerTime = dayjs(+centerDataTime).subtract(params.pageSize, timeGranularity.value); - isExceed = dayjs(+centerTime).isSame(+scaleTime, timeGranularity.value) || dayjs(+centerTime).isAfter(+scaleTime, timeGranularity.value) - } else { - centerDataTime = centerData[0].planStart; - scaleTime = currUpTimeNode.value; - centerTime = dayjs(+centerDataTime).add(params.pageSize, timeGranularity.value); - isExceed = dayjs(+centerTime).isSame(+scaleTime, timeGranularity.value) || dayjs(+centerTime).isBefore(+scaleTime, timeGranularity.value) - } + let arr = []; - const firstDetailIndex = showTasks.findIndex(task => task.detailId); // 显示任务中存在真实任务 - const firstId = firstDetailIndex > -1 ? showTasks[firstDetailIndex].id : ''; - let lastDetailIndex = -1; - showTasks.forEach((item, index) => { - if (item.detailId) { - lastDetailIndex = index; + centerData.forEach(v => { + let centerTime = '', // 中间数据+/-15后的数据 + isExceed = false; // 时间跨度是否大于15 + + if (params.queryType) { + isExceed = dayjs(+downTargetTime).isAfter(+v.planStart, timeGranularity.value) + } else { + isExceed = dayjs(+upTargetTime).isBefore(+v.planStart, timeGranularity.value) } - }) - const lastId = lastDetailIndex > -1 ? showTasks[lastDetailIndex].id : ''; - - showTasks.forEach((task, index) => { - const arr = centerData.filter(item => dayjs(+item.planStart).isSame(+task.planStart, timeGranularity.value)); - if (arr.length) { - if (params.queryType === 1 && task.id === lastId) { - showTasks.splice(index + 1, 0, [...arr]) - } else if (params.queryType === 0 && task.id === firstId) { - showTasks.splice(index, 0, [...arr]) - } else { - showTasks.splice(index, 1, [...arr]) - } + + if (isExceed) { + arr.push(v); } }) - showTasks = flatten(showTasks); // 1维拍平 + if (!arr.length) { + params.queryType === 0 ? setPrevPlaceholderTasks(params) : setNextPlaceholderTasks(params); + } else { + if (arr.length === centerData.length && centerData.length < params.pageSize && nextPage > 0) { + getTasks({pageNum: nextPage, queryType: params.queryType}); + } else { + if (arr.length < centerData.length || (arr.length === centerData.length && centerData.length < params.pageSize && nextPage === 0)) { + let newArr = []; + const time = params.queryType === 1 ? lastTime : upTargetTime; + let currTime = params.queryType === 0 ? upTargetTime : lastTime; + - if (!isExceed) { - if (centerData.length >= params.pageSize) { - let len = -1; - let data = params.queryType === 0 ? centerData[0] : centerData[centerData.length - 1]; - showTasks.forEach((item, index) => { - if (item.id === data.id) { - len = index; + const firstTime = params.queryType === 0 ? dayjs(+upTargetTime).add(1, timeGranularity.value) : dayjs(+lastTime).subtract(1, timeGranularity.value); + let firstArr = arr.filter(item => dayjs(+item.planStart).isSame(+firstTime, timeGranularity.value)); + if (firstArr.length) { + newArr = params.queryType === 0 ? [...firstArr, ...newArr] : [...newArr, ...firstArr]; } - }) - if (len > -1) { - showTasks = params.queryType === 0 ? showTasks.slice(len) : showTasks.slice(0, len + 1); + for (let i = 0; i < params.pageSize; i++) { + let termArr = arr.filter(item => dayjs(+item.planStart).isSame(+currTime, timeGranularity.value)); + + if (termArr.length === 0) { + const newTasks = uni.$task.setPlaceholderTasks(+currTime, false, timeGranularity.value, 1); + newArr = [...newArr, ...newTasks]; + } else { + newArr = [...newArr, ...termArr]; + } + currTime = dayjs(+currTime).add(1, timeGranularity.value); + } + + showTasks = params.queryType === 0 ? [...newArr, ...showTasks] : [...showTasks, ...newArr]; + } else { + showTasks = params.queryType === 0 ? [...arr, ...showTasks] : [...showTasks, ...arr]; } - } else if (nextPage > 0) { - console.log('数据不为空,时间跨度小于15') - getTasks({pageNum: nextPage, queryType: params.queryType}); } + + showTasks = flatten(showTasks); // 1维拍平 + + store.commit('task/clearTasks'); + params.queryType === 0 ? store.commit('task/setUpTasks', showTasks) : store.commit('task/setDownTasks', showTasks); } } else { if (nextPage > 0) { @@ -242,12 +233,10 @@ export default function useGetTasks() { } } + uni.$ui.hideLoading(); // if (showTasks.length > 30) { // showTasks = params.queryType === 0 ? showTasks.slice(0, 80) : showTasks.slice(showTasks.length - 80); // } - - store.commit('task/clearTasks'); - params.queryType === 0 ? store.commit('task/setUpTasks', showTasks) : store.commit('task/setDownTasks', showTasks); } // 任务模式 @@ -270,9 +259,9 @@ export default function useGetTasks() { getTasks({pageNum: 1, queryType: 0}); } - if (showTasks.length > 80) { - showTasks = params.queryType === 0 ? showTasks.slice(0, 80) : showTasks.slice(showTasks.length - 80); - } + // if (showTasks.length > 80) { + // showTasks = params.queryType === 0 ? showTasks.slice(0, 80) : showTasks.slice(showTasks.length - 80); + // } store.commit('task/clearTasks'); params.queryType === 0 ? store.commit('task/setUpTasks', showTasks) : store.commit('task/setDownTasks', showTasks); @@ -302,13 +291,13 @@ export default function useGetTasks() { startTime = dayjs(+currRoleShowTasks.value[currRoleShowTasks.value.length - 1].planStart).add(1, timeGranularity.value).valueOf(); } - if (params.taskId) { - currRoleRealTasks.value.forEach(item => { - if (item.id === params.taskId) { - startTime = Number(item.planStart); - } - }) - } + // if (params.taskId) { + // currRoleRealTasks.value.forEach(item => { + // if (item.id === params.taskId) { + // startTime = Number(item.planStart); + // } + // }) + // } const initData = uni.$task.setPlaceholderTasks(startTime, false, timeGranularity.value); store.commit('task/setCurrDownTimeNode', startTime); diff --git a/hooks/project/useGetTasks111.js b/hooks/project/useGetTasks222.js similarity index 72% rename from hooks/project/useGetTasks111.js rename to hooks/project/useGetTasks222.js index c1edea7..a969c59 100644 --- a/hooks/project/useGetTasks111.js +++ b/hooks/project/useGetTasks222.js @@ -30,9 +30,8 @@ export default function useGetTasks() { // 初始化 定期任务 async function initPlanTasks() { - // if (timeLineType.value === 1) setNextPlaceholderTasks({}); - uni.$ui.showLoading(); - console.log('查询定期任务11111111111111111'); + if (timeLineType.value === 1) setNextPlaceholderTasks({}); + console.log('查询定期任务'); await getTasks({}); // 获取初始数据 // await dataRender({}); } @@ -63,7 +62,6 @@ export default function useGetTasks() { * @param {number} query.queryType 0向上查找 1向下查找(默认) 下查包含自己,上查不包含 */ function getTasks(query) { - uni.$ui.showLoading(); store.commit('task/setShowSkeleton', false); const params = generateGetTaskParam(query); @@ -91,17 +89,12 @@ export default function useGetTasks() { params.queryType === 0 ? store.commit('task/setUpNextPage', arr[index].upNextPage) : store.commit('task/setDownNextPage', arr[index].downNextPage); // 下一页 // 如果第一次渲染但没有空数据则加载空数据 - // if (!currRoleShowTasks.value || !currRoleShowTasks.value.length && timeLineType.value === 1) { - // setNextPlaceholderTasks(params); - // } + if (!currRoleShowTasks.value || !currRoleShowTasks.value.length && timeLineType.value === 1) { + setNextPlaceholderTasks(params); + } // 数据处理 dataRender(params); - - // nextTick(() => { - // uni.$ui.hideLoading(); - // console.log('-------------------------------') - // }); } }); } @@ -163,71 +156,82 @@ export default function useGetTasks() { } async function handleTasksData(params, centerData, realTasks) { + /** + * 3、查找的任务数量是否>=15 + * 3-1、是。 + * 判断时间跨度是否>=15 + * 3-1-1、是。显示时间刻度范围内的任务 + * 3-1-2、否。显示全部任务并删除多余的刻度 + * 3-2、否。 + * 判断时间跨度是否>=15 + * 3-2-1、是。显示时间刻度范围内的任务 + * 3-2-2、否。 + * 下一页是否为0 + * 3-2-2-1、是。无下一页,显示任务和刻度,之后继续展示刻度 + * 3-2-2-1、否。查找下一页数据并重复上述步骤 + */ let showTasks = currRoleShowTasks.value; // 显示的数据 - let firstTime = showTasks.length > 0 ? dayjs(+showTasks[0].planStart).subtract(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 downTargetTime = dayjs(+lastTime).add(params.pageSize - 1, timeGranularity.value); const nextPage = params.queryType === 0 ? upNextPage.value : downNextPage.value; // 下一页的值 - if (centerData.length) { - let arr = []; - - centerData.forEach(v => { - let centerTime = '', // 中间数据+/-15后的数据 - isExceed = false; // 时间跨度是否大于15 + let centerDataTime = '', // 中间数据的时间 + scaleTime = '', // 空时间节点的开始时间 + centerTime = '', // 中间数据+/-15后的数据 + isExceed = false; // 时间跨度是否大于15 + + if (params.queryType) { + centerDataTime = centerData[centerData.length - 1].planStart; + scaleTime = currDownTimeNode.value; + centerTime = dayjs(+centerDataTime).subtract(params.pageSize, timeGranularity.value); + isExceed = dayjs(+centerTime).isSame(+scaleTime, timeGranularity.value) || dayjs(+centerTime).isAfter(+scaleTime, timeGranularity.value) + } else { + centerDataTime = centerData[0].planStart; + scaleTime = currUpTimeNode.value; + centerTime = dayjs(+centerDataTime).add(params.pageSize, timeGranularity.value); + isExceed = dayjs(+centerTime).isSame(+scaleTime, timeGranularity.value) || dayjs(+centerTime).isBefore(+scaleTime, timeGranularity.value) + } - if (params.queryType) { - isExceed = dayjs(+downTargetTime).isAfter(+v.planStart, timeGranularity.value) - } else { - isExceed = dayjs(+upTargetTime).isBefore(+v.planStart, timeGranularity.value) + const firstDetailIndex = showTasks.findIndex(task => task.detailId); // 显示任务中存在真实任务 + const firstId = firstDetailIndex > -1 ? showTasks[firstDetailIndex].id : ''; + let lastDetailIndex = -1; + showTasks.forEach((item, index) => { + if (item.detailId) { + lastDetailIndex = index; } - - if (isExceed) { - arr.push(v); + }) + const lastId = lastDetailIndex > -1 ? showTasks[lastDetailIndex].id : ''; + + showTasks.forEach((task, index) => { + const arr = centerData.filter(item => dayjs(+item.planStart).isSame(+task.planStart, timeGranularity.value)); + if (arr.length) { + if (params.queryType === 1 && task.id === lastId) { + showTasks.splice(index + 1, 0, [...arr]) + } else if (params.queryType === 0 && task.id === firstId) { + showTasks.splice(index, 0, [...arr]) + } else { + showTasks.splice(index, 1, [...arr]) + } } }) - if (!arr.length) { - params.queryType === 0 ? setPrevPlaceholderTasks(params) : setNextPlaceholderTasks(params); - } else { - if (arr.length === centerData.length && centerData.length < params.pageSize && nextPage > 0) { - getTasks({pageNum: nextPage, queryType: params.queryType}); - } else { - if (arr.length < centerData.length || (arr.length === centerData.length && centerData.length < params.pageSize && nextPage === 0)) { - let newArr = []; - const time = params.queryType === 1 ? lastTime : upTargetTime; - let currTime = params.queryType === 0 ? upTargetTime : lastTime; + showTasks = flatten(showTasks); // 1维拍平 - - const firstTime = params.queryType === 0 ? dayjs(+upTargetTime).add(1, timeGranularity.value) : dayjs(+lastTime).subtract(1, timeGranularity.value); - let firstArr = arr.filter(item => dayjs(+item.planStart).isSame(+firstTime, timeGranularity.value)); - if (firstArr.length) { - newArr = params.queryType === 0 ? [...firstArr, ...newArr] : [...newArr, ...firstArr]; + if (!isExceed) { + if (centerData.length >= params.pageSize) { + let len = -1; + let data = params.queryType === 0 ? centerData[0] : centerData[centerData.length - 1]; + showTasks.forEach((item, index) => { + if (item.id === data.id) { + len = index; } + }) - for (let i = 0; i < params.pageSize; i++) { - let termArr = arr.filter(item => dayjs(+item.planStart).isSame(+currTime, timeGranularity.value)); - - if (termArr.length === 0) { - const newTasks = uni.$task.setPlaceholderTasks(+currTime, false, timeGranularity.value, 1); - newArr = [...newArr, ...newTasks]; - } else { - newArr = [...newArr, ...termArr]; - } - currTime = dayjs(+currTime).add(1, timeGranularity.value); - } - - showTasks = params.queryType === 0 ? [...newArr, ...showTasks] : [...showTasks, ...newArr]; - } else { - showTasks = params.queryType === 0 ? [...arr, ...showTasks] : [...showTasks, ...arr]; + if (len > -1) { + showTasks = params.queryType === 0 ? showTasks.slice(len) : showTasks.slice(0, len + 1); } + } else if (nextPage > 0) { + console.log('数据不为空,时间跨度小于15') + getTasks({pageNum: nextPage, queryType: params.queryType}); } - - showTasks = flatten(showTasks); // 1维拍平 - - store.commit('task/clearTasks'); - params.queryType === 0 ? store.commit('task/setUpTasks', showTasks) : store.commit('task/setDownTasks', showTasks); } } else { if (nextPage > 0) { @@ -238,11 +242,12 @@ export default function useGetTasks() { } } - uni.$ui.hideLoading(); - console.log('------------') // if (showTasks.length > 30) { // showTasks = params.queryType === 0 ? showTasks.slice(0, 80) : showTasks.slice(showTasks.length - 80); // } + + store.commit('task/clearTasks'); + params.queryType === 0 ? store.commit('task/setUpTasks', showTasks) : store.commit('task/setDownTasks', showTasks); } // 任务模式 @@ -265,9 +270,9 @@ export default function useGetTasks() { getTasks({pageNum: 1, queryType: 0}); } - // if (showTasks.length > 80) { - // showTasks = params.queryType === 0 ? showTasks.slice(0, 80) : showTasks.slice(showTasks.length - 80); - // } + if (showTasks.length > 80) { + showTasks = params.queryType === 0 ? showTasks.slice(0, 80) : showTasks.slice(showTasks.length - 80); + } store.commit('task/clearTasks'); params.queryType === 0 ? store.commit('task/setUpTasks', showTasks) : store.commit('task/setDownTasks', showTasks); @@ -297,13 +302,13 @@ export default function useGetTasks() { startTime = dayjs(+currRoleShowTasks.value[currRoleShowTasks.value.length - 1].planStart).add(1, timeGranularity.value).valueOf(); } - // if (params.taskId) { - // currRoleRealTasks.value.forEach(item => { - // if (item.id === params.taskId) { - // startTime = Number(item.planStart); - // } - // }) - // } + if (params.taskId) { + currRoleRealTasks.value.forEach(item => { + if (item.id === params.taskId) { + startTime = Number(item.planStart); + } + }) + } const initData = uni.$task.setPlaceholderTasks(startTime, false, timeGranularity.value); store.commit('task/setCurrDownTimeNode', startTime); diff --git a/manifest.json b/manifest.json index b98fcbb..3a90cfd 100644 --- a/manifest.json +++ b/manifest.json @@ -1,8 +1,8 @@ { - "name" : "时物链条", - "appid" : "__UNI__3CBCFFF", + "name" : "时物链条2", + "appid" : "__UNI__6207504", "description" : "", - "versionName" : "1.0.15", + "versionName" : "1.0.3", "versionCode" : "100", "transformPx" : false, /* 5+App特有相关 */