-
实验平台
-
@@ -12,22 +20,52 @@
diff --git a/src/store/index.js b/src/store/index.js
index f74febf..7fc6341 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -1,5 +1,8 @@
import { createStore } from 'vuex';
-import user from './tall/user';
import layout from './tall/layout';
+import projects from './tall/projects';
+import role from './tall/role';
+import task from './tall/task';
+import user from './tall/user';
-export default createStore({ modules: { user, layout } });
+export default createStore({ modules: { user, projects, role, task, layout } });
diff --git a/src/store/tall/projects/projects.js b/src/store/tall/projects/index.js
similarity index 100%
rename from src/store/tall/projects/projects.js
rename to src/store/tall/projects/index.js
diff --git a/src/store/tall/role/actions.js b/src/store/tall/role/actions.js
new file mode 100644
index 0000000..dc3a48f
--- /dev/null
+++ b/src/store/tall/role/actions.js
@@ -0,0 +1,20 @@
+import { queryChecker } from 'apis';
+
+const actions = {
+ /**
+ * 根据项目id查找所有成员信息
+ * @param {*} commit
+ * @param {object} params
+ */
+ async getAllMembers({ commit }, params) {
+ try {
+ const data = await queryChecker(params);
+ commit('setMembers', data);
+ return data;
+ } catch (error) {
+ throw new Error(error);
+ }
+ },
+};
+
+export default actions;
diff --git a/src/store/tall/role/getters.js b/src/store/tall/role/getters.js
new file mode 100644
index 0000000..efbfa27
--- /dev/null
+++ b/src/store/tall/role/getters.js
@@ -0,0 +1,14 @@
+const getters = {
+ // 是不是负责人
+ isMine({ roleId, invisibleRoles, visibleRoles }) {
+ console.log(roleId, invisibleRoles, visibleRoles);
+ // if (!visibleRoles || !visibleRoles.length) return false;
+ // const visible = visibleRoles.find(visible => visible.id === roleId);
+ // if (visible) return visible.mine;
+ // const invisible = invisibleRoles.find(invisible => invisible.id === roleId);
+ // if (invisible) return visible.mine;
+ return false;
+ },
+};
+
+export default getters;
diff --git a/src/store/tall/role/index.js b/src/store/tall/role/index.js
new file mode 100644
index 0000000..d22f64a
--- /dev/null
+++ b/src/store/tall/role/index.js
@@ -0,0 +1,12 @@
+import state from './state';
+import getters from './getters';
+import mutations from './mutations';
+import actions from './actions';
+
+export default {
+ namespaced: true,
+ state,
+ getters,
+ mutations,
+ actions,
+};
diff --git a/src/store/tall/role/mutations.js b/src/store/tall/role/mutations.js
new file mode 100644
index 0000000..83bd215
--- /dev/null
+++ b/src/store/tall/role/mutations.js
@@ -0,0 +1,39 @@
+const mutations = {
+ /**
+ * 设置不展示的角色信息
+ * @param {Object} state
+ * @param {Array} data 服务端返回的模板数组
+ */
+ setInvisibleRoles(state, data) {
+ state.invisibleRoles = data || [];
+ },
+
+ /**
+ * 设置展示的角色信息
+ * @param {Object} state
+ * @param {Array} data 服务端返回的模板数组
+ */
+ setVisibleRoles(state, data) {
+ state.visibleRoles = data || [];
+ },
+
+ /**
+ * 设置当前角色信息
+ * @param {Object} state
+ * @param {string} roleId 当前正在展示的角色的id
+ */
+ setRoleId(state, roleId) {
+ state.roleId = roleId;
+ },
+
+ /**
+ * 设置项目下所有成员信息
+ * @param {Object} state
+ * @param {Array} data 服务端返回的模板数组
+ */
+ setMembers(state, data) {
+ state.members = data || [];
+ },
+};
+
+export default mutations;
diff --git a/src/store/tall/role/state.js b/src/store/tall/role/state.js
new file mode 100644
index 0000000..1117de7
--- /dev/null
+++ b/src/store/tall/role/state.js
@@ -0,0 +1,8 @@
+const state = {
+ invisibleRoles: [], // 不展示的角色信息
+ visibleRoles: [], // 展示的角色信息
+ roleId: '', // 当前展示查看的角色id
+ members: [], // 项目下所有成员
+};
+
+export default state;
diff --git a/src/store/tall/task/index.js b/src/store/tall/task/index.js
new file mode 100644
index 0000000..39cb191
--- /dev/null
+++ b/src/store/tall/task/index.js
@@ -0,0 +1,320 @@
+import { getGlobal, getPermanent } from 'apis';
+
+export default {
+ namespaced: true,
+
+ state: {
+ scrollTop: 0,
+ scrollToTaskId: '', // 时间轴自动滚动的位置
+ isShrink: false, // true: 收起, false:展开
+ tip: {
+ taskId: '', // 当前正在修改状态的任务的id
+ show: false,
+ status: 0, // 所点击任务的当前状态码
+ text: '',
+ left: 0, // 鼠标点击位置距离左边的距离
+ top: 0, // 鼠标点击位置距离上边的距离
+ },
+ timeNode: new Date().getTime(), // 时间基准点
+ timeUnit: 4, // 时间颗粒度
+ topEnd: false, // 时间轴向上查任务到顶了
+ bottomEnd: false, // 时间轴向下查任务到底了
+ permanents: [], // 永久日常任务
+ dailyTasks: [], // 日常任务
+ tasks: [], // 所有的定期任务
+ showSkeleton: false, // 定期任务骨架屏
+ newProjectInfo: {},
+ showScrollTo: false, // 是否可以设置时间轴自动滚动的位置
+ },
+
+ getters: {
+ // 所有的日常任务 永久 + 可变 日常任务
+ globals({ dailyTasks, permanents }) {
+ return [...permanents, ...dailyTasks];
+ },
+
+ // unitConfig({ timeUnit }) {
+ // const target = uni.$t.timeConfig.timeUnits.find(item => item.id === timeUnit);
+ // return target;
+ // },
+
+ // 计算任务开始时间的格式
+ startTimeFormat(state, { unitConfig }) {
+ return unitConfig.format || 'D日 HH:mm';
+ },
+
+ // 计算颗粒度 对应的 dayjs add 的单位
+ timeGranularity(state, { unitConfig }) {
+ return unitConfig.granularity;
+ },
+ },
+
+ mutations: {
+ /**
+ * 记录时间轴向上滚动的距离
+ * @param { object } state
+ * @param { number } num
+ */
+ setScrollTop(state, num) {
+ state.scrollTop = num;
+ },
+
+ /**
+ * 记录时间轴向上滚动的距离
+ * @param { object } state
+ * @param {string} taskId
+ */
+ setScrollToTaskId(state, taskId) {
+ state.scrollToTaskId = taskId;
+ },
+
+ /**
+ * 设置日常任务当前是否应该处于收缩状态
+ * @param { object } state
+ * @param { boolean } data
+ */
+ setShrink(state, data) {
+ state.isShrink = data;
+ },
+
+ /**
+ * 设置tip的值
+ * @param {object} state
+ * @param {object} data
+ */
+ setTip(state, data) {
+ if (!data) return;
+ state.tip = { ...data };
+ },
+
+ /**
+ * 是否显示tips
+ * @param { object } state
+ * @param { boolean } show
+ */
+ setTipShow(state, show) {
+ state.tip.show = show;
+ },
+
+ /**
+ * 是否显示tips
+ * @param { object } state
+ * @param { number } status
+ */
+ setStatus(state, status) {
+ state.tip.status = status;
+ },
+
+ /**
+ * 设置时间基准点
+ * @param { object } state
+ * @param { number } data
+ */
+ setTimeNode(state, data) {
+ state.timeNode = data;
+ },
+
+ /**
+ * 设置时间颗粒度
+ * @param { object } state
+ * @param { number } data
+ */
+ setTimeUnit(state, data) {
+ state.timeUnit = data;
+ },
+
+ /**
+ * 设置向上查到的定期任务数据
+ * @param {Object} state
+ * @param {Array} data 服务端返回的模板数组
+ */
+ setUpTasks(state, data) {
+ if (!state.tasks.length) {
+ state.tasks = [...data]; // 原来没有数据
+ } else {
+ state.tasks = [...data, ...state.tasks];
+
+ const arr = [];
+ let flag = false;
+ state.tasks.forEach(task => {
+ arr.forEach(item => {
+ if (task.id === item.id) {
+ flag = true;
+ }
+ });
+
+ if (!flag) {
+ arr.push(task);
+ }
+ });
+
+ state.tasks = [...arr];
+ // state.tasks = [...data.concat(state.tasks)];
+ }
+ },
+
+ /**
+ * 设置向下查到的定期任务数据
+ * @param {Object} state
+ * @param {Array} data 服务端返回的模板数组
+ */
+ setDownTasks(state, data) {
+ if (!state.tasks && !state.tasks.length) {
+ state.tasks = [...data];
+ } else {
+ state.tasks = [...state.tasks, ...data];
+
+ const arr = [];
+ let flag = false;
+ state.tasks.forEach(task => {
+ arr.forEach(item => {
+ if (task.id === item.id) {
+ flag = true;
+ }
+ });
+
+ if (!flag) {
+ arr.push(task);
+ }
+ });
+
+ state.tasks = [...arr];
+ // state.tasks = [...state.tasks.concat(data)];
+ }
+ },
+
+ /**
+ * 添加任务后更新tasks
+ * @param {Object} state
+ * @param {Array} data 新添加的task
+ */
+ updateTasks(state, data) {
+ state.tasks = [...data];
+ },
+
+ /**
+ * 设置添加任务的位置
+ * @param {*} state
+ * @param {*} data
+ */
+ setAddPosition(state, data) {
+ console.log('data: ', data);
+ },
+
+ /**
+ * 设置日常任务数据
+ * @param {Object} state
+ * @param {Array} data 服务端返回的模板数组
+ */
+ setDailyTasks(state, data) {
+ state.dailyTasks = data || [];
+ },
+
+ /**
+ * 设置永久固定任务
+ * @param {object} state
+ * @param {array} tasks 服务端查询到的永久日常任务书籍
+ */
+ setPermanents(state, tasks) {
+ state.permanents = tasks || [];
+ },
+
+ /**
+ * 设置时间轴是否继续向上查任务
+ * @param {Object} state
+ * @param {Boolean} show
+ */
+ setTopEnd(state, show) {
+ state.topEnd = show;
+ },
+
+ /**
+ * 设置时间轴是否继续向下查任务
+ * @param {Object} state
+ * @param {Boolean} show
+ */
+ setBottomEnd(state, show) {
+ state.bottomEnd = show;
+ },
+
+ // 清空标志位 如切换角色等使用
+ clearEndFlag(state) {
+ state.topEnd = false;
+ state.bottomEnd = false;
+ },
+
+ // 清空定期任务
+ clearTasks(state) {
+ state.tasks = [];
+ },
+
+ /**
+ * 收到消息设置任务状态
+ * @param {Object} state
+ * @param {Array} data 服务端返回的模板数组
+ */
+ setTaskStatus(state, data) {
+ const item = state.tasks.find(i => i.id === data.id);
+ item.process = data.taskStatus;
+ },
+
+ /**
+ * 收到打开新项目消息状态
+ * @param {Object} state
+ * @param {Array} data 服务端返回的模板数组
+ */
+ setNewProjectInfo(state, data) {
+ state.newProjectInfo = data;
+ },
+
+ /**
+ * 设置骨架屏是否显示
+ * @param {Object} state
+ * @param {Boolean} show
+ */
+ setShowSkeleton(state, show) {
+ state.showSkeleton = show;
+ },
+
+ /**
+ * 是否设置时间轴自动滚动的位置
+ * @param {Object} state
+ * @param {Boolean} show
+ */
+ setShowScrollTo(state, show) {
+ state.showScrollTo = show;
+ },
+ },
+
+ actions: {
+ /**
+ * 根据角色查找永久的日常任务
+ * @param {*} commit
+ * @param {string} roleId 角色id
+ */
+ async getPermanent({ commit }, param) {
+ try {
+ const data = await getPermanent(param);
+ commit('setPermanents', data);
+ return data;
+ } catch (error) {
+ throw new Error(error);
+ }
+ },
+
+ /**
+ * 根据时间和角色查找日常任务
+ * @param {*} commit
+ * @param {object} param 请求参数 roleId, timeNode, timeUnit
+ */
+ async getGlobal({ commit }, param) {
+ try {
+ const data = await getGlobal(param);
+ commit('setDailyTasks', data);
+ return data;
+ } catch (error) {
+ throw new Error(error);
+ }
+ },
+ },
+};
diff --git a/src/store/tall/user/index.js b/src/store/tall/user/index.js
index d92689b..3330a84 100644
--- a/src/store/tall/user/index.js
+++ b/src/store/tall/user/index.js
@@ -14,6 +14,10 @@ export default {
if (!user) return null;
return user.id;
},
+ account({ user }) {
+ if (!user) return null;
+ return user.account;
+ },
},
mutations: {
@@ -25,11 +29,11 @@ export default {
setUser(state, user) {
state.user = user;
if (user) {
- localStorage.setItem('token', user.token);
- localStorage.setItem('user', JSON.stringify(user));
+ sessionStorage.setItem('token', user.token);
+ sessionStorage.setItem('user', JSON.stringify(user));
} else {
- localStorage.removeItem('token');
- localStorage.removeItem('user');
+ sessionStorage.removeItem('token');
+ sessionStorage.removeItem('user');
}
},
},
diff --git a/src/views/detail/Test.vue b/src/views/detail/Test.vue
index 0021872..6d82af5 100644
--- a/src/views/detail/Test.vue
+++ b/src/views/detail/Test.vue
@@ -1,3 +1,26 @@
-
测试
+
+
+
+
+
diff --git a/src/views/home/Index.vue b/src/views/home/Index.vue
index 56edbe4..8fa3d71 100644
--- a/src/views/home/Index.vue
+++ b/src/views/home/Index.vue
@@ -1,26 +1,84 @@
-
+
-
+
+ -->
+
+