Setting.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import * as SettingApi from '@/api/setting'
  2. import storage from '@/utils/storage'
  3. const CACHE_KEY = 'Setting'
  4. // 写入缓存, 到期时间30分钟
  5. const setStorage = (data) => {
  6. const expireTime = 30 * 60;
  7. storage.set(CACHE_KEY, data, expireTime);
  8. }
  9. // 获取缓存中的数据
  10. const getStorage = () => {
  11. return storage.get(CACHE_KEY);
  12. }
  13. // 获取系统设置
  14. const getApiData = () => {
  15. return new Promise((resolve, reject) => {
  16. SettingApi.data()
  17. .then(result => {
  18. resolve(result.data.setting);
  19. })
  20. })
  21. }
  22. /**
  23. * 获取商城设置
  24. * 有缓存的情况下返回缓存, 没有缓存从后端api获取
  25. * @param {bool} isCache 是否从缓存中获取
  26. */
  27. const data = (isCache = true) => {
  28. return new Promise((resolve, reject) => {
  29. const cacheData = getStorage()
  30. if (isCache && cacheData) {
  31. resolve(cacheData)
  32. } else {
  33. getApiData().then(data => {
  34. setStorage(data)
  35. resolve(data)
  36. })
  37. }
  38. })
  39. }
  40. // 获取指定的系统设置
  41. const item = (key, isCache = true) => {
  42. return new Promise((resolve, reject) => {
  43. data(isCache).then(setting => {
  44. resolve(setting[key])
  45. })
  46. })
  47. }
  48. export default {
  49. data,
  50. item
  51. }