IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue项目 轮播组件 鼠标移入移出 免费/会员/收费课程 接口 -> 正文阅读

[JavaScript知识库]Vue项目 轮播组件 鼠标移入移出 免费/会员/收费课程 接口

components>index>NavSwiper.vue

<template>
  <div class="navswiper">
    <div class="navSwiperContent">
      <div class="navigation">
        <ul>
          <li
            v-for="(item, index) in categorys"
            :key="item.id"
            @mouseenter="mouseHover(item, index)"
            @mouseleave="mouseOut(index)"
          >
            <router-link to="/">
              {{ item.categoryName }} <i class="el-icon-arrow-right"></i
            ></router-link>
            <div class="category-detail" v-if="categorysDetail[index]">
              <div class="detail-main">
                <div class="detail-desc">基础知识</div>
                <div class="detail-list">
                  <div class="list-know">知识点:</div>
                  <div class="list-ul">
                    <a
                      v-for="(item, index) in tagArr"
                      :key="index"
                      href="javascript:;"
                      class="list-item"
                      >{{ item.tagName }}</a
                    >
                  </div>
                </div>
                <div class="detail-class">
                  <div
                    class="course-card"
                    v-for="(item, index) in courseArr"
                    :key="index"
                  >
                    <div class="course-image">
                      <img
                        src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F6520b595fd6efc3037d699850333ce0cbdb67d90ac29-dfn6dK_fw658&refer=http%3A%2F%2Fhbimg.b0.upaiyun.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640508743&t=0059d05dc2e100bfe5eaed222b16b2a1"
                        alt=""
                      />
                    </div>
                    <div class="right">
                      <div class="courseName">{{ item.courseName }}</div>
                      <div class="courseDegree">
                        {{ item.courseLevel }} ·{{
                          item.purchaseCnt + item.purchaseCounter
                        }}人购买
                      </div>
                      <div class="buy">
                        <div class="buy-free">
                          <!-- 如果是免费课 -->
                          <div
                            class="coursePriceZero"
                            v-if="item.discountPrice == 0"
                          >
                            <div class="learn">免费学习</div>
                            <img src="" alt="" />
                          </div>
                          <!-- 如果是会员 -->
                          <div
                            class="coursePrice"
                            v-else-if="item.isMember == 1"
                          >
                            <div class="courseMemberbg">
                              <span class="courseMember">会员专享</span>
                            </div>
                            <div class="price">¥{{ item.discountPrice }}</div>
                          </div>
                          <!-- 如果不是免费 也不是会员 -->
                          <div class="coursePricePri" v-else>
                            <div class="pricePri">¥{{ item.salePrice }}</div>
                          </div>
                        </div>
                        <div class="car">
                          <div class="cart-image">
                            <img src="/image/cart16.png" alt="" />
                          </div>
                          <span class="addcart">加入购物车</span>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </li>
        </ul>
      </div>
      <div class="sliders">
        <el-carousel height="460px">
          <el-carousel-item v-for="item in sliders" :key="item.id">
            <router-link to="">
              <img :src="item.imageUrl" :title="item.imageName" alt="" />
              <!-- <h3>{{}}</h3>
              <img
                src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F6520b595fd6efc3037d699850333ce0cbdb67d90ac29-dfn6dK_fw658&refer=http%3A%2F%2Fhbimg.b0.upaiyun.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640508743&t=0059d05dc2e100bfe5eaed222b16b2a1"
                class="sliders-item-image"
              /> -->
            </router-link>
          </el-carousel-item>
        </el-carousel>
      </div>
    </div>
    <!-- 课程分类组件 -->
    <CourseType />
  </div>
</template>

<script>
import CourseType from "@/components/index/CourseType.vue";
import request from "@/common/api/request";
import api from "@/common/api/NavSwiper/course";
export default {
  components: {
    CourseType,
  },
  name: "",
  data() {
    return {
      sliders: [], //轮播图数据
      categorys: [], //获取课程类型
      categorysDetail: [], //课程类型详情
      tagArr: [], //右侧数据
      querycourse: {
        pageNum: 1,
        pageSize: 4,
        entity: {
          firstCategory: "",
        },
      },
      courseArr: [], //课程信息
    };
  },
  created() {
    this.getSliders();
    this.getFirstCategorys();
    this.queryCourseTag();
    this.queryCourse();
  },
  methods: {
    //获取轮播图数据
    async getSliders() {
      let res = await request({
        url: "/api/slider/getSliders",
        method: "get",
        header: {
          "Content-Type": "application/json",
        },
      });
      this.sliders = res.data.list;
    },
    //获取课程分类(一级)
    async getFirstCategorys() {
      let res = await request({
        url: "/api/course/category/getFirstCategorys",
        method: "get",
        header: {
          "Content-Type": "application/json",
        },
      });
      console.log(res);
      this.categorys = res.data.list;
      this.categorysDetail = new Array(this.categorys.length);
      for (let i = 0; i < this.categorysDetail; i++) {
        this.categorysDetail[i] = false;
      }
      console.log(this.categorysDetail);
    },
    //课程分类的鼠标移入事件
    mouseHover(item, index) {
      this.$set(this.categorysDetail, index, true);
      this.querycourse.entity.firstCategory = item.id;
      this.queryCourseTag();
      this.queryCourse();
    },
    //课程分类的鼠标移出事件
    mouseOut(index) {
      this.$set(this.categorysDetail, index, false);
    },
    //查询课程标签
    async queryCourseTag() {
      let res = await api.queryCourseTag(this.querycourse);
      console.log(res);
      this.tagArr = res.data.pageInfo.list;
    },
    //查询课程表
    async queryCourse() {
      let res = await api.queryCourse(this.querycourse);
      console.log(res);
      this.courseArr = res.data.pageInfo.list;
      this.courseArr.forEach((item) => {
        switch (item.courseLevel) {
          case 1:
            item.courseLevel = "初级";
            break;
          case 2:
            item.courseLevel = "中级";
            break;
          case 3:
            item.courseLevel = "高级";
            break;
          default:
            item.courseLevel = "";
        }
      });
    },
  },
};
</script>

common>api>NavSwiper>course.js

import request from '../request'

export default {
  //查询课程标签
  queryCourseTag(params) {
    return request({
      url: '/api/course/tags/list',
      method: 'post',
      data: params,
      header: {
        "Content-Type": "application/json"
      }
    })
  },
  //查询课程
  queryCourse(params) {
    return request({
      url: '/api/course/search',
      method: 'post',
      data: params,
      header: {
        "Content-Type": "application/json"
      }
    })
  },
}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 11:49:07  更:2022-01-28 11:51:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:28:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码