import request from '../../../Utils/RequestUtils'; import Toast from '../../../flooks/Toast'; import MapModel from '../../Map/model'; const HomeModel = (now) => ({ bannerList: [], categories: [], newMerchants: [], allnewMerchants: [], promote1: [], promote2: [], timeTag: {}, list: [], page: 0, size: 20, finish: false, loading: false, location: {}, addressName: '', loadingTop: true, sort: '', filter: '', tag: '', natureId: '', endAmount: '', merchantNatureList: [], initHome() { now({ bannerList: [], list: [], categories: [], newMerchants: [], allnewMerchants: [], promote1: [], promote2: [], timeTag: {}, loadingTop: true, sort: '', }); const { locationEvent } = now(); locationEvent() .then(() => { const { chooseInfo } = now(MapModel); const { location } = chooseInfo; return request.get('/merchant/index', { params: { latitude: location.lat, longitude: location.lng }, }); }) .then((res) => { now({ bannerList: res.banner, categories: res.categories.slice(0, 5), newMerchants: res.newMerchants.slice(0, 4), allnewMerchants: res.newMerchants, promote1: res.promote1.slice(0, 2), promote2: res.promote2.slice(0, 4), timeTag: res.timeTag, loadingTop: false, }); const { changeSort } = now(); return changeSort(''); }); }, locationEvent() { const { chooseInfo, getChooseInfo } = now(MapModel); if (chooseInfo) { return Promise.resolve(); } else { return getChooseInfo(); } }, getData() { const { page, size, list, sort, filter, tag, natureId, endAmount } = now(); const { loading, warnning, clearLoading } = now(Toast); loading(); const { chooseInfo } = now(MapModel); const { location } = chooseInfo; const params = { latitude: location.lat, longitude: location.lng }; if (sort) { params.sort = sort; } if (filter) { params.filter = filter; } if (tag) { params.tag = tag; } if (natureId) { params.natureId = natureId; } if (endAmount) { params.startAmount = 0; params.endAmount = endAmount; } request .get('/settings/show', { params, }) .then((res) => { clearLoading(); now({ list: list.concat(res), finish: true, page: 0, loading: false, }); }) .catch((e) => { warnning(e.error); }); }, changeChooseMap(info) { console.log(info); }, changeSort(type) { now({ sort: type, page: 0, list: [], }); const { getData } = now(); getData(); }, getNature() { request.get('/merchantNature/all').then((res) => { now({ merchantNatureList: res.content, }); }); }, ChangeFiliter(filter, tag, natureId, endAmount) { now({ filter, tag, natureId, endAmount, page: 0, list: [], }); const { getData } = now(); getData(); }, clearFiliter() { now({ filter: '', tag: '', natureId: '', endAmount: '', page: 0, list: [], }); const { getData } = now(); getData(); }, searchHome(val, type, page) { const { chooseInfo } = now(MapModel); const { location } = chooseInfo; const { loading, warnning, clearLoading } = now(Toast); loading(); const params = { latitude: location.lat, longitude: location.lng, page }; if (type === 'popularTag') { params.popularTag = val; } else { params.search = val; } return request .get('/settings/search', { params, }) .then((res) => { clearLoading(); return Promise.resolve(res); }) .catch((e) => { clearLoading(); // warnning(e.error); return Promise.reject(); }); }, }); export default HomeModel;