manage.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. import Vue from 'vue'
  2. import { axios } from '@/utils/request'
  3. import signMd5Utils from '@/utils/encryption/signMd5Utils'
  4. const api = {
  5. user: '/mock/api/user',
  6. role: '/mock/api/role',
  7. service: '/mock/api/service',
  8. permission: '/mock/api/permission',
  9. permissionNoPager: '/mock/api/permission/no-pager'
  10. }
  11. export default api
  12. //post
  13. export function postAction(url,parameter) {
  14. // let sign = signMd5Utils.getSign(url, parameter);
  15. //将签名和时间戳,添加在请求接口 Header
  16. // update-begin--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
  17. // let signHeader = {"X-Sign": sign,"X-TIMESTAMP": signMd5Utils.getTimestamp()};
  18. // update-end--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
  19. return axios({
  20. url: url,
  21. method:'post' ,
  22. data: parameter,
  23. // headers: signHeader
  24. })
  25. }
  26. //post method= {post | put}
  27. export function httpAction(url,parameter,method) {
  28. let sign = signMd5Utils.getSign(url, parameter);
  29. //将签名和时间戳,添加在请求接口 Header
  30. // update-begin--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
  31. let signHeader = {"X-Sign": sign,"X-TIMESTAMP": signMd5Utils.getTimestamp()};
  32. // update-end--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
  33. return axios({
  34. url: url,
  35. method:method ,
  36. data: parameter,
  37. headers: signHeader
  38. })
  39. }
  40. //put
  41. export function putAction(url,parameter) {
  42. return axios({
  43. url: url,
  44. method:'put',
  45. data: parameter
  46. })
  47. }
  48. //get
  49. export function getAction(url,parameter) {
  50. let sign = signMd5Utils.getSign(url, parameter);
  51. //将签名和时间戳,添加在请求接口 Header
  52. // update-begin--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
  53. let signHeader = {"X-Sign": sign,"X-TIMESTAMP": signMd5Utils.getTimestamp()};
  54. // update-end--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
  55. return axios({
  56. url: url,
  57. method: 'get',
  58. params: parameter,
  59. headers: signHeader
  60. })
  61. }
  62. //deleteAction
  63. export function deleteAction(url,parameter) {
  64. return axios({
  65. url: url,
  66. method: 'delete',
  67. params: parameter
  68. })
  69. }
  70. export function getUserList(parameter) {
  71. return axios({
  72. url: api.user,
  73. method: 'get',
  74. params: parameter
  75. })
  76. }
  77. export function getRoleList(parameter) {
  78. return axios({
  79. url: api.role,
  80. method: 'get',
  81. params: parameter
  82. })
  83. }
  84. export function getServiceList(parameter) {
  85. return axios({
  86. url: api.service,
  87. method: 'get',
  88. params: parameter
  89. })
  90. }
  91. export function getPermissions(parameter) {
  92. return axios({
  93. url: api.permissionNoPager,
  94. method: 'get',
  95. params: parameter
  96. })
  97. }
  98. // id == 0 add post
  99. // id != 0 update put
  100. export function saveService(parameter) {
  101. return axios({
  102. url: api.service,
  103. method: parameter.id == 0 ? 'post' : 'put',
  104. data: parameter
  105. })
  106. }
  107. /**
  108. * 下载文件 用于excel导出
  109. * @param url
  110. * @param parameter
  111. * @returns {*}
  112. */
  113. export function downFile(url,parameter, method='get'){
  114. if(method=='get'){
  115. return axios({
  116. url: url,
  117. params: parameter,
  118. method: method ,
  119. responseType: 'blob'
  120. })
  121. }else{
  122. return axios({
  123. url: url,
  124. method: method,
  125. data: parameter,
  126. responseType: 'blob'
  127. })
  128. }
  129. }
  130. /**
  131. * 下载文件
  132. * @param url 文件路径
  133. * @param fileName 文件名
  134. * @param parameter
  135. * @returns {*}
  136. */
  137. export function downloadFile(url, fileName, parameter) {
  138. return downFile(url, parameter).then((data) => {
  139. if (!data || data.size === 0) {
  140. Vue.prototype['$message'].warning('文件下载失败')
  141. return
  142. }
  143. if (typeof window.navigator.msSaveBlob !== 'undefined') {
  144. window.navigator.msSaveBlob(new Blob([data]), fileName)
  145. } else {
  146. let url = window.URL.createObjectURL(new Blob([data]))
  147. let link = document.createElement('a')
  148. link.style.display = 'none'
  149. link.href = url
  150. link.setAttribute('download', fileName)
  151. document.body.appendChild(link)
  152. link.click()
  153. document.body.removeChild(link) //下载完成移除元素
  154. window.URL.revokeObjectURL(url) //释放掉blob对象
  155. }
  156. })
  157. }
  158. /**
  159. * 下载文件
  160. * @param url 文件路径
  161. * @param fileName 文件名
  162. * @param parameter
  163. * @returns {*}
  164. */
  165. export function downloadFileZIP(url, fileName, parameter) {
  166. return downFile(url, parameter).then((data) => {
  167. if (!data || data.size === 0) {
  168. Vue.prototype['$message'].warning('文件下载失败')
  169. return
  170. }
  171. if (typeof window.navigator.msSaveBlob !== 'undefined') {
  172. window.navigator.msSaveBlob(new Blob([data],{ type: 'application/zip' }), fileName)
  173. } else {
  174. let url = window.URL.createObjectURL(new Blob([data],{ type: 'application/zip' }))
  175. let link = document.createElement('a')
  176. link.style.display = 'none'
  177. link.href = url
  178. link.setAttribute('download', fileName)
  179. document.body.appendChild(link)
  180. link.click()
  181. document.body.removeChild(link) //下载完成移除元素
  182. window.URL.revokeObjectURL(url) //释放掉blob对象
  183. }
  184. })
  185. }
  186. /**
  187. * 文件上传 用于富文本上传图片
  188. * @param url
  189. * @param parameter
  190. * @returns {*}
  191. */
  192. export function uploadAction(url,parameter){
  193. return axios({
  194. url: url,
  195. data: parameter,
  196. method:'post' ,
  197. headers: {
  198. 'Content-Type': 'multipart/form-data', // 文件上传
  199. },
  200. })
  201. }
  202. /**
  203. * 获取文件服务访问路径
  204. * @param avatar
  205. * @param subStr
  206. * @returns {*}
  207. */
  208. export function getFileAccessHttpUrl(avatar,subStr) {
  209. if(!subStr) subStr = 'http'
  210. try {
  211. if(avatar && avatar.startsWith(subStr)){
  212. return avatar;
  213. }else{
  214. if(avatar && avatar.length>0 && avatar.indexOf('[')==-1){
  215. return window._CONFIG['staticDomainURL'] + "/" + avatar;
  216. }
  217. }
  218. }catch(err){
  219. return;
  220. }
  221. }