|
@@ -1,45 +1,26 @@
|
|
|
<template>
|
|
|
<div class="container GCLS-BOOK-Container">
|
|
|
- <!-- <div v-if="!type" class="header-box">
|
|
|
- <Header />
|
|
|
- <Nav nav-value="书籍预览" />
|
|
|
- </div>
|
|
|
- <div v-else class="header-box">
|
|
|
- <div class="bookname">
|
|
|
- <i
|
|
|
- style="cursor: pointer; margin-right: 5px"
|
|
|
- class="el-icon-arrow-left"
|
|
|
- @click="back"
|
|
|
- />
|
|
|
- {{ name }}
|
|
|
- </div>
|
|
|
- </div> -->
|
|
|
<div
|
|
|
id="content-scroll"
|
|
|
class="content"
|
|
|
:class="[type ? 'content-top' : '']"
|
|
|
>
|
|
|
- <!-- <div
|
|
|
- id="content-tree"
|
|
|
- :class="[fullTree ? 'content-tree-full' : 'content-tree']"
|
|
|
- >
|
|
|
- <TreeView
|
|
|
- ref="treeView"
|
|
|
- :book-id="bookId"
|
|
|
- :change-id="changeId"
|
|
|
- :change-tree-data="changeTreeData"
|
|
|
- :current-tree-i-d="chapterId"
|
|
|
- />
|
|
|
- <div v-move class="moveBtn-nnpe" />
|
|
|
- </div> -->
|
|
|
<div
|
|
|
id="data-screen"
|
|
|
v-loading="loading"
|
|
|
:class="['inner', fullscreen ? 'inner-full' : '']"
|
|
|
>
|
|
|
- <!-- 显示答案按钮 -->
|
|
|
- <!-- <a v-if="chapterId" :class="['answerShow',isAnswerShow?'answerShowTrue':'']" @click="handleAnswerShow">显示答案</a> -->
|
|
|
- <!-- <a class="edit-btn" @click="handleEdit">编辑</a> -->
|
|
|
+ <div class="resule-box" v-if="$route.query.ViewMode === 'Result'">
|
|
|
+ <span>用时:{{ handleDateTime(this.duration) }}</span>
|
|
|
+ <span
|
|
|
+ >答对:<span style="color: #2ca767">{{ rightNumber }}</span>
|
|
|
+ 个</span
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ >答错:<span style="color: #ed342d">{{ errorNumber }}</span>
|
|
|
+ 个</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
<div v-if="chapterId" class="title-box">
|
|
|
<img
|
|
|
v-if="!treeFlag"
|
|
@@ -51,14 +32,6 @@
|
|
|
src="../assets/common/icon-treelist.png"
|
|
|
@click="chooseCourseware"
|
|
|
/>
|
|
|
- <!-- <h2 class="title">{{ chapterName }}</h2> -->
|
|
|
- <!-- <el-switch
|
|
|
- v-if="!treeFlag"
|
|
|
- v-model="switchvalue"
|
|
|
- active-color="#FF9900"
|
|
|
- active-text
|
|
|
- inactive-text="生词模式"
|
|
|
- /> -->
|
|
|
</div>
|
|
|
|
|
|
<template v-if="category == 'OC' || !category">
|
|
@@ -83,7 +56,7 @@
|
|
|
:theme-color="themeColor"
|
|
|
:is-show-title="false"
|
|
|
:task-model="TaskModel"
|
|
|
- :is-show-save="false"
|
|
|
+ :is-show-save="showSaveFlag"
|
|
|
:book-answer-content="bookAnswerContent"
|
|
|
:is-answer-item-show="isAnswerItemShow"
|
|
|
@finishTaskMaterial="finishTaskMaterial"
|
|
@@ -101,7 +74,7 @@
|
|
|
:is-show-title="false"
|
|
|
:is-answer-item-show="true"
|
|
|
:task-model="TaskModel"
|
|
|
- :is-show-save="true"
|
|
|
+ :is-show-save="showSaveFlag"
|
|
|
:book-answer-content="bookAnswerContent"
|
|
|
@finishTaskMaterial="finishTaskMaterial"
|
|
|
/>
|
|
@@ -119,20 +92,13 @@
|
|
|
:book-font-size="bookFontSize"
|
|
|
:is-answer-item-show="isAnswerItemShow"
|
|
|
:task-model="TaskModel"
|
|
|
- :is-show-save="false"
|
|
|
+ :is-show-save="showSaveFlag"
|
|
|
:book-answer-content="bookAnswerContent"
|
|
|
@finishTaskMaterial="finishTaskMaterial"
|
|
|
/>
|
|
|
</template>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- <Preview :context="context" :queIndex="queIndex" /> -->
|
|
|
-
|
|
|
- <!-- <a
|
|
|
- v-if="chapterId && treeFlag"
|
|
|
- class="screen-full"
|
|
|
- @click="finishPreviewGroupId()"
|
|
|
- /> -->
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -147,7 +113,7 @@ import Preview from "@/components/Preview";
|
|
|
import { getStaticContent } from "@/api/ajax";
|
|
|
import { setToken } from "@/utils/auth";
|
|
|
export default {
|
|
|
- name: "CourseView",
|
|
|
+ name: "CourseWare",
|
|
|
directives: {
|
|
|
move(el, bindings) {
|
|
|
el.onmousedown = function (e) {
|
|
@@ -177,14 +143,11 @@ export default {
|
|
|
return {
|
|
|
bookId: "",
|
|
|
chapterId: "",
|
|
|
- chapterName: "",
|
|
|
fullscreen: false, // 控制全屏
|
|
|
fullTree: false, // 全屏模式下树是否显示
|
|
|
context: null,
|
|
|
question: null, // 选择的模板题型
|
|
|
- queIndex: "",
|
|
|
treeFlag: true, // tree是否显示
|
|
|
- switchvalue: true, // 生词模式
|
|
|
isAnswerShow: false, // 是否显示答案
|
|
|
bookAnswerContent: "",
|
|
|
TaskModel: "",
|
|
@@ -196,75 +159,33 @@ export default {
|
|
|
loading: false,
|
|
|
bookFontSize: "",
|
|
|
showContent: false,
|
|
|
- bookName: [
|
|
|
- {
|
|
|
- name: "新实用汉语课本1",
|
|
|
- id: "002-20211006-10-NHVOMDLDRY",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "发展汉语初级综合(Ⅰ)",
|
|
|
- id: "002-20211007-06-4DGL2ZRIB5",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "HSK标准教程1",
|
|
|
- id: "002-20211007-14-UNYIWU8EKW",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "新实用汉语",
|
|
|
- id: "003-20210908-10-1ZWNGSASZL",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "新航标职业英语 综合英语(基础级)学生用书1(修订版)",
|
|
|
- id: "002-20211029-14-9VGMXLV2NU",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "新航标职业英语 综合英语(提高级)学生用书1 (第3版)",
|
|
|
- id: "002-20211011-10-GOLXUZST4G",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "新航标英语 汽车英语",
|
|
|
- id: "002-20211222-15-O7WVMR4XHK",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "新航标职业英语 英语视听说教程(入门级)1",
|
|
|
- id: "001-20211222-15-LXK64LQZST",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "新航标职业英语 综合英语(提高级)学生用书2(第3版)",
|
|
|
- id: "001-20220118-14-EZVO52PYXF",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "新航标职业英语 综合英语(基础级)学生用书2(修订版)",
|
|
|
- id: "002-20220208-09-FDKUJJSLI8",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "轻松学中文. 课本 .第1册",
|
|
|
- id: "002-20220312-11-HK93JKDAGR",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "轻松学中文. 课本. 第2册",
|
|
|
- id: "001-20220312-11-WU8XCRQMDB",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "轻松学中文 . 练习册 . 第1册",
|
|
|
- id: "001-20220429-18-ZDIKBFQ9DP",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "轻松学中文 . 练习册 . 第 2 册",
|
|
|
- id: "002-20220429-18-KIOM0VEXLY",
|
|
|
- },
|
|
|
- ],
|
|
|
isAnswerItemShow: true,
|
|
|
+ showSaveFlag: false,
|
|
|
+ rightNumber: 0,
|
|
|
+ errorNumber: 0,
|
|
|
+ duration: 0,
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
const _this = this;
|
|
|
- const Mname = "login_control-ParseAccessToken";
|
|
|
- getStaticContent(Mname, {
|
|
|
- access_token: _this.$route.query.AccessToken,
|
|
|
- }).then((res) => {
|
|
|
- setToken(res);
|
|
|
- });
|
|
|
+ if (_this.$route.query.AccessToken) {
|
|
|
+ const Mname = "login_control-ParseAccessToken";
|
|
|
+ getStaticContent(Mname, {
|
|
|
+ access_token: _this.$route.query.AccessToken,
|
|
|
+ }).then((res) => {
|
|
|
+ setToken(res);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (_this.$route.query.ViewMode === "Answer") {
|
|
|
+ // 答题模式下 显示提交按钮 隐藏查看答案按钮
|
|
|
+ this.showSaveFlag = true;
|
|
|
+ this.isAnswerItemShow = false;
|
|
|
+ } else if (_this.$route.query.ViewMode === "Result") {
|
|
|
+ this.isAnswerItemShow = false;
|
|
|
+ this.TaskModel = "ANSWER";
|
|
|
+ this.getUserAnswer();
|
|
|
+ }
|
|
|
+
|
|
|
_this.changeId();
|
|
|
},
|
|
|
mounted() {},
|
|
@@ -323,6 +244,11 @@ export default {
|
|
|
} else {
|
|
|
_this.context = JSON.parse(res.content);
|
|
|
}
|
|
|
+ setTimeout(() => {
|
|
|
+ if (_this.$route.query.ViewMode === "Answer") {
|
|
|
+ _this.$refs.previewBook.handleAnswerTimeStart();
|
|
|
+ }
|
|
|
+ }, 200);
|
|
|
} else {
|
|
|
const _this = this;
|
|
|
_this.context = null;
|
|
@@ -359,16 +285,87 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
finishTaskMaterial(data, time, rightNumber, errorNumber) {
|
|
|
- sessionStorage.setItem("userAnswers", data);
|
|
|
- console.log("用户提交的答案:" + data);
|
|
|
- console.log("答题时间" + time);
|
|
|
- console.log("答对个数" + rightNumber);
|
|
|
- console.log("答错个数" + errorNumber);
|
|
|
+ // sessionStorage.setItem("userAnswers", data);
|
|
|
+ // console.log("用户提交的答案:" + data);
|
|
|
+ // console.log("答题时间" + time);
|
|
|
+ // console.log("答对个数" + rightNumber);
|
|
|
+ // console.log("答错个数" + errorNumber);
|
|
|
+ this.loading = true;
|
|
|
+ const AppID = this.$route.query.AppID;
|
|
|
+ const AccessToken = this.$route.query.AccessToken;
|
|
|
+ const MethodName =
|
|
|
+ "/TeachingServer/BookIntegrationManager/SaveCoursewareExamAnswer";
|
|
|
+ let datas = {
|
|
|
+ courseware_id: this.$route.query.CoursewareID,
|
|
|
+ user_id: this.$route.query.UserID,
|
|
|
+ business_id: this.$route.query.BusinessID,
|
|
|
+ exam_answer: {
|
|
|
+ duration: time,
|
|
|
+ count_right: rightNumber,
|
|
|
+ count_error: errorNumber,
|
|
|
+ content: data,
|
|
|
+ },
|
|
|
+ };
|
|
|
+ getContens(MethodName, datas, AccessToken, AppID)
|
|
|
+ .then((res) => {
|
|
|
+ this.loading = false;
|
|
|
+ if (res.status === 1) {
|
|
|
+ this.$message.success("提交成功");
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
},
|
|
|
finishPreviewGroupId() {
|
|
|
- console.log(this.$refs.previewBook.submitPreviewGroupId());
|
|
|
this.$refs.previewBook.submitPreviewGroupId();
|
|
|
},
|
|
|
+ // 获取用户答题信息
|
|
|
+ getUserAnswer() {
|
|
|
+ this.loading = true;
|
|
|
+ const AppID = this.$route.query.AppID;
|
|
|
+ const AccessToken = this.$route.query.AccessToken;
|
|
|
+ const MethodName =
|
|
|
+ "/TeachingServer/BookIntegrationManager/GetCoursewareExamAnswer";
|
|
|
+ let datas = {
|
|
|
+ courseware_id: this.$route.query.CoursewareID,
|
|
|
+ user_id: this.$route.query.UserID,
|
|
|
+ business_id: this.$route.query.BusinessID,
|
|
|
+ };
|
|
|
+ getContens(MethodName, datas, AccessToken, AppID)
|
|
|
+ .then((res) => {
|
|
|
+ this.loading = false;
|
|
|
+ if (res.status === 1) {
|
|
|
+ let exam_answer = res.exam_answer
|
|
|
+ ? JSON.parse(res.exam_answer)
|
|
|
+ : null;
|
|
|
+ if (!exam_answer) return;
|
|
|
+ this.bookAnswerContent = exam_answer.content;
|
|
|
+ this.duration = exam_answer.duration;
|
|
|
+ this.rightNumber = exam_answer.count_right;
|
|
|
+ this.errorNumber = exam_answer.count_error;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleDateTime(time) {
|
|
|
+ if (parseInt(time / 60) < 10) {
|
|
|
+ time =
|
|
|
+ ("0" + parseInt(time / 60)).substring(
|
|
|
+ ("0" + parseInt(time / 60)).length - 2
|
|
|
+ ) +
|
|
|
+ ":" +
|
|
|
+ ("0" + (time % 60)).substring(("0" + (time % 60)).length - 2);
|
|
|
+ } else {
|
|
|
+ time =
|
|
|
+ parseInt(time / 60) +
|
|
|
+ ":" +
|
|
|
+ ("0" + (time % 60)).substring(("0" + (time % 60)).length - 2);
|
|
|
+ }
|
|
|
+ return time;
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
@@ -590,6 +587,13 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+.resule-box {
|
|
|
+ width: 860px;
|
|
|
+ margin: 0 auto 20px auto;
|
|
|
+ > span {
|
|
|
+ margin-right: 24px;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|
|
|
<style lang="scss">
|
|
|
.GCLS-BOOK-Container {
|