一些公共方法。utils存放

一、文件下载
1.接口返回文件流

const download0 = (data: Blob, fileName: string, mineType: string) => {// 创建 blobconst blob = new Blob([data], { type: mineType })// 创建 href 超链接,点击进行下载window.URL = window.URL || window.webkitURLconst href = URL.createObjectURL(blob)const downA = document.createElement('a')downA.href = hrefdownA.download = fileNamedownA.click()// 销毁超连接window.URL.revokeObjectURL(href)
}

2.返回http url地址

// 下载文件
const download1 = (url: string, fileName: string) => {const xhr = new XMLHttpRequest()xhr.open('get', url) //url地址,xhr.setRequestHeader('token', getAccessToken())xhr.responseType = 'blob'xhr.onload = function () {const blob = xhr.response// const nameStr = xhr.getResponseHeader('Content-Disposition').split(';')[1].trim();// fileName = decodeURIComponent(nameStr.split('=')[1]);// @ts-ignoreif (window.navigator?.msSaveOrOpenBlob) {// @ts-ignorenavigator?.msSaveBlob(blob, fileName)} else {const a = document.createElement('a')const blob = xhr.responseconst blobUrl = createObjectURL(blob)a.href = blobUrla.download = fileNamedocument.body.appendChild(a)a.click()window.URL.revokeObjectURL(blobUrl)}}xhr.send()
}
function createObjectURL(object) {return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object)
}const download = {// 下载 有完整地址downloadFunc: download1,// 下载 PDF 方法pdf: (data: Blob, fileName: string) => {download0(data, fileName, 'application/pdf')},// 下载 Excel 方法excel: (data: Blob, fileName: string) => {download0(data, fileName, 'application/vnd.ms-excel')},// 下载 Word 方法word: (data: Blob, fileName: string) => {download0(data, fileName, 'application/msword')},
}
export default download

二、el-table 自动滚动

========================表格自动播放========================================
// @ts-ignore设置自动滚动 scrollTable为ref
function autoScroll(scrollTable, i) {// @ts-ignoreconst _this = thisreturn new Promise((resolve) => {const table = _this.$refs[scrollTable]// 拿到表格中承载数据的div元素const divData = table.$refs.bodyWrapperdivData.scrollTop = 0if(_this.timerList[i]) window.clearInterval(_this.timerList[i])// 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)_this.timerList[i] = window.setInterval(() => {// 元素自增距离顶部1像素divData.scrollTop += 1// 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {// 重置table距离顶部距离divData.scrollTop = 0// 重置table距离顶部距离。值=(滚动到底部时,距离顶部的大小) - 整个高度/2// 00divData.scrollTop = divData.scrollTop - divData.scrollHeight / 2resolve(true)}}, 100) // 滚动速度})
}
//调用
await autoScroll.call(this, 'tableRef', 0)

三、柱状图数据较多时,横坐标自动滚动

function dataZoomFun(i: number, chartData: any, time = 3000) {// @ts-ignoreconst _this = thislet data = _.cloneDeep(chartData)const _loop = () => {if (data.dataZoom[0].endValue == data.xAxis.value.length ) {data.dataZoom[0].endValue = 6;data.dataZoom[0].startValue = 0;} else {data.dataZoom[0].endValue = data.dataZoom[0].endValue + 1;data.dataZoom[0].startValue = data.dataZoom[0].startValue + 1;}_this.chartList[i].setOption(data,true);}_loop();if(_this.timerList[i]) clearInterval(_this.timerList[i])_this.timerList[i] = setInterval(_loop, time);
}
dataZoomFun.call(this, 3, this.options)

注意以上在组件销毁时,定时器需要关闭

