Browse Source

feat: "刷新页面任务数据清空问题"

master
xuesinan 4 years ago
parent
commit
3bb8da58c0
  1. 16
      src/components/tall/center/ProjectDetail.vue
  2. 20
      src/components/tall/left/Projects.vue
  3. 5
      src/components/tall/top/Navbar.vue
  4. 1
      src/store/tall/projects/index.js
  5. 11
      src/store/tall/task/index.js
  6. 5
      src/views/detail/Test.vue
  7. 3
      src/views/home/Index.vue

16
src/components/tall/center/ProjectDetail.vue

@ -2,8 +2,8 @@
<div class="navbar flex items-center justify-between">
<div class="project-name">{{ project.name }}</div>
<div class="project-action">
<img />
<img @click="toShowMask" />
<ReloadOutlined :style="{ fontSize: 20 + 'px' }" />
<MoreOutlined :style="{ fontSize: 20 + 'px' }" />
</div>
</div>
@ -25,7 +25,7 @@
<div class="task-box" v-for="(item, index) in taskObj.tasks" :key="index">
<div class="task-time flex items-center justify-between">
<div class="flex items-center">
<img />
<PlayCircleOutlined style="font-size: 23px; color: #999999" />
<span>{{ dayjs(item.planStart).format('D日 HH:mm') }}</span>
</div>
<div class="task-action"></div>
@ -56,6 +56,7 @@ import { computed, watch, reactive, ref } from 'vue';
import { useStore } from 'vuex';
import dayjs from 'dayjs';
import { findShowRole, getRegularTask, findSonTask, findProjectById } from 'apis';
import { ReloadOutlined, MoreOutlined, PlayCircleOutlined } from '@ant-design/icons-vue';
const store = useStore();
const projectId = sessionStorage.getItem('projectId');
@ -222,6 +223,11 @@ function toDetail(item) {
color: #333;
}
.project-action .anticon {
margin-left: 16px;
cursor: pointer;
}
.role-list {
padding: 0 16px;
height: 36px;
@ -282,9 +288,7 @@ function toDetail(item) {
height: 32px;
}
.task-time img {
width: 23px;
height: 23px;
.task-time .anticon {
margin-right: 16px;
}

20
src/components/tall/left/Projects.vue

@ -79,6 +79,7 @@ const store = useStore();
const projects = reactive({ projects: [] });
const visible = ref(false);
const deleteId = ref(null);
const projectId = sessionStorage.getItem('projectId');
//
const showActionCard = item => {
@ -94,9 +95,18 @@ const getProjectsList = async (startTime, endTime) => {
data.forEach(item => {
item.show = false;
if (item.id === projectId) {
item.show = true;
}
if (item.sonProjectList) {
item.sonProjectList.forEach(sonItem => {
sonItem.show = false;
if (sonItem.id === projectId) {
sonItem.show = true;
item.show = true;
}
});
}
@ -111,11 +121,13 @@ const getProjectsList = async (startTime, endTime) => {
getProjectsList(dayjs().startOf('day').format('x'), dayjs().endOf('day').format('x'));
function toDetail(project) {
function toDetail(item) {
item.show = !item.show;
const obj = {
id: project.id,
name: project.name,
url: project.url,
id: item.id,
name: item.name,
url: item.url,
};
store.commit('projects/setProject', obj);

5
src/components/tall/top/Navbar.vue

@ -10,6 +10,11 @@ import { useStore } from 'vuex';
const store = useStore();
const taskDetail = computed(() => store.state.task.taskDetail); //
const taskInfo = ref({});
const sessionTaskDetail = sessionStorage.getItem('taskDetail');
if (sessionTaskDetail) {
taskInfo.value = JSON.parse(sessionTaskDetail);
}
//
watch(taskDetail, newVal => {

1
src/store/tall/projects/index.js

@ -57,7 +57,6 @@ export default {
*/
setProject(state, data) {
state.project = data || { name: '加载中...' };
console.log(11111111111, data);
if (data) {
sessionStorage.setItem('projectId', data.id);
sessionStorage.setItem('project', JSON.stringify(data));

11
src/store/tall/task/index.js

@ -289,8 +289,15 @@ export default {
/**
* 设置当前点击的任务信息
*/
setTaskDetail(state, show) {
state.taskDetail = show;
setTaskDetail(state, data) {
state.taskDetail = data;
if (data) {
sessionStorage.setItem('taskId', data.id);
sessionStorage.setItem('taskDetail', JSON.stringify(data));
} else {
sessionStorage.removeItem('taskId');
sessionStorage.removeItem('taskDetail');
}
},
},

5
src/views/detail/Test.vue

@ -14,6 +14,11 @@ import { useStore } from 'vuex';
const store = useStore();
const taskDetail = computed(() => store.state.task.taskDetail); //
const taskInfo = ref({});
const sessionTaskDetail = sessionStorage.getItem('taskDetail');
if (sessionTaskDetail) {
taskInfo.value = JSON.parse(sessionTaskDetail);
}
//
watch(taskDetail, newVal => {

3
src/views/home/Index.vue

@ -16,7 +16,7 @@
<a-layout>
<a-layout-sider class="project-detail"><ProjectDetail /></a-layout-sider>
<a-layout>
<a-layout v-if="sessionTaskId">
<!-- 导航栏-->
<a-layout-header style="background: #fff">
<Navbar />
@ -45,6 +45,7 @@ import ProjectDetail from 'components/tall/center/ProjectDetail.vue';
const locale = zhCN;
const store = useStore();
const collapsed = computed(() => store.state.layout.display.left); //
const sessionTaskId = sessionStorage.getItem('taskId');
// queryu token
// const route = useRoute();

Loading…
Cancel
Save