基于vue3.0和element-plus的组件库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

145 lines
3.2 KiB

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);
};