Browse Source

提交

master
chenkainan 2 months ago
parent
commit
91764106ec
  1. 2
      app.js
  2. 4
      app.json
  3. 114
      pages/activity/graduate/index.js
  4. 3
      pages/activity/graduate/index.json
  5. 30
      pages/activity/graduate/index.wxml
  6. 132
      pages/activity/graduate/index.wxss
  7. 112
      pages/activity/spring2021/index.js
  8. 3
      pages/activity/spring2021/index.json
  9. 43
      pages/activity/spring2021/index.wxml
  10. 119
      pages/activity/spring2021/index.wxss
  11. 134
      pages/activity/suyear/index.js
  12. 5
      pages/activity/suyear/index.json
  13. 18
      pages/activity/suyear/index.wxml
  14. 93
      pages/activity/suyear/index.wxss
  15. 167
      pages/activity/year2020/index.js
  16. 5
      pages/activity/year2020/index.json
  17. 49
      pages/activity/year2020/index.wxml
  18. 122
      pages/activity/year2020/index.wxss
  19. 16
      pages/component/newCalendar/index.wxss
  20. 664
      pages/index/index.js
  21. 183
      pages/index/index.wxml
  22. 341
      pages/index/index.wxss
  23. 4
      pages/list/activitynew/index.wxml
  24. 2
      pages/list/activitynew/index.wxss
  25. 7
      pages/user/order/sceneOrderInfo/index.wxml
  26. 16
      pages/user/order/sceneOrderInfo/index.wxss
  27. 11
      project.private.config.json

2
app.js

