Myth 5 years ago
parent
commit
c912c8768e
  1. 3
      app.json
  2. 169
      pages/activity/tenscenic/index.js
  3. 5
      pages/activity/tenscenic/index.json
  4. 59
      pages/activity/tenscenic/index.wxml
  5. 219
      pages/activity/tenscenic/index.wxss
  6. 15
      pages/culture/index.js
  7. 19
      pages/culture/index.wxml
  8. 30
      pages/culture/info/index.js
  9. 8
      pages/culture/info/index.wxml
  10. 9
      pages/culture/info/index.wxss
  11. 105
      pages/index/index.js
  12. 27
      pages/index/index.wxml
  13. 2
      pages/index/index.wxss
  14. 134
      pages/info/guideInfo/index.js
  15. 5
      pages/info/guideInfo/index.json
  16. 15
      pages/info/guideInfo/index.wxml
  17. 48
      pages/info/guideInfo/index.wxss
  18. 2
      pages/list/strategy/index.js
  19. 26
      pages/list/strategy/index.wxml
  20. 19
      pages/list/strategy/index.wxss
  21. 2
      pages/list/techan/index.wxml
  22. 33
      pages/login/index.js
  23. 3
      pages/login/index.wxml
  24. 6
      pages/order/components/contact/index.js
  25. 11
      pages/order/pay/index.js
  26. 30
      pages/order/scene/index.js
  27. 21
      pages/order/scene/index.wxml
  28. 82
      pages/pbService/activity/index.js
  29. 5
      pages/pbService/activity/index.json
  30. 13
      pages/pbService/activity/index.wxml
  31. 43
      pages/pbService/activity/index.wxss
  32. 7
      pages/pbService/index.wxml
  33. 16
      project.private.config.json
  34. 6
      utils/https.js
  35. 4
      utils/util.js

3
app.json

@ -34,6 +34,7 @@
"pages/info/activityInfo/index", "pages/info/activityInfo/index",
"pages/info/showInfo/index", "pages/info/showInfo/index",
"pages/info/strategyInfo/index", "pages/info/strategyInfo/index",
"pages/info/guideInfo/index",
"pages/user/user", "pages/user/user",
"pages/user/retail/index", "pages/user/retail/index",
"pages/user/retail/apply/index", "pages/user/retail/apply/index",
@ -94,6 +95,7 @@
"pages/list/daysu/index", "pages/list/daysu/index",
"pages/list/daysu/detail/index", "pages/list/daysu/detail/index",
"pages/pbService/index", "pages/pbService/index",
"pages/pbService/activity/index",
"pages/pbService/museum/index", "pages/pbService/museum/index",
"pages/pbService/museum/info/index", "pages/pbService/museum/info/index",
"pages/pbService/PRpark/index", "pages/pbService/PRpark/index",
@ -132,6 +134,7 @@
"pages/activity/artfestival/index", "pages/activity/artfestival/index",
"pages/activity/redlist/index", "pages/activity/redlist/index",
"pages/activity/subway/index", "pages/activity/subway/index",
"pages/activity/tenscenic/index",
"pages/kj/index", "pages/kj/index",
"pages/kj/his/index", "pages/kj/his/index",
"pages/kj/info/index", "pages/kj/info/index",

169
pages/activity/tenscenic/index.js

