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知识库 -> el-tabs和el-steps切换以及steps点击事件 -> 正文阅读

[JavaScript知识库]el-tabs和el-steps切换以及steps点击事件

首先,还是百度了一下示例,但是这些人的效果都不太满意,并且还有bug,故而自己改造了一下代码。

<template>
  <div>
    <el-steps :active="active_index - 0" simple style="margin-top: 20px">
      <el-step
          v-for="(item,index) of stepParams"
          :key="index"
          :title="item.title"
          :icon="item.icon"
          :status="item.status"
          :class="stepSuc.includes(index) ? 'stepSuc':'stepErr'"
          @click.native="handleStep(index)"
      />
    </el-steps>
    <el-tabs :tab-position="'left'" v-model="active" style="height: 500px;" @tab-click="handleTabStep">
      <el-tab-pane label="步骤一" name="0">步骤一</el-tab-pane>
      <el-tab-pane label="步骤二" name="1">步骤二</el-tab-pane>
      <el-tab-pane label="步骤三" name="2">步骤三</el-tab-pane>
      <el-tab-pane label="步骤四" name="3">步骤四</el-tab-pane>
    </el-tabs>
  </div>
</template>

<script>
export default {
  name: "xxxxCompent",
  props: {
    parameter: {}
  },
  data() {
    return {
      // 步骤
      active_index: 0,
      active: '0',
      // 已选步骤
      stepSuc: [0],
      // 步骤参数
      stepParams: [
        {
          title: '步骤一',
          icon: 'el-icon-edit',
          status: 'process'
        },
        {
          title: '步骤二',
          icon: 'el-icon-upload',
          status: 'wait'
        },
        {
          title: '步骤三',
          icon: 'el-icon-picture',
          status: 'wait'
        },
        {
          title: '步骤四',
          icon: 'el-icon-circle-check',
          status: 'wait'
        },
      ],
    }
  },
  methods: {
    // 点击步骤条
    handleStep(val) {
      if (this.stepSuc.includes(val)) {
        this.active_index = val;
        this.active = val.toString();
      }
      this.handleStatus();
    },
    // 点击tab
    handleTabStep() {
      this.stepSuc = [];
      this.active_index = parseInt(this.active);
      let temp = this.active_index;
      while (temp !== 0) {
        this.stepSuc.push(--temp);
      }
      this.handleStatus();
    },
    handleStatus(){
      switch (this.active_index){
        case 0:
          this.stepParams[0].status = 'process';
          this.stepParams[1].status = 'wait';
          this.stepParams[2].status = 'wait';
          this.stepParams[3].status = 'wait';
          break;
        case 1:
          this.stepParams[0].status = 'finish';
          this.stepParams[1].status = 'process';
          this.stepParams[2].status = 'wait';
          this.stepParams[3].status = 'wait';
          break;
        case 2:
          this.stepParams[0].status = 'success';
          this.stepParams[1].status = 'finish';
          this.stepParams[2].status = 'process';
          this.stepParams[3].status = 'wait';
          break;
        case 3:
          this.stepParams[0].status = 'success';
          this.stepParams[1].status = 'success';
          this.stepParams[2].status = 'finish';
          this.stepParams[3].status = 'process';
          break;
        default:
          this.stepParams[0].status = 'process';
          this.stepParams[1].status = 'wait';
          this.stepParams[2].status = 'wait';
          this.stepParams[3].status = 'wait';
          break;
      }
    },
    // 组件点击上一步
    handleLastStep() {
      if (--this.active_index === 0) {
        this.active_index = 0
      }
    },
    // 组件点击下一步
    handleNextStep() {
      this.stepSuc.push(++this.active_index)
    },
  },
}
</script>

<style scoped>
.stepSuc :hover {
  cursor: pointer;
}

.stepErr :hover {
  cursor: not-allowed;
}

</style>

在这里插入图片描述
参照连接:https://blog.csdn.net/weixin_44769310/article/details/104655670
https://blog.csdn.net/weixin_42614080/article/details/104393335

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:14:27  更:2022-04-09 18:14:31 
 
开发: 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 2:47:57-

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