首页 > 其他分享 >Vue的step步骤条的使用

Vue的step步骤条的使用

时间:2024-05-10 11:34:20浏览次数:28  
标签:Vue center 步骤 clickNext step HelloWorld3 HelloWorld2 HelloWorld1 emit

效果如下:

代码:

1、父组件

<template>
  <el-container class="container">
    <el-steps :active="active" finish-status="success" simple style="margin-top: 20px;background-color: white;height: 30px;width: 34%">
      <el-step title="步骤 1" ></el-step>
      <el-step title="步骤 2" ></el-step>
      <el-step title="步骤 3" ></el-step>
    </el-steps>
    <el-card style="margin-top: 20px;width: 50%;">
      <hello-world1 v-if="active==0" @clickPrev="prev()" @clickNext="next()"></hello-world1>
      <hello-world2 v-if="active==1" @clickPrev="prev()" @clickNext="next()"></hello-world2>
      <hello-world3 v-if="active==2" @clickPrev="prev()" @clickNext="next()"></hello-world3>
    </el-card>
  </el-container>
</template>

<script>
import HelloWorld1 from "@/components/HelloWorld1.vue";
import HelloWorld2 from "@/components/HelloWorld2.vue";
import HelloWorld3 from "@/components/HelloWorld3.vue";
export default {
  name: 'HomeView',
  components: {
    HelloWorld3,
    HelloWorld2,
    HelloWorld1
  },
  data() {
    return {
      active: 0
    }
  },
  created() {
  },
  methods:{
    next() {
      console.log(this.active)
      this.active = this.active + 1
    },
    prev() {
      --this.active
    },

  }
}
</script>
<style scoped>
.container{
  width: 100%;
  height: 800px;
  display: flex;
  flex-direction: column;
  /*justify-content: center;*/
  align-items: center;
  background-color: #CAE1FF;
}
</style>

子组件HelloWorld1

<template>
  <div class="hello">
    <div style="color: blue">这是子组件HelloWorld1</div>
    <div style="position: absolute;bottom: 90px;right: 400px;">
      <el-button plain @click="clickNext()">下一步<i class="el-icon-arrow-right el-icon--right" /></el-button>
    </div>
  </div>
</template>

<script>
let that
export default {
  name: 'HelloWorld1',
  methods:{
    clickNext(){
      this.$confirm('检测到未保存的内容,是否在离开页面前保存修改?', '确认信息', {
        distinguishCancelAndClose: true,
        confirmButtonText: '保存',
        cancelButtonText: '取消'
      }).then(() => {
        this.$message({
          type: 'info',
          message: '保存成功'
        })
        this.$emit('clickNext')
      }).catch(action => {
        if(action === 'cancel'){
          this.$emit('clickNext')
        }
      })
    }

  }
}
</script>

<style scoped lang="less">
.hello{
  width: 100%;
  height: 600px;
  display: flex;
  justify-content: center;
  align-items: center;

}
</style>

 

子组件HelloWorld2

<template>
  <div class="hello">
    <div style="color: red">这是子组件HelloWorld2</div>
    <div style="position: absolute;bottom: 90px;right: 400px;">
      <el-button icon="el-icon-arrow-left" plain @click="prev()">上一步</el-button>
      <el-button plain @click="clickNext()">下一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
    </div>
  </div>
</template>

<script>
let that
export default {
  name: 'HelloWorld2',
  methods:{
    prev() {
      this.$emit('clickPrev')
    },
    clickNext() {
      this.$confirm('检测到未保存的内容,是否在离开页面前保存修改?', '确认信息', {
        distinguishCancelAndClose: true,
        confirmButtonText: '保存',
        cancelButtonText: '取消'
      }).then(() => {
        this.$message({
          type: 'info',
          message: '保存成功'
        })
        this.$emit('clickNext')
      }).catch(action => {
        if(action === 'cancel'){
          this.$emit('clickNext')
        }
      })
    }
  }
}
</script>

<style scoped lang="less">
.hello{
  width: 100%;
  height: 600px;
  display: flex;
  justify-content: center;
  align-items: center;
}
</style>

 

子组件HelloWorld3

