vue3封装全局方法

场景:各个模块详情中存在附件列表数据,需要再每个中添加一个预览附件的方法,是后期提出的需求,所以要在每个模块中进行添加,就去将预览方法封装一下。

将公共方法封装在utils下

utils/filePreview.ts

复制代码
import router from '@/router'; // 引入路由实例

/**
 * 文件预览公共方法
 * @param {Object} row - 当前文件数据
 */
export function filePreview(row) {
  localStorage.setItem('filedata', JSON.stringify(row)); // 将文件数据存储到 localStorage 中
  const url = `${window.location.origin}${router.options.base || ''}/filePreview`; // 构造跳转 URL
  const link = document.createElement('a'); // 创建 a 标签
  link.href = url;
  link.target = '_blank'; // 新窗口打开
  link.click(); // 触发点击事件
}

然后再main.ts中进行引用注册

import App from './App.vue'

import {filePreview} from '@/utils/filePreview';

const app = createApp(App)

app.config.globalProperties.$filePreview = filePreview;

使用方法

<el-button

size="small"

type="primary"

@click="$filePreview(scope.row)"

>

预览

</el-button>

相关推荐
Name:PLC10 分钟前
vue3中使用watch
前端·javascript·vue.js
超级土豆粉19 分钟前
ES6 扩展运算符与 Rest 参数
前端·ecmascript·es6
qq_124987075334 分钟前
基于Spring boot+vue的中医养生系统的设计与实现(源码+论文+部署+安装+调试+售后)
java·vue.js·spring boot·后端·毕业设计
purpleseashell_Lili36 分钟前
TypeScript
前端·typescript
哎呦你好44 分钟前
CSS 盒子模型:一文了解padding和margin,使用内边距、外边距和边框随心所欲实现布局!
前端·css
前端 贾公子1 小时前
小程序使用web-view 修改顶部标题 && 安全认证文件部署在nginx
开发语言·前端·javascript
李是啥也不会1 小时前
Vue3 中 Axios 深度整合指南:从基础到高级实践引言
javascript·typescript
记得早睡~1 小时前
leetcode3-无重复字符的最长子串
javascript·数据结构·算法·leetcode
海盐泡泡龟1 小时前
大文件上传如何做断点续传?(分别使用vue、React、java)
java·vue.js·react.js
胖墩会武术2 小时前
通过Auto平台与VScode搭建远程开发环境(以Stable Diffusion Web UI为例)
前端·vscode·stable diffusion