app.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { getSessionVar } from '@/utils/session'
  2. /**
  3. * 重置一个参数对象
  4. * @param args
  5. * @param def
  6. */
  7. export function resetArgs<T>(args: T, def: Partial<T> = {}): T {
  8. let val: { [k: string]: any } = {}
  9. for (let key in args) {
  10. if (def.hasOwnProperty(key)) {
  11. val[key] = def[key]
  12. } else {
  13. if (Array.isArray(args[key])) val[key] = [];
  14. if ('string' == typeof args[key]) val[key] = '';
  15. if ('number' == typeof args[key]) val[key] = null;
  16. if ('boolean' == typeof args[key]) val[key] = false;
  17. }
  18. }
  19. return val as T
  20. }
  21. /**
  22. * 下载或者保存一个Blob
  23. * @param blob
  24. * @param fileName
  25. * @param isOpen
  26. * 接口返回数据流时,如果是pdf可以设置isOpen直接新窗口打开
  27. * export function exportReport(params: { fileCode:string }) {
  28. * return request({
  29. * responseType:"blob",
  30. * closeResponseInterceptors:true,
  31. * url: '/customer-service/open/api/report/getReport',
  32. * method: 'get',
  33. * params
  34. * })
  35. * }
  36. */
  37. export function saveBlob(blob: Blob, fileName: string, isOpen = false): void {
  38. let url = window.URL.createObjectURL(blob);
  39. if (isOpen) {
  40. window.open(url)
  41. } else {
  42. let a = document.createElement("a");
  43. document.body.appendChild(a);
  44. a.setAttribute("display", "none")
  45. a.href = url;
  46. a.download = fileName;
  47. a.click();
  48. a.remove();
  49. window.URL.revokeObjectURL(url);
  50. }
  51. }
  52. export function isNotLogin(): boolean {
  53. return getSessionVar("session_id") == null &&
  54. getSessionVar("username") == null
  55. }
  56. export function toFormData(data: any): FormData {
  57. const formData = new FormData()
  58. for (const key in data) {
  59. formData.append(key, data[key])
  60. }
  61. return formData
  62. }
  63. export default { resetArgs, saveBlob, toFormData, isNotLogin }