pc端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

74 lines
2.0 KiB

<template>
<div class="global">
<div class="global-box" v-if="permanents && permanents.length > 0">
<div class="global-task cursor-pointer" v-for="(item, index) in permanents" :key="index" @click="toDetail(item)">
<template v-for="v in item.plugins">
<template v-if="v[0].pluginId == 1">{{ item.name }}</template>
</template>
</div>
</div>
</div>
</template>
<script setup>
import { computed, watch } from 'vue';
import { useStore } from 'vuex';
import { getPermanent } from 'apis';
import { message } from 'ant-design-vue';
const store = useStore();
const project = computed(() => store.state.projects.project); // 项目信息
const roleId = computed(() => store.state.role.roleId); // 当前角色
const permanents = computed(() => store.state.task.permanents); // 日常任务
const sessionPermanents = sessionStorage.getItem('permanents'); // 日常任务缓存
if (sessionPermanents) {
const arr = JSON.parse(sessionPermanents);
store.commit('task/setPermanents', arr);
}
watch([project, roleId], async () => {
if (roleId.value) {
await getPermanentData(roleId.value); // 根据角色查找永久的日常任务
}
});
// 日常任务
async function getPermanentData(id) {
const params = { param: { roleId: id } };
try {
const data = await getPermanent(params);
store.commit('task/setPermanents', data);
const globalHeight = data.length * 38 + 26;
store.commit('task/setGlobalHeight', globalHeight);
} catch (error) {
message.info(error);
throw new Error(error);
}
}
function toDetail(item) {
store.commit('task/setTaskDetail', item);
store.commit('layout/setListStatus', false);
store.commit('task/setIntellectualId', '');
store.commit('task/setMeetId', '');
store.commit('task/setSubMeetId', '');
}
</script>
<style scoped>
.global {
padding: 16px;
}
.global-box {
border: 1px solid #cccccc;
border-radius: 10px;
padding: 12px 16px;
}
.global-task {
padding: 8px 0;
line-height: 22px;
}
</style>