beforeDestroy() {for (let item of this.timerList) {clearInterval(item)}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/719000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大地测量学课堂笔记:1、绪论

慕课网址:https://www.icourse163.org/course/WHU-1464124180?fromsearchPage&outVendorzw_mooc_pcssjg_https://www.icourse163.org/course/WHU-1464124180?fromsearchPage&outVendorzw_mooc_pcssjg_ 1. 大地测量学的定义 大地测量学是专门研究精确测量…

【C++精简版回顾】18.文件操作

1.文件操作头文件 2.操作文件所用到的函数 1.文件io 1.头文件 #include<fstream> 2.打开文件 &#xff08;1&#xff09;函数名 文件对象.open &#xff08;2&#xff09;函数参数 /* ios::out 可读 ios::in 可…

使用华为云云函数functiongraph

之前使用腾讯云serverless&#xff0c;但是突然开始收费了。所以改用functiongraph 首先登陆华为云。 目录 1.登录华为云 2.在控制台找到functiongraph并开通 3.添加依赖包&#xff1a; 3.1 制作依赖包 3.2引入依赖包 4.发送请求 4.1直接发送 4.1.1uri 4.1.2 请求头…

基础算法 - 快速排序、归并排序、二分查找、高精度模板、离散化数据

文章目录 前言Part 1&#xff1a;排序一、快速排序二、归并排序 Part 2&#xff1a;二分一、二分 - 查找左边界二、二分 - 查找右边界 Part 3&#xff1a;高精度一、高精度加法二、高精度减法三、高精度乘法四、高精度除法 Part 4&#xff1a;离散化一、区间和 前言 由于本篇博…

“找不到msvcr90.dll无法启动软件如何解决

msvcr90.dll 是一个属于 Microsoft Visual C 2008 Redistributable Package 的动态链接库&#xff08;DLL&#xff09;文件。在Windows操作系统中&#xff0c;许多应用程序特别是那些使用Visual Studio 2008编译器开发的程序&#xff0c;在运行时可能需要调用这个库中的函数和资…

lua调用C++函数

第一步搭建lua的环境. win10 lua环境搭建-CSDN博客 我使用的环境是win10vs2015lua54 先来个最简单的lua调用C函数, 无参数无返回值的 第一步:定义C函数. int CTest(lua_State* L) // 返回值是固定的int类型,返回0表示没有返回参数,返回1表示有一个返回参数 {std::cout &l…

K8S高级篇:138页经典实战案例,图文并茂代码齐全,仅限3天分享

相信很多朋友都听过云原生和容器技术&#xff0c;当然也少不了K8S的大名&#xff0c;在“容器技术革命”中&#xff0c;K8S俨然已经成为容器技术的事实标准&#xff0c;各个知名互联网企业前仆后继地拥抱云原生&#xff0c;争先恐后地把容器和K8S作为战略重心之一。 容器技术发…

HTTP头部信息解释分析(详细整理)

这篇文章为大家介绍了HTTP头部信息&#xff0c;中英文对比分析&#xff0c;还是比较全面的&#xff0c;若大家在使用过程中遇到不了解的&#xff0c;可以适当参考下 HTTP 头部解释 1. Accept&#xff1a;告诉WEB服务器自己接受什么介质类型&#xff0c;*/* 表示任何类型&#…

WordPress上传图片错误:不是合法的JSON响应

最近在进行WordPress迁移至新服务器的过程中&#xff0c;遭遇到一个棘手的问题&#xff0c;即在编辑文章并上传图片时&#xff0c;不断遭遇“此响应不是合法的JSON响应”的错误。经过多次验证和搜索&#xff0c;最终确定问题的根本原因并不在于禁用 Gutenberg 编辑器或安装经典…

CSS变量和@property

CSS变量 var() CSS 变量是由CSS作者定义的实体&#xff0c;其中包含要在整个文档中重复使用的特定值。使用自定义属性来设置变量名&#xff0c;并使用特定的 var() 来访问。&#xff08;比如 color: var(--main-color);&#xff09;。 基本用法 CSS变量定义的作用域只在定义该…

【Kotlin】函数

1 常规函数 1.1 无参函数 fun main() {myFun() }fun myFun() {println("myFun") // 打印: myFun } 1.2 有参函数 1&#xff09;常规调用 fun main() {myFun("myFun") // 打印: myFun }fun myFun(str: String) {println(str) } 2&#xff09;形参指定默…

根据条件查询下载Excel表单(Java+Vue 及 Vue 两种方式)

目录 前言1. 基本知识2. 纯前端导入导出&#xff08;Vue&#xff09;3. 前后端&#xff08;Vue Java&#xff09; 前言 如果想要下载好看的Excel推荐阅读&#xff1a; 详细讲解Java使用EasyExcel函数来操作Excel表&#xff08;附实战&#xff09;详细讲解Java使用HSSFWorkbo…

23.基于springboot + vue实现的前后端分离-在线旅游网站系统(项目 + 论文PPT)

项目介绍 本旅游网站系统采用的数据库是MYSQL &#xff0c;使用 JSP 技术开发&#xff0c;在设计过程中&#xff0c;充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 技术选型 后端: SpringBoot Mybatis 数据库 : MyS…

RK android11 user打开adb调试功能

目录build/make/core diff --git a/core/main.mk b/core/main.mk --- a/core/main.mk b/core/main.mk -280,7 280,7 ifneq (,$(user_variant)) ADDITIONAL_DEFAULT_PROPERTIES security.perf_harden1 ifeq ($(user_variant),user) - ADDITIONAL_DEFAULT_PROPER…

机器学习:原理、应用与未来展望

第一章 是什么 机器学习&#xff08;Machine Learning&#xff09;是一门跨学科的学科&#xff0c;它使用计算机模拟或实现人类学习行为&#xff0c;通过不断地获取新的知识和技能&#xff0c;重新组织已有的知识结构&#xff0c;从而提高自身的性能。机器学习涉及多个学科&am…

wordpress 开源主题

海外就医wordpress主题 出国看病、海外就医是越来越多中产家庭的选择&#xff0c;此wordpress主题适合做相关业务的公司官网。 https://www.jianzhanpress.com/?p5220 防护wordpress外贸主题 个人防护器具wordpress外贸主题&#xff0c;适合做劳动保护的外贸公司使用。 ht…

微信小程序中使用特使字体

1、首先下载字体文件 推荐几个常用下载字体的网站 https://font.chinaz.com/zhongwenziti.html https://www.hellofont.cn/ 2、转换字体 使用下面这个网站进行字体转换 https://transfonter.org/ 点击add fonts 按钮进行上传刚刚下载的字体文件选择formats格式&#xff1a;可…

关于CSS 优先级布局应用的教程

在前端开发中&#xff0c;CSS 的优先级布局是非常重要的一部分。通过合理地应用 CSS 优先级&#xff0c;我们可以更加灵活地控制页面的布局和样式。本教程将向您介绍如何利用 CSS 优先级进行布局&#xff0c;并通过实例展示其应用。 1. 了解 CSS 优先级 在 CSS 样式表中&…

【生活】程序人生之日常生活篇(附塑料分类标志 常用日常好物)

程序员生活指南之 【生活】程序人生之日常生活篇&#xff08;附塑料分类标志 & 常用日常好物&#xff09; 文章目录 1、关于本文2、居家相关2.1 蟑螂大战2.2 房间收纳&#xff08;寝室&#xff0c;租房&#xff0c;家里&#xff09;2.3 智能家居2.4 台灯选购2.5 塑料分类标…

深圳mes系统在智能制造中的重要意义

深圳mes系统在生产中具有重要意义&#xff0c;主要体现在以下几个方面&#xff1a; 生产计划可视化和优化&#xff1a;MES系统通过大量收集和分析工厂内部的实时数据&#xff0c;将数据可视化展示给运营和管理层&#xff0c;使企业决策者能够更加有效地进行生产计划的制定和…