api.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. import { defHttp } from '/@/utils/http/axios';
  2. import { message } from 'ant-design-vue';
  3. import { useGlobSetting } from '/@/hooks/setting';
  4. const globSetting = useGlobSetting();
  5. const baseUploadUrl = globSetting.uploadUrl;
  6. enum Api {
  7. positionList = '/sys/position/list',
  8. userList = '/sys/user/list',
  9. roleList = '/sys/role/list',
  10. queryDepartTreeSync = '/sys/sysDepart/queryDepartTreeSync',
  11. queryTreeList = '/sys/sysDepart/queryTreeList',
  12. loadTreeData = '/sys/category/loadTreeData',
  13. loadDictItem = '/sys/category/loadDictItem/',
  14. getDictItems = '/sys/dict/getDictItems/',
  15. getTableList = '/sys/user/queryUserComponentData',
  16. getCategoryData = '/sys/category/loadAllData',
  17. }
  18. /**
  19. * 上传父路径
  20. */
  21. export const uploadUrl = `${baseUploadUrl}/sys/common/upload`;
  22. /**
  23. * 职务列表
  24. * @param params
  25. */
  26. export const getPositionList = (params) => {
  27. return defHttp.get({ url: Api.positionList, params });
  28. };
  29. /**
  30. * 用户列表
  31. * @param params
  32. */
  33. export const getUserList = (params) => {
  34. return defHttp.get({ url: Api.userList, params });
  35. };
  36. /**
  37. * 角色列表
  38. * @param params
  39. */
  40. export const getRoleList = (params) => {
  41. return defHttp.get({ url: Api.roleList, params });
  42. };
  43. /**
  44. * 异步获取部门树列表
  45. */
  46. export const queryDepartTreeSync = (params?) => {
  47. return defHttp.get({ url: Api.queryDepartTreeSync, params });
  48. };
  49. /**
  50. * 获取部门树列表
  51. */
  52. export const queryTreeList = (params?) => {
  53. return defHttp.get({ url: Api.queryTreeList, params });
  54. };
  55. /**
  56. * 分类字典树控件 加载节点
  57. */
  58. export const loadTreeData = (params?) => {
  59. return defHttp.get({ url: Api.loadTreeData, params });
  60. };
  61. /**
  62. * 根据字典code加载字典text
  63. */
  64. export const loadDictItem = (params?) => {
  65. return defHttp.get({ url: Api.loadDictItem, params });
  66. };
  67. /**
  68. * 根据字典code加载字典text
  69. */
  70. export const getDictItems = (dictCode) => {
  71. return defHttp.get({ url: Api.getDictItems + dictCode }, { joinTime: false });
  72. };
  73. /**
  74. * 部门用户modal选择列表加载list
  75. */
  76. export const getTableList = (params) => {
  77. return defHttp.get({ url: Api.getTableList, params });
  78. };
  79. /**
  80. * 加载全部分类字典数据
  81. */
  82. export const loadCategoryData = (params) => {
  83. return defHttp.get({ url: Api.getCategoryData, params });
  84. };
  85. /**
  86. * 文件上传
  87. */
  88. export const uploadFile = (params, success) => {
  89. return defHttp.uploadFile({ url: uploadUrl }, params, { success });
  90. };
  91. /**
  92. * 下载文件
  93. * @param url 文件路径
  94. * @param fileName 文件名
  95. * @param parameter
  96. * @returns {*}
  97. */
  98. export const downloadFile = (url, fileName?, parameter?) => {
  99. return getFileblob(url, parameter).then((data) => {
  100. if (!data || data.size === 0) {
  101. message.warning('文件下载失败');
  102. return;
  103. }
  104. if (typeof window.navigator.msSaveBlob !== 'undefined') {
  105. window.navigator.msSaveBlob(new Blob([data]), fileName);
  106. } else {
  107. let url = window.URL.createObjectURL(new Blob([data]));
  108. let link = document.createElement('a');
  109. link.style.display = 'none';
  110. link.href = url;
  111. link.setAttribute('download', fileName);
  112. document.body.appendChild(link);
  113. link.click();
  114. document.body.removeChild(link); //下载完成移除元素
  115. window.URL.revokeObjectURL(url); //释放掉blob对象
  116. }
  117. });
  118. };
  119. /**
  120. * 下载文件 用于excel导出
  121. * @param url
  122. * @param parameter
  123. * @returns {*}
  124. */
  125. export const getFileblob = (url, parameter) => {
  126. return defHttp.get(
  127. {
  128. url: url,
  129. params: parameter,
  130. responseType: 'blob',
  131. },
  132. { isTransformResponse: false }
  133. );
  134. };