diff --git a/.env.development b/.env.development index 7e1746a..5317fce 100644 --- a/.env.development +++ b/.env.development @@ -1 +1 @@ -VITE_API_URL=http://localhost:4001 +VITE_API_URL=http://localhost:3000 diff --git a/.eslintrc.js b/.eslintrc.js index aca78d0..7f0b2e1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -12,6 +12,7 @@ module.exports = { rules: { 'import/no-unresolved': 0, 'import/extensions': 0, + 'import/no-extraneous-dependencies': 0, 'no-plusplus': 0, 'no-use-before-define': [ 'error', @@ -26,8 +27,11 @@ module.exports = { 'no-unused-expressions': 'off', 'vue/no-mutating-props': 'off', 'vue/no-multiple-template-root': 'off', + 'vue/no-v-model-argument': 'off', + '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/index.html b/index.html index 55a8bdf..6264214 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - 智能大气腐蚀监测云平台 + 山大实验室管理平台
diff --git a/package-lock.json b/package-lock.json index 17b6f7d..30ba9d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "dependencies": { "@vitejs/plugin-vue": "^1.9.3", - "ant-design-vue": "^2.2.8", + "ant-design-vue": "3.0.0-alpha.13", "axios": "^0.23.0", "dayjs": "^1.10.7", "echarts": "^5.2.2", @@ -3153,32 +3153,44 @@ } }, "node_modules/ant-design-vue": { - "version": "2.2.8", - "resolved": "https://registry.npmmirror.com/ant-design-vue/download/ant-design-vue-2.2.8.tgz?cache=0&sync_timestamp=1636383524560&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fant-design-vue%2Fdownload%2Fant-design-vue-2.2.8.tgz", - "integrity": "sha1-+ofPaELY7poNivOT/0CZ7MQHLys=", + "version": "3.0.0-alpha.13", + "resolved": "https://registry.npmmirror.com/ant-design-vue/download/ant-design-vue-3.0.0-alpha.13.tgz", + "integrity": "sha512-qILjbNRHXz3vJJZtG45RTQTiAL97XXnr6BwOfOvDiILK6UqsaLWCerRxcF8uUnqtcbj/zQSCU1Yb0OLb7a/sHA==", "dependencies": { + "@ant-design/colors": "^6.0.0", "@ant-design/icons-vue": "^6.0.0", "@babel/runtime": "^7.10.5", "@simonwep/pickr": "~1.8.0", "array-tree-filter": "^2.1.0", - "async-validator": "^3.3.0", + "async-validator": "^4.0.0", + "dayjs": "^1.10.5", "dom-align": "^1.12.1", "dom-scroll-into-view": "^2.0.0", "lodash": "^4.17.21", "lodash-es": "^4.17.15", - "moment": "^2.27.0", - "omit.js": "^2.0.0", "resize-observer-polyfill": "^1.5.1", "scroll-into-view-if-needed": "^2.2.25", "shallow-equal": "^1.0.0", "vue-types": "^3.0.0", "warning": "^4.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design-vue" + }, "peerDependencies": { "@vue/compiler-sfc": ">=3.1.0", "vue": ">=3.1.0" } }, + "node_modules/ant-design-vue/node_modules/@ant-design/colors": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-6.0.0.tgz", + "integrity": "sha1-m5NmJXz/zEfbQrnQIDu1ksE8Apg=", + "dependencies": { + "@ctrl/tinycolor": "^3.4.0" + } + }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz", @@ -3281,9 +3293,10 @@ "dev": true }, "node_modules/async-validator": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-3.5.2.tgz?cache=0&sync_timestamp=1634529574100&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasync-validator%2Fdownload%2Fasync-validator-3.5.2.tgz", - "integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA=" + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-4.0.7.tgz?cache=0&sync_timestamp=1634529574100&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasync-validator%2Fdownload%2Fasync-validator-4.0.7.tgz", + "integrity": "sha1-A0oP0hA6ay6/AQ2nUYO+wpkkev4=", + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -6816,14 +6829,6 @@ "import-meta-resolve": "^1.1.1" } }, - "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.nlark.com/moment/download/moment-2.29.1.tgz", - "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=", - "engines": { - "node": "*" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz", @@ -6964,11 +6969,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/omit.js": { - "version": "2.0.2", - "resolved": "https://registry.nlark.com/omit.js/download/omit.js-2.0.2.tgz", - "integrity": "sha1-3ZuENvq5R6Xz/yFMslOGMeMT7C8=" - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.nlark.com/once/download/once-1.4.0.tgz", @@ -11572,26 +11572,36 @@ } }, "ant-design-vue": { - "version": "2.2.8", - "resolved": "https://registry.npmmirror.com/ant-design-vue/download/ant-design-vue-2.2.8.tgz?cache=0&sync_timestamp=1636383524560&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fant-design-vue%2Fdownload%2Fant-design-vue-2.2.8.tgz", - "integrity": "sha1-+ofPaELY7poNivOT/0CZ7MQHLys=", + "version": "3.0.0-alpha.13", + "resolved": "https://registry.npmmirror.com/ant-design-vue/download/ant-design-vue-3.0.0-alpha.13.tgz", + "integrity": "sha512-qILjbNRHXz3vJJZtG45RTQTiAL97XXnr6BwOfOvDiILK6UqsaLWCerRxcF8uUnqtcbj/zQSCU1Yb0OLb7a/sHA==", "requires": { + "@ant-design/colors": "^6.0.0", "@ant-design/icons-vue": "^6.0.0", "@babel/runtime": "^7.10.5", "@simonwep/pickr": "~1.8.0", "array-tree-filter": "^2.1.0", - "async-validator": "^3.3.0", + "async-validator": "^4.0.0", + "dayjs": "^1.10.5", "dom-align": "^1.12.1", "dom-scroll-into-view": "^2.0.0", "lodash": "^4.17.21", "lodash-es": "^4.17.15", - "moment": "^2.27.0", - "omit.js": "^2.0.0", "resize-observer-polyfill": "^1.5.1", "scroll-into-view-if-needed": "^2.2.25", "shallow-equal": "^1.0.0", "vue-types": "^3.0.0", "warning": "^4.0.0" + }, + "dependencies": { + "@ant-design/colors": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-6.0.0.tgz", + "integrity": "sha1-m5NmJXz/zEfbQrnQIDu1ksE8Apg=", + "requires": { + "@ctrl/tinycolor": "^3.4.0" + } + } } }, "anymatch": { @@ -11673,9 +11683,9 @@ "dev": true }, "async-validator": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-3.5.2.tgz?cache=0&sync_timestamp=1634529574100&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasync-validator%2Fdownload%2Fasync-validator-3.5.2.tgz", - "integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA=" + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-4.0.7.tgz?cache=0&sync_timestamp=1634529574100&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasync-validator%2Fdownload%2Fasync-validator-4.0.7.tgz", + "integrity": "sha1-A0oP0hA6ay6/AQ2nUYO+wpkkev4=" }, "at-least-node": { "version": "1.0.0", @@ -14408,11 +14418,6 @@ "import-meta-resolve": "^1.1.1" } }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.nlark.com/moment/download/moment-2.29.1.tgz", - "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz", @@ -14519,11 +14524,6 @@ "es-abstract": "^1.19.1" } }, - "omit.js": { - "version": "2.0.2", - "resolved": "https://registry.nlark.com/omit.js/download/omit.js-2.0.2.tgz", - "integrity": "sha1-3ZuENvq5R6Xz/yFMslOGMeMT7C8=" - }, "once": { "version": "1.4.0", "resolved": "https://registry.nlark.com/once/download/once-1.4.0.tgz", diff --git a/package.json b/package.json index 835628d..0dbd4a9 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@vitejs/plugin-vue": "^1.9.3", - "ant-design-vue": "3.0.0-alpha.9", + "ant-design-vue": "3.0.0-alpha.13", "axios": "^0.23.0", "dayjs": "^1.10.7", "echarts": "^5.2.2", diff --git a/src/App.vue b/src/App.vue index 9eba7a2..91881b0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,33 +1,75 @@ diff --git a/src/apis/index.js b/src/apis/index.js index 60a6cfb..8688f82 100644 --- a/src/apis/index.js +++ b/src/apis/index.js @@ -4,7 +4,139 @@ import http from 'utils/axios'; const apiUrl = import.meta.env.VITE_API_URL; const users = `${apiUrl}/gateway/tall3/v3.0/users`; +const tall = `${apiUrl}/gateway/tall3/v3.0`; +const experiment = `${apiUrl}/gateway/experiment`; +// const filedeal = `${apiUrl}/filedeal`; // 测试 +// const filedeal = `http://101.201.226.21:7180`; // 生产 // 根据userId 获取token // eslint-disable-next-line import/prefer-default-export export const getToken = userId => http.get(`${users}/userId`, { params: { userId } }); + +// 登录api +export const signIn = params => http.post(`${users}/signin`, params); + +// 获取项目列表 +export const getProjects = (startTime, endTime) => http.post(`${tall}/project/query`, { param: { startTime, endTime } }); + +// 根据id获取项目信息 +export const findProjectById = projectId => http.post(`${experiment}/project/findProjectById`, { param: { projectId } }); + +// 删除项目 +export const delProject = projectId => http.post(`${tall}/project/deleteProject`, { param: { projectId } }); + +// 根据项目id查找角色 +export const findShowRole = projectId => http.post(`${experiment}/role/show`, { param: { projectId } }); + +// 根据项目id查找所有成员 +export const queryChecker = param => http.post(`${tall}/deliver/queryChecker`, param); + +// 查找带时间的日常任务 +export const getGlobal = params => http.post(`${experiment}/task/global`, params); + +// 查找永久日常任务 +export const getPermanent = params => http.post(`${experiment}/task/permanent`, params); + +// 查找定期任务 +export const getRegularTask = params => http.post(`${experiment}/task/regular`, params); + +// 添加任务 +export const saveTask = params => http.post(`${experiment}/task/save`, params); + +// 查询子任务 +export const findSonTask = params => http.post(`${experiment}/task/findSonTask`, params); + +/** + * 导入wbs + * @param {object} e + */ +export const importWbs = async e => { + const file = e.target.files[0]; + const param = new FormData(); + param.append('file', file); + const config = { headers: { 'Content-Type': 'multipart/form-data' } }; + const result = await http.post(`${experiment}/wbs`, param, config); + return result; +}; + +// 新建课题 -- 根据模板新建课题 +export const create = param => http.post(`${experiment}/experiment/create`, { params: { param } }); + +// 上传文件 +// export const uploadImg = `${filedeal}/file/upload/multiple`; +export const uploadImg = `${experiment}/import/upload`; + +// 添加/编辑计划任务书 +export const savePlanTask = params => http.post(`${experiment}/experiment/savePlanTask`, params); + +// 查看任务计划书 +export const getPlanTask = params => http.post(`${experiment}/experiment/getPlanTask`, params); + +// 添加/编辑子课题 +export const saveSubExperiment = params => http.post(`${experiment}/experiment/saveSubExperiment`, params); + +// 查看子课题 +export const getSubExperiment = params => http.post(`${experiment}/experiment/getSubExperiment`, params); + +// 查询成员 +export const memberQuery = params => http.post(`${experiment}/organization/query`, params); + +// 添加成员 +export const saveMember = params => http.post(`${experiment}/organization/save`, params); + +// 编辑成员 +export const updateMember = params => http.post(`${experiment}/organization/update`, params); + +// 删除成员 +export const delMember = params => http.post(`${experiment}/organization/del`, params); + +// 分配实验 +export const createExperiment = params => http.post(`${experiment}/subExperiment/create`, params); + +// 根据ID查询实验信息 +export const getExperimentation = params => http.post(`${experiment}/subExperiment/getExperimentation`, params); + +// 根据code查询所有试题 +export const getByCode = params => http.post(`${experiment}/question/getByCode`, params); + +// 提交答案 +export const submitAnswer = params => http.post(`${experiment}/question/submit`, params); + +// 查询知识产权题目(论文、专利、软著) +export const getIntellectual = params => http.post(`${experiment}/question/getIntellectual`, params); + +// 查询知识产权列表 (论文、专利、软著) +export const getIntellectualList = params => http.post(`${experiment}/question/getIntellectualList`, params); + +// 提交知识产权信息(论文、专利、软著) +export const submitIntellectual = params => http.post(`${experiment}/question/submitIntellectual`, params); + +// 查询会议列表 +export const getMeetQuery = params => http.post(`${experiment}/meeting/query`, params); + +// 添加/修改会议信息 +export const saveMeeting = params => http.post(`${experiment}/meeting/save`, params); + +// 根据会议id查询会议详细信息 +export const getMeetDetail = params => http.post(`${experiment}/meeting/get`, params); + +// 科研成果列表 +export const queryExperimentation = params => http.post(`${experiment}/subExperiment/queryExperimentation`, params); + +// 审核科研成果 +export const examineExperimentation = params => http.post(`${experiment}/subExperiment/examineExperimentation`, params); + +// 申请解锁科研结果 +export const applyUnlock = params => http.post(`${experiment}/subExperiment/applyUnlock`, params); + +// 审批解锁申请 +export const examineUnlock = params => http.post(`${experiment}/experiment/examineUnlock`, params); + +// 查找数据追溯解锁信息 +export const retrospectUnlock = params => http.post(`${experiment}/experiment/retrospectUnlock`, params); + +// 课题进度 +export const getExperimentProgress = params => http.post(`${experiment}/experiment/getExperimentProgress`, params); + +// 子课题进度 +export const getProgress = params => http.post(`${experiment}/subExperiment/getProgress`, params); diff --git a/src/components/tall/center/Global.vue b/src/components/tall/center/Global.vue new file mode 100644 index 0000000..ad8256c --- /dev/null +++ b/src/components/tall/center/Global.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/components/tall/center/Index.vue b/src/components/tall/center/Index.vue new file mode 100644 index 0000000..1faf9c1 --- /dev/null +++ b/src/components/tall/center/Index.vue @@ -0,0 +1,374 @@ + + + + + diff --git a/src/components/tall/center/RegularTask.vue b/src/components/tall/center/RegularTask.vue new file mode 100644 index 0000000..be3a7b1 --- /dev/null +++ b/src/components/tall/center/RegularTask.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/components/tall/center/Roles.vue b/src/components/tall/center/Roles.vue new file mode 100644 index 0000000..e94bc42 --- /dev/null +++ b/src/components/tall/center/Roles.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/src/components/tall/left/Calendar.vue b/src/components/tall/left/Calendar.vue index a782b47..d6659a7 100644 --- a/src/components/tall/left/Calendar.vue +++ b/src/components/tall/left/Calendar.vue @@ -1,7 +1,7 @@