upload.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // import { Upload_URL } from "../../app.config";
  2. import { Base_URL } from "../../app.config";
  3. import { upload as _upload } from "../wx/network";
  4. import { getAccountInfoSync } from "../wx/open-api";
  5. import { token } from "../logic";
  6. const miniProgram = getAccountInfoSync();
  7. const Instance = (function createUploadRequest(option: IRequestCreateConfig) {
  8. const { baseURL } = option;
  9. return <R, T>(config: IUploadConfig<R, T>) => {
  10. let { url, data, params, header, meta, transform = (params: any) => params, ..._config } = config;
  11. // url ??= `/upload`;
  12. url ??= `/common/upload`;
  13. header ??= {};
  14. header['Authorization'] = meta?.ignoreToken ? '' : option.token?.() ?? '';
  15. // header['patientId'] = wx.getStorageSync('patientId') ?? '';
  16. // header['doctorId'] = wx.getStorageSync('doctorId') ?? '';
  17. header['appId'] = miniProgram.appId ?? '';
  18. header['env'] = miniProgram.envVersion ?? '';
  19. return _upload({
  20. url: /https?\:\/\//.test(url) ? url : `${baseURL}${url}`,
  21. header, formData: data, filePath: params.file, name: params.name, ..._config,
  22. }, (response => {
  23. const data = JSON.parse(response);
  24. if (data.code === 200 && data.success !== false)
  25. return transform({ data: data.data, header: {} });
  26. throw { errMsg: data.msg || `app:${data.code}`, errno: `060402${data.code}` }
  27. }));
  28. }
  29. })({
  30. // baseURL: Upload_URL,
  31. baseURL: Base_URL,
  32. token: token
  33. })
  34. export function upload<R, T>(config: IUploadConfig<R, T>) {
  35. return Instance<R, T>(config)
  36. }