vue 解决使用window.open打开新窗口功能导致的session丢失

这篇博客介绍了如何将使用window.open打开新窗口的方式转换为Vue应用中的router-link标签,以实现页面间的导航。通过修改render函数,利用router-link的to属性结合tag和target属性,成功实现了点击表格项时打开新窗口的效果,同时保留了原有的功能和样式。
摘要由CSDN通过智能技术生成
使用window.open方式打开窗口替换为router-link标签

直接看代码:

<div class="content-table">
          <Table :columns="pipelinecolumns" :data="pipelineList">
          </Table>
</div>
pipelinecolumns: [
  {
    title: 'xxx名称',
    key: 'name',
    tooltip: true,
    render: (h, params) => {
      // TODO原有方式
      // return h('span', {
      //   on: {
      //     click:()=>{
      //       this.toDrawer(params.row)
      //     }
      //   },
      //   style: {
      //     color: '#0a6eb5',
      //     cursor: 'pointer'
      //   },
      //   attrs: {
      //     title: params.row.name
      //   }
      // }, params.row.name);

     //TODO 改为使用router-link方式打开窗口
     //注意tag='a'和target='_blank'属性需配合使用
      return h('router-link', {
        style: {
          display: 'inline-block',
          width: '100%',
          overflow: 'hidden',
          textOverflow: 'ellipsis',
          whiteSpace: 'nowrap',
          color: '#0a6eb5',
          'vertical-align': 'middle',
          cursor: 'pointer',
        },
        attrs: {
          title: params.row.name,
          tag: 'a',
          target: '_blank',
          to: `${apiUrl.pipelineHome.workflowdrawer}?id=${this.$route.query.id}&pipelineId=${params.row.id}`
        },
      }, params.row.name)


    }
  },
  {
    title: '创建时间',
    key: 'createTime',
    width: 160,
    render:(h, params)=>{
      return h('span',{}, params.row.createTime)
    }
  },
],

 

methods: {
    //toDrawer (row) {
    //  window.open(
    //          `${apiUrl.pipelineHome.workflowdrawer}?id=${this.$route.query.id}&pipelineId=${row.id}`
  //    );
   // },
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值