123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import {Message} from 'element-ui';
- import fetch from './fetch'
- import storage from '@/framework/utils/storage'
- function successResponse(vm, response, success, failed) {
- let resp = response.data;
- let result = resp.result ? resp.result : resp.Result;
- if (result === 'success') {
- if (success) {
- success(resp);
- }
- } else {
- let msg = resp.message ? resp.message : resp.ResultMsg || resp.resultMsg || resp.Message;
- Message.error({ message: msg });
- if (failed) {
- failed(resp);
- }
- }
- }
- function errorResponse(vm, response, err) {
- let json = JSON.parse(JSON.stringify(response))
- console.error(response)
- if (json.response) {
- Message.error({ message: `接口:${json.response.config.url}请求错误,错误状态为:${json.response.status}` })
- } else {
- console.error(vm, response, err)
- Message.error({ message: '请求错误' });
- }
- }
- function downFile(blob, fileName) {
- // 非IE下载
- if ('download' in document.createElement('a')) {
- let link = document.createElement('a')
- link.href = window.URL.createObjectURL(blob) // 创建下载的链接
- link.download = fileName // 下载后文件名
- link.style.display = 'none'
- document.body.appendChild(link)
- link.click() // 点击下载
- window.URL.revokeObjectURL(link.href) // 释放掉blob对象
- document.body.removeChild(link) // 下载完成移除元素
- } else {
- // IE10+下载
- window.navigator.msSaveBlob(blob, fileName)
- }
- }
- export default {
- getJson: function (url, data, success, failed, err) {
- let ProjectId = localStorage.getItem("projectId")
- // let ProjectId = "Pj1101050029"
- let userName = storage.get("user_name")
- let group_code = localStorage.getItem("group_code")
- let vm = this;
- fetch({
- url: url,
- method: 'get',
- params: data,
- headers: {'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName, 'group_code': group_code}
- }).then((response) => {
- successResponse(vm, response, success, failed)
- }).catch(error => {
- errorResponse(vm, error, err);
- });
- },
- postJson: function (url, data, success, failed, err) {
- let ProjectId = localStorage.getItem("projectId")
- // let ProjectId = "Pj1101050029"
- let userName = storage.get("user_name")
- let group_code = localStorage.getItem("group_code")
- let vm = this;
- fetch({
- url: url,
- method: 'post',
- data: data,
- headers: {'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName, 'group_code': group_code}
- }).then((response) => {
- successResponse(vm, response, success, failed)
- }).catch(error => {
- errorResponse(vm, error, err);
- });
- },
- download(url, requestData) {
- // 响应类型:arraybuffer, blob
- fetch
- .post(url, requestData, { responseType: 'blob' })
- .then(resp => {
- let headers = resp.headers
- let contentType = headers['content-type']
- console.log('响应头信息', headers)
- if (!resp.data) {
- console.error('响应异常:', resp)
- return false
- } else {
- console.log('下载文件:', resp)
- const blob = new Blob([resp.data], { type: contentType })
- const contentDisposition = resp.headers['content-disposition']
- let fileName = 'unknown'
- if (contentDisposition) {
- fileName = window.decodeURI(resp.headers['content-disposition'].split('=')[1])
- }
- console.log('文件名称:', fileName)
- downFile(blob, fileName)
- }
- })
- .catch(function (error) {
- console.log(error)
- })
- },
- }
|