//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/20250526/5934b8b77b058ce1de5943adbaf51739.png", path: "/pages/list/scene/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), }) } }) } }, })