diff --git a/src/api/device/instance.ts b/src/api/device/instance.ts index 841f2229..9562fd06 100644 --- a/src/api/device/instance.ts +++ b/src/api/device/instance.ts @@ -107,7 +107,7 @@ export const deviceImport = (productId: string, fileUrl: string, autoDeploy: boo * @param type 文件类型 * @returns */ -export const deviceExport = (productId: string, type: string) => `${BASE_API_PATH}/device-instance${!!productId ? `/${productId}` : ''}/export.${type}` +export const deviceExport = (productId: string, type: string, params?: any) => server.get(`/device-instance${!!productId ? `/${productId}` : ''}/export.${type}`, params, {responseType: 'blob'}) /** * 验证设备ID是否重复 diff --git a/src/api/iot-card/cardManagement.ts b/src/api/iot-card/cardManagement.ts index 4b7441bc..ed75ce6e 100644 --- a/src/api/iot-card/cardManagement.ts +++ b/src/api/iot-card/cardManagement.ts @@ -97,7 +97,7 @@ export const _import = (configId: any, params: any) => server.get(`/network/card * @param format 类型 xlsx、csv * @param params */ -export const _export = (format: string, data: any) => server.post(`/network/card/download.${format}/_query`, data, { responseType: 'blob' }); +export const _export = (format: string, data: any) => server.postStream(`/network/card/download.${format}/_query`, data); /** * 下载模板 diff --git a/src/utils/request.ts b/src/utils/request.ts index 5eaf3044..2d56eed9 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -112,6 +112,12 @@ export const getStream = function(url: string, params = {}) { }) } +export const postStream = function(url: string, data={}, params = {}) { + return post(url, data, params, { + responseType: 'arraybuffer' // 设置请求数据类型,返回blob可解析类型 + }) +} + /** * 异常拦截处理器 * @param {Object} error @@ -208,7 +214,7 @@ request.interceptors.response.use(response => { } // 如果返回的的是文件流,那么return值则为response if (response.headers['content-type'] === 'application/octet-stream; charset=UTF-8' || response.headers['content-type'] === 'application/vnd.ms-excel;charset=UTF-8') { - return response + return response.data } else { return response.data } @@ -222,5 +228,6 @@ export default { patch, put, remove, - getStream + getStream, + postStream } \ No newline at end of file diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 4c159487..8766bc6c 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -1,7 +1,7 @@ import moment from "moment"; import { LocalStore } from "./comm"; import { TOKEN_KEY } from "./variable"; -import {SystemConst} from './consts'; +import { SystemConst } from './consts'; /** * 把数据下载成JSON @@ -30,7 +30,7 @@ export const downloadObject = (record: Record, fileName: string, fo * @param url 下载链接 * @param params 参数 */ - export const downloadFile = (url: string, params?: Record) => { +export const downloadFile = (url: string, params?: Record) => { const formElement = document.createElement('form'); formElement.style.display = 'display:none;'; formElement.method = 'GET'; @@ -91,29 +91,29 @@ export const randomString = (length?: number) => { * @returns */ export const timestampFormat = (time: number) => { - let hour = 0; - let minute = 0; - let second = 0; - const timeStr = 'hh小时mm分钟ss秒'; - - if (time) { - if (time >= 60 * 60 * 1000) { - hour = Math.trunc(time / (60 * 60 * 1000)); - } + let hour = 0; + let minute = 0; + let second = 0; + const timeStr = 'hh小时mm分钟ss秒'; - if (time >= 60 * 1000) { - minute = Math.trunc((time - hour * 60 * 60 * 1000) / (60 * 1000)); - } - - second = Math.trunc( - (time - hour * (60 * 60 * 1000) - minute * 60 * 1000) / 1000, - ); + if (time) { + if (time >= 60 * 60 * 1000) { + hour = Math.trunc(time / (60 * 60 * 1000)); } - return timeStr - .replace('hh', hour.toString()) - .replace('mm', minute.toString()) - .replace('ss', second.toString()); + if (time >= 60 * 1000) { + minute = Math.trunc((time - hour * 60 * 60 * 1000) / (60 * 1000)); + } + + second = Math.trunc( + (time - hour * (60 * 60 * 1000) - minute * 60 * 1000) / 1000, + ); + } + + return timeStr + .replace('hh', hour.toString()) + .replace('mm', minute.toString()) + .replace('ss', second.toString()); }; export const ArrayToTree = (list: any[]): any[] => { diff --git a/src/views/device/Instance/Export/index.vue b/src/views/device/Instance/Export/index.vue index 1a14d9dd..87cf1672 100644 --- a/src/views/device/Instance/Export/index.vue +++ b/src/views/device/Instance/Export/index.vue @@ -49,7 +49,7 @@