|
|
@@ -10,14 +10,19 @@
|
|
|
<show-transition>
|
|
|
<slide-detail v-if="showMore" :slide="slide"></slide-detail>
|
|
|
</show-transition>
|
|
|
- <div class="mb-24"><strong class="">{{slide.name}}</strong></div>
|
|
|
- <c-button block theme="blue" standout class="mb-12" @click="handleReadSlide" icon="play_arrow" no-bold>浏览课件
|
|
|
- </c-button>
|
|
|
- <a :href="slideUrl">
|
|
|
- <c-button block theme="green" no-bold class="mb-32" icon="cloud_download">
|
|
|
- 下载课件
|
|
|
+ <div class="mb-12 vertical-center">
|
|
|
+ <strong class="slide-name">{{slide.name}}</strong>
|
|
|
+ <c-button text theme="red" :left="8" @click="handleDeleteSlide" icon="close">删除课件</c-button>
|
|
|
+ </div>
|
|
|
+ <div class="vertical-center">
|
|
|
+ <c-button block theme="blue" standout class="mb-12" @click="handleReadSlide" icon="play_arrow" no-bold>浏览课件
|
|
|
</c-button>
|
|
|
- </a>
|
|
|
+ <a :href="slideUrl">
|
|
|
+ <c-button text theme="green" :left="8" no-bold class="mb-16" icon="cloud_download">
|
|
|
+ 下载
|
|
|
+ </c-button>
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
<div class="sub-title">
|
|
|
课件信息设置
|
|
|
<c-button :theme="showSettings ? 'blue' : 'normal'" :left="8" text
|
|
|
@@ -28,24 +33,30 @@
|
|
|
</div>
|
|
|
<show-transition>
|
|
|
<div v-if="showSettings">
|
|
|
+ <div class="mb-8">
|
|
|
+ <b>幻灯片状态设置</b>
|
|
|
+ </div>
|
|
|
+ <slide-state-bar :state="this.slide.state" @change-state="handleChangeState"></slide-state-bar>
|
|
|
+ <div v-if="this.slide.state === 'DRAFT'" class="tip mb-32">
|
|
|
+ 提示:学生无法查看处于草稿状态的幻灯片,如果希望公开请设置为其他状态
|
|
|
+ </div>
|
|
|
<div class="mb-8">
|
|
|
<b>修改课件名称</b>
|
|
|
</div>
|
|
|
- <div class="mb-16 modify-slide-name">
|
|
|
+ <div class="mb-16 vertical-center">
|
|
|
<c-input placeholder="在此输入课件新名称" v-model="newSlideName"></c-input>
|
|
|
<c-button :left="8" text theme="green" icon="check" @click="handleModifySlideName">确认</c-button>
|
|
|
</div>
|
|
|
<div class="mb-8">
|
|
|
- <b>幻灯片状态设置</b>
|
|
|
+ <b>修改课件文件</b>
|
|
|
</div>
|
|
|
- <slide-state-bar :state="this.slide.state" @change-state="handleChangeState"></slide-state-bar>
|
|
|
- <div v-if="this.slide.state === 'DRAFT'" class="tip mb-32">
|
|
|
- 提示:学生无法查看处于草稿状态的幻灯片,如果希望公开请设置为其他状态
|
|
|
+ <div class="vertical-center mb-16">
|
|
|
+ <file-uploader accept="application/pdf" @change="handleFileChanged" ></file-uploader>
|
|
|
+ <c-button :left="8" text theme="green" icon="file_upload" @click="handleModifyFile">替换</c-button>
|
|
|
</div>
|
|
|
+ <c-button block theme="blue" class="mb-24" @click="handleQuizSetting" icon="edit">习题设置</c-button>
|
|
|
</div>
|
|
|
</show-transition>
|
|
|
- <c-button block theme="blue" class="mb-16" @click="handleQuizSetting" icon="edit">习题设置</c-button>
|
|
|
- <c-button block theme="red" class="mb-16" @click="handleDeleteSlide" icon="close">删除课件</c-button>
|
|
|
</tab-side-component>
|
|
|
</template>
|
|
|
|
|
|
@@ -54,23 +65,34 @@ import TabSideComponent from '@/components/Layouts/TabSideComponent'
|
|
|
import CButton from '@/components/Basic/CButton'
|
|
|
import BackTitle from '@/components/Basic/BackTitle'
|
|
|
import { mapState } from 'vuex'
|
|
|
-import { getSlideUrl, modifySlide, modifySlideState, deleteSlide } from '@/server/slide'
|
|
|
+import { getSlideUrl, modifySlide, modifySlideState, deleteSlide, modifySlideFile } from '@/server/slide'
|
|
|
import { SET_SLIDE_INFO, SET_SRC } from '@/store/types/pdf-types'
|
|
|
import SlideDetail from '@/components/Details/SlideDetail'
|
|
|
import slideStateTranslation from '@/enums/slide-state-translation'
|
|
|
import CInput from '@/components/Basic/CInput'
|
|
|
import SlideStateBar from '@/components/Details/SlideStateBar'
|
|
|
import ShowTransition from '@/animations/ShowTransition'
|
|
|
+import FileUploader from '@/components/Basic/FileUploader'
|
|
|
|
|
|
export default {
|
|
|
- components: { CInput, BackTitle, CButton, TabSideComponent, SlideDetail, SlideStateBar, ShowTransition },
|
|
|
+ components: {
|
|
|
+ FileUploader,
|
|
|
+ CInput,
|
|
|
+ BackTitle,
|
|
|
+ CButton,
|
|
|
+ TabSideComponent,
|
|
|
+ SlideDetail,
|
|
|
+ SlideStateBar,
|
|
|
+ ShowTransition
|
|
|
+ },
|
|
|
data () {
|
|
|
return {
|
|
|
slideUrl: '',
|
|
|
slideStateTranslation,
|
|
|
newSlideName: '',
|
|
|
showMore: false,
|
|
|
- showSettings: true
|
|
|
+ showSettings: true,
|
|
|
+ newFile: null
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -105,6 +127,10 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
handleModifySlideName () {
|
|
|
+ if (!this.newSlideName) {
|
|
|
+ this.$setInfoMessage('还没有输入新的课件名称')
|
|
|
+ return
|
|
|
+ }
|
|
|
modifySlide({ id: this.slide.id, name: this.newSlideName }).then(res => {
|
|
|
this.$setSuccessMessage('修改成功')
|
|
|
this.$store.commit(SET_SLIDE_INFO, { slideInfo: res })
|
|
|
@@ -120,6 +146,15 @@ export default {
|
|
|
}).catch(err => {
|
|
|
this.$setErrorMessage(err.response.data.msg)
|
|
|
})
|
|
|
+ },
|
|
|
+ handleFileChanged (file) {
|
|
|
+ this.newFile = file || null
|
|
|
+ },
|
|
|
+ handleModifyFile () {
|
|
|
+ this.$setInfoMessage('文件上传中...')
|
|
|
+ modifySlideFile({ id: this.slide.id, file: this.newFile })
|
|
|
+ .then(res => this.$setSuccessMessage('修改课件文件成功'))
|
|
|
+ .catch(err => this.$setErrorMessage(err.response.data.msg))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -144,6 +179,11 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+.slide-name {
|
|
|
+ font-size: 18px;
|
|
|
+ color: #6a7a8a;
|
|
|
+}
|
|
|
+
|
|
|
.sub-title {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
@@ -165,15 +205,6 @@ export default {
|
|
|
color: $theme-red
|
|
|
}
|
|
|
|
|
|
-.modify-slide-name {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- .c-input {
|
|
|
- flex: 1
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
.tip {
|
|
|
color: $theme-red;
|
|
|
font-size: 12px;
|