elementui步骤条自定义点击跳转页面,返回步骤条保留信息

先看效果图
在这里插入图片描述
如果没有点击下一步,步骤条将不可点击,点击下一步可返回上一步,步骤条也可以来回点击跳转页面,还可以转到其他页面,回来后步骤条依然没有改变,保留状态,这个是我自己想的方法,可能有一些不太对,但是我这边大致功能都能实现,如果有什么问题可以指出。

代码
这是我的目录结构,现实中根据你项目需求来
在这里插入图片描述

91.vue(起名不规范,这是我专门的测试页面)
步骤条单独是一个组件

<template>
  <div class="main">
      <el-button type="primary" @click="one()">首页</el-button>

    <el-steps :active="active" finish-status="success">
      <el-step
        v-for="(item,index) of stepTitle"
        :key="index"
        :title="item"
        :class="stepClassObj(index)"
        @click.native="handleStep(index)"
      />
    </el-steps>
    <!-- <keep-alive>
     <router-view v-if="$route.meta.keepAlive" @handleNextStep="handleNextStep()"  @handleLastStep="handleLastStep()" />
     </keep-alive> -->
     //router-view 子组件发生变化导致父组件发生改变
     <router-view  @handleNextStep="handleNextStep()"  @handleLastStep="handleLastStep()" />

   
  </div>
</template>

<script>


export default {
     
  name: 'Step',

  data() {
     
    return {
     
      // 步骤
      active: 0,
      // 已选步骤
      stepSuc: [0],
      // 步骤标题
      stepTitle: ['步骤一', '步骤二', '步骤三', '步骤四']
    }
  },
  computed: {
     
    // 动态给步骤加样式
    stepClassObj() {
     
      return (val) => {
     
        return {
     
          stepSuc: this.stepSuc.includes(val),
          stepErr: !this.stepSuc.includes(val)
        }
      }
    },
  },
  methods: {
     
      one(){
     
 this.$router.push("/report/com
  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的示例代码,用于演示如何在Xcode中使用UITableView自定义点击跳转页面: 1. 创建一个UITableViewController的子类,并将其作为你的表格视图的数据源和委托。 ```swift class MyTableViewController: UITableViewController { // 数据源 var data = ["item1", "item2", "item3"] override func viewDidLoad() { super.viewDidLoad() // 注册自定义单元格 tableView.register(UITableViewCell.self, forCellReuseIdentifier: "MyCell") } // 表格视图数据源方法 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return data.count } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) // 设置单元格文本 cell.textLabel?.text = data[indexPath.row] return cell } // 表格视图委托方法 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { // 创建目标视图控制器并传递数据 let detailVC = DetailViewController() detailVC.data = data[indexPath.row] // 推入导航堆栈 navigationController?.pushViewController(detailVC, animated: true) } } ``` 2. 在表格视图中创建自定义单元格,以便在单元格中包含要显示的数据。 ```swift // 在MyTableViewController中注册自定义单元格 tableView.register(MyTableViewCell.self, forCellReuseIdentifier: "MyCell") // 自定义单元格类 class MyTableViewCell: UITableViewCell { override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) // 创建并添加视图控件 let label = UILabel(frame: CGRect(x: 10, y: 10, width: 200, height: 30)) label.tag = 100 addSubview(label) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } // 设置单元格文本 func setText(text: String) { let label = viewWithTag(100) as! UILabel label.text = text } } ``` 3. 实现表格视图委托方法,以响应单元格的点击事件。你需要使用indexPath来确定哪个单元格被点击。 ```swift override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { // 创建目标视图控制器并传递数据 let detailVC = DetailViewController() detailVC.data = data[indexPath.row] // 推入导航堆栈 navigationController?.pushViewController(detailVC, animated: true) } ``` 4. 在点击单元格时,将要显示的数据传递给目标视图控制器。你可以使用segue或手动创建视图控制器并将其推入导航堆栈来实现。 ```swift // 创建目标视图控制器 class DetailViewController: UIViewController { var data: String? override func viewDidLoad() { super.viewDidLoad() // 创建并添加视图控件 let label = UILabel(frame: CGRect(x: 10, y: 10, width: 200, height: 30)) view.addSubview(label) // 设置视图控件文本 if let data = data { label.text = data } } } ``` 请注意,这只是一个简单的示例代码,实际应用中可能需要根据实际需求进行修改和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值