antd vue 编辑完跳回列表原来页

情景再现

进入列表第N页,选择第M条信息,进行编辑,编辑完,要求还返回第N页。

实现原理

通过 localStorage 保存进入编辑页前的[页码]及[每页展示条数]的参数,进入编辑页,获取该参数,保存到编辑页的某个变量,再离开编辑页的方法中,将页码参数值,再通过 localStorage 赋值回去,即可实现。

示例代码

list.vue--------------------------
 <script>
    export default {
      data () {
        paginationSet: {
          onChange: page => this.onChange(page),
          onShowSizeChange: (current, pageSize) => this.ShowSizeChange(current, pageSize),
          showSizeChanger: true,
          showQuickJumper: true,
          defaultCurrent: 1,
          pageSize: 10,
          total: 0,
          hideOnSinglePage: true
        },
        listParams: {}
      },
      methods: {
        // 进入编辑页的方法
        toEdit (Id) {
          const listParams = {
            pageSize: this.paginationSet.pageSize,
            page: this.paginationSet.defaultCurrent
          }
          // 【1】将页码和每页展示数,赋予previouHospitalParams,然后存入到 localStorage
          localStorage.setItem('previouHospitalParams', JSON.stringify(listParams))
          this.$router.push({ path: '/system/EditInstitution', query: { hospitalId: Id } })
        }
      },
      created () {
        // 【4】从localStorage获取参数 previouHospitalParams 的值,赋予给分页相关的参数变量,即可实现跳转到对应页
        const previouHospitalParams = localStorage.getItem('previouHospitalParams')
        // 【5】记得用完后,将localStorage中的 previouHospitalParams 清空,方便下次使用
        localStorage.setItem('previouHospitalParams', '')
        if (previouHospitalParams !== '' && previouHospitalParams !== null) {
          this.listParams = JSON.parse(previouHospitalParams)
          this.paginationSet.defaultCurrent = this.listParams.page
          this.paginationSet.current = this.listParams.page
        } else {
          this.listParams.pageSize = this.paginationSet.pageSize
          this.listParams.page = 1
        }
        this.listsApi()
      }
    }
 </script>

 edit.vue-------------------------
 <script>
     export default {
       data () {
         previouHospitalParams: {}
       },
       created () {
         // 【2】从localStorage获取 previouHospitalParams 参数,存入编辑页的变量 previouHospitalParams
         this.previouHospitalParams = localStorage.getItem('previouHospitalParams')
       },
       beforeRouteLeave (to, from, next) {
         // 【3】当页码要离开时,给 localStorage 中的 previouHospitalParams,赋值【2】中的参数
         localStorage.setItem('previouHospitalParams', this.previouHospitalParams)
       }
     }
 </script>

结语

具体的实现步骤,代码中【1】【2】【3】【4】【5】已说清楚,其实,仔细想一下,还是值的传递,只不过换了个传参的容器而已。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值