From df3b1d716250af8042670ccea9ca5a3a9916d9c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=8D=93=E7=85=9C?= <2210102150@qq.com> Date: Fri, 12 Sep 2025 15:47:26 +0800 Subject: [PATCH 01/84] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/modules/courseTag.js | 64 +++++ src/components/Course/courseForm.vue | 81 +++--- src/components/Course/courseTag.vue | 200 ++++++++++++++ src/data/pages.js | 3 +- src/views/portal/course/Index.vue | 305 +++++++++++++++++----- src/views/tag/TagManageList.vue | 372 +++++++++++++++++++++++++++ 6 files changed, 913 insertions(+), 112 deletions(-) create mode 100644 src/api/modules/courseTag.js create mode 100644 src/components/Course/courseTag.vue create mode 100644 src/views/tag/TagManageList.vue diff --git a/src/api/modules/courseTag.js b/src/api/modules/courseTag.js new file mode 100644 index 00000000..0368c0d9 --- /dev/null +++ b/src/api/modules/courseTag.js @@ -0,0 +1,64 @@ +/**课程标签模块的相关处理*/ +import ajax from '@/utils/xajax.js' + +/** + * 分页查询:标签列表 + * @param {Object} query + */ +const portalPageList = function(query) { + return ajax.post('/xboe/m/coursetag/page', query); +} + +//改变标签的公共属性 +const changeTagPublic = function (row){ + // 返回 Promise 的 API 调用 + return ajax.post('/xboe/m/coursetag/changePublicStatus', { + id: row.id, + isPublic: row.isPublic + }); +} + +//改变标签的热点属性 +const changeTagHot = function (row){ + // 返回 Promise 的 API 调用 + return ajax.post('/xboe/m/coursetag/changeHotStatus', { + id: row.id, + isHot: row.isHot + }); +} + +//查询指定id的标签关联的所有课程 +const showCourseByTag = function (query){ + return ajax.post('/xboe/m/coursetag/showCourseByTag', query); +} + +//解除指定id的课程和某个标签之间的关联关系 +const unbindCourseTagRelation = function (params){ + return ajax.post('/xboe/m/coursetag/unbind', params); +} + +//编辑课程:标签模糊查询 +const searchTags = function (params){ + return ajax.post('/xboe/m/coursetag/searchTags', params); +} + +//编辑课程:创建标签(与当前课程关联) +const createTag = function (params){ + return ajax.post('/xboe/m/coursetag/createTag', params); +} + +//获取最新前10个热点标签 +const getHotTagList = function (params){ + return ajax.post('/xboe/m/coursetag/getHotTagList', params); +} + +export default { + portalPageList, + changeTagPublic, + changeTagHot, + showCourseByTag, + unbindCourseTagRelation, + searchTags, + createTag, + getHotTagList +} diff --git a/src/components/Course/courseForm.vue b/src/components/Course/courseForm.vue index eef5a11f..b471460f 100644 --- a/src/components/Course/courseForm.vue +++ b/src/components/Course/courseForm.vue @@ -141,7 +141,6 @@ PC端可见 移动端可见 多端可见 - 仅内网访问 @@ -254,6 +253,9 @@ --> + + + @@ -306,7 +308,6 @@ PC端可见 移动端可见 多端可见 - 仅内网访问 @@ -404,6 +405,7 @@ + + diff --git a/src/data/pages.js b/src/data/pages.js index fa49ae36..5ec52049 100644 --- a/src/data/pages.js +++ b/src/data/pages.js @@ -128,7 +128,8 @@ export const iframes=[ {title:'查看受众', path:'/iframe/ugroup/view',hidden:false,component:'manage/AudienceView'}, {title:'问答管理', path:'/iframe/qa/manages',hidden:false,component:'qa/ManageList'}, {title:'待审核课程', path:'/iframe/course/noapproved',hidden:false,component:'examine/NotApproved'}, - {title:'已审核课程', path:'/iframe/course/reviewed',hidden:false,component:'examine/Reviewed'} + {title:'已审核课程', path:'/iframe/course/reviewed',hidden:false,component:'examine/Reviewed'}, + {title:'标签管理', path:'/iframe/tag/manages',hidden:false,component:'tag/TagManageList'}, ] diff --git a/src/views/portal/course/Index.vue b/src/views/portal/course/Index.vue index 787b52bb..cb7bdbae 100644 --- a/src/views/portal/course/Index.vue +++ b/src/views/portal/course/Index.vue @@ -43,7 +43,7 @@ :disabled="!twoList.children.length" :open-delay="0" :close-delay="0" trigger="hover" :visible-arrow="false" @hide="leaveIndex" @show="changeIndex(twoList.id)" transition="none">
{{ - twoList.name }}
+ twoList.name }}-
@@ -284,32 +284,40 @@