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>

相关推荐
东东516几秒前
果园预售系统的设计与实现spingboot+vue
前端·javascript·vue.js·spring boot·个人开发
rainbow68892 分钟前
Python学生管理系统:JSON持久化实战
java·前端·python
打小就很皮...5 分钟前
React Router 7 全局路由保护
前端·react.js·router
起风的蛋挞15 分钟前
Matlab提示词语法
前端·javascript·matlab
有味道的男人16 分钟前
1688获得商品类目调取商品榜单
java·前端·spring
txwtech22 分钟前
第20篇esp32s3小智设置横屏
前端·html
Exquisite.29 分钟前
企业高性能web服务器---Nginx(2)
服务器·前端·nginx
怪兽毕设34 分钟前
基于SpringBoot的选课调查系统
java·vue.js·spring boot·后端·node.js·选课调查系统
DFT计算杂谈37 分钟前
VASP+PHONOPY+pypolymlpj计算不同温度下声子谱,附批处理脚本
java·前端·数据库·人工智能·python
广州华水科技40 分钟前
如何选择合适的单北斗变形监测系统来保障水库安全?
前端