现在后端部分已经完成了,接下来要实现前端部分,首先我们要从课程信息的页面跳转到信息确认的页面,这个功能之前在
chapter.vue的next()
方法中已经实现了。
在publish.vue页面需要做两件事情:从路由中得到courseId
,调用接口显示数据。
(1)先实现前端的接口course.vue。
// 根据id查询课程确认信息
getpublishCourseInfo(id){
return request({
url:`/eduservice/edu-course/getpublishCourseInfo/${id}`,
method: 'get',
})
}
(2)从路由中拿到courseId
publish.vue
created() {
if(this.$route.params && this.$route.params.id) {
this.courseid = this.$route.params.id
}
}
(3)调接口
import publishCourse from "@/api/edu/course.js";
getpublishCourseInfo(){
publishCourse.getpublishCourseInfo(this.courseid)
.then(resp => {
this.publishCourse = resp.data.publishCourse
})
}
(4)显示数据
(5)样式
加亿点点样式。
<template>
<div class="app-container">
<h2 style="text-align: center">发布新课程</h2>
<el-steps
:active="3"
process-status="wait"
align-center
style="margin-
bottom: 40px;"
>
<el-step title="填写课程基本信息" />
<el-step title="创建课程大纲" />
<el-step title="最终发布" />
</el-steps>
<div class="ccInfo">
<img :src="publishCourse.cover" />
<div class="main">
<h2>{{ publishCourse.title }}</h2>
<p class="gray">
<span>共{{ publishCourse.lessonNum }}课时</span>
</p>
<p>
<span
>所属分类:{{ publishCourse.subjectLevelOne }} —
{{ publishCourse.subjectLevelTwo }}</span
>
</p>
<p>课程讲师:{{ publishCourse.teacherName }}</p>
<h3 class="red">¥{{ publishCourse.price }}</h3>
</div>
</div>
<el-form label-width="120px">
<el-form-item>
<el-button @click="previous">返回修改</el-button>
<el-button :disabled="saveBtnDisabled" type="primary" @click="publish"
>发布课程</el-button
>
</el-form-item>
</el-form>
</div>
</template>
<style scoped>
.ccInfo {
background: #f5f5f5;
padding: 20px;
overflow: hidden;
border: 1px dashed #ddd;
margin-bottom: 40px;
position: relative;
}
.ccInfo img {
background: #d6d6d6;
width: 500px;
height: 278px;
display: block;
float: left;
border: none;
}
.ccInfo .main {
margin-left: 520px;
}
.ccInfo .main h2 {
font-size: 28px;
margin-bottom: 30px;
line-height: 1;
font-weight: normal;
}
.ccInfo .main p {
margin-bottom: 10px;
word-wrap: break-word;
line-height: 24px;
max-height: 48px;
overflow: hidden;
}
.ccInfo .main p {
margin-bottom: 10px;
word-wrap: break-word;
line-height: 24px;
max-height: 48px;
overflow: hidden;
}
.ccInfo .main h3 {
left: 540px;
bottom: 20px;
line-height: 1;
font-size: 28px;
color: #d32f24;
font-weight: normal;
position: absolute;
}
</style>
课程信息确认的第一部分:课程确认信息的显示就实现了。测试如下。