1
0

header.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import {popAll} from "./formId";
  2. import Vue from "vue";
  3. import $store from "../store";
  4. import {objectValues} from "./utils";
  5. import apiUrl from "./apiUrl";
  6. const setHeader = async function (args, type) {
  7. const header = {
  8. 'X-App-Platform': (args.header && args.header['X-App-Platform']) ? args.header['X-App-Platform'] : Vue.prototype.$platform,
  9. 'X-Form-Id-List': JSON.stringify(popAll()),
  10. 'X-Requested-With': (args.header && args.header['X-Requested-With']) ? args.header['X-Requested-With'] : 'XMLHttpRequest',
  11. 'X-App-Version': Vue.prototype.$appVersion,
  12. 'content-type': type ? 'multipart/form-data' :'application/x-www-form-urlencoded'
  13. };
  14. await $store.dispatch('user/loadAccessTokenFormCache');
  15. if ($store.state.user && $store.state.user.accessToken) {
  16. header['X-Access-Token'] = $store.state.user.accessToken;
  17. }
  18. if ($store.state.user && $store.state.user.tempParentId !== 0) {
  19. header['X-User-Id'] = $store.state.user.tempParentId + '';
  20. }
  21. //多商户Token
  22. let obj = {};
  23. args.url.replace(/([^=&]+)=([^&]*)/g, function (m, key, value) {
  24. obj[decodeURIComponent(key)] = decodeURIComponent(value);
  25. });
  26. if (objectValues(apiUrl.mch).indexOf(obj.r) !== -1) {
  27. const mch_storage = uni.getStorageSync('MCH2019');
  28. header['Mch-Access-Token'] = mch_storage.token;
  29. }
  30. return header;
  31. };
  32. export default setHeader