Browse Source

fix: 时间轴tab切换角色任务错乱

test2
xuesinan 4 years ago
parent
commit
760888b4c1
  1. 3
      CHANGELOG.md
  2. 31
      hooks/project/useGetTasks.js
  3. 7
      pages/project/project.vue
  4. 9
      store/task/mutations.js

3
CHANGELOG.md

@ -1,4 +1,4 @@
# 1.0.0 (2022-03-02)
# 1.0.0 (2022-03-03)
### 🌟 新功能
范围|描述|commitId
@ -127,6 +127,7 @@
- | 时间轴方案 | [0d465a2](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/0d465a2)
- | 时间轴任务 | [98abdf6](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/98abdf6)
- | 时间轴数据错乱 | [c1e12bc](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/c1e12bc)
- | 时间轴tab切换数据不更新 | [6141ff9](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/6141ff9)
- | 退出登录 | [6922f24](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/6922f24)
- | 向上查向下查 | [1933e1b](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/1933e1b)
- | 项目列表排序 | [ad0ce75](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/ad0ce75)

31
hooks/project/useGetTasks.js

@ -64,7 +64,6 @@ export default function useGetTasks() {
store.commit('task/setShowSkeleton', false);
const params = generateGetTaskParam(query);
console.log('111111',params)
uni.$catchReq.getTaskByNum(params, (err, data) => {
store.commit('task/setShowSkeleton', false);
if (err) {
@ -81,12 +80,11 @@ export default function useGetTasks() {
arr[index].upNextPage = params.queryType === 0 ? data.nextPage : 1;
arr[index].downNextPage = params.queryType === 1 ? data.nextPage : 1;
store.commit('task/setAllTasks', arr);
// store.commit('task/setCurrRoleShowTasks', arr[index].tasks); // 设置当前角色的展示任务数据
store.commit('task/setCurrRoleRealTasks', arr[index].realTasks); // 设置当前角色的真实任务数据
params.queryType === 0 ? store.commit('task/setUpNextPage', arr[index].upNextPage) : store.commit('task/setDownNextPage', arr[index].downNextPage); // 下一页
// 如果第一次渲染但没有空数据则加载空数据
if (!tasks.value || !tasks.value.length && timeLineType.value === 1) {
if (!currRoleShowTasks.value || !currRoleShowTasks.value.length && timeLineType.value === 1) {
setNextPlaceholderTasks(params);
}
@ -103,7 +101,7 @@ export default function useGetTasks() {
// 刻度模式数据处理
async function renderScaleTask(query) {
const params = generateGetTaskParam(query);
let centerData = await showTaskTime(params, tasks.value, currRoleRealTasks.value) || [];
let centerData = await showTaskTime(params, currRoleShowTasks.value, currRoleRealTasks.value) || [];
await handleTasksData(params, centerData, currRoleRealTasks.value);
}
@ -118,8 +116,13 @@ export default function useGetTasks() {
// 初始值
// 显示任务中没有真实任务数据
// let centerData = params.queryType === 1 ? realTasks.slice(0, params.pageSize) : realTasks.slice(realTasks.length - 1 - params.pageSize);
let centerData = realTasks.slice(0, params.pageSize);
let centerData = [];
if (realTasks.length > params.pageSize && params.queryType === 0) {
centerData = realTasks.slice(realTasks.length - params.pageSize);
} else {
centerData = realTasks.slice(0, params.pageSize);
}
const firstDetailIndex = showTasks.findIndex(task => task.detailId);
if (firstDetailIndex > -1) {
// 显示任务中有真实任务数据
@ -159,7 +162,7 @@ export default function useGetTasks() {
* 3-2-2-1无下一页显示任务和刻度之后继续展示刻度
* 3-2-2-1查找下一页数据并重复上述步骤
*/
let showTasks = tasks.value; // 显示的数据
let showTasks = currRoleShowTasks.value; // 显示的数据
const nextPage = params.queryType === 0 ? upNextPage.value : downNextPage.value; // 下一页的值
if (centerData.length) {
let centerDataTime = '', // 中间数据的时间
@ -229,7 +232,7 @@ export default function useGetTasks() {
}
}
// if (showTasks.length > 80) {
// if (showTasks.length > 30) {
// showTasks = params.queryType === 0 ? showTasks.slice(0, 80) : showTasks.slice(showTasks.length - 80);
// }
@ -240,7 +243,7 @@ export default function useGetTasks() {
// 任务模式
async function renderConTask(params) {
let nextPage = params.queryType === 0 ? upNextPage.value : downNextPage.value; // 下一页的值
let showTasks = tasks.value;
let showTasks = currRoleShowTasks.value;
let centerData = await showTaskTime(params, showTasks, currRoleRealTasks.value) || [];
if (centerData.length < 15 && nextPage > 0) {
@ -269,10 +272,10 @@ export default function useGetTasks() {
function setPrevPlaceholderTasks() {
store.commit('task/setTopEnd', true);
let startTime = '';
if (!tasks.value || !tasks.value.length) {
if (!currRoleShowTasks.value || !currRoleShowTasks.value.length) {
startTime = Date.now(); // 没有任务就应该是时间基准点
} else {
startTime = tasks.value[0].planStart - 0; // 有任务就是第一个任务的计划开始时间
startTime = currRoleShowTasks.value[0].planStart - 0; // 有任务就是第一个任务的计划开始时间
}
const placeholderTasks = uni.$task.setPlaceholderTasks(startTime, true, timeGranularity.value);
store.commit('task/setCurrUpTimeNode', startTime);
@ -283,10 +286,10 @@ export default function useGetTasks() {
function setNextPlaceholderTasks(params) {
// store.commit('task/setBottomEnd', true);
let startTime = '';
if (!tasks.value || !tasks.value.length) {
if (!currRoleShowTasks.value || !currRoleShowTasks.value.length) {
startTime = Date.now();
} else {
startTime = dayjs(+tasks.value[tasks.value.length - 1].planStart).add(1, timeGranularity.value).valueOf();
startTime = dayjs(+currRoleShowTasks.value[currRoleShowTasks.value.length - 1].planStart).add(1, timeGranularity.value).valueOf();
}
if (params.taskId) {
@ -312,7 +315,7 @@ export default function useGetTasks() {
const arr = [...allTasks.value];
arr[index].task = [...newValue];
store.commit('task/setAllTasks', arr);
store.commit('task/setCurrRoleShowTasks', arr[index].tasks); // 设置当前角色的展示任务数据
store.commit('task/setCurrRoleShowTasks', arr[index].task); // 设置当前角色的展示任务数据
});
return {

7
pages/project/project.vue

@ -155,7 +155,7 @@ watch(roleId, () => {
if (allTasks.value.length) {
const index = visibleRoles.value.findIndex(role => role.id === roleId.value);
currRoleRealTasks = allTasks.value[index].realTasks || [];
currRoleShowTasks = allTasks.value[index].tasks || [];
currRoleShowTasks = allTasks.value[index].task || [];
}
store.commit('task/setCurrRoleRealTasks', currRoleRealTasks); //
store.commit('task/setCurrRoleShowTasks', currRoleShowTasks); //
@ -265,7 +265,10 @@ function tabsChange(e) {
const index = visibleRoles.value.findIndex(role => role.id === id);
const arr = [...allTasks.value];
store.commit('task/setCurrRoleRealTasks', arr[index].realTasks); //
store.commit('task/updateTasks', arr[index].task || []); // store
store.commit('task/updateRealTasks', arr[index].realTasks || []);// store
store.commit('task/setCurrRoleRealTasks', arr[index].realTasks || []); //
store.commit('task/setCurrRoleShowTasks', arr[index].task || []); //
store.commit('task/setUpNextPage', arr[index].upNextPage || 1); //
store.commit('task/setDownNextPage', arr[index].downNextPage || 1); //
}

9
store/task/mutations.js

@ -201,6 +201,15 @@ const mutations = {
state.tasks = [...data];
},
/**
* 添加任务后更新realTasks
* @param {Object} state
* @param {Array} data 新添加的task
*/
updateRealTasks(state, data) {
state.realTasks = [...data];
},
/**
* 设置添加任务的位置
* @param {*} state

Loading…
Cancel
Save