|
@@ -2,11 +2,312 @@
|
|
|
* @Description: 专业详情
|
|
|
* @Author: 空白格
|
|
|
* @Date: 2022-08-29 10:13:44
|
|
|
- * @LastEditors: 空白格
|
|
|
- * @LastEditTime: 2022-08-29 10:13:44
|
|
|
+ * @LastEditors: wangcc
|
|
|
+ * @LastEditTime: 2022-08-29 12:05:02
|
|
|
* @FilePath: \veterans_client_web\src\views\EducationPromote\ProfessionalIntroduction\ProfessionalIntroductionIndex.vue
|
|
|
* @Copyright: Copyright (c) 2016~2022 by 空白格, All Rights Reserved.
|
|
|
-->
|
|
|
<template>
|
|
|
- <div>专业详情</div>
|
|
|
+ <div>
|
|
|
+ <div class="topBox">
|
|
|
+ <div class="_center">
|
|
|
+ <div class="package">
|
|
|
+ <div class="tit-img">
|
|
|
+ <img :src="skillDetail.img" alt />
|
|
|
+ </div>
|
|
|
+ <div class="right-top">
|
|
|
+ <div class="title-right">
|
|
|
+ <!-- <span class="tags">检验</span> -->
|
|
|
+ <span class="tag-title">{{ skillDetail.name }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="introduce">
|
|
|
+ <p>
|
|
|
+ <span style="margin-right: 6px">难度</span>
|
|
|
+ <el-rate v-model="skillDetail.difficult" disabled></el-rate>
|
|
|
+ </p>
|
|
|
+ <p>学习时间:{{ skillDetail.cycle }}个月</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="selected-box">
|
|
|
+ <div class="_center">
|
|
|
+ <div class="selected-center">
|
|
|
+ <div class="selected-title">
|
|
|
+ <h3>精选课程</h3>
|
|
|
+ <span @click="more">更多></span>
|
|
|
+ </div>
|
|
|
+ <div class="swpier-box" v-if="skillDetail.courseList.length > 0">
|
|
|
+ <swiper :options="swiperOption">
|
|
|
+ <swiper-slide v-for="(img, index) in skillDetail.courseList" :key="index">
|
|
|
+ <div class="news-box" @click="skillClick(img)">
|
|
|
+ <img :src="img.img" alt />
|
|
|
+ <div class="video"></div>
|
|
|
+ <p class="title">{{ img.name }}</p>
|
|
|
+ <!-- <p class="state">线上课程</p> -->
|
|
|
+ </div>
|
|
|
+ </swiper-slide>
|
|
|
+ </swiper>
|
|
|
+ <div class="swiper-button-prev" slot="button-prev"></div>
|
|
|
+ <div class="swiper-button-next" slot="button-next"></div>
|
|
|
+ </div>
|
|
|
+ <div v-else class="swpier-box">
|
|
|
+ <el-empty description="暂无课程"></el-empty>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="skill-box">
|
|
|
+ <div class="_center">
|
|
|
+ <div class="skill-center">
|
|
|
+ <h2>技能详解</h2>
|
|
|
+ <div v-html="skillDetail.description"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { getDetailBySchool } from '@/api/EducationPromote/index';
|
|
|
+export default {
|
|
|
+ name: 'SkillPackageIndex',
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ newsId: this.$route.query.id,
|
|
|
+ schoolName: this.$route.query.schoolName,
|
|
|
+ train: 3,
|
|
|
+ itemList: [
|
|
|
+ {
|
|
|
+ img: require('@/assets/images/selected.png')
|
|
|
+ },
|
|
|
+ {
|
|
|
+ img: require('@/assets/images/selected.png')
|
|
|
+ },
|
|
|
+ {
|
|
|
+ img: require('@/assets/images/selected.png')
|
|
|
+ },
|
|
|
+ {
|
|
|
+ img: require('@/assets/images/selected.png')
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ swiperOption: {
|
|
|
+ slidesPerView: 4,
|
|
|
+ // 设置前进后退按钮
|
|
|
+ navigation: {
|
|
|
+ nextEl: '.swiper-button-next',
|
|
|
+ prevEl: '.swiper-button-prev'
|
|
|
+ },
|
|
|
+ // 设置自动轮播
|
|
|
+ autoplay: {
|
|
|
+ delay: 2000 // 5秒切换一次
|
|
|
+ }
|
|
|
+ // 设置轮播可循环
|
|
|
+ // loop: true
|
|
|
+ },
|
|
|
+ skillDetail: {}
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getSkillDetail();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getSkillDetail() {
|
|
|
+ getDetailBySchool(this.newsId).then((res) => {
|
|
|
+ this.skillDetail = res.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ more() {
|
|
|
+ this.$router.push({
|
|
|
+ name: 'SelectedCoursesIndex',
|
|
|
+ query: { id: this.newsId }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 点击课程
|
|
|
+ * @date 2022-08-29
|
|
|
+ * @param {any} item
|
|
|
+ * @returns {any}
|
|
|
+ */
|
|
|
+ skillClick(item) {
|
|
|
+ this.$router.push({
|
|
|
+ path: '/skilltraining/coursevideo',
|
|
|
+ query: {
|
|
|
+ id: item.id
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.news-box {
|
|
|
+ width: 280px;
|
|
|
+ height: 174px;
|
|
|
+ // overflow: hidden;
|
|
|
+ position: relative;
|
|
|
+ display: inline-block;
|
|
|
+ p {
|
|
|
+ list-style: 30px;
|
|
|
+ }
|
|
|
+ .news-box {
|
|
|
+ font-size: 20px;
|
|
|
+ color: #2e2e2e;
|
|
|
+ }
|
|
|
+ .state {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #818181;
|
|
|
+ }
|
|
|
+}
|
|
|
+.news-box img {
|
|
|
+ cursor: pointer;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+.news-box img::after {
|
|
|
+ width: 70px;
|
|
|
+ height: 70px;
|
|
|
+ background-image: url('@/assets/images/shipin.png');
|
|
|
+ background-size: 70px 70px;
|
|
|
+ position: absolute;
|
|
|
+ top: 25%;
|
|
|
+ left: 35%;
|
|
|
+}
|
|
|
+.video {
|
|
|
+ width: 70px;
|
|
|
+ height: 70px;
|
|
|
+ background-image: url('@/assets/images/shipin.png');
|
|
|
+ background-size: 70px 70px;
|
|
|
+ position: absolute;
|
|
|
+ top: 25%;
|
|
|
+ left: 35%;
|
|
|
+}
|
|
|
+.title {
|
|
|
+ color: #2e2e2e;
|
|
|
+ margin-top: 10px;
|
|
|
+ font-size: 14px;
|
|
|
+}
|
|
|
+
|
|
|
+.topBox {
|
|
|
+ background-color: #43565f;
|
|
|
+ width: 100%;
|
|
|
+ padding-bottom: 40px;
|
|
|
+}
|
|
|
+._center {
|
|
|
+ width: 70%;
|
|
|
+ min-width: 70%;
|
|
|
+ margin: 0 auto;
|
|
|
+}
|
|
|
+.package {
|
|
|
+ display: flex;
|
|
|
+ padding-top: 35px;
|
|
|
+ justify-content: left;
|
|
|
+ .tit-img {
|
|
|
+ width: 266px;
|
|
|
+ height: 266px;
|
|
|
+ border: 1px #ccc dashed;
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ object-fit: fill;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .right-top {
|
|
|
+ margin-left: 30px;
|
|
|
+ color: #fff;
|
|
|
+ .title-right {
|
|
|
+ margin-bottom: 14px;
|
|
|
+ .tags {
|
|
|
+ width: 64px;
|
|
|
+ height: 28px;
|
|
|
+ font-size: 18px;
|
|
|
+ background-image: linear-gradient(153deg, #f89e42 0%, #ff7833 97%);
|
|
|
+ border-radius: 14px;
|
|
|
+ display: inline-block;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 28px;
|
|
|
+ }
|
|
|
+ .tag-title {
|
|
|
+ font-size: 26px;
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .introduce {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ p {
|
|
|
+ line-height: 30px;
|
|
|
+ height: 30px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: left;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .tag-btn {
|
|
|
+ padding: 10px 0;
|
|
|
+ .tag-state {
|
|
|
+ width: 320px;
|
|
|
+ height: 36px;
|
|
|
+ border: 2px solid #ffffff;
|
|
|
+ border-radius: 39px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 36px;
|
|
|
+ display: inline-block;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.selected-box,
|
|
|
+.skill-box {
|
|
|
+ margin-top: 20px;
|
|
|
+}
|
|
|
+.skill-box {
|
|
|
+ padding-bottom: 40px;
|
|
|
+}
|
|
|
+.selected-center,
|
|
|
+.skill-center {
|
|
|
+ background-color: #ffffff;
|
|
|
+ padding: 20px;
|
|
|
+}
|
|
|
+.selected-title {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: flex-end;
|
|
|
+ height: 40px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ h3 {
|
|
|
+ color: #222222;
|
|
|
+ font-size: 26px;
|
|
|
+ }
|
|
|
+ span {
|
|
|
+ color: #a3a3a3;
|
|
|
+ font-size: 14px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+}
|
|
|
+::v-deep .swiper-container {
|
|
|
+ width: 91%;
|
|
|
+}
|
|
|
+.swpier-box {
|
|
|
+ position: relative;
|
|
|
+ .swiper-button-prev {
|
|
|
+ width: 30px;
|
|
|
+ height: 174px;
|
|
|
+ top: 12%;
|
|
|
+ background: #f3f3f3;
|
|
|
+ }
|
|
|
+ .swiper-button-next {
|
|
|
+ width: 30px;
|
|
|
+ height: 174px;
|
|
|
+ top: 12%;
|
|
|
+ background: #f3f3f3;
|
|
|
+ }
|
|
|
+ .swiper-button-prev:after,
|
|
|
+ .swiper-button-next:after {
|
|
|
+ font-size: 30px;
|
|
|
+ color: #dedede;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|