sign.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { EquipmentType } from '@/utils/dictMap'
  2. import { submitBoilerSign } from '@/api/boiler/boilerSign'
  3. import { submitPipeSign } from '@/api/pipe/pipeSign'
  4. import { signConfirm } from '@/api/sign'
  5. type Adapter = {
  6. inputAdapter: (data: any) => any
  7. reqFunction: (params: any) => any
  8. outputAdapter: (data: any) => any
  9. }
  10. export enum SignFuncName {
  11. SubmitSign,
  12. }
  13. const map = {
  14. [SignFuncName.SubmitSign]: {
  15. [EquipmentType.BOILER]: {
  16. inputAdapter: null,
  17. reqFunction: submitBoilerSign,
  18. outputAdapter: null,
  19. },
  20. [EquipmentType.PIPE]: {
  21. inputAdapter: null,
  22. reqFunction: submitPipeSign,
  23. outputAdapter: null,
  24. },
  25. [EquipmentType.CONTAINER]: {
  26. inputAdapter: null,
  27. reqFunction: signConfirm,
  28. outputAdapter: null,
  29. },
  30. },
  31. }
  32. export const requestFunc = (funcName: SignFuncName, equipType: EquipmentType, params: any) => {
  33. const funMap = map[funcName]
  34. const adapter = funMap[equipType]
  35. // 1. input adapter
  36. let reqParams = params
  37. if (adapter.inputAdapter != null) {
  38. reqParams = adapter.inputAdapter(params)
  39. }
  40. if (!adapter.reqFunction) {
  41. throw new Error('api for send is not exists')
  42. }
  43. // 2. send req
  44. const respData = adapter.reqFunction(reqParams)
  45. // 3. output adapter
  46. let adaptedRespData = respData
  47. if (adapter.outputAdapter) {
  48. adaptedRespData = adaptedRespData = adapter.outputAdapter(respData)
  49. }
  50. return adaptedRespData
  51. }