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.
 

1546 lines
39 KiB

//index.js
//获取应用实例
let app = getApp()
import imageSource from "./imgSource"
import commonApi from "../../utils/https/common"
import userApi from "../../utils/https/user"
import util from "../../utils/util"
import https from "../../utils/https.js"
import {
unix
} from "dayjs"
Page({
data: {
isTest: false,
startList: {
head_img: ''
}, // 启动页广告
fullAdvTimer: null, // 全屏timer
showFullAdv: true, //全屏广告开关
opacity: 1, // 全屏广告透明度
time: 3, //全屏广告剩余时间
showTime: false, // 全屏广告时间展示
alertSwipeList: [], //弹窗广告
showAdv: false, //弹窗开关
isMuted: true,
videoPlay: false,
systemStyle: {
height: 0,
padHeight: 0,
right: 0,
},
lat: "",
lon: "",
indexSeason: {}, // 后台UI配置项
func_data: {},
// bannerInterver: 5*1000, // 动态更改banner时间
banner: [],
xiaobanner: [],
ztbanner: [], //苏城环游记banner
activeBannerIndex: 0,
smBannerIndex: 0,
ztBannerIndex: 0,
bannerDataListFake: [{
title: "美食",
img: "https://static.ticket.sz-trip.com/uploads/20260131/7d8082943bfbaca55676a371c9378bc5.png",
path: "/subPackages/foodListNew/index",
}, ],
// banner上的金刚区
bannerDataList: [
// {
// title: "景点门票",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/5934b8b77b058ce1de5943adbaf51739.png",
// path: "/pages/list/scene/index",
// },
// {
// title: "活动日历",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/d75d7a3924d832912a2633ee29b30b9b.png",
// path: "/pages/list/activitynew/index",
// },
// {
// title: "匠意臻品",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/69722050b638954e0b755a4d6c771d48.png",
// path: "/subPackages/techanNew/index",
// },
// {
// title: "领券中心",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/4384a93f77d8faba5f504195c77e57c1.png",
// path: "/pages/list/scene/index",
// },
],
// 金刚区
mainTypeList: [
// {
// title: "非遗专卖",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a901ad572bda409e769f92760b812d71.png",
// path: "/subPackages/feiyiNew/index",
// },
// {
// title: "场馆预约",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a901ad572bda409e769f92760b812d71.png",
// path: "/pages/list/museum/index",
// },
// {
// title: "一日游",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a901ad572bda409e769f92760b812d71.png",
// weburl:"https://m.cloud.sz-trip.com/OneDayTravelNew",
// },
// {
// title: "户外游",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a901ad572bda409e769f92760b812d71.png",
// weburl:"https://m.cloud.sz-trip.com/LearningTravel",
// },
// {
// title: "电影购票",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a901ad572bda409e769f92760b812d71.png",
// weburl:"https://m.cloud.sz-trip.com/movies",
// },
// {
// type: 'hotel', // 特殊标识方便查找 更新weburl
// title: "酒店住宿",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a901ad572bda409e769f92760b812d71.png",
// weburl: '',
// path: '/pages/list/hotel/index'
// },
// {
// title: "水上游",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a901ad572bda409e769f92760b812d71.png",
// path: '/pages/list/night/index'
// },
// {
// title: "剧场演出",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a901ad572bda409e769f92760b812d71.png",
// path: '/pages/list/theatre/index'
// },
],
mainTypeLeft: 0,
mainNavIndex: 0,
xpth: {}, // 新品特惠
XPathBannerIndex: 0,
xpthIndex: 0,
list: [], // 热门推荐
// 公共服务
publicSerivce: [
// {
// title: "高峰预警",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/c7e28d88bde040c386183d69ae9bb228.png",
// path: "/pages/pbService/sceneComfort/index?title=高峰预警",
// eventName: "comfort_click",
// keyname: 'gg_gfyj',
// },
// {
// title: "实时路况",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a678fdc2127648cd7881e36791b2062a.png",
// weburl: "https://jiaotonghao2.amap.com/?channel=amap&unitId=257&src=app_share#/",
// eventName: "sslk",
// keyname: 'gg_sslk',
// },
// {
// title: "行李直送",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/66c8614112630ed168a27150f15a3234.png",
// appId: 'wx757dd1ee184e75e9',
// pagePath: "pages/tabBar/index/index",
// keyname: 'gg_xlzs',
// },
// {
// title: "行李寄存",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/3b9886609236df983e6512055662693c.png",
// weburl: "https://weixin.2500sz.net/zt/2023/07/luggage_storage/",
// eventName: "xljc",
// keyname: 'gg_xljc',
// },
// {
// title: "找厕所",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/e8e75d8cd8761d4de4336a35e29e5c6d.png",
// path: "/pages/pbService/bike/index?type=1",
// keyname: 'gg_zcs',
// },
// {
// title: "停车场",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/ef3d9cfb4817552288d666d8e5617707.png",
// weburl: "https://m.cloud.sz-trip.com/ParkingArea",
// keyname: 'gg_tcc',
// },
],
// 旅游助手
travelData: [
// {
// title: "最美打卡点",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/800a30b94f77c1f7f1bc17f33c0daacd.png",
// path: "/subPackageCheckPoint/pages/index/index",
// keyname: 'ly_zmdkd',
// },
// {
// title: "街巷美食",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/a4918bd24ff162991ca8db28759ade51.png",
// path: "/pages/list/food/index",
// keyname: 'ly_jxms',
// },
// {
// title: "语音导览",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/f72a9f174aa66e520cbfe7429dca6635.png",
// appId: "wx74f380bc721a0379",
// pagePath: "/pages/listen/listen?title=君到苏州",
// keyname: 'ly_yydl',
// },
// {
// title: "游记攻略",
// img: "https://static.ticket.sz-trip.com/uploads/20250526/e1762ba22ba5d4cc5882de321bc10110.png",
// path: "/pages/list/strategy/index",
// keyname: 'ly_yjgl',
// },
],
// 数字文旅
travelCulture: [
// {
// title: "数字非遗",
// img: 'https://static.ticket.sz-trip.com/uploads/20250526/bc747aa7767770dc26e663480ac9150d.png',
// weburl: "https://m.cloud.sz-trip.com/IntangibleCultural2",
// keyname: 'sz_szfy',
// },
// {
// title: "数字博物馆",
// img: 'https://static.ticket.sz-trip.com/uploads/20250526/86c986c2991e968ee143cf5777bb9f08.png',
// weburl: "https://m.cloud.sz-trip.com/BwsInfo",
// keyname: 'sz_szbwg',
// },
// {
// title: "数字名人馆",
// img: 'https://static.ticket.sz-trip.com/uploads/20250526/d570a1bb6961b9ddf26b17cc64b733dd.png',
// weburl: "https://www.szsmrg.com/home",
// keyname: 'sz_szmrg',
// },
// {
// title: "云上观展",
// img: 'https://static.ticket.sz-trip.com/uploads/20250526/8f96c29f6199b811a757e4e5c5901daa.png',
// weburl: "https://m.cloud.sz-trip.com/CloudPerform2022",
// keyname: 'sz_ysgz',
// },
// {
// title: "云上文博会",
// img: 'https://static.ticket.sz-trip.com/uploads/20250529/f45acb752680d1b4cce7d25da02c96f5.png',
// weburl: "https://m.cloud.sz-trip.com/CloudExpo",
// keyname: 'sz_yswbh',
// },
// {
// title: "精彩回顾",
// img: 'https://static.ticket.sz-trip.com/uploads/20250529/74bd8e6b027797a24fbfccaef5c836ad.png',
// path: "/pages/pbService/activity/index",
// keyname: 'sz_jchg',
// },
// {
// title: "文化场馆查询",
// img: 'https://static.ticket.sz-trip.com/uploads/20250529/ff56544a00fb1cc78e0b307f16daa821.png',
// weburl: "https://m.cloud.sz-trip.com/Museum",
// keyname: 'sz_whcgcx',
// },
// {
// title: "苏影通",
// img: 'https://static.ticket.sz-trip.com/uploads/20250526/e60996bf57f35f2dab63c81bc48b609a.png',
// weburl: "https://m.cloud.sz-trip.com/movies",
// keyname: 'sz_syt',
// },
// {
// title: "书仓",
// img: 'https://static.ticket.sz-trip.com/uploads/20250526/41d87b6d8d78ac497a6654ad293f9329.png',
// appId: 'wx165d4f1727f6bdb0',
// pagePath: 'pages/home/home',
// keyname: 'sz_sc',
// },
// {
// title: "e读书",
// img: 'https://static.ticket.sz-trip.com/uploads/20250526/87e9c9e3453492fa1ee65b705565efbb.png',
// appId: 'wx26e6f4c0baba005b',
// pagePath: 'pages/index/index',
// keyname: 'sz_eds',
// },
// {
// title: "数字公共文化",
// img: 'https://static.ticket.sz-trip.com/uploads/20250526/c60ed1f766645fa67a749dffa0d347a2.png',
// weburl: "https://m.cloud.sz-trip.com/PublicCulture2022",
// keyname: 'sz_szggwh',
// },
// {
// title: "云游苏州",
// img: 'https://static.ticket.sz-trip.com/uploads/20250529/f3b1ec60b5f069182faadf263ec9dfee.png',
// weburl: 'https://speed.web.yunyouyizhan.com/downloadApp/index.html#/',
// keyname: 'sz_yysz',
// },
// {
// title: "美图鉴赏",
// img: 'https://static.ticket.sz-trip.com/uploads/20250529/820de8c4353bde80379f46e474104c04.png',
// path: "/pages/pbService/appreciate/index",
// keyname: 'sz_mtjs',
// },
],
scrollLeft: 0,
// 十全十美
// area_ids: ["changshu","taicang", "kunshan","wujiang","gongyeyuanqu","zhangjiagang","wuzhong","xiangcheng","gusu","gaoxin"],
SQSM: [
// {
// title: "常熟",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/ed641bf31558381e8d1c372e5cbbd155.png",
// appId: 'wxdaf3d5edd07dc7af',
// pagePath: 'pages/index/index',
// keyname: 'changshu',
// },
// {
// title: "太仓",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/f359551295197eff9c0966324659f037.png",
// appId: 'wx8853b0d93cbca75e',
// pagePath: 'pages/home/home',
// keyname: 'taicang',
// },
// {
// title: "昆山",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/35f498dbb43e14cdf3c6bbdf83e613db.png",
// appId: 'wx8888a3fd0862b4c8',
// pagePath: 'pages/index/index',
// keyname: 'kunshan',
// },
// {
// title: "吴江",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/2288c75b3797363015bfe633ea9abc0e.png",
// appId: 'wx8eadea4ee2d42d4b',
// pagePath: 'pages/index/index',
// keyname: 'wujiang',
// },
// {
// title: "工业园区",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/9e947f0ef8addbe5c52b5bd4de205788.png",
// appId: 'wxd323e63a10aa6865',
// pagePath: 'pages/home/index',
// keyname: 'yuanqu',
// },
// {
// title: "张家港",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/6162e0a86ec7e7b12e568fd5f81b5c9b.png",
// path: "/pages/list/six/index?area=zhangjiagang",
// keyname: 'zhangjiagang',
// },
// {
// title: "吴中",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/36fc77bf5d6879e6ce06ae349187c2ad.png",
// path: "/pages/list/six/index?area=wuzhong",
// keyname: 'wuzhong',
// },
// {
// title: "相城",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/ec54fba906166c7512d26ca8a4fa5a9f.png",
// path: "/pages/list/six/index?area=xiangcheng",
// keyname: 'xiangcheng',
// },
// {
// title: "姑苏",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/cbb939c4ddfa187489b59adcbe72f7a9.png",
// path: "/pages/list/six/index?area=gusu",
// keyname: 'gusu',
// },
// {
// title: "高新",
// img: "https://static.ticket.sz-trip.com/uploads/20250529/f2aa7328af4afaa9d1d4ecac1778300a.png",
// path: "/pages/list/six/index?area=gaoxin",
// keyname: 'gaoxin',
// },
],
// 长三角文旅平台
otherPlat: [
// {
// "name":"玉见昆山",
// "icon":"https://static.ticket.sz-trip.com/uploads/20250526/c85dbe1b0f8f58014c05a30b3e6f86b5.png",
// "type":"mini",
// "path":"",
// "appid":"wx8888a3fd0862b4c8"
// },
// {
// "name":"智游常熟",
// "icon":"https://static.ticket.sz-trip.com/uploads/20250526/98d57e31995b6dc3188f8717201640f1.png",
// "type":"mini",
// "path":"",
// "appid":"wxdaf3d5edd07dc7af"
// },
{
"name": "常享游",
"icon": "https://static.ticket.sz-trip.com/uploads/20250604/5112dd50e7c175bf58416ba9d4e4b846.png",
"type": "h5",
"url": "https://tour.wlczy.com/h5/"
},
{
"name": "畅游宿迁",
"icon": "https://static.ticket.sz-trip.com/uploads/20250604/962f331b2319b9759363c3787ca8d088.png",
"type": "mini",
"path": "/pages/index/index",
"appid": "wxcb00a59c4fba136e"
},
],
// 回购榜
repurchaseList: [],
canGetrepurchase: true,
urltopage: {},
cityIndex: 0,
scrollItem: "scrollItem-0",
aiStr: "",
// ---------------2025-5-26改版没用到的------------------
fourProduct: [],
hotIndex: 0,
indexHot: [],
weather: null,
showMore: false,
// 页面图片
// imageSourceList:imageSource,
recommendType: [{
id: 306,
name: '必逛景点榜',
img: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/biguang.png',
path: '/pages/list/scene/index',
list: []
},
{
id: 307,
name: '寻鲜美食榜',
img: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/biguang.png',
path: '/subPackages/foodListNew/index',
list: []
},
{
id: 308,
name: '优选住宿榜',
img: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/biguang.png',
path: '/pages/pbService/web/index?weburl=' + encodeURIComponent(
'https://m.cloud.sz-trip.com/selectedHotels'),
list: []
},
{
id: 309,
name: '必看演出榜',
img: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/biguang.png',
path: '/pages/list/theatre/index',
list: []
}
],
activeIndex: 0,
touchStartX: 0,
// 用于存储计算好的样式字符串数组
cardStyles: []
},
onLoad: function(options) {
// 初始化时计算一次样式
this.updateCardStyles();
// 相城小程序跳转获取用户信息
if (options && options.szxcCode) {
commonApi._post("uservice/user/loginByXC", {
code: options.szxcCode
}).then(res => {
if (res.data && res.data.id && res.data.token) {
https.set_logininfo(res);
}
})
}
if (options.from) {
app.globalData.from = options.from;
}
},
onReady: function() {
this.getHeight()
this.getWeather() // 天气
this.getIndexSeason()
this.getBanner()
this.setAiStr()
this.getXpthList() // 限时特惠
this.getList() // 回购榜
this.getRepurchaseList()
// this.getFourProduct() // 活动日历
wx.getLocation({
type: 'gcj02',
success: (res) => {
this.setData({
lat: res.latitude,
lon: res.longitude
})
},
fail: (err) => {}
})
this.getUrlToPage()
this.getShowMore()
const typeList = this.data.recommendType;
// 遍历数组进行请求
typeList.forEach((item, index) => {
// 1. 根据索引判断接口地址 (前两个用 scene 接口,后面用 product 接口)
let apiUrl = '';
if (index < 2) {
apiUrl = 'scene/get_scene_by_tag_subject';
} else {
apiUrl = 'product/get_product_by_tag_subject';
}
// 2. 发起请求
commonApi._post(apiUrl, {
offset: 0,
limit: 3,
tag_id: item.id
}).then(res => {
const key = `recommendType[${index}].list`;
res.data.list.forEach(item => {
// 手动增加一个 tagsArray 字段
if (item.display_tags) {
item.tagsArray = item.display_tags.split(',').slice(0, 2);
} else {
item.tagsArray = [];
}
});
this.setData({
[key]: res.data.list // 假设返回的数据里直接有 list 字段
});
}).catch(err => {
console.error(`请求第 ${index + 1} 个榜单失败`, err);
});
});
},
// 1. 点击 Tab 切换
handleTabClick(e) {
const index = e.currentTarget.dataset.index;
this.setData({
activeIndex: index
});
this.updateCardStyles(); // 更新样式
},
// 2. 点击卡片切换
handleCardClick(e) {
const index = e.currentTarget.dataset.index;
if (index !== this.data.activeIndex) {
this.setData({
activeIndex: index
});
this.updateCardStyles(); // 更新样式
}
},
// 3. ★核心逻辑:在 JS 中计算所有卡片的样式
updateCardStyles() {
const {
activeIndex,
recommendType
} = this.data;
const len = recommendType.length;
// 偏移量配置 (单位 rpx)
const xStep = 24;
const yStep = 14;
// 遍历生成每个卡片的样式字符串
const newStyles = recommendType.map((item, index) => {
// 计算距离
let diff = (index - activeIndex + len) % len;
let zIndex = 0;
let xOffset = 0;
let yOffset = 0;
let opacity = 1;
let bgColor = '#fcf1e2';
let bgImage = 'none';
if (diff === 0) {
// --- 第1层 (最上面) ---
zIndex = 10;
xOffset = 0;
yOffset = 0;
bgImage =
'url(https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/biguang.png)';
} else if (diff === 1) {
// --- 第2层 ---
zIndex = 9;
xOffset = xStep * 1;
yOffset = yStep * 1;
bgImage =
'url(https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/hotBgs.png)';
} else if (diff === 2) {
// --- 第3层 ---
zIndex = 8;
xOffset = xStep * 2;
yOffset = yStep * 2;
bgImage =
'url(https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/hotBgs.png)';
} else if (diff === 3) {
// --- 第4层 ---
zIndex = 7;
xOffset = xStep * 3;
yOffset = yStep * 3;
bgImage =
'url(https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/hotBgs.png)';
} else {
// --- 储备层 (隐藏在第4层后面) ---
zIndex = 1;
xOffset = xStep * 3;
yOffset = yStep * 3;
bgImage =
'url(https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/hotBgs.png)';
}
// 构造样式字符串
return `
z-index: ${zIndex};
transform: translate(${xOffset}rpx, ${yOffset}rpx);
opacity: ${opacity};
background-image: ${bgImage};
background-size: 100% 100%;
background-repeat: no-repeat;
`;
});
// 更新到视图
this.setData({
cardStyles: newStyles
});
},
// 4. 触摸开始
handleTouchStart(e) {
this.setData({
touchStartX: e.touches[0].clientX
});
},
// 5. 触摸结束
handleTouchEnd(e) {
const touchEndX = e.changedTouches[0].clientX;
const diff = this.data.touchStartX - touchEndX;
const len = this.data.recommendType.length;
let current = this.data.activeIndex;
if (diff > 50) {
// 左滑 -> 下一张
current = (current + 1) % len;
} else if (diff < -50) {
// 右滑 -> 上一张
current = (current - 1 + len) % len;
}
if (current !== this.data.activeIndex) {
this.setData({
activeIndex: current
});
this.updateCardStyles(); // 更新样式
}
},
setAiStr: function() {
let str = "你好啊,我是卿卿,我来带你游苏州~";
let i = 0;
let timer = setInterval(() => {
i++
this.setData({
aiStr: str.slice(0, i)
})
if (i > str.length) {
clearInterval(timer)
}
}, 125)
},
showImg(img) {
if (!img) {
return img
}
if (img.indexOf('https://') != -1 || img.indexOf('http://') != -1) {
return img;
} else {
// return "https://test.api.cloud.sz-trip.com"+img
return "https://static.ticket.sz-trip.com" + img;
}
},
gotoPath(e) {
console.log(e.currentTarget)
if (e.currentTarget.dataset.item.path) {
wx.navigateTo({
url: e.currentTarget.dataset.item.path,
})
return
}
},
gotoPaths(e) {
if (e.currentTarget.dataset.path) {
wx.navigateTo({
url: e.currentTarget.dataset.path,
})
return
}
},
// 获取系统信息
getHeight() {
let systemInfo = wx.getSystemInfoSync(),
rect = wx.getMenuButtonBoundingClientRect();
let height = (rect.top - systemInfo.statusBarHeight) * 2 + rect.height;
let systemStyle = {
height: height, // 导航栏
padHeight: systemInfo.statusBarHeight, // 状态栏
right: (systemInfo.screenWidth - rect.right) + rect.width // 右侧胶囊
}
this.setData({
systemStyle: systemStyle,
})
},
//获取季节配置
getIndexSeason() {
if (app.globalData.configJson && app.globalData.configJson.indexSeason) {
console.log('app', app.globalData.configJson)
this.setData({
indexHot: app.globalData.configJson.indexHot,
isTest: app.globalData.configJson.isTest,
indexSeason: app.globalData.configJson.indexSeason,
bannerDataList: (app.globalData.configJson.nav_menu || []),
mainTypeList: (app.globalData.configJson.menu_button || []),
publicSerivce: (app.globalData.configJson.service_data || []),
travelData: (app.globalData.configJson.travel_data || []),
travelCulture: (app.globalData.configJson.number_data || []),
SQSM: (app.globalData.configJson.city_data || []),
otherPlat: app.globalData.configJson.platform_data,
func_data: (app.globalData.configJson.func_data || {})
})
} else {
// 小程序是3 测试H5 15
commonApi._post("adv/get_home_ui", {
type_id: 3
}).then(res => {
let obj = {};
(res.data.content || []).forEach(item => {
obj[item.id] = item.image
});
app.globalData.configJson.indexSeason = obj
app.globalData.loadIndexSeason = true
app.globalData.configJson.nav_menu = (res.data.nav_menu || []).map((v, index) => {
return {
...v,
pagePoint: {
classification: 'nav_menu',
key_number: index
}
}
})
app.globalData.configJson.menu_button = (res.data.menu_button || []).map((v, index) => {
return {
...v,
pagePoint: {
classification: 'menu_button',
key_number: index
}
}
})
// 公共服务 publicSerivce
app.globalData.configJson.service_data = (res.data.service_data || []).map((v,
index) => {
return {
...v,
pagePoint: {
classification: 'service_data',
key_number: index
}
}
})
// 旅游助手 travelData
app.globalData.configJson.travel_data = (res.data.travel_data || []).map((v, index) => {
return {
...v,
pagePoint: {
classification: 'travel_data',
key_number: index
}
}
})
// 数字文旅 travelCulture
app.globalData.configJson.number_data = (res.data.number_data || []).map((v, index) => {
return {
...v,
pagePoint: {
classification: 'number_data',
key_number: index
}
}
})
// 十全十美 SQSM
app.globalData.configJson.city_data = (res.data.city_data || []).map((v, index) => {
return {
...v,
pagePoint: {
classification: 'city_data',
key_number: index
}
}
})
// 其他平台otherPlat
app.globalData.configJson.platform_data = (res.data.platform_data || []).map((v,
index) => {
return {
...v,
pagePoint: {
classification: 'platform_data',
key_number: index
}
}
})
let func_data = {}
for (let item of (res.data.func_data || [])) {
func_data[item.jump_type] = true
}
app.globalData.configJson.func_data = func_data
console.log('webData', app.globalData.configJson)
this.setData({
indexHot: app.globalData.configJson.indexHot,
isTest: app.globalData.configJson.isTest,
otherPlat: app.globalData.configJson.platform_data,
indexSeason: app.globalData.configJson.indexSeason,
bannerDataList: (app.globalData.configJson.nav_menu || []),
mainTypeList: (app.globalData.configJson.menu_button || []),
publicSerivce: (app.globalData.configJson.service_data || []),
travelData: (app.globalData.configJson.travel_data || []),
travelCulture: (app.globalData.configJson.number_data || []),
SQSM: (app.globalData.configJson.city_data || []),
func_data: (app.globalData.configJson.func_data || {})
})
})
}
console.log(this.data)
},
// url跳转(不知道什么东西)
getUrlToPage() {
commonApi._post("pbservice/Other/getClientConfig", {
unique_key: "urltopage"
}).then(res => {
let data = JSON.parse(res.data)
this.setData({
urltopage: data
})
})
},
getShowMore() {
commonApi._post("multimedia/detail", {
id: 2462
}).then(res => {
if (res && res.data) {
this.setData({
showMore: res.data.company_name == 1 ? true : false
})
}
})
},
// --------------------banner 相关---------------------------
// 获取banner 和开屏广告
getBanner: function() {
let _this = this
//全屏广告
commonApi._post("adv/getAdv", {
position: 2,
type_id: 3
}).then(res => {
if (res.data.length > 0) {
let length = res.data.length
let num = Math.floor(Math.random() * length);
this.setData({
startList: res.data[num]
})
// 图片
if (this.data.startList.media_type) {
wx.hideTabBar() //这里隐藏了底部导航栏
this.setData({
showTime: true
})
this.data.fullAdvTimer = setInterval(() => {
_this.data.time -= 0.5
if (Number.isInteger(_this.data.time)) {
_this.setData({
time: _this.data.time
})
}
if (_this.data.time <= 0) {
_this.setData({
opacity: _this.data.opacity - 0.3
})
}
if (_this.data.time <= -1) {
clearInterval(_this.data.fullAdvTimer)
wx.showTabBar() //倒计时结束清除定时器显示导航栏
_this.setData({
showFullAdv: false
})
}
}, 500)
} else {
// 视频
}
} else {
this.setData({
showFullAdv: false
})
}
})
// 顶部banner
commonApi._post("adv/getAdv", {
position: 0,
type_id: 3
}).then(res => {
let resData = (res.data || []).map((v, index) => {
return {
...v,
pagePoint: {
classification: 'bigBanner',
key_number: v.id
}
}
})
this.setData({
banner: resData
})
})
// 专题banner
commonApi._post("adv/getAdv", {
position: 6,
type_id: 3
}).then(res => {
let resData = (res.data || []).map((v, index) => {
return {
...v,
pagePoint: {
classification: 'specialBanner',
key_number: v.id
}
}
})
this.setData({
ztbanner: resData
})
})
// 小banner
commonApi._post("adv/getAdv", {
position: 1,
type_id: 3
}).then(res => {
let resData = (res.data || []).map((v, index) => {
return {
...v,
pagePoint: {
classification: 'smallBanner',
key_number: v.id
}
}
})
this.setData({
xiaobanner: resData
})
})
//弹窗广告
commonApi._post("adv/getAdv", {
position: 3,
type_id: 3
}).then(res => {
if (res.data.length > 0) {
this.setData({
alertSwipeList: res.data || [],
showAdv: true
})
}
})
},
// 统一的banner change 需要时可以放开
changeBannerIndex: function(e) {
// return
let keyname = e.currentTarget.dataset.keyname
this.setData({
[keyname]: e.detail.current,
})
},
// 轮播图点击
bannerClick: function(e) {
if (this.data.isTest) return;
let item = e.currentTarget.dataset.item;
let source = e.currentTarget.dataset.source;
if (source) {
util.setGlobalPagePoint(source);
}
console.log(item)
if (item.pagePoint) {
this.newPagePoint(item.pagePoint)
}
switch (item.jump_type) {
case 0:
break;
case 1:
util.gotoDetail(item.product_model)
break;
case 2:
if (item.front_model && item.front_model.mini) {
wx.navigateTo({
url: "/" + item.front_model.mini
})
}
break;
case 3:
if ((item.tdata.url.indexOf('http://') != -1 || item.tdata.url.indexOf('https://') != -1) &&
item.tdata.url.indexOf('m.cloud.sz-trip.com') == -1) {
// 外部h5
app.globalData.weburl = item.tdata.url;
wx.navigateTo({
url: "/pages/pbService/web/index?weburl=" + encodeURIComponent(item.tdata
.url)
})
} else {
let page = item.tdata.url.split("/");
page = page[page.length - 1].split("?")
let url = this.data.urltopage[page[0]];
if (url && url.indexOf('map') != -1) {
let types = ['', 'scenic', 'venue', 'post', 'restaurant', 'relic', 'tenscenic',
'cinema', 'academes'
],
type = page[1] ? page[1].split("=") : [];
wx.reLaunch({
url: url + "?type=" + (type[1] ? types.findIndex(t => t == type[1]) :
null)
})
} else if (url) {
wx.navigateTo({
url: url,
})
} else {
app.globalData.weburl = item.tdata.url;
wx.navigateTo({
url: "/pages/pbService/web/index?weburl=" + encodeURIComponent(item
.tdata.url)
})
}
}
break;
case 4:
if (item.tdata.appid == 'wxe5ca0f71e918e352' && wx.getStorageSync('jstrip_userid')) {
// 如果是苏心游的小程序 直接把authCode带过去
userApi.user_post("user/getJumpThirdAppCode", {}).then(res => {
let weburl = item.tdata.page
if (weburl.indexOf('?') != -1) {
weburl += '&authCode=' + res.data;
} else {
weburl += '?authCode=' + res.data
}
wx.navigateToMiniProgram({
appId: item.tdata.appid,
path: weburl
})
}).catch(err => {
wx.navigateToMiniProgram({
appId: item.tdata.appid,
path: item.tdata.page
})
})
} else {
wx.navigateToMiniProgram({
appId: item.tdata.appid,
path: item.tdata.page
})
}
break;
default:
break;
}
return;
},
newPagePoint(param) {
commonApi._post("browse/newBuryingPoint", {
uuid: app.globalData.uuid,
drive: "mini",
...param,
})
},
//------------------------金刚区点击-------------------------------------
// 自定义数据的跳转
mainIconClick: function(e) {
let item = e.currentTarget.dataset.item
if (item.appId) {
wx.navigateToMiniProgram({
appId: item.appId,
path: item.pagePath,
})
return
}
if (item.path) {
wx.navigateTo({
url: item.path
})
return
}
if (item.weburl) {
wx.navigateTo({
url: "/pages/pbService/web/index?weburl=" + encodeURIComponent(item.weburl)
})
return
}
},
// 后台配置数据跳转
mainNavClick: function(e) {
let item = e.currentTarget.dataset.item
console.log(item)
if (item.pagePoint) {
this.newPagePoint(item.pagePoint)
}
util.setGlobalPagePoint(item.menu_name || "首页")
if (item.jump_type == "page") {
if (item.page.mini) {
wx.navigateTo({
url: "/" + item.page.mini,
})
return
}
if (item.page.tdata) {
//sph 视频号
if (item.page.tdata.appid && item.page.tdata.appid.indexOf("sph") >= 0) {
// if (item.page.tdata.page) {
// wx.openChannelsActivity({
// finderUserName: item.page.tdata.appid, // 视频号的原始ID
// feedId: item.page.tdata.page, // 视频号的视频ID
// success(res) {
// console.log('拉起视频号成功', res);
// },
// fail(res) {
// console.log('拉起视频号失败', res);
// }
// })
// } else {
// wx.openChannelsUserProfile({
// finderUserName: item.page.tdata.appid, // 视频号的原始ID
// })
// }
wx.openChannelsUserProfile({
finderUserName: item.page.tdata.appid, // 视频号的原始ID
})
return
}
if (item.page.tdata.ghid == "gh_b55e177a4069" || item.page.tdata.appid ==
'wx4bb7b6050831f585') {
wx.navigateTo({
url: "/" + item.page.tdata.page,
})
} else {
wx.navigateToMiniProgram({
appId: item.page.tdata.appid,
path: item.page.tdata.page
})
}
}
}
if (item.jump_type == "link") {
wx.navigateTo({
url: "/pages/pbService/web/index?weburl=" + encodeURIComponent(item.url),
})
return
}
if (item.jump_type == "text") {
setTimeout(() => {
wx.showToast({
title: item.text,
icon: 'none',
duration: 2000,
})
}, 200);
}
},
// 其他平台配置数据的跳转
gotoOther: function(e) {
let item = e.currentTarget.dataset.item;
if (item.type == 'h5') {
app.globalData.weburl = item.url
wx.navigateTo({
url: "/pages/pbService/web/index?weburl=" + encodeURIComponent(item.url)
})
} else if (item.type == 'mini') {
wx.navigateToMiniProgram({
appId: item.appid,
path: item.path
})
} else if (item.type == 'page') {
wx.navigateTo({
url: item.page,
})
}
},
// 滚动监听
listenScroll(e) {
let keyname = e.currentTarget.dataset.keyname
this.setData({
[keyname]: e.detail.scrollLeft,
})
},
// -----------------------------------------------------------------------
// 新品特惠
getXpthList: function() {
commonApi._post("product/get_product_indulgence", {
tag_id: 275,
typeId: 3,
type: 1, // 返回数组
}).then(res => {
console.log("resData", res.data.adv);
(res.data.adv || []).forEach(v => {
v.pagePoint = {
classification: 'flashSales',
key_number: v.id
}
});
(res.data.list || []).forEach(v => {
v.pagePoint = {
classification: 'flashSales',
key_number: v.id
}
});
this.setData({
xpth: res.data
})
})
},
// 更换新品特惠 当即热门
changeXpthIndex: function(e) {
let value = e.currentTarget.dataset.value
this.setData({
xpthIndex: value
})
},
productGotoDetail: function(e) {
let item = e.currentTarget.dataset.item;
let source = e.currentTarget.dataset.source;
if (source) {
util.setGlobalPagePoint(source);
}
if (item.pagePoint) {
this.newPagePoint(item.pagePoint)
}
util.gotoDetail(item)
},
// 热门推荐
getList: function() {
commonApi._post("product/get_product_by_tag_subject", {
tag_id: 85,
offset: 0,
limit: 5,
}).then(res => {
let resData = res.data.list || []
resData.forEach(v => {
v.pagePoint = {
classification: 'hot',
key_number: v.id
};
v.display_tags_arr = v.display_tags ? v.display_tags.split(",") : []
})
this.setData({
list: resData
})
})
},
// 回购
getRepurchaseList: function() {
commonApi._post("repurchase/repurchase/getRepurchaseList", {}).then(res => {
(res.data || []).forEach(v => {
v.headimg = this.showImg(v.headimg)
v.pagePoint = {
classification: 'repurchase',
key_number: v.product_id
}
})
this.setData({
repurchaseList: res.data || []
})
})
},
onReachBottom: function() {
// if (this.data.list.length < 30) {
// this.getList()
// }
// if (this.data.canGetrepurchase) {
// this.data.canGetrepurchase = false
// this.getRepurchaseList()
// }
},
gotoDetail: function(e) {
let item = e.currentTarget.dataset.item;
let source = e.currentTarget.dataset.source;
let index = e.currentTarget.dataset.index;
console.log(index)
if (index == 1) {
wx.navigateTo({
url: '/subPackages/foodNew/index?id=' + item.id
})
return;
}
if (source) {
util.setGlobalPagePoint(source);
}
commonApi._post("repurchase/repurchase/recordClick", {
product_id: item.product_id
})
// item.id = item.type=='post'?item.product_id:item.scene_id
if (item.pagePoint) {
this.newPagePoint(item.pagePoint)
}
// util.gotoDetail(item);
util.gotoDetail(item);
},
pagePoint: function(e, type) {
util.pagePoint(e, type)
},
// --------------------------广告----------------------------
//关闭弹窗广告
closeAdv: function() {
this.setData({
showAdv: false
})
wx.showTabBar({
animation: true,
})
},
//关闭全屏广告
closeFullAdv: function() {
this.setData({
showFullAdv: false
})
clearInterval(this.data.fullAdvTimer)
if (!this.data.alertSwipeList.length > 0) {
wx.showTabBar({
animation: true
})
}
},
// 是否静音
closeMuted: function() {
this.setData({
isMuted: this.data.isMuted = !this.data.isMuted
})
},
// 播放视频
videoPlay: function() {
let videoplay = wx.createVideoContext('myVideo', this)
videoplay.play();
this.setData({
videoPlay: false
})
},
// 暂停视频
videoPause: function() {
let videoplay = wx.createVideoContext('myVideo', this)
videoplay.pause();
this.setData({
videoPlay: true
})
},
changeSimpleVal(e) {
let keyname = e.currentTarget.dataset.keyname;
let val = e.currentTarget.dataset.val;
let param = {}
param[keyname] = val
if (keyname == "cityIndex") {
let scrollIndex = val - 2
if (scrollIndex < 0) {
scrollIndex = 0
}
param.scrollItem = "scrollItem-" + scrollIndex
}
this.setData(param)
console.log(this.data)
},
onShow: function() {
this.pagePoint({
event: 'home_view'
}, 1)
// 修复 首页广告点击后返回首页 tabbar不显示
if (this.data.showTime && !this.data.showFullAdv) {
wx.showTabBar()
}
util.clearGlobalPagePoint()
if (app.globalData.innerAudioContext) {
app.globalData.innerAudioContext.stop()
}
app.globalData.isCartBuy = false
},
goAIUrl() {
wx.switchTab({
url: '/pages/pbService/aiHelpYou/index',
})
},
goYjgl() {
wx.navigateTo({
url: '/pages/list/strategy/index'
})
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
},
onShareTimeline: function() {
return {
title: '君到苏州(文化旅游总入口)',
query: '',
imageUrl: 'https://static.ticket.sz-trip.com/xcxImages/zwt/logo.png'
}
},
// --------------------以前的东西 暂时用不到仅做保留------------------------
// 一城百馆 以前的活动
city: function() {
wx.navigateToMiniProgram({
appId: 'wx114d514f39cb1fed',
path: "pages/entry/index"
})
commonApi._post("browse/burying_point", {
drive: "mini",
title: "一城百馆",
uuid: app.globalData.uuid
}).then(res => {
})
},
meituan: function() {
wx.navigateToMiniProgram({
appId: 'wxde8ac0a21135c07d',
path: "hotel/pages/h5/index?q=https%3A%2F%2Ffenxiao.meituan.com%2Fopdtor%2Fh5%2Fhotel%2Fsearch%3FpartnerId%3D16829"
})
},
// 活动日历
getFourProduct: function() {
let item = this.data.indexHot[this.data.hotIndex],
service = "product/get_product_by_tag",
data = {
tag_id: item.id,
offset: 0,
limit: 4,
sort: 'weight',
order: 'desc'
};
if (item.type == 'scene') {
service = "scene/get_scene_by_tag";
} else if (item.type == 'movie') {
service = "Cinema/getHotMovieList";
data = {
page: 1,
pageSize: 4
};
}
commonApi._post(service, data).then(res => {
this.setData({
fourProduct: res.data.list || res.data
})
})
},
changeHotIndex: function(e) {
this.setData({
hotIndex: e.currentTarget.dataset.index,
fourProduct: []
})
this.getFourProduct()
},
getWeather: function() {
commonApi._post('pbservice/Ztfw/getWeather').then(res => {
this.setData({
weather: res.data
})
})
},
// Ai避高峰
gotoUrls() {
// 判断是否登录
var token = wx.getStorageSync("jstrip_token"),
userId = wx.getStorageSync("jstrip_userid");
if (!token || !userId) {
let url = 'https://wlsjzx.zdhxwl.cn/kt_h5/index.html'
app.globalData.weburl = url;
wx.navigateTo({
url: '/pages/pbService/web/index?weburl=' + encodeURIComponent(url),
})
} else {
commonApi.user_post("uservice/user/userEncry").then(res => {
if (res.code == 1) {
let url = 'https://wlsjzx.zdhxwl.cn/kt_h5/index.html?userEncry=' + res.data
app.globalData.weburl = url;
wx.navigateTo({
url: '/pages/pbService/web/index?weburl=' + encodeURIComponent(url),
})
}
})
}
},
})