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>

相关推荐
姓蔡小朋友2 分钟前
React基础
前端·react.js·前端框架
IT_陈寒18 分钟前
Vue的动态组件坑了我整整一天!
前端·人工智能·后端
恋猫de小郭20 分钟前
Flutter 最好的 AI 自动化测试工具:Patrol
android·前端·flutter
Cobyte21 分钟前
AI 的个人便签纸:Claude Code 的 TodoWrite 模式
前端·后端·aigc
森叶24 分钟前
一线法编程理念
javascript
风兮雨露29 分钟前
Java 从入门到精通,前端资料
java·开发语言·前端
ZC跨境爬虫34 分钟前
跟着 MDN 学CSS day_43:CSS布局挑战——从浮动到弹性盒与栅格的综合实践
前端·css·ui·html·tensorflow
源码宝34 分钟前
基于SpringBoot+Vue+小程序+Android的智慧校园电子班牌系统源码示例
vue.js·spring boot·架构·智慧校园·电子班牌·源码·代码
罗超驿40 分钟前
22.任务清单应用开发实战:从HTML结构到JavaScript交互的完整实现
javascript·html·交互
Qres82142 分钟前
Hexo博客本地配置
前端·博客·hexo