Vue中使用a标签实现点击在新标签页中打开实现照片预览

场景

显示某抓拍系统的照片,在点击该照片后面的预览时,在新标签页中打开图片的网络URL地址。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

首先在el-table中添加操作列

      </el-table-column>
            <el-table-column
        label="操作"
        align="center"
        class-name="small-padding fixed-width"
        width="200"
      >
        <template slot-scope="scope">
          <a class="a-style" @click="handlePreView(scope.row)">预览</a>
        </template>
      </el-table-column>

在template中添加了a标签并设置了器样式和绑定了点击事件,在点击事件方法中还传递了参数当前行的数据

然后样式a-style用来设置颜色

<style scoped>
.a-style{
  color:yellowgreen;
}
</style>

然后在点击事件中

    /** 预览按钮操作 */
    handlePreView(row) {
      const photopath = row.photopath ;
      if (photopath.match(/D:\\pic_old\\(\S*)/)) {
        let str = "http://静态资源映射所在服务器ip:250/" + photopath.match(/D:\\pic_old\\(\S*)/)[1];
        window.open(str,'_blank')
      } else {
        this.$message({
          message: '照片路径格式不对,无法预览',
          type: 'warning'
        });
      }
    },

这里首先获取到了photopath这个是存储的图片路径,这里是磁盘的绝对路径,

如果能直接获取图片的网络url直接执行

window.open(str,'_blank')

即可,其中str是打开标签页的url

这里的逻辑是对图片的磁盘路径做了校验,符合规则的话则转换成网络URL,否则弹窗提示。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在VSCode,如果你想在的tab打开文件而不替换旧的tab,你可以双击文件名来实现。这是因为当你单击右侧文件时,文件实际上是以预览模式打开的,预览模式下的文件名是倾斜的。在预览模式下,打开文件会替换掉当前预览的文件。所以,如果你想避免替换,需要双击打开文件。你也可以关闭预览模式,通过在配置文件settings.json添加以下设置来实现:"workbench.editor.enablePreview": false。这样,文件将以正常浏览模式打开,不会被替换。\[1\] 另外,如果你使用vue-router打开一个的tab,并且希望下次进入时不保留上次的状态,你可以在跳转时使用this.$router.push方法,并在组件的beforeRouteLeave钩子销毁组件。这样,当你再次进入该面时,不会保留上次的历史缓存状态。\[2\]\[3\] #### 引用[.reference_title] - *1* [【vscode】打开文件总是只有一个tab标签打开的tab标签会替换掉旧的tab标签](https://blog.csdn.net/keruisiya/article/details/122989118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [this.$router.push 解决通过 vue-router 打开 tab ,下次进入还是上次history缓存的界面状态的问题](https://blog.csdn.net/theVirtual/article/details/126133179)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霸道流氓气质

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值