@ -0,0 +1,169 @@
// pages/activity/tenscenic/index.js
import commonApi from "../../../utils/https/common"
import util from "../../../utils/util"
Page({
/**
* 页面的初始数据
*/
data: {
areas:[],
tag1:0,
tag2:0,
areaIndex:0,
list:[],
total:1,
playFlag:false,
scrollTop:0,
realScrollTop:0,
navList: [
{name: '全部', tag_id: [81,89,97,105,113,121,129,137,145,153]},
{name: '必吃', tag_id: [82,90,98,106,114,122,130,138,146,154]},
{name: '必住', tag_id: [83,91,99,107,115,123,131,139,147,155]},
{name: '必游', tag_id: [84,92,100,108,116,124,132,140,148,156]},
{name: '必购', tag_id: [85,93,101,109,117,125,133,141,149,157]},
{name: '必娱', tag_id: [86,94,102,110,118,126,134,142,150,158]},
{name: '必行', tag_id: [87,95,103,111,119,127,135,143,151,159]},
{name: '必玩', tag_id: [88,96,104,112,120,128,136,144,152,160]},
]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
commonApi._post("act/get_suzhou_areas",{}).then(res=>{
res.data.unshift({
area_title:"全部",
area_id:""
})
this.setData({
areas:res.data
})
this.getList()
})
},
changeArea:function(e){
this.setData({
areaIndex:e.detail.value,
list:[],
total:1
})
this.getList()
},
changeTag2:function(e){
let tag = e.currentTarget.dataset.tag;
this.setData({
tag2:tag,
list:[],
total:1,
realScrollTop:this.data.scrollTop
})
this.getList(1)
},
changeTag:function(e){
let tag = e.currentTarget.dataset.tag;
this.setData({
tag1:tag,
list:[],
total:1,
realScrollTop:this.data.scrollTop
})
this.getList(1)
},
getList:function(type){
if(this.data.list.length>=this.data.total) return;
commonApi._post("scene/get_scene_by_tag",{
area_id:this.data.areas[this.data.areaIndex].area_id,
tag_id:this.data.navList[this.data.tag2].tag_id[this.data.tag1],
offset:this.data.list.length,
limit:10,
del_html:true
}).then(res=>{
this.setData({
total:res.data.count,
list:this.data.list.concat(res.data.list)
})
if(type==1){
wx.pageScrollTo({
duration: 0,
scrollTop:this.data.realScrollTop
})
}
})
},
goTop:function(){
wx.pageScrollTo({
duration: 200,
scrollTop:0
})
},
play:function(){
this.setData({
playFlag:true
})
},
playEnd:function(){
this.setData({
playFlag:false
})
},
gotoDetail:function(e){
let item = e.currentTarget.dataset.item
util.gotoDetail(item)
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
onPageScroll:function(e){
console.log()
this.setData({
scrollTop:e.scrollTop
})
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
this.getList()
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

5
pages/activity/tenscenic/index.json

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

59
pages/activity/tenscenic/index.wxml

@ -0,0 +1,59 @@
<!--pages/activity/tenscenic/index.wxml-->
<title title="打卡苏州“运河十景”"></title>
<picker mode="selector" value="{{areaIndex}}" range="{{areas}}" range-key="area_title" bindchange="changeArea">
<view class="picker">
<view class="areatext">{{areas[areaIndex].area_title}}</view>
<view class="iconfont icon-xia"></view>
</view>
</picker>
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/top.png" mode="widthFix" class="topimg"></image>
<view class="video-box" wx:if="{{playFlag==false}}" bindtap="play">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/play.png" mode="widthFix"></image>
</view>
<view class="video-box1" wx:else>
<video autoplay="{{true}}" bindended="playEnd" src="https://static.ticket.sz-trip.com/uploads/20210803/9acc76d92267c923044c8a335301e13e.mp4"></video>
</view>
<view class="bridge-box">
<view class="tags absoluetTags">
<view bindtap="changeTag" data-tag="0" class="tag{{tag1==0?' active':''}}">吴门望亭</view>
<view bindtap="changeTag" data-tag="1" class="tag{{tag1==1?' active':''}}">虎丘塔</view>
<view bindtap="changeTag" data-tag="2" class="tag{{tag1==2?' active':''}}">平江古巷</view>
<view bindtap="changeTag" data-tag="3" class="tag{{tag1==3?' active':''}}">横塘驿站</view>
<view bindtap="changeTag" data-tag="4" class="tag{{tag1==4?' active':''}}">宝带桥</view>
</view>
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/bridge.png" mode="widthFix"></image>
<view class="tags" style="position:static;margin-top:20rpx">
<view bindtap="changeTag" data-tag="5" class="tag{{tag1==5?' active':''}}">浒墅关</view>
<view bindtap="changeTag" data-tag="6" class="tag{{tag1==6?' active':''}}">枫桥夜泊</view>
<view bindtap="changeTag" data-tag="7" class="tag{{tag1==7?' active':''}}">水陆盘门</view>
<view bindtap="changeTag" data-tag="8" class="tag{{tag1==8?' active':''}}">石湖五堤</view>
<view bindtap="changeTag" data-tag="9" class="tag{{tag1==9?' active':''}}" style="height:auto;line-height:40rpx">
<view>平望</view>
<view>·四河汇集</view>
</view>
</view>
</view>
<view class="new-tags">
<view wx:for="{{navList}}" bindtap="changeTag2" data-tag="{{index}}" class="new-tag{{tag2==index?' active':''}}">{{item.name}}</view>
<!-- <view bindtap="changeTag2" data-tag="67" class="new-tag{{tag2==67?' active':''}}">必吃</view>
<view bindtap="changeTag2" data-tag="68" class="new-tag{{tag2==68?' active':''}}">必住</view>
<view bindtap="changeTag2" data-tag="69" class="new-tag{{tag2==69?' active':''}}">必游</view>
<view bindtap="changeTag2" data-tag="70" class="new-tag{{tag2==70?' active':''}}">必购</view>
<view bindtap="changeTag2" data-tag="71" class="new-tag{{tag2==71?' active':''}}">必娱</view>
<view bindtap="changeTag2" data-tag="72" class="new-tag{{tag2==72?' active':''}}">必行</view>
<view bindtap="changeTag2" data-tag="73" class="new-tag{{tag2==73?' active':''}}">必玩</view> -->
</view>
<view bindtap="gotoDetail" data-item="{{item}}" class="item" wx:for="{{list}}">
<image src="{{item.headimg}}" mode="aspectFill"></image>
<view class="info">
<view class="textOver title">{{item.title}}</view>
<view class="textOver subtitle">上榜理由:{{item.brief_intro}}</view>
<view class="btn">查看详情</view>
</view>
</view>
<view wx:if="{{list.length==total}}" class="nomore">没有更多了</view>
<view style="height:50rpx"></view>
<view class="fixed-top" bindtap="goTop">
<image src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/arrow.png" mode="widthFix"></image>
<view>顶部</view>
</view>

219
pages/activity/tenscenic/index.wxss

@ -0,0 +1,219 @@
/* pages/activity/tenscenic/index.wxss */
page {
background: #61C6D1;
}
.picker {
position: absolute;
right: 30rpx;
margin-top: 30rpx;
padding: 0 20rpx;
line-height: 50rpx;
text-align: center;
height: 50rpx;
border: 1rpx solid #333333;
border-radius: 26rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 27rpx;
}
.picker .iconfont {
font-size: 22rpx;
margin-left: 5rpx;
}
.topimg {
display: block;
width: 100%;
}
.video-box {
display: flex;
align-items: center;
justify-content: center;
width: 677rpx;
height: 375rpx;
margin: 0 auto;
background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/video.png);
background-size: 100% 100%;
margin-top: -235rpx;
position: relative;
z-index: 1;
}
.video-box1 {
display: flex;
align-items: center;
justify-content: center;
width: 677rpx;
height: 375rpx;
margin: 0 auto;
margin-top: -235rpx;
position: relative;
z-index: 1;
}
.video-box1 video {
display: block;
width: 677rpx;
height: 382rpx;
border-radius: 20rpx;
}
.video-box image {
width: 93rpx;
height: 93rpx;
display: block;
}
.bridge-box {
position: relative;
padding-top: 87rpx;
}
.bridge-box image {
display: block;
width: 100%;
}
.tags {
display: flex;
justify-content: center;
position: absolute;
left: 24rpx;
right: 24rpx;
top: 35rpx;
}
.tag {
min-width: 130rpx;
max-width: 147rpx;
border: 1rpx solid;
margin-right: 9rpx;
height: 45rpx;
text-align: center;
position: relative;
color: #fff;
line-height: 45rpx;
font-size: 30rpx;
}
.tag::after {
content: "1";
font-size: 0;
width: 4rpx;
height: 36rpx;
background: white;
position: absolute;
left: 63rpx;
display: block;
top: 0;
margin-top: -50rpx;
}
.absoluetTags .tag::after {
top: auto;
margin-top: 10rpx;
}
.tags .tag:last-child {
margin-right: 0;
}
.absoluetTags .tag:nth-child(1),.absoluetTags .tag:nth-child(5){
margin-top: 25rpx;
}
.absoluetTags .tag:nth-child(2),.absoluetTags .tag:nth-child(4){
margin-top: 8rpx;
}
.tags .tag.active {
background: white;
color: #27899E;
border-color: #ffffff;
}
.new-tags {
display: flex;
flex-wrap: wrap;
margin: 0 23rpx;
margin-top: 35rpx;
justify-content: space-between;
padding-top: 9rpx;
padding-bottom: 4rpx;
border-top: 1px solid #27899E;
border-bottom: 1px solid #27899E;
}
.new-tag {
width: 158rpx;
height: 67rpx;
background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/noselect.png);
background-size: 100% 100%;
color: #27899E;
font-size: 28rpx;
text-align: center;
line-height: 67rpx;
margin-bottom: 11rpx;
}
.new-tag.active {
background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/select.png);
background-size: 100% 100%;
}
.item {
margin: 24rpx;
display: flex;
justify-content: space-between;
padding: 21rpx;
border-radius: 20rpx;
background: url(https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/tenscenic/bg.png);
background-size: 100% 100%;
height: 135rpx;
}
.item image {
display: block;
flex-shrink: 0;
width: 200rpx;
height: 135rpx;
border-radius: 10rpx;
}
.info {
flex: 1;
margin-left: 25rpx;
width: 400rpx;
}
.info .title {
font-size: 31rpx;
color: #333333;
font-weight: bold;
}
.info .subtitle {
color: #DD952B;
font-size: 24rpx;
margin: 5rpx 0;
}
.info .btn {
width: 153rpx;
line-height: 44rpx;
background: #27899E;
border-radius: 22rpx;
text-align: center;
font-size: 24rpx;
color: #fff;
float: right;
}
.fixed-top {
position: fixed;
width: 83rpx;
height: 83rpx;
background-color: rgba(221, 149, 43, .5);
color: #fff;
border-radius: 50%;
text-align: center;
right: 30rpx;
bottom: 30rpx;
z-index: 2;
font-size: 25rpx;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.fixed-top image {
display: block;
width: 25rpx;
height: 26rpx;
margin: 0 auto;
}
.fixed-top view {
}
.nomore {
text-align: center;
font-size: 26rpx;
color: #fff;
opacity: 0.5;
}

15
pages/culture/index.js

@ -15,7 +15,8 @@ Page({
tagKey:"", tagKey:"",
page_no:1, page_no:1,
total:1, total:1,
list:[] list:[],
is_can_booking:0
}, },
/** /**
@ -103,13 +104,23 @@ Page({
}) })
this.getList() this.getList()
}, },
changeType:function(e){
this.setData({
is_can_booking:e.currentTarget.dataset.type,
page_no:1,
list:[],
total:1
})
this.getList()
},
getList:function(){ getList:function(){
if(this.data.total<=this.data.list.length) return; if(this.data.total<=this.data.list.length) return;
commonApi._post("pbservice/Culture/getCultureList",{ commonApi._post("pbservice/Culture/getCultureList",{
page_no:this.data.page_no, page_no:this.data.page_no,
page_num:20, page_num:20,
date:this.data.date, date:this.data.date,
cate_id:this.data.tagKey cate_id:this.data.tagKey,
is_can_booking:this.data.is_can_booking
}).then(res=>{ }).then(res=>{
this.setData({ this.setData({
total:res.data.total, total:res.data.total,

19
pages/culture/index.wxml

@ -1,9 +1,9 @@
<!--pages/culture/index.wxml--> <!--pages/culture/index.wxml-->
<title title="文化配送"></title> <title title="文化配送"></title>
<!-- <view class="fixed-top" id="types"> <view class="fixed-top">
<view class="types"> <view class="types">
<view class="type active">全部活动</view> <view bindtap="changeType" data-type="0" class="type {{is_can_booking==0?'active':''}}">全部活动</view>
<view class="type">可预约</view> <view bindtap="changeType" data-type="1" class="type {{is_can_booking==1?'active':''}}">可预约</view>
</view> </view>
<view class="date-box"> <view class="date-box">
<view class="date-item {{item.times==selectDay?'active':''}}" wx:for="{{weeks}}" bindtap="changeDate" data-times="{{item.times}}"> <view class="date-item {{item.times==selectDay?'active':''}}" wx:for="{{weeks}}" bindtap="changeDate" data-times="{{item.times}}">
@ -17,7 +17,7 @@
</picker> </picker>
</view> </view>
</view> </view>
<view style="height:199rpx"></view> --> <view style="height:199rpx"></view>
<view class="left-fixed" style="top:{{top}}px"> <view class="left-fixed" style="top:{{top}}px">
<view class="tags"> <view class="tags">
<view bindtap="changeTag" data-tag="{{item.key}}" class="tag {{tagKey==item.key?'active':''}}" wx:for="{{tags}}">{{item.value}}</view> <view bindtap="changeTag" data-tag="{{item.key}}" class="tag {{tagKey==item.key?'active':''}}" wx:for="{{tags}}">{{item.value}}</view>
@ -31,13 +31,12 @@
<view class="textOver2">{{item.name}}</view> <view class="textOver2">{{item.name}}</view>
<view class="textOver" wx:if="{{item.begin_date || item.end_date}}" style="margin-bottom:5rpx;margin-top:3rpx">{{item.begin_date}}-{{item.end_date}}</view> <view class="textOver" wx:if="{{item.begin_date || item.end_date}}" style="margin-bottom:5rpx;margin-top:3rpx">{{item.begin_date}}-{{item.end_date}}</view>
<view class="textOver" wx:else style="margin-bottom:5rpx;margin-top:3rpx;opacity:0">~ </view> <view class="textOver" wx:else style="margin-bottom:5rpx;margin-top:3rpx;opacity:0">~ </view>
<view class="info-bottom textOver"> <!-- <view class="info-bottom textOver">
<view class="info-address textOver">{{item.supplier_name}}</view> <view class="info-address textOver">{{item.supplier_name}}</view>
<!-- <view class="info-btn" style="background:#999999" wx:if="{{item.is_act_end==1}}">已结束</view> --> <view class="info-btn" style="background:#999999" wx:if="{{item.is_act_end==1}}">已结束</view>
<!-- <view class="info-btn" wx:elif="{{item.is_bind_our_sku==1 && item.is_can_booking==1}}">立即预约</view> --> <view class="info-btn" wx:elif="{{item.reservation==1}}">立即预约</view>
<!-- <view class="info-btn borderbtn" wx:else>无需预约</view> --> <view class="info-btn borderbtn" wx:else>无需预约</view>
<view class="info-btn borderbtn">无需预约</view> </view> -->
</view>
</view> </view>
</navigator> </navigator>
</view> </view>

30
pages/culture/info/index.js

@ -47,26 +47,18 @@ Page({
},500) },500)
}, },
order:function(){ order:function(){
let skuid = this.data.info.sku_id; app.globalData.couponInfo = null;
if(!skuid) return; app.globalData.product = {
commonApi._post("product/get_sku_detail_by_id",{ sku:{
sku_id:skuid sku_name:""
}).then(res=>{ },
if(!res.data){ product:{
wx.showToast({ title:this.data.info.name,
title: '本活动不支持预约', id:this.data.info.id
icon:'none'
})
return;
} }
app.globalData.couponInfo = null; }
app.globalData.product = { wx.navigateTo({
sku:res.data, url: '/pages/order/scene/index?type=activity',
product:res.data.product
}
wx.navigateTo({
url: '/pages/order/scene/index?type=museum',
})
}) })
}, },

8
pages/culture/info/index.wxml

@ -14,13 +14,13 @@
<text>活动地点:{{info.detail_address}}</text> <text>活动地点:{{info.detail_address}}</text>
</view> </view>
</view> </view>
<view class="tip-box">本活动无需在线预约,可直接前往。更多详情请咨询活动主办方工作人员。</view> <!-- <view class="tip-box" wx:if="{{info && info.is_can_booking!=1}}">本活动无需在线预约,可直接前往。更多详情请咨询活动主办方工作人员。</view> -->
<view class="box-title">活动详情</view> <view class="box-title">活动详情</view>
<rich-text class="box-content" nodes="{{tool.formateRichText(info.intro)}}"></rich-text> <rich-text class="box-content" nodes="{{tool.formateRichText(info.intro)}}"></rich-text>
<!-- <view class="box-tip" wx:if="{{info && info.is_bind_our_sku==0}}">* 本活动无需在线预约,可直接前往。</view> --> <!-- <view class="box-tip" wx:if="{{info && info.is_bind_our_sku==0}}">* 本活动无需在线预约,可直接前往。</view> -->
</view> </view>
<!-- <view style="height:124rpx" wx:if="{{info && info.is_bind_our_sku!=0 && info.sku_id}}"></view> <view style="height:124rpx" wx:if="{{info}}"></view>
<view class="bottom-fixed" wx:if="{{info && info.is_bind_our_sku!=0 && info.sku_id}}"> <view class="bottom-fixed" wx:if="{{info}}">
<view class="bottom-btn" bindtap="order" wx:if="{{info.is_act_end==0}}">预约活动</view> <view class="bottom-btn" bindtap="order" wx:if="{{info.is_act_end==0}}">预约活动</view>
<view class="bottom-btn disable" wx:else>活动已过期</view> <view class="bottom-btn disable" wx:else>活动已过期</view>
</view> --> </view>

9
pages/culture/info/index.wxss

@ -70,7 +70,7 @@
.bottom-fixed { .bottom-fixed {
position: fixed; position: fixed;
width: 750rpx; width: 750rpx;
height: 104rpx; height: 100rpx;
background: #FFFFFF; background: #FFFFFF;
left: 0; left: 0;
bottom: 0; bottom: 0;
@ -81,10 +81,9 @@
justify-content: center; justify-content: center;
} }
.bottom-btn { .bottom-btn {
width: 391rpx; width: 750rpx;
line-height: 74rpx; line-height: 100rpx;
background: #D62828; background: rgba(15, 144, 149, 1);
border-radius: 37rpx;
font-size: 31rpx; font-size: 31rpx;
font-weight: 500; font-weight: 500;
color: #fff; color: #fff;

105
pages/index/index.js

@ -24,7 +24,8 @@ Page({
listMore:true, listMore:true,
isTest:false, isTest:false,
lat:"", lat:"",
lon:"" lon:"",
urltopage:{}
}, },
onLoad: function (options) { onLoad: function (options) {
if(options.from){ if(options.from){
@ -61,6 +62,14 @@ Page({
}) })
this.getFourProduct() this.getFourProduct()
}) })
commonApi._post("pbservice/Other/getClientConfig",{
unique_key:"urltopage"
}).then(res=>{
let data = JSON.parse(res.data)
this.setData({
urltopage:data
})
})
this.getTwoProduct() this.getTwoProduct()
this.getBanner() this.getBanner()
this.getWeather() this.getWeather()
@ -97,18 +106,36 @@ Page({
this.getFourProduct() this.getFourProduct()
}, },
getBanner:function(){ getBanner:function(){
commonApi._post("adv/getAdvByKey",{ // commonApi._post("adv/getAdvByKey",{
key:"xcxBanner" // key:"xcxBanner"
// }).then(res=>{
// console.log(res)
// this.setData({
// banner:res.data.content || []
// })
// })
// commonApi._post("adv/getAdvByKey",{
// key:"xiaobanner"
// }).then(res=>{
// this.setData({
// xiaobanner:res.data.content || []
// })
// })
// return;
commonApi._post("adv/getAdv",{
position:0,
type_id:3
}).then(res=>{ }).then(res=>{
this.setData({ this.setData({
banner:res.data.content || [] banner:res.data || []
}) })
}) })
commonApi._post("adv/getAdvByKey",{ commonApi._post("adv/getAdv",{
key:"xiaobanner" position:1,
type_id:3
}).then(res=>{ }).then(res=>{
this.setData({ this.setData({
xiaobanner:res.data.content || [] xiaobanner:res.data || []
}) })
}) })
}, },
@ -284,10 +311,70 @@ Page({
}, },
// 轮播图点击 // 轮播图点击
bannerClick:function(e){ bannerClick:function(e){
let item = e.currentTarget.dataset.item;
console.log(item)
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.indexOf('http://')!=-1 || item.tdata.indexOf('https://')!=-1) && item.tdata.indexOf('m.cloud.sz-trip.com')==-1){
// 外部h5
app.globalData.weburl = item.tdata;
wx.navigateTo({
url:"/pages/pbService/web/index"
})
}
else {
let page = item.tdata.split("/");
page = page[page.length-1].split("?")
let url = this.data.urltopage[page[0]];
console.log(url)
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 {
wx.navigateTo({
url: url,
})
}
}
break;
case 4:
wx.navigateToMiniProgram({
appId: item.tdata.appid,
path:item.tdata.page
})
break;
default:
break;
}
return;
},
bannerClick2:function(e){
let item = e.currentTarget.dataset.item; let item = e.currentTarget.dataset.item;
if(item.action=='href'){ if(item.action=='href'){
if(item.href.indexOf('map/index')!=-1){ if(item.href.indexOf(",")!=-1){
console.log(item.href) let info = item.href.split(",");
wx.navigateToMiniProgram({
appId: info[0],
path:info[1]
})
}
else if(item.href.indexOf('map/index')!=-1){
wx.reLaunch({ wx.reLaunch({
url: item.href url: item.href
}) })

27
pages/index/index.wxml

@ -15,10 +15,18 @@
autoplay="{{true}}" interval="{{5000}}" duration="{{300}}"> autoplay="{{true}}" interval="{{5000}}" duration="{{300}}">
<block wx:for="{{banner}}" wx:key="*this"> <block wx:for="{{banner}}" wx:key="*this">
<swiper-item bindtap="bannerClick" data-item="{{item}}"> <swiper-item bindtap="bannerClick" data-item="{{item}}">
<image src="{{item.img}}" mode="aspectFill"></image> <image src="{{item.head_img}}" mode="aspectFill"></image>
</swiper-item> </swiper-item>
</block> </block>
</swiper> </swiper>
<!-- <swiper class="swiper" indicator-dots="{{true}}"
autoplay="{{true}}" interval="{{5000}}" duration="{{300}}">
<block wx:for="{{banner}}" wx:key="*this">
<swiper-item bindtap="bannerClick2" data-item="{{item}}">
<image src="{{item.img}}" mode="aspectFill"></image>
</swiper-item>
</block>
</swiper> -->
<view class="top-icons"> <view class="top-icons">
<view bindtap="gotoPath" data-title="活动日历" data-path="/pages/list/activitynew/index" class="top-icon-item"> <view bindtap="gotoPath" data-title="活动日历" data-path="/pages/list/activitynew/index" class="top-icon-item">
<image src="https://static.ticket.sz-trip.com/xcxImages/index/icon1.png" mode="widthFix"></image> <image src="https://static.ticket.sz-trip.com/xcxImages/index/icon1.png" mode="widthFix"></image>
@ -106,10 +114,18 @@
autoplay="{{true}}" interval="{{5000}}" duration="{{300}}"> autoplay="{{true}}" interval="{{5000}}" duration="{{300}}">
<block wx:for="{{xiaobanner}}" wx:key="*this"> <block wx:for="{{xiaobanner}}" wx:key="*this">
<swiper-item bindtap="bannerClick" data-item="{{item}}"> <swiper-item bindtap="bannerClick" data-item="{{item}}">
<image style="border-radius:77rpx" src="{{item.img}}" mode="aspectFill"></image> <image style="border-radius:77rpx" src="{{item.head_img}}" mode="aspectFill"></image>
</swiper-item> </swiper-item>
</block> </block>
</swiper> </swiper>
<!-- <swiper class="small-swiper" indicator-dots="{{true}}"
autoplay="{{true}}" interval="{{5000}}" duration="{{300}}">
<block wx:for="{{xiaobanner}}" wx:key="*this">
<swiper-item bindtap="bannerClick2" data-item="{{item}}">
<image style="border-radius:77rpx" src="{{item.img}}" mode="aspectFill"></image>
</swiper-item>
</block>
</swiper> -->
</view> </view>
<view class="sale-road-boxes" style="margin-top:0"> <view class="sale-road-boxes" style="margin-top:0">
<image mode="widthFix" style="width:267rpx" src="https://static.ticket.sz-trip.com/xcxImages/index/title5.png"></image> <image mode="widthFix" style="width:267rpx" src="https://static.ticket.sz-trip.com/xcxImages/index/title5.png"></image>
@ -146,15 +162,14 @@
<image src="https://static.ticket.sz-trip.com/xcxImages/index/pb9.png" mode="widthFix"></image> <image src="https://static.ticket.sz-trip.com/xcxImages/index/pb9.png" mode="widthFix"></image>
<view>景区舒适度</view> <view>景区舒适度</view>
</view> --> </view> -->
<view bindtap="gotoPath" data-title="公共自行车" data-path="/pages/pbService/bike/index?type=0" class="pbservice-item"> <view bindtap="gotoPath" data-title="精彩回顾" data-path="/pages/pbService/activity/index" class="pbservice-item">
<image src="https://static.ticket.sz-trip.com/xcxImages/index/pb10.png" mode="widthFix"></image> <image src="https://static.ticket.sz-trip.com/xcxImages/index/pb16.png" mode="widthFix"></image>
<view>公共自行车</view> <view>精彩回顾</view>
</view> </view>
<view bindtap="gotoPath" data-title="书香借阅" data-path="/pages/pbService/library/index" class="pbservice-item"> <view bindtap="gotoPath" data-title="书香借阅" data-path="/pages/pbService/library/index" class="pbservice-item">
<image src="https://static.ticket.sz-trip.com/xcxImages/index/pb14.png" mode="widthFix"></image> <image src="https://static.ticket.sz-trip.com/xcxImages/index/pb14.png" mode="widthFix"></image>
<view>书香借阅</view> <view>书香借阅</view>
</view> </view>
<view bindtap="gotoPath" data-title="非遗传承" data-path="/pages/pbService/feiyi/index" class="pbservice-item"> <view bindtap="gotoPath" data-title="非遗传承" data-path="/pages/pbService/feiyi/index" class="pbservice-item">
<image src="https://static.ticket.sz-trip.com/xcxImages/index/pb5.png" mode="widthFix"></image> <image src="https://static.ticket.sz-trip.com/xcxImages/index/pb5.png" mode="widthFix"></image>
<view>非遗传承</view> <view>非遗传承</view>

2
pages/index/index.wxss

@ -289,7 +289,7 @@
font-size: 22rpx; font-size: 22rpx;
} }
.pbservice { .pbservice {
width: calc(175rpx * 6); width: calc(175rpx * 5);
display: flex; display: flex;
margin-top: 20rpx; margin-top: 20rpx;
flex-wrap: wrap; flex-wrap: wrap;

134
pages/info/guideInfo/index.js

@ -0,0 +1,134 @@
// pages/info/guideInfo/index.js
import commonApi from "../../../utils/https/common"
Page({
/**
* 页面的初始数据
*/
data: {
info:null,
images:[],
page:0
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
commonApi._post("travels/getDetail",{
id:options.id
}).then(res=>{
console.log(res)
let images = [];
//匹配图片(g表示匹配所有结果i表示区分大小写)
var imgReg = /<img.*?(?:>|\/>)/gi;
//匹配src属性
var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
var arr = res.data.detail.match(imgReg);
for (var i = 0; i < arr.length; i++) {
var src = arr[i].match(srcReg);
//获取图片地址
if (src[1]) {
images.push(src[1])
}
}
this.setData({
images:images
})
})
commonApi._post("travels/addView",{
id:options.id
}).then(res=>{
})
},
prevPage:function(){
if(this.data.page==0) return;
this.setData({
page:this.data.page-1
})
},
nextPage:function(){
if(this.data.page==this.data.images.length-1) return;
this.setData({
page:this.data.page+1
})
},
changePage:function(e){
this.setData({
page:e.detail.current
})
},
showImg:function(e){
// wx.showLoading({
// title: '加载中'
// })
wx.previewImage({
urls: this.data.images,
current:e.currentTarget.dataset.img
})
return;
wx.downloadFile({
url: e.currentTarget.dataset.img,
success:function(res){
if (res.statusCode === 200) {
wx.previewImage({
urls: [res.tempFilePath],
current:res.tempFilePath
})
}
},
complete:function(){
wx.hideLoading({
})
}
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

5
pages/info/guideInfo/index.json

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

15
pages/info/guideInfo/index.wxml

@ -0,0 +1,15 @@
<!--pages/info/guideInfo/index.wxml-->
<wxs src="../../../utils/filter.wxs" module="tool" />
<!-- <title title="详情"></title> -->
<view class="info">
<swiper bindchange="changePage" current="{{page}}">
<swiper-item wx:for="{{images}}" class="img-box">
<image bindtap="showImg" data-img="{{item}}" src="{{item}}?x-oss-process=image/resize,w_750,m_lfit" mode="aspectFit"></image>
</swiper-item>
</swiper>
<view class="pages">
<view class="btn" bindtap="prevPage">上一页</view>
<view class="pagenum"> {{page+1}} / {{images.length}}</view>
<view class="btn" bindtap="nextPage">下一页</view>
</view>
</view>

48
pages/info/guideInfo/index.wxss

@ -0,0 +1,48 @@
/* pages/info/guideInfo/index.wxss */
.swiper,.info image {
display: block;
width: 100%;
height: 100%;
}
.info {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
}
.pages {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
left: 0;
right: 0;
bottom: 100rpx;
}
.pages .btn {
font-size: 28rpx;
background: white;
line-height: 50rpx;
width: 140rpx;
text-align: center;
color: #815D3A;
border: 1rpx solid #815D3A;
border-radius: 20rpx;
}
.pagenum {
margin: 0 30rpx;
color: #815D3A;
font-size: 28rpx;
}
swiper {
width: 100%;
height: 100%;
}
.img-box {
display: flex;
align-items: center;
}

2
pages/list/strategy/index.js

@ -10,7 +10,7 @@ Page({
page_no:1, page_no:1,
total:1, total:1,
keywords:"", keywords:"",
type:0, type:1,
showKeyword:"" showKeyword:""
}, },

26
pages/list/strategy/index.wxml

@ -5,17 +5,19 @@
<input type="text" bindinput="changeKeyword" placeholder="请输入搜索关键字" /> <input type="text" bindinput="changeKeyword" placeholder="请输入搜索关键字" />
<view class="search-btn" bindtap="search">搜索</view> <view class="search-btn" bindtap="search">搜索</view>
</view> </view>
<image class="topimg" src="https://static.ticket.sz-trip.com/xcxImages/listtop/strategynew.png" mode="widthFix"></image> <image class="topimg" src="https://m.cloud.sz-trip.com/static/images/TravelNotesIntroduction/topBacThree.png" mode="widthFix"></image>
<view class="types"> <view class="types">
<view class="type {{type==0?'active':''}}" bindtap="changeType" data-type="0">
<image wx:if="{{type==0}}" class="bgimg" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/listtop/typebg.png" mode="aspectFill"></image>
<image class="iconimg" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/listtop/gl{{type==0?'0':'1'}}.png" mode="aspectFill"></image>
<view>游记攻略</view>
</view>
<view class="type {{type==1?'active':''}}" bindtap="changeType" data-type="1"> <view class="type {{type==1?'active':''}}" bindtap="changeType" data-type="1">
<image wx:if="{{type==1}}" class="bgimg" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/listtop/typebg.png" mode="aspectFill"></image> <image wx:if="{{type==1}}" class="bgimg" src="https://m.cloud.sz-trip.com/static/images/TravelNotesIntroduction/navBacActive.png" mode="aspectFill"></image>
<image class="iconimg" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/listtop/sc{{type==1?'0':'1'}}.png" mode="aspectFill"></image> <image wx:else class="bgimg" src="https://m.cloud.sz-trip.com/static/images/TravelNotesIntroduction/navBac.png" mode="aspectFill"></image>
<view>旅游指南</view> <image class="iconimg" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/listtop/sc{{type==1?'0':'new1'}}.png" mode="aspectFill"></image>
<view>官方手册</view>
</view>
<view class="type {{type==0?'active':''}}" bindtap="changeType" data-type="0">
<image wx:if="{{type==0}}" class="bgimg" src="https://m.cloud.sz-trip.com/static/images/TravelNotesIntroduction/navBacActive.png" mode="aspectFill"></image>
<image wx:else class="bgimg" src="https://m.cloud.sz-trip.com/static/images/TravelNotesIntroduction/navBac.png" mode="aspectFill"></image>
<image class="iconimg" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/listtop/gl{{type==0?'0':'new1'}}.png" mode="aspectFill"></image>
<view>达人攻略</view>
</view> </view>
</view> </view>
<view class="list" wx:if="{{type==0}}"> <view class="list" wx:if="{{type==0}}">
@ -36,9 +38,10 @@
</navigator> </navigator>
</view> </view>
<view class="list" wx:if="{{type==1}}"> <view class="list" wx:if="{{type==1}}">
<view bindtap="showPdf" data-id="{{item.id}}" data-pdf="{{item.guide}}" class="item" wx:for="{{list}}"> <navigator url="/pages/info/guideInfo/index?id={{item.id}}" class="item" wx:for="{{list}}">
<view class="title textOver"> <view class="title textOver">
<text class="textOver">{{item.title}}</text> <text class="textOver">{{item.title}}</text>
<image wx:if="{{item.is_hot==1}}" src="https://static.ticket.sz-trip.com/xcxImages/listtop/hot.png" mode="widthFix"></image>
</view> </view>
<view class="subtitle textOver2"> </view> <view class="subtitle textOver2"> </view>
<view class="strategy-bottom"> <view class="strategy-bottom">
@ -47,8 +50,9 @@
<view style="flex:1"></view> <view style="flex:1"></view>
<view class="btn">查看详情 ></view> <view class="btn">查看详情 ></view>
</view> </view>
</view> </navigator>
</view> </view>
<view style="height:60rpx"></view>
<view wx:if="{{list.length==0 && total==0}}" class="common-empty" style="z-index:-1;top:300rpx"> <view wx:if="{{list.length==0 && total==0}}" class="common-empty" style="z-index:-1;top:300rpx">
<view>暂无内容</view> <view>暂无内容</view>
</view> </view>

19
pages/list/strategy/index.wxss

@ -3,7 +3,7 @@
width: 100%; width: 100%;
} }
page { page {
background: #C1E678; background: #EADFD4;
} }
.search-box { .search-box {
position: absolute; position: absolute;
@ -11,7 +11,6 @@ page {
right: 30rpx; right: 30rpx;
height: 60rpx; height: 60rpx;
background: #FFFFFF; background: #FFFFFF;
border: 2rpx solid #548027;
border-radius: 30rpx; border-radius: 30rpx;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
@ -34,14 +33,14 @@ page {
line-height: 50rpx; line-height: 50rpx;
text-align: center; text-align: center;
color: #fff; color: #fff;
background: #548027; background: #815D3A;
border-radius: 25rpx; border-radius: 25rpx;
} }
.types { .types {
display: flex; display: flex;
margin: 0 50rpx; margin: 0 30rpx;
justify-content: space-between; justify-content: space-between;
height: 100rpx; height: 80rpx;
margin-top: 30rpx; margin-top: 30rpx;
} }
.type { .type {
@ -49,17 +48,15 @@ page {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
height: 80rpx; height: 80rpx;
border-radius: 40rpx; width: 330rpx;
width: 300rpx;
background:white;
position: relative; position: relative;
} }
.type .bgimg { .type .bgimg {
position: absolute; position: absolute;
display: block; display: block;
left: 0; left: 0;
width: 300rpx; width: 330rpx;
height: 100rpx; height: 80rpx;
top: 0; top: 0;
z-index: -1; z-index: -1;
} }
@ -132,6 +129,6 @@ page {
margin-right: 8rpx; margin-right: 8rpx;
} }
.btn { .btn {
color: #548027; color: #815D3A;
font-size: 22rpx; font-size: 22rpx;
} }

2
pages/list/techan/index.wxml

@ -22,7 +22,7 @@
<view class="supplier-price"><text>¥</text><text>{{item.start_price/100}}</text><text>起</text></view> <view class="supplier-price"><text>¥</text><text>{{item.start_price/100}}</text><text>起</text></view>
</view> </view>
<view class="product-list"> <view class="product-list">
<view catchtap="gotoProduct" data-item="{{item}}" class="product-item" wx:for="{{item.product}}"> <view data-item="{{item}}" class="product-item" wx:for="{{item.product}}">
<image src="{{item.headimg}}" mode="aspectFill"></image> <image src="{{item.headimg}}" mode="aspectFill"></image>
<view class="product-title textOver2">{{item.title}}</view> <view class="product-title textOver2">{{item.title}}</view>
<view class="supplier-price"><text>¥</text><text style="font-size:30rpx">{{item.price/100}}</text><text class="market_price">{{item.market_price/100}}</text></view> <view class="supplier-price"><text>¥</text><text style="font-size:30rpx">{{item.price/100}}</text><text class="market_price">{{item.market_price/100}}</text></view>

33
pages/login/index.js

@ -8,22 +8,36 @@ Page({
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
err:null err:null,
canIUseGetUserProfile:false
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
if (wx.getUserProfile) {
this.setData({
canIUseGetUserProfile: true
})
}
}, },
cancel:function(){ cancel:function(){
wx.reLaunch({ wx.reLaunch({
url: '/pages/index/index', url: '/pages/index/index',
}) })
}, },
getUserInfo:function(e){ getUserProfile:function(e){
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
this.getUserInfo(res,1)
}
})
},
getUserInfo:function(e,type){
let that = this; let that = this;
if (!e.detail.userInfo){ if (e.detail && !e.detail.userInfo || !e.userInfo){
wx.reLaunch({ wx.reLaunch({
url: '/pages/index/index', url: '/pages/index/index',
}) })
@ -31,7 +45,18 @@ Page({
} }
wx.login({ wx.login({
success: function (r) { success: function (r) {
user._post("user/wxLogin", { code: r.code, encryptedData: e.detail.encryptedData, iv: e.detail.iv, loginType: 3 }).then(r => { let api;
if(type==1){
api = user._post("user/wxLogin_v2", { code: r.code, loginType: 3, arrayInfo: {
nickName:e.userInfo.nickName,
avatarUrl:e.userInfo.avatarUrl,
gender:e.userInfo.gender
}})
}
else {
api = user._post("user/wxLogin", { code: r.code, encryptedData: e.detail.encryptedData, iv: e.detail.iv, loginType: 3 })
}
api.then(r => {
console.log(r) console.log(r)
// return; // return;
// r.data.isBind是false的时候去绑定手机号 该用户没有注册过 // r.data.isBind是false的时候去绑定手机号 该用户没有注册过

3
pages/login/index.wxml

@ -9,5 +9,6 @@
<!-- <view>{{err}}</view> --> <!-- <view>{{err}}</view> -->
<view class="btn-box"> <view class="btn-box">
<button bindtap="cancel" type="default" >取消</button> <button bindtap="cancel" type="default" >取消</button>
<button type="primary" open-type="getUserInfo" bindgetuserinfo="getUserInfo">授权</button> <button type="primary" wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile">授权</button>
<button type="primary" wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo">授权</button>
</view> </view>

6
pages/order/components/contact/index.js

@ -14,6 +14,10 @@ Component({
maxNum:{ maxNum:{
type:String, type:String,
value:"-1" value:"-1"
},
type:{
type:String,
value:""
} }
}, },
@ -215,7 +219,7 @@ Component({
}) })
console.log(traveller_limit_num,num,item) console.log(traveller_limit_num,num,item)
// 如果是要新增选中 并且当前选中数量已经超过或者等于了最大出行人限制 // 如果是要新增选中 并且当前选中数量已经超过或者等于了最大出行人限制
if((app.globalData.kjId) && num==1 && item.selected!=1){ if((app.globalData.kjId || this.properties.type=='activity') && num==1 && item.selected!=1){
wx.showToast({ wx.showToast({
title: '最多只能选择一个出行人', title: '最多只能选择一个出行人',
icon:'none' icon:'none'

11
pages/order/pay/index.js

@ -51,18 +51,17 @@ Page({
* 生命周期函数--监听页面初次渲染完成 * 生命周期函数--监听页面初次渲染完成
*/ */
onReady: function () { onReady: function () {
payList:[]
}, },
/** /**
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onShow: function () { onShow: function () {
commonApi.user_post("subwallet.ermb/wallet",{}).then(res=>{ // commonApi.user_post("subwallet.ermb/wallet",{}).then(res=>{
this.setData({ // this.setData({
payList:res.data // payList:res.data
}) // })
}) // })
commonApi.user_post("order/query",{ commonApi.user_post("order/query",{
order_id:this.data.id order_id:this.data.id
}).then(res=>{ }).then(res=>{

30
pages/order/scene/index.js

@ -203,6 +203,36 @@ Page({
} }
}) })
}, },
// 活动预约
activityOrder:function(){
if(this.data.linkmanList && this.data.linkmanList.length>0){
commonApi.user_post("pbservice/Culture/booking",{
id:this.data.product.product.id,
name:this.data.linkmanList[0].name,
card_number:this.data.linkmanList[0].id_number,
tel:this.data.linkmanList[0].tel
}).then(res=>{
if(res.code==1){
wx.showToast({
title: '预约成功',
icon:'success'
})
setTimeout(()=>{
wx.navigateBack()
},1000)
return;
}
})
}
else {
wx.showToast({
title: '请选择出行人',
icon:'none'
})
return;
}
},
/** /**
* 生命周期函数--监听页面初次渲染完成 * 生命周期函数--监听页面初次渲染完成

21
pages/order/scene/index.wxml

@ -2,31 +2,32 @@
<title title="提交订单"></title> <title title="提交订单"></title>
<view class="product-info" wx:if="{{product}}"> <view class="product-info" wx:if="{{product}}">
<view class="product-title">{{product.product.title + product.sku.sku_name}}</view> <view class="product-title">{{product.product.title + product.sku.sku_name}}</view>
<view class="product-price" wx:if="{{type=='museum'}}">免费</view> <view class="product-price" wx:if="{{type=='museum' || type=='activity'}}">免费</view>
</view> </view>
<date wx:if="{{isLogin}}" bind:onChangeDate="changeDate" bind:onChangeTime="changeTime" product="{{product}}"></date> <date wx:if="{{isLogin && type!='activity'}}" bind:onChangeDate="changeDate" bind:onChangeTime="changeTime" product="{{product}}"></date>
<view class="box"> <view class="box">
<view class="box-title"> <view class="box-title">
<view style="flex:1">购票数量</view> <view style="flex:1">购票数量</view>
<view class="iconfont icon-sami-select" wx:if="{{!kjId && !gp_id}}" bindtap="minus"></view> <view class="iconfont icon-sami-select" wx:if="{{!kjId && !gp_id && type!='activity'}}" bindtap="minus"></view>
<view class="number-box">{{productNum}}</view> <view class="number-box">{{productNum}}</view>
<view class="iconfont icon-add-select" wx:if="{{!kjId && !gp_id}}" bindtap="add"></view> <view class="iconfont icon-add-select" wx:if="{{!kjId && !gp_id && type!='activity'}}" bindtap="add"></view>
</view> </view>
</view> </view>
<contact wx:if="{{isLogin}}" bind:setLinkman="setLinkman"></contact> <contact wx:if="{{isLogin}}" type="{{type}}" bind:setLinkman="setLinkman"></contact>
<coupon wx:if="{{!kjId && !gp_id}}" id="coupon" money="{{singlePrice * productNum}}" sku="{{product.sku.id}}"></coupon> <coupon wx:if="{{!kjId && !gp_id && type!='activity'}}" id="coupon" money="{{singlePrice * productNum}}" sku="{{product.sku.id}}"></coupon>
<view class="box"> <view class="box" wx:if="{{type!='activity'}}">
<view class="box-title"> <view class="box-title">
<view style="flex-shrink:0">订单备注</view> <view style="flex-shrink:0">订单备注</view>
<input type="text" bindinput="changeRemark" placeholder="选填"></input> <input type="text" bindinput="changeRemark" placeholder="选填"></input>
</view> </view>
</view> </view>
<view style="{{type=='museum'?'height:138rpx':'height:113rpx'}}"></view> <view style="{{type=='museum' || type=='activity'?'height:138rpx':'height:113rpx'}}"></view>
<view class="fixed-bottom" wx:if="{{type!='museum'}}"> <view class="fixed-bottom" wx:if="{{type!='museum' && type!='activity'}}">
<view class="fixed-price-box" wx:if="{{kjId}}"><text>合计:</text><text class="price">¥0</text></view> <view class="fixed-price-box" wx:if="{{kjId}}"><text>合计:</text><text class="price">¥0</text></view>
<view class="fixed-price-box" wx:else><text>合计:</text><text class="price">¥{{((singlePrice * productNum - (coupon?coupon.activity.money:0))>0?(singlePrice * productNum - (coupon?coupon.activity.money:0)):0)/ 100}}</text></view> <view class="fixed-price-box" wx:else><text>合计:</text><text class="price">¥{{((singlePrice * productNum - (coupon?coupon.activity.money:0))>0?(singlePrice * productNum - (coupon?coupon.activity.money:0)):0)/ 100}}</text></view>
<view class="fixed-btn" bindtap="order">提交订单</view> <view class="fixed-btn" bindtap="order">提交订单</view>
</view> </view>
<view class="fixed-bottom yuyue-box" wx:else> <view class="fixed-bottom yuyue-box" wx:else>
<view class="fixed-btn yuyue-btn" bindtap="order">立即预约</view> <view class="fixed-btn yuyue-btn" bindtap="order" wx:if="{{type=='museum'}}">立即预约</view>
<view class="fixed-btn yuyue-btn" bindtap="activityOrder" wx:else>立即预约</view>
</view> </view>

82
pages/pbService/activity/index.js

@ -0,0 +1,82 @@
// pages/pbService/activity/index.js
import https from "../../../utils/https/common"
Page({
/**
* 页面的初始数据
*/
data: {
list:[],
page:1,
total:1
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.getList()
},
getList:function(){
if(this.data.list.length>=this.data.total) return;
https._post("review/getList",{
limit:10,
page:this.data.page
}).then(res=>{
this.setData({
total:res.data.total,
list:this.data.list.concat(res.data.data),
page:this.data.page+1
})
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
this.getList()
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

5
pages/pbService/activity/index.json

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

13
pages/pbService/activity/index.wxml

@ -0,0 +1,13 @@
<!--pages/pbService/activity/index.wxml-->
<title title="精彩回顾"></title>
<image mode="widthFix" class="topimg" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/pbservice/hgtop.png"></image>
<view class="list">
<navigator url="{{item.mini_url}}" class="item" wx:for="{{list}}" wx:if="{{item.mini_url}}">
<image mode="aspectFill" class="bgimg" src="https://sz-qd.oss-cn-hangzhou.aliyuncs.com/xcxImages/pbservice/hgbg.png"></image>
<image src="{{item.head_image}}" mode="aspectFill" class="main-img"></image>
<view class="info">
<view class="textOver title">{{item.title}}</view>
<view class="textOver">{{item.desc}}</view>
</view>
</navigator>
</view>

43
pages/pbService/activity/index.wxss

@ -0,0 +1,43 @@
/* pages/pbService/activity/index.wxss */
.topimg {
display: block;
width: 100%;
}
.item {
margin: 40rpx 27rpx;
position: relative;
}
.item .bgimg {
display: block;
width: 100%;
height: 427rpx;
}
.list .item:nth-child(1){
margin-top: -40rpx;
z-index: 1;
}
page {
background: #D1C0A5;
}
.main-img {
width: 539rpx;
height: 293rpx;
background: #D1C0A5;
border-radius: 33rpx;
position: absolute;
left: 20rpx;
top: 25rpx;
}
.info {
position: absolute;
bottom: 15rpx;
color: #fff;
left: 35rpx;
font-size: 23rpx;
right: 135rpx;
}
.info .title {
margin-bottom: 6rpx;
font-size: 33rpx;
font-weight: 600;
}

7
pages/pbService/index.wxml

@ -47,7 +47,7 @@
</view> </view>
</view> </view>
<view class="pb-box"> <view class="pb-box">
<view class="pb-title">文查询</view> <view class="pb-title">文查询</view>
<view class="pb-list"> <view class="pb-list">
<view class="pb-item" data-title="投资导引图" bindtap="gotoUrl" data-url="https://hot-map.sz-trip.com/"> <view class="pb-item" data-title="投资导引图" bindtap="gotoUrl" data-url="https://hot-map.sz-trip.com/">
<image src="https://static.ticket.sz-trip.com/xcxImages/pbservice/pb17.png" mode="widthFix"></image> <image src="https://static.ticket.sz-trip.com/xcxImages/pbservice/pb17.png" mode="widthFix"></image>
@ -89,5 +89,10 @@
<image src="https://static.ticket.sz-trip.com/xcxImages/pbservice/pb19.png" mode="widthFix"></image> <image src="https://static.ticket.sz-trip.com/xcxImages/pbservice/pb19.png" mode="widthFix"></image>
<view>博物馆查询</view> <view>博物馆查询</view>
</view> </view>
<view class="pb-item" data-title="精彩回顾" bindtap="gotoPath" data-path="/pages/pbService/activity/index">
<image src="https://static.ticket.sz-trip.com/xcxImages/index/pb16.png" mode="widthFix"></image>
<view>精彩回顾</view>
</view>
</view> </view>
</view> </view>

16
project.private.config.json

@ -13,15 +13,15 @@
"miniprogram": { "miniprogram": {
"list": [ "list": [
{ {
"name": "pages/list/six/index", "name": "pages/activity/tenscenic/index",
"pathName": "pages/list/six/index", "pathName": "pages/activity/tenscenic/index",
"query": "id=5442&retailId=17020017459&skuid=1209&gid=3841", "query": "id=5442&retailId=17020017459&skuid=1209&gid=3841",
"scene": null "scene": null
}, },
{ {
"name": "pages/info/sceneProductInfo/index", "name": "pages/info/sceneProductInfo/index",
"pathName": "pages/info/sceneProductInfo/index", "pathName": "pages/info/sceneProductInfo/index",
"query": "id=5442&retailId=17020017459", "query": "id=4400",
"scene": null "scene": null
}, },
{ {
@ -49,14 +49,14 @@
"scene": null "scene": null
}, },
{ {
"name": "PRPark", "name": "pages/pbService/web/index",
"pathName": "pages/pbService/PRpark/index", "pathName": "pages/pbService/web/index",
"query": "category_id=27", "query": "",
"scene": null "scene": null
}, },
{ {
"name": "pages/activity/subway/index", "name": "pages/culture/index",
"pathName": "pages/activity/subway/index", "pathName": "pages/culture/index",
"query": "id=10973", "query": "id=10973",
"scene": null "scene": null
} }

6
utils/https.js

@ -211,6 +211,12 @@ const set_logininfo = r => {
const checkLogin = () => { const checkLogin = () => {
// 判断是否已经授权过 // 判断是否已经授权过
let page = getCurrentPages(); let page = getCurrentPages();
if(page[page.length-1].route!='pages/login/index') {
wx.navigateTo({
url: '/pages/login/index',
})
}
return;
wx.getSetting({ wx.getSetting({
success: res => { success: res => {
if (res.authSetting['scope.userInfo']) { if (res.authSetting['scope.userInfo']) {

4
utils/util.js

@ -203,13 +203,13 @@ const gotoDetail = (item) =>{
case "activity": case "activity":
// 活动 // 活动
wx.navigateTo({ wx.navigateTo({
url: '/pages/info/activityInfo/index?id='+item.act_calendar_id url: '/pages/info/activityInfo/index?id='+(item.act_calendar_id || item.id)
}) })
break; break;
case "movie": case "movie":
// 产品 电影票 // 产品 电影票
wx.navigateTo({ wx.navigateTo({
url: '/pages/list/movieticket/list/info/index?id='+item.third_id+'&title='+item.title url: '/pages/list/movieticket/list/info/index?id='+(item.third_id || item.id)+'&title='+item.title
}) })
break; break;
case "cinema": case "cinema":

Loading…
Cancel
Save