现在后端部分已经完成了,接下来要实现前端部分,首先我们要从课程信息的页面跳转到信息确认的页面,这个功能之前在

chapter.vue的next()方法中已经实现了。

image-20220117195502103

在publish.vue页面需要做两件事情:从路由中得到courseId,调用接口显示数据。

(1)先实现前端的接口course.vue。

 // 根据id查询课程确认信息
    getpublishCourseInfo(id){
      return request({
          url:`/eduservice/edu-course/getpublishCourseInfo/${id}`,
          method: 'get',
      })
  }

(2)从路由中拿到courseId

publish.vue

image-20220117201426560

 created() {
    if(this.$route.params && this.$route.params.id) {
      this.courseid = this.$route.params.id
    }
  }

(3)调接口

import publishCourse from "@/api/edu/course.js";

image-20220117202013601

  getpublishCourseInfo(){
      publishCourse.getpublishCourseInfo(this.courseid)
      .then(resp => {
        this.publishCourse = resp.data.publishCourse
      })
    }

(4)显示数据

image-20220117202737681

(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>

课程信息确认的第一部分:课程确认信息的显示就实现了。测试如下。

image-20220117220652827