| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- 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;
|