Region.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import * as Api from '@/api/region'
  2. import storage from '@/utils/storage'
  3. const REGION_TREE = 'region_tree'
  4. /**
  5. * 商品分类 model类
  6. * RegionModel
  7. */
  8. export default {
  9. // 从服务端获取全部地区数据(树状)
  10. getTreeDataFromApi () {
  11. return new Promise((resolve, reject) => {
  12. Api.tree().then(result => resolve(result.data.data))
  13. })
  14. },
  15. // 获取所有地区(树状)
  16. getTreeData () {
  17. return new Promise((resolve, reject) => {
  18. // 判断缓存中是否存在
  19. const data = storage.get(REGION_TREE)
  20. // 从服务端获取全部地区数据
  21. if (data) {
  22. resolve(data)
  23. } else {
  24. this.getTreeDataFromApi().then(list => {
  25. // 缓存24小时
  26. storage.set(REGION_TREE, list, 1 * 24 * 60 * 60 * 1000)
  27. resolve(list)
  28. })
  29. }
  30. })
  31. },
  32. // 获取所有地区的总数
  33. getCitysCount () {
  34. return new Promise((resolve, reject) => {
  35. // 获取所有地区(树状)
  36. this.getTreeData().then(data => {
  37. const cityIds = []
  38. // 遍历省份
  39. for (const pidx in data) {
  40. const province = data[pidx]
  41. // 遍历城市
  42. for (const cidx in province.city) {
  43. const cityItem = province.city[cidx]
  44. cityIds.push(cityItem.id)
  45. }
  46. }
  47. resolve(cityIds.length)
  48. })
  49. })
  50. }
  51. }