diff --git a/src/components/tall/center/Global.vue b/src/components/tall/center/Global.vue index a8097f4..d8046d9 100644 --- a/src/components/tall/center/Global.vue +++ b/src/components/tall/center/Global.vue @@ -14,6 +14,7 @@ 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); // 项目信息 @@ -41,6 +42,7 @@ async function getPermanentData(id) { const globalHeight = data.length * 38 + 26; store.commit('task/setGlobalHeight', globalHeight); } catch (error) { + message.info(error); throw new Error(error); } } diff --git a/src/components/tall/center/RegularTask.vue b/src/components/tall/center/RegularTask.vue index 5e4c8bd..4d39290 100644 --- a/src/components/tall/center/RegularTask.vue +++ b/src/components/tall/center/RegularTask.vue @@ -40,6 +40,7 @@ import { useStore } from 'vuex'; import dayjs from 'dayjs'; import { PlayCircleOutlined } from '@ant-design/icons-vue'; import { getRegularTask, findSonTask } from 'apis'; +import { message } from 'ant-design-vue'; const store = useStore(); const project = computed(() => store.state.projects.project); // 项目信息 @@ -91,6 +92,7 @@ async function getTasks(query) { store.commit('task/setRegularTasks', data); } catch (error) { + message.info(error); throw new Error(error); } } @@ -108,6 +110,7 @@ async function getSonTask(id) { store.commit('task/setRegularTasks', taskObj.tasks); } catch (error) { + message.info(error); throw new Error(error); } } diff --git a/src/components/tall/center/Roles.vue b/src/components/tall/center/Roles.vue index a358a61..e94bc42 100644 --- a/src/components/tall/center/Roles.vue +++ b/src/components/tall/center/Roles.vue @@ -1,8 +1,8 @@ @@ -11,6 +11,7 @@ import { computed, watch } from 'vue'; import { useStore } from 'vuex'; import { findShowRole } from 'apis'; +import { message } from 'ant-design-vue'; const store = useStore(); const roleId = computed(() => store.state.role.roleId); // 当前角色 @@ -25,6 +26,10 @@ if (sessionRoles) { setInitialRoleId(roleArr); } +if (project.value) { + getRoles(project.value.id); // 通过项目id获取角色信息 +} + watch(project, async () => { if (project.value.id) { await getRoles(project.value.id); // 通过项目id获取角色信息 @@ -43,6 +48,7 @@ async function getRoles(params) { store.commit('role/setVisibleRoles', data ? data.visibleList : []); setInitialRoleId(data ? data.visibleList : []); } catch (error) { + message.info(error); throw new Error(error); } } diff --git a/src/components/tall/left/Index.vue b/src/components/tall/left/Index.vue index 01f0ffc..5f28595 100644 --- a/src/components/tall/left/Index.vue +++ b/src/components/tall/left/Index.vue @@ -30,8 +30,10 @@ import { useStore } from 'vuex'; // import dayjs from 'dayjs'; import { PlusCircleFilled } from '@ant-design/icons-vue'; import { create } from 'apis'; +import { message } from 'ant-design-vue'; import Calendar from './Calendar.vue'; import Projects from './Projects.vue'; + // import { importWbs } from 'apis'; const store = useStore(); @@ -53,6 +55,7 @@ async function createExperiment() { store.commit('layout/setRefreshProjects'); return data; } catch (error) { + message.info(error); throw new Error(error); } } diff --git a/src/components/tall/left/Projects.vue b/src/components/tall/left/Projects.vue index f54770c..3efa98c 100644 --- a/src/components/tall/left/Projects.vue +++ b/src/components/tall/left/Projects.vue @@ -74,6 +74,7 @@ import { useStore } from 'vuex'; import dayjs from 'dayjs'; import { getProjects, delProject } from 'apis'; import { RightOutlined, DownOutlined } from '@ant-design/icons-vue'; +import { message } from 'ant-design-vue'; const store = useStore(); @@ -146,6 +147,7 @@ async function getProjectsList() { store.commit('projects/setProjects', data); } catch (error) { + message.info(error); throw new Error(error); } } @@ -178,6 +180,7 @@ async function deleteProject(param) { try { await delProject(param); } catch (error) { + message.info(error); throw new Error(error); } } diff --git a/src/components/tall/task/AssignmentExperiment.vue b/src/components/tall/task/AssignmentExperiment.vue index 4174d62..f1d8675 100644 --- a/src/components/tall/task/AssignmentExperiment.vue +++ b/src/components/tall/task/AssignmentExperiment.vue @@ -48,6 +48,7 @@ import { ref, computed, watch } from 'vue'; import { useStore } from 'vuex'; import dayjs from 'dayjs'; import { createExperiment, memberQuery, getExperimentation } from 'apis'; +import { message } from 'ant-design-vue'; const store = useStore(); const formRef = ref(null); @@ -56,6 +57,10 @@ const projectId = computed(() => store.getters['projects/projectId']); const options = ref([]); const experimentationId = computed(() => store.state.task.experimentationId); // 子课题ID +if (experimentationId.value) { + getSubProject(experimentationId.value); +} + watch(experimentationId, async () => { await getSubProject(experimentationId.value); }); @@ -113,7 +118,8 @@ async function getList(name) { options.value.push(obj); }); } catch (error) { - console.log('error', error); + message.info(error); + throw new Error(error); } } @@ -142,6 +148,7 @@ async function getSubProject(id) { }; } } catch (error) { + message.info(error); throw new Error(error); } } diff --git a/src/components/tall/task/AssignmentSubject.vue b/src/components/tall/task/AssignmentSubject.vue index da1ecb4..ae2a360 100644 --- a/src/components/tall/task/AssignmentSubject.vue +++ b/src/components/tall/task/AssignmentSubject.vue @@ -102,10 +102,6 @@ const projectId = computed(() => store.getters['projects/projectId']); // 项目 const options = ref([]); const detailId = computed(() => store.state.task.detailId); // 子课题ID -watch(detailId, async () => { - await getSubProject(detailId.value); -}); - const topicSubFormData = ref({ projectId: projectId.value, id: detailId.value, @@ -133,6 +129,22 @@ const stageList = ref([ }, ]); +if (detailId.value) { + getSubProject(detailId.value); +} else { + renderData(); +} + +watch(detailId, async () => { + if (detailId.value) { + await getSubProject(detailId.value); + } else { + renderData(); + } +}); + +getList(); // 获取成员列表 + // 添加实施内容与目标 function addMilestones() { stageList.value.push({ @@ -150,8 +162,6 @@ function addMilestones() { }); } -getList(); // 获取成员列表 - const handleSearch = async value => { console.log('handleSearch', options.value, value); // await getList(value); // 获取成员列表 @@ -178,55 +188,47 @@ async function getList(name) { options.value.push(obj); }); } catch (error) { - console.log('error', error); + message.info(error); + throw new Error(error); } } -const onSubmit = () => { - stageList.value.forEach(item => { - item.date.forEach((val, key) => { - if (key === 0) { - item.startTime = dayjs(val).format('x'); - } else { - item.endTime = dayjs(val).format('x'); - } - }); - }); - +const onSubmit = async () => { let msgText = ''; + stageList.value.forEach(item => { - console.log(item); + if (item.date.length > 0) { + item.date.forEach((val, key) => { + if (key === 0) { + item.startTime = dayjs(val).format('x'); + } else { + item.endTime = dayjs(val).format('x'); + } + }); + } if (item.checkContent.indexOf('1') > -1) { if (!item.thesis) msgText = '请填写论文数量'; } - if (item.checkContent.indexOf('2') > -1) { if (!item.patent) msgText = '请填写专利数量'; } - if (item.checkContent.indexOf('3') > -1) { if (!item.theSoft) msgText = '请填写软著数量'; } - if (item.checkContent.indexOf('4') > -1) { if (!item.sciThesis) msgText = '请填写SCI论文数量'; } - if (item.checkContent.indexOf('5') > -1) { if (!item.inventPatent) msgText = '请填写发明专利数量'; } - if (item.checkContent.indexOf('6') > -1) { if (!item.practicalPatent) msgText = '请填写实用新型专利数量'; } - if (item.checkContent.indexOf('7') > -1) { if (!item.facadePatent) msgText = '请填写外观专利数量'; } - if (item.thesis < item.sciThesis) msgText = 'SCI论文数量不能比总论文数量大'; - const totalPatent = Number(item.inventPatent) + Number(item.practicalPatent) + Number(item.facadePatent); if (item.patent < totalPatent) msgText = '发明专利数量、实用新型专利数量、外观专利数量总和不能比总专利数量大'; }); @@ -247,15 +249,20 @@ const onSubmit = () => { }); const params = { param: topicSubFormData.value }; - saveSubExperiment(params); - getSubProject(detailId.value); + await saveSubExperiment(params); + store.commit('layout/setRefreshProjects'); + + if (detailId.value) { + getSubProject(detailId.value); + } else { + renderData(); + } }; async function getSubProject(id) { try { const params = { param: { taskDetailId: id } }; const data = await getSubExperiment(params); - store.commit('layout/setRefreshProjects'); if (data) { const start = dayjs(Number(data.startTime)); @@ -266,7 +273,11 @@ async function getSubProject(id) { data.subExperimentStageDtoList.forEach(item => { item.startTime = item.stageStartTime; item.endTime = item.stageEndTime; - item.date = [dayjs(Number(item.startTime)), dayjs(Number(item.endTime))]; + console.log(item.startTime !== '0'); + if (item.startTime !== '0') { + item.date = [dayjs(Number(item.startTime)), dayjs(Number(item.endTime))]; + } + item.checkContent = []; if (item.thesis) item.checkContent.push('1'); if (item.patent) item.checkContent.push('2'); @@ -278,36 +289,43 @@ async function getSubProject(id) { }); stageList.value = data.subExperimentStageDtoList; } else { - topicSubFormData.value = { - projectId: projectId.value, - id: detailId.value, - name: '', - memberId: '', - date: [], - startTime: '', - endTime: '', - stageDtoList: [], - }; - stageList.value = [ - { - date: [], - startTime: '', - endTime: '', - checkContent: [], - thesis: '', - sciThesis: '', - patent: '', - inventPatent: '', - practicalPatent: '', - facadePatent: '', - theSoft: '', - }, - ]; + // 如果返回值为空渲染空数据 + renderData(); } } catch (error) { + message.info(error); throw new Error(error); } } + +// 如果是添加渲染数据 +function renderData() { + topicSubFormData.value = { + projectId: projectId.value, + id: detailId.value, + name: '', + memberId: '', + date: [], + startTime: '', + endTime: '', + stageDtoList: [], + }; + stageList.value = [ + { + date: [], + startTime: '', + endTime: '', + checkContent: [], + thesis: '', + sciThesis: '', + patent: '', + inventPatent: '', + practicalPatent: '', + facadePatent: '', + theSoft: '', + }, + ]; +}