补卡记录,请假记录,施工人员列表日历

This commit is contained in:
Teo
2025-04-09 18:07:43 +08:00
parent 8439370389
commit 2643f4abc8
15 changed files with 827 additions and 172 deletions

View File

@ -5,17 +5,26 @@ import { LoginData, UserProject } from '@/api/types';
import defAva from '@/assets/images/profile.jpg';
import store from '@/store';
import { defineStore } from 'pinia';
import { SpecialType } from '@/api/project/workWage/types';
// 添加两个函数用于操作localStorage
const saveSelectedProjectToStorage = (project) => {
localStorage.setItem('selectedProject', JSON.stringify(project));
};
const saveProjectTeamToStorage = (project) => {
localStorage.setItem('ProjectTeamList', JSON.stringify(project));
};
const getSelectedProjectFromStorage = () => {
const stored = localStorage.getItem('selectedProject');
return stored ? JSON.parse(stored) : null;
};
const getProjectTeamListFromStorage = () => {
const stored = localStorage.getItem('ProjectTeamList');
return stored ? JSON.parse(stored) : null;
};
export const useUserStore = defineStore('user', () => {
const token = ref(getToken());
const name = ref('');
@ -29,6 +38,7 @@ export const useUserStore = defineStore('user', () => {
const projects = ref<Array<{ id: string; name: string }>>([]);
// 从localStorage获取缓存的项目如果没有则默认为null
const selectedProject = ref<{ id: string; name: string } | null>(getSelectedProjectFromStorage());
const ProjectTeamList = ref<SpecialType[] | null>(getProjectTeamListFromStorage());
/**
* 登录
@ -112,14 +122,12 @@ export const useUserStore = defineStore('user', () => {
const setSelectedProject = (project: { id: string; name: string }) => {
selectedProject.value = project;
// 将选中的项目保存到localStorage
saveSelectedProjectToStorage(project);
};
// ** 切换项目后,需要清空当前项目下的所有缓存数据 **
// 清空 pinia 缓存
// store.$reset();
// console.log("选择的新项目名称:" + selectedProject.value.name)
// console.log("选择的新项目id" + selectedProject.value.id)
const setProjectTeamList = (project: SpecialType[]) => {
ProjectTeamList.value = project;
saveProjectTeamToStorage(project);
};
return {
@ -136,8 +144,10 @@ export const useUserStore = defineStore('user', () => {
setAvatar,
setProjects,
setSelectedProject,
setProjectTeamList,
projects,
selectedProject
selectedProject,
ProjectTeamList
};
});