@ -39,7 +39,7 @@ App({
// 获取前端配置文件 // 获取前端配置文件
commonApi._post("pbservice/Other/getClientConfig", {unique_key: "wechatxcx"}).then(res => { commonApi._post("pbservice/Other/getClientConfig", {unique_key: "wechatxcx"}).then(res => {
let data = JSON.parse(res.data); let data = JSON.parse(res.data);
data.isTest = data.isTest168? true : false; data.isTest = data.isTest169? true : false;
data.indexSeason = null data.indexSeason = null
this.globalData.configJson = data this.globalData.configJson = data
}).then(() => { }).then(() => {

4
app.json

@ -148,10 +148,6 @@
"pages/ask/index", "pages/ask/index",
"pages/ask/info/index", "pages/ask/info/index",
"pages/ask/my/index", "pages/ask/my/index",
"pages/activity/graduate/index",
"pages/activity/year2020/index",
"pages/activity/suyear/index",
"pages/activity/spring2021/index",
"pages/activity/springten/list/index", "pages/activity/springten/list/index",
"pages/activity/autumnten/list/index", "pages/activity/autumnten/list/index",
"pages/activity/springten/index", "pages/activity/springten/index",

114
pages/activity/graduate/index.js

@ -1,114 +0,0 @@
// pages/activity/graduate/index.js
import commonApi from "../../../utils/https/common"
import util from "../../../utils/util"
Page({
/**
* 页面的初始数据
*/
data: {
list:[[],[],[],[]]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let ajaxes = [],list = [];
wx.showLoading({
title: '加载中',
});
['62','63','64'].map(item=>{
ajaxes.push(commonApi._post("product/get_product_by_tag",{
tag_id: item,
offset: 0,
limit: 100
}))
});
ajaxes.push(commonApi._post("scene/get_scene_by_tag",{
tag_id: 30,
offset: 0,
limit: 100
}))
Promise.all(ajaxes).then(res=>{
res.map(item=>{
item.data.list.map(i=>{
i.display_tags = i.display_tags?i.display_tags.split(","):[];
i.display_tags = i.display_tags.slice(0,2);
})
list.push(item.data.list);
})
this.setData({
list:list
})
wx.hideLoading({})
})
},
gotoDetail:function(e){
let item = e.currentTarget.dataset.item;
util.gotoDetail(item)
},
scrollToBox:function(e){
let index = e.currentTarget.dataset.index;
const query=wx.createSelectorQuery(); //创建节点查询器
query.select("#box"+index).boundingClientRect() //选择toViewid获取位置信息
query.selectViewport().scrollOffset() //获取页面查询位置的
query.exec(function(res) {
console.log(res)
let scrollTop = res[0].top + res[1].scrollTop ;
wx.pageScrollTo({
scrollTop: scrollTop - 60,
duration: 200
})
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

3
pages/activity/graduate/index.json

@ -1,3 +0,0 @@
{
"usingComponents": {}
}

30
pages/activity/graduate/index.wxml

@ -1,30 +0,0 @@
<!--pages/activity/graduate/index.wxml-->
<view style="position:relative;min-height:100vh">
<image lazy-load style="position:absolute;top:0;left:0" class="mainimg" src="https://static.ticket.sz-trip.com/xcxImages/activity/graduate/top.png" mode="widthFix"></image>
<view class="top-menus">
<view class="top-menu" bindtap="scrollToBox" data-index="1">好玩景点</view>
<view class="top-menu" bindtap="scrollToBox" data-index="2">一日游</view>
<view class="top-menu" bindtap="scrollToBox" data-index="3">文创特产</view>
<view class="top-menu" bindtap="scrollToBox" data-index="4">精选酒店</view>
</view>
<view style="height:650rpx"></view>
<view class="list" wx:for="{{list}}" id="box{{index+1}}">
<image lazy-load class="titleimg" mode="widthFix" src="https://static.ticket.sz-trip.com/xcxImages/activity/graduate/title{{index+1}}.png"></image>
<view class="list-box">
<view class="item" wx:for="{{item}}" bindtap="gotoDetail" data-item="{{item}}">
<image lazy-load class="mainimg" src="{{item.headimg}}" mode="aspectFill"></image>
<view class="title textOver">{{item.title}}</view>
<view class="product-tags">
<view class="product-tag textOver" wx:for="{{item.display_tags}}">{{item}}</view>
</view>
<view class="product-bottom">
<view class="price">¥<text>{{item.price/100}}</text></view>
<image lazy-load mode="widthFix" src="https://static.ticket.sz-trip.com/xcxImages/activity/graduate/btn.png"></image>
</view>
</view>
</view>
</view>
<view style="height:80rpx"></view>
<image lazy-load class="bottomtext" mode="widthFix" src="https://static.ticket.sz-trip.com/xcxImages/activity/graduate/bottom.png"></image>
<image lazy-load class="bottombg" src="https://static.ticket.sz-trip.com/xcxImages/activity/graduate/bottombg.png" mode="widthFix"></image>
</view>

132
pages/activity/graduate/index.wxss

@ -1,132 +0,0 @@
/* pages/activity/graduate/index.wxss */
.mainimg {
display: block;
width: 100%;
}
page {
background: url(https://static.ticket.sz-trip.com/xcxImages/activity/graduate/bg.png);
background-size: 100%;
background-repeat: repeat-y;
}
.top-menus {
display: flex;
align-items: center;
position: absolute;
justify-content: space-between;
left: 34rpx;
right: 34rpx;
top: 546rpx;
z-index: 1;
color: #fff;
line-height: 51rpx;
}
.top-menu {
width: 149rpx;
border-radius: 19rpx;
font-size: 26rpx;
flex-shrink: 0;
letter-spacing: 3rpx;
background: #308506;
text-align: center;
font-weight: lighter;
}
.list {
position: relative;
margin: 10rpx 27rpx;
border: solid 1rpx #7c9112;
padding: 8rpx;
border-radius: 16rpx;
z-index: 1;
margin-bottom: 40rpx;
}
.list-box {
border-radius: 16rpx;
background-color: #f6f0e4;
border: solid 3rpx #7c9112;
padding: 56rpx 30rpx;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.item .mainimg {
width: 286rpx;
height: 253rpx;
border-radius: 16rpx;
}
.item {
border-radius: 16rpx;
padding: 7rpx;
width: 286rpx;
border: 1rpx dashed;
color: #7c9112;
margin-top: 27rpx;
}
.titleimg {
position: absolute;
display: block;
width: 326rpx;
height: 67rpx;
left: 50%;
margin-left: -163rpx;
top: -28rpx;
}
.item .title {
font-size: 25rpx;
line-height: 38rpx;
letter-spacing: -2rpx;
color: #469115;
margin: 5rpx 10rpx;
}
.product-tags {
margin: 0 10rpx;
display: flex;
align-items: center;
margin-bottom: 10rpx;
height: 20rpx;
}
.product-tag {
line-height: 20rpx;
background-color: #b1c346;
padding: 0 15rpx;
font-size: 12rpx;
color: #495800;
margin-right: 8rpx;
}
.product-tags:last-child {
margin-right: 0;
}
.product-bottom {
display: flex;
justify-content: space-between;
margin: 0 10rpx;
padding-bottom: 6rpx;
color: #6ea21b;
font-size: 14rpx;
align-items: flex-end;
}
.product-bottom image {
width: 120rpx;
display: block;
flex-shrink: 0;
}
.product-bottom text {
font-size: 31rpx;
font-weight: 500;
line-height: 31rpx;
margin-left: 10rpx;
}
.bottombg {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
display: block;
z-index: 0;
}
.bottomtext {
position: absolute;
right: 0;
width: 439rpx;
bottom: 0;
z-index: 2;
}

112
pages/activity/spring2021/index.js

@ -1,112 +0,0 @@
// pages/activity/spring2021/index.js
import commonApi from "../../../utils/https/common"
import util from "../../../utils/util"
Page({
/**
* 页面的初始数据
*/
data: {
list1:[],
list2:[],
list3:[]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
// 获取数据
commonApi._post("product/get_product_by_tag",{
offset:0,
limit:100,
tag_id:28
}).then(res=>{
this.setData({
list1:this.getTwoProduct(res.data.list)
})
})
commonApi._post("product/get_product_by_tag",{
offset:0,
limit:100,
tag_id:29
}).then(res=>{
this.setData({
list2:res.data.list
})
})
commonApi._post("product/get_product_by_tag",{
offset:0,
limit:100,
tag_id:30
}).then(res=>{
this.setData({
list3:this.getTwoProduct(res.data.list)
})
})
},
getTwoProduct:function(list){
let res = [];
for(let i=0;i<list.length;i=i+2){
if(list[i+1]){
res.push([list[i],list[i+1]])
}
else {
res.push([list[i]])
}
}
return res;
},
gotoDetail:function(e){
util.gotoDetail(e.currentTarget.dataset.item)
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

3
pages/activity/spring2021/index.json

@ -1,3 +0,0 @@
{
"usingComponents": {}
}

43
pages/activity/spring2021/index.wxml

@ -1,43 +0,0 @@
<!--pages/activity/spring2021/index.wxml-->
<image lazy-load mode="widthFix" class="main-img topimg" src="https://static.ticket.sz-trip.com/xcxImages/spring2021/top.png"></image>
<view style="height:613rpx"></view>
<view class="list" wx:if="{{list1.length>0}}">
<view class="list-in" wx:for="{{list1}}">
<view class="item1" wx:for="{{item}}" bindtap="gotoDetail" data-item="{{item}}">
<image lazy-load src="{{item.headimg}}"></image>
<view class="textOver item1-title">{{item.title}}</view>
<view class="item1-bottom">
<view class="item1-price">{{item.price/100}}</view>
<view class="item1-btn">点击预定</view>
</view>
</view>
</view>
</view>
<view wx:else style="height:100rpx"></view>
<image lazy-load style="margin:30rpx 0" src="https://static.ticket.sz-trip.com/xcxImages/spring2021/title1.jpg" class="main-img" mode="widthFix"></image>
<view class="list list2" wx:if="{{list2.length>0}}">
<view class="list-in list-in2">
<view class="item1 item2" wx:for="{{list2}}" bindtap="gotoDetail" data-item="{{item}}">
<image lazy-load src="{{item.headimg}}" mode="aspectFill"></image>
<view class="textOver item1-title item2-title">{{item.title}}</view>
<view class="item1-bottom">
<view class="item1-price item2-price">{{item.price/100}}</view>
<view class="item1-btn">点击预定</view>
</view>
</view>
</view>
</view>
<image lazy-load style="margin:30rpx 0" src="https://static.ticket.sz-trip.com/xcxImages/spring2021/title2.jpg" class="main-img" mode="widthFix"></image>
<view class="list" wx:if="{{list3.length>0}}" style="margin-top:-160rpx">
<view class="list-in" wx:for="{{list3}}">
<view class="item1" wx:for="{{item}}" bindtap="gotoDetail" data-item="{{item}}">
<image lazy-load src="{{item.headimg}}" mode="aspectFill"></image>
<view class="textOver item1-title">{{item.title}}</view>
<view class="item1-bottom">
<view class="item1-price">{{item.price/100}}</view>
<view class="item1-btn">点击预定</view>
</view>
</view>
</view>
</view>
<image lazy-load class="main-img" mode="widthFix" src="https://static.ticket.sz-trip.com/xcxImages/spring2021/bottom.jpg"></image>

119
pages/activity/spring2021/index.wxss

@ -1,119 +0,0 @@
/* pages/activity/spring2021/index.wxss */
.main-img {
display: block;
width: 100%;
}
.topimg {
position: absolute;
top: 0;
left: 0;
}
page {
background: #b8dd95;
}
.list {
margin: 0 8rpx;
border-radius: 7rpx;
background-color: #edf0a1;
padding: 14rpx 12rpx;
position: relative;
z-index: 2;
}
.list-in {
border-radius: 7rpx;
background-color: #68b83d;
padding: 23rpx 15rpx;
display: flex;
justify-content: space-between;
margin-bottom: 12rpx;
}
.list .list-in:last-child {
margin-bottom: 0;
}
.item1 {
width: 334rpx;
color: #fffbe7;
font-size: 23rpx;
line-height: 30rp;
text-align: center;
}
.item1 image {
height: 264rpx;
width: 334rpx;
display: block;
}
.item1-title {
margin: 8rpx;
}
.item1-bottom {
margin: 0 8rpx;
display: flex;
justify-content: center;
align-items: center;
}
.item1-price::before {
content: "¥";
font-size: 10rpx;
}
.item1-price::after {
content: "元";
font-size: 13rpx;
}
.item1-price {
font-size: 35rpx;
}
.item1-btn {
width: 88rpx;
line-height: 26rpx;
text-align: center;
background-color: #ff7c7a;
border-radius: 13rpx;
color: #fff;
font-size: 17rpx;
margin-left: 12rpx;
}
.list2 {
background-color: #93bd71;
border-radius: 29rpx;
padding: 24rpx 22rpx;
}
.list-in2 {
background: white;
box-shadow: 0rpx 10rpx 16rpx 0rpx
rgba(120, 134, 103, 0.69);
border-radius: 29rpx;
border: solid 2rpx #598723;
flex-wrap: wrap;
margin-bottom: 0;
padding: 29rpx 24rpx;
}
.item2 {
width: 314rpx;
color: #333;
margin-top: 40rpx;
}
.list-in2 .item2:nth-child(-n+2){
margin-top: 0;
}
.item2 image {
width: 314rpx;
height: 219rpx;
}
.item2-price {
color: #f75e48;
}
.item2-title {
line-height: 41rpx;
border-top: 1rpx dotted #999;
border-bottom: 1rpx dotted #999;
display: inline-block;
font-size: 26rpx;
color: #282822;
max-width: 300rpx;
}
.item2-price::before {
font-size: 18rpx;
}
.item2-price::after {
content: "";
}

134
pages/activity/suyear/index.js

@ -1,134 +0,0 @@
// pages/activity/suyear/index.js
import commonApi from "../../../utils/https/common"
import util from "../../../utils/util"
Page({
/**
* 页面的初始数据
*/
data: {
tabs:[{
areaid:"",
imgname:'all'
},{
areaid:"320508",
imgname:'gs'
},{
areaid:"320506",
imgname:'wz'
},{
areaid:"320507",
imgname:'xc'
},{
areaid:"320509",
imgname:'wj'
},{
areaid:"320510",
imgname:'yq'
},{
areaid:"320582",
imgname:'zjg'
},{
areaid:"320585",
imgname:'tc'
},{
areaid:"320583",
imgname:'ks'
},{
areaid:"320581",
imgname:'cs'
}],
list:[],
total:1,
areas_id:""
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.getList()
},
changeArea:function(e){
let areas_id = e.currentTarget.dataset.area;
this.setData({
total:1,
list:[],
areas_id:areas_id
})
this.getList()
},
getList:function(){
if(this.data.total<=this.data.list.length) return;
commonApi._post('product/get_product_by_tag',{
tag_id:23,
offset:this.data.list.length,
areas_id:this.data.areas_id,
limit:10
}).then(res=>{
this.setData({
list:this.data.list.concat(res.data.list),
total:res.data.total
})
})
},
gotoDetail:function(e){
let item = e.currentTarget.dataset.item;
if(item.title=='沙家浜景区'){
wx.navigateToMiniProgram({
appId: 'wx98a352b4689e46d8',
path:'pages/sightspots/booking?id=32&type=default'
})
return;
}
util.gotoDetail(item)
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
this.getList()
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

5
pages/activity/suyear/index.json

@ -1,5 +0,0 @@
{
"usingComponents": {
"title":"/pages/component/TitleHeader"
}
}

18
pages/activity/suyear/index.wxml

@ -1,18 +0,0 @@
<!--pages/activity/suyear/index.wxml-->
<title title="留苏过大年"></title>
<view style="position:relative">
<image lazy-load src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/suyear/top.png" mode="widthFix" class="main-img"></image>
<view class="area-list">
<image lazy-load bindtap="changeArea" data-area="{{item.areaid}}" wx:for="{{tabs}}" src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/suyear/{{item.imgname}}.png" mode="widthFix" class="area-img"></image>
</view>
</view>
<view class="list">
<view class="item" bindtap="gotoDetail" data-item="{{item}}" wx:for="{{list}}">
<image lazy-load class="border" src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/suyear/border.png" mode="widthFix"></image>
<image lazy-load src="{{item.headimg}}" class="product-img" mode="aspectFill"></image>
<image lazy-load wx:if="{{item.area_id}}" mode="widthFix" class="addressimg" src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/suyear/{{item.area_id}}.png"></image>
<image lazy-load class="bgimg" mode="widthFix" src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/suyear/bg.png"></image>
<view class="title textOver2">{{item.title}}</view>
<image lazy-load class="btn" src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/suyear/btn.png" mode="widthFix"></image>
</view>
</view>

93
pages/activity/suyear/index.wxss

@ -1,93 +0,0 @@
/* pages/activity/suyear/index.wxss */
page {
background: #FCDDB3;
}
.main-img {
display: block;
width: 100%;
}
.area-list {
display: flex;
align-items: center;
left: 30rpx;
right: 0;
overflow-x: auto;
position: absolute;
top: 700rpx;
}
.area-list image {
display: block;
flex-shrink: 0;
width: 110rpx;
margin-right: 20rpx;
}
.list {
display: flex;
align-items: center;
flex-wrap: wrap;
margin: 0 25rpx;
justify-content: space-between;
padding-top: 34rpx;
}
.item {
width: 345rpx;
height: 435rpx;
position: relative;
margin-bottom: 30rpx;
}
.item .bgimg {
position: absolute;
width: 100%;
}
.item image {
display: block;
}
.item .bgimgin {
position: absolute;
width: 307rpx;
left: 18rpx;
top: 18rpx;
}
.item .border {
position: absolute;
width: 79rpx;
margin-left: -19rpx;
bottom: 10rpx;
}
.item:nth-child(2n) .border {
margin-left: 280rpx;
}
.item .product-img {
position: absolute;
width: 308rpx;
height: 254rpx;
left: 50%;
margin-left: -154rpx;
top: 20rpx;
}
.item .title {
font-size: 32rpx;
font-family: Source Han Sans SC;
font-weight: bold;
color: #FFFFFF;
line-height: 45rpx;
background: linear-gradient(-50deg, #FCDDB2 0%, #F7B765 44.7021484375%, #FCDEB4 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
position: absolute;
top: 280rpx;
left: 30rpx;
right: 30rpx;
}
.item .btn {
position: absolute;
width: 260rpx;
left: 42rpx;
top: 357rpx;
}
.item .addressimg {
width: 110rpx;
left: 40rpx;
top: 15rpx;
position: absolute;
}

167
pages/activity/year2020/index.js

@ -1,167 +0,0 @@
// pages/activity/year2020/index.js
import commonApi from "../../../utils/https/common"
import util from "../../../utils/util"
let device = wx.getSystemInfoSync();
const ratio = device.windowWidth / 750;
Page({
/**
* 页面的初始数据
*/
data: {
zhouzhuang:[],
haofengguang:[],
dongshan:[],
huqiu:[],
jiangnan:[],
list:[],
total:1,
top:0
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let rect = wx.getMenuButtonBoundingClientRect();
let height = (rect.top - device.statusBarHeight) * 2 + rect.height + device.statusBarHeight;
this.setData({
top:height
})
// 周庄年货专区
commonApi._post("adv/getAdvByKey",{
key:"zhouzhuangnianhuo"
}).then(res=>{
this.setData({
zhouzhuang:res.data.content || []
})
})
// 苏州好风光
commonApi._post("adv/getAdvByKey",{
key:"haofengguangnianhuo"
}).then(res=>{
this.setData({
haofengguang:res.data.content || []
})
})
// 东山爆款好物
commonApi._post("adv/getAdvByKey",{
key:"dongshannianhuo"
}).then(res=>{
this.setData({
dongshan:res.data.content || []
})
})
// 虎丘茶礼
commonApi._post("adv/getAdvByKey",{
key:"huqiunianhuo"
}).then(res=>{
this.setData({
huqiu:res.data.content || []
})
})
// 江南米造局
commonApi._post("adv/getAdvByKey",{
key:"jiangniannianhuo"
}).then(res=>{
this.setData({
jiangnan:res.data.content || []
})
})
this.getList()
},
getList:function(){
let list = this.data.list;
if(list.length>=this.data.total) return;
commonApi._post('product/get_product_by_tag',{
tag_id:22,
offset:list.length,
limit:10
}).then(res=>{
list = list.concat(res.data.list);
this.setData({
list:list,
total:res.data.total
})
})
},
gotoDetail:function(e){
let item = e.currentTarget.dataset.item;
let [type,id] = item.href.split(",");
util.gotoDetail({
type:type,
id:id
})
},
gotoDetail2:function(e){
let item = e.currentTarget.dataset.item;
util.gotoDetail(item)
},
home:function(){
wx.switchTab({
url: '/pages/index/index',
})
},
gotoScroll:function(e){
let that = this,index = e.currentTarget.dataset.index;
const query=wx.createSelectorQuery(); //创建节点查询器
query.select("#box"+index).boundingClientRect() //选择toViewid获取位置信息
query.selectViewport().scrollOffset() //获取页面查询位置的
query.exec(function(res) {
let scrollTop = res[0].top + res[1].scrollTop - that.data.top;
wx.pageScrollTo({
scrollTop: scrollTop + 4,
duration: 500
})
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
this.getList()
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

5
pages/activity/year2020/index.json

@ -1,5 +0,0 @@
{
"usingComponents": {
"title":"/pages/component/TitleHeader"
}
}

49
pages/activity/year2020/index.wxml

@ -1,49 +0,0 @@
<!--pages/activity/year2020/index.wxml-->
<title title="年货节"></title>
<view style="position:relative">
<image lazy-load src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/nianhuojie/top.jpg" mode="widthFix" class="yearimg" style="margin-top:0"></image>
<view bindtap="gotoScroll" data-index="1" class="block1"></view>
<view bindtap="gotoScroll" data-index="2" class="block2"></view>
</view>
<view class="product-list">
<image lazy-load bindtap="gotoDetail" data-item="{{item}}" style="{{zhouzhuang.length%2==1 && index==zhouzhuang.length-1?'width:730rpx;height:290rpx;':''}}" src="{{item.img}}" mode="aspectFill" wx:for="{{zhouzhuang}}"></image>
</view>
<image lazy-load src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/nianhuojie/haofengguang.jpg" mode="widthFix" class="yearimg" id="box1"></image>
<view class="product-list">
<image lazy-load bindtap="gotoDetail" data-item="{{item}}" style="{{haofengguang.length%2==1 && index==haofengguang.length-1?'width:730rpx;height:290rpx;':''}}" src="{{item.img}}" mode="aspectFill" wx:for="{{haofengguang}}"></image>
</view>
<image lazy-load src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/nianhuojie/dongshan.jpg" mode="widthFix" class="yearimg" id="box2"></image>
<view class="product-list">
<image lazy-load bindtap="gotoDetail" data-item="{{item}}" style="{{dongshan.length%2==1 && index==dongshan.length-1?'width:730rpx;height:290rpx':''}}" src="{{item.img}}" mode="aspectFill" wx:for="{{dongshan}}"></image>
</view>
<image lazy-load src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/nianhuojie/huqiu.jpg" mode="widthFix" class="yearimg"></image>
<view class="product-list">
<image lazy-load bindtap="gotoDetail" data-item="{{item}}" style="{{huqiu.length%2==1 && index==huqiu.length-1?'width:730rpx;height:290rpx':''}}" src="{{item.img}}" mode="aspectFill" wx:for="{{huqiu}}"></image>
</view>
<image lazy-load src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/nianhuojie/jiangnan.jpg" mode="widthFix" class="yearimg"></image>
<view class="product-list">
<image lazy-load bindtap="gotoDetail" data-item="{{item}}" style="{{jiangnan.length%2==1 && index==jiangnan.length-1?'width:730rpx;height:290rpx':''}}" src="{{item.img}}" mode="aspectFill" wx:for="{{jiangnan}}"></image>
</view>
<image lazy-load src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/nianhuojie/bixuan.jpg" mode="widthFix" class="yearimg"></image>
<view class="product-list">
<view bindtap="gotoDetail2" data-item="{{item}}" class="product-item" wx:for="{{list}}">
<image lazy-load class="main-img" src="{{item.headimg}}" mode="aspectFill"></image>
<image lazy-load class="bg-img" src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/nianhuojie/bg.png" mode="aspectFill"></image>
<view class="info-box">
<view class="title textOver">{{item.title}}</view>
<view class="subtitle textOver">{{item.subtitle}}</view>
<view class="btn textOver">
<view class="btn-text">
<view>年货价</view>
<view>¥</view>
</view>
<view class="price">{{item.price/100}}</view>
<image lazy-load src="https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/nianhuojie/btn.png" mode="widthFix"></image>
</view>
</view>
</view>
</view>
<view bindtap="home" class="backhome-box">
<view>返回首页</view>
<view class="iconfont icon-bofang1"></view>
</view>

122
pages/activity/year2020/index.wxss

@ -1,122 +0,0 @@
/* pages/activity/year2020/index.wxss */
page {
background: #c8070a;
}
.yearimg {
display: block;
width: 100%;
margin: 0;
padding: 0;
margin-top: -15rpx;
}
.product-list {
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 10rpx;
flex-wrap: wrap;
position: relative;
z-index: 1;
}
.product-list image {
width: 357rpx;
height: 409rpx;
margin-bottom: 15rpx;
}
.product-item {
width: 357rpx;
height: 409rpx;
overflow: hidden;
margin-bottom: 15rpx;
position: relative;
}
.product-list .main-img {
width: 357rpx;
height: 263rpx;
display: block;
margin-top: 7rpx;
}
.product-list .bg-img {
position: absolute;
left: 0;
top: 0;
width: 357rpx;
height: 409rpx;
z-index: 2;
}
.info-box {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 140rpx;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
z-index: 2;
color: #282828;
}
.title {
font-size: 32rpx;
width: 357rpx;
line-height: 37rpx;
font-weight: lighter;
}
.subtitle {
font-size: 18rpx;
line-height: 30rpx;
}
.btn {
display: flex;
align-items: center;
justify-content: space-between;
background: url(https://fastadmin.oss-cn-shenzhen.aliyuncs.com/xcxImages/nianhuojie/btnbg.png);
background-size: 245rpx 51rpx;
width: 245rpx;
height: 51rpx;
color: #ffc8a8;
}
.btn-text {
font-size: 14rpx;
text-align: right;
margin: 0 15rpx;
margin-right: 7rpx;
}
.price {
font-size: 38rpx;
flex-shrink: 0;
text-align: center;
}
.btn image {
width: 90rpx;
margin: 0;
margin-right: 15rpx;
margin-left: 7rpx;
display: block;
}
.backhome-box {
text-align: center;
color: #fff;
font-size: 32rpx;
overflow: hidden;
margin: 60rpx 0;
line-height: 50rpx;
}
.backhome-box .iconfont {
transform: rotate(-90deg);
color: #ebca16;
}
.block1,.block2 {
position: absolute;
width: 359rpx;
height: 170rpx;
z-index: 1;
top: 645rpx;
left: 12rpx;
}
.block2 {
right: 11rpx;
left: auto;
}

16
pages/component/newCalendar/index.wxss

@ -6,8 +6,7 @@ page{
background-image: url("https://static.ticket.sz-trip.com/jundaosuzhou/images/calendar2026/bigCalss.png"); background-image: url("https://static.ticket.sz-trip.com/jundaosuzhou/images/calendar2026/bigCalss.png");
background-size: 100% 100%; background-size: 100% 100%;
width: 750rpx; width: 750rpx;
height: 893rpx; padding: 70rpx 0 50rpx;
padding-top: 70rpx;
box-sizing: border-box; box-sizing: border-box;
position: relative; position: relative;
z-index: 2; z-index: 2;
@ -26,24 +25,11 @@ page{
} }
/* 头部样式start */ /* 头部样式start */
.title-wrap{ .title-wrap{
/* background-color: #F2F2F2; */
/* padding-top: 20rpx; */
/* border-bottom: 1px solid #D4DBDC; */
/* padding-bottom: 10rpx; */
/* width: 697rpx; */
/* margin: 0 auto;
padding: 37rpx 22rpx 40rpx; */
/* 节假日花样 */
/* background-color: #FFD6B2; */
margin: 0 auto; margin: 0 auto;
padding: 37rpx 0 40rpx; padding: 37rpx 0 40rpx;
/* 节假日花样 */
/* background-image: url("https://static.ticket.sz-trip.com/uploads/20240605/82a51ad6c58274c78f99fef4af3c9739.png"); */
background-size: 100% 100%; background-size: 100% 100%;
width: 100%; width: 100%;
/* height: 65.67rpx; */
height: 256.67rpx; height: 256.67rpx;
/* background-image: url("https://static.ticket.sz-trip.com/uploads/20250421/58fee5695a0b676a14e8157b809ba1d6.png"); */
box-sizing: border-box; box-sizing: border-box;
} }
.change-date{ .change-date{

664
pages/index/index.js

@ -53,73 +53,9 @@ Page({
}, ], }, ],
// banner上的金刚区 // banner上的金刚区
bannerDataList: [ 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: [ 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, mainTypeLeft: 0,
mainNavIndex: 0, mainNavIndex: 0,
@ -129,246 +65,19 @@ Page({
list: [], // 热门推荐 list: [], // 热门推荐
// 公共服务 // 公共服务
publicSerivce: [ 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: [ 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: [ 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, scrollLeft: 0,
// 十全十美 // 十全十美
// area_ids: ["changshu","taicang", "kunshan","wujiang","gongyeyuanqu","zhangjiagang","wuzhong","xiangcheng","gusu","gaoxin"], // area_ids: ["changshu","taicang", "kunshan","wujiang","gongyeyuanqu","zhangjiagang","wuzhong","xiangcheng","gusu","gaoxin"],
SQSM: [ 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: [ otherPlat: [
@ -454,13 +163,70 @@ Page({
} }
], ],
activeIndex: 0, activeIndex: 0,
touchStartX: 0, cardStyles: [],
// 用于存储计算好的样式字符串数组 cardTouchStartX: 0, // 卡片堆叠专用
cardStyles: []
// ========== 十二时辰相关 ==========
twelveActiveIndex: 0,
navScrollLeft: 0,
isProgramScroll: false,
scrollTouchStartX: 0, // 滚动专用
scrollTouchStartTime: 0, // 滚动专用
windowWidth: 375,
rpxRatio: 0.5,
twelvePeriodList: [{
name: '清晨',
desc: '一碗头汤面',
imgNormal: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/1.png',
imgSelected: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/1s.png',
id: '333',
list: [],
num: 6,
type: 'food'
},
{
name: '上午',
desc: '游园入梦来',
imgNormal: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/2.png',
imgSelected: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/2s.png',
id: '334',
list: [],
num: 6
},
{
name: '中午',
desc: '游乐拾清欢',
imgNormal: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/3.png',
imgSelected: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/3s.png',
id: '335',
list: [],
num: 6
},
{
name: '午后',
desc: '华灯映水巷',
imgNormal: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/4.png',
imgSelected: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/4s.png',
id: '336',
list: [],
num: 6
},
{
name: '傍晚',
desc: '江南踏月歌',
imgNormal: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/5.png',
imgSelected: 'https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/5s.png',
id: '337',
list: [],
num: 6
}
],
rpxRatio: 0.5,
}, },
onLoad: function(options) { onLoad: function(options) {
// 初始化时计算一次样式 // 初始化时计算一次样式
this.updateCardStyles(); this.updateCardStyles();
this.initTimeIndex();
// 相城小程序跳转获取用户信息 // 相城小程序跳转获取用户信息
if (options && options.szxcCode) { if (options && options.szxcCode) {
commonApi._post("uservice/user/loginByXC", { commonApi._post("uservice/user/loginByXC", {
@ -540,7 +306,258 @@ Page({
console.error(`请求第 ${index + 1} 个榜单失败`, err); console.error(`请求第 ${index + 1} 个榜单失败`, err);
}); });
}); });
// 十二时辰初始化
this.getTwelveList();
// 获取屏幕宽度
const systemInfo = wx.getSystemInfoSync();
console.log('屏幕信息:', systemInfo);
this.setData({
windowWidth: systemInfo.windowWidth,
rpxRatio: systemInfo.windowWidth / 750
});
// 延迟执行滚动
setTimeout(() => {
console.log('准备初始化滚动,当前索引:', this.data.twelveActiveIndex);
this.scrollToCenter(this.data.twelveActiveIndex);
}, 800); // 增加到800ms确保DOM完全渲染
}, },
stopTouchMove: function() {
return false;
},
/**
* 根据当前时间初始化选中的时间段
*/
initTimeIndex() {
const now = new Date();
const totalMinutes = now.getHours() * 60 + now.getMinutes();
let idx = 0;
if (totalMinutes >= 240 && totalMinutes < 540) {
idx = 0; // 清晨
} else if (totalMinutes >= 540 && totalMinutes < 690) {
idx = 1; // 上午
} else if (totalMinutes >= 690 && totalMinutes < 840) {
idx = 2; // 中午
} else if (totalMinutes >= 840 && totalMinutes < 1080) {
idx = 3; // 午后
} else {
idx = 4; // 傍晚
}
console.log('🕐 初始化时间段:', idx, '当前时间:', now.getHours() + ':' + now.getMinutes());
this.setData({
twelveActiveIndex: idx
});
},
/**
* 获取各时间段的数据列表
*/
getTwelveList() {
const list = this.data.twelvePeriodList;
list.forEach((subItem, index) => {
let apiUrl = '';
let params = {
offset: 0,
limit: 20,
tag_id: subItem.id
};
if (subItem.id == '333') {
apiUrl = 'scene/get_scene_by_tag_subject';
params.food = 1;
} else {
apiUrl = 'product/get_product_by_tag_subject';
}
commonApi._post(apiUrl, params).then(res => {
if (res.data && res.data.list) {
const key = `twelvePeriodList[${index}].list`;
this.setData({
[key]: res.data.list
});
console.log(`✅ 获取时间段 ${index} 数据成功,数量:`, res.data.list.length);
}
}).catch(err => {
console.error(`❌ 获取时间段 ${index} 数据失败:`, err);
});
});
},
/**
* 触摸开始 - 十二时辰滚动专用
*/
handleScrollTouchStart(e) {
console.log('👆 滚动触摸开始');
this.setData({
scrollTouchStartX: e.touches[0].pageX,
scrollTouchStartTime: Date.now()
});
},
/**
* 触摸移动 - 十二时辰滚动专用
*/
handleScrollTouchMove(e) {
// 如果是程序控制的滚动,允许通过
if (this.data.isProgramScroll) {
console.log('✅ 程序滚动,允许通过');
return true;
}
const moveX = Math.abs(e.touches[0].pageX - this.data.scrollTouchStartX);
const moveTime = Date.now() - this.data.scrollTouchStartTime;
console.log('📏 移动距离:', moveX, 'px, 移动时间:', moveTime, 'ms');
// 判断是否为滑动行为
if (moveX > 15 && moveTime < 300) {
console.log('🚫 阻止用户快速滑动');
return false;
}
return true;
},
/**
* 滚动监听
*/
onNavScroll(e) {
// 如果是程序控制的滚动,不处理
if (this.data.isProgramScroll) {
return;
}
console.log('📜 用户手动滚动:', e.detail.scrollLeft);
if (this.scrollTimer) clearTimeout(this.scrollTimer);
this.scrollTimer = setTimeout(() => {
console.log('⏸ 滚动结束');
}, 150);
},
/**
* 点击顶部时间段
*/
handleTwelveTabClick(e) {
const index = e.currentTarget.dataset.index;
console.log('🖱 点击时间段,索引:', index, '当前索引:', this.data.twelveActiveIndex);
if (this.data.twelveActiveIndex === index) {
console.log('⚠️ 点击的是当前项,不执行滚动');
return;
}
this.setData({
twelveActiveIndex: index
});
this.scrollToCenter(index);
},
/**
* 滚动到指定索引的中心位置
*/
scrollToCenter(index) {
console.log('==========================================');
console.log('🎯 开始滚动到索引:', index);
console.log('==========================================');
// 标记为程序滚动
this.setData({ isProgramScroll: true });
console.log('🔒 已设置 isProgramScroll = true');
const query = wx.createSelectorQuery();
query.select('.nav-scroll-wrapper').boundingClientRect();
query.select('#nav-item-' + index).boundingClientRect();
query.exec((res) => {
console.log('🔍 query结果:', res);
if (!res[0]) {
console.log('❌ scroll-view 未找到!');
this.setData({ isProgramScroll: false });
return;
}
if (!res[1]) {
console.log('❌ 目标item (#nav-item-' + index + ') 未找到!');
this.setData({ isProgramScroll: false });
return;
}
const scrollView = res[0];
const targetItem = res[1];
console.log('📊 scrollView信息:', {
left: scrollView.left,
width: scrollView.width
});
console.log('📊 targetItem信息:', {
left: targetItem.left,
width: targetItem.width
});
console.log('📊 当前navScrollLeft:', this.data.navScrollLeft);
// 计算目标位置
const scrollLeft = targetItem.left - scrollView.left - (scrollView.width / 2) + (targetItem.width / 2) + this.data.navScrollLeft;
console.log('💡 计算公式:');
console.log(` ${targetItem.left} - ${scrollView.left} - (${scrollView.width}/2) + (${targetItem.width}/2) + ${this.data.navScrollLeft}`);
console.log('🎯 计算的scrollLeft:', scrollLeft);
console.log('🎯 实际设置的scrollLeft:', Math.max(0, scrollLeft));
this.setData({
navScrollLeft: Math.max(0, scrollLeft)
});
console.log('✅ 已更新 navScrollLeft, 等待滚动动画...');
// 等待滚动动画完成后解除锁定
setTimeout(() => {
this.setData({ isProgramScroll: false });
console.log('🔓 滚动完成,已解除锁定');
console.log('==========================================');
}, 400);
});
},
/**
* 底部内容滑动联动
*/
onTwelveSwipeChange(e) {
console.log('📱 底部swiper切换:', e.detail);
if (e.detail.source === 'touch' || e.detail.source === 'autoplay') {
const index = e.detail.current;
console.log('➡️ 切换到索引:', index);
this.setData({
twelveActiveIndex: index
});
this.scrollToCenter(index);
}
},
/**
* 点击"查看更多"按钮
*/
handleShowMore(e) {
const index = e.currentTarget.dataset.index;
const key = `twelvePeriodList[${index}].num`;
console.log('📋 显示更多,索引:', index);
this.setData({
[key]: 100
});
},
// 1. 点击 Tab 切换 // 1. 点击 Tab 切换
handleTabClick(e) { handleTabClick(e) {
const index = e.currentTarget.dataset.index; const index = e.currentTarget.dataset.index;
@ -639,34 +656,32 @@ Page({
}); });
}, },
// 4. 触摸开始 // 卡片堆叠 - 触摸开始
handleTouchStart(e) { handleTouchStart(e) {
this.setData({ this.setData({
touchStartX: e.touches[0].clientX cardTouchStartX: e.touches[0].clientX // 使用 cardTouchStartX
}); });
}, },
// 5. 触摸结束 // 卡片堆叠 - 触摸结束
handleTouchEnd(e) { handleTouchEnd(e) {
const touchEndX = e.changedTouches[0].clientX; const touchEndX = e.changedTouches[0].clientX;
const diff = this.data.touchStartX - touchEndX; const diff = this.data.cardTouchStartX - touchEndX; // 使用 cardTouchStartX
const len = this.data.recommendType.length; const len = this.data.recommendType.length;
let current = this.data.activeIndex; let current = this.data.activeIndex;
if (diff > 50) { if (diff > 50) {
// 左滑 -> 下一张 current = (current + 1) % len;
current = (current + 1) % len; } else if (diff < -50) {
} else if (diff < -50) { current = (current - 1 + len) % len;
// 右滑 -> 上一张 }
current = (current - 1 + len) % len;
} if (current !== this.data.activeIndex) {
this.setData({
if (current !== this.data.activeIndex) { activeIndex: current
this.setData({ });
activeIndex: current this.updateCardStyles();
}); }
this.updateCardStyles(); // 更新样式
}
}, },
setAiStr: function() { setAiStr: function() {
@ -1132,6 +1147,7 @@ Page({
mainNavClick: function(e) { mainNavClick: function(e) {
let item = e.currentTarget.dataset.item let item = e.currentTarget.dataset.item
console.log(item) console.log(item)
if(item.menu_name == 'AI避高峰') this.gotoUrls()
if (item.pagePoint) { if (item.pagePoint) {
this.newPagePoint(item.pagePoint) this.newPagePoint(item.pagePoint)
} }

183
pages/index/index.wxml

@ -11,7 +11,7 @@
<image lazy-load style="margin: 0 30rpx;" bindtap="gotoPaths" data-path="/pages/user/service/index" <image lazy-load style="margin: 0 30rpx;" bindtap="gotoPaths" data-path="/pages/user/service/index"
src="https://static.ticket.sz-trip.com/jundaosuzhou/images/indexWinter2025/kefu.png" mode="aspectFill"></image> src="https://static.ticket.sz-trip.com/jundaosuzhou/images/indexWinter2025/kefu.png" mode="aspectFill"></image>
</view> </view>
<navigator url="/pages/search/index" catchtap="pagePoint" data-event="search_click" class="search-box textOver"> <navigator url="/pages/pbService/web/index?weburl=https://m.cloud.sz-trip.com/Search" catchtap="pagePoint" data-event="search_click" class="search-box textOver">
<image lazy-load src="https://static.ticket.sz-trip.com/uploads/20251127/c274a7019d42aaf969a6a51422951bb9.png" class="iconfont" style="width: 26rpx;height: 26rpx;"></image> <image lazy-load src="https://static.ticket.sz-trip.com/uploads/20251127/c274a7019d42aaf969a6a51422951bb9.png" class="iconfont" style="width: 26rpx;height: 26rpx;"></image>
<view class="textOver" style="color:#000000">搜索您想要的</view> <view class="textOver" style="color:#000000">搜索您想要的</view>
</navigator> </navigator>
@ -41,41 +41,15 @@
<view class="main-content" > <view class="main-content" >
<!-- 金刚区 --> <!-- 金刚区 -->
<view style="padding: 0 20rpx;" wx:if="{{mainTypeList.length>0}}"> <view style="padding: 0 20rpx;" wx:if="{{mainTypeList.length>0}}">
<!-- <swiper class="top-icons no-scrollbar" autoplay="{{true}}" style="height:180rpx;padding-top: 43rpx;"
bindchange="changeBannerIndex" data-keyname="mainNavIndex"
display-multiple-items="5" circular
current="0">
<block wx:for="{{mainTypeList}}" wx:key="index">
<swiper-item bindtap="mainNavClick" class="top-icon-item {{(mainNavIndex+2)==index || (index==0&&mainNavIndex==mainTypeList.length-2)||(index==1&&mainNavIndex==mainTypeList.length-1)?'active':''}}" data-item="{{item}}">
<image lazy-load src="{{item.icon}}" mode="aspectFill" class="{{(mainNavIndex+2)==index?'active':''}}"></image>
<view class="top-icon-text">{{item.menu_name}}</view>
</swiper-item>
</block>
</swiper> -->
<view class="top-icons no-scrollbar"> <view class="top-icons no-scrollbar">
<view bindtap="mainNavClick" class="top-icon-item" data-item="{{item}}" wx:for="{{mainTypeList}}" wx:key="index"> <view bindtap="mainNavClick" class="top-icon-item" data-item="{{item}}" wx:for="{{mainTypeList}}" wx:key="index">
<image lazy-load src="{{item.icon}}" mode="aspectFill" class="{{(mainNavIndex+2)==index?'active':''}}"></image> <image lazy-load src="{{item.icon}}" mode="aspectFill" class="{{(mainNavIndex+2)==index?'active':''}}"></image>
<view class="top-icon-text">{{item.menu_name}}</view> <view class="top-icon-text">{{item.menu_name}}</view>
</view> </view>
</view> </view>
<!-- <view class="scroll-line" >
<view class="scroll-line-bg" wx:if="{{(mainNavIndex+2) < (mainTypeList.length/2)}}" style="width:17rpx;"></view>
<view class="scroll-line-bg" wx:else style="width:17rpx;margin-left: 17rpx;"></view>
</view> -->
</view> </view>
<view class="small-box"> <view class="small-box">
<!-- <view class="small-swiper-box" wx:if="{{ztbanner.length>0 && func_data.tour_guide}}">
<image class="small-bg" style="" src="https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/swiperBg.png" mode="aspectFill"></image>
<swiper class="small-swiper" autoplay="{{true}}" interval="{{3000}}" duration="{{300}}"
bindchange="changeBannerIndex" data-keyname="ztBannerIndex" circular>
<block wx:for="{{ztbanner}}" wx:key="index">
<swiper-item bindtap="bannerClick" data-item="{{item}}">
<image lazy-load style="" src="{{item.head_img}}" mode="aspectFill"></image>
</swiper-item>
</block>
</swiper>
</view> -->
<view class="small-swiper-box" wx:if="{{xiaobanner.length>0 && func_data.banner_mini}}" style="border: 3rpx solid #E96B11;"> <view class="small-swiper-box" wx:if="{{xiaobanner.length>0 && func_data.banner_mini}}" style="border: 3rpx solid #E96B11;">
<!-- <image class="small-bg" style="" src="https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/swiperBg.png" mode="aspectFill"></image> --> <!-- <image class="small-bg" style="" src="https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/swiperBg.png" mode="aspectFill"></image> -->
<swiper class="small-swiper" autoplay="{{true}}" interval="{{3000}}" duration="{{300}}" <swiper class="small-swiper" autoplay="{{true}}" interval="{{3000}}" duration="{{300}}"
@ -109,22 +83,7 @@
<!-- 限时特惠--新版--> <!-- 限时特惠--新版-->
<view class="sale-road-boxes" style="margin-top:0;" wx:if="{{func_data.hot_deals}}"> <view class="sale-road-boxes" style="margin-top:0;" wx:if="{{func_data.hot_deals}}">
<image lazy-load class="common-header-img" mode="widthFix" src="{{indexSeason.hotBac}}"></image> <image lazy-load class="common-header-img" mode="widthFix" src="{{indexSeason.hotBac}}"></image>
<!-- <image lazy-load class="common-header-img" mode="widthFix" src="https://static.ticket.sz-trip.com/uploads/20250929/49cb17e72c8841c9a72f2d109901de83.png"></image> -->
</view> </view>
<!-- 上方标题部分 -->
<!-- <view class="xsth-title">
<view class="xsth-left" style="display: flex;">
<image lazy-load wx:if="{{xpthIndex==0}}" mode="widthFix" class="common-header-img" src="{{indexSeason.hotBac}}"></image>
<image lazy-load wx:else="" bindtap="changeXpthIndex" data-value="{{0}}" mode="widthFix" class="common-header-img" src="{{indexSeason.hotBacImg}}"></image>
<view style="font-size: 0;padding-left: 34rpx;" wx:if="{{indexSeason.xpthBac && indexSeason.xpthBacImg}}">
<image lazy-load wx:if="{{xpthIndex==0}}" bindtap="changeXpthIndex" data-value="{{1}}" mode="widthFix" class="common-header-img" src="{{indexSeason.xpthBacImg}}"></image>
<image lazy-load wx:else mode="widthFix" class="common-header-img" src="{{indexSeason.xpthBac}}"></image>
</view>
</view>
</view> -->
<view style="margin-top: -38rpx;" wx:if="{{func_data.hot_deals}}"> <view style="margin-top: -38rpx;" wx:if="{{func_data.hot_deals}}">
<!-- 热门 --> <!-- 热门 -->
<view style="width: 100%;" wx:if="{{false}}"> <view style="width: 100%;" wx:if="{{false}}">
@ -340,7 +299,7 @@
<view <view
class="stack-swiper" class="stack-swiper"
bindtouchstart="handleTouchStart" bindtouchstart="handleTouchStart"
bindtouchend="handleTouchEnd" bindtouchend="handleTouchEnd"
> >
<!-- <!--
直接从 cardStyles 数组中取样式 直接从 cardStyles 数组中取样式
@ -398,6 +357,144 @@
</view> </view>
</view> </view>
</view> </view>
<!-- 十二时辰 -->
<view class="sale-road-boxes" style="margin-top:90rpx">
<image lazy-load mode="widthFix" class="common-header-img" src="https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/shier.png"></image>
</view>
<view class="twelve-container">
<view class="arc-layout">
<!-- 背景线条 -->
<image
src="https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/line12.png"
class="bg-line-img"
mode="widthFix"
/>
<!-- 顶部时间轴 - 横向轮播 -->
<scroll-view
id="nav-scroll"
class="nav-scroll-wrapper"
scroll-x="{{true}}"
scroll-with-animation="{{true}}"
scroll-left="{{navScrollLeft}}"
bindscroll="onNavScroll"
bindtouchstart="handleScrollTouchStart"
catchtouchmove="stopTouchMove"
>
<view class="nav-track" catchtouchmove="stopTouchMove">
<view
wx:for="{{twelvePeriodList}}"
wx:key="index"
id="nav-item-{{index}}"
class="item-box {{twelveActiveIndex === index ? 'active' : ''}} item-pos-{{index - twelveActiveIndex}}"
bindtap="handleTwelveTabClick"
data-index="{{index}}"
>
<!-- 顶部文字 -->
<view class="top-text">{{ item.name }}</view>
<!-- 图标 -->
<view class="icon-wrapper">
<view class="icon-bg-circle">
<image
src="{{index === twelveActiveIndex ? item.imgSelected : item.imgNormal}}"
class="real-icon"
mode="aspectFit"
/>
</view>
</view>
<!-- 描述文字(竖排) -->
<view class="desc-text">{{ item.desc }}</view>
</view>
</view>
</scroll-view>
</view>
<!-- 底部内容区 -->
<view class="content-wrapper">
<swiper
class="my-swipe"
current="{{twelveActiveIndex}}"
bindchange="onTwelveSwipeChange"
circular="{{false}}"
duration="300"
>
<block wx:for="{{twelvePeriodList}}" wx:key="index">
<swiper-item>
<scroll-view scroll-y class="swiper-scroll">
<view class="slide-card-container">
<!-- 美食样式 (type='food') -->
<block wx:if="{{item.type == 'food'}}">
<view
class="food-card"
wx:for="{{item.list}}"
wx:for-item="subItem"
wx:for-index="subIndex"
wx:key="id"
wx:if="{{subIndex < item.num}}"
catchtap="gotoDetail"
data-item="{{subItem}}"
data-index="1"
>
<image src="{{subItem.headimg}}" class="headimg" mode="aspectFill"></image>
<view class="content">
<view class="top">
<view class="title text-overflow">{{subItem.title}}</view>
<view class="address text-overflow">{{subItem.address}}</view>
</view>
<view class="bottom text-overflow" wx:if="{{subItem.hot_products && subItem.hot_products.length > 0}}">
<view class="tag flex-center">热</view>
<view class="price">¥{{subItem.hot_products[0].price / 100}}</view>
<view class="text-overflow">{{subItem.hot_products[0].title}}</view>
</view>
</view>
</view>
</block>
<!-- 其他样式 -->
<block wx:else>
<view
class="slide-item"
wx:for="{{item.list}}"
wx:for-item="subItem"
wx:for-index="subIndex"
wx:key="id"
wx:if="{{subIndex < item.num}}"
style="background-image: url({{subItem.headimg}})"
catchtap="gotoDetail"
data-item="{{subItem}}"
>
<view class="content">
<view class="text-overflowRowss">{{subItem.title}}</view>
</view>
<image
src="https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/itemBg.png"
class="imgBg"
></image>
</view>
</block>
</view>
<!-- 查看更多按钮 -->
<image
src="https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/btnImg.png"
class="more-btn-img"
mode="widthFix"
wx:if="{{item.num == 6 && item.list && item.list.length > 6}}"
catchtap="handleShowMore"
data-index="{{index}}"
></image>
<view style="height: 40rpx;"></view>
</scroll-view>
</swiper-item>
</block>
</swiper>
</view>
</view>
</view> </view>
</view> </view>

341
pages/index/index.wxss

@ -7,9 +7,9 @@
overflow-y: auto; overflow-y: auto;
background-size: 100% 100%; background-size: 100% 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
padding-bottom: 100rpx; /* padding-bottom: 100rpx; */
background-color: rgba(80, 84, 136, 1); background-color: rgba(80, 84, 136, 1);
background-image: url("https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/bg.jpg"); background-image: url("https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/bgs.jpg");
} }
.top-img { .top-img {
position: absolute; position: absolute;
@ -1413,3 +1413,340 @@
background-size: 100% 100%; background-size: 100% 100%;
border-radius: 25rpx; /* 按钮圆角 */ border-radius: 25rpx; /* 按钮圆角 */
} }
/* ================= 十二时辰样式 ================= */
.twelve-container {
width: 750rpx;
left: -25rpx;
position: relative;
overflow: hidden;
margin-top: 30rpx;
}
/* === 上部:时间轴 === */
.arc-layout {
width: 100%;
position: relative;
height: 320rpx; /* 增加高度以容纳波浪效果 */
}
.bg-line-img {
position: absolute;
width: 100%;
height: 74rpx;
top: 78rpx; /* 调整线条位置 */
left: 0;
z-index: 0;
pointer-events: none;
}
/* 横向滚动容器 */
.nav-scroll-wrapper {
width: 100%;
height: 100%;
white-space: nowrap;
position: relative;
z-index: 1;
/* pointer-events: none; */
}
/* 滚动轨道 */
.nav-track {
display: inline-flex;
align-items: flex-start;
/* 左右留白,让第一个和最后一个可以滚到中间 */
padding: 0 302rpx; /* (750 - 146) / 2 = 302 */
box-sizing: border-box;
/* pointer-events: auto; */
}
/* 单个时间段容器 */
.item-box {
display: inline-flex;
flex-direction: column;
align-items: center;
width: 146rpx;
flex-shrink: 0; /* 防止被压缩 */
position: relative;
z-index: 2;
transition: all 0.3s ease-out;
}
/* 顶部文字 */
.item-box .top-text {
height: 40rpx;
line-height: 40rpx;
font-weight: 500;
font-size: 24rpx;
color: rgba(251, 225, 199, .6);
margin-bottom: 6rpx;
text-align: center;
transition: all 0.4s ease-out;
white-space: nowrap;
}
.item-box.active .top-text {
font-weight: bold;
font-size: 28rpx;
color: #FBE1C7;
}
/* 图标容器 */
.item-box .icon-wrapper {
width: 74rpx;
height: 66rpx;
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 6rpx;
}
.item-box .icon-bg-circle {
width: 74rpx;
height: 66rpx;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
position: relative;
z-index: 3;
}
.item-box .real-icon {
width: 100%;
height: 100%;
display: block;
}
/* 描述文字(竖排) */
.item-box .desc-text {
width: 46rpx;
padding: 10rpx 6rpx;
box-sizing: border-box;
font-weight: 500;
font-size: 24rpx;
color: rgba(251, 225, 199, .6);
/* 竖排文字 */
writing-mode: vertical-rl;
letter-spacing: 5rpx;
transition: all 0.6s ease;
text-align: center;
min-height: 140rpx;
display: flex;
align-items: center;
justify-content: center;
background-color: transparent;
filter: grayscale(100%);
opacity: 0.5;
}
.item-box.active .desc-text {
background-image: url('https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/12bg.png');
background-size: 100% 100%;
font-weight: bold;
color: #F3531C;
filter: grayscale(0%);
opacity: 1;
}
/* === 下部:内容区(保持不变) === */
.content-wrapper {
width: 100%;
}
.my-swipe {
width: 100%;
min-height: 1500rpx;
}
.swiper-scroll {
height: 100%;
}
.slide-card-container {
width: 100%;
padding: 0 26rpx;
box-sizing: border-box;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
/* === 美食卡片样式 === */
.food-card {
width: 696rpx;
height: 213rpx;
margin: 0 auto 20rpx;
background-image: url('https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/foodBg.png');
background-size: 100% 100%;
padding: 26rpx;
display: flex;
background-color: #FBEBD1;
border-radius: 26rpx;
box-sizing: border-box;
}
.food-card .headimg {
width: 160rpx;
height: 160rpx;
border-radius: 6rpx;
margin-right: 20rpx;
flex-shrink: 0;
}
.food-card .content {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
padding: 6rpx 0;
}
.food-card .top {
border-bottom: 1rpx solid #CCCCCC;
padding-bottom: 10rpx;
}
.food-card .title {
font-weight: bold;
font-size: 28rpx;
color: #000000;
margin-bottom: 10rpx;
}
.food-card .address {
font-weight: 500;
font-size: 24rpx;
color: #999999;
}
.food-card .bottom {
font-weight: 500;
font-size: 24rpx;
color: #000000;
display: flex;
align-items: center;
padding-top: 13rpx;
}
.food-card .tag {
width: 28rpx;
height: 28rpx;
background: linear-gradient(139deg, #EF3E17, #F76B22);
border-radius: 6rpx;
font-weight: 500;
font-size: 22rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
margin-right: 10rpx;
flex-shrink: 0;
}
.food-card .price {
font-weight: bold;
font-size: 24rpx;
color: #E02D24;
margin-right: 10rpx;
flex-shrink: 0;
}
/* === 普通卡片样式 === */
.slide-item {
margin-bottom: 20rpx;
width: 336rpx;
height: 400rpx;
background-size: cover;
background-position: center;
position: relative;
border-radius: 26rpx;
overflow: hidden;
}
.slide-item .content {
position: absolute;
width: 100%;
height: 133rpx;
background: linear-gradient(to top, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
padding: 0 26rpx 26rpx 26rpx;
box-sizing: border-box;
display: flex;
align-items: flex-end;
left: 0;
bottom: 0;
font-weight: 500;
font-size: 28rpx;
color: #FFFFFF;
z-index: 2;
}
.slide-item .imgBg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 3;
}
/* 查看更多按钮 */
.more-btn-img {
width: 274rpx;
display: block;
margin: 26rpx auto;
}
/* === 工具类 === */
.flex-center {
display: flex;
justify-content: center;
align-items: center;
}
.text-overflow {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.text-overflowRowss {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
text-overflow: ellipsis;
}
/* 激活项 */
.item-box.item-pos-0 {
margin-top: 0rpx;
}
/* 右边相邻 */
.item-box.item-pos-1,
.item-box.item-pos--1 { /* 左边相邻 */
margin-top: 5rpx;
}
/* 右边第二个 */
.item-box.item-pos-2,
.item-box.item-pos--2 { /* 左边第二个 */
margin-top: 30rpx;
}
/* 左右第三层及更远(±3、±4、±5...) */
.item-box.item-pos-3,
.item-box.item-pos--3,
.item-box.item-pos-4,
.item-box.item-pos--4,
.item-box.item-pos-5,
.item-box.item-pos--5 {
margin-top: 40rpx !important;
}

4
pages/list/activitynew/index.wxml

@ -148,7 +148,7 @@
</view> </view>
</view> </view>
<view wx:if="{{list.length==0}}" class="common-empty" style="z-index:-1;top:430rpx;position: inherit;"> <view wx:if="{{list.length==0}}" class="common-empty" style="z-index:-1;top:430rpx;position: inherit;">
<image lazy-load mode="widthFix" src="https://static.ticket.sz-trip.com/xcxImages/other/nodata.png"></image> <image lazy-load mode="widthFix" src="https://static.ticket.sz-trip.com/jundaosuzhou/images/index2026/noCal.png" style="width: 350rpx;"></image>
<view>暂无内容</view> <view>暂时还没有活动哦~ 去看看其他类目吧~</view>
</view> </view>
</view> </view>

2
pages/list/activitynew/index.wxss

@ -139,7 +139,7 @@ background: rgba(11, 137, 142, .1);
width: 697rpx; width: 697rpx;
/* padding: 0 24rpx; */ /* padding: 0 24rpx; */
/* background: #0B898E; */ /* background: #0B898E; */
min-height:1300rpx; min-height:700rpx;
margin: 0 auto; margin: 0 auto;
} }
.acitivity-search-box { .acitivity-search-box {

7
pages/user/order/sceneOrderInfo/index.wxml

@ -15,10 +15,9 @@
<image lazy-load src="https://static.ticket.sz-trip.com/jundaosuzhou/images/movieKefu.png" mode="widthFix"></image> <image lazy-load src="https://static.ticket.sz-trip.com/jundaosuzhou/images/movieKefu.png" mode="widthFix"></image>
</navigator> </navigator>
</view> </view>
<view class="order-text" wx-if="{{info.order_type == 'reservation' || info.order_type == 'reserve'}}"> <view class="order-text" wx-if="{{(info.order_type == 'reservation' || info.order_type == 'reserve') && info.reservation_date}}">
<view wx-if="{{(info.order_type == 'reservation' || info.order_type == 'reserve') && info.reservation_date}}"> <view>
我们将于{{info.reservation_date}} 00:00为您预约抢票,最晚在{{info.reservation_date}} 我们将于{{info.reservation_date}} 00:00为您预约抢票,最晚{{info.reservation_date}} 09:30前告知抢票结果;若抢票失败将自动退款至原账户,请您耐心等待。
09:30前告知抢票结果,请您耐心等待
</view> </view>
</view> </view>
<!-- <view class="code-box box" wx:if="{{info && codeImgs.length>0}}"> <!-- <view class="code-box box" wx:if="{{info && codeImgs.length>0}}">

16
pages/user/order/sceneOrderInfo/index.wxss

@ -11,7 +11,7 @@ page {
background: #f6f6f6; background: #f6f6f6;
} }
.state-text { .state-text {
margin: 20rpx 30rpx; margin: 20rpx 30rpx 10rpx;
line-height: 100rpx; line-height: 100rpx;
color: #fff; color: #fff;
font-size: 48rpx; font-size: 48rpx;
@ -595,8 +595,14 @@ page {
} }
.order-text { .order-text {
font-weight: 500; padding: 20rpx 32rpx;
font-size: 25rpx; width: 697rpx;
color: #FFFFFF; height: 133rpx;
padding: 0 32rpx; background: #FFFFFF;
border-radius: 20rpx;
box-sizing: border-box;
margin: 0 auto 21rpx;
font-weight: bold;
font-size: 24rpx;
color: #D62828;
} }

11
project.private.config.json

@ -7,12 +7,19 @@
"miniprogram": { "miniprogram": {
"list": [ "list": [
{ {
"name": "pages/list/activitynew/index", "name": "pages/activity/graduate/index",
"pathName": "pages/list/activitynew/index", "pathName": "pages/activity/graduate/index",
"query": "", "query": "",
"scene": null, "scene": null,
"launchMode": "default" "launchMode": "default"
}, },
{
"name": "pages/list/activitynew/index",
"pathName": "pages/list/activitynew/index",
"query": "",
"launchMode": "default",
"scene": null
},
{ {
"name": "pages/info/postProductInfo/index", "name": "pages/info/postProductInfo/index",
"pathName": "pages/info/postProductInfo/index", "pathName": "pages/info/postProductInfo/index",

Loading…
Cancel
Save