From 110b920725099bde0d191328b3a75412cd599eb0 Mon Sep 17 00:00:00 2001 From: huweihang Date: Fri, 5 Dec 2025 17:40:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=A3=80=E7=B4=A2=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=BE=E7=A8=8B=E7=BD=AE=E9=A1=B6=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E7=BB=84=E4=BB=B6=EF=BC=8C=E4=BC=98=E5=8C=96=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E7=AE=A1=E7=90=86=E5=88=97=E8=A1=A8=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=96=B0=E8=AF=BE=E7=A8=8B=E7=AE=A1=E7=90=86=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/boe/userbasic.js | 11 +- src/api/modules/course.js | 35 +- src/components/Course/TopCourseSorter.vue | 234 ++++ src/data/pages.js | 2 + src/views/course/ManageListRemote.vue | 1479 +++++++++++++++++++++ 5 files changed, 1758 insertions(+), 3 deletions(-) create mode 100644 src/components/Course/TopCourseSorter.vue create mode 100644 src/views/course/ManageListRemote.vue diff --git a/src/api/boe/userbasic.js b/src/api/boe/userbasic.js index 5e6bc615..918bdf3f 100644 --- a/src/api/boe/userbasic.js +++ b/src/api/boe/userbasic.js @@ -103,6 +103,14 @@ const getUsersByIds = function(ids) { return ajax.postJson(baseURL,'/user/getUserMessageToDai',ids); } +/** + * 根据关键字检索用户(创建人下拉) + * @param {string} keyword + */ +const selectUser = function(keyword = '') { + return ajax.postJson(baseURL,'/user/selectuser',{ keyword }); +} + export default { userParentOrg, findOrgsByKeyword, @@ -116,5 +124,6 @@ export default { getInAudienceIds, getUsersByIds, updateUser, - logout + logout, + selectUser } diff --git a/src/api/modules/course.js b/src/api/modules/course.js index c87f5187..1a5ff7d6 100644 --- a/src/api/modules/course.js +++ b/src/api/modules/course.js @@ -269,6 +269,14 @@ const pageList = function(query) { return ajax.post('/xboe/m/course/manage/pagelist', query); } +/** + * 课程管理分页查询(新) + * @param {Object} query + */ +const managePage = function(query) { + return ajax.postJson('/xboe/m/course/manage/page', query); +} + /**计算待审核课程*/ const countWaitAudit = function() { @@ -355,6 +363,21 @@ const setTop = function(data) { return ajax.post('/xboe/m/course/manage/top', data); } +/** + * 获取置顶课程列表 + */ +const fetchTopCourseList = function() { + return ajax.get('/xboe/m/course/manage/topList'); +} + +/** + * 更新置顶课程排序 + * @param {Array<{id:string,sortWeight:number}>} data + */ +const updateTopCourseSort = function(data) { + return ajax.postJson('/xboe/m/course/manage/top-sortchange', data); +} + /** * 管理员的设置启用停用 * @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean enabled 是否启用} @@ -422,8 +445,13 @@ const exportCourseAudit=function(query){ 参数同上待审核课程记录导出 课程的导出和已审核的课程导出 */ -const exportCourse=function(query){ - return ajax.post('/xboe/m/course/manage/exportCourse',query); +const exportCourse = function(query) { + return ajax.get({ + url: '/xboe/m/course/manage/export', + method: 'get', + params: query, + responseType: 'blob' + }); } //判断受众id是否有关联 @@ -469,6 +497,7 @@ export default { getDictIds, saveContent, pageList, + managePage, setEnabled, del, publish, @@ -485,6 +514,8 @@ export default { auditAndPublish, getAssess, setTop, + fetchTopCourseList, + updateTopCourseSort, delSection, getExam, delContent, diff --git a/src/components/Course/TopCourseSorter.vue b/src/components/Course/TopCourseSorter.vue new file mode 100644 index 00000000..3037c62b --- /dev/null +++ b/src/components/Course/TopCourseSorter.vue @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + diff --git a/src/data/pages.js b/src/data/pages.js index 783d9cae..26a6adfe 100644 --- a/src/data/pages.js +++ b/src/data/pages.js @@ -30,6 +30,7 @@ export const pages=[ {title:'课程建设',path:'mylist',component:'course/TeacherList',hidden:true}, {title:'课程管理',path:'manage',component:'course/ManageList',hidden:false}, {title:'课程管理',path:'coursemanage',component:'course/CourseManage',hidden:true}, + {title:'课程管理新版',path:'manage-remote',component:'course/ManageListRemote',hidden:false}, {title:'课程统计',path:'stat',component:'course/StatIndex',hidden:false}, {title:'课件管理',path:'courseware',component:'course/Courseware',hidden:false}, {title:'报名管理',path:'msignup',component:'study/ManageSignup',hidden:true}, @@ -120,6 +121,7 @@ export const iframes=[ {title:'课程管理', path:'/iframe/course/manages',hidden:false,component:'course/ManageList'}, {title:'ai摘要', path:'/iframe/course/aiAbstract',hidden:false,component:'course/aiSet/aiAbstract'}, {title:'ai翻译', path:'/iframe/course/aiTranslate',hidden:false,component:'course/aiSet/aiTranslate'}, + {title:'课程管理新版', path:'/iframe/course/manage-remote',hidden:false,component:'course/ManageListRemote'}, {title:'考试试题管理', path:'/iframe/exam/questions',hidden:false,component:'exam/Question'}, {title:'查看答卷', path:'/iframe/exam/viewanswer',hidden:false,component:'exam/viewAnswer'}, {title:'考试试卷管理', path:'/iframe/exam/papers',hidden:false,component:'exam/TestPaper'}, diff --git a/src/views/course/ManageListRemote.vue b/src/views/course/ManageListRemote.vue new file mode 100644 index 00000000..4ac4085e --- /dev/null +++ b/src/views/course/ManageListRemote.vue @@ -0,0 +1,1479 @@ + + + + +