797fc23b3b341c732f6731d491e68c2c58c95b6a.svn-base 4.3 KB

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