Browse Source

perf: 1.时间轴筛选相同的时间替换数据 2.整理代码

tall
song 4 years ago
parent
commit
e082ccb76f
  1. 1
      CHANGELOG.md
  2. 1
      src/components/Roles/Roles.vue
  3. 21
      src/components/TimeLine/TimeLine.vue
  4. 7
      src/components/TimeLine/component/TimeBox.vue
  5. 14
      src/pages/project/project.vue
  6. 3
      src/plugins/p-wbs-import/p-wbs-import.vue
  7. 9
      src/store/task/mutations.js
  8. 1
      src/store/task/state.js

1
CHANGELOG.md

@ -161,6 +161,7 @@
### 🚀 性能优化
范围|描述|commitId
--|--|--
- | 修改代码格式 | [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)

1
src/components/Roles/Roles.vue

@ -85,7 +85,6 @@ export default {
// projectroleId
changeRole(id, index) {
try {
console.log('切换角色');
// script
this.clearPluginScript();
this.$nextTick(() => {

21
src/components/TimeLine/TimeLine.vue

@ -31,20 +31,17 @@ export default {
mixins: [mixin],
data() {
return {
top: 0,
viewId: '', //
};
return { top: 0 };
},
computed: {
...mapState('role', ['visibleRoles']),
...mapState('task', ['scrollTop', 'showTips', 'tasks', 'topEnd', 'bottomEnd', 'showSkeleton', 'timeNode']),
...mapState('task', ['scrollTop', 'showTips', 'tasks', 'topEnd', 'bottomEnd', 'showSkeleton', 'timeNode', 'viewId']),
...mapGetters('task', ['timeGranularity']),
},
methods: {
...mapMutations('task', ['setScrollTop', 'setShrink', 'setUpTasks', 'setDownTasks']),
...mapMutations('task', ['setScrollTop', 'setShrink', 'setUpTasks', 'setDownTasks', 'setViewId']),
//
scroll(e) {
@ -98,17 +95,21 @@ export default {
},
//
setViewId() {
setScrollPosition() {
const { tasks, timeNode } = this;
for (let i = 0; i < tasks.length; i++) {
const item = tasks[i];
const show = this.$t.time.isSame(+item.planStart, +timeNode, this.timeGranularity);
if (item.detailId) {
this.viewId = `a${item.id}`;
// storagetimeNode,storetimeNode
const taskId = this.$t.storage.getStorageSync('taskId');
// storage
if (taskId) {
this.setViewId(`a${taskId}`);
this.$t.storage.setStorageSync('taskId', '');
return;
}
if (show) {
this.viewId = `a${item.id}`;
this.setViewId(`a${item.id}`);
return;
}
}

7
src/components/TimeLine/component/TimeBox.vue

@ -38,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)"
>
<!-- 任务面板插件 -->
<view slot="body">
@ -105,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);
},

14
src/pages/project/project.vue

@ -44,6 +44,7 @@ export default {
* 永久日常任务不发生改变
*/
async timeNode(val) {
console.log('时间基准点发生变化: ', val);
if (val && this.roleId) {
//
await this.initTasks();
@ -59,10 +60,7 @@ export default {
roleId(val) {
if (val) {
console.log('角色发生变化: ', val);
// storagetimeNode,storetimeNode
this.setTimeNode(+this.$t.storage.getStorageSync('timeNode') !== 0 ? +this.$t.storage.getStorageSync('timeNode') : Date.now());
// storage
this.$t.storage.setStorageSync('timeNode', '');
this.setTimeNode(Date.now());
//
this.getPermanent(val);
}
@ -152,7 +150,7 @@ export default {
this.setNextTasks();
await this.getInitTasks();
setTimeout(() => {
this.$refs.child.setViewId();
this.$refs.child.setScrollPosition();
}, 2000);
},
@ -268,17 +266,19 @@ export default {
for (let j = 0; j < data.length; j++) {
const item = data[j];
//
if (+data[0].planStart < +newTasks[0].planStart) {
if (+newTasks[0].planStart > +data[0].planStart) {
this.setPrevTasks();
newTasks = [...this.tasks];
i--;
break;
} else if (+data[data.length - 1].planStart > +newTasks[newTasks.length - 1].planStart) {
this.setNextTasks();
newTasks = [...this.tasks];
i--;
break;
} else {
//
const taskItem = this.$t.time.isSame(+item.planStart, +task.planStart, this.timeGranularity);
const taskItem = this.$t.time.isSame(+task.planStart, +item.planStart, this.timeGranularity);
if (taskItem) {
arr.push(item);
if (task.detailId) {

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

9
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

1
src/store/task/state.js

@ -1,5 +1,6 @@
const state = {
scrollTop: 0,
viewId: '', // 时间轴自动滚动的位置
isShrink: false, // true: 收起, false:展开
tip: {
taskId: '', // 当前正在修改状态的任务的id

Loading…
Cancel
Save