You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
814 lines
27 KiB
814 lines
27 KiB
// pages/map/index.js
|
|
let systemInfo = wx.getSystemInfoSync(),rect = wx.getMenuButtonBoundingClientRect();
|
|
let height = (rect.top - systemInfo.statusBarHeight) * 2 + rect.height + systemInfo.statusBarHeight;
|
|
import commonApi from "../../utils/https/common"
|
|
import util from "../../utils/util"
|
|
let app = getApp();
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
showAllMask:false,
|
|
seachHeight:height,
|
|
topHeight:rect.top,
|
|
areas:['姑苏','吴江','苏州'],
|
|
areaIndex:0,
|
|
latitude:"",
|
|
longitude:"",
|
|
// type:0,
|
|
type:1, // 改为默认选中第一个类型:景点
|
|
keywords:"",
|
|
list:[],
|
|
showInfo:false,
|
|
info:null,
|
|
menus:[],
|
|
menuIndex:-1,
|
|
productList:[],
|
|
productPage:1,
|
|
productTotal:1,
|
|
timeList:{},
|
|
showMore:'close',
|
|
scrollLeft: 0,
|
|
levelList:[]
|
|
},
|
|
listenScroll(e) {
|
|
this.setData({
|
|
scrollLeft: e.detail.scrollLeft
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
if(options.type){
|
|
this.setData({
|
|
type:options.type
|
|
})
|
|
}
|
|
let that = this;
|
|
// 获取当前定位
|
|
commonApi._post("act/get_suzhou_areas").then(res=>{
|
|
wx.getLocation({
|
|
type: 'gcj02',
|
|
success: function (r) {
|
|
console.log(r)
|
|
res.data.unshift({
|
|
area_id:"",
|
|
area_title:"全部",
|
|
lon:r.longitude,
|
|
lat:r.latitude
|
|
})
|
|
that.setData({
|
|
areas:res.data,
|
|
areaIndex:0,
|
|
longitude:r.longitude,
|
|
latitude:r.latitude
|
|
})
|
|
that.getIsTest()
|
|
},
|
|
fail(){
|
|
that.getIsTest()
|
|
}
|
|
})
|
|
|
|
})
|
|
commonApi._post("pbservice/Comfort/getComfortLevel").then(res=>{
|
|
that.setData({
|
|
levelList:res.data
|
|
})
|
|
})
|
|
},
|
|
changeClose() {
|
|
this.setData({
|
|
showMore:'close'
|
|
})
|
|
},
|
|
changeShow() {
|
|
this.setData({
|
|
showMore:'open'
|
|
})
|
|
console.log(this.data.showMore);
|
|
},
|
|
getIsTest(){
|
|
if(app.globalData.configJson){
|
|
this.setData({
|
|
isTest:app.globalData.configJson.isTest
|
|
})
|
|
if(app.globalData.configJson.isTest==true){
|
|
this.setData({
|
|
type:1
|
|
})
|
|
}
|
|
this.getList()
|
|
}
|
|
else {
|
|
setTimeout(()=>{
|
|
this.getIsTest()
|
|
},200)
|
|
}
|
|
},
|
|
gotoDetail:function(){
|
|
if(this.data.info.info.type=='relic'){
|
|
wx.navigateTo({
|
|
url: '/pages/pbService/wbdw/info/index?id='+this.data.info.info.id,
|
|
})
|
|
}
|
|
else if(this.data.info.info.type=='red_map'){
|
|
// 红色地图
|
|
wx.navigateTo({
|
|
url: '/pages/info/redmapInfo/index?id='+this.data.info.info.id,
|
|
})
|
|
}
|
|
else if(this.data.info.info.type=='luggage'){
|
|
// 行李寄存
|
|
wx.navigateTo({
|
|
url: '/pages/info/luggageInfo/index?id='+this.data.info.info.id,
|
|
})
|
|
}
|
|
else if(this.data.info.info.type=='restaurant' || this.data.info.info.type=='tenscenic'){
|
|
wx.navigateTo({
|
|
url: '/pages/info/foodInfo/index?id='+this.data.info.info.id,
|
|
})
|
|
}
|
|
else if(this.data.info.info.type=='units'){
|
|
wx.navigateTo({
|
|
url: '/pages/info/culturalUnitInfo/index?id='+this.data.info.info.id
|
|
})
|
|
}
|
|
else {
|
|
util.gotoDetail(this.data.info.info)
|
|
}
|
|
|
|
},
|
|
goAddress(e) {
|
|
let item = e.currentTarget.dataset.item;
|
|
wx.showModal({
|
|
title:'到这去',
|
|
content:item.info.showContent?item.info.showContent:item.info.title,
|
|
success:function(res){
|
|
if(res.confirm){
|
|
wx.openLocation({
|
|
latitude: item.latitude,
|
|
longitude: item.longitude,
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
onTapMarker:function(e){
|
|
console.log(e)
|
|
console.log(this.data.list,this.data.list.length);
|
|
let info = this.data.list[e.detail.markerId];
|
|
let list = [];
|
|
this.data.list.map((item,itemIndex)=>{
|
|
let mapItem = item;
|
|
if (itemIndex == e.detail.markerId) {
|
|
mapItem.width = 30;
|
|
mapItem.height=36;
|
|
if (mapItem.info.type == "scenic") {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/4b340f512e8e424cb70ef766ad35cddb.png";
|
|
}else if (mapItem.info.type=='venue') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/ff2d05414295b5e987c3fdc7373c5f38.png";
|
|
}else if (mapItem.info.type=='room') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/fc2e8f86ad4977f08e7fe6284f946cb9.png";
|
|
}else if (mapItem.info.type=='publicBycicle') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/1c35ea03927638d3d6fef7f15f92d67d.png";
|
|
}else if (mapItem.info.type=='restaurant') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/4239b516f5ba99bff0b892a25a96c762.png";
|
|
}else if (mapItem.info.type=='relic') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/ae03ad079e3e667e84b4e49e498c77a9.png";
|
|
}else if (mapItem.info.type=='tenscenic') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/15f025534e644799f8c7cae6efee732f.png";
|
|
}else if (mapItem.info.type=='academes') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/63e375cd4227fe6a58ef4eef85c38e4c.png";
|
|
}else if (mapItem.info.type=='park') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/82218d810a22ea254afdf2a089cfd0a7.png";
|
|
}else if (mapItem.info.type=='luggage') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/d73376830530e13963ccc3211480f975.png";
|
|
}else if (mapItem.info.type=='tourist') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/eeb6894d312a6fd0b771623a2db6120c.png";
|
|
}else if (mapItem.info.type=='post') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/2594df53aad900e56173eb024786379c.png";
|
|
} else {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240125/27517eb0968079bbeadb3b6438d3fbf3.png";
|
|
}
|
|
}else {
|
|
mapItem.width = 20;
|
|
mapItem.height=23;
|
|
if (mapItem.info.type == "scenic") {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/c59dc041fcfd8b7a62ad2ac2444adcda.png";
|
|
}else if (mapItem.info.type=='venue') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/04aedae4dc498d45267f3636d5524af6.png";
|
|
}else if (mapItem.info.type=='room') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/78ff8b94929d18dc6349a3482069b756.png";
|
|
}else if (mapItem.info.type=='publicBycicle') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/6ce2b9e6eda6f8a3fea5073d5d5ad19a.png";
|
|
}else if (mapItem.info.type=='restaurant') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/3f5bdfd0f0c81e2263bc3999291bec8f.png";
|
|
}else if (mapItem.info.type=='relic') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/dfb34899466e98e1f2e02a40175a7672.png";
|
|
}else if (mapItem.info.type=='tenscenic') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/f77236d6a84b8d28027417aa8ef60c96.png";
|
|
}else if (mapItem.info.type=='academes') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/44da805692924852614afb013479e917.png";
|
|
}else if (mapItem.info.type=='park') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/0b95fda240aa4f5eb89667188cfa1517.png";
|
|
}else if (mapItem.info.type=='luggage') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/6ba1e554b71f451a120217c029fe1877.png";
|
|
}else if (mapItem.info.type=='tourist') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/24fba3a917652e1bdfe31d5785dba09f.png";
|
|
}else if (mapItem.info.type=='post') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/754a384e8aacd4a1ea41007e79910c67.png";
|
|
} else {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/2d61b60609564fc48e38768fbef87c0a.png";
|
|
}
|
|
}
|
|
if(mapItem.latitude<40){
|
|
list.push(mapItem)
|
|
}
|
|
})
|
|
this.setData({
|
|
list:list
|
|
})
|
|
console.log('换完图标后的list',list);
|
|
if(info.info.type=='tenscenic'){
|
|
// 运河十景需要先获取景点详情
|
|
commonApi._post("scene/detail",{
|
|
id:info.info.id
|
|
}).then(res=>{
|
|
if(res.data){
|
|
res.data.display_tags = res.data.display_tags?res.data.display_tags.split(","):[];
|
|
res.data.display_tags = res.data.display_tags.slice(0,2);
|
|
}
|
|
info.info = res.data;
|
|
this.setData({
|
|
info:info,
|
|
showInfo:true,
|
|
showAllMask:true,
|
|
menus:[],
|
|
menuIndex:-1,
|
|
productList:[],
|
|
productTotal:1,
|
|
productPage:1
|
|
})
|
|
})
|
|
// 运河十景还需要获取是否有购票、线路、住宿、攻略菜单栏 如果没有的话菜单栏要隐藏
|
|
let ajaxes = [commonApi._post("scene/get_scene_by_type",{
|
|
type:"scenic",
|
|
type_id:"",
|
|
tenscenic_id:info.info.id,
|
|
offset:0,
|
|
limit:10
|
|
}),
|
|
commonApi._post("product/get_product_by_type",{
|
|
type:"line",
|
|
type_id:"",
|
|
tenscenic_id:info.info.id,
|
|
offset:0,
|
|
limit:10
|
|
}),
|
|
commonApi._post("scene/get_scene_by_type",{
|
|
tenscenic_id:info.info.id,
|
|
offset:0,
|
|
limit:10,
|
|
type:"room",
|
|
type_id:""
|
|
}),
|
|
commonApi._post("scene/get_scene_by_type",{
|
|
tenscenic_id:info.info.id,
|
|
offset:0,
|
|
limit:10,
|
|
type:"restaurant",
|
|
type_id:""
|
|
}),
|
|
commonApi._post("travels/getList",{
|
|
tenscenic_id:info.info.id,
|
|
page_no:1,
|
|
page_num:10
|
|
}),
|
|
commonApi._post("multimedia/media_list",{
|
|
tenscenic_id:info.info.id,
|
|
type:0,
|
|
page:1,
|
|
limit:10
|
|
}),
|
|
commonApi._post("multimedia/media_list",{
|
|
tenscenic_id:info.info.id,
|
|
type:1,
|
|
page:1,
|
|
limit:10
|
|
})]
|
|
Promise.all(ajaxes).then(res=>{
|
|
let menus = [],menuIndex=-1;
|
|
if(res[0].data.total>0){
|
|
menuIndex = 0;
|
|
menus[0] = "购票"
|
|
}
|
|
if(res[1].data.total>0){
|
|
if(menuIndex==-1) menuIndex = 1;
|
|
menus[1] = "线路"
|
|
}
|
|
if(res[2].data.total>0){
|
|
if(menuIndex==-1) menuIndex = 2;
|
|
menus[2] = "住宿"
|
|
}
|
|
if(res[3].data.total>0){
|
|
if(menuIndex==-1) menuIndex = 3;
|
|
menus[3] = "美食"
|
|
}
|
|
if(res[4].data.total>0){
|
|
if(menuIndex==-1) menuIndex = 4;
|
|
menus[4] = "攻略"
|
|
}
|
|
if(res[5].data.total>0){
|
|
if(menuIndex==-1) menuIndex = 4;
|
|
menus[5] = "讲解"
|
|
}
|
|
if(res[6].data.total>0){
|
|
if(menuIndex==-1) menuIndex = 4;
|
|
menus[6] = "视频"
|
|
}
|
|
this.setData({
|
|
menus:menus,
|
|
menuIndex:menuIndex
|
|
})
|
|
this.getProductList()
|
|
})
|
|
return;
|
|
}else if (info.info.type=='publicBycicle' || info.info.type=='park') {
|
|
console.log(e)
|
|
let index = e.detail.markerId,list = this.data.list;
|
|
let item = list[index];
|
|
} else {
|
|
|
|
}
|
|
this.setData({
|
|
info:info,
|
|
showInfo:true,
|
|
showAllMask:false
|
|
})
|
|
console.log('打印',this.data.info);
|
|
},
|
|
changeMenu:function(e){
|
|
let index = e.currentTarget.dataset.index;
|
|
if(this.data.menuIndex==index) return;
|
|
this.setData({
|
|
menuIndex:index,
|
|
productPage:1,
|
|
productTotal:1,
|
|
productList:[]
|
|
})
|
|
this.getProductList();
|
|
},
|
|
// 获取运河实景的产品、景点、攻略列表
|
|
getProductList:function(){
|
|
let info = this.data.info;
|
|
if(info && info.info && info.info.id && this.data.showInfo && info.info.type=='tenscenic'){
|
|
// 如果是运河十景的话
|
|
// 如果已经到底了
|
|
if(this.data.productList.length>=this.data.productTotal) return;
|
|
let menu = this.data.menus[this.data.menuIndex],data={
|
|
type:"ticket",
|
|
type_id:"",
|
|
tenscenic_id:info.info.id,
|
|
offset:this.data.productList.length,
|
|
limit:10,
|
|
page_no:this.data.productPage,
|
|
page_num:10,
|
|
lon:this.data.longitude,
|
|
lat:this.data.latitude
|
|
},service="product/get_product_by_type";
|
|
if(!menu){
|
|
this.setData({
|
|
productTotal:0
|
|
})
|
|
return;
|
|
}
|
|
switch(menu){
|
|
case "购票":
|
|
service="scene/get_scene_by_type";
|
|
data.type="scenic";
|
|
break;
|
|
case "线路":
|
|
data.type="line";
|
|
break;
|
|
case "住宿":
|
|
service="scene/get_scene_by_type";
|
|
data.type="room";
|
|
break;
|
|
case "美食":
|
|
service="scene/get_scene_by_type";
|
|
data.type="restaurant";
|
|
break;
|
|
case "攻略":
|
|
delete data.type;
|
|
delete data.type_id;
|
|
delete data.offset;
|
|
delete data.limit;
|
|
service="travels/getList";
|
|
break;
|
|
case "讲解":
|
|
service="multimedia/media_list";
|
|
data = {
|
|
tenscenic_id:data.tenscenic_id,
|
|
page:data.page_no,
|
|
limit:10,
|
|
type:0
|
|
}
|
|
break;
|
|
case "视频":
|
|
service="multimedia/media_list";
|
|
data = {
|
|
tenscenic_id:data.tenscenic_id,
|
|
page:data.page_no,
|
|
limit:10,
|
|
type:1
|
|
}
|
|
break;
|
|
}
|
|
commonApi._post(service,data).then(res=>{
|
|
let list = res.data.list || res.data.rows || res.data.data;
|
|
list.map(item=>{
|
|
item.display_tags = item.display_tags?item.display_tags.split(","):[];
|
|
item.display_tags = item.display_tags.slice(0,2);
|
|
if(item.distance){
|
|
if(item.distance>=1000){
|
|
item.distance = item.distance/1000+"km"
|
|
}
|
|
else {
|
|
item.distance = item.distance+"m"
|
|
}
|
|
}
|
|
})
|
|
this.setData({
|
|
productTotal:res.data.productTotal || res.data.total,
|
|
productPage:this.data.productPage+1,
|
|
productList:this.data.productList.concat(list)
|
|
})
|
|
if(menu=='讲解'){
|
|
// 获取音频长度
|
|
let timeList = this.data.timeList;
|
|
list.map(item=>{
|
|
this['audioCtx'+item.id] = wx.createInnerAudioContext("audio"+item.id);
|
|
this['audioCtx'+item.id].src = item.multimedia_url;
|
|
this['audioCtx'+item.id].onEnded(()=>{
|
|
let productList = this.data.productList;
|
|
let productIndex = productList.findIndex(i=>i.id==item.id);
|
|
productList[productIndex].play = false;
|
|
this.setData({
|
|
productList:productList
|
|
})
|
|
})
|
|
this['audioCtx'+item.id].onTimeUpdate((e)=>{
|
|
timeList['audio'+item.id].time = this.audioTimeInit(this['audioCtx'+item.id].currentTime);
|
|
timeList['audio'+item.id].width = this['audioCtx'+item.id].currentTime / this['audioCtx'+item.id].duration * 100;
|
|
this.setData({
|
|
timeList:timeList
|
|
})
|
|
})
|
|
this['audioCtx'+item.id].onCanplay(() => {
|
|
this['audioCtx'+item.id].duration //类似初始化-必须触发-不触发此函数延时也获取不到
|
|
setTimeout( ()=>{
|
|
//在这里就可以获取到大家梦寐以求的时长了
|
|
if(!timeList['audio'+item.id]){
|
|
timeList['audio'+item.id] = {};
|
|
}
|
|
timeList['audio'+item.id].all_time=this.audioTimeInit(this['audioCtx'+item.id].duration);//延时获取长度 单位:秒
|
|
this.setData({
|
|
timeList:timeList
|
|
})
|
|
}, 1000) //这里设置延时1秒获取
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}
|
|
},
|
|
audioTimeInit:function(second=0){
|
|
second = Math.round(second);
|
|
let min = Math.floor(second/60);
|
|
min = min<10?('0'+min):min;
|
|
second = second%60;
|
|
second = second<10?('0'+second):second;
|
|
return min+':'+second;
|
|
},
|
|
gotoDetailNew:function(e){
|
|
if(this.data.menus[this.data.menuIndex]=='讲解') return;
|
|
let item = e.currentTarget.dataset.item;
|
|
if(this.data.menus[this.data.menuIndex]=='视频') {
|
|
wx.navigateTo({
|
|
url: '/pages/pbService/appreciate/info/index?info='+encodeURIComponent(JSON.stringify(item)),
|
|
})
|
|
return;
|
|
}
|
|
util.gotoDetail(item);
|
|
},
|
|
showImages:function(e){
|
|
let index = e.currentTarget.dataset.index,info = this.data.info;
|
|
wx.previewImage({
|
|
urls: info.info.listimg,
|
|
current:info.info.listimg[index]
|
|
})
|
|
},
|
|
closeMask:function(){
|
|
this.setData({
|
|
showAllMask:false
|
|
})
|
|
},
|
|
hideInfo:function(){
|
|
this.setData({
|
|
info:null,
|
|
showInfo:false,
|
|
showAllMask:false
|
|
})
|
|
},
|
|
changeType:function(e){
|
|
this.setData({
|
|
type:e.currentTarget.dataset.type,
|
|
showInfo:false,
|
|
info:null
|
|
})
|
|
this.getList()
|
|
if(e.currentTarget.dataset.title){
|
|
commonApi._post("browse/burying_point",{
|
|
uuid:app.globalData.uuid,
|
|
drive:"mini",
|
|
title:e.currentTarget.dataset.title
|
|
}).then(res=>{
|
|
|
|
})
|
|
}
|
|
},
|
|
changeArea:function(e){
|
|
this.setData({
|
|
areaIndex:e.detail.value
|
|
})
|
|
this.getList()
|
|
},
|
|
changeRegion:function(e){
|
|
console.log(e)
|
|
if(e.type!='end') return;
|
|
console.log(e.detail.centerLocation)
|
|
this.setData(e.detail.centerLocation)
|
|
this.getList()
|
|
},
|
|
getList:function(){
|
|
// this.setData({
|
|
// list:[]
|
|
// })
|
|
this.mapCtx = wx.createMapContext("map");
|
|
// let types = ['','scenic','venue','post','restaurant','relic','tenscenic','cinema','academes','red_map'],that = this;
|
|
let types = ['','scenic','venue','room','publicBycicle','restaurant','relic','tenscenic','academes','park','luggage','tourist','post','red_map'],that = this;
|
|
if (types[that.data.type] == 'publicBycicle') {
|
|
commonApi.user_post("pbservice/Ztfw/publicBycicle",{
|
|
point_type:"gaode",
|
|
lat:this.data.latitude,
|
|
lon:this.data.longitude
|
|
}).then(res=>{
|
|
let list = [];
|
|
res.data.map((item,index)=>{
|
|
let mapItem = {};
|
|
item.showContent = item.name;
|
|
mapItem.latitude = Number(item.lat);
|
|
mapItem.longitude = Number(item.lng);
|
|
mapItem.id = index;
|
|
mapItem.info = item;
|
|
mapItem.info.type = 'publicBycicle';
|
|
mapItem.width = 20;
|
|
mapItem.height=23;
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/6ce2b9e6eda6f8a3fea5073d5d5ad19a.png";
|
|
if(mapItem.latitude<40){
|
|
list.push(mapItem)
|
|
}
|
|
})
|
|
this.setData({
|
|
list:list
|
|
})
|
|
})
|
|
} else if (types[that.data.type] == 'park') {
|
|
commonApi.user_post("pbservice/Ztfw/park_new",{
|
|
point_type:"gaode",
|
|
lat:this.data.latitude,
|
|
lon:this.data.longitude
|
|
}).then(res=>{
|
|
let list = [];
|
|
res.data.map((item,index)=>{
|
|
let mapItem = {};
|
|
item.showContent = item.name;
|
|
mapItem.latitude = Number(item.lat);
|
|
mapItem.longitude = Number(item.lng);
|
|
mapItem.id = index;
|
|
mapItem.info = item;
|
|
mapItem.info.type = 'park';
|
|
mapItem.width = 20;
|
|
mapItem.height=23;
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/0b95fda240aa4f5eb89667188cfa1517.png";
|
|
if(mapItem.latitude<40){
|
|
list.push(mapItem)
|
|
}
|
|
})
|
|
this.setData({
|
|
list:list
|
|
})
|
|
})
|
|
} else {
|
|
this.mapCtx.getRegion({
|
|
type: 'gcj02',
|
|
success: function(res) {
|
|
commonApi._post("act/map_travel",{
|
|
type:types[that.data.type],
|
|
title:that.data.keywords,
|
|
m_lon:res.southwest.longitude-0.05,
|
|
l_lon:res.northeast.longitude+0.05,
|
|
m_lat:res.southwest.latitude-0.05,
|
|
l_lat:res.northeast.latitude+0.05
|
|
}).then(res=>{
|
|
let list = [];
|
|
res.data.map((item,index)=>{
|
|
let mapItem = {};
|
|
item.lat = item.tx_lat;
|
|
item.lon = item.tx_lon;
|
|
mapItem.latitude = Number(item.lat);
|
|
mapItem.longitude = Number(item.lon);
|
|
mapItem.id = index;
|
|
mapItem.info = item;
|
|
if(item.type=='scenic'){
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/c59dc041fcfd8b7a62ad2ac2444adcda.png";
|
|
if (mapItem.info.comfort_arr) {
|
|
that.data.levelList.forEach(element => {
|
|
if (element.level == mapItem.info.comfort_arr.comfort_level) {
|
|
mapItem.info.comfort_arr.text = element.desc
|
|
mapItem.info.comfort_arr.color = element.color
|
|
mapItem.info.comfort_arr.bgColor = element.bgColor
|
|
}
|
|
});
|
|
}
|
|
}else if (item.type=='venue') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/04aedae4dc498d45267f3636d5524af6.png";
|
|
}else if (item.type=='room') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/78ff8b94929d18dc6349a3482069b756.png";
|
|
}else if (item.type=='restaurant') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/3f5bdfd0f0c81e2263bc3999291bec8f.png";
|
|
}else if (item.type=='relic') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/dfb34899466e98e1f2e02a40175a7672.png";
|
|
}else if (item.type=='tenscenic') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/f77236d6a84b8d28027417aa8ef60c96.png";
|
|
}else if (item.type=='academes') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/44da805692924852614afb013479e917.png";
|
|
}else if (item.type=='luggage') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/6ba1e554b71f451a120217c029fe1877.png";
|
|
}else if (item.type=='tourist') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/24fba3a917652e1bdfe31d5785dba09f.png";
|
|
}else if (item.type=='post') {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/754a384e8aacd4a1ea41007e79910c67.png";
|
|
} else {
|
|
mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20240124/2d61b60609564fc48e38768fbef87c0a.png";
|
|
}
|
|
mapItem.width = 20;
|
|
mapItem.height=23;
|
|
if(mapItem.latitude<40){
|
|
list.push(mapItem)
|
|
}
|
|
})
|
|
that.setData({
|
|
list:list
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}
|
|
console.log('list',this.data.list);
|
|
// this.mapCtx.getRegion({
|
|
// type: 'gcj02',
|
|
// success: function(res) {
|
|
// commonApi._post("act/map_travel",{
|
|
// type:types[that.data.type],
|
|
// title:that.data.keywords,
|
|
// m_lon:res.southwest.longitude-0.05,
|
|
// l_lon:res.northeast.longitude+0.05,
|
|
// m_lat:res.southwest.latitude-0.05,
|
|
// l_lat:res.northeast.latitude+0.05
|
|
// }).then(res=>{
|
|
// let list = [];
|
|
// res.data.map((item,index)=>{
|
|
// let mapItem = {};
|
|
// item.lat = item.tx_lat;
|
|
// item.lon = item.tx_lon;
|
|
// mapItem.latitude = Number(item.lat);
|
|
// mapItem.longitude = Number(item.lon);
|
|
// mapItem.id = index;
|
|
// mapItem.info = item;
|
|
// if(item.type=='red_map'){
|
|
// mapItem.iconPath = "https://static.ticket.sz-trip.com/uploads/20230506/054cea53a068545e9e27fa9cd3acbdec.png";
|
|
// }
|
|
// else {
|
|
// mapItem.iconPath = "https://static.ticket.sz-trip.com/xcxImages/map/"+item.type+".png";
|
|
// }
|
|
// mapItem.width = 20;
|
|
// mapItem.height=23;
|
|
// if(mapItem.latitude<40){
|
|
// list.push(mapItem)
|
|
// }
|
|
// })
|
|
// that.setData({
|
|
// list:list
|
|
// })
|
|
// })
|
|
// // that.mapCtx.getRegion({
|
|
// // success:function(r){
|
|
// // let location = r.longitude+","+r.latitude;
|
|
|
|
// // that.getParkList(res.northeast.longitude,res.northeast.latitude,res.southwest.longitude,res.southwest.latitude,location)
|
|
// // }
|
|
// // })
|
|
// }
|
|
// })
|
|
},
|
|
search:function(e){
|
|
console.log(e)
|
|
this.setData(e.detail)
|
|
this.getList()
|
|
},
|
|
// 讲解播放
|
|
startAuido:function(e){
|
|
let index = e.currentTarget.dataset.index,productList = this.data.productList;
|
|
productList[index].play = productList[index].play?false:true;
|
|
let audioCtx = this['audioCtx'+productList[index].id];
|
|
if(productList[index].play){
|
|
productList.map((item,i)=>{
|
|
if(item.play==true && index!=i){
|
|
item.play = false;
|
|
this['audioCtx'+item.id].pause()
|
|
}
|
|
})
|
|
audioCtx.play()
|
|
commonApi._post("multimedia/viewsInc",{
|
|
id:productList[index].id
|
|
}).then(res=>{
|
|
|
|
})
|
|
}
|
|
else {
|
|
audioCtx.pause()
|
|
}
|
|
this.setData({
|
|
productList:productList
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {
|
|
util.pagePoint({
|
|
event:'mapshow_view'
|
|
},1)
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
},
|
|
preventTouchMove:function(){
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
|
|
}
|
|
})
|