api.ts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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. export const uploadUrl2 = `${baseUploadUrl}/sys/common/upload2`;
  23. /**
  24. * 职务列表
  25. * @param params
  26. */
  27. export const getPositionList = (params) => {
  28. return defHttp.get({ url: Api.positionList, params });
  29. };
  30. /**
  31. * 用户列表
  32. * @param params
  33. */
  34. export const getUserList = (params) => {
  35. return defHttp.get({ url: Api.userList, params });
  36. };
  37. /**
  38. * 角色列表
  39. * @param params
  40. */
  41. export const getRoleList = (params) => {
  42. return defHttp.get({ url: Api.roleList, params });
  43. };
  44. /**
  45. * 异步获取部门树列表
  46. */
  47. export const queryDepartTreeSync = (params?) => {
  48. return defHttp.get({ url: Api.queryDepartTreeSync, params });
  49. };
  50. /**
  51. * 获取部门树列表
  52. */
  53. export const queryTreeList = (params?) => {
  54. return defHttp.get({ url: Api.queryTreeList, params });
  55. };
  56. /**
  57. * 分类字典树控件 加载节点
  58. */
  59. export const loadTreeData = (params?) => {
  60. return defHttp.get({ url: Api.loadTreeData, params });
  61. };
  62. /**
  63. * 根据字典code加载字典text
  64. */
  65. export const loadDictItem = (params?) => {
  66. return defHttp.get({ url: Api.loadDictItem, params });
  67. };
  68. /**
  69. * 根据字典code加载字典text
  70. */
  71. export const getDictItems = (dictCode) => {
  72. return defHttp.get({ url: Api.getDictItems + dictCode }, { joinTime: false });
  73. };
  74. /**
  75. * 部门用户modal选择列表加载list
  76. */
  77. export const getTableList = (params) => {
  78. return defHttp.get({ url: Api.getTableList, params });
  79. };
  80. /**
  81. * 加载全部分类字典数据
  82. */
  83. export const loadCategoryData = (params) => {
  84. return defHttp.get({ url: Api.getCategoryData, params });
  85. };
  86. /**
  87. * 文件上传
  88. */
  89. export const uploadFile2 = (params, success) => {
  90. return defHttp.uploadFile({ url: uploadUrl2 }, params, { success });
  91. };
  92. /**
  93. * 文件上传
  94. */
  95. export const uploadFile = (params, success) => {
  96. return defHttp.uploadFile({ url: uploadUrl }, params, { success });
  97. };
  98. /**
  99. * 下载文件
  100. * @param url 文件路径
  101. * @param fileName 文件名
  102. * @param parameter
  103. * @returns {*}
  104. */
  105. export const downloadFile = (url, fileName?, parameter?) => {
  106. return getFileblob(url, parameter).then((data) => {
  107. if (!data || data.size === 0) {
  108. message.warning('文件下载失败');
  109. return;
  110. }
  111. if (typeof window.navigator.msSaveBlob !== 'undefined') {
  112. window.navigator.msSaveBlob(new Blob([data]), fileName);
  113. } else {
  114. const url = window.URL.createObjectURL(new Blob([data]));
  115. const link = document.createElement('a');
  116. link.style.display = 'none';
  117. link.href = url;
  118. link.setAttribute('download', fileName);
  119. document.body.appendChild(link);
  120. link.click();
  121. document.body.removeChild(link); //下载完成移除元素
  122. window.URL.revokeObjectURL(url); //释放掉blob对象
  123. }
  124. });
  125. };
  126. /**
  127. * 下载文件 用于excel导出
  128. * @param url
  129. * @param parameter
  130. * @returns {*}
  131. */
  132. export const getFileblob = (url, parameter) => {
  133. return defHttp.get(
  134. {
  135. url: url,
  136. params: parameter,
  137. responseType: 'blob',
  138. },
  139. { isTransformResponse: false }
  140. );
  141. };
  142. /**
  143. * 【用于评论功能】自定义文件上传-方法
  144. */
  145. export const uploadMyFile = (url, data) => {
  146. return defHttp.uploadMyFile(url, data);
  147. };