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 @@
-
{{ item.name }}
-
+
{{ item.name }}
+
@@ -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: '',
+ },
+ ];
+}