Browse Source

feat: 插件详情页

test2
xuesinan 4 years ago
parent
commit
0e96e539ab
  1. 3
      CHANGELOG.md
  2. 2
      components/Render/Render.vue
  3. 151
      hooks/project/useGetTasks.js
  4. 157
      hooks/project/useGetTasks222.js
  5. 6
      manifest.json

3
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)

2
components/Render/Render.vue

@ -17,6 +17,7 @@
:data-uid="userId"
:prop="pluginInfo"
:change:prop="projectRender.renderDom"
:data-url="domain"
></view>
</view>
</template>
@ -40,6 +41,7 @@ export default {
};
},
computed: {
...mapState(['domain']),
...mapState(['allPlugin', 'businessPlugin']),
...mapState('role', ['roleId']),
...mapState('user', ['token']),

151
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);

157
hooks/project/useGetTasks111.js → 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);

6
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 */

Loading…
Cancel
Save