123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- let Parse = getApp().Parse;
- const company = getApp().globalData.company
- const compute = require("../../../../utils/compute.js");
- Component({
- /**
- * 组件的属性列表
- */
- properties: {
- },
- /**
- * 组件的初始数据
- */
- data: {
- value: '',
- active: 1,
- activeKey: 0,
- food: [],
- homestay: [],
- department: [],
- banner: null,
- active1:0,
- currentTab:0,
- tabs: [
- {
- title: '村落',
- icon: 'https://file-cloud.fmode.cn/sHNeVwSaAg/20230812/gu1jnl043245587.png'
- },
- {
- title: '美食',
- icon: 'https://file-cloud.fmode.cn/sHNeVwSaAg/20230812/53a71a043348365.png'
- },
- {
- title: '民宿',
- icon: 'https://file-cloud.fmode.cn/sHNeVwSaAg/20230812/ljkjrg043355069.png'
- },
- {
- title: '商超',
- icon: 'https://file-cloud.fmode.cn/sHNeVwSaAg/20230812/teofq2043403030.png'
- },
- ],
- tabIndex: 0,
- sidebarIndex: 0,
- type:'catering',
- rankList: [{
- title: '村落'
- }, {
- title: '美食'
- }, {
- title: '民宿'
- }, {
- title: '商超'
- }],
- latitude: 0,
- longitude: 0,
- },
- ready: async function() {
- // 在组件布局完成后执行,确保options参数中有data信息
- this.getData()
- },
- /**
- * 组件的方法列表
- */
- methods: {
- async getData() {
- // this.getShopStore()
- // this.gethomestay()
- if (this.data.latitude == 0 && this.data.longitude == 0) {
- let {
- latitude,
- longitude
- } = await this.getLocation()
- this.setData({
- latitude,
- longitude
- })
- }
- this.getBanner()
- this.getRank()
- this.getHomeShow()
- // this.getDepartment()
- },
- getLocation() {
- return new Promise((resolve, reject) => {
- wx.getLocation({
- type: 'gcj02',
- success: (res) => {
- resolve({
- latitude: res.latitude,
- longitude: res.longitude
- })
- },
- fail: () => {
- resolve({
- latitude: 0,
- longitude: 0
- })
- },
- complete: () => {}
- });
- })
-
- },
- async getRank(){
- let {rankList} = this.data
- let village = await this.getDepartment()
- let catering = await this.getShopStore('catering')
- let stay = await this.getShopStore('stay')
- let shop = await this.getShopStore('shop')
- rankList[0]['contents']=village
- rankList[1]['contents']=catering
- rankList[2]['contents']=stay
- rankList[3]['contents']=shop
- this.setData({
- rankList,
- village
- })
- },
- goUrl(e){
- let {url} = e.currentTarget.dataset
- wx.navigateTo({
- url: url,
- })
- },
- villagedetails(e) {
- let id = e.currentTarget.dataset.item.objectId
- wx.navigateTo({
- url: '/nova-tourism/pages/home/village/village-details/index?id=' + id
- });
- },
- onPullDownRefresh: function() {
- this.setData({
- pageNum: 1,
- theEnd: false
- }, () => {
- // this.getList().then(res => wx.stopPullDownRefresh())
- })
- },
- village() {
- wx.navigateTo({
- url: '/nova-tourism/pages/home/village/index'
- });
- },
- gourmet() {
- wx.navigateTo({
- url: '/nova-tourism/pages/gourmet/index'
- });
- },
- foodlist() {
- wx.navigateTo({
- url: '/nova-tourism/pages/food-list/index'
- });
- },
- homestay() {
- wx.navigateTo({
- url: '/nova-tourism/pages/homestay/hotel-list/index'
- });
- },
- hoteldetails(e) {
- let id = e.currentTarget.dataset.item.objectId
- wx.navigateTo({
- url: '/nova-tourism/pages/homestay/hotel-details/index?id=' + id
- });
- },
- storepackage(e) {
- let id = e.currentTarget.dataset.item.objectId
- wx.navigateTo({
- url: '/nova-tourism/pages/gourmet/store-package/index?id=' + id
- });
- },
- // homestay(e) {
- // let id = e.currentTarget.dataset.item.objectId
- // console.log(id);
- // wx.navigateTo({
- // url: '/nova-tourism/pages/homestay/hotel-details/index?id=' + id
- // });
- // },
- async getShopStore(type) {
- let listDate= []
- let ShopStore = new Parse.Query('ShopStore')
- ShopStore.notEqualTo('isDeleted', "true")
- ShopStore.equalTo('company', company)
- ShopStore.equalTo('type', type)
- ShopStore.equalTo('isShow', "true")
- ShopStore.limit(3)
- let shopStores = await ShopStore.find()
- if (shopStores && shopStores.length > 0) {
- shopStores.forEach(c => {
- listDate.push(c.toJSON())
- })
- }
- return listDate
- },
- async getHomeShow(){
- let discount = await this.descShopStore("perCapita")
- let hot = await this.descShopStore("score")
- this.setData({
- discount,
- hot
- })
- },
- async descShopStore(column) {
- let ShopStore = new Parse.Query('ShopStore')
- ShopStore.notEqualTo('isDeleted', "true")
- ShopStore.equalTo('company', company)
- ShopStore.equalTo('isShow', "true")
- ShopStore.descending(column)
- let shopStore = await ShopStore.first()
- let shop = {}
- if (shopStore?.id) {
- shop = shopStore.toJSON()
- }
- return shop
- },
- // async getShopStore() {
- // let { type } = this.data
- // this.setData({
- // listDate: []
- // })
- // let ShopStore = new Parse.Query('ShopStore')
- // ShopStore.equalTo('company', company)
- // ShopStore.equalTo('type', type)
- // ShopStore.equalTo('isShow', "true")
- // this.data.value && ShopStore.contains('storeName',this.data.value)
- // let shopStores = await ShopStore.find()
- // if (shopStores && shopStores.length > 0) {
- // let listJSON = []
- // shopStores.forEach(c => {
- // listJSON.push(c.toJSON())
- // })
- // this.setData({
- // listDate: listJSON
- // })
- // }
- // console.log(this.data.listDate);
- // },
- player() {
- console.log('播放视频')
- },
- async getBanner() {
- let Banner = new Parse.Query('Banner')
- Banner.notEqualTo('isDeleted', "true")
- Banner.equalTo('company', company)
- Banner.equalTo('isEnabled', "true")
- Banner.equalTo('type','home')
- let banner = await Banner.find()
- if (banner && banner.length > 0) {
- let listJSON = []
- banner.forEach(c => {
- listJSON.push(c.toJSON())
- })
- this.setData({
- banner: listJSON
- })
- }
- },
- async gethomestay() {
- let ShopStore = new Parse.Query('ShopStore')
- ShopStore.notEqualTo('isDeleted', "true")
- ShopStore.equalTo('company', company)
- ShopStore.equalTo('type', "stay")
- ShopStore.equalTo('isShow', "true")
- let shopStores = await ShopStore.find()
- if (shopStores && shopStores.length > 0) {
- let listJSON = []
- shopStores.forEach(c => {
- listJSON.push(c.toJSON())
- })
- this.setData({
- homestay: listJSON
- })
- }
- },
- async getDepartment() {
- let Department = new Parse.Query('Department')
- Department.notEqualTo('isDeleted', "true")
- Department.equalTo('company', company)
- let department = await Department.find()
- if (department && department.length > 0) {
- let listJSON = []
- department.forEach(c => {
- let dJSON = c.toJSON()
- let distances = compute.computeDistance(
- this.data.latitude,
- this.data.longitude,
- dJSON.location.latitude,
- dJSON.location.longitude
- )
- dJSON.distances = distances
- listJSON.push(dJSON)
- })
- return listJSON
- }
- },
- onSearch() {
- wx.showToast({
- title: `搜索 ${this.data.value}`,
- icon: 'none',
- });
- },
- onClick() {
- wx.showToast({
- title: `搜索 ${this.data.value}`,
- icon: 'none',
- });
- },
- onChange(e) {
- this.setData({
- value: e.detail,
- });
- this.getShopStore()
- },
- tabsGoUrl(e){
- let {index} = e.currentTarget.dataset
- let url = ''
- switch (index) {
- case 0:
- url+=`/nova-tourism/pages/template-2/searching/index?index=${index}`
- break;
- case 1:
- url+=`/nova-tourism/pages/food-list/index`
- break;
- case 2:
- url+=`/nova-tourism/pages/homestay/hotel-list/index`
- break;
- case 3:
- url+=`/nova-tourism/pages/template-2/searching/index?index=${index}`
- break;
- default:
- break;
- }
- wx.navigateTo({
- url: url,
- })
- },
- // 处理点击tab
- onTabClick(e) {
- let id = e.currentTarget.id;
- console.log(id);
- let objMap = {
- '1':{
- type:'catering'
- },
- '2':{
- type:'stay'
- },
- '3':{
- type:'shop'
- },
- }
- this.setData({
- tabIndex: id,
- })
- if(id > 0){
- this.setData({
- type:objMap[id].type
- })
- }
- id > 0 && this.getShopStore(objMap[id].equl)
- },
- onSidebarClick(e) {
- let id = e.currentTarget.id;
- this.setData({
- sidebarIndex: id,
- })
- },
- rankToDetail(e){
- let {key,id} = e.currentTarget.dataset
- let url = ''
- if(key=='村落'){
- url = `/nova-tourism/pages/home/village/village-details/index?id=${id}`
- }else if(key=='美食'){
- url = `/nova-tourism/pages/gourmet/store-package/index?id=${id}`
- }else if(key=='民宿'){
- url = `/nova-tourism/pages/homestay/hotel-details/index?id=${id}`
- }else if(key=='商超'){
- wx.setStorageSync('storeID', id)
- url = `/nova-tourism/pages/index/index?active=3`
- }
- wx.navigateTo({
- url: url,
- })
- },
-
- // switchNav: function (e) {
- // let page = this;
- // let id = e.target.id;
- // if (this.data.currentTab == id) {
- // return false;
- // } else {
- // page.setData({
- // currentTab: id
- // });
- // }
- // page.setData({
- // active1: id
- // });
- // },
- },
- })
|