manage.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  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. let signHeader = {"X-Sign": sign,"X-TIMESTAMP": signMd5Utils.getDateTimeToString()};
  17. return axios({
  18. url: url,
  19. method:'post' ,
  20. data: parameter,
  21. headers: signHeader
  22. })
  23. }
  24. //post method= {post | put}
  25. export function httpAction(url,parameter,method) {
  26. let sign = signMd5Utils.getSign(url, parameter);
  27. //将签名和时间戳,添加在请求接口 Header
  28. let signHeader = {"X-Sign": sign,"X-TIMESTAMP": signMd5Utils.getDateTimeToString()};
  29. return axios({
  30. url: url,
  31. method:method ,
  32. data: parameter,
  33. headers: signHeader
  34. })
  35. }
  36. //put
  37. export function putAction(url,parameter) {
  38. return axios({
  39. url: url,
  40. method:'put',
  41. data: parameter
  42. })
  43. }
  44. //get
  45. export function getAction(url,parameter) {
  46. let sign = signMd5Utils.getSign(url, parameter);
  47. //将签名和时间戳,添加在请求接口 Header
  48. let signHeader = {"X-Sign": sign,"X-TIMESTAMP": signMd5Utils.getDateTimeToString()};
  49. return axios({
  50. url: url,
  51. method: 'get',
  52. params: parameter,
  53. headers: signHeader
  54. })
  55. }
  56. //deleteAction
  57. export function deleteAction(url,parameter) {
  58. return axios({
  59. url: url,
  60. method: 'delete',
  61. params: parameter
  62. })
  63. }
  64. export function getUserList(parameter) {
  65. return axios({
  66. url: api.user,
  67. method: 'get',
  68. params: parameter
  69. })
  70. }
  71. export function getRoleList(parameter) {
  72. return axios({
  73. url: api.role,
  74. method: 'get',
  75. params: parameter
  76. })
  77. }
  78. export function getServiceList(parameter) {
  79. return axios({
  80. url: api.service,
  81. method: 'get',
  82. params: parameter
  83. })
  84. }
  85. export function getPermissions(parameter) {
  86. return axios({
  87. url: api.permissionNoPager,
  88. method: 'get',
  89. params: parameter
  90. })
  91. }
  92. // id == 0 add post
  93. // id != 0 update put
  94. export function saveService(parameter) {
  95. return axios({
  96. url: api.service,
  97. method: parameter.id == 0 ? 'post' : 'put',
  98. data: parameter
  99. })
  100. }
  101. /**
  102. * 下载文件 用于excel导出
  103. * @param url
  104. * @param parameter
  105. * @returns {*}
  106. */
  107. export function downFile(url,parameter){
  108. return axios({
  109. url: url,
  110. params: parameter,
  111. method:'get' ,
  112. responseType: 'blob'
  113. })
  114. }
  115. /**
  116. * 下载文件
  117. * @param url 文件路径
  118. * @param fileName 文件名
  119. * @param parameter
  120. * @returns {*}
  121. */
  122. export function downloadFile(url, fileName, parameter) {
  123. return downFile(url, parameter).then((data) => {
  124. if (!data || data.size === 0) {
  125. Vue.prototype['$message'].warning('文件下载失败')
  126. return
  127. }
  128. if (typeof window.navigator.msSaveBlob !== 'undefined') {
  129. window.navigator.msSaveBlob(new Blob([data]), fileName)
  130. } else {
  131. let url = window.URL.createObjectURL(new Blob([data]))
  132. let link = document.createElement('a')
  133. link.style.display = 'none'
  134. link.href = url
  135. link.setAttribute('download', fileName)
  136. document.body.appendChild(link)
  137. link.click()
  138. document.body.removeChild(link) //下载完成移除元素
  139. window.URL.revokeObjectURL(url) //释放掉blob对象
  140. }
  141. })
  142. }
  143. /**
  144. * 文件上传 用于富文本上传图片
  145. * @param url
  146. * @param parameter
  147. * @returns {*}
  148. */
  149. export function uploadAction(url,parameter){
  150. return axios({
  151. url: url,
  152. data: parameter,
  153. method:'post' ,
  154. headers: {
  155. 'Content-Type': 'multipart/form-data', // 文件上传
  156. },
  157. })
  158. }
  159. /**
  160. * 获取文件服务访问路径
  161. * @param avatar
  162. * @param subStr
  163. * @returns {*}
  164. */
  165. export function getFileAccessHttpUrl(avatar,subStr) {
  166. if(!subStr) subStr = 'http'
  167. try {
  168. if(avatar && avatar.startsWith(subStr)){
  169. return avatar;
  170. }else{
  171. if(avatar && avatar.length>0 && avatar.indexOf('[')==-1){
  172. return window._CONFIG['staticDomainURL'] + "/" + avatar;
  173. }
  174. }
  175. }catch(err){
  176. return;
  177. }
  178. }