列表进入详情页,详情页点击上一条下一条进行翻页

主要js代码

 //上一条
      async prevInfo() {
        //当前数据
        let infoIds = JSON.parse(sessionStorage.getItem("infoIds"))
        //当前数据下标
        let index = infoIds.indexOf(this.$route.params.id)
        //当前数据请求参数
        let params = JSON.parse(sessionStorage.getItem("prParmas"))

        //请求下一页数据   当前为第一条时
        if (index == 0) {
          if (params.page > 1) {
            params.page -= 1
          } else {
            this.$msg.info("当前是第一条了")
            return true;
          }

          sessionStorage.setItem("prParmas", JSON.stringify(params))
          await getList(params).then(res => {
            if (res.rows && res.rows.length > 0) {
              //将先前数据清空
              infoIds = []
              sessionStorage.setItem("infoIds", JSON.stringify(infoIds))
              //将数据反转以显示正确的顺序
              let resRows = res.rows.reverse()
              resRows.map(item => {
                infoIds.unshift(item.id)
              })
              //放入缓存
              sessionStorage.setItem("infoIds", JSON.stringify(infoIds))
              this.$router.push(`/problem/prInfo/${infoIds[resRows.length - 1]}`);
            } else {
              //没有下一页
              this.$msg.info("当前是第一条了")
              return true;
            }
          })

        } else {
          this.$router.push(`/problem/prInfo/${infoIds[index - 1]}`);
        }
      },
      //下一条
      async nextInfo() {

        let infoIds = JSON.parse(sessionStorage.getItem("infoIds"))
        //当前数据下标
        let index = infoIds.indexOf(this.$route.params.id)
        let params = JSON.parse(sessionStorage.getItem("prParmas"))

        //请求下一页数据
        if (index == infoIds.length - 1) {
          params.page += 1
          //请求参数放入缓存
          sessionStorage.setItem("prParmas", JSON.stringify(params))
          await getList(params).then(res => {
            if (res.rows && res.rows.length > 0) {
              //将先前数据清空
              infoIds = []
              sessionStorage.setItem("infoIds", JSON.stringify(infoIds))
              //从第一条开始
              index = 0;
              res.rows.map(item => {
                infoIds.push(item.id)
              })
              //当前数据放入缓存
              sessionStorage.setItem("infoIds", JSON.stringify(infoIds))
              this.$router.push(`/problem/prInfo/${infoIds[index]}`);
            } else {
              //没有下一页
              params.page -= 1
              sessionStorage.setItem("prParmas", JSON.stringify(params))
              this.$msg.info("当前是最后一条了")
              return true;
            }
          })
        } else {
          this.$router.push(`/problem/prInfo/${infoIds[index + 1]}`);
        }

      },
```## 列表页代码
1获取本页列表数据

handleInfo(id) {
let infoIds = []
//将当前列表数据id存入缓存中
this.tableData.map(item => {
infoIds.push(item.id)
})
sessionStorage.setItem(“infoIds”, JSON.stringify(infoIds))
this. r o u t e r . p u s h ( ‘ / p r o b l e m / p r I n f o / router.push(`/problem/prInfo/ router.push(/problem/prInfo/{id}`);
},

``获取列表的请求参数

 //获取列表
      getList() {
        let parmas = {
          typeId: this.typeId, //问题类型
          sourceName: this.sSourceName, //问题对象
          startTime:
            (this.reportDate != "" &&
              this.$moment(this.reportDate[0]).format("YYYY-MM-DD")) ||
            "",
          endTime:
            (this.reportDate != "" &&
              this.$moment(this.reportDate[1]).format("YYYY-MM-DD")) ||
            "",
          searchType: "assign",
          page: this.page,
          rows: this.size,
          isAssign: this.isAssign //0否1是
        };
        // 主要代码。。。。。
        sessionStorage.setItem("prParmas", JSON.stringify(parmas))
        getList(parmas).then(res => {
          if (res.success === true) {
            this.tableData = res.rows;
            this.total = res.records;
            this.loading = false;
          }
        });
      },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值