import { get, post, put, delate } from '../http/axios'; import { PageResult } from '../constant'; const pageResult = new PageResult(); export const queryPage = (url, example, noMsg?, noLoading?) => { return new Promise((resolve, reject) => { get(url, example, noMsg, noLoading).then( (rsp: any) => { if (rsp) { resolve(rsp); } else { resolve(pageResult); } }, (err) => { resolve(pageResult); } ); }); }; export const queryList = (url, example?, noMsg?, noLoading?) => { return new Promise((resolve, reject) => { get(url, example, noMsg, noLoading).then( (rsp: any) => { if (rsp) { resolve(rsp); } else { resolve([]); } }, (err) => { resolve([]); } ); }); }; export const getById = (url, id) => { return new Promise((resolve, reject) => { get(url + '/' + id).then( (rsp: any) => { resolve(rsp || {}); }, (err) => { resolve({}); } ); }); }; export const save = (url, role) => { return new Promise((resolve, reject) => { post(url, role).then( (rsp: any) => { if (rsp) { resolve(rsp); } else { resolve(false); } }, (err) => { resolve(false); } ); }); }; export const update = (url, role) => { return new Promise((resolve, reject) => { put(url, role).then( (rsp: any) => { if (rsp) { resolve(rsp); } else { resolve(false); } }, (err) => { resolve(false); } ); }); }; export const deleteById = (url, id) => { return new Promise((resolve, reject) => { delate(url, id).then( (rsp: any) => { if (rsp) { resolve(rsp); } else { resolve(false); } }, (err) => { resolve(false); } ); }); }; export const size = 10000; export const exportCsv = (url, head, formatter, param?, content?) => { return new Promise((resolve) => { if (!content) { content = []; head && content.push(head); } if (!param) { param = { page: 1, size: size }; } queryPage(url, param, true, true).then((rsp: any) => { debugger; if (!rsp || rsp.data.length == 0) { resolve(content.join('\r\n')); return; } rsp.data.forEach((net) => { content.push(formatter(net)); }); if (rsp.data.length < param.size) { resolve(content.join('\r\n')); } else { param.page = param.page + 1; exportCsv(url, head, formatter, param, content).then(resolve); } }); }); }; export const downloadText = (name, text) => { downloadFile(name, 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); }; export const downloadBlob = (name, blob) => { downloadFile(name, URL.createObjectURL(blob)); }; export const downloadFile = (name, href) => { var element = document.createElement('a'); element.setAttribute('href', href); element.setAttribute('download', name); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); };