顶部项目列表联动中间表格刷新

This commit is contained in:
Teo
2025-03-25 10:52:02 +08:00
parent 0d5850a928
commit 1acf93e607
4 changed files with 28 additions and 2 deletions

View File

@ -97,7 +97,10 @@ export interface ContractorQuery extends PageQuery {
* 负责人 * 负责人
*/ */
principal?: string; principal?: string;
/**
* 项目id
*/
projectId: string | number;
/** /**
* 负责人联系电话 * 负责人联系电话
*/ */

View File

@ -37,10 +37,17 @@ watch(
); );
const handleSelect = (projectId: string) => { const handleSelect = (projectId: string) => {
const oldId = userStore.getSelectedProjectFromStorage()
console.log(projectId,oldId.id);
if (projectId!=oldId.id) {
location.reload()
}
const selectedProject = projects.value.find((p) => p.id === projectId); const selectedProject = projects.value.find((p) => p.id === projectId);
if (selectedProject) { if (selectedProject) {
userStore.setSelectedProject(selectedProject); userStore.setSelectedProject(selectedProject);
} }
}; };
</script> </script>

View File

@ -136,6 +136,7 @@ export const useUserStore = defineStore('user', () => {
setAvatar, setAvatar,
setProjects, setProjects,
setSelectedProject, setSelectedProject,
getSelectedProjectFromStorage,
projects, projects,
selectedProject selectedProject
}; };

View File

@ -103,6 +103,7 @@
import { addContractor, delContractor, getContractor, listContractor, updateContractor } from '@/api/project/contractor'; import { addContractor, delContractor, getContractor, listContractor, updateContractor } from '@/api/project/contractor';
import { ContractorForm, ContractorQuery, ContractorVO } from '@/api/project/contractor/types'; import { ContractorForm, ContractorQuery, ContractorVO } from '@/api/project/contractor/types';
import ContractorFileDialog from '@/views/project/contractor/component/ContractorFileDialog.vue'; import ContractorFileDialog from '@/views/project/contractor/component/ContractorFileDialog.vue';
import { useUserStoreHook } from '@/store/modules/user';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@ -117,7 +118,20 @@ const total = ref(0);
const queryFormRef = ref<ElFormInstance>(); const queryFormRef = ref<ElFormInstance>();
const contractorFormRef = ref<ElFormInstance>(); const contractorFormRef = ref<ElFormInstance>();
// 获取用户 store
const userStore = useUserStoreHook();
// 从 store 中获取项目列表和当前选中的项目
const currentProject = computed(() => userStore.selectedProject);
//监听项目改变
// watch(
// () => currentProject.value,
// (newId, oldId) => {
// /* ... */
// queryParams.value.projectId=newId.id
// // getList()
// }
// )
const dialog = reactive<DialogOption>({ const dialog = reactive<DialogOption>({
visible: false, visible: false,
title: '' title: ''
@ -145,6 +159,7 @@ const data = reactive<PageData<ContractorForm, ContractorQuery>>({
principalPhone: undefined, principalPhone: undefined,
custodian: undefined, custodian: undefined,
custodianPhone: undefined, custodianPhone: undefined,
projectId: currentProject.value.id,
params: {} params: {}
}, },
rules: { rules: {