simulationSession.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /** 模拟流程跨页上下文(sessionStorage) */
  2. const JOB_KEY = 'aitori.simJobId'
  3. const RESULT_KEY = 'aitori.simResultId'
  4. const CUSTOMER_KEY = 'aitori.simCustomerId'
  5. const SOURCE_PHOTO_KEY = 'aitori.simSourcePhoto'
  6. export const simulationSession = {
  7. setJob(jobId: number, extras?: { customerId?: string; sourcePhoto?: string }) {
  8. sessionStorage.setItem(JOB_KEY, String(jobId))
  9. if (extras?.customerId) {
  10. sessionStorage.setItem(CUSTOMER_KEY, extras.customerId)
  11. } else {
  12. sessionStorage.removeItem(CUSTOMER_KEY)
  13. }
  14. if (extras?.sourcePhoto) {
  15. sessionStorage.setItem(SOURCE_PHOTO_KEY, extras.sourcePhoto)
  16. } else {
  17. sessionStorage.removeItem(SOURCE_PHOTO_KEY)
  18. }
  19. },
  20. setCustomerId(customerId: string) {
  21. sessionStorage.setItem(CUSTOMER_KEY, customerId)
  22. },
  23. getJobId(): number | null {
  24. const raw = sessionStorage.getItem(JOB_KEY)
  25. return raw ? Number(raw) : null
  26. },
  27. setResultId(resultId: string) {
  28. sessionStorage.setItem(RESULT_KEY, resultId)
  29. },
  30. getResultId(): string | null {
  31. return sessionStorage.getItem(RESULT_KEY)
  32. },
  33. getCustomerId(): string | null {
  34. return sessionStorage.getItem(CUSTOMER_KEY)
  35. },
  36. getSourcePhoto(): string | null {
  37. return sessionStorage.getItem(SOURCE_PHOTO_KEY)
  38. },
  39. clear() {
  40. sessionStorage.removeItem(JOB_KEY)
  41. sessionStorage.removeItem(RESULT_KEY)
  42. sessionStorage.removeItem(CUSTOMER_KEY)
  43. sessionStorage.removeItem(SOURCE_PHOTO_KEY)
  44. },
  45. }
  46. export const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms))