From f0f158dfff2dd12cccf1a741d1829e7157ad552a Mon Sep 17 00:00:00 2001
From: xuesinan <1404152492@qq.com>
Date: Mon, 21 Mar 2022 18:31:25 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=8F=E7=BA=A2=E7=82=B9=E7=9B=91?=
=?UTF-8?q?=E5=90=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CHANGELOG.md | 1 +
components/Roles/Roles.vue | 72 ++-----------
components/TimeLine/TimeLine.vue | 4 +-
components/TimeLine/component/TimeBox.vue | 14 ++-
hooks/project/useGetTasks.js | 40 +++++--
hooks/project/useInit.js | 12 ++-
manifest.json | 2 +-
pages/project/project.vue | 102 +++++++++++++++++-
plugins/p-task-to-detail/p-task-to-detail.vue | 8 ++
store/socket/actions.js | 22 ++--
store/socket/mutations.js | 6 +-
store/task/getters.js | 9 +-
store/task/mutations.js | 4 +-
store/task/state.js | 2 +-
14 files changed, 179 insertions(+), 119 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b39ddd4..cc13fa4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -82,6 +82,7 @@
deliver 交付物 | 点击交付物链接webview打开链接 | [daa59f1](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/daa59f1)
- | first commit | [8dc26de](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/8dc26de)
- | get请求 | [3a61439](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/3a61439)
+ - | lwbs跳转 | [78e31c5](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/78e31c5)
project | 日常任务面板添加 | [b3f16ff](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/b3f16ff)
- | socket | [996a1ca](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/996a1ca)
theme | theme demo | [9175758](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/9175758)
diff --git a/components/Roles/Roles.vue b/components/Roles/Roles.vue
index ac2f633..b552e16 100644
--- a/components/Roles/Roles.vue
+++ b/components/Roles/Roles.vue
@@ -35,7 +35,7 @@
diff --git a/components/TimeLine/component/TimeBox.vue b/components/TimeLine/component/TimeBox.vue
index 207777d..e235bd8 100644
--- a/components/TimeLine/component/TimeBox.vue
+++ b/components/TimeLine/component/TimeBox.vue
@@ -105,14 +105,12 @@ function setHeight(panel) {
* @param {string} taskId 任务id
*/
function onClickTask(planStart, taskId) {
- const param = { projectId: projectId.value, roleId: roleId.value, timeNode: planStart, timeUnit: timeUnit.value };
- const index = visibleRoles.value.findIndex(role => role.id === roleId.value);
- const arr = [...allTasks.value];
- const permanents = arr.length && index > -1 ? arr[index].global : [];
- store.commit('task/setPermanents', permanents);
- store.dispatch('task/getGlobal', param);
- uni.$storage.setStorageSync('taskId', taskId);
- uni.$storage.setStorageSync('roleId', roleId.value);
+ if (roleId.value) {
+ const param = { projectId: projectId.value, roleId: roleId.value, timeNode: planStart, timeUnit: timeUnit.value };
+ store.dispatch('task/getGlobal', param);
+ uni.$storage.setStorageSync('taskId', taskId);
+ uni.$storage.setStorageSync('roleId', roleId.value);
+ }
}
function pinchHandler(evt) {
diff --git a/hooks/project/useGetTasks.js b/hooks/project/useGetTasks.js
index ab77fe3..ff49219 100644
--- a/hooks/project/useGetTasks.js
+++ b/hooks/project/useGetTasks.js
@@ -32,11 +32,8 @@ export default function useGetTasks() {
// 初始化 定期任务
async function initPlanTasks() {
- // if (timeLineType.value === 1) setNextPlaceholderTasks({});
uni.$ui.showLoading();
- console.log('查询定期任务11111111111111111');
await getTasks({}); // 获取初始数据
- // await dataRender({});
}
/**
@@ -52,7 +49,8 @@ export default function useGetTasks() {
pageNum: query.pageNum || 1,
pageSize: query.pageSize || uni.$taskConfig.pageCount,
taskId: query.taskId || currLocationTaskId.value,
- businessCode: query.businessCode || businessCode.value
+ businessCode: query.businessCode || businessCode.value,
+ triggerType: query.triggerType || 1
};
}
@@ -77,7 +75,6 @@ export default function useGetTasks() {
}
const params = generateGetTaskParam(query);
- console.log('查询定期任务api', params);
uni.$catchReq.getTaskByNum(params, (err, data) => {
store.commit('task/setShowSkeleton', false);
if (err) {
@@ -88,7 +85,6 @@ export default function useGetTasks() {
params.queryType === 0 ? store.commit('task/setUpRealTasks', data.list) : store.commit('task/setDownRealTasks', data.list);
const index = visibleRoles.value.findIndex(role => role.id === roleId.value);
- console.log('api当前角色id', roleId.value, index, data.list);
const arr = [...allTasks.value];
arr[index].realTasks = [...realTasks.value];
arr[index].upNextPage = params.queryType === 0 ? data.nextPage : 1;
@@ -115,9 +111,7 @@ export default function useGetTasks() {
// 刻度模式数据处理
async function renderScaleTask(query) {
const params = generateGetTaskParam(query);
- console.log('当前角色id和真实任务', roleId.value, currRoleRealTasks.value);
let centerData = await showTaskTime(params, currRoleShowTasks.value, currRoleRealTasks.value) || [];
- console.log('需要显示的真实任务', centerData);
await handleTasksData(params, centerData, currRoleRealTasks.value);
}
@@ -232,7 +226,6 @@ export default function useGetTasks() {
}
} else {
if (nextPage > 0) {
- console.log('数据为空')
getTasks({pageNum: nextPage, queryType: params.queryType});
} else {
params.queryType === 0 ? setPrevPlaceholderTasks(params) : setNextPlaceholderTasks(params);
@@ -319,6 +312,35 @@ export default function useGetTasks() {
const index = visibleRoles.value.findIndex(role => role.id === roleId.value);
const arr = [...allTasks.value];
if (arr.length && index > -1) {
+ if (remindData.value) {
+ tasks.value.forEach(task => {
+ task.remindNum = 0;
+ task.msgId = '';
+
+ if (task.plugins && task.plugins.length) {
+ task.plugins.forEach(pluginArr => {
+ pluginArr.forEach(plugin => {
+ plugin.remindNum = 0;
+ remindData.value.forEach(remind => {
+ const remind_data = JSON.parse(remind.data);
+
+ if (projectId.value === remind_data.data.projectId && roleId.value === remind_data.data.roleId) {
+ if (remind_data.data.taskId === task.id) {
+ task.remindNum++;
+ task.msgId = remind.id;
+ }
+
+ if (remind_data.data.taskId === task.id && remind_data.data.pluginId === plugin.pluginTaskId) {
+ plugin.remindNum++;
+ }
+ }
+ });
+ });
+ });
+ }
+ })
+ }
+
arr[index].task = [...tasks.value];
store.commit('task/setCurrRoleShowTasks', arr[index].task); // 设置当前角色的展示任务数据
}
diff --git a/hooks/project/useInit.js b/hooks/project/useInit.js
index 9a7319e..f72dea3 100644
--- a/hooks/project/useInit.js
+++ b/hooks/project/useInit.js
@@ -63,10 +63,13 @@ export default function useInit() {
// 设置 初始显示角色信息
function setInitialRoleId(visibleList) {
if (!visibleList || !visibleList.length) return;
- const index = visibleList.findIndex(item => +item.mine === 1);
+ let index = visibleList.findIndex(item => +item.mine === 1);
const currentRole = index > 0 ? visibleList[index] : visibleList[0];
const storageRoleId = uni.$storage.getStorageSync('roleId');
const currentRoleId = storageRoleId || (currentRole ? currentRole.id : '');
+ if (storageRoleId) {
+ index = visibleList.findIndex(item => item.id === storageRoleId);
+ }
store.commit('role/setRoleId', currentRoleId);
store.commit('role/setRoleIndex', index);
// 清空storage
@@ -85,12 +88,13 @@ export default function useInit() {
uni.$ui.showToast('缺少项目信息参数'); // 没有项目id参数
} else {
if (options.p !== uni.$storage.getStorageSync('projectId')) {
+ console.log('options', options)
store.commit('project/setProject', options);
- store.commit('role/setRoleId', options.roleId || '');
- uni.$storage.setStorageSync('roleId', '');
+ store.commit('role/setRoleId', '');
+ uni.$storage.setStorageSync('roleId', options.roleId || '');
store.commit('task/setAllTasks', []);
store.commit('task/setBusinessCode', options.businessCode || '');
- store.commit('task/setTaskId', options.taskId || '');
+ store.commit('task/setTargetTaskId', options.taskId || '');
}
// 根据项目id获取项目信息
const params = { projectId: options.p, num: 0 };
diff --git a/manifest.json b/manifest.json
index 3a90cfd..ae43c4d 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,7 +2,7 @@
"name" : "时物链条2",
"appid" : "__UNI__6207504",
"description" : "",
- "versionName" : "1.0.3",
+ "versionName" : "1.0.5",
"versionCode" : "100",
"transformPx" : false,
/* 5+App特有相关 */
diff --git a/pages/project/project.vue b/pages/project/project.vue
index 058fdaf..081f277 100644
--- a/pages/project/project.vue
+++ b/pages/project/project.vue
@@ -61,7 +61,7 @@ const height = ref(null); // 页面高度
const timeLineType = computed(() => store.state.task.timeLineType); // 时间轴模式
const remindData = computed(() => store.state.socket.remindData); // 时间轴模式
const currLocationTaskId = computed(() => store.state.socket.currLocationTaskId); // 前需要定位到的任务id
-const taskId = computed(() => store.state.task.taskId); // 前需要定位到的任务id
+const targetTaskId = computed(() => store.state.task.targetTaskId); // 前需要定位到的任务id
onMounted(() => {
const system = uni.getSystemInfoSync();
@@ -83,6 +83,42 @@ onUnmounted(() => {
store.commit('socket/setCurrLocationTaskId', '');
});
+watch(remindData, () => {
+ console.log('remindData', remindData.value)
+
+ if (remindData.value && visibleRoles.value) {
+ if (visibleRoles.value) {
+ visibleRoles.value.forEach(role => {
+ role.remindNum = 0;
+ remindData.value.forEach(remind => {
+ const remind_data = JSON.parse(remind.data);
+ if (projectId.value === remind_data.data.projectId && remind_data.data.roleId === role.id) {
+ role.remindNum++;
+ }
+ });
+ });
+ }
+
+ if (allTasks.value.length) {
+ allTasks.value.forEach(data => {
+ console.log(data);
+ if (data.global) {
+ data.global.forEach(global => {
+ global.remindNum = 0;
+ renderRemindData(global, remindData.value);
+ })
+ }
+
+ if (data.task) {
+ data.task.forEach(task => {
+ renderRemindData(task, remindData.value);
+ })
+ }
+ })
+ }
+ }
+})
+
/**
* 当角色发生变化时
* 重新查询永久日常任务和普通日常任务
@@ -131,7 +167,7 @@ watch(timeNode, newValue => {
store.commit('task/setCurrRoleShowTasks', currRoleShowTasks); // 设置当前角色的展示任务数据
store.commit('task/setUpNextPage', upNextPage); // 设置当前角色的真实任务数据的向上查询页数
store.commit('task/setDownNextPage', downNextPage); // 设置当前角色的真实任务数据向下查询页数
- store.commit('socket/setCurrLocationTaskId', taskId.value || '');
+ store.commit('socket/setCurrLocationTaskId', targetTaskId.value || '');
// 查任务
getGlobalData(); // 查可变日常任务
@@ -174,14 +210,42 @@ watch(globals, () => {
const index = visibleRoles.value.findIndex(role => role.id === roleId.value);
const arr = [...allTasks.value];
if (arr.length && index > -1) {
+ if (remindData.value) {
+ globals.value.forEach(global => {
+ global.remindNum = 0;
+
+ if (global.plugins && global.plugins.length) {
+ global.plugins.forEach(pluginArr => {
+ pluginArr.forEach(plugin => {
+ plugin.remindNum = 0;
+ remindData.value.forEach(remind => {
+ const remind_data = JSON.parse(remind.data);
+
+ if (projectId.value === remind_data.data.projectId && roleId.value === remind_data.data.roleId) {
+ if (remind_data.data.taskId === global.id) {
+ global.remindNum++;
+ }
+
+ if (remind_data.data.taskId === global.id && remind_data.data.pluginId === plugin.pluginTaskId) {
+ plugin.remindNum++;
+ }
+ }
+ });
+ });
+ });
+ }
+ })
+ }
+
arr[index].global = [...globals.value];
}
+
store.commit('task/setAllTasks', arr);
});
// 获取可变全局任务
function getGlobalData() {
- if (!allTasks.value[roleIndex]) {
+ if (!allTasks.value[roleIndex] && roleId.value) {
const param = {
roleId: roleId.value,
timeNode: timeNode.value,
@@ -194,7 +258,7 @@ function getGlobalData() {
// 获取日常任务
function getPermanent() {
- if (!allTasks.value[roleIndex]) {
+ if (!allTasks.value[roleIndex] && roleId.value) {
const params = {
roleId: roleId.value,
projectId: projectId.value,
@@ -224,13 +288,16 @@ function clearTasksData() {
// tabs通知swiper切换
function tabsChange(e) {
- console.log('切换角色', e);
+ const { id } = visibleRoles.value[e.detail.current];
+ store.commit('role/setRoleIndex', e.detail.current);
+ store.commit('role/setRoleId', id);
}
// 设置自动滚动位置
function setScrollPosition() {
// 如果storage里有taskId 滚动到这个id的任务
const taskId = uni.$storage.getStorageSync('taskId');
+
if (taskId) {
store.commit('task/setScrollToTaskId', `a${taskId}`);
uni.$storage.setStorageSync('taskId', ''); // 记录后即刻清除本地存储
@@ -262,6 +329,31 @@ function changeModal() {
const params = { pageNum: 1, taskId: currLocationTaskId.value };
getTasksHook.getTasks(params);
}
+
+function renderRemindData(data, remind) {
+ data.remindNum = 0;
+ if (data.plugins && data.plugins.length) {
+ data.plugins.forEach(pluginArr => {
+ pluginArr.forEach(plugin => {
+ plugin.remindNum = 0;
+
+ remind.forEach(item => {
+ const remind_data = JSON.parse(item.data);
+
+ if (remind_data.data.projectId === projectId.value && remind_data.data.projectId === roleId.value) {
+ if (remind_data.data.taskId === global.id) {
+ data.remindNum++;
+ }
+
+ if (remind_data.data.taskId === global.id && remind_data.data.pluginId === plugin.pluginTaskId) {
+ plugin.remindNum++;
+ }
+ }
+ })
+ })
+ })
+ }
+}