| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import * as Api from '@/api/region'
- import storage from '@/utils/storage'
- import regionData from '../data/region'
- const REGION_TREE = 'region_tree'
- /**
- * 商品分类 model类
- * RegionModel
- */
- export default {
- // 从服务端获取全部地区数据(树状)
- getTreeDataFromApi() {
- return new Promise((resolve, reject) => {
- Api.tree().then(result => resolve(result.data.list))
- })
- },
- // 获取所有地区(树状) 从storage中获取
- getTreeData() {
- return new Promise((resolve, reject) => {
- // 判断缓存中是否存在
- const data = storage.get(REGION_TREE)
- // 从服务端获取全部地区数据
- if (data) {
- resolve(data)
- } else {
- this.getTreeDataFromApi().then(list => {
- // 缓存24小时
- storage.set(REGION_TREE, list, 24 * 60 * 60)
- resolve(list)
- })
- }
- })
- },
- // 同步获取所有地区(树状)
- getTreeDataSync() {
- return regionData
- },
- // 获取所有地区的总数
- getCitysCount() {
- return new Promise((resolve, reject) => {
- // 获取所有地区(树状)
- this.getTreeData().then(data => {
- const cityIds = []
- // 遍历省份
- for (const pidx in data) {
- const province = data[pidx]
- // 遍历城市
- for (const cidx in province.city) {
- const cityItem = province.city[cidx]
- cityIds.push(cityItem.id)
- }
- }
- resolve(cityIds.length)
- })
- })
- },
- // 同步获取所有地区的总数
- getCitysCountSync() {
- const regionData = this.getTreeDataSync()
- const cityIds = []
- for (const pidx in regionData) {
- const province = regionData[pidx]
- for (const cidx in province.city) {
- const cityItem = province.city[cidx]
- cityIds.push(cityItem.id)
- }
- }
- return cityIds.length
- }
- }
|