<template>
  <div class="hello">
    <div style="color: green">这是子组件HelloWorld3</div>
    <div style="position: absolute;bottom: 90px;right: 400px;">
      <el-button icon="el-icon-arrow-left" plain @click="prev()">上一步</el-button>
    </div>
  </div>
</template>

<script>
let that
export default {
  name: 'HelloWorld3',
  methods:{
    prev() {
      this.$emit('clickPrev')
    },
  }
}
</script>

<style scoped lang="less">
.hello{
  width: 100%;
  height: 600px;
  display: flex;
  justify-content: center;
  align-items: center;
}
</style>

 

标签:Vue,center,步骤,clickNext,step,HelloWorld3,HelloWorld2,HelloWorld1,emit
From: https://www.cnblogs.com/zwh0910/p/18183971

相关文章

  • 黑马-Vue前端
    前言HTML:负责网页的结构(标签:form表单/table表格/a/div/span)CSS:负责网页的表现(样式:color/font/background/width/height)JavaScript:负责网页的行为(交互效果)创建一个文件夹输入cmd执行code.回车,打开VsCodeVue一款用于构建用户界面的渐进式的JavaScript框架......
  • 移动端步骤1
       <template><!--新计划预约--><divclass="whmainbgf"style="background-color:#f4f7f7"><divclass="headerw"><van-row><van-col@click="backFn"span=&qu......
  • vue学习--模板语法(五、选项卡案例)
    案例:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><scriptsrc="https://cdn.j......
  • vue学习--模板语法(四、属性样式绑定&流程语句)
    目录3.5属性绑定1.Vue如何动态处理属性?2.v-model的底层实现原理分析3.6样式处理1.class样式处理2.style样式处理3.7分支循环结构1.分支结构2.v-if与v-show区别3.循环结构3.5属性绑定1.Vue如何动态处理属性?v-bind指令用法<av-bind:href='url'>跳转</a>缩写形式<a......
  • 学习python步骤
    参考链接:https://zhuanlan.zhihu.com/p/693208513一、Python基础学习Python语言基础的路线可以分为以下几个阶段:Python3入门:了解Python3的安装方法、如何运行Python程序以及交互模式的使用,同时学习注释的添加方法。数据类型:掌握Python中的各种数据类型,包括数字、布尔值、......
  • 关于vue2自己得到的陈果(不懂的知识点)
    ref引用相关的知识点:ref='ruleRef'this.$refs.ruleRef.resetFields()        只针对表单的重置this,$refs.ruleRef.validate(valid=>{    这里validate是进行一次检验,参数是一个回调函数,valid是一个布尔值,表示表单的检验是否通过if(!valid)......
  • vue-router单页面应用的多标签页使用问题
    正常的思维做多vue页面应用,我们的第一反应是配置多个入口点,多个vue应用,编译成多个HTML文件,由服务器来决定路由。这是正常的思维。但谁知道单页面应用也能做到类似的效果呢。单页面不过是服务器路由变成了客户端路由,但通过一些技巧,也能实现类似服务器多页面路由的效果。客户端路......
  • Vue入门到关门之Vue3学习
    一、常用API注意:本文项目均使用脚手架为Vite1、setup函数(1)介绍如果在项目中使用配置项API,那么写起来就和vue2的写法是一样的;但是如果在项目中写的是组合式API,那么组件中所用到的:数据、方法等等,均要配置在setup中。此外,setup()钩子也是在组件中使用组合式API的入口,通常只在......
  • Vue3——Vue Router
    安装vue-router依赖包npminstallvue-router@4创建router文件夹,然后在里面创建一个index.ts文件,用于定义你的路由配置//index.tsimport{createRouter,createWebHashHistory}from"vue-router";import{routes}from"./routes";//创建一个路由实例co......
  • Vue入门到关门之Vue2高级用法
    一、在vue项目中使用ref属性ref属性是Vue.js中用于获取对DOM元素或组件实例的引用的属性。通过在普通标签上或组件上添加ref属性,我们可以在JavaScript代码中使用this.$refs.xxx来访问对应的DOM元素或组件实例。放在普通标签上,通过this.$refs.名字---》取到的是do......