about-gateway.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { get } from '@/core/http/http-client'
  2. import appSettings from '@/core/config/app-settings'
  3. const ROUTE_ABOUT = '/wanlshop/common/about'
  4. const ROUTE_UPDATE = '/wanlshop/common/update'
  5. function unwrapAboutPayload(raw) {
  6. if (!raw || typeof raw !== 'object') return null
  7. if (raw.data != null && raw.code !== undefined) return raw.data
  8. return raw
  9. }
  10. /**
  11. * @param {unknown} value
  12. * @param {string} defaultId
  13. */
  14. export function normalizeArticleConfigId(value, defaultId) {
  15. if (value === undefined || value === null || value === '') return defaultId
  16. const s = String(value).trim()
  17. if (s === '') return defaultId
  18. const n = Number(s)
  19. if (Number.isFinite(n) && n === 0) return 0
  20. return s
  21. }
  22. export function isArticleMenuDisabled(id) {
  23. if (id === undefined || id === null || id === '') return true
  24. if (id === 0 || id === '0') return true
  25. const n = Number(String(id).trim())
  26. return Number.isFinite(n) && n === 0
  27. }
  28. export async function fetchAboutInfo() {
  29. const { data, raw } = await get(ROUTE_ABOUT)
  30. const payload = unwrapAboutPayload(data != null ? data : raw)
  31. if (!payload || typeof payload !== 'object') {
  32. return {
  33. name: '88LIVE',
  34. logo: '',
  35. copyright: ''
  36. }
  37. }
  38. return {
  39. name: payload.name || '88LIVE',
  40. logo: payload.logo || '',
  41. copyright: payload.copyright || ''
  42. }
  43. }
  44. export async function probeAppUpdate() {
  45. const currentCode = Number(appSettings.versionCode)
  46. const { data } = await get(ROUTE_UPDATE)
  47. if (!data || Number(data.versionCode) <= currentCode) {
  48. return { hasUpdate: false, data: null }
  49. }
  50. return { hasUpdate: true, data }
  51. }