From b4dc52f61f37d888240f3417248536b9b99af11f Mon Sep 17 00:00:00 2001
From: xuesinan <1404152492@qq.com>
Date: Mon, 29 Nov 2021 02:07:37 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20"=E9=A1=B5=E9=9D=A2"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.eslintrc.js | 1 +
src/App.vue | 4 +
src/apis/index.js | 12 +
src/components/tall/left/Index.vue | 5 +-
src/components/tall/left/Projects.vue | 18 +-
.../tall/task/AssignmentExperiment.vue | 108 +++++++++
.../tall/task/AssignmentSubject.vue | 220 ++++++++++++++++++
src/components/tall/task/Conclusion.vue | 142 +++++++++++
.../tall/task/ContractManagement.vue | 154 ++++++++++++
src/components/tall/task/DataUnlock.vue | 117 ++++++++++
src/components/tall/task/ExperimentalCode.vue | 84 +++++++
src/components/tall/task/ExperimentalData.vue | 84 +++++++
.../tall/task/ExperimentalResult.vue | 78 +++++++
.../tall/task/InterimInspection.vue | 142 +++++++++++
src/components/tall/task/LabReport.vue | 125 ++++++++++
.../tall/task/MeetingManagement.vue | 4 +-
src/components/tall/task/MemberManagement.vue | 103 ++++++--
src/components/tall/task/PlanAssignment.vue | 14 +-
src/components/tall/task/Procedure.vue | 148 ++++++++++++
src/components/tall/task/Result.vue | 148 ++++++++++++
src/components/tall/task/SubConclusion.vue | 142 +++++++++++
.../tall/task/SubInterimInspection.vue | 142 +++++++++++
.../tall/task/SubMeetingManagement.vue | 122 ++++++++++
src/components/tall/task/SubResult.vue | 142 +++++++++++
.../tall/task/SubSubjectProgress.vue | 206 ++++++++++++++++
src/components/tall/top/Navbar.vue | 2 +-
src/store/tall/layout/mutations.js | 6 +
src/store/tall/layout/state.js | 2 +
src/views/detail/Test.vue | 81 ++++++-
29 files changed, 2523 insertions(+), 33 deletions(-)
create mode 100644 src/components/tall/task/AssignmentExperiment.vue
create mode 100644 src/components/tall/task/AssignmentSubject.vue
create mode 100644 src/components/tall/task/Conclusion.vue
create mode 100644 src/components/tall/task/ContractManagement.vue
create mode 100644 src/components/tall/task/DataUnlock.vue
create mode 100644 src/components/tall/task/ExperimentalCode.vue
create mode 100644 src/components/tall/task/ExperimentalData.vue
create mode 100644 src/components/tall/task/ExperimentalResult.vue
create mode 100644 src/components/tall/task/InterimInspection.vue
create mode 100644 src/components/tall/task/LabReport.vue
create mode 100644 src/components/tall/task/Procedure.vue
create mode 100644 src/components/tall/task/Result.vue
create mode 100644 src/components/tall/task/SubConclusion.vue
create mode 100644 src/components/tall/task/SubInterimInspection.vue
create mode 100644 src/components/tall/task/SubMeetingManagement.vue
create mode 100644 src/components/tall/task/SubResult.vue
create mode 100644 src/components/tall/task/SubSubjectProgress.vue
diff --git a/.eslintrc.js b/.eslintrc.js
index 49e9e64..7f0b2e1 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -31,6 +31,7 @@ module.exports = {
'no-shadow': ['error', { builtinGlobals: false, hoist: 'functions', allow: [] }],
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+ 'array-callback-return': 'off',
'no-param-reassign': 'off',
'max-len': [
'error',
diff --git a/src/App.vue b/src/App.vue
index 7323aa2..af5322c 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -116,6 +116,10 @@ body,
color: #666 !important;
}
+.color-9 {
+ color: #999 !important;
+}
+
.color-c {
color: #cccccc !important;
}
diff --git a/src/apis/index.js b/src/apis/index.js
index ee4280a..1f388a3 100644
--- a/src/apis/index.js
+++ b/src/apis/index.js
@@ -69,3 +69,15 @@ export const uploadImg = `${filedeal}/file/upload/multiple`;
// 添加/编辑计划任务书
export const savePlanTask = params => http.post(`${experiment}/experiment/savePlanTask`, params);
+
+// 分配子课题
+export const saveSubExperiment = params => http.post(`${experiment}/experiment/saveSubExperiment`, params);
+
+// 查询成员
+export const memberQuery = params => http.post(`${experiment}/organization/query`, params);
+
+// 添加成员
+export const saveMember = params => http.post(`${experiment}/organization/save`, params);
+
+// 分配实验
+export const createExperiment = params => http.post(`${experiment}/subExperiment/create`, params);
diff --git a/src/components/tall/left/Index.vue b/src/components/tall/left/Index.vue
index f8d986a..7e4005b 100644
--- a/src/components/tall/left/Index.vue
+++ b/src/components/tall/left/Index.vue
@@ -116,8 +116,9 @@ async function createExperiment() {
// getProjectsList(dayjs().startOf('day').format('x'), dayjs().endOf('day').format('x'));
-function changeTime() {
- // getProjectsList(data.startTime, data.endTime);
+function changeTime(data) {
+ console.log(data);
+ store.commit('layout/setSelectTime', data);
}
diff --git a/src/components/tall/left/Projects.vue b/src/components/tall/left/Projects.vue
index 503b3b1..741d13d 100644
--- a/src/components/tall/left/Projects.vue
+++ b/src/components/tall/left/Projects.vue
@@ -81,12 +81,18 @@ const visible = ref(false);
const deleteId = ref(null);
const projectId = sessionStorage.getItem('projectId');
const newProject = computed(() => store.state.projects.newProject); // 新建项目
-
-watch(newProject, () => {
- getProjectsList(dayjs().startOf('day').format('x'), dayjs().endOf('day').format('x'));
+const startTime = computed(() => store.state.layout.startTime); // 当前选择时间
+const endTime = computed(() => store.state.layout.endTime); // 当前选择时间
+let start = startTime.value ? startTime.value : dayjs().startOf('day').format('x');
+let end = endTime.value ? endTime.value : dayjs().startOf('day').format('x');
+
+watch([newProject, startTime, endTime], () => {
+ start = startTime.value ? startTime.value : dayjs().startOf('day').format('x');
+ end = endTime.value ? endTime.value : dayjs().startOf('day').format('x');
+ getProjectsList(start, end);
});
-getProjectsList(dayjs().startOf('day').format('x'), dayjs().endOf('day').format('x'));
+getProjectsList(start, end);
// 点击操作面试显示隐藏
const showActionCard = item => {
@@ -95,9 +101,9 @@ const showActionCard = item => {
};
// 获取项目列表
-async function getProjectsList(startTime, endTime) {
+async function getProjectsList(startData, endData) {
try {
- const data = await getProjects(startTime, endTime);
+ const data = await getProjects(startData, endData);
projects.projects = [];
data.forEach(item => {
item.show = false;
diff --git a/src/components/tall/task/AssignmentExperiment.vue b/src/components/tall/task/AssignmentExperiment.vue
new file mode 100644
index 0000000..3d2a104
--- /dev/null
+++ b/src/components/tall/task/AssignmentExperiment.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/AssignmentSubject.vue b/src/components/tall/task/AssignmentSubject.vue
new file mode 100644
index 0000000..9d64754
--- /dev/null
+++ b/src/components/tall/task/AssignmentSubject.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/Conclusion.vue b/src/components/tall/task/Conclusion.vue
new file mode 100644
index 0000000..cdea0f9
--- /dev/null
+++ b/src/components/tall/task/Conclusion.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/ContractManagement.vue b/src/components/tall/task/ContractManagement.vue
new file mode 100644
index 0000000..90d08d4
--- /dev/null
+++ b/src/components/tall/task/ContractManagement.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/DataUnlock.vue b/src/components/tall/task/DataUnlock.vue
new file mode 100644
index 0000000..5d77c0c
--- /dev/null
+++ b/src/components/tall/task/DataUnlock.vue
@@ -0,0 +1,117 @@
+
+
+
+ 申请人子课题负责人
+ 申请时间2021-09-17 10:30
+ 申请原因修改交付物
+
+
+
+
+ 申请人子课题负责人
+ 申请时间2021-09-17 10:30
+ 申请原因修改交付物
+
+
+
+
+ 申请人子课题负责人
+ 申请时间2021-09-17 10:30
+ 申请原因修改交付物
+
+
+
+
+ 申请人子课题负责人
+ 申请时间2021-09-17 10:30
+ 申请原因修改交付物
+
+
+
+
+
+
diff --git a/src/components/tall/task/ExperimentalCode.vue b/src/components/tall/task/ExperimentalCode.vue
new file mode 100644
index 0000000..28d271d
--- /dev/null
+++ b/src/components/tall/task/ExperimentalCode.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/ExperimentalData.vue b/src/components/tall/task/ExperimentalData.vue
new file mode 100644
index 0000000..fd9bd54
--- /dev/null
+++ b/src/components/tall/task/ExperimentalData.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/ExperimentalResult.vue b/src/components/tall/task/ExperimentalResult.vue
new file mode 100644
index 0000000..e2c5bf5
--- /dev/null
+++ b/src/components/tall/task/ExperimentalResult.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/InterimInspection.vue b/src/components/tall/task/InterimInspection.vue
new file mode 100644
index 0000000..86605b2
--- /dev/null
+++ b/src/components/tall/task/InterimInspection.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/LabReport.vue b/src/components/tall/task/LabReport.vue
new file mode 100644
index 0000000..d019102
--- /dev/null
+++ b/src/components/tall/task/LabReport.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/MeetingManagement.vue b/src/components/tall/task/MeetingManagement.vue
index b264238..78a3a4d 100644
--- a/src/components/tall/task/MeetingManagement.vue
+++ b/src/components/tall/task/MeetingManagement.vue
@@ -71,12 +71,12 @@
点击或拖拽文件到区域内上传交付物
- 格式:pdf
+ 格式:jpg、jpeg、rar、zip
- 上传会议记录
+ 上传会议资料
diff --git a/src/components/tall/task/MemberManagement.vue b/src/components/tall/task/MemberManagement.vue
index 6225efd..9412840 100644
--- a/src/components/tall/task/MemberManagement.vue
+++ b/src/components/tall/task/MemberManagement.vue
@@ -1,27 +1,41 @@
-
-
-
-
+
+
- 编辑
- 删除
+
+ 编辑
+ 删除
+
+
+
+ 保存
+ 取消
+
+
+
+
+
-
-
+
+
@@ -124,4 +180,17 @@ function addMember() {
background: #ff5353;
border: 0;
}
+
+:deep(.ant-table-container table > thead > tr:first-child th:first-child) {
+ width: 80px;
+ text-align: center;
+}
+
+:deep(.ant-table-container table > tbody > tr > td:first-child) {
+ text-align: center;
+}
+
+:deep(.ant-table-container table > thead > tr:first-child th:last-child) {
+ min-width: 160px;
+}
diff --git a/src/components/tall/task/PlanAssignment.vue b/src/components/tall/task/PlanAssignment.vue
index 29f28f6..7bfc314 100644
--- a/src/components/tall/task/PlanAssignment.vue
+++ b/src/components/tall/task/PlanAssignment.vue
@@ -141,16 +141,23 @@
import { ref, computed, toRaw } from 'vue';
import { useStore } from 'vuex';
import { InboxOutlined, PlusCircleOutlined } from '@ant-design/icons-vue';
-import { uploadImg, savePlanTask } from 'apis';
+import { uploadImg } from 'apis';
import dayjs from 'dayjs';
const store = useStore();
const formRef = ref(null);
+const sessionProject = sessionStorage.getItem('project');
const projectId = computed(() => store.getters['projects/projectId']);
const token = computed(() => store.getters['user/token']);
const headers = { Authorization: `Bearer ${token.value}` };
const action = uploadImg;
const fileList = ref([]);
+
+if (sessionProject) {
+ const project = JSON.parse(sessionProject);
+ store.commit('projects/setProject', project);
+}
+
const topicMeetFormData = ref({
projectId: projectId.value,
name: '',
@@ -225,6 +232,7 @@ const onSubmit = () => {
topicMeetFormData.value.fileIdList.push(item.id);
});
+ topicMeetFormData.value.planTaskStageList = [];
planTaskStageList.value.forEach(item => {
const obj = {
startTime: '',
@@ -252,9 +260,9 @@ const onSubmit = () => {
}
});
- const params = { param: topicMeetFormData.value };
+ // const params = { param: topicMeetFormData.value };
- savePlanTask(params);
+ // savePlanTask(params);
console.log('submit!', toRaw(topicMeetFormData.value), planTaskStageList.value, planTaskDefinedList.value);
};
diff --git a/src/components/tall/task/Procedure.vue b/src/components/tall/task/Procedure.vue
new file mode 100644
index 0000000..a7336a7
--- /dev/null
+++ b/src/components/tall/task/Procedure.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/Result.vue b/src/components/tall/task/Result.vue
new file mode 100644
index 0000000..7a98a9e
--- /dev/null
+++ b/src/components/tall/task/Result.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/SubConclusion.vue b/src/components/tall/task/SubConclusion.vue
new file mode 100644
index 0000000..faa3cf5
--- /dev/null
+++ b/src/components/tall/task/SubConclusion.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/SubInterimInspection.vue b/src/components/tall/task/SubInterimInspection.vue
new file mode 100644
index 0000000..151d9ba
--- /dev/null
+++ b/src/components/tall/task/SubInterimInspection.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/SubMeetingManagement.vue b/src/components/tall/task/SubMeetingManagement.vue
new file mode 100644
index 0000000..ba02626
--- /dev/null
+++ b/src/components/tall/task/SubMeetingManagement.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/SubResult.vue b/src/components/tall/task/SubResult.vue
new file mode 100644
index 0000000..8440392
--- /dev/null
+++ b/src/components/tall/task/SubResult.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/task/SubSubjectProgress.vue b/src/components/tall/task/SubSubjectProgress.vue
new file mode 100644
index 0000000..ebd5c36
--- /dev/null
+++ b/src/components/tall/task/SubSubjectProgress.vue
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
diff --git a/src/components/tall/top/Navbar.vue b/src/components/tall/top/Navbar.vue
index c5e0561..d15e4e6 100644
--- a/src/components/tall/top/Navbar.vue
+++ b/src/components/tall/top/Navbar.vue
@@ -4,7 +4,7 @@
diff --git a/src/store/tall/layout/mutations.js b/src/store/tall/layout/mutations.js
index 0576ee6..089db40 100644
--- a/src/store/tall/layout/mutations.js
+++ b/src/store/tall/layout/mutations.js
@@ -13,6 +13,12 @@ const mutations = {
setListStatus(state, data) {
state.isShowListStatus = data;
},
+
+ // 设置选择的时间
+ setSelectTime(state, data) {
+ state.startTime = data.startTime;
+ state.endTime = data.endTime;
+ },
};
export default mutations;
diff --git a/src/store/tall/layout/state.js b/src/store/tall/layout/state.js
index 9262e12..98b0031 100644
--- a/src/store/tall/layout/state.js
+++ b/src/store/tall/layout/state.js
@@ -4,6 +4,8 @@ const state = {
left: true, // 是否显示左栏
},
isShowListStatus: false, // 是否显示任务详情列表
+ startTime: '',
+ endTime: '',
};
export default state;
diff --git a/src/views/detail/Test.vue b/src/views/detail/Test.vue
index 564cf27..9951f57 100644
--- a/src/views/detail/Test.vue
+++ b/src/views/detail/Test.vue
@@ -11,11 +11,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -30,8 +83,28 @@ import { computed, watch, ref } from 'vue';
import { useStore } from 'vuex';
import CheckSubjectProgress from 'components/tall/task/CheckSubjectProgress.vue'; // 查看课题进展
import MeetingManagement from 'components/tall/task/MeetingManagement.vue'; // 科研会议管理
-import PlanAssignment from 'components/tall/task/PlanAssignment.vue'; // 科研会议管理
-import MemberManagement from 'components/tall/task/MemberManagement.vue'; // 科研会议管理
+import ContractManagement from 'components/tall/task/ContractManagement.vue'; // 合同管理
+import DataUnlock from 'components/tall/task/DataUnlock.vue'; // 数据追溯解锁
+import MemberManagement from 'components/tall/task/MemberManagement.vue'; // 成员管理
+import PlanAssignment from 'components/tall/task/PlanAssignment.vue'; // 计划任务书
+import AssignmentSubject from 'components/tall/task/AssignmentSubject.vue'; // 分配课题
+import InterimInspection from 'components/tall/task/InterimInspection.vue'; // 提交中期检查报告
+import Conclusion from 'components/tall/task/Conclusion.vue'; // 项目结题报告
+import Result from 'components/tall/task/Result.vue'; // 项目验收报告
+
+import SubSubjectProgress from 'components/tall/task/SubSubjectProgress.vue'; // 子课题进展
+import SubMeetingManagement from 'components/tall/task/SubMeetingManagement.vue'; // 子课题科研会议管理
+
+import AssignmentExperiment from 'components/tall/task/AssignmentExperiment.vue'; // 分配实验
+import SubInterimInspection from 'components/tall/task/SubInterimInspection.vue'; // 子课题中期检查报告
+import SubConclusion from 'components/tall/task/SubConclusion.vue'; // 子课题结题报告
+import SubResult from 'components/tall/task/SubResult.vue'; // 子课题验收报告
+
+import LabReport from 'components/tall/task/LabReport.vue'; // 提交实验报告
+import Procedure from 'components/tall/task/Procedure.vue'; // 记录实验过程
+import ExperimentalData from 'components/tall/task/ExperimentalData.vue'; // 记录实验数据
+import ExperimentalCode from 'components/tall/task/ExperimentalCode.vue'; // 实验程序代码
+import ExperimentalResult from 'components/tall/task/ExperimentalResult.vue'; // 撰写实验结果
import TaskConList from 'components/tall/task/TaskConList.vue'; // 任务详情页列表
@@ -186,4 +259,8 @@ watch([taskDetail], () => {
> th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before) {
width: 0;
}
+
+:deep(.ant-checkbox-group) {
+ width: 100%;
+}