diff --git a/src/api/indexCourse.js b/src/api/indexCourse.js index f2200d74..13e912cb 100644 --- a/src/api/indexCourse.js +++ b/src/api/indexCourse.js @@ -1,4 +1,5 @@ import http from "./config"; +import Http from './configPublic' /** * 1 @@ -60,3 +61,9 @@ export const studyRecordList = (obj) => // 获取员工信息 export const getMemberInfoApi = (obj) => http.post("/admin/orgStruct/getMemberInfo", obj); + +//课程推荐列表 +export const page = (obj) => http.post("/recommend/page",obj) +//课程推荐或撤回推荐 +export const recommend = (obj) => +Http.post("/manageApi/recommend/recommend",obj) \ No newline at end of file diff --git a/src/components/BreadCrumb.vue b/src/components/BreadCrumb.vue index faead9c5..5d0f2c03 100644 --- a/src/components/BreadCrumb.vue +++ b/src/components/BreadCrumb.vue @@ -194,6 +194,22 @@ }, ]; } + if ( + n.indexOf("/courserecommended") !== -1 || + n.indexOf("/CourseRecommended") !== -1 + ) { + state.list = [ + { + name: "课程库", + href: "", + // href: "#/coursewaremanage", + }, + { + name: "课程推荐", + href: "", + }, + ]; + } if ( n.indexOf("/coursemanage") !== -1 || n.indexOf("/CourseManage") !== -1 diff --git a/src/components/NavLeft.vue b/src/components/NavLeft.vue index 4d2fa72d..54e8d251 100644 --- a/src/components/NavLeft.vue +++ b/src/components/NavLeft.vue @@ -116,7 +116,7 @@ - + + + + + diff --git a/src/components/courserecommended/CourseCheck.vue b/src/components/courserecommended/CourseCheck.vue new file mode 100644 index 00000000..0b4d2ecc --- /dev/null +++ b/src/components/courserecommended/CourseCheck.vue @@ -0,0 +1,506 @@ + + + + + diff --git a/src/components/courserecommended/CourseRecommended.vue b/src/components/courserecommended/CourseRecommended.vue new file mode 100644 index 00000000..86569f2d --- /dev/null +++ b/src/components/courserecommended/CourseRecommended.vue @@ -0,0 +1,465 @@ + + + + + diff --git a/src/components/courserecommended/RecommendedCourse.vue b/src/components/courserecommended/RecommendedCourse.vue new file mode 100644 index 00000000..b04585f5 --- /dev/null +++ b/src/components/courserecommended/RecommendedCourse.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/src/hooks/useRequest.js b/src/hooks/useRequest.js index 3c284468..15aacff4 100644 --- a/src/hooks/useRequest.js +++ b/src/hooks/useRequest.js @@ -28,7 +28,7 @@ const useTotalPage = (_url, params, config = {}) => { function fetch() { state.loading = true; return http[methods](unref(url), !s[1] ? unref(params) : { params: unref(params) }, { ...config }).then(r => { - state.data = r.data?.records || 0; + state.data = r.data?.records || []; state.total = r.data?.total || 0; state.loading = false; }) diff --git a/src/main.js b/src/main.js index 45c9952a..89316265 100644 --- a/src/main.js +++ b/src/main.js @@ -21,7 +21,8 @@ import {USER_INFO, USER_PERMISSION, VALIDATE_TOKEN} from "@/api/apis"; import * as api1 from "@/api/index1"; import {getCookieForName} from "@/api/method"; import components from './components' -// import axios from 'axios' +import axios from 'axios' +import Cookies from "vue-cookies"; // axios.defaults.withCredentials = true; // import zhCN from 'ant-design-vue/es/locale/zh_CN'; const app = createApp(App) @@ -69,9 +70,48 @@ async function initDict(key) { store.commit("SET_DICT", {key, data: list}); } const getDictList = (param) => api1.getDictTree({code: param,}).then((res) => res.data.data); +const initDictTree = (key) => { + axios({ + method: "get", + url: "/systemapi/xboe/type/tree-list", + params: { + sysResType: "1", + status: "1", + }, + headers: { + "XBOR-Access-token": Cookies.get("token"), + }, + }).then( + (res) => { + console.log(res.data.result,'课程分类接口') + store.commit("SET_DICT", {key, data: res.data.result}); + //转化为map放到状态中 + let map=new Map(); + res.data.result.forEach(item=>{ + map.set(item.id, item.name); + if(item.children && item.children!=''){ + item.children.forEach(child=>{ + map.set(child.id, child.name); + if(child.children && child.children!=''){ + child.children.forEach(last=>{ + map.set(last.id, last.name); + }) + } + }) + } + }); + store.commit("SET_SYSTYPEMAP", map); + }, + (err) => { + message.error(err); + } + ); +} async function init() { - initDict("content_type"); //内容分类 + + // initDict("content_type"); //内容分类 + initDictTree("content_type"); //内容分类,换成type/tree-list接口 initDict("project_level"); //项目级别 initDict("project_sys"); //培训分类 initDict("project_pic"); //项目封面 diff --git a/src/store/index.js b/src/store/index.js index c064244c..637acc6f 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -26,7 +26,8 @@ export default createStore({ pathmapPic: [],//学习路径背景图 memberInitInfo: [],//学员默认 sysType: [],//学员默认 - menus: [] + menus: [], + sysTypeMap:null }, getters: {}, mutations: { @@ -51,6 +52,9 @@ export default createStore({ SET_DICT(state, { key, data }) { state[key] = data; }, + SET_SYSTYPEMAP(state, map) { + state.sysTypeMap = map; + }, SET_MEMBER_INFO(state, data) { state.memberInitInfo = data; }, diff --git a/src/views/courselibrary/CourseRecommended.vue b/src/views/courselibrary/CourseRecommended.vue new file mode 100644 index 00000000..700e2a4e --- /dev/null +++ b/src/views/courselibrary/CourseRecommended.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/courselibrary/CourseRecommended_Old.vue b/src/views/courselibrary/CourseRecommended_Old.vue new file mode 100644 index 00000000..bd89e9ed --- /dev/null +++ b/src/views/courselibrary/CourseRecommended_Old.vue @@ -0,0 +1,937 @@ + + + +