upload.ts 1.2 KB

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