国家开放大学刷课脚本 - 全自动 - 焕新版🚀!

国家开放大学 国开 国开实验 广东开放大学 上海开放大学 四川开放大学 成都开放大学 .全自动.全能型.大作业.终考.直播.视频.自动,作业辅导,全能型,能直接使用,请自行尝试使用,专业视频加速解决方案

// ==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,iVBORw0KGgoAAAANSUhEUgAAAEkAAABQCAYAAABVqliPAAAGMUlEQVR4nO2cW6gVVRjHf3u0NG9pN0vNSC3LRI2iIiqKLLR6qMgSpHtZD0Yl9FAPBVEQveSFMBQfvJZlYFGBaNHdzPBWVlgnLfQkXc3qeNTO+WLpt2UcZ6299uyZs+fsMz9YnHNm1qzL/6yZ9a1vXUoiQgczCLgYGAycDowEhgElYCDQE9gL/KLXfgS+A7bp7xv0Z4fRUSJdBtwIjAOuAI6pIa124FPgC2A58EmK5YwlS5FMC7kDmASclVUmQBPwKrAI+CaLDLIQ6TpgGjAx7YQ9WAnMAd5IM9E0RTKv0ZPA1WklWAMfAU8AH6eRWBoi9QWeBx6MuVdOvFRrJgmZCzwG7KklkVpFugWYoT1VHO0qUCWR/gF+A7qFrrUBA4DjaykgsAN4VD/yiahFpFnAQwmeM2J8qN36V8AmoBn4PSKmqEBDgTHAaOBs4HLg5AT5mlb1QILnwIhUZegjIh9IdRwQkaUiMlmfT5JvOfQWkUkislhE9jlK0R5zbY2IDKg2z2oLOEZEtlchz2YRmS4iQ2oUxhYGicg0EdloESlOqJ1aj0xEGiciez3FaRaRqRkJYwv3qwCVRBKtx7i0RRolIq2eAs1M4ZVKGsyrOMOznKY+Y9MSqa+I7PLIdIeITKyTONEwXltzJXaLSL80RNrgkdl7dWw9tmA+0Ks9yr6pVpHmemSyLGfiRMMyjzosSSrSzR6Jz8+5QOWw0KMuU6oVqZeI/NcgApWDz1txQtyzgcXGXBwZIkRZA9ybyHqtH1M9BrxL4i7GDUsureDIMoPF04CWzqHNERiv564K48GrgPfDF+Ja0vwKGV3fSQUytALXVIgzL3ohKtINwDmOBGal5aOpI+vUc2FjBHBT+F70ddugfug4jDujX8hH1NnZo76wOLao1+Eg4ZZ0oUMg1C3SKAJhcRKWOU89rYcIdXUvO7rGbZ2su/cNWx11XhE1AbrrlI+NZ7L+t9aJZx3ZTgCOJfS63ardYxxtOmXTiCzTHi+OHqrLYZEmOAR4C/i7QUVq1frZMNNjh0W6yBFxUeZFrS+xVrZyAWoCjNIuz8ZAnZdvVPoDfzrqNjbQmQgbGxtcIMNu4DPH/YMiDXdEeCeDQuWR1Y4yDTcineqIYObGugKueg4JdMLPxq9dRKRmx71hxog803LzAPAtMErthaE6dmvX+yUd7M7MoNBpcooajQNCZTeN4y9dGPaKdlz7y8ZjhL7oBGIcreokr8RtOR96rPWow3oRabHc+zxQhePoUaHnK+MaztSbIDyad3A+cJzl9omBilELebbGSxVsIB96Bim4P9o94tQLSaF+bWmIlGfSEMk6W9IoRNc7JRKs0UWKipJoWWJXaEml0O+JaHSRUqErvG7Fh7sjKETyoBDJg6COq/U7C6VCpMq0B+pHKbCz14j0byGQk/2BYwaz4BAtRqRehRhOugW6PbPAzk9GpC8LgZw0GZG2O2KkMvbp5Hwf6LRRgZ31ge6x322J4rM1tKFbkTl/INDTHFbmoEB5ZAWhAe5Ra5cLDjI7LNK7wNeFLkew0HT/RFwlt9e/XLnBrFm/r1yYsEjrgae6ri6HadU1pAfKF6JOt6eB56pM1LaqPg+UHKuKbayKbkCK80w+ridH+A5XduZYJGMI967ymaPWNtjct68D5wL36Akyf1jibdRzSvKKEelhXYsepUUbQnREcVRdfY/h6AOcZJahhAzMfcDmHAsUZoju0ZNQ2bcCdwMvRgxms2DttfDD9TiuLE+YcesZofLs09V8R3hru/JsyeyIQIalce7sPLcks2XhWt3uaVsi1F1bwyrd8el7TpI5/ealmOuDYxeZ5nSd4wKPdY5RzIkSl1RId7SILLI8/4jtuTwKNCeBQGXaRKR/JL2RInKniCx3PLfQVaa8vW4Ddbd1LRj3xlr9AI9QU8bFAuAuV4TuWde6Sq5MIY0RGnx4AZheKV7eerf+GaQZ96qYj/NkH4HIYUvKYqI0bChu0bPd5qmz0Yu8ibQuhTR+UFeHsXd+1v0xxkx4Wz0dVZNHO8nYPOMTPttUxffImzxa3FN0Y0y1bPM4YiMRebW4zdS7cdmY4zDM3hdTyPLBngbzt/lUmJ/m3Mo31Q+W/jcN+B/ljTqwp+M9UAAAAABJRU5ErkJggg==";
    },
    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,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";
    },
    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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";
    },
  },
]);