|
|
@@ -1,15 +1,20 @@
|
|
|
<template>
|
|
|
<tab-side-component>
|
|
|
<back-title>课件详情</back-title>
|
|
|
- <div class="sub-title">浏览课件</div>
|
|
|
+ <div class="detail">
|
|
|
+ <div>课件名称:{{slide.name}}</div>
|
|
|
+ <div>所属课程:{{slide.courseName}}</div>
|
|
|
+ <div>创建时间:{{createTime}}</div>
|
|
|
+ <div>最后更新:{{updateTime}}</div>
|
|
|
+ <div>总页面数:{{slide.pages}} 页</div>
|
|
|
+ </div>
|
|
|
<c-button class="full-width mb-16" @click="handleReadSlide">浏览课件</c-button>
|
|
|
- <c-button class="full-width secondary mb-24" @click="handleQuizSetting">查看习题答题情况</c-button>
|
|
|
- <div class="sub-title">课件设置</div>
|
|
|
-<!-- <div class="re-upload-wrapper">-->
|
|
|
-<!-- <file-uploader placeholder="选取文件重新上传"/>-->
|
|
|
-<!-- <c-button class="secondary">确认修改</c-button>-->
|
|
|
-<!-- </div>-->
|
|
|
- <c-button class="secondary full-width mb-16" @click="handleQuizSetting">设置课件习题</c-button>
|
|
|
+ <a :href="slideUrl">
|
|
|
+ <c-button class="full-width mb-16 secondary">
|
|
|
+ 下载课件
|
|
|
+ </c-button>
|
|
|
+ </a>
|
|
|
+ <c-button class="full-width secondary mb-16" @click="handleQuizSetting">习题设置 & 习题完成统计</c-button>
|
|
|
<c-button class="error full-width mb-16">删除课件</c-button>
|
|
|
</tab-side-component>
|
|
|
</template>
|
|
|
@@ -18,17 +23,39 @@
|
|
|
import TabSideComponent from '@/components/TabSideComponent'
|
|
|
import CButton from '@/components/CButton'
|
|
|
import BackTitle from '@/components/BackTitle'
|
|
|
+import { mapState } from 'vuex'
|
|
|
+import { getSlideUrl } from '@/server/slide'
|
|
|
+import { SET_SRC } from '@/store/types/pdf-types'
|
|
|
|
|
|
export default {
|
|
|
components: { BackTitle, CButton, TabSideComponent },
|
|
|
data () {
|
|
|
return {
|
|
|
- slideId: this.$route.params.slideId
|
|
|
+ slideUrl: ''
|
|
|
}
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ ...mapState({
|
|
|
+ slide: state => state.pdf.slideInfo
|
|
|
+ }),
|
|
|
+ updateTime () {
|
|
|
+ return this.$moment(this.slide.updateAt).fromNow()
|
|
|
+ },
|
|
|
+ createTime () {
|
|
|
+ return this.$moment(this.slide.createAt).fromNow()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted () {
|
|
|
+ getSlideUrl({ slideId: this.slide.id }).then(res => {
|
|
|
+ this.slideUrl = res
|
|
|
+ this.$store.commit(SET_SRC, { src: res })
|
|
|
+ }).catch(err => {
|
|
|
+ this.$setErrorMessage('获取课件链接的过程中:' + err.response.data.msg)
|
|
|
+ })
|
|
|
+ },
|
|
|
methods: {
|
|
|
handleReadSlide () {
|
|
|
- this.$router.push({ name: 'pdf-reader', params: { id: '123' } })
|
|
|
+ this.$router.push({ name: 'pdf-reader', params: { slide: this.slide } })
|
|
|
},
|
|
|
handleQuizSetting () {
|
|
|
this.$router.push({ name: 'teacher-quiz-setting', params: { slideId: '123' } })
|
|
|
@@ -40,6 +67,23 @@ export default {
|
|
|
<style lang="scss" scoped>
|
|
|
@import '~@/style/theme.scss';
|
|
|
|
|
|
+.detail {
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 14px;
|
|
|
+ margin-bottom: 24px;
|
|
|
+ color: #7a8a9a;
|
|
|
+
|
|
|
+ div {
|
|
|
+ margin-top: 2px;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ div:not(:last-child) {
|
|
|
+ border-bottom: 1px dashed #aabaca;
|
|
|
+ padding-bottom: 2px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
.sub-title {
|
|
|
margin-bottom: 24px;
|
|
|
}
|