diff --git a/package-lock.json b/package-lock.json index 52bc5ebc..be3fa8d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,9 @@ "axios": "^1.1.3", "core-js": "^3.8.3", "element-plus": "^2.2.17", + "html2canvas": "^1.4.1", "jquery": "^3.6.1", + "qrcode.vue": "^3.3.3", "qs": "^6.11.0", "sortablejs": "^1.15.0", "vue": "^3.2.13", @@ -3514,6 +3516,14 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", @@ -4279,6 +4289,14 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/css-loader": { "version": "6.7.1", "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz", @@ -6332,6 +6350,18 @@ "node": ">=10.13.0" } }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", @@ -8757,6 +8787,14 @@ "node": ">=6" } }, + "node_modules/qrcode.vue": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/qrcode.vue/-/qrcode.vue-3.3.3.tgz", + "integrity": "sha512-OsD4tQjIbxg/K6D5ZkWjBdYI9eg9K2i8qeYILdEAX5mdAydSAxV7xKmmZSP/hA12olLqEMZ9ryqDQrwa9jEMgw==", + "peerDependencies": { + "vue": "^3.0.0" + } + }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", @@ -9911,6 +9949,14 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", @@ -10186,6 +10232,14 @@ "node": ">= 0.4.0" } }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", @@ -14091,6 +14145,11 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" + }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", @@ -14733,6 +14792,14 @@ "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", "dev": true }, + "css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "requires": { + "utrie": "^1.0.2" + } + }, "css-loader": { "version": "6.7.1", "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz", @@ -16424,6 +16491,15 @@ "tapable": "^2.0.0" } }, + "html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "requires": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + } + }, "htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", @@ -18387,6 +18463,12 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "qrcode.vue": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/qrcode.vue/-/qrcode.vue-3.3.3.tgz", + "integrity": "sha512-OsD4tQjIbxg/K6D5ZkWjBdYI9eg9K2i8qeYILdEAX5mdAydSAxV7xKmmZSP/hA12olLqEMZ9ryqDQrwa9jEMgw==", + "requires": {} + }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", @@ -19358,6 +19440,14 @@ } } }, + "text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "requires": { + "utrie": "^1.0.2" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", @@ -19578,6 +19668,14 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, + "utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "requires": { + "base64-arraybuffer": "^1.0.2" + } + }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", diff --git a/package.json b/package.json index 7f47e397..faa48370 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,9 @@ "axios": "^1.1.3", "core-js": "^3.8.3", "element-plus": "^2.2.17", + "html2canvas": "^1.4.1", "jquery": "^3.6.1", + "qrcode.vue": "^3.3.3", "qs": "^6.11.0", "sortablejs": "^1.15.0", "vue": "^3.2.13", diff --git a/src/api/index.js b/src/api/index.js index b0db5ad7..2ccc90d6 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -2,7 +2,7 @@ * @Author: lixg lixg@dongwu-inc.com * @Date: 2022-11-07 17:06:45 * @LastEditors: lixg lixg@dongwu-inc.com - * @LastEditTime: 2022-11-07 20:11:23 + * @LastEditTime: 2022-11-09 09:32:35 * @FilePath: /fe-manage/src/api/index.js * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -56,4 +56,16 @@ export const getProjectDetail = (obj) => http.get('/admin/project/detail', { par //发布项目 export const releaseProject=(obj)=>http.post('/admin/project/publish',obj) //获取项目学员 -export const projectStudent=(obj)=>http.post('/admin/project/studentList',obj) \ No newline at end of file +export const projectStudent=(obj)=>http.post('/admin/project/studentList',obj) +//撤回发布、结束 +export const handleProject = (obj) => http.post('/admin/project/handle', obj) + +//获取任务管理列表 +export const taskStudentList = (obj) => http.post('/admin/project/taskStudentList', obj) + + + + + +//获取讨论信息 +export const getDiscussDetail=(obj)=>http.post('/discuss/getDiscussDetail',obj) diff --git a/src/api/index1.js b/src/api/index1.js index 16e7ee9d..e21c301b 100644 --- a/src/api/index1.js +++ b/src/api/index1.js @@ -2,7 +2,7 @@ * @Author: lixg lixg@dongwu-inc.com * @Date: 2022-11-04 22:45:31 * @LastEditors: lixg lixg@dongwu-inc.com - * @LastEditTime: 2022-11-06 16:48:50 + * @LastEditTime: 2022-11-10 11:41:52 * @FilePath: /fe-manage/src/api/index1.js * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -59,6 +59,7 @@ export const getChapter = (obj) => http.post('/admin/router/detail', { params: o //新建或编辑关卡 export const editChapter = (obj) => http.post('/admin/router/editChapter', obj); + //获取学员列表 export const getStudent = (obj) => http.post('/admin/router/studentList', obj); //获取路径图详情-包含关卡及任务列表 diff --git a/src/api/indexLearningPath.js b/src/api/indexLearningPath.js new file mode 100644 index 00000000..f32f7d01 --- /dev/null +++ b/src/api/indexLearningPath.js @@ -0,0 +1,4 @@ +import http from "./config"; + +// 获取路径图概览 +export const getRouterOverview = (routerId) => http.get(`/admin/router/overview?routerId=${routerId}`) \ No newline at end of file diff --git a/src/api/indexLevel.js b/src/api/indexLevel.js index 4cfe5d58..303fe7ea 100644 --- a/src/api/indexLevel.js +++ b/src/api/indexLevel.js @@ -1,10 +1,19 @@ +/* + * @Author: lixg lixg@dongwu-inc.com + * @Date: 2022-11-09 09:26:26 + * @LastEditors: lixg lixg@dongwu-inc.com + * @LastEditTime: 2022-11-10 11:50:08 + * @FilePath: /fe-manage/src/api/indexLevel.js + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ import http from "./config"; //新建关卡 export const editChapter = (obj) => http.post('/admin/router/editChapter', obj); //编辑关卡 export const updateChapter = (obj) => http.post('/admin/router/editChapter', obj); - +//删除关卡 +export const deleteChapter=(obj)=>http.delete('/admin/router/deleteChapter',{params:obj}) //删除任务 export const deleteTask = (obj) => http.delete('/admin/router/deleteTask',{params: obj}); diff --git a/src/api/indexLibrary.js b/src/api/indexLibrary.js new file mode 100644 index 00000000..a5f8feb2 --- /dev/null +++ b/src/api/indexLibrary.js @@ -0,0 +1,10 @@ +import http from "./config"; + +// 获取模板库列表 +export const templateList = obj => http.post('/admin/project/template/list', obj); + +// 获取模板详情 +export const templateDetail = id => http.get(`/admin/project/template/detail?projectTemplateId=${id}`); + +// 操作模板(撤回,发布,删除) +export const templateHadle = obj => http.post(`/admin/project/template/handle`,obj); \ No newline at end of file diff --git a/src/api/indexProjStu.js b/src/api/indexProjStu.js index 0dc883a6..8d9ddff3 100644 --- a/src/api/indexProjStu.js +++ b/src/api/indexProjStu.js @@ -4,4 +4,16 @@ import http from "./config"; export const getProjStu = (obj) => http.post('/admin/project/studentList', obj) //删除学员 -export const deleteStu = (obj) => http.post('/admin/project/deleteStudent', obj) \ No newline at end of file +export const deleteStu = (obj) => http.post('/admin/project/deleteStudent', obj) + +//获取小组列表 +export const getGroupList = (obj) => http.post('/admin/project/groupList', obj) + +//删除小组 +export const deleteGroup = (obj) => http.delete('/admin/project/deleteGroup', { params: obj }) + +//新增或编辑小组 +export const editGroup = (obj) => http.post('/admin/project/editGroup', obj) + +//查看学员 +export const studentProcess = (obj) => http.get('/admin/project/studentProcess', { params: obj }) \ No newline at end of file diff --git a/src/assets/images/leveladd/delete.png b/src/assets/images/leveladd/delete.png new file mode 100644 index 00000000..bdfeacc1 Binary files /dev/null and b/src/assets/images/leveladd/delete.png differ diff --git a/src/components/Modals/projSet.vue b/src/components/Modals/projSet.vue new file mode 100644 index 00000000..d41a38c6 --- /dev/null +++ b/src/components/Modals/projSet.vue @@ -0,0 +1,457 @@ + + + + + + + + 编辑 + + + + + + + 基本信息 + + + + + + + 项目名称: + + + + + + + + 直播封面: + + + + + + 添加图片 + + + + + + + + + 项目时间: + + + + + + + + + + + 项目经理: + + + + + + + + + + + 资源归属: + + + + + + + + 项目说明: + + + + + + + + 同步学习记录: + + + + 同步课程学习记录(如学员在课程库中拥有课程的学习记录,自由免修改课程) + + + + + + + + + + 项目级别: + + + + + + + + + + + 培训体系: + + + + + + + + + + + 是否BOEU实施: + + + + BOEU实施 + + + + + + + 取消 + 发布 + + + + + + + + + \ No newline at end of file diff --git a/src/components/drawers/AddHomework.vue b/src/components/drawers/AddHomework.vue index fa3a1fe9..c3c75f15 100644 --- a/src/components/drawers/AddHomework.vue +++ b/src/components/drawers/AddHomework.vue @@ -1,58 +1,95 @@ - + - {{ edit ? '编辑' : '添加' }}作业 - + {{ edit ? "编辑" : "添加" }}作业 + - + - - + - - + - + - + 附件: - + 上传附件 - - - + + - 支持:pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip + 支持:pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip @@ -62,21 +99,23 @@ 确定 - - - - - + + +