当前位置: 首页 > news >正文

Axios 二次封装

第一步

创建api 初始文件  index.js
import axios from "axios"
// import router from "../router/index"
class Request {// 自定义变量instance;constructor(config) {// 创建axios 实例,变量接收this.instance = axios.create(config);// 添加请求拦截器this.instance.interceptors.request.use((config) => {// config.headers.token = JSON.parse(localStorage.getItem("giant_userdata")).sessionkey;return config;},(error) => {return error;});// 添加相应拦截器this.instance.interceptors.response.use((res) => {if(res.status == 200){if(res.data.code == '503'){this.countDown503()}else{return res;}}},(error) => {return error;});}// 2request(config) {return new Promise((resolve, reject) => {this.instance.request(config).then((res) => {return resolve(res);}).catch((error) => {return reject(error);});});}// 1get(config) {return this.request({...config,method: "GET",});}post(config) {const formData = new FormData()for (const key in config.params) {formData.append(key, config.params[key])}return this.request({data: formData,url: config.url,method: "POST",headers: {'Content-Type': 'multipart/form-data'}});}postblob(config) {  const formData = new FormData()for (const key in config.params) {formData.append(key, config.params[key])}return this.request({data: formData,url: config.url,method: "POST", headers: {'Content-Type': 'application/x-msdownload'},responseType: 'blob'})}// postjson(config) {return this.request({...config,method: "POST",headers: {'Content-Type': 'application/json'}});}// delete(config) {//   return this.request({//     ...config,//     method: "DELETE",//   });// }
}export default Request;

第二部

创建 自定义对应的模块js文件  如: login.js
引入第一步文件js
import { request } from '../config.js'
//  分页
export const flowpages = (params) => {return request.post({url: '/flow/pages',params})
}
//修改
export const flowrupdate = (params) => {return request.postjson({url: '/flow/update',data: JSON.stringify(params)})
}
//后端返回数据流前端处理导出
export const exportflowcasePages = (params) => {return request.postblob( {url: '/export/flow/casePages',params})
}

第三部

引入第二部文件到对应的vue项目
import {exportflowcasePages,flowcasePages,flowpages
} from "@/api/index/index.js"

进行使用

      flowpages(tmpParams).then((res) => {if (res.status == 200) {if (typeof res.data != "object") {res.data = JSON.parse(res.data)}if (res.data.code == 200) {console.log(res.data,'文件信息')} else {_this.$toast(res.data.msg ? res.data.msg : "网络加载失败,请稍后再试")}} else {_this.$toast(res.data.msg ? res.data.msg : "网络加载失败,请稍后再试")}}).catch((err) => {_this.$toast("网络加载失败,请稍后再试")})

此处后端返回数据流导出设置

 exportflowcasePages(tmpParams).then((res) => {if (res.status == 200) {const elink = document.createElement('a')elink.download = '列表.xls'elink.style.display = 'none'const blob = new Blob([res.data], { type: 'application/x-msdownload' })elink.href = URL.createObjectURL(blob)document.body.appendChild(elink)elink.click()document.body.removeChild(elink)} else {_this.$toast(res.data.msg ? res.data.msg : "网络加载失败,请稍后再试")}}).catch((err) => {_this.$toast("网络加载失败,请稍后再试")})
http://www.xdnf.cn/news/1166257.html

相关文章:

  • 用org.apache.pdfbox 转换 PDF 到 图片格式
  • EMA《2025-2028年药品监管中的数据与AI 1.3版》信息分析
  • OEC 刷机Armbain 25.05后配置说明
  • 扣子Coze智能体实战:自动化拆解抖音对标账号,输出完整分析报告(喂饭级教程)
  • Java 大视界 -- Java 大数据在智能医疗医疗设备维护与管理中的应用(358)
  • Apache Ignite 中乐观事务(OPTIMISTIC Transactions)的工作机制
  • Rabbit安装
  • 全星FMEA软件系统:FMEA、PC、PFD一体化管理的智能解决方案
  • python中 tqdm ,itertuples 是什么
  • ucharts 搭配uniapp 自定义x轴文字 实现截取显示
  • Vue开发常用
  • 医院信息系统(HIS)切换实施方案与管理技术分析
  • IO复用(多路转接)
  • ob导出租户所有表记录
  • PHP 文件上传
  • Android KTX:让Kotlin开发更简洁高效的利器
  • vue2使用v-viewer实现自动预览
  • ArcGIS地形起伏度计算
  • 假发行业数字化突围,外贸ERP重构外协管理引擎,助力效率飞跃
  • 基于eBPF的Kubernetes网络故障自愈系统设计与实现
  • 开发者的AI认知指南:用大模型重新理解人工智能(上)
  • 【Qt开发】Qt的背景介绍(四)
  • 网络编程---网络基础知识
  • n8n - 为技术团队提供安全的自动化工作流
  • SpringMVC快速入门之启动配置流程
  • 双指针算法介绍及使用(上)
  • 哈希算法(Hash Algorithm)
  • 【bug】 jetson上opencv无法录制h264本地视频
  • Python编程进阶知识之第三课处理数据(numpy)
  • 学习pwn需要的基本汇编语言知识