diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3360cef..53eb312 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# 0.1.0 (2021-08-19)
+# 0.1.0 (2021-08-18)
### 🌟 新功能
范围|描述|commitId
@@ -82,6 +82,7 @@
### 🐛 Bug 修复
范围|描述|commitId
--|--|--
+ - | 1.时间轴数据渲染 2.时间基准线 | [d643af2](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/d643af2)
ID1000343 | 解决向下预加载查询参数时间没+1颗粒度;以及滚动加载颗粒度写死的问题 | [940603a](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/940603a), closes [#ID1000343](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/issues/ID1000343)
plugin | 插件解析机制完善 | [0f5a27d](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/0f5a27d)
project title | 项目标题修改; 切换角色移除script | [5c20017](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/5c20017)
@@ -94,12 +95,14 @@
- | 下拉加载定期任务传参,时间格式化修改 | [0b95a0e](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/0b95a0e)
- | 任务开始时间延迟插件 | [992a313](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/992a313)
- | 修改main | [749ae9a](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/749ae9a)
+ - | 修改定期任务状态0和4时不加载圆圈 | [30e352f](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/30e352f)
- | 修改小红点传参 | [87b20fd](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/87b20fd)
- | 修改报错 | [531c14d](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/531c14d)
- | 修改接口路径 | [df6acf2](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/df6acf2)
- | 修改角色栏组件 | [a54c601](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/a54c601)
- | 切换到默认项目角色没有激活状态的bug | [438d448](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/438d448)
- | 切换日历时查询小红点 | [7091789](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/7091789)
+ - | 初始展示角色修改 | [2ac4053](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/2ac4053)
- | 定期任务key值修改 | [c6688db](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/c6688db)
- | 定期任务接口 | [aa4981c](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/aa4981c)
- | 定期任务插件 | [92b3254](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/92b3254)
@@ -118,11 +121,13 @@
- | 时间轴上下滚动数据加载bug修改 | [e82ede4](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/e82ede4)
- | 时间轴插件 | [225d3cc](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/225d3cc)
- | 时间轴无任务时时间刻度加载修改 | [4921672](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/4921672)
+ - | 时间轴滚动位置修改 | [551da63](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/551da63)
- | 时间轴骨架屏修改 | [ca78d02](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/ca78d02)
- | 监听时间基本点 | [033fca0](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/033fca0)
- | 角色显示状态修改 | [7d3b906](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/7d3b906)
- | 角色栏修改 | [19228d6](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/19228d6)
- | 解决时间轴报错 | [da1eece](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/da1eece)
+ - | 设置时间轴自动滚动到当前位置 | [a3474f8](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/a3474f8)
- | 跳转详情页返回路径修改 | [c5e17c0](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/c5e17c0)
- | 骨架屏替换 | [e9fdd71](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/e9fdd71)
@@ -163,6 +168,8 @@
### 🚀 性能优化
范围|描述|commitId
--|--|--
+ - | 1.时间轴筛选相同的时间替换数据 2.整理代码 | [e082ccb](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/e082ccb)
+ - | 修改代码格式 | [14123d7](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/14123d7)
- | 修改定期任务骨架屏高度 | [909a734](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/909a734)
- | 插件查询及展示 | [4dba770](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/4dba770)
- | 整理代码 | [7a55315](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/7a55315)
@@ -197,4 +204,3 @@
- | style:index | [978f272](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/978f272)
- | !2 基础模板v1.1.0 | [f5e61dd](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/f5e61dd)
- | init | [c0f1deb](https://dd.tall.wiki/gitea/ccsens_fe/TALL-MUI-3/commits/c0f1deb)
-
diff --git a/src/apis/plugin.js b/src/apis/plugin.js
index e8ea541..0899cca 100644
--- a/src/apis/plugin.js
+++ b/src/apis/plugin.js
@@ -5,6 +5,10 @@ const install = (Vue, vm) => {
vm.$u.api = { ...vm.$u.api } || {};
// 获取插件信息
vm.$u.api.getOtherPlugin = param => vm.$u.post(`${url}/pluginshop/plugin/query`, param);
+ // 查询子任务
+ vm.$u.api.findSonTask = param => vm.$u.post(`${uni.$t.domain}/task/findSonTask`, param);
+ // 查询子项目
+ vm.$u.api.findSonProject = param => vm.$u.post(`${uni.$t.domain}/project/findSonProject`, param);
};
export default { install };
diff --git a/src/components/Plugin/Plugin.vue b/src/components/Plugin/Plugin.vue
index 88a6b41..20d7127 100644
--- a/src/components/Plugin/Plugin.vue
+++ b/src/components/Plugin/Plugin.vue
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/src/components/Roles/Roles.vue b/src/components/Roles/Roles.vue
index 1de30b1..6bf350f 100644
--- a/src/components/Roles/Roles.vue
+++ b/src/components/Roles/Roles.vue
@@ -58,10 +58,11 @@ export default {
methods: {
...mapActions('task', ['handleRegularTask', 'getPermanent']),
...mapMutations('role', ['setRoleId']),
- ...mapMutations('task', ['setPermanents', 'setDailyTasks', 'clearEndFlag', 'setTimeNode']),
+ ...mapMutations('task', ['setPermanents', 'clearEndFlag']),
// 设置滚动位置
setCurrentRole(index) {
+ console.log('index: ', index);
const data = document.getElementsByClassName('tab-children');
// 获取当前所有子元素 并插入到 tabList 列表中
data.forEach(item => {
@@ -85,20 +86,12 @@ export default {
// 时间基准点不用管 project监听了roleId 里处理了
changeRole(id, index) {
try {
- console.log('切换角色');
// 清除多余的script
this.clearPluginScript();
this.$nextTick(() => {
this.setRoleId(id);
//改变index 即手动点击切换 我在此时将当前元素赋值给左边距 实现自动滚动
this.setCurrentRole(index);
- // 清空日常任务的数据
- this.setPermanents([]);
- this.setDailyTasks([]);
- // 清空定期任务数据
- // 到顶的标志复位
- // 到底的标志复位
- this.clearEndFlag();
});
} catch (error) {
console.error('role.vue changeRole error: ', error);
diff --git a/src/components/TimeLine/TimeLine.vue b/src/components/TimeLine/TimeLine.vue
index 3b65aee..efcc1ff 100644
--- a/src/components/TimeLine/TimeLine.vue
+++ b/src/components/TimeLine/TimeLine.vue
@@ -4,9 +4,9 @@
-
+
{{ $moment(+task.planStart).format(startTimeFormat) }}
{{ $moment(+task.planStart).format('D日') }}
+
@@ -37,7 +38,7 @@
class="h-16"
margin="0"
v-if="tasks && tasks.length && task.process !== 4 && !showSkeleton"
- @click="onClickTask(+task.planStart)"
+ @click="onClickTask(+task.planStart, task.id)"
>
@@ -104,11 +105,12 @@ export default {
/**
* 点击了定期任务的面板 更新可变的日常任务
* @param {number} planStart 任务计划开始时间
+ * @param {string} taskId 任务id
*/
- onClickTask(planStart) {
+ onClickTask(planStart, taskId) {
const param = { roleId: this.roleId, timeNode: planStart, timeUnit: this.timeUnit };
this.getGlobal(param);
- this.$t.storage.setStorageSync('timeNode', planStart);
+ this.$t.storage.setStorageSync('taskId', taskId);
this.$t.storage.setStorageSync('roleId', this.roleId);
},
diff --git a/src/components/TimeLine/component/TimeStatus.vue b/src/components/TimeLine/component/TimeStatus.vue
index 7215474..4042b07 100644
--- a/src/components/TimeLine/component/TimeStatus.vue
+++ b/src/components/TimeLine/component/TimeStatus.vue
@@ -5,13 +5,25 @@
:style="{ color: orderStyle.color }"
@tap="changeStatus($event, task.process)"
>
+
+
+
+
+
+ {{ computeDurationText() }}
+
+
+
+
+
@@ -22,7 +34,7 @@
{{ computeDurationText() }}
-
+
@@ -106,7 +118,6 @@ export default {
* @param {object} event
*/
changeStatus(event, process) {
- console.log('event, process: ', event, process);
if (process === 4) {
this.addTask();
return;
@@ -184,4 +195,17 @@ export default {
height: 33px;
width: 33px;
}
+
+.progress-box {
+ background: rgba(255, 255, 255, 0);
+ width: 33px;
+ height: 33px;
+ border: 2px solid #9ca3af;
+}
+
+.progress-box-4 {
+ width: 25px;
+ height: 25px;
+ border: 2px solid #60a5fa;
+}
diff --git a/src/mixins/timeline.js b/src/mixins/timeline.js
new file mode 100644
index 0000000..b61c46a
--- /dev/null
+++ b/src/mixins/timeline.js
@@ -0,0 +1,44 @@
+import { mapGetters } from 'vuex';
+
+const mixin = {
+ computed: mapGetters('task', ['timeGranularity']),
+
+ methods: {
+ /**
+ * 设置时间轴空数据
+ * @param {*} startTime
+ * @param {*} show true 向上加载,false 向下加载
+ */
+ setTime(startTime, show) {
+ let { timeGranularity } = this;
+ let arr = [];
+ let str = {};
+ if (show) {
+ for (let i = 10; i > 0; i--) {
+ str = {
+ id: this.$u.guid(20, false, 10),
+ panel: {},
+ plugins: [],
+ process: 4,
+ planStart: this.$t.time.add(startTime, `-${i}` - 0, timeGranularity).valueOf(),
+ };
+ arr.push(str);
+ }
+ } else {
+ for (let i = 0; i < 10; i++) {
+ str = {
+ id: this.$u.guid(20, false, 10),
+ panel: {},
+ plugins: [],
+ process: 4,
+ planStart: this.$t.time.add(startTime, i + 1, timeGranularity).valueOf(),
+ };
+ arr.push(str);
+ }
+ }
+ return arr;
+ },
+ },
+};
+
+export default mixin;
diff --git a/src/pages/project/project.vue b/src/pages/project/project.vue
index ad85156..9ea4c29 100644
--- a/src/pages/project/project.vue
+++ b/src/pages/project/project.vue
@@ -18,8 +18,10 @@
diff --git a/src/plugins/p-subproject/p-subproject.vue b/src/plugins/p-subproject/p-subproject.vue
index 67c08b0..602ccd8 100644
--- a/src/plugins/p-subproject/p-subproject.vue
+++ b/src/plugins/p-subproject/p-subproject.vue
@@ -1,18 +1,58 @@
- 子项目插件:显示子项目
+
+
+ {{ item.name }}
+
+
diff --git a/src/plugins/p-subtasks/p-subtasks.vue b/src/plugins/p-subtasks/p-subtasks.vue
index 0f652cb..8e55858 100644
--- a/src/plugins/p-subtasks/p-subtasks.vue
+++ b/src/plugins/p-subtasks/p-subtasks.vue
@@ -1,18 +1,38 @@
- 子任务插件:显示子任务
+
+
+ {{ item.name }}
+
+
diff --git a/src/plugins/p-wbs-import/p-wbs-import.vue b/src/plugins/p-wbs-import/p-wbs-import.vue
index 0e37dd2..00b9b1b 100644
--- a/src/plugins/p-wbs-import/p-wbs-import.vue
+++ b/src/plugins/p-wbs-import/p-wbs-import.vue
@@ -54,8 +54,7 @@ export default {
// TODO: 更新接口没写完
async handleUpdate() {
try {
- const data = await this.$u.api.import({ projectId: this.projectId });
- console.log('data: ', data);
+ await this.$u.api.import({ projectId: this.projectId });
// 导入WBS成功后
// 直接打开导入的项目
this.onUploadSuccess();
diff --git a/src/store/task/actions.js b/src/store/task/actions.js
index f48ced7..b8dfbfb 100644
--- a/src/store/task/actions.js
+++ b/src/store/task/actions.js
@@ -33,16 +33,9 @@ const actions = {
* @param {number} param.queryType 必填 0 -> 向上 1 -> 向下
*/
// eslint-disable-next-line
- async getRegulars({ commit, state }, param) {
+ async getRegulars({ commit }, param) {
try {
- // 向上查 且 上边没数据了 不查
- // if (param.queryType === 0) return;
- // 向下查 且 下边美术家了 不查
- // if (param.queryType === 1) return;
- const data = await uni.$u.api.getRegularTask(param);
- // 0 -> 向上 1 -> 向下
- // data 有无的判断在mutations里
- param.queryType === 0 ? commit('setUpTasks', data) : commit('setDownTasks', data);
+ return await uni.$u.api.getRegularTask(param);
} catch (error) {
throw error || '获取定期任务失败';
}
diff --git a/src/store/task/mutations.js b/src/store/task/mutations.js
index 1994329..e644faa 100644
--- a/src/store/task/mutations.js
+++ b/src/store/task/mutations.js
@@ -8,6 +8,15 @@ const mutations = {
state.scrollTop = num;
},
+ /**
+ * 记录时间轴向上滚动的距离
+ * @param { object } state
+ * @param { string } data
+ */
+ setViewId(state, data) {
+ state.viewId = data;
+ },
+
/**
* 设置日常任务当前是否应该处于收缩状态
* @param { object } state
@@ -52,7 +61,6 @@ const mutations = {
*/
setTimeNode(state, data) {
state.timeNode = data;
- console.log('state.timeNode : ', state.timeNode);
},
/**
@@ -70,65 +78,10 @@ const mutations = {
* @param {Array} data 服务端返回的模板数组
*/
setUpTasks(state, data) {
- if (!data || !data.length) {
- state.topEnd = true;
- let sTime = '';
- if (!state.tasks || !state.tasks.length) {
- sTime = +new Date().getTime();
- } else {
- sTime = +state.tasks[0].planStart - 0;
- }
- const initData = [
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, -6, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, -5, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, -4, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, -3, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, -2, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, -1, 'day').valueOf(),
- },
- ];
- state.tasks = [...initData.concat(state.tasks)];
+ if (!state.tasks.length) {
+ state.tasks = [...data];
} else {
- if (!state.tasks && !state.tasks.length) {
- state.tasks = [...data];
- } else {
- state.tasks = [...data.concat(state.tasks)];
- }
+ state.tasks = [...data.concat(state.tasks)];
}
},
@@ -138,65 +91,10 @@ const mutations = {
* @param {Array} data 服务端返回的模板数组
*/
setDownTasks(state, data) {
- if (!data || !data.length) {
- state.bottomEnd = true;
- let sTime = '';
- if (!state.tasks || !state.tasks.length) {
- sTime = +new Date().getTime();
- } else {
- sTime = +state.tasks[state.tasks.length - 1].planStart - 0;
- }
- const initData = [
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, 1, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, 2, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, 3, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, 4, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, 5, 'day').valueOf(),
- },
- {
- id: state.randomId,
- panel: {},
- plugins: [],
- process: 4,
- planStart: uni.$t.time.add(sTime, 6, 'day').valueOf(),
- },
- ];
- state.tasks = [...state.tasks.concat(initData)];
+ if (!state.tasks && !state.tasks.length) {
+ state.tasks = [...data];
} else {
- if (!state.tasks && !state.tasks.length) {
- state.tasks = [...data];
- } else {
- state.tasks = [...state.tasks.concat(data)];
- }
+ state.tasks = [...state.tasks.concat(data)];
}
},
@@ -218,13 +116,35 @@ const mutations = {
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.tasks = [];
state.topEnd = false;
state.bottomEnd = false;
},
+ // 清空定期任务
+ clearTasks(state) {
+ state.tasks = [];
+ },
+
/**
* 收到消息设置任务状态
* @param {Object} state
diff --git a/src/store/task/state.js b/src/store/task/state.js
index 79f4db9..c2ed496 100644
--- a/src/store/task/state.js
+++ b/src/store/task/state.js
@@ -1,5 +1,6 @@
const state = {
scrollTop: 0,
+ viewId: '', // 时间轴自动滚动的位置
isShrink: false, // true: 收起, false:展开
tip: {
taskId: '', // 当前正在修改状态的任务的id
@@ -18,7 +19,6 @@ const state = {
// 定期任务
tasks: [],
showSkeleton: false, // 定期任务骨架屏
- randomId: Math.floor(Math.random() * 100000000000000000000), // 随机id
};
export default state;
diff --git a/src/utils/time.js b/src/utils/time.js
index 4997acd..6f1fae2 100644
--- a/src/utils/time.js
+++ b/src/utils/time.js
@@ -100,6 +100,17 @@ const validateTimeIsToday = time => {
return timeDate.getFullYear() === date.getFullYear() && timeDate.getMonth() === date.getMonth() && timeDate.getDate() === date.getDate();
};
+/**
+ * 检测两个日期是否相同
+ * @param {number | date} time
+ * @param {number | date} value
+ * @param {string} cycle 传入 day 将会比较 day、 month和 year
+ */
+const isSame = (time, value, cycle) => {
+ const str = dayjs(time).isSame(value, cycle);
+ return str;
+};
+
/**
* 格式化开始时间
* @param {Number} timestamp 时间戳
@@ -344,6 +355,7 @@ export default {
convertTime,
secondToMinute,
setTimestampToStr,
+ isSame,
formatBeginTime,
formatDuration,
formatDurationToObject,