您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
国家开放大学 国开 国开实验 广东开放大学 上海开放大学 四川开放大学 成都开放大学 .全自动.全能型.大作业.终考.直播.视频.自动,作业辅导,全能型,能直接使用,请自行尝试使用,专业视频加速解决方案
// ==UserScript== // @name 国家开放大学刷课脚本 - 全自动 - 焕新版🚀! // @namespace http://blog.arthur.lvvv.cc/ // @version 1.3.6 // @description 国家开放大学 国开 国开实验 广东开放大学 上海开放大学 四川开放大学 成都开放大学 .全自动.全能型.大作业.终考.直播.视频.自动,作业辅导,全能型,能直接使用,请自行尝试使用,专业视频加速解决方案 // @author arthur // @match http://www.wenku8.net/* // @resource customCSS https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap.min.css // @grant GM_addStyle // @grant GM_getResourceText // @license AGPL-3.0-or-later // ==/UserScript== (window["webpackJsonp"] = window["webpackJsonp"] || []).push([ ["chunk-common"], { "05ba": function (e, t, i) { "use strict"; i("cdbb"); }, "0913": function (e, t, i) { "use strict"; i("1c4b"); }, "09d7": function (e, t, i) { e.exports = i.p + "img/course_cover_demo.537eb965.png"; }, "0b06": function (e, t, i) { "use strict"; i("6569"); }, 1: function (e, t) {}, 1501: function (e, t, i) {}, "1c4b": function (e, t, i) {}, 20: function (e, t, i) { e.exports = i("925b"); }, 2610: function (e, t, i) { "use strict"; i.d(t, "d", function () { return u; }), i.d(t, "c", function () { return p; }), i.d(t, "b", function () { return h; }), i.d(t, "a", function () { return f; }); i("e17f"); var o = i("2241"), s = (i("e7e5"), i("d399")), a = (i("ac1f"), i("5319"), i("99af"), i("365c")), n = i("f3df"), r = i("db49"), c = i("72fe"), l = i.n(c), u = function () { "java_api" === r["a"].apiPrefix ? (window.location.href = "/login/index.html") : (window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww52a69ddb92d96dc2&redirect_uri=https%3A%2F%2Fcoursework.shou.org.cn%2F&response_type=code&scope=snsapi_base&state=wxlogin#wechat_redirect"); }, d = function (e) { return { realName: e.realname, employeeNum: e.username, userId: e.username, wxUserId: e.openid, subName: e.subName, major: "", teachCourseNumber: "", counsellingNumber: "", token: e.token, avatar: "", roleFlags: e.roleFlags, }; }, p = function (e, t) { s["a"].loading({ message: "微信登录中...", forbidClick: !0, loadingType: "spinner", duration: 0, }), Object(a["a"])("loginByWX", { code: e }) .then(function (e) { if ("0" === e.code) { var i = e.data || {}, a = "java_api" === r["a"].apiPrefix ? d(i) : { realName: i.realName, employeeNum: i.employeeNum, userId: i.userInfoId ? i.userInfoId.replace("310_", "") : i.employeeNum, wxUserId: i.wxUserId, subName: i.subName, major: i.major, teachCourseNumber: i.teachCourseNumber, counsellingNumber: i.counsellingNumber, token: i.accessToken, avatar: i.avatar, roleFlags: 0 === i.userType ? "ROLE_MASTER_TEACH" : "ROLE_STUDENT", }; Object(n["f"])("userInfo", a), s["a"].clear(), t(); } else s["a"].clear(), o["a"] .alert({ message: "微信登录失败, 即将通过用户名密码登录", }) .then(function () { window.location.href = "/login/index.html"; }); }) .catch(function () { s["a"].clear(), o["a"] .alert({ message: "微信登录失败, 即将通过用户名密码登录" }) .then(function () { window.location.href = "/login/index.html"; }); }); }, h = function () { return "https://mp.shou.org.cn/qyzhibo/securitydev"; }, f = function () { var e = "AAAAB3NzaC1yc2EAAAABJQAAAQEAqydlIuYoJxVUmSRoMY8phb3+NEb65bt8Ngc30sLpRgNW+g7x/1D+T26UhhfRFg17SzwGBrCsgkZNAyNZz2HOdeRAbqJ3WZ5YC0KG", t = (Object(n["d"])("userInfo") || {}).userId || "", i = Math.floor(new Date().getTime() / 1e3), o = 86827924, s = l()("".concat(e).concat(t).concat(i).concat(o)); return "https://graduation.sou.edu.cn/Account/Learning?userName=" .concat(t, "&timeStamp=") .concat(i, "&randNum=") .concat(o, "&sign=") .concat(s, "&type=0"); }; }, 2613: function (e, t, i) { "use strict"; var o = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i("div", { staticClass: "audio-wrapper" }, [ e.audioTitle ? i("div", { staticClass: "audio-title" }, [ e._v(" " + e._s(e.audioTitle) + " "), ]) : e._e(), e.isLoading ? i( "div", { staticStyle: { "text-align": "center", padding: "20px" } }, [ i("Loading", { attrs: { type: "spinner", color: "#1989fa" }, }), ], 1 ) : i("div", { staticClass: "audio-control" }, [ i( "div", { staticClass: "play-btn", on: { click: e.playStateChange }, }, [ e.isPlaying ? i("Icon", { attrs: { name: "pause-circle-o" } }) : i("Icon", { attrs: { name: "play-circle-o" } }), ], 1 ), i("div", { staticClass: "audio-time" }, [ e._v(e._s(e.currentTimeStr)), ]), i( "div", { staticClass: "process-wrapper" }, [ i("Slider", { staticClass: "audio-progress", attrs: { min: 0, max: e.totalTime, "button-size": 14 }, on: { change: e.currentTimeChange }, model: { value: e.currentTime, callback: function (t) { e.currentTime = t; }, expression: "currentTime", }, }), ], 1 ), i("div", { staticClass: "audio-time" }, [ e._v(e._s(e.totalTimeStr)), ]), ]), ]); }, s = [], a = (i("e7e5"), i("d399")), n = (i("ac1e"), i("543e")), r = (i("c3a6"), i("ad06")), c = (i("5fe4"), i("8ad4")), l = (i("a9e3"), i("99af"), i("d3b7"), i("25f0"), i("1e5c")), u = { name: "AudioPlayer", components: { Slider: c["a"], Icon: r["a"], Loading: n["a"] }, props: { source: { type: String, default: "" }, audioTitle: { type: String, default: "" }, lastPlayTime: { type: Number, default: 0 }, }, data: function () { return { isLoading: !1, totalTime: 0, currentTime: 0, totalTimeStr: "00:00", currentTimeStr: "00:00", isPlaying: !1, volumeOn: !0, audioPlayer: null, timer: null, timeInfo: { startSecond: 0, endSecond: 0, startTimestamp: 0, endTimestamp: 0, }, }; }, watch: { totalTime: function (e) { if (e <= 0) this.totalTimeStr = "00:00"; else { var t = Math.floor(e / 60), i = Math.floor(e % 60); this.totalTimeStr = "" .concat(t > 10 ? t : "0" + t.toString(), ":") .concat(i > 10 ? i : "0" + i.toString()); } }, currentTime: function (e) { if (e <= 0) this.currentTimeStr = "00:00"; else { var t = Math.floor(e / 60), i = Math.floor(e % 60); this.currentTimeStr = "" .concat(t > 10 ? t : "0" + t.toString(), ":") .concat(i > 10 ? i : "0" + i.toString()); } }, source: function () { this.initAudio(); }, isPlaying: function (e) { e ? this.timeCount() : this.clearTimer(); }, }, mounted: function () { this.initAudio(); }, beforeDestroy: function () { this.audioPlayer && this.audioPlayer.unload(), this.clearTimer(); }, methods: { initAudio: function () { var e = this; this.source && ((this.isLoading = !0), this.audioPlayer && this.audioPlayer.unload(), (this.audioPlayer = new l["Howl"]({ src: [this.source], volume: 1, html5: !1, onload: function () { var t = Math.floor(e.audioPlayer.duration()); (e.totalTime = t), e.lastPlayTime && e.lastPlayTime > 0 && ((e.currentTime = e.lastPlayTime), e.currentTimeChange(e.currentTime)), (e.isLoading = !1); }, onplay: function () { (e.isPlaying = !0), (e.currentTime = e.getCurrentTime()), (e.timeInfo.startTimestamp = new Date().getTime()), (e.timeInfo.startSecond = e.currentTime), e.$emit("play", e.currentTime); }, onpause: function () { (e.isPlaying = !1), (e.timeInfo.endSecond = e.getCurrentTime()), e.savePlayInfo(), e.$emit("pause", e.getCurrentTime()); }, onseek: function () { e.isPlaying && e.savePlayInfo(); }, onend: function () { (e.isPlaying = !1), (e.timeInfo.endSecond = e.totalTime), e.savePlayInfo(), e.$emit("pause", e.getCurrentTime()); }, onloaderror: function () { (e.isLoading = !1), a["a"].fail("加载音频失败"); }, }))); }, clearTimer: function () { this.timer && clearInterval(this.timer); }, timeCount: function () { var e = this; if ((this.clearTimer(), this.audioPlayer && this.isPlaying)) { var t = this.getCurrentTime(); this.timer = setInterval(function () { (e.currentTime = e.getCurrentTime()), (e.timeInfo.endSecond = e.currentTime), e.currentTime - t >= 60 && (e.savePlayInfo(), (t = e.currentTime)); }, 100); } }, currentTimeChange: function (e) { this.audioPlayer && this.audioPlayer.seek(e), this.timeCount(); }, playStateChange: function () { this.audioPlayer && ((this.isPlaying = !this.isPlaying), this.isPlaying ? this.audioPlayer.play() : this.audioPlayer.pause()); }, volumeStateChange: function () { (this.volumeOn = !this.volumeOn), this.audioPlayer && this.audioPlayer.mute(!this.volumeOn); }, getCurrentTime: function () { var e = this.audioPlayer ? this.audioPlayer.seek() : 0; return Math.floor(e); }, savePlayInfo: function () { var e = new Date().getTime(), t = { startTimestamp: this.timeInfo.startTimestamp, endTimestamp: e, startSecond: this.timeInfo.startSecond, endSecond: this.timeInfo.endSecond, Speed: 1, }; this.$emit("playTimeUpdate", t), (this.timeInfo.startTimestamp = e), (this.timeInfo.startSecond = this.getCurrentTime()), (this.timeInfo.endSecond = 0); }, }, }, d = u, p = (i("3e02"), i("2877")), h = Object(p["a"])(d, o, s, !1, null, "81769eae", null); t["a"] = h.exports; }, "2b4a": function (e, t, i) { "use strict"; i("d819"); }, "2f01": function (e, t, i) { "use strict"; i("e688"); }, "365c": function (e, t, i) { "use strict"; var o = i("5530"), s = (i("d3b7"), i("4d63"), i("ac1f"), i("25f0"), i("466d"), i("5319"), i("bc3a")), a = i.n(s), n = i("f3df"), r = i("db49"), c = { login: { url: "/api/TokenAuth/Authenticate", method: "post" }, getStuInfoByToken: { url: "/api/services/app/BaseStuInfo/GetBaseStuInfoAsync", method: "get", }, getTeacherInfoByToken: { url: "/api/services/app/BaseTeacherInfo/GetTeacherInfoAsync", method: "get", }, loginByWX: { url: "/api/TokenAuth/AuthenticateByCode", method: "post", }, }, l = { getAllCourseList: { url: "/api/services/app/TeacherCourseInfo/GetCourseListAsync", method: "get", }, getHostList: { url: "/api/services/app/TeacherCourseInfo/GetPresideCourseListAsync", method: "get", }, getFaceTeachList: { url: "/api/services/app/TeacherCourseInfo/GetTeachingCourseListAsync", method: "get", }, }, u = { getStuCourseList: { url: "/api/services/app/CourseInfo/GetSelectiveCourseListAsync", method: "get", }, getHistoryCourseList: { url: "/api/services/app/CourseInfo/GetAllHistoryAsync", method: "get", }, getCourseCalendar: { url: "/api/services/app/CourseInfo/GetWeekInfoAsync?CourseOpenId={courseId}", method: "get", }, getCollectedCourse: { url: "/api/services/app/CourseCollect/GetCourseCollectJsonAsync", method: "get", }, doCollectCourse: { url: "/api/services/app/CourseCollect/Collect", method: "post", }, cancelCollectCourse: { url: "/api/services/app/CourseCollect/Cancel", method: "post", }, doCollectRes: { url: "/api/services/app/CourseCellCollect/doCollect", method: "post", }, getCollectResList: { url: "/api/services/app/CourseCellCollect/GetCourseCellCollectJsonAsync", method: "get", }, cancelCollectRes: { url: "/api/services/app/CourseCellCollect/cancelCollect", method: "post", }, getCourseResourceList: { url: "/api/services/app/CourseCell/GetDocJsonAsync?courseId={courseId}&fromType={fromType}", method: "get", }, getCourseScore: { url: "/api/services/app/CourseStudentScore/GetCourseStudentScoreJsonAsync?couserId={courseId}", method: "get", }, refreshCourseScore: { url: "/api/services/app/HomeWorkStudent/UpdateStuScoreAsync", method: "put", }, getCourseScoreDetail: { url: "/api/services/app/CourseStudentScore/GetCourseStudentScoreDetailJsonAsync?couserId={courseId}&scoreType={scoreType}", method: "get", }, getPerformaceDetail: { url: "/api/services/app/CourseHomeWork/GetPerformaceJsonAsync?courseOpenId={courseId}", method: "get", }, getResourceRules: { url: "/api/services/app/CourseHomeWork/GetResourceRuleJsonAsync?courseOpenId={courseId}", method: "get", }, getShouldLearnRes: { url: "/api/services/app/CourseCell/GetCourseCellshouldLearnJsonAsync?couserId={courseId}", method: "get", }, getLearningPoints: { url: "/api/services/app/CourseStuPoint/GetCourseStuPointJsonAsync", method: "get", }, }, d = { getCourseDetail: { url: "/api/services/app/CourseInfo/GetSelectiveCourseDetailAsync?courseOpenId={courseId}", method: "get", }, getStuCourseCatalog: { url: "/api/services/app/CourseInfo/GetCatalogAsync?courseOpenId={courseId}", method: "get", }, getCourseDocInfo: { url: "/api/services/app/CourseInfo/GetSelectiveCourseInfoAsync?courseOpenId={courseId}", method: "get", }, getCourseRemindList: { url: "/api/services/app/CourseInfo/GetTaskListAsync", method: "get", }, doSearchCourse: { url: "/api/services/app/TeachCourseInfo/Search", method: "post", }, doCollectCourse: { url: "/api/services/app/CourseCollect/Collect", method: "post", }, cancelCollectCourse: { url: "/api/services/app/CourseCollect/Cancel", method: "post", }, getCollectedCourseList: { url: "/api/services/app/CourseCollect/GetCourseCollectJsonAsync", method: "get", }, getCourseStudyWeek: { url: "/api/services/app/CourseInfo/GetWeekInfoAsync?CourseOpenId={courseId}", method: "get", }, getResPreviewInfo: { url: "/api/services/app/DFS/GetPreviewExtendAsync?resource={filekey}", method: "get", }, getCourseFileDetail: { url: "/api/services/app/CourseCell/GetCourseCellDetailJsonAsync?CourseOpenId={courseId}&CellId={resId}", method: "get", }, addRestag: { url: "/api/services/app/CourseCell/LabelJsonAsync", method: "post", }, addResComment: { url: "/api/services/app/CourseCell/CommentJsonAsync", method: "post", }, addResStudyTime: { url: "/api/services/app/CourseInfo/CellLogAsync", method: "post", }, getCourseQAList: { url: "/api/services/app/BBSTopic/GetBBSTopic?courseOpenID={courseId}", method: "get", }, addCourseQA: { url: "/api/services/app/BBSTopic/UpdateBBSTopicJsonAsync", method: "put", }, deleteQA: { url: "/api/services/app/BBSTopic/DeleteBBSTopicJsonAsync", method: "delete", }, getQAReplyList: { url: "/api/services/app/BBSReply/GetBBSReply", method: "get", }, addQAReply: { url: "/api/services/app/BBSReply/UpdateBBSReplyJsonAsync", method: "put", }, doLikeQA: { url: "/api/services/app/BBSReply/BBSReplyPraseJsonAsync", method: "post", }, getCourseWorkList: { url: "/api/services/app/HomeWorkStudent/GetHomeWorkListJsonAsync?courseId={courseId}", method: "get", }, getCoursePracticeList: { url: "/api/services/app/CourseHomeWork/GetCourseHomeWorkListJsonAsync?homeWorkType={workType}&courseOpenId={courseId}", method: "get", }, getCoursePracticeDetail: { url: "/api/services/app/CourseLaboratory/GetCourseLabAsync?courseOpenId={courseId}&CourseLaboratoryId={workId}", method: "get", }, uploadPracticeFile: { url: "/api/services/app/CourseLaboratory/SubmitJsonAsync", method: "post", }, getWorkInfo: { url: "/api/services/app/HomeWorkStudent/GetHomeWorkDetailListJsonAsync?id={workId}", method: "get", }, getWorkRecordList: { url: "/api/services/app/HomeWorkStudent/GetAnswerHistoryListJsonAsync?id={workId}", method: "get", }, getRecordQuestions: { url: "/api/services/app/HomeWorkStudent/GetAnswerDeatilJsonAsync", method: "get", }, getWorkQuestions: { url: "/api/services/app/HomeWorkStudent/GetQuestionListJsonAsync?id={workId}", method: "get", }, submitAnswer: { url: "/api/services/app/HomeWorkStudent/SubmitJsonAsync", method: "post", }, submitAnswerAll: { url: "/api/services/app/HomeWorkStudent/SubmitAllJsonAsync", method: "post", }, submitPaper: { url: "api/services/app/HomeWorkStudent/FinishJsonAsync", method: "post", }, uploadFile: { url: "/api/services/app/NetDisk/UploadFile?fileName={fileName}", method: "post", }, getCourseEvaluation: { url: "/api/services/app/CourseEvaluation/GetCourseEvaluationJsonAsync", method: "get", }, submitEvaluationAnswer: { url: "/api/services/app/CourseEvaluation/SaveCourseEvaluationJsonAsync", method: "post", }, finishEvaluation: { url: "/api/services/app/CourseEvaluation/FinishCourseEvaluationJsonAsync", method: "post", }, getTeamActivityList: { url: "/api/services/app/CourseGroupActivity/GetCourseGroupActivityJsonAsync", method: "get", }, getTeamActivityDetail: { url: "/api/services/app/CourseGroupActivity/GetDetailJsonAsync", method: "get", }, getTeamFiles: { url: "/api/services/app/CourseGroupActivity/GetUploadFileJsonAsync", method: "get", }, deleteTeamFiles: { url: "/api/services/app/CourseGroupActivity/DeleteUploadFileJsonAsync", method: "delete", }, uploadTeamFile: { url: "/api/services/app/CourseGroupActivity/UpdateUploadFileJsonAsync", method: "put", }, getTeamBBS: { url: "/api/services/app/CourseGroupActivity/GetBbsJsonAsync", method: "get", }, addTeamBBS: { url: "/api/services/app/CourseGroupActivity/UpdateBbsJsonAsync", method: "put", }, deleteTeamBBS: { url: "/api/services/app/CourseGroupActivity/DeleteBbsJsonAsync", method: "delete", }, getTeamBBSReplys: { url: "/api/services/app/CourseGroupActivity/GetBbsReplyJsonAsync", method: "get", }, addBBSReply: { url: "/api/services/app/CourseGroupActivity/UpdateBbsReplyJsonAsync", method: "put", }, getTeamMembers: { url: "/api/services/app/CourseGroupActivity/GetMembersJsonAsync", method: "get", }, getTeamComment: { url: "/api/services/app/CourseGroupActivity/GetAppJsonAsync", method: "get", }, }, p = i("04ac"), h = i.n(p), f = Object(o["a"])( Object(o["a"])(Object(o["a"])(Object(o["a"])({}, c), l), u), d ); function m(e, t) { var i = e || "", s = t || {}, a = Object.prototype.toString.call(s), n = new RegExp("{.*?}", "g"), r = i.match(n); if (r) { if ("[object Object]" !== a && "[object FormData]" !== a) throw new Error("paramsData should be a object"); var c = {}; c = "[object FormData]" === a ? t : Object(o["a"])({}, s); for (var l = 0; l < r.length; l++) { var u = r[l].replace(/\{|\}/g, ""); if ("[object FormData]" === a) { if ("" === c.get(u) || void 0 === c.get(u)) throw new Error( "error url params: " + u + " not in paramsData" ); var d = new RegExp(r[l], "g"); (i = i.replace(d, c.get(u))), c.delete(u); } else { if ("" === c[u] || void 0 === c[u]) throw new Error( "error url params: " + u + " not in paramsData" ); var p = new RegExp(r[l], "g"); (i = i.replace(p, c[u])), delete c[u]; } } return { baseUrl: i, data: c }; } return { baseUrl: i, data: s }; } var g = a.a.create({ baseURL: "/".concat(r["a"].apiPrefix) }); function v(e, t, i) { if (!f[e]) throw new Error("no these api: " + e + " resouce"); var o = f[e].url, s = m(o, t), a = f[e].method.toLocaleLowerCase(), r = { url: s.baseUrl, method: a }, c = Object(n["d"])("userInfo") || {}, l = { "Abp.TenantId": "1" }; c.token && (l.Authorization = "Bearer ".concat(c.token) || !1); var u = {}; if ( (i && (u = Object.assign(u, i)), i && i.headers && ((l = Object.assign(l, u.headers)), delete u.headers), i && i.responseType && ((r.responseType = u.responseType), delete u.responseType), "post" === a || "put" === a || "patch" === a) ) s.data && s.data._dataArr ? (r.data = s.data._dataArr) : s.data && (r.data = s.data); else { var d = s.data; "get" === a && (d._timeTag = new Date().valueOf()), (r.params = d); } return (r.headers = l), Object.assign(r, u), g.request(r); } h()(g, { retries: 3, retryDelay: function (e) { return 2e3 * e; }, shouldResetTimeout: !0, retryCondition: function (e) { return "/api/services/app/CourseInfo/CellLogAsync" === e.config.url; }, }), g.interceptors.response.use( function (e) { var t, i = e.data || {}, o = {}; if (((o.code = i.success ? "0" : "1"), i.unAuthorizedRequest)) return Promise.resolve({ code: "1", message: "登录凭证过期,请重新登陆应用", }); var s = i.result || {}; return ( s && s.items ? (o.data = s.items) : s && s.data ? (o.data = s.data) : (o.data = s), (o.total = (i.result || {}).total || (i.result || {}).totalCount || i.total || null), (o.message = i.success ? "" : (null === (t = i.error) || void 0 === t ? void 0 : t.message) || i.error.toString()), Promise.resolve(o) ); }, function (e) { var t = e.response, i = t.data || {}, o = i.status, s = i.statusText, a = {}; return ( (a.code = i.success ? "0" : o), (a.data = i.result || {}), (a.message = (i.error && i.error.message) || s), Promise.resolve(a) ); } ); var y = v, I = { login: { url: "/auth/login/local", method: "post" }, getDataDictionary: { url: "/auth/dict/dictInfo/alllist", method: "get", }, getRoleInfoList: { url: "/auth/system/roleInfo/list", method: "get" }, getCurrentTermCode: { url: "/basic/api/termInfo/currentTerm", method: "get", }, loginByWX: { url: "/auth/appApi/login/getUserInfoByWeChatCode", method: "get", }, getStuInfoByToken: { url: "/auth/appApi/login/getUserByLoginToken", method: "get", }, getTeacherInfoByToken: { url: "/auth/appApi/login/getUserByLoginToken", method: "get", }, }, C = { treeCourse: { url: "/course/course/{courseId}/courseChapterInfo/treeCourseChapterInfoForStu", method: "get", }, getMyCourse: { url: "/course/api/courseInfo/detail/{courseId}", method: "get", }, getCourseRemindList: { url: "/msg/api/remindInfo/list", method: "get", }, getCourseInfoList: { url: "/course/courseDetailInfo/list", method: "get", }, getComments: { url: "/bbs/api/bbsPostInfo/resourceCommentInfoList", method: "get", }, addComment: { url: "/bbs/api/bbsPostInfo/addResourcePostComment", method: "post", }, addCommentReply: { url: "/bbs/api/bbsPostInfo/add", method: "post" }, addBBsLike: { url: "/bbs/api/bbsPostInfo/like/{commentId}", method: "post", }, getResTagList: { url: "/study/api/studyResTagInfo/list", method: "get", }, addRestag: { url: "/study/api/studyResTagInfo/add", method: "post" }, deleteResTag: { url: "/study/api/studyResTagInfo/delete/{id}", method: "post", }, studyList: { url: "/course/user/myCourseInfo/studyList?isApp=1", method: "get", }, fileDetail: { url: "/file/api/fileCourseMid/detail/{courseId}", method: "get", }, getAllPosts: { url: "/bbs/api/bbsPostInfo/list", method: "get" }, addPosts: { url: "/bbs/api/bbsPostInfo/add", method: "post" }, updatePosts: { url: "/bbs/api/bbsPostInfo/update/{uid}", method: "post", }, deletePosts: { url: "/bbs/api/bbsPostInfo/delete/{uid}", method: "post", }, setEssence: { url: "/bbs/api/bbsPostInfo/isEssencePostInfo?uid={uid}&isEssence={isEssence}", method: "post", }, courseInformation: { url: "/course/courseDetailInfo/courseItemInfoPhone", method: "get", }, doSearchCourse: { url: "/basic/api/basicCourseInfoIndex/searchList", method: "get", }, getCollectedCourseList: { url: "/course/user/myCourseInfo/collectionList?isApp=1", method: "get", }, doCollectCourse: { url: "/course/user/myCourseInfo/collectionCourse/{courseId}", method: "post", }, getCourseDetail: { url: "/course/api/courseInfo/detail/{courseId}", method: "get", }, cancelCollectCourse: { url: "/course/user/myCourseInfo/cancelCollection/{courseId}", method: "post", }, getCollectResList: { url: "/study/api/studyResCollectInfo/list", method: "get", }, doCollectRes: { url: "/study/api/studyResCollectInfo/collectionRes", method: "post", }, cancelCollectRes: { url: "/study/api/studyResCollectInfo/cancelCollectionRes/{resActId}", method: "post", }, checkHasCollectedRes: { url: "/study/api/studyResCollectInfo/ifCollect?resActId={resActId}", method: "get", }, studList: { url: "/course/courseTutorResInfo/studList", method: "get", }, courseInfoList: { url: "/course/user/myCourseInfo/studyList?isApp=1", method: "get", }, myStudyHistoryList: { url: "/course/user/myCourseInfo/myStudyHistoryList", method: "get", }, getStuOnlineWorklist: { url: "/course/course/{courseId}/courseHomeworkInfo/homeworkInfoListForStu", method: "get", }, getCourseExamSettingList: { url: "/course/api/checkOptionInfo/detail", method: "get", }, detailForStud: { url: "/course/api/checkOptionInfo/detailForStud", method: "get", }, selectContentInfoListForStu: { url: "/course/api/checkContentInfo/selectContentInfoListForStu", method: "get", }, practiceForStu: { url: "/course/course/{courseId}/courseHomeworkInfo/homeworkInfoListForStu", method: "get", }, onlinePracticeDetail: { url: "/course/course/{courseId}/courseHomeworkInfo/homeworkInfoForStu/{uid}", method: "get", }, getMessageList: { url: "/msg/api/remindInfo/list", method: "get" }, examinateScore: { url: "/study/api/studyCheckResultInfo/studList", method: "get", }, getFinalExamStuStatus: { url: "/exam/api/finalExamCourseInfo/recordForStud", method: "get", }, getPracticeInfo: { url: "/course/course/{courseId}/courseHomeworkInfo/homeworkInfoForStu/{uid}", method: "get", }, getWorkInfo: { url: "/course/api/checkContentInfo/detailForStu", method: "get", }, onlinePractice: { url: "/course/course/{courseId}/courseHomeworkInfo/homeworkInfoListForStu", method: "get", }, getExamAnswerRecords: { url: "/exam/api/studyPaperInfo/detailList", method: "get", }, getPapaerQuestions: { url: "/exam/api/hasAnswerDetail", method: "get", }, addAnswer: { url: "/exam/api/studyPaperInfo/add", method: "post" }, submitPaper: { url: "/exam/api/studyPaperInfo/submitPaper", method: "post", }, uploadExamFile: { url: "/file/api/fileStudMid/upload/questionAnswer", method: "post", }, getUploadExamFile: { url: "/file/api/fileStudMid/detail", method: "get", }, getCourseFileDetail: { url: "/file/api/fileCourseMid/detail/{courseId}", method: "get", }, lastDetail: { url: "/exam/api/studyPaperInfo/lastDetail", method: "get", }, sendSMS: { url: "/msg/innerApi/sendSmsCode", method: "post" }, getTeachActivityDetail: { url: "/course/api/courseActInfo/detail/{id}", method: "get", }, addTeachActivity: { url: "/course/api/courseActInfo/add", method: "post", }, updateTeachActivity: { url: "/course/api/courseActInfo/update/{id}", method: "post", }, getCourseStudyWeek: { url: "/course/course/{courseId}/courseChapterInfo/selectCourseChapterListForWeek", method: "get", }, getAllTerm: { url: "/basic/api/termInfo/list", method: "get" }, getCourseAppriseTotal: { url: "/exam/api/appraiseUserInfo/appraiseDetail", method: "get", }, getCourseAppriseQuestions: { url: "/exam/api/appraiseInfo/detailContent/{uid}", method: "get", }, getCourseAppriseSummary: { url: "/exam/api/appraiseUserInfo/appraiseSummary", method: "get", }, getCourseAppriseAnsDetail: { url: "/exam/api/appraiseUserInfo/appraiseSummaryQuery", method: "get", }, getTeacherApprises: { url: "/exam/api/appraiseInfo/list", method: "get", }, }, A = { getAllCourseList: { url: "/course/user/myCourseInfo/myCourseInfoList?isApp=1", method: "get", }, getHostList: { url: "/course/user/myCourseInfo/hostList?isApp=1", method: "get", }, getFaceTeachList: { url: "/course/user/myCourseInfo/faceTeachList?isApp=1", method: "get", }, getCourseChapterInfo: { url: "/course/course/{courseId}/courseChapterInfo/treeCourseChapterInfo", method: "get", }, getTeachActivityList: { url: "/course/api/courseActInfo/listForCourse", method: "get", }, getCourseQAList: { url: "/bbs/api/bbsPostInfo/list", method: "get" }, getPostCommentInfoList: { url: "/bbs/api/bbsPostInfo/postCommentInfoList", method: "get", }, getCourseWorkList: { url: "/course/api/checkContentInfo/list", method: "get", }, getOnlinePracticeList: { url: "/course/course/{courseId}/courseHomeworkInfo/list", method: "get", }, addOnlinePractice: { url: "/course/api/checkContentInfo/add", method: "post", }, getOnlinePracticeDetail: { url: "/course/api/checkContentInfo/detail/{id}", method: "get", }, getPracticeQuestionDetail: { url: "/exam/course/{courseId}/paperInfo/questionUseStat/{paperId}", method: "get", }, getTeachResearchActivity: { url: "/course/api/courseTeachActInfo/list", method: "get", }, saveTeachResearchActivity: { url: "/course/api/courseTeachActInfo/save", method: "post", }, getTeachResearchActivityDetail: { url: "/course/api/courseTeachActInfo/detail/{uid}", method: "get", }, getCourseClasses: { url: "/edumanage/api/classInfo/classList?courseId={courseId}", method: "get", }, getSubSchools: { url: "/auth/dict/dictInfo/subSchoolList?courseId={courseId}", method: "get", }, getStuScore: { url: "/study/api/studyCheckResultInfo/teachList", method: "get", }, }, w = { getStuCourseList: { url: "/course/user/myCourseInfo/studyList?isApp=1", method: "get", }, getHistoryCourseList: { url: "/course/user/myCourseInfo/myStudyHistoryList", method: "get", }, getCourseCalendar: { url: "/courseChapterInfo/selectCourseChapterListForWeek", method: "get", }, getCourseResourceList: { url: "/course/courseTutorResInfo/studList?isSelf={isSelf}", method: "get", }, addResStudyTime: { url: "/study/api/studyResInfo/add", method: "post", }, getStuCourseCatalog: { url: "/course/course/{courseId}/courseChapterInfo/treeCourseChapterInfoForStu", method: "get", }, getStuCourseResDetail: { url: "/study/api/studyResInfo/perview", method: "get", }, getStuExamList: { url: "/course/api/checkContentInfo/checkContentInfoListForStu", method: "get", }, getStuExamDetail: { url: "/course/api/checkContentInfo/detailForStu", method: "get", }, stuUploadPracticeFile: { url: "/file/api/fileStudMid/upload/bizFile", method: "post", }, stuUploadTeamWorkFile: { url: "/file/api/fileStudMid/upload/bizFile", method: "post", }, getStuPracticeFile: { url: "/file/api/fileStudMid/detailCheckFile", method: "get", }, getTeamWorkGroupList: { url: "/edumanage/api/classGroupInfo/listForStud", method: "get", }, getTeamWorkFileList: { url: "/file/api/fileStudMid/upload/bizFileList", method: "get", }, downLoadStuFile: { url: "/file/api/fileStudMid/download", method: "get", }, deleteStuFile: { url: "/file/api/fileStudMid/deleteFile?filekey={filekey}", method: "post", }, getTeamGroupMembers: { url: "/edumanage/api/classGroupInfo/groupStudList", method: "get", }, getTeamWorkBBSList: { url: "/bbs/api/bbsPostInfo/list", method: "get", }, getTeamWorkScoreList: { url: "/study/api/manageScore/groupScoreList", method: "get", }, getCourseScore: { url: "/study/api/studyCheckResultInfo/studList", method: "get", }, getCourseScoreWithSetting: { url: "/study/api/studyCheckResultInfo/detailStudyCheckResult", method: "get", }, refreshCourseScore: { url: "/study/api/studyCheckResultInfo/refreshNewScore", method: "get", }, getCourseScoreDetail: { url: "/study/api/resultDetail/detailListForApp", method: "get", }, getShouldLearnRes: { url: "/study/api/studyResInfo/detailResBrowse", method: "get", }, getLearningPoints: { url: "/auth/api/integralUserInfo/todayIntegral", method: "get", }, getTotalLearningPoints: { url: "/auth/api/integralUserInfo/myIntegral", method: "get", }, getStuAppraiseList: { url: "/exam/api/appraiseInfo/listForStud", method: "get", }, getStuAppraiseData: { url: "/exam/api/appraiseUserInfo/userData", method: "get", }, submitEvaluationAnswer: { url: "/exam/api/appraiseUserInfo/add", method: "post", }, }, b = Object(o["a"])( Object(o["a"])(Object(o["a"])(Object(o["a"])({}, I), C), A), w ); function T(e, t) { var i = e || "", s = t || {}, a = Object.prototype.toString.call(s), n = new RegExp("{.*?}", "g"), r = i.match(n); if (r) { if ("[object Object]" !== a && "[object FormData]" !== a) throw new Error("paramsData should be a object"); var c = {}; c = "[object FormData]" === a ? t : Object(o["a"])({}, s); for (var l = 0; l < r.length; l++) { var u = r[l].replace(/\{|\}/g, ""); if ("[object FormData]" === a) { if ("" === c.get(u) || void 0 === c.get(u)) throw new Error( "error url params: " + u + " not in paramsData" ); var d = new RegExp(r[l], "g"); (i = i.replace(d, c.get(u))), c.delete(u); } else { if ("" === c[u] || void 0 === c[u]) throw new Error( "error url params: " + u + " not in paramsData" ); var p = new RegExp(r[l], "g"); (i = i.replace(p, c[u])), delete c[u]; } } return { baseUrl: i, data: c }; } return { baseUrl: i, data: s }; } var S = a.a.create({ baseURL: "java_api" === r["a"].apiPrefix && r["a"].isProduction ? "https://newlearning-back.shou.org.cn" : "/".concat(r["a"].apiPrefix), }); function x(e, t, i) { if (!b[e]) throw new Error("no these api: " + e + " resouce"); var o = b[e].url, s = T(o, t), a = b[e].method.toLocaleLowerCase(), r = { url: s.baseUrl, method: a }, c = Object(n["d"])("userInfo") || {}, l = Object(n["d"])("currentRole") || "", u = Object(n["d"])("lang") || "zh", d = { "x-current-lang": "en" === u ? "en-US" : "zh-CN" }; c.token && (d["x-accept-token"] = c.token), l && (d["x-current-role"] = l); var p = {}; if ( (i && (p = Object.assign(p, i)), i && i.headers && ((d = Object.assign(d, p.headers)), delete p.headers), i && i.responseType && ((r.responseType = p.responseType), delete p.responseType), "post" === a || "put" === a || "patch" === a) ) s.data && s.data._dataArr ? (r.data = s.data._dataArr) : s.data && (r.data = s.data); else { var h = s.data; "get" === a && (h._timeTag = new Date().valueOf()), (r.params = h); } return (r.headers = d), Object.assign(r, p), S.request(r); } S.interceptors.response.use( function (e) { var t = e.data || {}; if ("100402" !== t.code) return Promise.resolve(t); window.location.href = "/login/index.html"; }, function (e) { var t = { code: "1", data: null, message: e.toString() }; return Promise.resolve(t); } ); var P = "dotNet_api" === r["a"].apiPrefix ? y : x; t["a"] = P; }, "3e02": function (e, t, i) { "use strict"; i("9238"); }, "3e98": function (e, t, i) { "use strict"; i("b0d0"); var o = i("3c69"), s = (i("4d63"), i("ac1f"), i("25f0"), i("5319"), i("2b0e")), a = i("8c4f"), n = i("a925"), r = i("365c"), c = i("f3df"), l = i("aa6a"), u = i("2610"), d = (i("7db0"), function (e) { var t = katex.renderToString(e, { throwOnError: !1 }); return t; }), p = function () { window.mathTxtLoad = function (e) { var t = $("img.latex-text-img-".concat(e)); if (t.length >= 1) for (var i = t.length, o = 0; o < i; o++) { var s = $(t[o]), a = s.parent(), n = a.data("math"); if (n && a.find(".katex").length <= 0) { var r = d(n); r && a.append(r); } } }; }, h = i("d4b0"), f = i("8c18"), m = { homeTitle: "中文首页", bottomNav: { courseLearning: "课程学习", courseCatalog: "学习目录", courseResource: "补充资源", home: "首页", courseInfo: "课程信息", courseQA: "课程问答", teachActivity: "教学活动", courseWork: "课程作业", personal: "个人中心", course: "课程", researchActivity: "教研活动", }, teacherHome: { settingBtn: "设置", courseList: "主持课程", faceCourse: "面授课程", courseHomeWork: "课程作业", courseSearch: "课程搜索", collectCourse: "收藏课程", teachActivity: "教研活动", bysj: "毕业设计", zxkf: "在线客服", xkcj: "形考成绩", }, }, g = { homeTitle: "English Title", bottomNav: { courseLearning: "CourseLearning", courseCatalog: "CourseCatalog", courseResource: "Resource", home: "Home", courseInfo: "CourseInfo", courseQA: "CourseQA", teachActivity: "TeachActivity", courseWork: "CourseWork", personal: "Personal", course: "Course", researchActivity: "ResearchActivity", }, teacherHome: { settingBtn: "Setting", courseList: "HostCourse", faceCourse: "InPersonCourse", courseHomeWork: "CourseWork", courseSearch: "CourseSearch", collectCourse: "FavoriteCourse", teachActivity: "T&R Activities", bysj: "Graduation Project", zxkf: "Online Service", xkcj: "FormTest Score", }, }, v = { "zh-CN": m, "en-US": g }; (s["a"].config.productionTip = !1), s["a"].use(a["a"]), s["a"].use(n["a"]); var y = Object(c["d"])("lang") || "zh"; Object(c["f"])("lang", y); var I = { zh: "zh-CN", en: "en-US" }, C = { zh: f["a"], en: h["a"] }, A = new n["a"]({ locale: I[y], messages: v }); o["a"].use(I[y], C[y]), (s["a"].prototype.$changeLanguage = function (e) { e in I && (o["a"].use(I[e], C[e]), (A.locale = I[e]), Object(c["f"])("lang", e)); }), (s["a"].prototype.$API = r["a"]), (s["a"].prototype.$getItem = c["d"]), (s["a"].prototype.$setItem = c["f"]); var w = function (e, t) { var i = Object(c["d"])("userInfo"); if ( i && i.userId && 13 === i.userId.length && i.userId.indexOf("223100120") >= 0 ) return (window.location.href = "/notice_info.html"), null; new s["a"]({ router: t, i18n: A, created: function () { p(); }, render: function (t) { return t(e); }, }).$mount("#app"); }, b = function (e, t) { var i = Object(c["d"])("userInfo"); if (i && i.token) w(e, t); else { var o = Object(l["d"])(); o && o.code && "wxlogin" === o.state ? Object(u["c"])(o.code, function () { var i = window.location.href, s = new RegExp("&?code=".concat(o.code, "&?")), a = new RegExp("&?state=".concat(o.state, "&?")); (i = i.replace(s, "")), (i = i.replace(a, "")), window.location.replace(i), w(e, t); }) : -1 === window.location.href.indexOf("login") ? Object(u["d"])() : w(e, t); } }; t["a"] = b; }, 4257: function (e, t, i) {}, "45ee": function (e, t, i) { e.exports = i.p + "img/course_qa_activity.f4991224.png"; }, "498b": function (e, t, i) {}, "4c0f": function (e, t, i) { "use strict"; var o = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i("div", { ref: "videoContainer", staticClass: "video-item" }); }, s = [], a = i("b85c"), n = (i("4e82"), i("4de4"), i("159b"), i("fb6a"), i("f7a5")), r = i.n(n), c = { name: "VideoPlayer", props: ["source", "cover", "subtitle", "lastPlayTime", "highlight"], data: function () { return { dpPlayer: null, highlightPause: [], timeInfo: { startSecond: 0, endSecond: 0, startTimestamp: 0, endTimestamp: 0, }, continuePlay: 0, }; }, watch: { source: function () { this.dpPlayer ? (this.dpPlayer.destroy(), this.initPlayer()) : this.initPlayer(); }, highlight: function () { this.initHighLight(); }, }, beforeDestroy: function () { this.dpPlayer && this.dpPlayer.destroy(); }, mounted: function () { this.initPlayer(); }, methods: { initPlayer: function () { var e = this; if (this.source) { var t = { container: this.$refs.videoContainer, lang: "en" === this.$getItem("lang") ? "en" : "zh-cn", contextmenu: [], }; this.source && (t.video = { url: this.source }), this.cover && (t.video = Object.assign( { pic: this.cover }, t.video || {} )), this.subtitle && (t.subtitle = { url: this.subtitle }), (this.dpPlayer = new r.a(t)), this.dpPlayer.on("play", function () { var t = e.currentTime(); (e.timeInfo.startSecond = t), (e.timeInfo.startTimestamp = new Date().getTime()), (e.continuePlay = 0), e.$emit("play", t); }), this.dpPlayer.on("pause", function () { var t = e.currentTime(); e.$emit("pause", t), e.savePlayInfo(); }), this.dpPlayer.on("loadedmetadata", function () { e.highlight && e.initHighLight(), e.lastPlayTime && e.lastPlayTime < Math.floor(e.dpPlayer.video.duration) && e.jumpToTime(e.lastPlayTime), e.lastPlayTime && e.lastPlayTime == Math.floor(e.dpPlayer.video.duration) && e.jumpToTime(0), e.initPlayEvent(); }); } }, initHighLight: function () { var e = this, t = this.highlight; if ( ((this.highlightPause = (this.highlight || []) .filter(function (e) { return e.needPause && e.time; }) .sort(function (e, t) { return e.time - t.time; })), this.dpPlayer && ((this.dpPlayer.options.highlight = t), t)) ) { var i = this.$refs.videoContainer.querySelectorAll( ".dplayer-highlight" ); [].slice.call(i, 0).forEach(function (t) { e.dpPlayer.template.playedBarWrap.removeChild(t); }); for (var o = 0; o < t.length; o++) if (t[o].text && t[o].time) { var s = document.createElement("div"); s.classList.add("dplayer-highlight"), (s.style.left = (t[o].time / this.dpPlayer.video.duration) * 100 + "%"), (s.innerHTML = '<span class="dplayer-highlight-text">' + t[o].text + "</span>"), this.dpPlayer.template.playedBarWrap.insertBefore( s, this.dpPlayer.template.playedBarTime ); } } }, initPlayEvent: function () { var e = this, t = this.timeInfo.startSecond || 0; this.dpPlayer.on("timeupdate", function () { var i = e.currentTime(); if (i < t) return ( (t = i), (e.continuePlay = 0), !e.dpPlayer.video.paused && e.savePlayInfo(), !1 ); if (i - t < 1) return !1; e.continuePlay += 1; var o = !1, s = e.highlightPause; if (s.length > 0) { var n, r = Object(a["a"])(s); try { for (r.s(); !(n = r.n()).done; ) { var c = n.value; if (t < c.time && i >= c.time) { e.$emit("pauseAtHighlight", c), (o = !0), (t = c.time), (e.continuePlay = 0), e.jumpToTime(c.time), e.dpPlayer.pause(); break; } } } catch (l) { r.e(l); } finally { r.f(); } } o || (i - t >= 2 ? (!e.dpPlayer.video.paused && e.savePlayInfo(), (e.continuePlay = 0), (t = i)) : ((t = i), (e.timeInfo.endSecond = t))), e.continuePlay >= 60 && !e.dpPlayer.video.paused && ((e.continuePlay = 0), e.savePlayInfo()); }); }, jumpToTime: function (e) { this.dpPlayer.seek(e); }, currentTime: function () { return this.dpPlayer ? Math.floor(this.dpPlayer.video.currentTime) : 0; }, savePlayInfo: function () { var e = new Date().getTime(), t = { startTimestamp: this.timeInfo.startTimestamp, endTimestamp: e, startSecond: this.timeInfo.startSecond, endSecond: this.timeInfo.endSecond, Speed: this.getSpeed(), }; this.$emit("playTimeUpdate", t), (this.timeInfo.startTimestamp = e), (this.timeInfo.startSecond = this.currentTime()), (this.timeInfo.endSecond = 0), (this.continuePlay = 0); }, goOnPlay: function () { this.dpPlayer && this.dpPlayer.play(); }, getSpeed: function () { var e = document.querySelector("video"); return e ? e.playbackRate : null; }, }, }, l = c, u = (i("b505"), i("2877")), d = Object(u["a"])(l, o, s, !1, null, "6d0ceb52", null); t["a"] = d.exports; }, "519e": function (e, t, i) { e.exports = i.p + "img/course_qa.af2e3e51.png"; }, "523f": function (e, t, i) {}, "532f": function (e, t, i) {}, "55d6": function (e, t, i) { e.exports = i.p + "img/home_icon.56a7f49c.png"; }, "595a": function (e, t) { e.exports = "data:image/png;base64,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"; }, "59d2": function (e, t, i) { "use strict"; i("498b"); }, "5af1": function (e, t, i) { "use strict"; i("c0f0"); }, "5e49": function (e, t) { e.exports = "data:image/png;base64,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"; }, "5f15": function (e, t, i) {}, 6569: function (e, t, i) {}, "6a24": function (e, t, i) {}, "6cd1": function (e, t, i) { "use strict"; i("5f15"); }, 7429: function (e, t, i) { "use strict"; i("532f"); }, 7950: function (e, t, i) { "use strict"; i("f797"); }, "7c30": function (e, t, i) { "use strict"; i("523f"); }, "7dca": function (e, t, i) {}, 8700: function (e, t, i) { "use strict"; i("fd27"); }, "89d4": function (e, t, i) {}, "8b3e": function (e, t, i) { "use strict"; i("e275"); }, "8d27": function (e, t, i) { "use strict"; var o = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "div", { staticClass: "question-options" }, [ "1" === e.questionType || "3" === e.questionType ? [ i( "RadioGroup", { model: { value: e.singleSelect, callback: function (t) { e.singleSelect = t; }, expression: "singleSelect", }, }, e._l(e.optionsArr, function (t, o) { return i( "Radio", { key: "" + t.optionId, staticClass: "option-item", attrs: { name: t.optionId, disabled: e.closeAnswer, }, }, [ e._v( " " + e._s( String.fromCharCode(97 + o).toUpperCase() + ". " + t.optionText ) + " " ), ] ); }), 1 ), ] : "2" === e.questionType ? [ i( "CheckboxGroup", { model: { value: e.userAnswer, callback: function (t) { e.userAnswer = t; }, expression: "userAnswer", }, }, e._l(e.optionsArr, function (t, o) { return i( "Checkbox", { key: "" + t.optionId, staticClass: "option-item", attrs: { shape: "square", name: t.optionId, disabled: e.closeAnswer, }, }, [ e._v( " " + e._s( String.fromCharCode(97 + o).toUpperCase() + ". " + t.optionText ) + " " ), ] ); }), 1 ), ] : "4" === e.questionType || "5" === e.questionType ? i( "CellGroup", e._l(e.optionsArr, function (t, o) { return i("Field", { key: "" + t.optionId, attrs: { label: "第(" + (o + 1) + ")空回答", disabled: e.closeAnswer, placeholder: "请输入内容", }, model: { value: e.userAnswer[o], callback: function (t) { e.$set(e.userAnswer, o, t); }, expression: "userAnswer[index]", }, }); }), 1 ) : "6" === e.questionType ? i( "CellGroup", [ i("Field", { attrs: { type: "textarea", rows: "8", autosize: "", label: "回答: ", "label-width": "60", disabled: e.closeAnswer, placeholder: "请输入内容", }, model: { value: e.singleSelect, callback: function (t) { e.singleSelect = t; }, expression: "singleSelect", }, }), ], 1 ) : "7" === e.questionType ? i( "CellGroup", [ e._l(e.optionsArr, function (t, o) { return i("Field", { key: "" + t.optionId, attrs: { readonly: "", clickable: "", name: "picker", value: e.userAnswer[o], label: t.optionText, disabled: e.closeAnswer, placeholder: "请选择", }, on: { click: function (t) { return e.openSelectPop(o); }, }, }); }), i( "Popup", { attrs: { position: "bottom" }, model: { value: e.showSelectPop, callback: function (t) { e.showSelectPop = t; }, expression: "showSelectPop", }, }, [ i("Picker", { attrs: { "show-toolbar": "", columns: e.selectColumns, }, on: { confirm: e.onConfirm, cancel: function (t) { return e.closeSelectPop(); }, }, }), ], 1 ), ], 2 ) : "10" === e.questionType ? i("Field", { attrs: { name: "uploader", label: "选择上传文件" }, scopedSlots: e._u([ { key: "input", fn: function () { return [ i("Uploader", { attrs: { accept: "*", "after-read": e.afterSelectFile, "max-count": 1, disabled: e.closeAnswer, "before-delete": e.beforeDelete, }, model: { value: e.uploaderFiles, callback: function (t) { e.uploaderFiles = t; }, expression: "uploaderFiles", }, }), ]; }, proxy: !0, }, ]), }) : e._e(), ], 2 ); }, s = [], a = (i("e930"), i("8f80")), n = (i("5f5f"), i("f253")), r = (i("8a58"), i("e41f")), c = (i("3c32"), i("417e")), l = (i("a909"), i("3acc")), u = (i("4ddd"), i("9f14")), d = (i("a44c"), i("e27c")), p = (i("be7f"), i("565f")), h = (i("0653"), i("34e9")), f = i("b85c"), m = (i("ac1f"), i("1276"), i("cb29"), i("99af"), i("a15b"), i("d3b7"), i("a434"), i("b0c0"), i("5cc6"), i("9a8c"), i("a975"), i("735e"), i("c1ac"), i("d139"), i("3a7b"), i("d5d6"), i("82f8"), i("e91f"), i("60bd"), i("5f96"), i("3280"), i("3fcc"), i("ca91"), i("25a1"), i("cd26"), i("3c5d"), i("2954"), i("649e"), i("219c"), i("170b"), i("b39a"), i("72f7"), i("a630"), i("3ca3"), i("d81d"), i("db49")), g = { methods: { echoFn: function (e) { var t = this.inputAnswer.split(","), i = t.length; if (i == e) return t; var o = e - i, s = Array(o).fill(""); return t.concat(s); }, setUserAnswer: function () { if ( (this.resetData(), "1" === this.questionType || "3" === this.questionType || "6" === this.questionType || "10" === this.questionType) ) "10" === this.questionType && this.inputAnswer.indexOf("doc/a") >= 0 ? this.getFileInfo() : (this.singleSelect = this.inputAnswer); else if ( "2" === this.questionType || "4" === this.questionType || "5" === this.questionType ) this.userAnswer = "" === this.inputAnswer ? [] : this.inputAnswer.split(","); else if ("7" === this.questionType) { var e = this.optionsArr[0].selectArr.length; this.userAnswer = "" === this.inputAnswer ? Array(e).fill("") : this.echoFn(e); } }, getUserAnswer: function () { return "1" === this.questionType || "3" === this.questionType || "6" === this.questionType || "10" === this.questionType ? "" !== this.singleSelect ? this.singleSelect : "" : "2" === this.questionType || "4" === this.questionType || "5" === this.questionType || "7" === this.questionType ? this.userAnswer.join(",") : void 0; }, getFileInfo: function () { var e = this; this.$API("getResPreviewInfo", { filekey: this.inputAnswer }) .then(function (t) { if ("0" === t.code) { var i, o = t.data || {}; e.uploaderFiles.splice(0, 1, { url: (null === o || void 0 === o || null === (i = o.urls) || void 0 === i ? void 0 : i.preview) || "https://ldoc.shou.org.cn/".concat(e.inputAnswer), }); } }) .finally(function () { e.singleSelect = e.inputAnswer; }); }, onConfirm: function (e) { var t = this; this.userAnswer.splice(this.popSelectIndex, 1, e), this.$nextTick(function () { (t.popSelectIndex = 0), (t.selectColumns = []), (t.showSelectPop = !1); }); }, afterSelectFile: function (e) { var t = this, i = e.file, o = i.name; (e.status = "uploading"), (e.message = "上传中..."); var s = new FileReader(); (s.onload = function (i) { var s = i.target.result, a = new Uint8Array(s); t.$API("uploadFile", { fileName: o, _dataArr: Array.from(a), }).then(function (i) { if ("0" === i.code) { var o = i.data.url; (e.status = "done"), (e.message = "上传成功"), (e.url = "https://ldoc.shou.org.cn/".concat(o)), (t.singleSelect = o); } else (e.status = "failed"), (e.message = i.message || "上传失败"); }); }), s.readAsArrayBuffer(i); }, }, }, v = { methods: { setUserAnswer: function () { var e; if ( (this.resetData(), "1" === this.questionType || "3" === this.questionType) ) this.singleSelect = (null === (e = this.inputAnswer[0]) || void 0 === e ? void 0 : e.optionId) || ""; else if ("2" === this.questionType) this.userAnswer = this.inputAnswer ? this.inputAnswer.map(function (e) { return e.optionId; }) : []; else if ("4" === this.questionType || "5" === this.questionType) { var t = {}; this.inputAnswer && this.inputAnswer.map(function (e) { t[e.optionId] = e.answerContent || ""; }), (this.userAnswer = this.optionsArr.map(function (e) { var i = e.optionId; return t[i] || ""; })); } else if ("6" === this.questionType) { var i; this.singleSelect = (null === (i = this.inputAnswer[0]) || void 0 === i ? void 0 : i.answerContent) || ""; } else if ("10" === this.questionType) { var o, s = null === (o = this.inputAnswer[0]) || void 0 === o ? void 0 : o.answerContent; s && this.getFileInfo(s); } else { if ("7" !== this.questionType) return ""; var a, n, r = (null === (a = this.optionsArr[0]) || void 0 === a ? void 0 : a.selectArr) || [], c = Object(f["a"])(r); try { for (c.s(); !(n = c.n()).done; ) { var l, u = n.value; if ( u.optionId === (null === (l = this.inputAnswer[0]) || void 0 === l ? void 0 : l.optionId) ) { this.userAnswer[0] = u.text; break; } } } catch (d) { c.e(d); } finally { c.f(); } } }, getUserAnswer: function () { var e = this; if ("1" === this.questionType || "3" === this.questionType) return [{ answerContent: "", optionId: this.singleSelect }]; if ("2" === this.questionType) return this.userAnswer.map(function (e) { return { answerContent: "", optionId: e }; }); if ("4" === this.questionType || "5" === this.questionType) { var t = []; return ( this.userAnswer.map(function (i, o) { i && t.push({ answerContent: i, optionId: e.optionsArr[o].optionId, }); }), t ); } if ("6" === this.questionType || "10" === this.questionType) return [{ answerContent: this.singleSelect, optionId: "" }]; if ("7" === this.questionType) { var i = ""; if (this.userAnswer.length > 0) { var o, s, a = (null === (o = this.optionsArr[0]) || void 0 === o ? void 0 : o.selectArr) || [], n = Object(f["a"])(a); try { for (n.s(); !(s = n.n()).done; ) { var r = s.value; r.text === this.userAnswer[0] && (i = r.optionId); } } catch (c) { n.e(c); } finally { n.f(); } } return [{ answerContent: "", optionId: i }]; } return []; }, getFileInfo: function (e) { var t = this; this.$API("getUploadExamFile", { filekey: e }) .then(function (e) { if ("0" === e.code) { var i = e.data || {}; t.uploaderFiles.splice(0, 1, { url: i.viewPath }); } }) .finally(function () { t.singleSelect = e; }); }, onConfirm: function (e) { var t = this; this.userAnswer.splice(this.popSelectIndex, 1, e.optionText), this.$nextTick(function () { (t.popSelectIndex = 0), (t.selectColumns = []), (t.showSelectPop = !1); }); }, afterSelectFile: function (e) { var t = this, i = e.file; (e.status = "uploading"), (e.message = "上传中..."); var o = new FormData(); o.append("upfile_attachment", i), o.append("modtype", "question"), this.$API("uploadExamFile", o).then(function (i) { if ("0" === i.code) { (e.status = "done"), (e.message = "上传成功"); var o = i.data; t.singleSelect = o; } else (e.status = "failed"), (e.message = i.message || "上传失败"); }); }, }, }, y = "dotNet_api" === m["a"].apiPrefix ? g : v, I = y, C = { name: "QuestionOptions", components: { CellGroup: h["a"], Field: p["a"], RadioGroup: d["a"], Radio: u["a"], CheckboxGroup: l["a"], Checkbox: c["a"], Popup: r["a"], Picker: n["a"], Uploader: a["a"], }, props: { questionType: { type: String, default: "" }, optionsArr: { type: Array, default: function () { return []; }, }, inputAnswer: { type: [String, Array], default: "" }, closeAnswer: { type: Boolean, default: !1 }, }, data: function () { return { singleSelect: "", userAnswer: [], uploaderFiles: [], popSelectIndex: 0, showSelectPop: !1, selectColumns: [], }; }, mixins: [I], watch: { inputAnswer: function () { this.setUserAnswer(); }, }, mounted: function () { this.setUserAnswer(); }, methods: { resetData: function () { (this.singleSelect = ""), (this.userAnswer = []), (this.uploaderFiles = []), (this.popSelectIndex = 0), (this.showSelectPop = !1), (this.selectColumns = []); }, beforeDelete: function () { return !this.closeAnswer; }, openSelectPop: function (e) { var t; if (this.closeAnswer) return !1; (this.popSelectIndex = e), (this.selectColumns = (null === (t = this.optionsArr[e]) || void 0 === t ? void 0 : t.selectArr) || []), (this.showSelectPop = !0); }, closeSelectPop: function () { (this.popSelectIndex = 0), (this.selectColumns = []), (this.showSelectPop = !1); }, }, }, A = C, w = (i("2b4a"), i("2877")), b = Object(w["a"])(A, o, s, !1, null, "0cf14458", null); t["a"] = b.exports; }, 9167: function (e, t, i) { "use strict"; var o = function () { var e = this, t = e.$createElement, o = e._self._c || t; return o( "div", { attrs: { id: "app" } }, [ e.showTop ? o("TopNav", { attrs: { cb: e.cb, navName: e.navName, title: e.title, "activity-id": e.activityId, }, on: { doSearch: e.doSearch }, }) : e._e(), o( "div", { staticClass: "content-area", class: e.$slots.bottom ? "" : "hide-bottom", }, [e._t("default")], 2 ), e._t("bottom"), o( "span", { ref: "serviceBtn", staticClass: "online-service", on: { click: e.showOnlineService }, }, [o("img", { attrs: { src: i("917e"), alt: "" } })] ), ], 2 ); }, s = [], a = function () { var e = this, t = e.$createElement, i = e._self._c || t; return "searchPage" === e.navName ? i("NavBar", { staticClass: "top-nav", attrs: { "safe-area-inset-top": "" }, on: { "click-left": e.leftClick }, scopedSlots: e._u( [ { key: "left", fn: function () { return [ i("Icon", { attrs: { name: "arrow-left", size: "24" }, }), ]; }, proxy: !0, }, { key: "title", fn: function () { return [ i("Search", { staticClass: "top-search search-page-input", attrs: { shape: "round" }, on: { search: e.doSearchCourse, clear: e.doSearch }, model: { value: e.searchValue, callback: function (t) { e.searchValue = t; }, expression: "searchValue", }, }), ]; }, proxy: !0, }, { key: "right", fn: function () { return [ i("span", { on: { click: e.doSearch } }, [ e._v("搜索"), ]), ]; }, proxy: !0, }, ], null, !1, 786759981 ), }) : "changeLanguage" === e.navName ? i("NavBar", { staticClass: "top-nav", attrs: { "safe-area-inset-top": "" }, on: { "click-left": e.leftClick }, scopedSlots: e._u( [ { key: "left", fn: function () { return [ i("Icon", { attrs: { name: "arrow-left", size: "24" }, }), ]; }, proxy: !0, }, { key: "title", fn: function () { return [ i("span", { staticClass: "nav-title" }, [ e._v(e._s(e.title || e.$t("homeTitle"))), ]), ]; }, proxy: !0, }, { key: "right", fn: function () { return [ e._t("nav-right", function () { return [ i("Popover", { attrs: { trigger: "click", placement: "bottom-end", actions: e.actionsData, }, on: { select: e.onSelectMenuItem }, scopedSlots: e._u([ { key: "reference", fn: function () { return [ i("Icon", { staticClass: "nav-btn", attrs: { name: "wap-nav", size: "24", }, }), ]; }, proxy: !0, }, ]), model: { value: e.showPopover, callback: function (t) { e.showPopover = t; }, expression: "showPopover", }, }), ]; }), ]; }, proxy: !0, }, ], null, !0 ), }) : "changeCourse" === e.navName ? i("NavBar", { staticClass: "top-nav", attrs: { "safe-area-inset-top": "" }, on: { "click-left": e.leftClick }, scopedSlots: e._u( [ { key: "left", fn: function () { return [ i("Icon", { attrs: { name: "arrow-left", size: "24" }, }), ]; }, proxy: !0, }, { key: "title", fn: function () { return [ i("span", { staticClass: "nav-title" }, [ e._v(e._s(e.title || e.$t("homeTitle"))), ]), ]; }, proxy: !0, }, { key: "right", fn: function () { return [ e._t("nav-right", function () { return [ i("Popover", { attrs: { trigger: "click", placement: "bottom-end", actions: e.actions, }, on: { select: e.onSelectMenuItem }, scopedSlots: e._u([ { key: "reference", fn: function () { return [ i("Icon", { staticClass: "nav-btn", attrs: { name: "wap-nav", size: "24", }, }), ]; }, proxy: !0, }, ]), model: { value: e.showPopover, callback: function (t) { e.showPopover = t; }, expression: "showPopover", }, }), ]; }), ]; }, proxy: !0, }, ], null, !0 ), }) : i("NavBar", { staticClass: "top-nav", attrs: { "safe-area-inset-top": "" }, on: { "click-left": e.leftClick }, scopedSlots: e._u([ { key: "left", fn: function () { return [ i("Icon", { attrs: { name: "arrow-left", size: "24" }, }), ]; }, proxy: !0, }, { key: "title", fn: function () { return [ i("span", { staticClass: "nav-title" }, [ e._v(e._s(e.title || e.$t("homeTitle"))), ]), ]; }, proxy: !0, }, ]), }); }, n = [], r = i("1da1"), c = (i("d82d"), i("7278")), l = (i("5852"), i("d961")), u = (i("c3a6"), i("ad06")), d = (i("5246"), i("6b41")), p = (i("96cf"), i("d81d"), i("a434"), i("99af"), i("aa6a")), h = i("f3df"), f = { name: "TopNav", components: { NavBar: d["a"], Icon: u["a"], Search: l["a"], Popover: c["a"], }, inject: { showSelectHistoryCourse: { default: !1 }, triggerSelectHistory: { default: null }, }, props: { navName: { type: String, default: "" }, title: { type: String, default: "标题" }, activityId: { type: String, default: "" }, cb: { type: Function, default: function () { return !0; }, }, }, data: function () { return { showPopover: !1, searchValue: "", actions: [ { text: "中文", actionType: "zh", className: "top-pop-item" }, { text: "English", actionType: "en", className: "top-pop-item", }, { text: "切换课程", disabled: !0, className: "top-pop-item" }, ], actionsData: [ { text: "中文", actionType: "zh" }, { text: "English", actionType: "en" }, ], activityCourseId: "", }; }, watch: { activityId: function (e) { e && "changeCourse" === this.navName && (this.actions = this.actions.map(function (t) { return ( t.courseId && t.courseId === e ? (t.className = "top-pop-item top-pop-active") : null !== t.courseId && (t.className = "top-pop-item"), t ); })); }, }, mounted: function () { var e = Object(p["d"])(); (this.activityCourseId = e.courseId || this.activityId || ""), "searchPage" === this.navName && e.query && ((this.searchValue = e.query), this.$emit("doSearch", this.searchValue)), "changeCourse" === this.navName && this.initCourseList(); }, methods: { leftClick: function () { var e = this; return Object(r["a"])( regeneratorRuntime.mark(function t() { var i; return regeneratorRuntime.wrap(function (t) { while (1) switch ((t.prev = t.next)) { case 0: return (t.next = 2), e.cb(); case 2: if (((i = t.sent), i)) { t.next = 5; break; } return t.abrupt("return"); case 5: e.$router ? e.$router.go(-1) : history.go(-1); case 6: case "end": return t.stop(); } }, t); }) )(); }, initCourseList: function () { var e = this; Object(h["e"])(function (t) { t.map(function (t) { var i = { courseId: t.id, text: t.courseName, className: t.id === e.activityCourseId ? "top-pop-item top-pop-active" : "top-pop-item", }; e.actions.splice(e.actions.length, 0, i); }), e.showSelectHistoryCourse && e.actions.splice(e.actions.length, 0, { courseId: null, showHistory: !0, text: "历史课程查分", className: "top-pop-item top-pop-history", }); }); }, doSearchCourse: function () { this.$emit("doSearch", this.searchValue); }, doSearch: function () { this.$emit("doSearch", this.searchValue); }, onSelectMenuItem: function (e) { if ("zh" === e.actionType || "en" === e.actionType) this.$changeLanguage(e.actionType); else if (e.courseId && e.courseId !== this.activityCourseId) { var t = window.location.pathname, i = "?courseId=".concat(e.courseId); window.location.href = "".concat(t).concat(i); } else e.showHistory && this.showSelectHistoryCourse && this.triggerSelectHistory && this.triggerSelectHistory(); this.showPopover = !1; }, }, }, m = f, g = (i("8700"), i("2877")), v = Object(g["a"])(m, a, n, !1, null, "55a96ba9", null), y = v.exports, I = { name: "PageLayout", components: { TopNav: y }, props: { navName: { type: String, default: "" }, title: { type: String, default: "标题" }, showTop: { type: Boolean, default: !0 }, activityId: { type: String, default: "" }, cb: { type: Function, default: function () { return !0; }, }, }, methods: { doSearch: function (e) { this.$emit("doSearch", e); }, showOnlineService: function () { window.location.href = "https://admin.shou.org.cn/webim/h5.html?linkType=1&env=private&kfuin=2852200400&fid=1488502&key=a09ad278b4da2726f2541a41c10a835e&cate=7&source=&isLBS=&isCustomEntry=&type=10&ftype=1&_type=wpa&qidian=true&_pid=rqy5b6.rtu3vc.le3lyrev"; }, }, }, C = I, A = (i("7c30"), Object(g["a"])(C, o, s, !1, null, "2070fc6b", null)); t["a"] = A.exports; }, "917e": function (e, t) { e.exports = "data:image/png;base64,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"; }, 9238: function (e, t, i) {}, "925b": function (e, t, i) { "use strict"; i.r(t); i("e260"), i("e6cf"), i("cca6"), i("a79d"); var o = i("3e98"), s = i("8c4f"), a = i("db49"), n = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "keep-alive", { attrs: { include: "CourseDetail" } }, [i("router-view")], 1 ); }, r = [], c = { name: "CourseDetailIndex" }, l = c, u = i("2877"), d = Object(u["a"])(l, n, r, !1, null, null, null), p = d.exports, h = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "PageLayout", { attrs: { title: e.courseName, navName: "changeCourse" } }, [ i( "Tabs", { attrs: { background: "#fff", color: "#559BFF" }, model: { value: e.active, callback: function (t) { e.active = t; }, expression: "active", }, }, [ i( "Tab", { attrs: { title: "课程目录" } }, [ e.courseVideo ? i( "div", { staticClass: "player-wrapper" }, [ i("VideoPlayer", { attrs: { source: e.courseVideo }, }), ], 1 ) : e.courseCover ? i("div", { staticClass: "img-wrapper" }, [ i("img", { attrs: { src: e.courseCover } }), ]) : e._e(), i("CourseCatalog", { on: { isEnableAIStatus: e.isEnableAIStatus }, }), ], 1 ), e.isEnableAI ? i( "Tab", { attrs: { title: "AI助教" } }, [i("AiAssistant")], 1 ) : e._e(), e.isEnableAI ? i( "Tab", { attrs: { title: "学习规划" } }, [i("LearnPlan")], 1 ) : e._e(), e.isEnableAI ? i( "Tab", { attrs: { title: "知识梳理" } }, [i("KnowledgeOrganization")], 1 ) : e._e(), ], 1 ), i("CourseDetailBottomNav", { attrs: { slot: "bottom" }, slot: "bottom", }), ], 1 ); }, f = [], m = (i("bda7"), i("5e46")), g = (i("da3c"), i("0b33")), v = i("f3df"), y = i("9167"), I = i("4c0f"), C = function () { var e = this, t = e.$createElement, o = e._self._c || t; return o( "Tabbar", { staticStyle: { "z-index": "10" }, attrs: { "safe-area-inset-bottom": "" }, model: { value: e.activeMenu, callback: function (t) { e.activeMenu = t; }, expression: "activeMenu", }, }, [ o( "TabbarItem", { attrs: { name: "courseCatalog" }, on: { click: function (t) { return e.navChange("courseCatalog"); }, }, scopedSlots: e._u([ { key: "icon", fn: function () { return [ o("img", { staticStyle: { width: "28px" }, attrs: { src: "courseCatalog" === e.activeMenu ? i("c8b7") : i("a1df"), }, }), ]; }, proxy: !0, }, ]), }, [ o( "span", { class: "courseCatalog" === e.activeMenu ? "activity-item" : "", }, [e._v(e._s(e.$t("bottomNav.courseCatalog")))] ), ] ), o( "TabbarItem", { attrs: { name: "courseResource" }, on: { click: function (t) { return e.navChange("courseResource"); }, }, scopedSlots: e._u([ { key: "icon", fn: function () { return [ o("img", { attrs: { src: "courseResource" === e.activeMenu ? i("5e49") : i("595a"), }, }), ]; }, proxy: !0, }, ]), }, [ o( "span", { class: "courseResource" === e.activeMenu ? "activity-item" : "", }, [e._v(e._s(e.$t("bottomNav.courseResource")))] ), ] ), o( "TabbarItem", { attrs: { name: "home" }, on: { click: function (t) { return e.navChange("home"); }, }, }, [ o("span", { staticStyle: { position: "relative" } }, [ o("span", { staticClass: "home-bg" }), o("span", { staticClass: "home-icon" }, [ o("img", { staticStyle: { width: "18px", height: "18px", "margin-top": "8px", }, attrs: { src: i("55d6") }, }), o("br"), o( "span", { staticStyle: { display: "inline-block", "margin-top": "2px", }, }, [e._v(e._s(e.$t("bottomNav.home")))] ), ]), ]), ] ), o( "TabbarItem", { attrs: { name: "courseInfo" }, on: { click: function (t) { return e.navChange("courseInfo"); }, }, scopedSlots: e._u([ { key: "icon", fn: function () { return [ o("img", { attrs: { src: "courseInfo" === e.activeMenu ? i("ec32") : i("fd3a"), }, }), ]; }, proxy: !0, }, ]), }, [ o( "span", { class: "courseInfo" === e.activeMenu ? "activity-item" : "", }, [e._v(e._s(e.$t("bottomNav.courseInfo")))] ), ] ), o( "TabbarItem", { attrs: { name: "courseQA" }, on: { click: function (t) { return e.navChange("courseQA"); }, }, scopedSlots: e._u([ { key: "icon", fn: function () { return [ o("img", { attrs: { src: "courseQA" === e.activeMenu ? i("45ee") : i("519e"), }, }), ]; }, proxy: !0, }, ]), }, [ o( "span", { class: "courseQA" === e.activeMenu ? "activity-item" : "", }, [e._v(e._s(e.$t("bottomNav.courseQA")))] ), ] ), ], 1 ); }, A = [], w = (i("a52c"), i("2ed4")), b = (i("537a"), i("ac28")), T = (i("b0c0"), { name: "CourseDetailBottomNav", components: { Tabbar: b["a"], TabbarItem: w["a"] }, data: function () { return { activeMenu: "courseCatalog" }; }, activated: function () { this.activeMenu = this.$route.name || "courseCatalog"; }, mounted: function () { this.activeMenu = this.$route.name || "courseCatalog"; }, methods: { navChange: function (e) { var t = this.$route.name, i = this.$route.query || {}; if ("home" === e) return (window.location.href = "/"), !1; t !== e && this.$router.push({ name: e, query: i }); }, }, }), S = T, x = (i("a430"), Object(u["a"])(S, C, A, !1, null, "6f75e65e", null)), P = x.exports, L = function () { var e = this, t = e.$createElement, i = e._self._c || t; return e.initLoading ? i("Skeleton", { staticClass: "skeleton-area", attrs: { row: 3, loading: e.initLoading }, }) : e.modules.length > 0 ? i( "div", { staticClass: "course-catalog" }, e._l(e.modules, function (t) { return i( "div", { key: t.moduleId, staticClass: "course-module" }, [ i("div", { staticClass: "module-title" }, [ e._v(e._s(t.moduleName)), ]), e._l(e.chapters[t.moduleId], function (t) { return i( "Collapse", { key: t.chapterId, model: { value: e.activeChapters, callback: function (t) { e.activeChapters = t; }, expression: "activeChapters", }, }, [ i( "CollapseItem", { staticClass: "chapter-wrapper", attrs: { title: t.chapterName, name: t.chapterId, }, }, e._l(e.resources[t.chapterId], function (t) { return i( "div", { key: t.resourceId, staticClass: "res-item", on: { click: function (i) { return e.showRes(t); }, }, }, [ t._fileIcon ? i("span", { staticClass: "res-icon", class: t._fileIcon, }) : e._e(), i("span", { staticClass: "res-info" }, [ e._v(" " + e._s(t.resourceName) + " "), t.mustStudy ? i( "span", { staticClass: "res-must-study" }, [e._v("(必看)")] ) : e._e(), ]), i("span", { staticClass: "res-status", class: "res-status-" + (t.studyStatus || 0), }), ] ); }), 0 ), ], 1 ); }), ], 2 ); }), 0 ) : i( "div", [i("Empty", { attrs: { description: "暂无学习目录信息" } })], 1 ); }, k = [], O = (i("0209"), i("7d5e")), D = (i("91d5"), i("f0ca")), E = (i("342a"), i("1437")), R = (i("5d17"), i("f9bd")), F = (i("e7e5"), i("d399")), N = (i("e17f"), i("2241")), M = i("b85c"), B = (i("d3b7"), i("4e82"), i("4de4"), i("a434"), i("ac1f"), i("5319"), i("99af"), i("4d90"), { methods: { getStuCourseCatalog: function () { var e = this; (this.initLoading = !0), this.$API("getStuCourseCatalog", { courseId: this.courseId }) .then(function (t) { if ("0" === t.code) { var i = t.data || {}; e.$emit("isEnableAIStatus", i.isEnableAI); var o = i.courseModules || []; e.parseCourseModules(o); } }) .finally(function () { e.initLoading = !1; }); }, parseCourseModules: function (e) { var t, i = e.sort(function (e, t) { return e.sortOrder - t.sortOrder; }), o = [], s = Object(M["a"])(i); try { for (s.s(); !(t = s.n()).done; ) { var a = t.value; o.push({ moduleId: a.id, moduleName: a.name, index: a.sortOrder, isHide: 1 === a.isHide || "1" === a.isHide, withControl: !!a.controlValue, }), a.courseTopics && this.parseChapters(a.id, a.courseTopics); } } catch (n) { s.e(n); } finally { s.f(); } this.modules = o.filter(function (e) { return !e.isHide; }); }, parseChapters: function (e, t) { var i, o = t.sort(function (e, t) { return e.sortOrder - t.sortOrder; }), s = [], a = Object(M["a"])(o); try { for (a.s(); !(i = a.n()).done; ) { var n = i.value; s.push({ chapterId: n.id, chapterName: n.name, index: n.sortOrder, studyProgress: n.studyProgress, }), n.courseCells && this.parseResources(n.id, n.courseCells), this.activeChapters.splice( this.activeChapters.length, 0, n.id ); } } catch (r) { a.e(r); } finally { a.f(); } this.chapters[e] = s; }, parseResources: function (e, t) { var i, o = t.sort(function (e, t) { return e.sortOrder - t.sortOrder; }), s = [], a = Object(M["a"])(o); try { for (a.s(); !(i = a.n()).done; ) { var n = i.value; s.push({ resourceId: n.id, resourceName: n.name, index: n.sortOrder, resourceType: n.cellType, studyStatus: n.type, hasRecords: n.isLearnt, mustStudy: "1" === n.isCanView || 1 === n.isCanView, canComment: "1" === n.isCanComment || 1 === n.isCanComment, canDownload: "1" === n.isCanDownload || 1 === n.isCanDownload, videoTime: n.videoTime, workType: n.workType, fileUuid: n.resourceUrl, _fileIcon: this.guessFileIcon(n.resourceUrl), outLink: n.externalLinkUrl, relativeId: n.assignmentId || n.activityId || n.laboratoryId || n.faceTeachingId || n.middleExamId || n.paperAssignmentId, }); } } catch (r) { a.e(r); } finally { a.f(); } this.resources[e] = s; }, guessFileIcon: function (e) { if (e && e.indexOf("doc/a@") >= 0) { var t = e.replace("doc/a@", ""); return t.indexOf(".doc") >= 0 ? "word-icon" : t.indexOf(".ppt") >= 0 || t.indexOf(".pps") >= 0 ? "ppt-icon" : t.indexOf(".xls") >= 0 ? "excel-icon" : t.indexOf(".pdf") >= 0 ? "pdf-icon" : t.indexOf(".mp4") >= 0 ? "mp4-icon" : t.indexOf(".mp3") >= 0 || t.indexOf(".m4a") >= 0 ? "mp3-icon" : t.indexOf(".zip") >= 0 ? "zip-icon" : ""; } return ""; }, showRes: function (e) { var t = this; if ( ("1" !== e.resourceType && "11" !== e.resourceType) || !e.fileUuid ) "4" === e.resourceType && e.outLink ? N["a"] .confirm({ title: "即将打开外部链接", message: "点击确认将打开外部链接", }) .then(function () { var i = { cellID: e.resourceId, sourceType: 4, videoEndTime: 0, videoStartTime: 0, viewEndTime: t.getFormattedDate(), viewStartTime: t.getFormattedDate(), }; t.$API("addResStudyTime", i).then(function () { window.location.href = e.outLink; }); }) .catch(function () {}) : "9" === e.resourceType && e.relativeId ? (window.location.href = "/online_work/index.html?workId=" .concat(e.relativeId, "&courseId=") .concat(this.courseId)) : "2" === e.resourceType ? "1" === e.workType && e.relativeId ? (window.location.href = "/course_work/index.html?workId=" .concat( e.relativeId, "&workType=assignment&courseId=" ) .concat(this.courseId)) : Object(F["a"])("暂不支持该作业类型") : Object(F["a"])("暂不支持该作业/活动类型"); else { var i = e.fileUuid, o = e.resourceId; this.$router.push({ name: "resourceDetail", query: { courseId: this.courseId, resId: o, filekey: i }, }); } }, getFormattedDate: function () { var e = new Date(), t = e.getFullYear(), i = String(e.getMonth() + 1).padStart(2, "0"), o = String(e.getDate()).padStart(2, "0"), s = String(e.getHours()).padStart(2, "0"), a = String(e.getMinutes()).padStart(2, "0"), n = String(e.getSeconds()).padStart(2, "0"); return "" .concat(t, "-") .concat(i, "-") .concat(o, " ") .concat(s, ":") .concat(a, ":") .concat(n); }, }, }), U = { methods: { getStuCourseCatalog: function () { var e = this; (this.initLoading = !0), this.$API("getStuCourseCatalog", { courseId: this.courseId }) .then(function (t) { if ("0" === t.code) { var i = t.data || []; e.parseCourseModules(i); } }) .finally(function () { e.initLoading = !1; }); }, parseCourseModules: function (e) { var t, i = [], o = Object(M["a"])(e); try { for (o.s(); !(t = o.n()).done; ) { var s = t.value; i.push({ moduleId: s.uid, moduleName: s.titleName, index: s.orderIndex, isHide: 2 === s.isShow || "2" === s.isShow, isDisabled: "0" === s.learningState || 0 === s.learningState, }); var a = "0" === s.learningState || 0 === s.learningState; s.courseChapterChild && s.courseChapterChild.length > 0 && this.parseChapters(s.uid, s.courseChapterChild, a); } } catch (n) { o.e(n); } finally { o.f(); } this.modules = i.filter(function (e) { return !e.isHide; }); }, parseChapters: function (e, t, i) { var o, s = [], a = Object(M["a"])(t); try { for (a.s(); !(o = a.n()).done; ) { var n = o.value; s.push({ chapterId: n.uid, chapterName: n.titleName, index: n.orderIndex, isHide: 2 === n.isShow || "2" === n.isShow, isDisabled: i, }), n.courseResActList && n.courseResActList.length > 0 && this.parseResources(n.uid, n.courseResActList, i), this.activeChapters.splice( this.activeChapters.length, 0, n.uid ); } } catch (r) { a.e(r); } finally { a.f(); } this.chapters[e] = s; }, parseResources: function (e, t, i) { var o, s = [], a = Object(M["a"])(t); try { for (a.s(); !(o = a.n()).done; ) { var n = o.value; s.push({ resourceId: n.id, resourceName: n.resActName, index: n.orderIndex, resourceType: n.bizType, studyStatus: this.translateStudyStatus(n.learningState), hasRecords: "0" !== n.learningState, mustStudy: "1" === n.isSee || 1 === n.isSee, canComment: "1" === n.isEvaluation || 1 === n.isEvaluation, canDownload: "1" === n.isDownload || 1 === n.isDownload, workType: n.bizSubType, _fileIcon: this.guessFileIcon(n.ext1), outLink: n.resActDesc, relativeId: n.bizId, isHide: 1 !== n.visible && "1" !== n.visible, isDisabled: i, }); } } catch (r) { a.e(r); } finally { a.f(); } this.resources[e] = s; }, translateStudyStatus: function (e) { return "0" === e ? "2" : "1" === e ? "1" : "0"; }, guessFileIcon: function (e) { return e ? e.indexOf("doc") >= 0 ? "word-icon" : e.indexOf("ppt") >= 0 || e.indexOf("pps") >= 0 ? "ppt-icon" : e.indexOf("xls") >= 0 ? "excel-icon" : e.indexOf("pdf") >= 0 ? "pdf-icon" : e.indexOf("mp4") >= 0 ? "mp4-icon" : e.indexOf("mp3") >= 0 || e.indexOf("m4a") >= 0 ? "mp3-icon" : e.indexOf("zip") >= 0 ? "zip-icon" : "" : ""; }, showRes: function (e) { "link" === e.resourceType ? e.resActDesc && N["a"] .confirm({ title: "提示", message: "即将打开外部链接".concat(e.outLink), }) .then(function () { window.location.href = e.outLink; }) .catch(function () {}) : "resource" === e.resourceType ? this.$router.push({ name: "resourceDetail", query: { courseId: this.courseId, resId: e.resourceId, filekey: e.relativeId, }, }) : "practice" === e.resourceType ? e.relativeId && (window.location.href = "/online_work/index.html?workId=" .concat(e.relativeId, "&courseId=") .concat(this.courseId)) : "assignment" === e.resourceType ? e.relativeId && (window.location.href = "/course_work/index.html?workId=" .concat(e.relativeId, "&workType=") .concat(e.resourceType, "&courseId=") .concat(this.courseId)) : "activity" === e.resourceType ? console.log(e.resourceType, e) : console.log(e); }, }, }, Q = "dotNet_api" === a["a"].apiPrefix ? B : U, j = Q, q = { name: "CourseCatalog", components: { Collapse: R["a"], CollapseItem: E["a"], Empty: D["a"], Skeleton: O["a"], }, data: function () { return { courseId: "", initLoading: !0, activeChapters: [], modules: [], chapters: {}, resources: {}, }; }, mixins: [j], mounted: function () { this.$route.query.courseId && (this.courseId = this.$route.query.courseId), this.courseId && this.getStuCourseCatalog(); }, activated: function () { this.courseId && this.getStuCourseCatalog(); }, }, z = q, H = (i("0b06"), Object(u["a"])(z, L, k, !1, null, "63ca1672", null)), W = H.exports, V = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i("div", { staticClass: "aiAssistantWrap" }, [ i("iframe", { staticStyle: { width: "100%", height: "72vh" }, attrs: { src: e.src, frameborder: "0" }, }), ]); }, G = [], J = (i("7db0"), i("aa6a")), K = { name: "AiAssistant", data: function () { return { src: "" }; }, mounted: function () { this.srcFn(); }, methods: { srcFn: function () { var e = "https://kd.chatedu.jiaxutech.com/chat_open_edu/#/app?courseopenid=q0f-avmwwztlwkv9txlarw", t = Object(J["d"])(), i = this.idToCode(t.courseId), o = "310_" + this.$getItem("userInfo").employeeNum, s = "" .concat(e, "&student_no=") .concat(o, "&role=student&course_id=") .concat(i); this.src = s; }, idToCode: function (e) { var t = this.$getItem("studyCourseList"), i = t.find(function (t) { return t.id == e; }); return i ? i.courseCode : ""; }, }, }, Z = K, Y = Object(u["a"])(Z, V, G, !1, null, null, null), _ = Y.exports, X = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i("div", { staticClass: "learnPlanWrap" }, [ 0 == e.list.length ? i("span", [e._v("暂无数据...")]) : i("pre", [e._v(e._s(e.list[0].learning_planning))]), ]); }, $ = [], ee = i("1da1"), te = (i("96cf"), i("bc3a")), ie = i.n(te), oe = { name: "LearnPlan", data: function () { return { list: [] }; }, mounted: function () { this.getData(); }, methods: { getData: function () { var e = this; return Object(ee["a"])( regeneratorRuntime.mark(function t() { var i, o, s, a, n, r; return regeneratorRuntime.wrap(function (t) { while (1) switch ((t.prev = t.next)) { case 0: return ( (i = "https://kd.chatedu.jiaxutech.com/service/query?t=aigc_course&w[courseOpenId]"), (o = Object(J["d"])()), (s = o.courseId), (a = e.idToCode(o.courseId)), (n = "" .concat(i, "=") .concat( s, "&x-token=n1iqagkwuo1lvm0iqy2s4g&limit=1&order=asc&course_id=" ) .concat(a)), (t.next = 7), ie.a.get(n) ); case 7: (r = t.sent), 200 == r.status && 200 == r.data.code && (e.list = r.data.data.list || []); case 9: case "end": return t.stop(); } }, t); }) )(); }, idToCode: function (e) { var t = this.$getItem("studyCourseList"), i = t.find(function (t) { return t.id == e; }); return i ? i.courseCode : ""; }, }, }, se = oe, ae = (i("e411"), Object(u["a"])(se, X, $, !1, null, "268773bc", null)), ne = ae.exports, re = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i("div", { staticClass: "knowledgeOrganizationWrap" }, [ 0 == e.list.length ? i("span", [e._v("暂无数据...")]) : i("pre", [e._v(e._s(e.list[0].knowledge_agenda))]), ]); }, ce = [], le = { name: "KnowledgeOrganization", data: function () { return { list: [] }; }, mounted: function () { this.getData(); }, methods: { getData: function () { var e = this; return Object(ee["a"])( regeneratorRuntime.mark(function t() { var i, o, s, a, n, r; return regeneratorRuntime.wrap(function (t) { while (1) switch ((t.prev = t.next)) { case 0: return ( (i = "https://kd.chatedu.jiaxutech.com/service/query?t=aigc_course&w[courseOpenId]"), (o = Object(J["d"])()), (s = o.courseId), (a = e.idToCode(o.courseId)), (n = "" .concat(i, "=") .concat( s, "&x-token=n1iqagkwuo1lvm0iqy2s4g&limit=1&order=asc&course_id=" ) .concat(a)), (t.next = 7), ie.a.get(n) ); case 7: (r = t.sent), 200 == r.status && 200 == r.data.code && (e.list = r.data.data.list || []); case 9: case "end": return t.stop(); } }, t); }) )(); }, idToCode: function (e) { var t = this.$getItem("studyCourseList"), i = t.find(function (t) { return t.id == e; }); return i ? i.courseCode : ""; }, }, }, ue = le, de = (i("e067"), Object(u["a"])(ue, re, ce, !1, null, "3abb409f", null)), pe = de.exports, he = { name: "CourseDetail", components: { PageLayout: y["a"], VideoPlayer: I["a"], CourseDetailBottomNav: P, CourseCatalog: W, Tab: g["a"], Tabs: m["a"], AiAssistant: _, LearnPlan: ne, KnowledgeOrganization: pe, }, data: function () { return { courseId: "", courseName: "", courseVideo: "", courseCover: i("09d7"), active: 0, isEnableAI: !1, }; }, created: function () { var e = this.$route.query || {}; (this.courseId = e.courseId || ""), this.courseId && this.getCourseName(); }, methods: { getCourseName: function () { var e = this; Object(v["b"])(this.courseId, function (t) { (e.courseName = t.courseName), t.courseVideo && (e.courseVideo = t.courseVideo), t.previewVideo && (e.courseVideo = t.previewVideo), t.courseCover && (e.courseCover = t.courseCover); }); }, isEnableAIStatus: function (e) { this.isEnableAI = e; }, }, }, fe = he, me = (i("7950"), Object(u["a"])(fe, h, f, !1, null, "1731081b", null)), ge = me.exports, ve = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "PageLayout", { attrs: { title: e.courseName } }, [ e.initLoading ? i("Skeleton", { staticClass: "skeleton-area", staticStyle: { padding: "20px" }, attrs: { row: 3, loading: e.initLoading }, }) : i( "div", { staticStyle: { "background-color": "#fff", margin: "0px 10px", }, }, [ i( "Tabs", { staticStyle: { "margin-top": "10px" }, attrs: { color: "#4f44d1" }, model: { value: e.activeTab, callback: function (t) { e.activeTab = t; }, expression: "activeTab", }, }, [ i("Tab", { attrs: { title: "本校教师补充资源", name: "local" }, }), i("Tab", { attrs: { title: "分校教师补充资源", name: "others", }, }), ], 1 ), "local" === e.activeTab ? i( "div", [ e.localDataList.length > 0 ? i( "CellGroup", e._l(e.localDataList, function (t) { return i("Cell", { key: t.id, staticClass: "cell-item", attrs: { title: t.resourceName, value: t._docType, label: t.teacher + " " + t.school, }, on: { click: function (i) { return e.showResInfo(t); }, }, }); }), 1 ) : i("div", { staticClass: "no-data" }, [ e._v(" 暂无相关资源 "), ]), ], 1 ) : e._e(), "others" === e.activeTab ? i( "div", [ e.othersDataList.length > 0 ? i( "CellGroup", e._l(e.othersDataList, function (t) { return i("Cell", { key: t.id, staticClass: "cell-item", attrs: { title: t.resourceName, value: t._docType, label: t.teacher + " " + t.school, }, on: { click: function (i) { return e.showResInfo(t); }, }, }); }), 1 ) : i("div", { staticClass: "no-data" }, [ e._v(" 暂无相关资源 "), ]), ], 1 ) : e._e(), ], 1 ), i("CourseDetailBottomNav", { attrs: { slot: "bottom" }, slot: "bottom", }), i( "Popup", { staticStyle: { height: "100%" }, attrs: { position: "bottom", "get-container": "#app" }, model: { value: e.showDetail, callback: function (t) { e.showDetail = t; }, expression: "showDetail", }, }, [ i("div", { staticClass: "top-nav" }, [ i( "span", { staticClass: "back-icon", on: { click: e.closeModel } }, [ i("Icon", { attrs: { name: "arrow-left", size: "24" }, }), ], 1 ), i("span", [e._v("资源详情")]), ]), "word" === e.previewType || "ppt" === e.previewType || "excel" === e.previewType || "pdf" === e.previewType ? i("div", [ i("iframe", { staticStyle: { width: "100%", height: "100vh" }, attrs: { src: e.viewPath, frameborder: "0" }, }), ]) : "video" === e.previewType ? i( "div", { staticClass: "player-wrapper" }, [i("VideoPlayer", { attrs: { source: e.viewPath } })], 1 ) : i( "div", [ i("Empty", { attrs: { description: "不支持该资源预览, 请至PC端下载学习", }, }), ], 1 ), ] ), ], 1 ); }, ye = [], Ie = (i("c3a6"), i("ad06")), Ce = (i("8a58"), i("e41f")), Ae = (i("c194"), i("7744")), we = (i("0653"), i("34e9")), be = (i("d81d"), i("1276"), { methods: { getCourseName: function () { var e = this; Object(v["b"])(this.courseId, function (t) { (e.courseName = t.courseName), (e.mergeCourseMainId = t.mergeCourseMainId), e.getAllData(); }); }, getAllData: function () { var e = this; this.$API("getCourseResourceList", { courseId: this.courseId, fromType: "local", mincourseId: this.mergeCourseMainId || this.courseId, }) .then(function (t) { if ("0" === t.code) { var i = t.data || []; "[object Array]" === Object.prototype.toString.call(i) && (e.localDataList = e.parseData(i)); } }) .finally(function () { e.initLoading = !1; }), this.$API("getCourseResourceList", { courseId: this.courseId, fromType: "others", mincourseId: this.mergeCourseMainId || this.courseId, }).then(function (t) { if ("0" === t.code) { var i = t.data || []; "[object Array]" === Object.prototype.toString.call(i) && (e.othersDataList = e.parseData(i)); } }); }, parseData: function (e) { return e.map(function (e) { var t; return { id: e.id, courseName: e.courseName, resourceName: e.resouceName, cover: e.cover, school: e.school, teacher: e.teacher, resourceType: e.resourceType, resourceUrl: e.resourceUrl, _docType: (null === (t = e.resourceUrl) || void 0 === t ? void 0 : t.split(".")[1]) || "附件", }; }); }, showResInfo: function (e) { var t = e.resourceUrl; (this.previewType = this.getPerviewDocType(t)), this.getWordPreview(t), (this.showDetail = !0); }, getPerviewDocType: function (e) { var t = "other", i = e.replace("doc/a@", ""); return ( (t = i.indexOf("doc") >= 0 ? "word" : i.indexOf("ppt") >= 0 || i.indexOf("pps") >= 0 ? "ppt" : i.indexOf("xls") >= 0 ? "excel" : i.indexOf("pdf") >= 0 ? "pdf" : i.indexOf("mp4") >= 0 ? "video" : i.indexOf("mp3") >= 0 || i.indexOf("m4a") >= 0 ? "audio" : i.indexOf("jpg") >= 0 || i.indexOf("jpeg") >= 0 || i.indexOf("png") >= 0 || i.indexOf("gif") >= 0 || i.indexOf("bmp") >= 0 ? "img" : "other"), t ); }, getWordPreview: function (e) { var t = e.replace("doc/a@", ""); "word" === this.previewType ? (this.viewPath = "//aia.shou.org.cn/wv/wordviewerframe.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( t )) : "ppt" === this.previewType ? (this.viewPath = "//aia.shou.org.cn/p/PowerPointFrame.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( t )) : "excel" === this.previewType ? (this.viewPath = "//aia.shou.org.cn/x/_layouts/xlviewerinternal.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( t )) : "pdf" === this.previewType ? (this.viewPath = "/pdfview/web/viewer.html?pdfLink=https://ldoc.shou.org.cn/".concat( e )) : "video" === this.previewType && (this.viewPath = "//ldoc.shou.org.cn/".concat(e)); }, }, }), Te = { methods: { getCourseName: function () { var e = this; Object(v["b"])(this.courseId, function (t) { e.courseName = t.courseName; }), this.getAllData(); }, getAllData: function () { var e = this; this.$API("getCourseResourceList", { courseId: this.courseId, isSelf: "1", }) .then(function (t) { if ("0" === t.code) { var i = t.data || []; "[object Array]" === Object.prototype.toString.call(i) && (e.localDataList = e.parseData(i)); } }) .finally(function () { e.initLoading = !1; }), this.$API("getCourseResourceList", { courseId: this.courseId, isSelf: "0", }).then(function (t) { if ("0" === t.code) { var i = t.data || []; "[object Array]" === Object.prototype.toString.call(i) && (e.othersDataList = e.parseData(i)); } }); }, parseData: function (e) { return e.map(function (e) { return { id: e.uid, courseName: e.courseName, resourceName: e.resourceName, cover: e.cover, school: e.subSchoolName, teacher: e.teacherName, resourceType: e.resType, resourceUrl: e.fileUuid, _docType: e.resType, }; }); }, showResInfo: function (e) { var t = e.resourceUrl, i = e.resourceType; (this.previewType = this.getPerviewDocType(i)), this.getWordPreview(t), (this.showDetail = !0); }, getPerviewDocType: function (e) { var t = "other", i = e.replace("doc/a@", ""); return ( (t = i.indexOf("doc") >= 0 ? "word" : i.indexOf("ppt") >= 0 || i.indexOf("pps") >= 0 ? "ppt" : i.indexOf("xls") >= 0 ? "excel" : i.indexOf("pdf") >= 0 ? "pdf" : i.indexOf("mp4") >= 0 ? "video" : i.indexOf("mp3") >= 0 || i.indexOf("m4a") >= 0 ? "audio" : i.indexOf("jpg") >= 0 || i.indexOf("jpeg") >= 0 || i.indexOf("png") >= 0 || i.indexOf("gif") >= 0 || i.indexOf("bmp") >= 0 ? "img" : "other"), t ); }, getWordPreview: function (e) { var t = this; this.$API("getCourseFileDetail", { courseId: this.courseId, fileUuid: e, }).then(function (e) { if ("0" === e.code) { var i = e.data || {}; if (i.viewPath) { var o = (i.filePath || "").indexOf("doc/a@") >= 0; "word" === t.previewType || "ppt" === t.previewType || "excel" === t.previewType ? (t.viewPath = o ? i.viewPath : "//view.officeapps.live.com/op/view.aspx?src=".concat( i.viewPath )) : "pdf" === t.previewType && i.filePath ? (t.viewPath = o ? "/pdfview/web/viewer.html?pdfLink=https://ldoc.shou.org.cn/".concat( i.filePath ) : "/pdfview/web/viewer.html?pdfLink=".concat( i.viewPath )) : (t.viewPath = i.viewPath); } else t.viewPath = ""; } else F["a"].fail(e.message || "获取资源信息异常"); }); }, }, }, Se = "dotNet_api" === a["a"].apiPrefix ? be : Te, xe = Se, Pe = { name: "Resources", components: { Tabs: m["a"], Tab: g["a"], CellGroup: we["a"], Cell: Ae["a"], Skeleton: O["a"], PageLayout: y["a"], Popup: Ce["a"], Empty: D["a"], Icon: Ie["a"], VideoPlayer: I["a"], CourseDetailBottomNav: P, }, data: function () { return { initLoading: !0, showDetail: !1, courseId: "", courseName: "", activeTab: "local", previewType: "", viewPath: "", localDataList: [], othersDataList: [], }; }, mixins: [xe], created: function () { var e = this.$route.query || {}; (this.courseId = e.courseId || ""), this.courseId && this.getCourseName(); }, methods: { closeModel: function () { (this.showDetail = !1), (this.previewType = ""), (this.viewPath = ""); }, }, }, Le = Pe, ke = (i("6cd1"), Object(u["a"])(Le, ve, ye, !1, null, "0249c606", null)), Oe = ke.exports, De = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i("PageLayout", { attrs: { cb: e.cb, title: e.resName } }, [ e.isLoading ? i( "div", { staticStyle: { "text-align": "center", padding: "20px" } }, [ i("Loading", { attrs: { type: "spinner", color: "#1989fa" }, }), ], 1 ) : e.noResource ? i( "div", [i("Empty", { attrs: { description: "未找到对应的资源" } })], 1 ) : e.previewType ? i( "div", [ "video" === e.previewType ? i( "div", { staticClass: "player-wrapper" }, [ i("VideoPlayer", { ref: "player", attrs: { source: e.viewPath, "last-play-time": e.lastVideoEndTime, highlight: e.highlights, }, on: { pauseAtHighlight: e.pauseAtHighlight, playTimeUpdate: e.playTimeUpdate, }, }), ], 1 ) : "audio" === e.previewType ? i( "div", [ i("AudioPlayer", { attrs: { source: e.viewPath, "audio-title": e.resName, }, on: { playTimeUpdate: e.playTimeUpdate }, }), ], 1 ) : "img" === e.previewType ? i("div", { staticClass: "img-wrapper" }, [ i("img", { attrs: { src: e.viewPath }, on: { click: e.showImg }, }), ]) : "word" === e.previewType || "ppt" === e.previewType || "excel" === e.previewType || "html" === e.previewType || "pdf" === e.previewType ? i("div", [ i("iframe", { staticStyle: { width: "100%", height: "60vh" }, attrs: { src: e.viewPath, frameborder: "0" }, }), ]) : i( "div", [ i("Empty", { attrs: { description: "不支持该资源预览, 请至PC端学习", }, }), ], 1 ), e.previewType && "other" !== e.previewType ? i("CommentList", { attrs: { "course-id": e.courseId, "res-id": e.resId, "prop-comment-list": e.comments, "prop-tag-list": e.tags, "is-collect": e.isCollect, }, on: { doRefresh: e.refreshItems }, }) : e._e(), e.showQuestion ? i("PopupQuestion", { attrs: { "show-modal": e.showQuestion, "question-info": e.questionInfo, }, on: { closeQuestion: e.closeQuestion }, }) : e._e(), ], 1 ) : e._e(), ]); }, Ee = [], Re = (i("4662"), i("28a2")), Fe = (i("ac1e"), i("543e")), Ne = (i("25f0"), i("2613")), Me = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "div", { staticClass: "comment-area" }, [ i( "span", { staticClass: "collect-icon", on: { click: function (t) { return ( t.stopPropagation(), e.doCollectRes.apply(null, arguments) ); }, }, }, [ e.hasCollected ? i("Icon", { attrs: { name: "star", color: "#ffd21e" } }) : i("Icon", { attrs: { name: "star-o", color: "#323233" }, }), ], 1 ), i( "Tabs", { staticStyle: { "margin-top": "10px" }, attrs: { color: "#4f44d1" }, model: { value: e.activeTab, callback: function (t) { e.activeTab = t; }, expression: "activeTab", }, }, [ i("Tab", { attrs: { title: "评论", name: "comments" } }), i("Tab", { attrs: { title: "标签", name: "tags" } }), ], 1 ), "comments" === e.activeTab ? i( "List", { attrs: { finished: e.isCommentEnd, "immediate-check": !1, "finished-text": "没有更多评论", }, on: { load: e.onLoadComment }, model: { value: e.isLoadingMore, callback: function (t) { e.isLoadingMore = t; }, expression: "isLoadingMore", }, }, e._l(e.commentList, function (t, o) { return i("Cell", { key: t.uid, staticClass: "card-cell", scopedSlots: e._u( [ { key: "title", fn: function () { return [ i("div", { staticClass: "card-title" }, [ i("span", { staticClass: "user-info" }, [ i("span", { staticClass: "user-name" }, [ e._v(e._s(t.userName)), ]), i("br"), i( "span", { staticStyle: { color: "#969799" } }, [e._v("(" + e._s(t.userId) + ")")] ), ]), i( "span", { staticClass: "time-info" }, [ e._v(" " + e._s(t.createTime) + " "), i("br"), i("Rate", { attrs: { value: t.startLevel ? t.startLevel : 0, size: 12, readonly: !0, color: "#ffd21e", "void-icon": "star", "void-color": "#eee", }, }), ], 1 ), ]), ]; }, proxy: !0, }, { key: "label", fn: function () { return [ i("div", { staticClass: "comment-detail" }, [ i( "div", { staticClass: "comment-content" }, [ i("span", { domProps: { innerHTML: e._s(t.content), }, }), ] ), e.showReply ? i( "div", { staticClass: "reply-btns" }, [ i("span", { staticClass: "comment-icon icon-btn", on: { click: function (i) { return e.doReply(t); }, }, }), i( "Badge", { attrs: { content: t.likedCount, max: "99", }, }, [ t.likedStatus ? i("span", { staticClass: "liked-icon icon-btn", on: { click: function (i) { return e.doLike(t, o); }, }, }) : i("span", { staticClass: "like-icon icon-btn", on: { click: function (i) { return e.doLike(t, o); }, }, }), ] ), ], 1 ) : e._e(), t.childComment && t.childComment.length > 0 ? i( "div", { staticClass: "reply-area" }, e._l(t.childComment, function (t) { return i("ReplyItem", { key: t.uid, attrs: { "reply-item": t, "show-reply": e.showReply, }, on: { doReply: function (i) { return e.doReply(t); }, }, }); }), 1 ) : e._e(), ]), ]; }, proxy: !0, }, ], null, !0 ), }); }), 1 ) : "tags" === e.activeTab ? i( "div", { staticClass: "tag-area" }, [ e.tagList.length <= 0 ? i( "div", { staticStyle: { color: "#969799", "font-size": "14px", "line-height": "50px", "text-align": "center", }, }, [e._v("点击+添加标签")] ) : e._l(e.tagList, function (t, o) { return i( "Tag", { key: o, staticStyle: { "margin-bottom": "8px", "margin-right": "8px", "font-size": "14px", }, attrs: { size: "medium", color: "#7c7f84a1" }, on: { click: function (i) { return e.addSameTag(t, o); }, }, }, [e._v(" " + e._s(t) + " ")] ); }), i( "DialogItem", { attrs: { title: "标签", "show-cancel-button": "", confirmButtonText: "确定", confirmButtonColor: "#5682d4", beforeClose: e.tagClose, }, model: { value: e.tagDialog, callback: function (t) { e.tagDialog = t; }, expression: "tagDialog", }, }, [ i( "div", { staticStyle: { padding: "0 10px" } }, [ i("Field", { staticClass: "field-input", model: { value: e.tagInfo.content, callback: function (t) { e.$set( e.tagInfo, "content", "string" === typeof t ? t.trim() : t ); }, expression: "tagInfo.content", }, }), ], 1 ), ] ), ], 2 ) : e._e(), i( "span", { staticClass: "add-btn", on: { click: e.doAddNew } }, [i("Icon", { attrs: { name: "plus", size: "24" } })], 1 ), i( "Popup", { staticStyle: { height: "90%", "padding-top": "4px" }, attrs: { round: "", position: "bottom", "get-container": "#app", }, model: { value: e.showModal, callback: function (t) { e.showModal = t; }, expression: "showModal", }, }, [ i( "div", { staticClass: "popup-content" }, [ i("p", { staticClass: "popup-title" }, [ e._v(e._s(e.editForm.title)), ]), "reply" !== e.editType ? i( "div", { staticClass: "input-item" }, [ i( "span", { staticClass: "input-label", staticStyle: { "margin-right": "10px" }, }, [e._v("资源评分:")] ), i("Rate", { attrs: { size: 24, color: "#ffd21e", "void-icon": "star", "void-color": "#eee", }, model: { value: e.editForm.startLevel, callback: function (t) { e.$set(e.editForm, "startLevel", t); }, expression: "editForm.startLevel", }, }), ], 1 ) : e._e(), i( "div", { staticClass: "input-item" }, [ i("Field", { staticClass: "field-input", attrs: { rows: "3", autosize: "", type: "textarea", placeholder: "评价内容", }, model: { value: e.editForm.content, callback: function (t) { e.$set( e.editForm, "content", "string" === typeof t ? t.trim() : t ); }, expression: "editForm.content", }, }), ], 1 ), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "", type: "info", loading: e.isSendData, "loading-text": "提交中...", }, on: { click: e.submitComment }, }, [e._v("提交")] ), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "" }, on: { click: e.cancelPopup }, }, [e._v("取消")] ), ], 1 ), ] ), ], 1 ); }, Be = [], Ue = (i("5f1a"), i("a3e2")), Qe = (i("18e9"), i("471a")), je = (i("66b9"), i("b650")), qe = (i("be7f"), i("565f")), ze = (i("4142"), i("39d1")), He = (i("2994"), i("2bdd")), We = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "div", [ i("div", { staticClass: "reply-item" }, [ i("div", { staticClass: "reply-title" }, [ i("span", { staticClass: "user-info" }, [ i("span", { staticClass: "user-name" }, [ e._v(e._s(e.replyItem.userName)), ]), i( "span", { staticStyle: { color: "#969799", "margin-left": "6px" }, }, [e._v("(" + e._s(e.replyItem.userId) + ")")] ), ]), i( "span", { staticStyle: { float: "right", "vertical-align": "top" }, }, [e._v(e._s(e.replyItem.createTime))] ), ]), i("div", { staticClass: "reply-content" }, [ i("span", { domProps: { innerHTML: e._s(e.replyItem.content) }, }), ]), e.showReply ? i("div", { staticClass: "reply-btns" }, [ i("span", { staticClass: "comment-icon icon-btn", on: { click: function (t) { return e.doReply(e.replyItem); }, }, }), ]) : e._e(), ]), e._l(e.replyItem.childComment, function (t) { return i("reply-item", { key: t.uid, attrs: { "reply-item": t, "show-reply": e.showReply }, on: { doReply: function (i) { return e.doReply(t); }, }, }); }), ], 2 ); }, Ve = [], Ge = { name: "ReplyItem", props: { replyItem: { type: Object, default: function () {} }, showReply: { type: Boolean, default: !1 }, }, methods: { doReply: function (e) { this.$emit("doReply", e); }, }, }, Je = Ge, Ke = (i("0913"), Object(u["a"])(Je, We, Ve, !1, null, "60caf30d", null)), Ze = Ke.exports, Ye = i("5530"), _e = i("2909"), Xe = (i("466d"), { mounted: function () { this.propCommentList ? this.translateComment() : this.courseId && this.resId && (this.isCommentEnd = !0), (this.hasCollected = this.isCollect), this.propTagList && (this.tagList = this.propTagList.map(function (e) { return e; })); }, watch: { propCommentList: function () { this.translateComment(); }, propTagList: function () { this.tagList = this.propTagList.map(function (e) { return e; }); }, }, methods: { translateComment: function () { (this.commentList = this.propCommentList.map(function (e) { return { uid: e.id, userName: e.commentUser, userId: e.commentUserId, startLevel: e.rate, createTime: e.dateTime, content: e.content, likedCount: 0, likedStatus: !1, childComment: [], }; })), (this.isCommentEnd = !0); }, getResComment: function () { var e = this, t = { courseId: this.courseId, resId: this.resId, offset: this.pageIndex, limit: this.pageSize, }; this.$API("getComments", t) .then(function (t) { var i = t.data || {}; if ("0" === i.code) { var o = (i.data || []).map(function (e) { return ( (e.startLevel = e.startLevel ? parseInt(e.startLevel, 10) : 0), e ); }); e.commentList = [].concat( Object(_e["a"])(e.commentList), Object(_e["a"])(o) ); var s = i.total || e.commentList.length; s <= e.pageSize * e.pageIndex && (e.isCommentEnd = !0); } }) .finally(function () { e.isLoadingMore = !1; }); }, onLoadComment: function () { (this.isLoadingMore = !0), this.pageIndex++, this.getResComment(); }, addSameTag: function (e, t) { var i = this; if (e) { F["a"].loading({ message: "提交数据中...", forbidClick: !0, loadingType: "spinner", duration: 0, }); var o = e.match(/\(\d+\)/); if (o && o.length > 0) { var s = o[0].replace(/\(|\)/g, ""), a = e.replace(/\s+\(\d+\)$/, ""); this.$API("addRestag", { courseId: this.courseId, cellId: this.resId, tag: a, }) .then(function (e) { if ("0" === e.code) { var o = parseInt(s) + 1, n = "".concat(a, " (").concat(o, ")"); i.tagList.splice(t, 1, n); } }) .finally(function () { F["a"].clear(); }); } } }, tagClose: function (e, t) { var i = this; if ("confirm" === e && this.tagInfo.content) { var o = this.tagInfo.content; this.$API("addRestag", { courseId: this.courseId, cellId: this.resId, tag: o, }) .then(function (e) { "0" === e.code && (i.tagList.splice(0, 0, o), F["a"].success("标签已添加")); }) .finally(function () { t(); }); } else t(); this.$nextTick(function () { (i.tagInfo.id = ""), (i.tagInfo.content = ""); }); }, submitComment: function () { var e = this; if (!this.editForm.content) return F["a"].fail("评论内容不能为空"), !1; var t = { courseId: this.courseId, cellId: this.resId }; "reply" === this.editType ? ((t.puid = this.editForm.puid), (t.content = "" .concat(this.editForm.title, " ") .concat(this.editForm.content))) : ((t.rate = this.editForm.startLevel), (t.content = this.editForm.content)), (this.isSendData = !0), this.$API("addResComment", t) .then(function (t) { if ("0" === t.code) { F["a"].success("评论成功"), e.cancelPopup(); var i = (t.data || {}).usercomments || [], o = i.map(function (e) { return e.id; }), s = e.commentList.filter(function (e) { return o.indexOf(e.uid) < 0; }); i.map(function (e) { s.splice(0, 0, { uid: e.id, userName: e.commentUser, userId: e.commentUserId, startLevel: e.rate, createTime: e.dateTime, content: e.content, likedCount: 0, likedStatus: !1, childComment: [], }); }), (e.commentList = s); } else F["a"].fail(t.message); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }) .finally(function () { e.isSendData = !1; }); }, doCollectRes: function () { var e = this, t = this.hasCollected ? "cancelCollectRes" : "doCollectRes", i = this.hasCollected ? "取消收藏" : "收藏"; this.$API(t, { id: this.resId }) .then(function (t) { "0" === t.code ? (F["a"].success("".concat(i, "成功")), (e.hasCollected = !e.hasCollected)) : F["a"].fail(t.message || "".concat(i, "失败")); }) .catch(function (e) { F["a"].fail(e.toString() || "".concat(i, "失败")); }); }, doLike: function (e) { if (e.likedStatus) return F["a"].fail("您已经点赞了"), !1; }, }, }), $e = { watch: { propCommentList: function () { this.translateComment(); }, propTagList: function () { this.tagList = this.propTagList.map(function (e) { return e; }); }, }, mounted: function () { this.propCommentList ? this.translateComment() : this.courseId && this.resId && (this.isCommentEnd = !0), this.checkHasCollectedRes(), this.propTagList && (this.tagList = this.propTagList.map(function (e) { return e; })); }, methods: { translateComment: function () { (this.commentList = this.propCommentList.map(function (e) { return Object(Ye["a"])({}, e); })), (this.isCommentEnd = !0), (this.showReply = !0); }, getResComment: function () {}, onLoadComment: function () {}, addSameTag: function (e, t) { console.log(e, t); }, tagClose: function (e, t) { var i = this; if ("confirm" === e && this.tagInfo.content) { var o = this.tagInfo.content; this.$API("addRestag", { courseId: this.courseId, resId: this.resId, tagContent: o, }) .then(function (e) { "0" === e.code && (i.$emit("doRefresh", "resTag"), F["a"].success("标签已添加")); }) .finally(function () { t(); }); } else t(); this.$nextTick(function () { (i.tagInfo.id = ""), (i.tagInfo.content = ""); }); }, submitComment: function () { var e = this; if (!this.editForm.content) return F["a"].fail("评论内容不能为空"), !1; this.isSendData = !0; var t = { courseId: this.courseId, resourceId: this.resId, plateTag: "3", }; "reply" === this.editType ? ((t.postName = "" .concat(this.editForm.title, " ") .concat(this.editForm.content)), (t.puid = this.editForm.puid)) : ((t.postName = this.editForm.content), (t.startLevel = this.editForm.startLevel)); var i = "reply" === this.editType ? "addCommentReply" : "addComment"; this.$API(i, t) .then(function (t) { "0" === t.code ? (F["a"].success("评论成功"), e.cancelPopup(), e.$emit("doRefresh", "comment")) : F["a"].fail(t.message); }) .finally(function () { e.isSendData = !1; }); }, checkHasCollectedRes: function () { var e = this; this.$API("checkHasCollectedRes", { resActId: this.resId }).then( function (t) { "0" === t.code && !0 === t.data ? (e.hasCollected = !0) : (e.hasCollected = !1); } ); }, doCollectRes: function () { var e = this, t = this.hasCollected ? "cancelCollectRes" : "doCollectRes", i = this.hasCollected ? "取消收藏" : "收藏"; this.$API(t, { resActId: this.resId, courseId: this.courseId }) .then(function (t) { "0" === t.code ? (F["a"].success("".concat(i, "成功")), (e.hasCollected = !e.hasCollected)) : F["a"].fail(t.message || "".concat(i, "失败")); }) .catch(function (e) { F["a"].fail(e.toString() || "".concat(i, "失败")); }); }, doLike: function (e, t) { var i = this; if (e.likedStatus) return F["a"].fail("您已经点赞了"), !1; this.$API("addBBsLike", { commentId: e.uid }) .then(function (o) { "0" === o.code ? (F["a"].success("点赞成功"), (e.likedStatus = !0), (e.likedCount += 1), i.commentList.splice(t, 1, e)) : F["a"].fail(o.message || "点赞失败"); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }); }, }, }, et = "dotNet_api" === a["a"].apiPrefix ? Xe : $e, tt = et, it = N["a"].Component, ot = { name: "CommentList", components: { List: He["a"], Cell: Ae["a"], Rate: ze["a"], Icon: Ie["a"], Popup: Ce["a"], Field: qe["a"], Button: je["a"], Badge: Qe["a"], Tabs: m["a"], Tab: g["a"], Tag: Ue["a"], DialogItem: it, ReplyItem: Ze, }, props: { courseId: { type: String, default: "" }, propCommentList: { type: Array, default: function () { return []; }, }, propTagList: { type: Array, default: function () { return []; }, }, resId: { type: String, default: "" }, isCollect: { type: Boolean, default: !1 }, }, data: function () { return { isLoadingMore: !1, isCommentEnd: !1, hasCollected: !1, showModal: !1, showReply: !1, commentList: [], tagList: [], pageIndex: 1, pageSize: 10, activeTab: "comments", editType: "new", editForm: { startLevel: 0, content: "", puid: "", title: "新增评论", }, isSendData: !1, tagDialog: !1, tagInfo: { id: "", content: "" }, }; }, mixins: [tt], methods: { doAddNew: function () { "comments" === this.activeTab ? ((this.editType = "new"), (this.showModal = !0)) : "tags" === this.activeTab && (this.tagDialog = !0); }, cancelPopup: function () { (this.showModal = !1), (this.editForm = { startLevel: 0, content: "", puid: "", title: "新增评论", }), (this.editType = ""); }, doReply: function (e) { var t = e.uid; (this.editForm.puid = t), (this.editForm.title = "回复: " + e.userName), (this.editType = "reply"), (this.showModal = !0); }, }, }, st = ot, at = (i("05ba"), Object(u["a"])(st, Me, Be, !1, null, "050ca55c", null)), nt = at.exports, rt = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "Popup", { staticStyle: { height: "90%", "padding-top": "4px" }, attrs: { round: "", position: "bottom", "get-container": "#app", "close-on-click-overlay": !1, }, model: { value: e.isOPen, callback: function (t) { e.isOPen = t; }, expression: "isOPen", }, }, [ i( "div", { staticClass: "popup-content" }, [ i("QuestionTitle", { attrs: { title: e.questionInfo.questionTitle }, }), i("QuestionOptions", { ref: "questionOption", attrs: { "question-type": e.questionInfo.questionType, optionsArr: e.questionInfo.options, }, }), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "", type: "info" }, on: { click: e.doSaveQA }, }, [e._v("提交")] ), ], 1 ), ] ); }, ct = [], lt = i("d23f"), ut = i("8d27"), dt = { name: "PopupQuestion", components: { Popup: Ce["a"], Button: je["a"], QuestionTitle: lt["a"], QuestionOptions: ut["a"], }, props: { showModal: { type: Boolean, default: !1 }, questionInfo: { type: Object, default: function () { return { options: [], is_replay: !1, questionId: "", questionTitle: "", questionType: "", rightAnswer: "", showAtSeconds: 0, }; }, }, }, data: function () { return { isOPen: !1 }; }, mounted: function () { this.isOPen = this.showModal; }, methods: { doSaveQA: function () { var e = this; if (this.$refs.questionOption) { var t = this.$refs.questionOption.getUserAnswer(); t ? this.questionInfo.rightAnswer ? this.questionInfo.rightAnswer === t ? (Object(F["a"])("回答正确"), this.$emit("closeQuestion")) : this.questionInfo.is_replay ? Object(F["a"])({ message: "回答错误, 即将回放视频", onClose: function () { e.$emit("closeQuestion", !0); }, }) : (Object(F["a"])("回答错误"), this.$emit("closeQuestion")) : this.$emit("closeQuestion") : Object(F["a"])("请完成答题"); } else this.$emit("closeQuestion"); }, }, }, pt = dt, ht = (i("bcf8"), Object(u["a"])(pt, rt, ct, !1, null, "8fdf6970", null)), ft = ht.exports, mt = { methods: { getResDetail: function () { var e = this; this.$API("getCourseFileDetail", { courseId: this.courseId, resId: this.resId, }) .then(function (t) { if ("0" === t.code) { var i = t.data || {}; i.resouceName && (e.resName = i.resouceName), i.topicId && (e.topicId = i.topicId), i.lastVideoEndTime && (e.lastVideoEndTime = i.lastVideoEndTime), i.cellQuestions && e.setVideoQuestion(i.cellQuestions), (e.comments = i.comments || []), (e.tags = i.tags || []), (e.isCollect = i.isCollect || !1), !e.filekey && i.resourceUrl && ((e.filekey = i.resourceUrl), e.getResPreviewInfo()); } else (e.noResource = !0), (e.isLoading = !1), F["a"].fail(t.message || "获取资源信息异常"); }) .catch(function (t) { (e.noResource = !0), (e.isLoading = !1), F["a"].fail(t.toString() || "unknown error"); }); }, getResPreviewInfo: function () { var e = this; this.$API("getResPreviewInfo", { filekey: this.filekey }) .then(function (t) { if ("0" === t.code) { var i = t.data || {}, o = i.extension, s = i.category; if ("office" === s) (e.previewType = e.getPerviewDocType(o)), e.getWordPreview(i); else if ("img" === s) { var a; (e.previewType = "img"), (e.viewPath = null === (a = i.urls) || void 0 === a ? void 0 : a.preview); } else if ("mp3" === s) { var n; (e.previewType = "audio"), (e.viewPath = null === (n = i.urls) || void 0 === n ? void 0 : n.preview); } else if ("video" === s) { var r; (e.previewType = "video"), (e.viewPath = null === (r = i.urls) || void 0 === r ? void 0 : r.preview); } else if ("ziph" === s) { var c; e.previewType, (e.viewPath = null === (c = i.urls) || void 0 === c ? void 0 : c.preview); } else e.previewType = "other"; "audio" !== e.previewType && "video" !== e.previewType && "other" !== e.previewType && e.addResourceViewTime(); } }) .finally(function () { e.isLoading = !1; }); }, getWordPreview: function (e) { var t = this.filekey.replace("doc/a@", ""); if ("word" === this.previewType) this.viewPath = "//aia.shou.org.cn/wv/wordviewerframe.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( t ); else if ("ppt" === this.previewType) this.viewPath = "//aia.shou.org.cn/p/PowerPointFrame.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( t ); else if ("excel" === this.previewType) this.viewPath = "//aia.shou.org.cn/x/_layouts/xlviewerinternal.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( t ); else if ("pdf" === this.previewType) { var i, o = null === (i = e.urls) || void 0 === i ? void 0 : i.preview; o && (this.viewPath = "/pdfview/web/viewer.html?pdfLink=".concat( o )); } }, addResourceViewTime: function () { var e = this, t = Object(J["c"])(), i = { viewStartTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), videoStartTime: 0, cellID: this.resId, sourceType: "IOS" === t ? 3 : 2, }; this.timeCount = setTimeout(function () { (i.viewEndTime = dayjs().format("YYYY-MM-DD HH:mm:ss")), (i.videoEndTime = 0), e.submitViewTime(i), e.addResourceViewTime(); }, 6e4); }, submitViewTime: function (e) { this.$API("addResStudyTime", e) .then(function (e) { "0" != e.code && F["a"].fail( e.message || "资源学习记录错误,请刷新页面重试" ); }) .catch(function (e) { F["a"].fail( e.toString() || "资源学习记录错误,请刷新页面重试" ); }); }, refreshItems: function () {}, }, }, gt = { methods: { getResDetail: function () { this.getComments(), this.getResTagList(), this.filekey || this.getResPreviewInfo(); }, getComments: function () { var e = this; this.$API("getComments", { courseId: this.courseId, resId: this.resId, }).then(function (t) { if ("0" === t.code) { var i = t.data || []; e.comments = e.parseComments(i); } }); }, parseComments: function (e) { var t = this; return e.length > 0 ? e.map(function (e) { var i = (e.createUser || "").replace("310_", ""), o = (e.userName || "").replace(/\(.*\)/, ""); return { uid: e.uid, userName: o, userId: i, startLevel: parseInt(e.startLevel), createTime: e.createTime, content: e.postName, likedCount: e.likedCount, likedStatus: 1 === e.likedStatus || "1" === e.likedStatus, childComment: t.parseComments(e.childComment || []), }; }) : []; }, getResTagList: function () { var e = this; this.$API("getResTagList", { courseId: this.courseId, resId: this.resId, }).then(function (t) { "0" === t.code && (e.tags = (t.data || []).map(function (e) { return e.tagContent; })); }); }, refreshItems: function (e) { "comment" === e ? this.getComments() : "resTag" === e && this.getResTagList(); }, getResPreviewInfo: function () { var e = this, t = { courseId: this.courseId, resActId: this.resId }; this.filekey && (t.resId = this.filekey), this.$API("getStuCourseResDetail", t) .then(function (t) { if ("0" === t.code) { var i = t.data || {}; !e.filekey && (e.filekey = i.fileUuid), i.fileName && (e.resName = i.fileName); var o = i.filePath || "", s = i.fileType; (e.previewType = e.getPerviewDocType(s)), (e.viewPath = e.getPreviewPath(i.viewPath, o)), "audio" !== e.previewType && "video" !== e.previewType && "other" !== e.previewType && e.addResourceViewTime(); } else (e.noResource = !0), F["a"].fail(t.message || "获取资源信息异常"); }) .finally(function () { e.isLoading = !1; }); }, getPreviewPath: function (e, t) { var i = t.indexOf("doc/a@") >= 0; return "word" === this.previewType || "ppt" === this.previewType || "excel" === this.previewType ? i ? e : "//view.officeapps.live.com/op/view.aspx?src=".concat(e) : "pdf" === this.previewType ? i ? "/pdfview/web/viewer.html?pdfLink=https://ldoc.shou.org.cn/".concat( t ) : "/pdfview/web/viewer.html?pdfLink=".concat(e) : e; }, addResourceViewTime: function () { var e = this, t = Object(J["c"])(), i = { viewStartTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), videoStartTime: 0, cellID: this.resId, sourceType: "IOS" === t ? 3 : 2, }; this.timeCount = setTimeout(function () { (i.viewEndTime = dayjs().format("YYYY-MM-DD HH:mm:ss")), (i.videoEndTime = 0), e.submitViewTime(i), e.addResourceViewTime(); }, 3e4); }, submitViewTime: function (e) { var t = e.viewStartTime, i = e.viewEndTime, o = e.videoStartTime, s = e.videoEndTime, a = t ? dayjs(t).valueOf() : dayjs().valueOf(), n = i ? dayjs(i).valueOf() : dayjs().valueOf(), r = o || 0, c = s || 0, l = ""; l = "video" === this.previewType || "audio" === this.previewType ? this.previewType : "document"; var u = { resType: l, resActId: this.resId, resId: this.filekey, courseId: this.courseId, startSecond: r, endSecond: c, startTimestamp: a, endTimestamp: n, }; this.$API("addResStudyTime", u).then(function () {}); }, }, }, vt = "dotNet_api" === a["a"].apiPrefix ? mt : gt, yt = vt, It = { name: "ResourceView", components: { Loading: Fe["a"], Empty: D["a"], PageLayout: y["a"], VideoPlayer: I["a"], AudioPlayer: Ne["a"], CommentList: nt, PopupQuestion: ft, }, data: function () { return { isLoading: !0, noResource: !1, resName: "资源详情页", filekey: "", courseId: "", resId: "", topicId: "", previewType: "", viewPath: "", comments: [], tags: [], isCollect: !1, lastVideoEndTime: 0, questions: [], highlights: [], showQuestion: !1, questionInfo: {}, timeCount: null, }; }, mixins: [yt], mounted: function () { var e = Object(J["d"])(); e && e.courseId && e.resId ? ((this.courseId = e.courseId), (this.filekey = e.filekey), (this.resId = e.resId), this.resId && this.getResDetail(), this.filekey && this.getResPreviewInfo()) : ((this.isLoading = !1), (this.noResource = !0)); }, beforeDestroy: function () { this.timeCount && clearTimeout(this.timeCount); }, methods: { cb: function () { var e, t, i = this; null !== (e = this.$refs.player) && void 0 !== e && e.dpPlayer.video.paused ? console.log("暂停状态退出不发请求,播放状态退出才发请求") : null === (t = this.$refs.player) || void 0 === t || t.savePlayInfo(); return new Promise(function (e) { i.$nextTick(function () { e(!0); }); }); }, getPerviewDocType: function (e) { if (!e) return "other"; var t = "other"; return ( (t = e.indexOf("doc") >= 0 ? "word" : e.indexOf("ppt") >= 0 || e.indexOf("pps") >= 0 ? "ppt" : e.indexOf("xls") >= 0 ? "excel" : e.indexOf("pdf") >= 0 ? "pdf" : e.indexOf("mp4") >= 0 ? "video" : e.indexOf("mp3") >= 0 || e.indexOf("m4a") >= 0 ? "audio" : e.indexOf("jpg") >= 0 || e.indexOf("jpeg") >= 0 || e.indexOf("png") >= 0 || e.indexOf("gif") >= 0 || e.indexOf("bmp") >= 0 ? "img" : "other"), t ); }, playTimeUpdate: function (e) { if (0 !== e.startSecond || 0 !== e.endSecond) { var t = Object(J["c"])(), i = { viewStartTime: dayjs(e.startTimestamp).format( "YYYY-MM-DD HH:mm:ss" ), viewEndTime: dayjs(e.endTimestamp).format( "YYYY-MM-DD HH:mm:ss" ), videoStartTime: e.startSecond, videoEndTime: e.endSecond, cellID: this.resId, sourceType: "IOS" === t ? 3 : 2, Speed: e.Speed, }; this.submitViewTime(i); } else console.log("未播放不记录"); }, setVideoQuestion: function (e) { var t = this; (this.questions = e.map(function (e) { return { options: t.parseOptions(e.options), is_replay: 1 === e.is_replay || "1" === e.is_replay, questionId: e.questionId, questionTitle: e.questionTitle, questionType: e.questionType, rightAnswer: e.rightAnswer, showAtSeconds: parseFloat(e.shoutime), }; })), this.questions.length > 0 && this.setHighlight(); }, parseOptions: function (e) { var t = []; try { var i = JSON.parse(e); return ( "[object Array]" === Object.prototype.toString.call(i) && i.length > 0 && (t = i.map(function (e) { return { optionId: e.SortOrder.toString(), optionText: e.Content || e.content, }; })), t ); } catch (o) { return console.log(o.toString()), t; } }, setHighlight: function () { this.highlights = this.questions.map(function (e, t) { return { time: e.showAtSeconds, text: e.questionTitle, needPause: !0, _index: t, }; }); }, pauseAtHighlight: function (e) { if (e && e._index >= 0) { var t = Object.assign({}, this.questions[e._index]); (t._index = e._index), (this.questionInfo = t), (this.showQuestion = !0); } }, closeQuestion: function (e) { var t = this; if (e) { var i = 0; (i = 0 === this.questionInfo._index ? 0 : this.questions[this.questionInfo._index - 1] .showAtSeconds), this.$refs.player && (this.$refs.player.jumpToTime(i), this.$nextTick(function () { t.$refs.player.goOnPlay(); })); } else this.$refs.player && this.$refs.player.goOnPlay(); (this.showQuestion = !1), (this.questionInfo = {}); }, showImg: function () { Object(Re["a"])([this.viewPath]); }, }, }, Ct = It, At = (i("ba53"), Object(u["a"])(Ct, De, Ee, !1, null, "45b55266", null)), wt = At.exports, bt = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "PageLayout", { attrs: { title: e.courseName } }, [ e.initLoading ? i("Skeleton", { staticClass: "skeleton-area", staticStyle: { padding: "20px" }, attrs: { row: 3, loading: e.initLoading }, }) : i( "div", { staticClass: "content-wrapper" }, [ e._l(e.infoData, function (t) { return i( "div", { key: t.id, staticClass: "info-area" }, [ i("div", { staticClass: "info-title" }, [ i("p", [e._v(e._s(t.title))]), ]), i("div", { staticClass: "preview-area" }, [ "img" === t.previewType ? i("div", { staticClass: "img-wrapper" }, [ i("img", { attrs: { src: t.viewPath } }), ]) : "word" === t.previewType || "ppt" === t.previewType || "excel" === t.previewType || "pdf" === t.previewType ? i("div", [ i("iframe", { staticStyle: { width: "100%", height: "90vh", }, attrs: { src: t.viewPath, frameborder: "0", }, }), ]) : i("div", [e._v(" 该栏目暂不支持预览 ")]), ]), ] ); }), e.infoData.length <= 0 ? i( "div", { staticClass: "info-area", staticStyle: { padding: "20px", "background-color": "#fff", "text-align": "center", color: "#919191", }, }, [e._v(" 暂无相关信息 ")] ) : e._e(), ], 2 ), i("CourseDetailBottomNav", { attrs: { slot: "bottom" }, slot: "bottom", }), ], 1 ); }, Tt = [], St = (i("a4d3"), i("e01a"), { DESCRIPTION: "课程描述", DESCRIPTIONDOC: "课程描述", SYLLABUS: "教学大纲", SYLLABUSDOC: "教学大纲", TEXTBOOKINFORMATION: "教学材料", TEXTBOOKINFORMATIONDOC: "教学材料", REFERENCEMATERIAL: "参考材料", REFERENCEMATERIALDOC: "参考材料", FAQ: "常见问题", FAQDOC: "常见问题", CONTACTWAY: "联系方式", CONTACTWAYDOC: "联系方式", TEACHINGIMPLEMENTINGRULES: "教学实施细则", TEACHINGIMPLEMENTINGRULESDOC: "教学实施细则", PRACTICETEACHINGRULES: "实践教学实施细则", PRACTICETEACHINGRULESDOC: "实践教学实施细则", SHAPEDTESTDETAILS: "形考实施细则", SHAPEDTESTDETAILSDOC: "形考实施细则", }), xt = { methods: { getCourseDocInfo: function () { var e = this; this.$API("getCourseDocInfo", { courseId: this.courseId }) .then(function (t) { if ("0" === t.code) { var i = t.data || []; e.infoData = i.map(function (t, i) { var o = e.getPreviewType(t.previewUrl || t.description); return { id: i, title: t.title ? St[t.title.toUpperCase()] || t.title : "课程栏目", previewType: o, viewPath: e.getViewPath( o, t.previewUrl || t.description ), }; }); } }) .finally(function () { e.initLoading = !1; }); }, getPreviewType: function (e) { var t = e.replace("doc/a@", ""); return t.indexOf("jpg") >= 0 || t.indexOf("jpeg") >= 0 || t.indexOf("png") >= 0 || t.indexOf("gif") >= 0 || t.indexOf("bmp") >= 0 ? "img" : t.indexOf("doc") >= 0 ? "word" : t.indexOf("ppt") >= 0 || t.indexOf("pps") >= 0 ? "ppt" : t.indexOf("xls") >= 0 ? "excel" : t.indexOf("pdf") >= 0 ? "pdf" : "others"; }, getViewPath: function (e, t) { if ("img" === e) return t; var i = t.replace("doc/a@", ""); return "word" === e ? "//aia.shou.org.cn/wv/wordviewerframe.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( i ) : "ppt" === e ? "//aia.shou.org.cn/p/PowerPointFrame.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( i ) : "excel" === e ? "//aia.shou.org.cn/x/_layouts/xlviewerinternal.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( i ) : "pdf" === e ? "/pdfview/web/viewer.html?pdfLink=https://ldoc.shou.org.cn/".concat( t ) : void 0; }, }, }, Pt = { methods: { getCourseDocInfo: function () { var e = this; this.$API("getCourseInfoList", { courseId: this.courseId }) .then(function (t) { if ("0" === t.code) { var i = t.data || []; e.infoData = i.map(function (t, i) { return ( t.fileUuid && e.getCourseFileDetail(t.fileUuid, i), { id: t.id, columnId: t.columnId, title: t.columnName, fileUuid: t.fileUuid, previewType: "", viewPath: "", } ); }); } }) .finally(function () { e.initLoading = !1; }); }, getCourseFileDetail: function (e, t) { var i = this; this.$API("getCourseFileDetail", { courseId: this.courseId, fileUuid: e, }).then(function (e) { if ("0" === e.code) { var o = e.data || {}, s = o.filePath, a = o.fileType, n = o.viewPath, r = i.getPreviewType(a), c = "", l = s.indexOf("doc/a@") >= 0; c = "word" === r || "ppt" === r || "excel" === r ? l ? n : "//view.officeapps.live.com/op/view.aspx?src=".concat( n ) : "pdf" === r ? l ? "/pdfview/web/viewer.html?pdfLink=https://ldoc.shou.org.cn/".concat( s ) : "/pdfview/web/viewer.html?pdfLink=".concat(n) : n; var u = i.infoData[t]; (u.previewType = r), (u.viewPath = c); } }); }, getPreviewType: function (e) { return e.indexOf("jpg") >= 0 || e.indexOf("jpeg") >= 0 || e.indexOf("png") >= 0 || e.indexOf("gif") >= 0 || e.indexOf("bmp") >= 0 ? "img" : e.indexOf("doc") >= 0 ? "word" : e.indexOf("ppt") >= 0 || e.indexOf("pps") >= 0 ? "ppt" : e.indexOf("xls") >= 0 ? "excel" : e.indexOf("pdf") >= 0 ? "pdf" : "others"; }, }, }, Lt = "dotNet_api" === a["a"].apiPrefix ? xt : Pt, kt = Lt, Ot = { name: "CourseInfo", components: { PageLayout: y["a"], CourseDetailBottomNav: P, Skeleton: O["a"], }, data: function () { return { courseId: "", initLoading: !0, courseName: "测试课程名称", infoData: [], }; }, mixins: [kt], created: function () { var e = this.$route.query || {}; (this.courseId = e.courseId || ""), this.courseId && this.getCourseName(); }, mounted: function () { this.courseId && this.getCourseDocInfo(); }, methods: { getCourseName: function () { var e = this; Object(v["b"])(this.courseId, function (t) { (e.courseName = t.courseName), t.courseVideo && (e.courseVideo = t.courseVideo), t.courseCover && (e.courseCover = t.courseCover); }); }, }, }, Dt = Ot, Et = (i("2f01"), Object(u["a"])(Dt, bt, Tt, !1, null, "17a6c65d", null)), Rt = Et.exports, Ft = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "PageLayout", { attrs: { title: e.courseName } }, [ i( "Tabs", { staticStyle: { "margin-top": "10px" }, attrs: { color: "#4f44d1" }, model: { value: e.activeTab, callback: function (t) { e.activeTab = t; }, expression: "activeTab", }, }, [ i("Tab", { attrs: { title: "全部帖子", name: "all" } }), i("Tab", { attrs: { title: "精华帖子", name: "isEssence" } }), ], 1 ), i("Skeleton", { staticClass: "skeleton-area", attrs: { row: 3, loading: e.initLoading }, }), e.initLoading ? e._e() : i( "List", { staticClass: "list-items", attrs: { finished: e.isEnd, "immediate-check": !1, "finished-text": "没有更多了", }, on: { load: e.onLoad }, model: { value: e.isLoadingMore, callback: function (t) { e.isLoadingMore = t; }, expression: "isLoadingMore", }, }, e._l(e.dataList, function (t) { return i( "div", { key: t.topicId, staticClass: "card-item" }, [ i("Cell", { staticClass: "card-cell", attrs: { border: !1 }, on: { click: function (i) { return e.showQADetail(t); }, }, scopedSlots: e._u( [ { key: "title", fn: function () { return [ i("h3", { staticClass: "card-title" }, [ e._v(e._s(t.title)), ]), ]; }, proxy: !0, }, { key: "label", fn: function () { return [ i("p", { staticClass: "card-info" }, [ e._v(e._s(t.createTime || "-")), ]), i("p", { staticClass: "card-info" }, [ e._v( "浏览: " + e._s(t.viewCount || 0) + " " ), i("span", [ e._v( "回复: " + e._s(t.commentCount || 0) ), ]), ]), ]; }, proxy: !0, }, ], null, !0 ), }), t._canEdit ? i( "Grid", { attrs: { clickable: "", "column-num": 2 } }, [ i("GridItem", { staticClass: "grid-item", attrs: { text: "编辑" }, on: { click: function (i) { return e.doEdit(t); }, }, }), i("GridItem", { staticClass: "grid-item", attrs: { text: "删除" }, on: { click: function (i) { return e.doDelete(t); }, }, }), ], 1 ) : e._e(), ], 1 ); }), 0 ), e.courseId ? i( "span", { staticClass: "add-btn", on: { click: e.doAddNew } }, [i("Icon", { attrs: { name: "plus" } })], 1 ) : e._e(), i( "Popup", { staticStyle: { height: "90%", "padding-top": "4px" }, attrs: { round: "", position: "bottom", "get-container": "#app", }, model: { value: e.showModal, callback: function (t) { e.showModal = t; }, expression: "showModal", }, }, [ i( "div", { staticClass: "popup-content" }, [ i("Field", { attrs: { label: "标题", placeholder: "请输入标题" }, model: { value: e.editForm.title, callback: function (t) { e.$set( e.editForm, "title", "string" === typeof t ? t.trim() : t ); }, expression: "editForm.title", }, }), i("Field", { attrs: { label: "内容", rows: "3", autosize: "", type: "textarea", placeholder: "请输入内容", }, model: { value: e.editForm.content, callback: function (t) { e.$set( e.editForm, "content", "string" === typeof t ? t.trim() : t ); }, expression: "editForm.content", }, }), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "", type: "info" }, on: { click: e.doSaveQA }, }, [e._v("提交")] ), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "" }, on: { click: e.cancelPopup }, }, [e._v("取消")] ), ], 1 ), ] ), e.QADetailModel ? i("CourseQADetail", { attrs: { "show-detail": e.QADetailModel, "detail-info": e.QAInfo, }, on: { closeModel: e.closeModel }, }) : e._e(), i("CourseDetailBottomNav", { attrs: { slot: "bottom" }, slot: "bottom", }), ], 1 ); }, Nt = [], Mt = (i("0ec5"), i("21ab")), Bt = (i("3df5"), i("2830")), Ut = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "Popup", { staticStyle: { height: "100%" }, attrs: { position: "bottom", "get-container": "#app" }, model: { value: e.showDetail, callback: function (t) { e.showDetail = t; }, expression: "showDetail", }, }, [ i("div", { staticClass: "top-nav" }, [ i( "span", { staticClass: "back-icon", on: { click: e.closeModel } }, [i("Icon", { attrs: { name: "arrow-left", size: "24" } })], 1 ), i("span", [e._v("帖子详情")]), ]), i("div", [ i("div", { staticClass: "post-title" }, [ e._v(e._s(e.detailInfo.title)), ]), i("div", { staticClass: "post-content", domProps: { innerHTML: e._s(e.detailInfo.content) }, }), i("div", { staticClass: "post-user" }, [ e._v(" " + e._s(e.detailInfo.userName)), i("br"), i("span", { staticClass: "post-time" }, [ e._v(e._s(e.detailInfo.createTime)), ]), ]), i( "div", { staticClass: "comment-area" }, [ i( "List", { attrs: { finished: e.isCommentEnd, "immediate-check": !1, "finished-text": "没有更多评论", }, on: { load: e.onLoadComment }, model: { value: e.isLoadingMore, callback: function (t) { e.isLoadingMore = t; }, expression: "isLoadingMore", }, }, e._l(e.commentList, function (t, o) { return i("Cell", { key: t.replyId, staticClass: "card-cell", scopedSlots: e._u( [ { key: "title", fn: function () { return [ i("div", { staticClass: "card-title" }, [ i( "span", { staticStyle: { display: "inline-block", "line-height": "1.2", "font-weight": "bolder", color: "#1E1D1D", }, }, [e._v(" " + e._s(t.userName) + " ")] ), i( "span", { staticStyle: { color: "#969799", "margin-left": "6px", }, }, [e._v("(" + e._s(t.userId) + ")")] ), i( "span", { staticStyle: { float: "right", "vertical-align": "top", color: "#969799", "line-height": "1.2", }, }, [e._v(e._s(t.createTime))] ), ]), ]; }, proxy: !0, }, { key: "label", fn: function () { return [ i( "div", { staticClass: "comment-detail" }, [ i("div", [ i("span", { staticStyle: { "font-size": "14px", color: "#555555", }, domProps: { innerHTML: e._s(t.content), }, }), ]), i( "div", { staticClass: "reply-btns" }, [ i("span", { staticClass: "comment-icon icon-btn", on: { click: function (i) { return e.doReply(t); }, }, }), i( "Badge", { attrs: { content: t.likedCount, max: "99", }, }, [ t.likedStatus ? i("span", { staticClass: "liked-icon icon-btn", on: { click: function (i) { return e.doLike(t, o); }, }, }) : i("span", { staticClass: "like-icon icon-btn", on: { click: function (i) { return e.doLike(t, o); }, }, }), ] ), ], 1 ), t.childComment && t.childComment.length > 0 ? i( "div", { staticClass: "reply-area" }, e._l( t.childComment, function (t) { return i("ReplyItem", { key: t.replyId, attrs: { "reply-item": t }, on: { doReply: function (i) { return e.doReply(t); }, }, }); } ), 1 ) : e._e(), ] ), ]; }, proxy: !0, }, ], null, !0 ), }); }), 1 ), i( "span", { staticClass: "add-btn", on: { click: e.doAddNew } }, [i("Icon", { attrs: { name: "plus", size: "24" } })], 1 ), i( "Popup", { staticStyle: { height: "90%", "padding-top": "4px" }, attrs: { round: "", position: "bottom", "get-container": "#app", }, model: { value: e.showModal, callback: function (t) { e.showModal = t; }, expression: "showModal", }, }, [ i( "div", { staticClass: "popup-content" }, [ i("p", { staticClass: "popup-title" }, [ e._v(e._s(e.editForm.title)), ]), i( "div", { staticClass: "input-item" }, [ i("Field", { staticClass: "field-input", attrs: { rows: "3", autosize: "", type: "textarea", placeholder: "评价内容", }, model: { value: e.editForm.content, callback: function (t) { e.$set( e.editForm, "content", "string" === typeof t ? t.trim() : t ); }, expression: "editForm.content", }, }), ], 1 ), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "", type: "info" }, on: { click: e.submitComment }, }, [e._v("提交")] ), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "" }, on: { click: e.cancelPopup }, }, [e._v("取消")] ), ], 1 ), ] ), ], 1 ), ]), ] ); }, Qt = [], jt = { name: "CourseQADetail", components: { List: He["a"], Cell: Ae["a"], Icon: Ie["a"], Popup: Ce["a"], Field: qe["a"], Button: je["a"], ReplyItem: Ze, Badge: Qe["a"], }, props: { detailInfo: { type: Object, default: function () { return { courseId: "", categoryId: "", topicId: "", title: "", content: "", userName: "", createTime: "", }; }, }, showDetail: { type: Boolean, default: !1 }, }, data: function () { return { isLoadingMore: !1, isCommentEnd: !1, showModal: !1, commentList: [], pageIndex: 1, pageSize: 10, editType: "new", editForm: { title: "新增评论", courseOpenID: "", categoryId: "", topicId: "", replyId: "", parentId: "", content: "", }, }; }, mounted: function () { this.getQAReplyList(); }, methods: { getQAReplyList: function () { var e = this, t = { courseOpenID: this.detailInfo.courseId, categoryId: this.detailInfo.categoryId, topicId: this.detailInfo.topicId, }; this.$API("getQAReplyList", t) .then(function (t) { if ("0" === t.code) { var i = t.data || {}, o = i.bbsReplyList || []; e.commentList = e.parseDataList(o); } }) .finally(function () { (e.isCommentEnd = !0), (e.isLoadingMore = !1); }); }, parseDataList: function (e) { var t = this; return e.map(function (e) { var i = []; return ( e.bbsReplySonList && e.bbsReplySonList.length > 0 && (i = t.parseDataList(e.bbsReplySonList) || []), { courseId: t.detailInfo.courseId, topicId: e.topicId, categoryId: e.categoryId, replyId: e.replyId, uid: e.replyId, content: e.content, userName: e.userName, userId: e.userId, createTime: e.dateCreated, likedCount: Math.floor(e.praseCount || 0), likedStatus: 1 === e.isprase || "1" === e.isprase ? 1 : 0, childComment: i, } ); }); }, onLoadComment: function () { (this.isLoadingMore = !0), this.pageIndex++, this.getQAReplyList(); }, closeModel: function () { this.$emit("closeModel"); }, doAddNew: function () { (this.editType = "new"), (this.showModal = !0); }, submitComment: function () { var e = this; if (!this.editForm.content) return F["a"].fail("评论内容不能为空"), !1; var t = { courseOpenID: this.detailInfo.courseId, categoryId: this.detailInfo.categoryId, topicId: this.detailInfo.topicId, content: this.editForm.content, }; "reply" === this.editType && (t.parentId = this.editForm.parentId), this.$API("addQAReply", t) .then(function (t) { "0" === t.code ? (F["a"].success("评论成功"), e.cancelPopup(), (e.isLoadingMore = !1), (e.isCommentEnd = !0), (e.commentList = []), e.getQAReplyList()) : F["a"].fail(t.message); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }); }, cancelPopup: function () { for (var e in ((this.showModal = !1), this.editForm)) this.editForm[e] = ""; (this.editForm.title = "新增评论"), (this.editType = ""); }, doReply: function (e) { var t = e.replyId; (this.editForm.title = "回复: " + e.userName), (this.editForm.courseOpenID = e.courseId), (this.editForm.categoryId = e.categoryId), (this.editForm.topicId = e.topicId), (this.editForm.parentId = t), (this.editType = "reply"), (this.showModal = !0); }, doLike: function (e, t) { var i = this, o = e.replyId; if (e.likedStatus) return F["a"].fail("您已经点赞了"), !1; this.$API("doLikeQA", { replyId: o }) .then(function (o) { "0" === o.code ? (F["a"].success("点赞成功"), (e.likedStatus = 1), (e.likedCount += 1), i.commentList.splice(t, 1, e)) : F["a"].fail(o.message || "点赞失败"); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }); }, }, }, qt = jt, zt = (i("5af1"), Object(u["a"])(qt, Ut, Qt, !1, null, "2741170c", null)), Ht = zt.exports, Wt = { name: "CourseQA", components: { Tabs: m["a"], Tab: g["a"], List: He["a"], Cell: Ae["a"], Grid: Bt["a"], GridItem: Mt["a"], Skeleton: O["a"], Icon: Ie["a"], Popup: Ce["a"], Field: qe["a"], Button: je["a"], CourseQADetail: Ht, PageLayout: y["a"], CourseDetailBottomNav: P, }, data: function () { return { courseId: "", courseName: "", activeTab: "all", initLoading: !0, isLoadingMore: !1, isEnd: !1, pageIndex: 1, pageSize: 10, dataList: [], showModal: !1, editForm: { categoryId: "", topicId: "", title: "", content: "" }, QADetailModel: !1, QAInfo: { courseId: "", categoryId: "", topicId: "", title: "", content: "", userName: "", createTime: "", }, }; }, watch: { activeTab: function () { this.resetDataList(), (this.isLoadingMore = !0), this.getData(); }, }, created: function () { var e = this.$route.query || {}; this.courseId = e.courseId || ""; }, mounted: function () { this.resetDataList(), this.getData(), this.courseId && this.getCourseName(); }, methods: { getCourseName: function () { var e = this; Object(v["b"])(this.courseId, function (t) { e.courseName = t.courseName; }); }, resetDataList: function () { (this.isLoadingMore = !1), (this.isEnd = !1), (this.pageIndex = 1), (this.pageSize = 10), (this.dataList = []); }, getData: function () { var e = this; if (this.courseId) { var t = { courseId: this.courseId, categoryId: "bbskcwd-".concat(this.courseId), }; "isEssence" === this.activeTab && (t.categoryType = "IsEssence"), this.isLoadingMore || (this.initLoading = !0), this.$API("getCourseQAList", t) .then(function (t) { if ("0" === t.code) { var i = t.data || {}, o = i.topicList || [], s = i.isEssenceList || []; e.parseDataList(o, s); } }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }) .finally(function () { (e.isEnd = !0), (e.initLoading = !1), (e.isLoadingMore = !1); }); } }, parseDataList: function (e, t) { var i = this, o = this.$getItem("userInfo"), s = "isEssence" === this.activeTab ? Object(_e["a"])(t) : Object(_e["a"])(e); this.dataList = s.map(function (e) { return { courseId: i.courseId, categoryId: e.categoryId, topicId: e.topicId, title: e.title, content: e.content, viewCount: e.viewcount, userId: e.userId, userName: e.displayName, commentCount: e.replyCount, createTime: e.dateCreated, _canEdit: e.userId.indexOf(o.userId) >= 0, }; }); }, onLoad: function () { (this.isLoadingMore = !0), this.pageIndex++, this.getData(); }, doAddNew: function () { this.showModal = !0; }, doSaveQA: function () { var e = this; if (!this.editForm.title) return F["a"].fail("请输入标题"), !1; if (!this.editForm.content) return F["a"].fail("请输入内容"), !1; var t = { courseOpenID: this.courseId, categoryId: "bbskcwd-".concat(this.courseId), topicTitle: this.editForm.title, topicContent: this.editForm.content, }; this.editForm.topicId && (t.topicId = this.editForm.topicId), this.$API("addCourseQA", t) .then(function (t) { "0" === t.code ? (F["a"].success("提交成功"), e.cancelPopup(), e.resetDataList(), e.getData()) : F["a"].fail(t.message || "提交失败"); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }); }, cancelPopup: function () { for (var e in ((this.showModal = !1), this.editForm)) this.editForm[e] = ""; }, showQADetail: function (e) { for (var t in this.QAInfo) this.QAInfo[t] = e[t] || ""; this.QADetailModel = !0; }, closeModel: function () { for (var e in ((this.QADetailModel = !1), this.QAInfo)) this.QAInfo[e] = ""; }, doEdit: function (e) { for (var t in this.editForm) this.editForm[t] = e[t]; this.showModal = !0; }, doDelete: function (e) { var t = this, i = e.topicId; i ? N["a"] .confirm({ title: "提示", message: "删除后无法恢复,确定删除?", }) .then(function () { t.$API("deleteQA", { topicId: i }) .then(function (e) { "0" === e.code ? (F["a"].success("删除成功"), t.resetDataList(), t.getData()) : F["a"].fail(e.message || "删除失败"); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }); }) .catch(function () {}) : F["a"].fail("删除失败:topicId"); }, }, }, Vt = Wt, Gt = (i("f650"), Object(u["a"])(Vt, Ft, Nt, !1, null, "59afc312", null)), Jt = Gt.exports, Kt = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "PageLayout", { attrs: { title: e.courseName } }, [ i( "Tabs", { staticStyle: { "margin-top": "10px" }, attrs: { color: "#4f44d1" }, model: { value: e.activeTab, callback: function (t) { e.activeTab = t; }, expression: "activeTab", }, }, [ i("Tab", { attrs: { title: "全部帖子", name: "all" } }), i("Tab", { attrs: { title: "精华帖子", name: "isEssence" } }), ], 1 ), i("Skeleton", { staticClass: "skeleton-area", attrs: { row: 3, loading: e.initLoading }, }), e.initLoading ? e._e() : i( "List", { staticClass: "list-items", attrs: { finished: e.isEnd, "immediate-check": !1, "finished-text": "没有更多了", }, on: { load: e.onLoad }, model: { value: e.isLoadingMore, callback: function (t) { e.isLoadingMore = t; }, expression: "isLoadingMore", }, }, e._l(e.dataList, function (t) { return i( "div", { key: t.uid, staticClass: "card-item" }, [ i("Cell", { staticClass: "card-cell", attrs: { border: !1 }, on: { click: function (i) { return e.showQADetail(t); }, }, scopedSlots: e._u( [ { key: "title", fn: function () { return [ i("h3", { staticClass: "card-title" }, [ e._v(e._s(t.postName)), ]), ]; }, proxy: !0, }, { key: "label", fn: function () { return [ i("p", { staticClass: "card-info" }, [ e._v(e._s(t.createTime || "-")), ]), i("p", { staticClass: "card-info" }, [ e._v( "浏览: " + e._s(t.viewCount || 0) + " " ), i("span", [ e._v( "回复: " + e._s(t.commentCount || 0) ), ]), ]), ]; }, proxy: !0, }, ], null, !0 ), }), t._canEdit ? i( "Grid", { attrs: { clickable: "", "column-num": 2 } }, [ i("GridItem", { staticClass: "grid-item", attrs: { text: "编辑" }, on: { click: function (i) { return e.doEdit(t); }, }, }), i("GridItem", { staticClass: "grid-item", attrs: { text: "删除" }, on: { click: function (i) { return e.doDelete(t); }, }, }), ], 1 ) : e._e(), ], 1 ); }), 0 ), e.courseId ? i( "span", { staticClass: "add-btn", on: { click: e.doAddNew } }, [i("Icon", { attrs: { name: "plus" } })], 1 ) : e._e(), i( "Popup", { staticStyle: { height: "90%", "padding-top": "4px" }, attrs: { round: "", position: "bottom", "get-container": "#app", }, model: { value: e.showModal, callback: function (t) { e.showModal = t; }, expression: "showModal", }, }, [ i( "div", { staticClass: "popup-content" }, [ i("Field", { attrs: { label: "标题", placeholder: "请输入标题" }, model: { value: e.editForm.postName, callback: function (t) { e.$set( e.editForm, "postName", "string" === typeof t ? t.trim() : t ); }, expression: "editForm.postName", }, }), i("Field", { attrs: { label: "内容", rows: "3", autosize: "", type: "textarea", placeholder: "请输入内容", }, model: { value: e.editForm.postContent, callback: function (t) { e.$set( e.editForm, "postContent", "string" === typeof t ? t.trim() : t ); }, expression: "editForm.postContent", }, }), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "", type: "info" }, on: { click: e.doSaveQA }, }, [e._v("提交")] ), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "" }, on: { click: e.cancelPopup }, }, [e._v("取消")] ), ], 1 ), ] ), e.QADetailModel ? i("CourseQADetailMixin", { attrs: { "show-detail": e.QADetailModel, "detail-info": e.QAInfo, }, on: { closeModel: e.closeModel }, }) : e._e(), i("CourseDetailBottomNav", { attrs: { slot: "bottom" }, slot: "bottom", }), ], 1 ); }, Zt = [], Yt = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "Popup", { staticStyle: { height: "100%" }, attrs: { position: "bottom", "get-container": "#app" }, model: { value: e.showDetail, callback: function (t) { e.showDetail = t; }, expression: "showDetail", }, }, [ i("div", { staticClass: "top-nav" }, [ i( "span", { staticClass: "back-icon", on: { click: e.closeModel } }, [i("Icon", { attrs: { name: "arrow-left", size: "24" } })], 1 ), i("span", [e._v("帖子详情")]), ]), i("div", [ i("div", { staticClass: "post-title" }, [ e._v(e._s(e.detailInfo.postName)), ]), i("div", { staticClass: "post-content", domProps: { innerHTML: e._s(e.detailInfo.postContent) }, }), i("div", { staticClass: "post-user" }, [ e._v(" " + e._s(e.detailInfo.userName)), i("br"), i("span", { staticClass: "post-time" }, [ e._v(e._s(e.detailInfo.createTime)), ]), ]), i( "div", { staticClass: "comment-area" }, [ i( "List", { attrs: { finished: e.isCommentEnd, "immediate-check": !1, "finished-text": "没有更多评论", }, on: { load: e.onLoadComment }, model: { value: e.isLoadingMore, callback: function (t) { e.isLoadingMore = t; }, expression: "isLoadingMore", }, }, e._l(e.commentList, function (t, o) { return i("Cell", { key: t.uid, staticClass: "card-cell", scopedSlots: e._u( [ { key: "title", fn: function () { return [ i("div", { staticClass: "card-title" }, [ i( "span", { staticStyle: { display: "inline-block", "line-height": "1.2", "font-weight": "bolder", color: "#1E1D1D", }, }, [e._v(" " + e._s(t.userName) + " ")] ), i( "span", { staticStyle: { color: "#969799", "margin-left": "6px", }, }, [e._v("(" + e._s(t.userId) + ")")] ), i( "span", { staticStyle: { float: "right", "vertical-align": "top", color: "#969799", "line-height": "1.2", }, }, [e._v(e._s(t.createTime))] ), ]), ]; }, proxy: !0, }, { key: "label", fn: function () { return [ i( "div", { staticClass: "comment-detail" }, [ i("div", [ i("span", { staticStyle: { "font-size": "14px", color: "#555555", }, domProps: { innerHTML: e._s(t.postName), }, }), ]), i( "div", { staticClass: "reply-btns" }, [ i("span", { staticClass: "comment-icon icon-btn", on: { click: function (i) { return e.doReply(t); }, }, }), i( "Badge", { attrs: { content: t.likedCount, max: "99", }, }, [ t.likedStatus ? i("span", { staticClass: "liked-icon icon-btn", on: { click: function (i) { return e.doLike(t, o); }, }, }) : i("span", { staticClass: "like-icon icon-btn", on: { click: function (i) { return e.doLike(t, o); }, }, }), ] ), ], 1 ), t.childComment && t.childComment.length > 0 ? i( "div", { staticClass: "reply-area" }, e._l( t.childComment, function (t) { return i("ReplyItem", { key: t.uid, attrs: { "show-reply": !0, "reply-item": t, }, on: { doReply: function (i) { return e.doReply(t); }, }, }); } ), 1 ) : e._e(), ] ), ]; }, proxy: !0, }, ], null, !0 ), }); }), 1 ), i( "span", { staticClass: "add-btn", on: { click: e.doAddNew } }, [i("Icon", { attrs: { name: "plus", size: "24" } })], 1 ), i( "Popup", { staticStyle: { height: "90%", "padding-top": "4px" }, attrs: { round: "", position: "bottom", "get-container": "#app", }, model: { value: e.showModal, callback: function (t) { e.showModal = t; }, expression: "showModal", }, }, [ i( "div", { staticClass: "popup-content" }, [ i("p", { staticClass: "popup-title" }, [ e._v(e._s(e.editForm.title)), ]), i( "div", { staticClass: "input-item" }, [ i("Field", { staticClass: "field-input", attrs: { rows: "3", autosize: "", type: "textarea", placeholder: "评价内容", }, model: { value: e.editForm.postName, callback: function (t) { e.$set( e.editForm, "postName", "string" === typeof t ? t.trim() : t ); }, expression: "editForm.postName", }, }), ], 1 ), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "", type: "info" }, on: { click: e.submitComment }, }, [e._v("提交")] ), i( "Button", { staticStyle: { "margin-top": "20px" }, attrs: { round: "", block: "" }, on: { click: e.cancelPopup }, }, [e._v("取消")] ), ], 1 ), ] ), ], 1 ), ]), ] ); }, _t = [], Xt = { name: "CourseQADetailMixin", components: { List: He["a"], Cell: Ae["a"], Icon: Ie["a"], Popup: Ce["a"], Field: qe["a"], Button: je["a"], ReplyItem: Ze, Badge: Qe["a"], }, props: { detailInfo: { type: Object, default: function () { return { courseId: "", uid: "", postName: "", postContent: "", userName: "", createTime: "", }; }, }, showDetail: { type: Boolean, default: !1 }, }, data: function () { return { isLoadingMore: !1, isCommentEnd: !1, showModal: !1, commentList: [], pageIndex: 1, pageSize: 10, editType: "new", editForm: { postName: "", puid: "", title: "新增评论" }, }; }, mounted: function () { this.getQAReplyList(); }, methods: { getQAReplyList: function () { var e = this, t = { courseId: this.detailInfo.courseId, postId: this.detailInfo.uid, plateTag: 2, offset: this.pageIndex, limit: this.pageSize, }; this.$API("getPostCommentInfoList", t) .then(function (t) { if ("0" === t.code) { var i = (t.data || []).map(function (t) { var i = (t.createUser || "").replace("310_", ""), o = (t.userName || "").replace(/\(.*\)/, ""); return { uid: t.uid, userName: o, userId: i, createTime: t.createTime, postName: t.postName, likedCount: t.likedCount, likedStatus: t.likedStatus, childComment: e.translateComment(t.childComment || []), }; }); e.commentList = [].concat( Object(_e["a"])(e.commentList), Object(_e["a"])(i) ); var o = t.total || e.commentList.length; o <= e.pageSize * e.pageIndex && (e.isCommentEnd = !0); } }) .finally(function () { e.isLoadingMore = !1; }); }, translateComment: function (e) { var t = this; return e.map(function (e) { var i = (e.createUser || "").replace("310_", ""), o = (e.userName || "").replace(/\(.*\)/, ""); return { uid: e.uid, userName: o, userId: i, createTime: e.createTime, content: e.postName, likedCount: e.likedCount, likedStatus: e.likedStatus, childComment: t.translateComment(e.childComment || []), }; }); }, onLoadComment: function () { (this.isLoadingMore = !0), this.pageIndex++, this.getQAReplyList(); }, closeModel: function () { this.$emit("closeModel"); }, doAddNew: function () { (this.editType = "new"), (this.showModal = !0); }, submitComment: function () { var e = this; if (!this.editForm.postName) return F["a"].fail("评论内容不能为空"), !1; var t = { courseId: this.detailInfo.courseId, plateTag: "2" }; "reply" === this.editType ? ((t.puid = this.editForm.puid), (t.postName = "" .concat(this.editForm.title, " ") .concat(this.editForm.postName))) : ((t.puid = this.detailInfo.uid), (t.postName = this.editForm.postName)), this.$API("addPosts", t) .then(function (t) { "0" === t.code ? (F["a"].success("评论成功"), e.cancelPopup(), (e.isLoadingMore = !1), (e.isCommentEnd = !1), (e.commentList = []), (e.pageIndex = 1), (e.pageSize = 10), e.getQAReplyList()) : F["a"].fail(t.message); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }); }, cancelPopup: function () { (this.showModal = !1), (this.editForm = { postName: "", puid: "", title: "新增评论" }), (this.editType = ""); }, doReply: function (e) { var t = e.uid; (this.editForm.puid = t), (this.editForm.title = "回复: " + e.userName), (this.editType = "reply"), (this.showModal = !0); }, doLike: function (e, t) { var i = this, o = e.uid; if (e.likedStatus) return F["a"].fail("您已经点赞了"), !1; this.$API("addBBsLike", { commentId: o }) .then(function (o) { "0" === o.code ? (F["a"].success("点赞成功"), (e.likedStatus = 1), (e.likedCount += 1), i.commentList.splice(t, 1, e)) : F["a"].fail(o.message || "点赞失败"); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }); }, }, }, $t = Xt, ei = (i("8b3e"), Object(u["a"])($t, Yt, _t, !1, null, "48ad26d2", null)), ti = ei.exports, ii = { name: "CourseQAMixin", components: { Tabs: m["a"], Tab: g["a"], List: He["a"], Cell: Ae["a"], Grid: Bt["a"], GridItem: Mt["a"], Skeleton: O["a"], Icon: Ie["a"], Popup: Ce["a"], Field: qe["a"], Button: je["a"], CourseQADetailMixin: ti, PageLayout: y["a"], CourseDetailBottomNav: P, }, data: function () { return { courseId: "", courseName: "", activeTab: "all", initLoading: !0, isLoadingMore: !1, isEnd: !1, pageIndex: 1, pageSize: 10, dataList: [], showModal: !1, editForm: { uid: "", postName: "", postContent: "" }, QADetailModel: !1, QAInfo: { courseId: "", uid: "", postName: "", postContent: "", userName: "", createTime: "", }, }; }, watch: { activeTab: function () { this.resetDataList(), (this.isLoadingMore = !0), this.getData(); }, }, created: function () { var e = this.$route.query || {}; this.courseId = e.courseId || ""; }, mounted: function () { this.resetDataList(), this.getData(), this.courseId && this.getCourseName(); }, methods: { getCourseName: function () { var e = this; Object(v["b"])(this.courseId, function (t) { e.courseName = t.courseName; }); }, resetDataList: function () { (this.isLoadingMore = !1), (this.isEnd = !1), (this.pageIndex = 1), (this.pageSize = 10), (this.dataList = []); }, getData: function () { var e = this; if (this.courseId) { var t = { limit: this.pageSize, offset: this.pageIndex, courseId: this.courseId, plateTag: "2", }; "isEssence" === this.activeTab && (t.postType = "isEssence"), this.isLoadingMore || (this.initLoading = !0), this.$API("getCourseQAList", t) .then(function (t) { if ("0" === t.code) { var i = (t.data || []).map(function (t) { var i = t.createUser || "", o = (e.$getItem("userInfo") || {}).userId; return ( i && i.indexOf(o) >= 0 ? (t._canEdit = !0) : (t._canEdit = !1), Object(Ye["a"])({}, t) ); }); e.dataList = [].concat( Object(_e["a"])(e.dataList), Object(_e["a"])(i) ); var o = t.total || e.dataList.length; o <= e.pageSize * e.pageIndex && (e.isEnd = !0); } else F["a"].fail(t.message); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }) .finally(function () { (e.initLoading = !1), (e.isLoadingMore = !1); }); } }, onLoad: function () { (this.isLoadingMore = !0), this.pageIndex++, this.getData(); }, doAddNew: function () { this.showModal = !0; }, doSaveQA: function () { var e = this; if (!this.editForm.postName) return F["a"].fail("请输入标题"), !1; if (!this.editForm.postContent) return F["a"].fail("请输入内容"), !1; var t = Object(Ye["a"])({}, this.editForm), i = t.uid ? "updatePosts" : "addPosts"; !t.uid && delete t.uid, (t.courseId = this.courseId), (t.plateTag = "2"), (t.puid = -1), this.$API(i, t) .then(function (t) { "0" === t.code ? (F["a"].success("提交成功"), e.cancelPopup(), e.resetDataList(), e.getData()) : F["a"].fail(t.message || "提交失败"); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }); }, cancelPopup: function () { for (var e in ((this.showModal = !1), this.editForm)) this.editForm[e] = ""; }, showQADetail: function (e) { for (var t in this.QAInfo) this.QAInfo[t] = e[t] || ""; this.QADetailModel = !0; }, closeModel: function () { for (var e in ((this.QADetailModel = !1), this.QAInfo)) this.QAInfo[e] = ""; }, doEdit: function (e) { for (var t in this.editForm) this.editForm[t] = e[t]; this.showModal = !0; }, doDelete: function (e) { var t = this, i = e.uid; i ? N["a"] .confirm({ title: "提示", message: "删除后无法恢复,确定删除?", }) .then(function () { t.$API("deletePosts", { uid: i }) .then(function (e) { "0" === e.code ? (F["a"].success("删除成功"), t.resetDataList(), t.getData()) : F["a"].fail(e.message || "删除失败"); }) .catch(function (e) { F["a"].fail(e.toString() || "unknown error"); }); }) .catch(function () {}) : F["a"].fail("删除失败:uid"); }, }, }, oi = ii, si = (i("7429"), Object(u["a"])(oi, Kt, Zt, !1, null, "3d9f90a1", null)), ai = si.exports, ni = "dotNet_api" === a["a"].apiPrefix ? Jt : ai, ri = [ { path: "/index.html", component: ge, name: "courseCatalog" }, { path: "/resources.html", component: Oe, name: "courseResource" }, { path: "/resource_detail.html", component: wt, name: "resourceDetail", }, { path: "/course_info.html", component: Rt, name: "courseInfo" }, { path: "/course_qa.html", component: ni, name: "courseQA" }, ], ci = new s["a"]({ mode: "history", base: "/course_detail", routes: ri, scrollBehavior: function (e, t, i) { return i || { x: 0, y: 0 }; }, }); Object(o["a"])(p, ci); }, "98a0": function (e, t, i) {}, a1df: function (e, t) { e.exports = "data:image/png;base64,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"; }, a430: function (e, t, i) { "use strict"; i("89d4"); }, aa6a: function (e, t, i) { "use strict"; i.d(t, "d", function () { return r; }), i.d(t, "c", function () { return c; }), i.d(t, "a", function () { return l; }), i.d(t, "b", function () { return u; }), i.d(t, "e", function () { return d; }); var o = i("b85c"), s = (i("ac1f"), i("5319"), i("841c"), i("1276"), i("d3b7"), i("3ca3"), i("ddb0"), i("2b3d"), i("9861"), i("25f0"), i("b0c0"), i("5cc6"), i("9a8c"), i("a975"), i("735e"), i("c1ac"), i("d139"), i("3a7b"), i("d5d6"), i("82f8"), i("e91f"), i("60bd"), i("5f96"), i("3280"), i("3fcc"), i("ca91"), i("25a1"), i("cd26"), i("3c5d"), i("2954"), i("649e"), i("219c"), i("170b"), i("b39a"), i("72f7"), i("a630"), i("bc3a")), a = i.n(s), n = i("365c"); function r() { var e, t = {}, i = decodeURIComponent(window.location.search.replace(/^\?/g, "")), s = i.split("&"), a = Object(o["a"])(s); try { for (a.s(); !(e = a.n()).done; ) { var n = e.value; if (n.indexOf("=") > 1) { var r = n.split("="); 2 === r.length && "" !== r[0] && null !== r[0] && void 0 !== r[0] && (t[r[0]] = r[1] || ""); } } } catch (c) { a.e(c); } finally { a.f(); } return t; } var c = function () { var e = navigator.userAgent || navigator.vendor || window.opera; return /android/i.test(e) ? "Android" : /iPad|iPhone|iPod/.test(e) && !window.MSStream ? "IOS" : "Android"; }, l = function (e, t, i, o) { a()("".concat(e), { headers: i || {}, responseType: "blob" }) .then(function (e) { if (200 === e.status) { var i = new Blob([e.data]), s = ""; !s && e.headers["content-disposition"] && ((s = e.headers["content-disposition"] .split(";")[1] .split("=")[1]), (s = decodeURIComponent(s))); var a = document.createElement("a"); (a.style.display = "none"), (a.href = URL.createObjectURL(i)), a.setAttribute("download", s || "附件.".concat(t)), document.body.appendChild(a), a.click(), setTimeout(function () { document.body.removeChild(a); }, 100), o(); } else o("下载文件失败"); }) .catch(function (e) { o(e.toString() || "下载文件失败"); }); }, u = function (e, t, i, o) { a()("".concat(e), { headers: i || {}, responseType: "blob" }) .then(function (e) { if (200 === e.status) { var i = new Blob([e.data]), s = t; !s && e.headers["content-disposition"] && ((s = e.headers["content-disposition"] .split(";")[1] .split("=")[1]), (s = decodeURIComponent(s))); var a = document.createElement("a"); (a.style.display = "none"), (a.href = URL.createObjectURL(i)), a.setAttribute("download", s || "附件.${fileSuffix"), document.body.appendChild(a), a.click(), setTimeout(function () { document.body.removeChild(a); }, 100), o(); } else o("下载文件失败"); }) .catch(function (e) { o(e.toString() || "下载文件失败"); }); }, d = function (e, t) { var i = e.name, o = new FileReader(); (o.onload = function (e) { var o = e.target.result, s = new Uint8Array(o); Object(n["a"])("uploadFile", { fileName: i, _dataArr: Array.from(s), }).then(function (e) { if ("0" === e.code) { var i = e.data.url; t(null, i); } else t(e.message || "上传失败"); }); }), o.readAsArrayBuffer(e); }; }, b505: function (e, t, i) { "use strict"; i("1501"); }, ba53: function (e, t, i) { "use strict"; i("ea61"); }, bcf8: function (e, t, i) { "use strict"; i("6a24"); }, c0f0: function (e, t, i) {}, c5e9: function (e, t, i) {}, c8b7: function (e, t) { e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAqEAIAAADc9Bb2AAABaWlDQ1BEaXNwbGF5IFAzAAAokXWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1P6+iU0MSQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6Kbhoed6XVNoi3sfl/Ticc7lcwBsoMs3qBaDptplMxKS11Lrke4OHnlMqs4yooiwK/v276/PR9d5PiFmNZvUgsp+41s4ul3aeAlN//V3Vn8lajP5v6iAzTBvwyMTKtm0I3iUeMWkp4orgvMvHgtMunzuelWSc+JZYYgU1Q9wgltMder6DtWKJtXYQ2/uz+uqymEM9ijlswoKBIlSUIUFB+B//tOOPY4vcZZiUy6MAmzJRUsSELPE8dDBMQiYOIUgdEndu3e+hdT+5re29ArN1zvlFW1uoA6czdLJaWxuPAEMDwE3NUE3VkXqovbkc8H4CDKaA4TvKbFi5cMjd3h8D+l44/xgDfIdAs8L51xHnzSqFn4Er/Qce3WrASs9Z0QAAAAlwSFlzAAALEwAACxMBAJqcGAAABjtJREFUaIHtm3lsFFUcxz+zu72AcrhYQuk25Qq9kIZSDpE7QLlvooCKgAYBDRJQAygRQdEKRBIhHmBAKEdo5IgIjQcghcqRWqAcgiAt0HL0gNJju7vz/GO661C6TCHQXdj5/DGZvOP7fvO+M53p7+2ThBBCCFuJ4wdIjcjcC6eWX54IFVn2HLAkmQOgW0pUODQfFpKAziNGqsi3rxZikUgZC3lzi5LdN511a3AptNkUOvNBBtg369Q6uPpt4RsgO+TNQIaUBAgEYEQCHAhAQnJ1c1erlGtck6qlN+iXYwdhEGMh8Be/SIjOD7sD0QvDxoK0LfJwmhC7umecdHU2YABk5LvHDT4UtBg+2zQ+DYzRhjCtOFea9+yGzNGXsjUvySeZ+l1fMxiOp2Yfd5UpU6/4ppwH4Oc8L+5SNg8uZF3voiV9/vu836tMvaKmHP0wVqdfWX7/WrWOu6M366vYGpTuDyb7BEceEEkozrtefedbqz4HJQnlx7QMKDpf0h2Ac64i9fPkTr/KSJq17nhC9EvaWNPA8Gyd+v6uMsUlxTflvC4Bd3eL+DUkSivCNqtC94A0Q7qt1dKXaV/UfCCYho1LyIUTB7IbAzYcAJVHVCVAYkycBRpOrpOvJR1cEDQQ5pwcegY2RP4RCvmxd2aDlM4iwIgR5zOh2KyMojyqCu5q73kzVYO6pffo51MMfMUeiLWG22D8om5mkJTP0DNjruTAxmlptyBvU9FB11gnpE6Q2DSuEQxLSQjXDM4NZe9XJINklTZw99eC73CVAhAfiM0QFONvcRZXGqBu+c9b1waAI1cuBHNFvWQw7whuUfsR+wbVGKBTmxi0m+g8TnQDPIxugIfRDfAwugEeRjfAw1RjQHma7WMobl92tPbD8T0q/w/In1JcANutR4fDCVu2A2x+9hRotvOZY9CnqO0g6EgrT0f7FCKVLrXuFGJeysZwKIm1prtvOmlQ7yXQaWirCzWTLt5SHgbbhx9Jgtz4wmMgdxBHQUplPs7soAkDzmyJUZWiUJY4lFyKHRnns1qTnKW6pTfol1MBIoypENDR9BfEbLe8C33znvsGpPWT998UYr/xdIqrs9JNLWHFBsYvDK/AssRX20Fgmt9Z9xE6JsurYGHpVivk1S+qU4OL8kFG9em8EAx/Z+QmValR/FTyeVZszmLHbHkdXAi6Nl5L+vSUKwX61GuReiCzLRikrlLmg3SzZzo6abWR/xSLHz4wX0FsF83BED6icdUJvXdRTUVEi5AZWtKRK0IngTkneNUji/YppPe52BUgFba8s0+Ij0xbX4LSHtYF7juM6/VCLPR4Mfr5mg1Q3KMsC7b8fKgV3IwqbgaSlY04X1be85KsFX2RSyEwj40Qty5iH/TPaZfv+gwt3FUyF7akHVwIWa9f/hrkD+XRYG4YvAuGSPFjocOXLevWIDydB6Ka9YDSQOs2cMTIFgg+FhTvqdB8A31BxsPouSAPoxvgYXQDPIxugIfRDfAwugEephoDbk8r6wcFyXcOgG2tY3rtB+VLOH+aGHnlIPz49pEBkNPo5k/g2CufguDYoHToviGqKQxN7/DQKTbrYrsR5AQ5A6Td0txHeQlejw0HCIt4E/zrmwLBONXQz1kpXR9za6kQ8xttqqelM3hkfDYM6R+/qGbjXlxyfRts7nowEq6tuTUV5OWiLkgrmYL3/Xj28emXYQMxiE/BP9zUGKKSmgXAxN4924K0ypRqFCJj0sWV3J0HVST8MQElWJ3Kn3ee0BoavFanl/sIS8dYc+C9+RscULHSnqp5ST5Jj8ToODBcHVOQ4ypTnFQWYZRz1dQrXEq+EaolfSbvaj996rU4HH6+MRj8/jX1dJXdfwsOAH7TTau1pOuVBVax7YnZQlQ7+gAEFvgPBENsjOUd1zQpf3aUXLZyrlqeDEj3+wRaVDS5z05KhdZrmzaB6Jth/++QcW5+qqJZ+bSpy+9fq9Zxd/R+fQBGZnVcBlLFPPsIIZJm7BgAlxbcqD4vmkgczNo5+Ci0WRM6TcsANamtMvfD9dW3fwMpRErFeRd4zzbS2tG/Qj4wXayGdvaIURB73pJXJR29dU76ejjZP+cs2CMdMyGkb4N2MOLljt3BMtesee/rPCj/AWDOO3/L3+qLAAAAAElFTkSuQmCC"; }, cdbb: function (e, t, i) {}, d23f: function (e, t, i) { "use strict"; var o = function () { var e = this, t = e.$createElement, i = e._self._c || t; return i( "span", [ i("span", { domProps: { innerHTML: e._s(e.titleTxt) }, on: { click: e.clickTitle }, }), i( "Popup", { style: { height: "80%" }, attrs: { round: "", position: "bottom", closeable: "", "get-container": "body", }, on: { closed: e.closePreview }, model: { value: e.showPreview, callback: function (t) { e.showPreview = t; }, expression: "showPreview", }, }, [ i("div", { staticClass: "preview-area" }, [ "video" === e.fileType ? i( "div", { staticClass: "player-wrapper" }, [i("VideoPlayer", { attrs: { source: e.viewPath } })], 1 ) : "audio" === e.fileType ? i( "div", [ i("AudioPlayer", { attrs: { source: e.viewPath, "audio-title": "音频文件", }, }), ], 1 ) : "img" === e.fileType ? i("div", { staticClass: "img-wrapper" }, [ i("img", { attrs: { src: e.viewPath }, on: { click: e.showImg }, }), ]) : "word" === e.fileType || "ppt" === e.fileType || "excel" === e.fileType || "pdf" === e.fileType ? i("div", [ i("iframe", { staticStyle: { width: "100%", height: "60vh" }, attrs: { src: e.viewPath, frameborder: "0" }, }), ]) : i( "div", [ i("Empty", { attrs: { description: "不支持该资源预览, 请至PC端学习", }, }), ], 1 ), ]), ] ), ], 1 ); }, s = [], a = i("b85c"), n = (i("91d5"), i("f0ca")), r = (i("8a58"), i("e41f")), c = (i("159b"), i("99af"), i("ac1f"), i("1276"), i("5319"), i("4c0f")), l = i("2613"), u = { name: "QuestionTitle", components: { VideoPlayer: c["a"], AudioPlayer: l["a"], Popup: r["a"], Empty: n["a"], }, props: { title: { type: String, default: "" }, previewUrl: { type: String, default: "" }, downloadUrl: { type: String, default: "" }, }, data: function () { return { titleTxt: "", fileUrl: "", fileType: "", withPreviewFile: !1, showPreview: !1, viewPath: "", }; }, watch: { title: function () { this.initTitle(); }, }, mounted: function () { this.initTitle(); }, methods: { initTitle: function () { (this.titleTxt = ""), (this.fileUrl = ""), (this.fileType = ""), (this.withPreviewFile = !1), (this.showPreview = !1), (this.viewPath = ""); var e = this.title || "", t = document.createElement("span"); t.innerHTML = e; var i = t.querySelectorAll("img.questionIndex"); i.length > 0 && i.forEach(function (e) { var t = e.getAttribute("data-index"), i = '<span class="spaceIndex" contenteditable="false" index=' .concat( t, ' style="margin-left:6px;margin-right:6px;" >(填空 ' ) .concat(t, " )</span>"); e.insertAdjacentHTML("beforebegin", i); var o = e.parentNode; o.removeChild(e); }); var o = t.querySelectorAll("a[data-preview_url_ueditor]"); o.length > 0 && (this.withPreviewFile = !0); var s = t.querySelectorAll("span[data-fileuid]"); s.length > 0 && (this.withPreviewFile = !0), (this.titleTxt = t.innerHTML); }, clickTitle: function (e) { if (this.withPreviewFile) { var t = e.target; if (t.hasAttribute("data-preview_url_ueditor") && t.dataset.url) (this.fileUrl = t.dataset.url), (this.fileType = this.getPerviewDocType()); else if ( t.hasAttribute("data-fileuid") && t.dataset.fileuid && t.className.indexOf("attachment") >= 0 ) { this.fileUrl = t.dataset.fileuid; var i = "." + t.className.split(/\s/g).pop(); this.fileType = this.getPerviewDocType(i); } this.doPreviewFile(this.fileType, this.fileUrl); } }, getPerviewDocType: function (e) { var t = e || this.fileUrl, i = "attachment"; return ( (i = t.indexOf(".doc") >= 0 ? "word" : t.indexOf(".ppt") >= 0 || t.indexOf(".pps") >= 0 ? "ppt" : t.indexOf(".xls") >= 0 ? "excel" : t.indexOf(".pdf") >= 0 ? "pdf" : t.indexOf(".mp4") >= 0 || t.indexOf(".wmv") >= 0 || t.indexOf(".mov") >= 0 || t.indexOf(".avi") >= 0 ? "video" : t.indexOf(".mp3") >= 0 || t.indexOf(".m4a") >= 0 || t.indexOf(".m4b") >= 0 || t.indexOf(".wav") >= 0 || t.indexOf(".webm") >= 0 || t.indexOf(".weba") >= 0 || t.indexOf(".mpeg") >= 0 || t.indexOf(".ogg") >= 0 || t.indexOf(".aac") >= 0 || t.indexOf(".flac") >= 0 ? "audio" : t.indexOf(".jpg") >= 0 || t.indexOf(".jpeg") >= 0 || t.indexOf(".png") >= 0 || t.indexOf(".gif") >= 0 || t.indexOf(".bmp") >= 0 ? "img" : "attachment"), i ); }, doPreviewFile: function (e, t) { if ("word" === e || "ppt" === e || "excel" === e || "pdf" === e) this.viewPath = this.getWordPreview(e, t); else if ("audio" === e || "video" === e || "img" === e) { var i = "https://ldoc.shou.org.cn/".concat(t); if (this.previewUrl && this.previewUrl.indexOf(t) >= 0) { var o, s = this.previewUrl.split(","), n = Object(a["a"])(s); try { for (n.s(); !(o = n.n()).done; ) { var r = o.value; if (r.indexOf(t) >= 0) { i = r; break; } } } catch (c) { n.e(c); } finally { n.f(); } } this.viewPath = i; } this.showPreview = !0; }, getWordPreview: function (e, t) { var i = t.replace("doc/a@", ""); return "word" === e ? "//aia.shou.org.cn/wv/wordviewerframe.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( i ) : "ppt" === e ? "//aia.shou.org.cn/p/PowerPointFrame.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( i ) : "excel" === e ? "//aia.shou.org.cn/x/_layouts/xlviewerinternal.aspx?ui=zh-CN&WOPISrc=http://172.17.0.12:9999/wopi/files/".concat( i ) : "pdf" === e ? "/pdfview/web/viewer.html?pdfLink=https://ldoc.shou.org.cn/".concat( t ) : void 0; }, closePreview: function () { (this.fileUrl = ""), (this.fileType = ""), (this.viewPath = ""); }, }, }, d = u, p = (i("59d2"), i("2877")), h = Object(p["a"])(d, o, s, !1, null, "1640fef7", null); t["a"] = h.exports; }, d819: function (e, t, i) {}, db49: function (e, t, i) { "use strict"; t["a"] = { apiPrefix: "dotNet_api", isProduction: !0 }; }, dd69: function (e, t, i) { "use strict"; i("c5e9"); }, e067: function (e, t, i) { "use strict"; i("98a0"); }, e275: function (e, t, i) {}, e411: function (e, t, i) { "use strict"; i("4257"); }, e551: function (e, t, i) { "use strict"; var o = function () { var e = this, t = e.$createElement, o = e._self._c || t; return o( "div", { staticClass: "course-card", on: { click: e.showCourseDetail } }, [ o( "Row", { staticClass: "course-row" }, [ o("Col", { attrs: { span: "10" } }, [ o("div", { staticClass: "course-cover" }, [ o("img", { attrs: { src: e.courseData.courseCover ? e.courseData.courseCover : i("09d7"), }, }), ]), ]), o( "Col", { staticClass: "card-info", attrs: { span: "14" } }, [ o("h3", { staticClass: "course-title" }, [ e._v(e._s(e.courseData.courseName)), ]), o("p", { staticClass: "course-teacher" }, [ e._v("主持教师: " + e._s(e.courseData.teacherName)), ]), o( "Row", { staticClass: "card-sub-info" }, [ "search" === e.showType || "history" === e.showType ? o("Col", { attrs: { span: "20" } }, [ e._v( "开设学期: " + e._s(e.courseData.term || "-") ), ]) : "collect" === e.showType ? o("Col", { attrs: { span: "20" } }, [ e._v( "收藏时间: " + e._s(e.courseData.collectedTime || "-") ), ]) : e._e(), "search" === e.showType || "collect" === e.showType ? o( "Col", { staticStyle: { "text-align": "center" }, attrs: { span: "4" }, on: { click: function (t) { return ( t.stopPropagation(), e.collectOrCancel.apply(null, arguments) ); }, }, }, [ e.collectedStatus ? o("Icon", { attrs: { name: "like", size: "20", color: "#ff9800", }, }) : o("Icon", { attrs: { name: "like-o", size: "20", color: "#ff9800", }, }), ], 1 ) : e._e(), ], 1 ), ], 1 ), ], 1 ), ], 1 ); }, s = [], a = (i("e7e5"), i("d399")), n = (i("c3a6"), i("ad06")), r = (i("81e6"), i("9ffb")), c = (i("4d48"), i("d1e1")), l = i("db49"), u = { name: "CourseItem", components: { Row: c["a"], Col: r["a"], Icon: n["a"] }, props: { courseData: { type: Object, default: function () { return { courseId: "", courseName: "", courseCover: "", teacherName: "", term: "", isCollected: "", collectedTime: "", }; }, }, showType: { type: String, default: "search" }, }, data: function () { return { collectedStatus: !1 }; }, mounted: function () { this.collectedStatus = this.courseData.isCollected; }, methods: { showCourseDetail: function () { this.courseData.courseId && (window.location.href = "/course_detail/index.html?courseId=".concat( this.courseData.courseId )); }, collectOrCancel: function () { var e = this, t = this.collectedStatus ? "cancelCollectCourse" : "doCollectCourse", i = this.collectedStatus ? "取消收藏" : "收藏", o = [this.courseData.courseId], s = "dotNet_api" === l["a"].apiPrefix ? { _dataArr: o } : { courseId: this.courseData.courseId }; this.$API(t, s) .then(function (t) { "0" === t.code ? ((e.collectedStatus = !e.collectedStatus), a["a"].success("".concat(i, "成功!")), "collect" === e.showType && e.$emit("cancelCollected", e.courseData.courseId)) : a["a"].fail("".concat(i, "失败!")); }) .catch(function () { a["a"].fail("".concat(i, "失败!")); }); }, }, }, d = u, p = (i("dd69"), i("2877")), h = Object(p["a"])(d, o, s, !1, null, "67790b12", null); t["a"] = h.exports; }, e688: function (e, t, i) {}, ea61: function (e, t, i) {}, ec32: function (e, t) { e.exports = "data:image/png;base64,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"; }, f3df: function (e, t, i) { "use strict"; i.d(t, "f", function () { return r; }), i.d(t, "d", function () { return c; }), i.d(t, "a", function () { return l; }), i.d(t, "c", function () { return p; }), i.d(t, "e", function () { return u; }), i.d(t, "b", function () { return d; }); var o = i("b85c"), s = i("2909"), a = (i("ac1f"), i("1276"), i("d3b7"), i("d81d"), i("99af"), i("365c")), n = { userInfo: null, lang: null, currentRole: null, hostCourseList: null, faceCourseList: null, dictionaryData: null, }, r = function (e, t) { n[e] = t; var i = JSON.stringify(t); if ((sessionStorage.setItem(e, i), "userInfo" === e)) { var o = t.roleFlags || "", s = o.split(","), a = s[0]; s.indexOf("ROLE_MASTER_TEACH") >= 0 ? (a = "ROLE_MASTER_TEACH") : s.indexOf("ROLE_FACE_TEACH") >= 0 ? (a = "ROLE_FACE_TEACH") : s.indexOf("ROLE_TEACHER") >= 0 ? (a = "ROLE_TEACHER") : s.indexOf("ROLE_STUDENT") >= 0 && (a = "ROLE_STUDENT"), sessionStorage.setItem("currentRole", JSON.stringify(a)), (n.currentRole = a); } }, c = function (e) { return void 0 !== n[e] && null !== n[e] ? n[e] : JSON.parse(sessionStorage.getItem(e)); }, l = function () { for (var e in n) delete n[e]; var t = sessionStorage; t.clear(); }, u = function (e) { var t = c("studyCourseList"); null !== t && void 0 !== t && "[object Array]" === Object.prototype.toString.call(t) ? e && e(t) : Object(a["a"])("getStuCourseList") .then(function (e) { "0" === e.code && ((t = (e.data || []).map(function (e) { return e.courseId && !e.id && (e.id = e.courseId), e; })), r("studyCourseList", t)); }) .finally(function () { return e && e(t || []); }); }, d = function (e, t) { var i, n = c("studyCourseList") || [], r = c("hostCourseList") || [], l = c("faceCourseList") || [], u = "", d = [].concat( Object(s["a"])(n), Object(s["a"])(r), Object(s["a"])(l) ), p = Object(o["a"])(d); try { for (p.s(); !(i = p.n()).done; ) { var h = i.value; if (h.id === e || h.courseId === e) { u = h; break; } } } catch (f) { p.e(f); } finally { p.f(); } u ? t(u) : Object(a["a"])("getCourseDetail", { courseId: e }) .then(function (e) { "0" === e.code && (u = e.data || {}); }) .finally(function () { return t && t(u); }); }, p = function (e) { var t = c("dictionaryData"); null !== t && void 0 !== t && "[object Object]" === Object.prototype.toString.call(t) ? e && e(t) : Object(a["a"])("getDataDictionary") .then(function (e) { if ("0" === e.code) { var t = e.data || {}; r("dictionaryData", t); } }) .finally(function () { return e && e(t || {}); }); }; }, f650: function (e, t, i) { "use strict"; i("7dca"); }, f797: function (e, t, i) {}, fd27: function (e, t, i) {}, fd3a: function (e, t) { e.exports = "data:image/png;base64,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"; }, }, ]);