Merge refs/remotes/origin/master into refs/heads/master
This commit is contained in:
commit
c2850f2ea6
8
app.json
8
app.json
@ -1,13 +1,11 @@
|
||||
{
|
||||
"pages": [
|
||||
"pages/venue/venue",
|
||||
"pages/index/index",
|
||||
"pages/center/center",
|
||||
"pages/friendCircle/friendCircle",
|
||||
"pages/venue/venue",
|
||||
"pages/broadcastList/broadcastList",
|
||||
"pages/orderDetail/orderDetail",
|
||||
"pages/myVenueOrder/myVenueOrder",
|
||||
"pages/book/book",
|
||||
"pages/broadcast/broadcast",
|
||||
"pages/activityDialog/activityDialog",
|
||||
"pages/teamDetail/teamDetail",
|
||||
@ -16,6 +14,7 @@
|
||||
"pages/heritage/heritage",
|
||||
"pages/broadcastDetail/broadcastDetail",
|
||||
"pages/venueDetail/venueDetail",
|
||||
"pages/book/book",
|
||||
"pages/register/register",
|
||||
"pages/login/login",
|
||||
"pages/newVolunteerActivity/newVolunteerActivity",
|
||||
@ -26,8 +25,7 @@
|
||||
"pages/activityDetail/activityDetail",
|
||||
"pages/activity/activity",
|
||||
"pages/newsDetail/newsDetail",
|
||||
"pages/newsList/newsList",
|
||||
"pages/userAgree/userAgree"
|
||||
"pages/newsList/newsList"
|
||||
],
|
||||
"window": {
|
||||
"backgroundTextStyle": "light",
|
||||
|
BIN
images/delete-photo.png
Normal file
BIN
images/delete-photo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
images/friend.png
Normal file
BIN
images/friend.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
images/new.png
Normal file
BIN
images/new.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 174 B |
BIN
images/order.png
Normal file
BIN
images/order.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 513 B |
@ -8,7 +8,11 @@ Page({
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
token: '',
|
||||
timer: '',
|
||||
gotCode: false,
|
||||
checkOrder: false,
|
||||
restTime:120,
|
||||
venuesInfoId: '',
|
||||
selectVenuesProject:'',
|
||||
venuesProjectList: [],
|
||||
@ -26,7 +30,49 @@ Page({
|
||||
|
||||
//保存
|
||||
saveBookingInfo: function(){
|
||||
console.log(this.data.phoneNumber);
|
||||
var self = this;
|
||||
if(self.data.mySelectItem.length == 0){
|
||||
wx.showToast({
|
||||
title: '请先选择您的预订信息',
|
||||
icon: 'none',
|
||||
})
|
||||
return false;
|
||||
}
|
||||
if(!self.checkPhoneNumber()){
|
||||
return false;
|
||||
}
|
||||
if(self.data.smsCode == ''){
|
||||
wx.showToast({
|
||||
title: '请填写验证码',
|
||||
icon: 'none',
|
||||
})
|
||||
return false;
|
||||
}
|
||||
var param = {
|
||||
smsCode : self.data.smsCode,
|
||||
phoneNumber : self.data.phoneNumber,
|
||||
venuesProjectId : self.data.selectVenuesProject,
|
||||
bookingItemList : self.data.mySelectItem
|
||||
}
|
||||
wx.showLoading({
|
||||
title: '请稍等',
|
||||
});
|
||||
app.restAjax.post(app.restAjax.path('{venueUrl}/app/booking/savebookinginfo',[app.venueUrl]), param, {headers : {token:self.data.token}}, function(code,data){
|
||||
if(code == 200){
|
||||
wx.showToast({
|
||||
title: '预订成功',
|
||||
});
|
||||
setTimeout( () =>{
|
||||
wx.navigateBack({
|
||||
delta: 1,
|
||||
})
|
||||
},1500);
|
||||
}
|
||||
},function(code,data){
|
||||
app.dialog.msg(data.msg);
|
||||
},function(){
|
||||
wx.hideLoading();
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
@ -217,6 +263,64 @@ Page({
|
||||
})
|
||||
},
|
||||
|
||||
checkPhoneNumber: function(){
|
||||
if(this.data.phoneNumber == ''){
|
||||
wx.showToast({
|
||||
title: '请填写手机号',
|
||||
icon: 'none',
|
||||
})
|
||||
return false;
|
||||
}
|
||||
if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.data.phoneNumber)) {
|
||||
wx.showToast({
|
||||
title: '请输入正确的手机号',
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
})
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
//获取验证码
|
||||
getSmsCoce: function (){
|
||||
var self = this;
|
||||
if(!self.checkPhoneNumber()){
|
||||
return false;
|
||||
}
|
||||
app.restAjax.get(app.restAjax.path('{venueUrl}/api/sms/getverificationcode/' + self.data.phoneNumber, [app.venueUrl]), {}, null,
|
||||
function (code, data) {
|
||||
if (code == 200) {
|
||||
console.log(data)
|
||||
self.setData({
|
||||
gotCode: true
|
||||
})
|
||||
self.data.timer = setInterval(function () {
|
||||
var cur = self.data.restTime - 1
|
||||
console.log(cur)
|
||||
if (cur == 0) {
|
||||
clearInterval(self.data.timer)
|
||||
self.setData({
|
||||
restTime: 120,
|
||||
gotCode: false
|
||||
})
|
||||
} else {
|
||||
self.setData({
|
||||
restTime: cur
|
||||
})
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
},
|
||||
function (code, data) {
|
||||
wx.showToast({
|
||||
title: data.msg,
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
doCheckOrder: function () {
|
||||
if(this.data.mySelectItem.length == 0){
|
||||
return false;
|
||||
@ -236,6 +340,14 @@ Page({
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
wx.getStorage({
|
||||
key: 'token',
|
||||
success: (result) => {
|
||||
this.setData({
|
||||
token : result.data
|
||||
})
|
||||
}
|
||||
})
|
||||
this.setData({
|
||||
venuesInfoId: options.venuesInfoId
|
||||
});
|
||||
|
@ -43,7 +43,8 @@
|
||||
<view class="row-title">验证码:</view>
|
||||
<view class="row-input">
|
||||
<input placeholder="请输入验证码" class="code-input" model:value="{{smsCode}}"></input>
|
||||
<view class="get-code">获取验证码</view>
|
||||
<view class="get-code" bindtap="getSmsCoce" wx:if="{{!gotCode}}">获取验证码</view>
|
||||
<view class="got-code" wx:else>{{restTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -220,4 +220,18 @@
|
||||
.top{
|
||||
background: #9F1512;
|
||||
color: #fff;
|
||||
}
|
||||
.get-code, .got-code{
|
||||
font-size: 28rpx;
|
||||
background: rgba(159,21,18,.1);
|
||||
color: #9F1512;
|
||||
width: 28%;
|
||||
line-height: 55rpx;
|
||||
text-align: center;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
.got-code{
|
||||
background: #fff;
|
||||
color: #4a4d52;
|
||||
border: 1px solid #eaeaea;
|
||||
}
|
@ -104,6 +104,14 @@ Page({
|
||||
},
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 跳转到我的预订列表
|
||||
*/
|
||||
toMyOrder: function() {
|
||||
wx.navigateTo({
|
||||
url: '../order/order',
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 跳转到我的志愿团队页面
|
||||
*/
|
||||
@ -120,6 +128,22 @@ Page({
|
||||
url: '../myVolunteerActivity/myVolunteerActivity',
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 跳转到我发布的朋友圈页面
|
||||
*/
|
||||
toMyFirend: function () {
|
||||
wx.navigateTo({
|
||||
url: '../myFriendCircle/myFriendCircle',
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 跳转到我预定的场馆页面
|
||||
*/
|
||||
toMyOrder: function () {
|
||||
wx.navigateTo({
|
||||
url: '../order/order',
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
|
@ -11,6 +11,14 @@
|
||||
<view class="main">
|
||||
<view class="main-title">常用功能</view>
|
||||
<view class="main-container">
|
||||
<view class="main-box" bindtap="toMyOrder">
|
||||
<image src="../../images/my-sign.png"></image>
|
||||
<view class="title">我的预订</view>
|
||||
</view>
|
||||
<view class="main-box" bindtap="toMyFirend">
|
||||
<image src="../../images/friend.png"></image>
|
||||
<view class="title">我的发布</view>
|
||||
</view>
|
||||
<view class="main-box">
|
||||
<image src="../../images/my-sign.png"></image>
|
||||
<view class="title">我的报名</view>
|
||||
|
@ -55,6 +55,7 @@
|
||||
text-align: center;
|
||||
padding: 0 15rpx;
|
||||
box-sizing: border-box;
|
||||
margin-bottom: 15rpx;
|
||||
}
|
||||
.main-box image{
|
||||
width: 65rpx;
|
||||
|
@ -53,6 +53,16 @@ Page({
|
||||
wx.hideLoading();
|
||||
});
|
||||
},
|
||||
newFriendCircle: function () {
|
||||
wx.navigateTo({
|
||||
url: '../newFriendCircle/newFriendCircle',
|
||||
})
|
||||
},
|
||||
toMyFriendCircle: function () {
|
||||
wx.navigateTo({
|
||||
url: '../myFriendCircle/myFriendCircle',
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
|
@ -48,4 +48,8 @@
|
||||
<view class="date">{{item.gmtCreate}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="new-friend-circle">
|
||||
<view class="box new" bindtap="newFriendCircle">发布</view>
|
||||
<view class="box" bindtap="toMyFriendCircle">我的</view>
|
||||
</view>
|
@ -49,4 +49,23 @@
|
||||
}
|
||||
.video video{
|
||||
width: 100%;
|
||||
}
|
||||
.new-friend-circle{
|
||||
position: fixed;
|
||||
right: 30rpx;
|
||||
bottom: 30rpx;
|
||||
}
|
||||
.box{
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: #9F1512;
|
||||
color: #fff;
|
||||
font-size: 32rpx;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.new{
|
||||
margin-bottom: 10rpx;
|
||||
}
|
@ -4,11 +4,6 @@ Page({
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
randomName: '',
|
||||
showPhone: true,
|
||||
gotCode: false,
|
||||
restTime: 120,
|
||||
timer: '',
|
||||
indicatorDots: true,
|
||||
autoplay: true,
|
||||
token: '',
|
||||
@ -31,8 +26,7 @@ Page({
|
||||
live: {
|
||||
liveUrl: app.liveUrl,
|
||||
liveList: []
|
||||
},
|
||||
usercenterUrl: app.usercenterUrl
|
||||
}
|
||||
},
|
||||
doLogin: function () {
|
||||
var self = this;
|
||||
@ -65,9 +59,6 @@ Page({
|
||||
page: 1,
|
||||
rows: 5
|
||||
}, null, function(code, data) {
|
||||
for(var i = 0, item; item = data.rows[i++];) {
|
||||
item.cover = item.libraryCover.split(',')[0];
|
||||
}
|
||||
self.setData({
|
||||
'library.bannerLibrary': data.rows
|
||||
});
|
||||
@ -127,11 +118,6 @@ Page({
|
||||
app.dialog.msg(data.msg);
|
||||
});
|
||||
},
|
||||
goCultureDetail: function(event) {
|
||||
wx.navigateTo({
|
||||
url: '../cultureDetail/cultureDetail?libraryId='+ event.currentTarget.dataset.libraryId,
|
||||
})
|
||||
},
|
||||
goNewsDetail: function (event) {
|
||||
wx.navigateTo({
|
||||
url: '../newsDetail/newsDetail?templateRecordUrl='+ event.currentTarget.dataset.templateRecordUrl,
|
||||
@ -172,128 +158,6 @@ Page({
|
||||
url: '../heritage/heritage',
|
||||
})
|
||||
},
|
||||
// 获取输入的手机号
|
||||
phoneNum: function (res) {
|
||||
this.setData({
|
||||
phone: res.detail.value
|
||||
})
|
||||
console.log(this.data.phone)
|
||||
},
|
||||
// 校验手机号
|
||||
testPhone: function () {
|
||||
var self = this
|
||||
if (self.data.phone) {
|
||||
if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(self.data.phone)) {
|
||||
wx.showToast({
|
||||
title: '请输入正确的手机号',
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
})
|
||||
} else {
|
||||
self.getCode()
|
||||
}
|
||||
} else {
|
||||
wx.showToast({
|
||||
title: '手机号不能为空',
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
})
|
||||
}
|
||||
},
|
||||
// 获取验证码
|
||||
getCode: function () {
|
||||
var self = this
|
||||
app.restAjax.get(app.restAjax.path('{usercenterUrl}/api/sms/getverificationcode/' + self.data.phone, [app.usercenterUrl]), {}, null,
|
||||
function (code, data) {
|
||||
if (code == 200) {
|
||||
console.log(data)
|
||||
self.setData({
|
||||
gotCode: true
|
||||
})
|
||||
self.data.timer = setInterval(function () {
|
||||
var cur = self.data.restTime - 1
|
||||
if (cur == 0) {
|
||||
clearInterval(self.data.timer)
|
||||
self.setData({
|
||||
restTime: 120,
|
||||
gotCode: false
|
||||
})
|
||||
} else {
|
||||
self.setData({
|
||||
restTime: cur
|
||||
})
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
},
|
||||
function (code, data) {
|
||||
wx.showToast({
|
||||
title: data.msg,
|
||||
icon: 'none',
|
||||
duration: 1500
|
||||
})
|
||||
} )
|
||||
},
|
||||
// 提交绑定手机
|
||||
submitPhone: function () {
|
||||
var self = this
|
||||
app.restAjax.put(app.restAjax.path('{usercenterUrl}/app/user/updateminiappdefaultusername', [app.usercenterUrl]), {
|
||||
phone: self.data.phone,
|
||||
verificationCode: self.data.code
|
||||
}, {
|
||||
headers: {
|
||||
token: self.data.token
|
||||
}
|
||||
}, function (code, data) {
|
||||
wx.showTabBar();
|
||||
wx.setStorageSync('token', data.data);
|
||||
wx.setStorageSync('isRandomUsername', 0)
|
||||
clearInterval(self.data.timer)
|
||||
self.setData({
|
||||
showPhone: false,
|
||||
restTime: 120
|
||||
})
|
||||
self.getUserInfo();
|
||||
}, function (code, data) {
|
||||
console.log(data)
|
||||
})
|
||||
},
|
||||
// 验证码
|
||||
inputCode: function (e) {
|
||||
this.setData({
|
||||
code: e.detail.value
|
||||
})
|
||||
},
|
||||
// 判断用户是否为随机名称
|
||||
isRandomName: function () {
|
||||
var self = this
|
||||
wx.getStorage({
|
||||
key: 'isRandomUsername',
|
||||
success: function (res) {
|
||||
if (res.data == 1) {
|
||||
wx.hideTabBar()
|
||||
self.setData({
|
||||
randomName: true
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取用户信息
|
||||
getUserInfo: function () {
|
||||
var self = this
|
||||
app.restAjax.get(app.restAjax.path('{usercenterUrl}/app/user/getappuser', [app.usercenterUrl]), {}, {
|
||||
headers: {
|
||||
token: self.data.token
|
||||
}
|
||||
}, function (code, data) {
|
||||
self.setData({
|
||||
userInfo: data
|
||||
})
|
||||
}, function (code, data) {
|
||||
console.log(data)
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
@ -305,14 +169,13 @@ Page({
|
||||
self.doGetLiveList();
|
||||
self.doGetVenueList();
|
||||
self.doGetActivityList();
|
||||
self.isRandomName();
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
|
116
pages/myFriendCircle/myFriendCircle.js
Normal file
116
pages/myFriendCircle/myFriendCircle.js
Normal file
@ -0,0 +1,116 @@
|
||||
// pages/friendCircle/friendCircle.js
|
||||
var app = getApp();
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
usercenterUrl: app.usercenterUrl,
|
||||
socialUrl: app.socialUrl,
|
||||
momentsList: [],
|
||||
currentPage: 1,
|
||||
rows: 20
|
||||
},
|
||||
doGetMomentsList: function(page) {
|
||||
var self = this;
|
||||
app.dialog.loading('正在加载');
|
||||
app.restAjax.get(app.restAjax.path('{socialUrl}/app/moments/listpagemomentsofpublicrelease', [self.data.socialUrl]), {
|
||||
page: page,
|
||||
rows: self.data.rows
|
||||
}, null, function(code, data) {
|
||||
if(data.rows.length == 0) {
|
||||
app.dialog.msg('暂无数据');
|
||||
return;
|
||||
}
|
||||
for(var i = 0, item; item = data.rows[i++];) {
|
||||
if(item.type === 'photo') {
|
||||
var photos = item.photos.split(',');
|
||||
var photoArray = [];
|
||||
for(var j = 0, jItem; jItem = photos[j++];) {
|
||||
if(jItem.length != 0) {
|
||||
photoArray.push(jItem);
|
||||
}
|
||||
}
|
||||
item.photoArray = photoArray;
|
||||
}
|
||||
}
|
||||
var momentsArray;
|
||||
if(page <= 1) {
|
||||
momentsArray = data.rows;
|
||||
} else {
|
||||
momentsArray = self.data.news.newsList;
|
||||
momentsArray = momentsArray.concat(data.rows);
|
||||
}
|
||||
self.setData({
|
||||
currentPage: page,
|
||||
momentsList: momentsArray
|
||||
})
|
||||
}, function(code, data) {
|
||||
app.dialog.msg(data.msg);
|
||||
}, function() {
|
||||
wx.stopPullDownRefresh();
|
||||
wx.hideLoading();
|
||||
});
|
||||
},
|
||||
newFriendCircle: function () {
|
||||
wx.navigateTo({
|
||||
url: '../newFriendCircle/newFriendCircle',
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
this.doGetMomentsList(1);
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
this.doGetMomentsList(1);
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
this.doGetMomentsList(this.data.currentPage + 1);
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function () {
|
||||
|
||||
}
|
||||
})
|
3
pages/myFriendCircle/myFriendCircle.json
Normal file
3
pages/myFriendCircle/myFriendCircle.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
54
pages/myFriendCircle/myFriendCircle.wxml
Normal file
54
pages/myFriendCircle/myFriendCircle.wxml
Normal file
@ -0,0 +1,54 @@
|
||||
<view class="friend-circle" wx:for="{{momentsList}}" wx:for-item="item" wx:for-index="index" wx:key="momentsList">
|
||||
<view class="friend-circle-box" wx:if="{{item.type === 'text'}}">
|
||||
<view class="avatar">
|
||||
<image src="{{usercenterUrl}}/app/user/downloadavatar/{{item.creator}}"></image>
|
||||
</view>
|
||||
<view class="content">
|
||||
<view class="name">{{item.creatorName}}</view>
|
||||
<view class="text">{{item.content}}</view>
|
||||
<view class="date">{{item.gmtCreate}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="friend-circle-box" wx:if="{{item.type === 'photo' && item.photoArray.length === 1}}">
|
||||
<view class="avatar">
|
||||
<image src="{{usercenterUrl}}/app/user/downloadavatar/{{item.creator}}"></image>
|
||||
</view>
|
||||
<view class="content">
|
||||
<view class="name">{{item.creatorName}}</view>
|
||||
<view class="text">{{item.content}}</view>
|
||||
<view class="photo-one">
|
||||
<image src="{{socialUrl}}/route/file/downloadfile/true/{{item.photoArray[0]}}"></image>
|
||||
</view>
|
||||
<view class="date">{{item.gmtCreate}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="friend-circle-box" wx:if="{{item.type === 'photo' && item.photoArray.length > 1}}">
|
||||
<view class="avatar">
|
||||
<image src="{{usercenterUrl}}/app/user/downloadavatar/{{item.creator}}"></image>
|
||||
</view>
|
||||
<view class="content">
|
||||
<view class="name">{{item.creatorName}}</view>
|
||||
<view class="text">{{item.content}}</view>
|
||||
<view class="photo-more">
|
||||
<image src="{{socialUrl}}/route/file/downloadfile/true/{{photo}}" wx:for="{{item.photoArray}}" wx:for-item="photo" wx:for-index="photoIndex" wx:key="photoArray"></image>
|
||||
</view>
|
||||
<view class="date">{{item.gmtCreate}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="friend-circle-box" wx:if="{{item.type === 'video'}}">
|
||||
<view class="avatar">
|
||||
<image src="{{usercenterUrl}}/app/user/downloadavatar/{{item.creator}}"></image>
|
||||
</view>
|
||||
<view class="content">
|
||||
<view class="name">{{item.creatorName}}</view>
|
||||
<view class="text">{{item.content}}</view>
|
||||
<view class="video">
|
||||
<video src="{{socialUrl}}/route/file/downloadfile/true/{{item.video}}"></video>
|
||||
</view>
|
||||
<view class="date">{{item.gmtCreate}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="new-friend-circle">
|
||||
<view class="box new" bindtap="newFriendCircle">发布</view>
|
||||
</view>
|
68
pages/myFriendCircle/myFriendCircle.wxss
Normal file
68
pages/myFriendCircle/myFriendCircle.wxss
Normal file
@ -0,0 +1,68 @@
|
||||
.friend-circle{
|
||||
padding: 15rpx 30rpx;
|
||||
border-bottom: 1px solid #DEDEDE;
|
||||
}
|
||||
.friend-circle:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
.friend-circle-box{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.avatar{
|
||||
width: 8%;
|
||||
}
|
||||
.avatar image{
|
||||
width: 100%;
|
||||
height: 50rpx;
|
||||
border-radius: 50rpx;
|
||||
}
|
||||
.content{
|
||||
width: 90%;
|
||||
}
|
||||
.name{
|
||||
font-size: 30rpx;
|
||||
color: #949494;
|
||||
}
|
||||
.text{
|
||||
font-size: 32rpx;
|
||||
color: #000;
|
||||
margin: 10rpx 0;
|
||||
}
|
||||
.date{
|
||||
font-size: 28rpx;
|
||||
color: #949494;
|
||||
}
|
||||
.photo-one image{
|
||||
width: 100%;
|
||||
}
|
||||
.photo-more image{
|
||||
width: 32%;
|
||||
height: 150rpx;
|
||||
margin-right: 2%;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
.photo-more image:nth-child(3n){
|
||||
margin-right: 0;
|
||||
}
|
||||
.video video{
|
||||
width: 100%;
|
||||
}
|
||||
.new-friend-circle{
|
||||
position: fixed;
|
||||
right: 30rpx;
|
||||
bottom: 30rpx;
|
||||
}
|
||||
.box{
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: #9F1512;
|
||||
color: #fff;
|
||||
font-size: 32rpx;
|
||||
border-radius: 50%;
|
||||
}
|
130
pages/newFriendCircle/newFriendCircle.js
Normal file
130
pages/newFriendCircle/newFriendCircle.js
Normal file
@ -0,0 +1,130 @@
|
||||
// pages/newFriendCircle/newFriendCircle.js
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
showAdd: true,
|
||||
selectedType: '',
|
||||
selectedList: [],
|
||||
isPublic: '' //朋友圈是否公开
|
||||
},
|
||||
changepublic: function (e) {
|
||||
this.setData({
|
||||
isPublic: e.detail.value
|
||||
})
|
||||
},
|
||||
selectContent: function () {
|
||||
var self = this
|
||||
wx.chooseMedia({
|
||||
count: 9 - self.data.selectedList.length,
|
||||
mediaType: ['image','video'],
|
||||
sourceType: ['album', 'camera'],
|
||||
success: function (res) {
|
||||
console.log(res)
|
||||
if (res.type == 'image') {
|
||||
self.setData({
|
||||
selectedType: res.type,
|
||||
selectedList: self.data.selectedList.concat(res.tempFiles)
|
||||
})
|
||||
} else {
|
||||
self.setData({
|
||||
selectedType: res.type,
|
||||
selectedList: self.data.selectedList.concat(res.tempFiles)
|
||||
})
|
||||
}
|
||||
self.isShowAdd()
|
||||
console.log(self.data.selectedList)
|
||||
}
|
||||
})
|
||||
},
|
||||
deletePhoto: function (e) {
|
||||
var self = this
|
||||
var now = e.currentTarget.dataset.idx
|
||||
var result = self.data.selectedList
|
||||
result.splice(now, 1)
|
||||
this.setData({
|
||||
selectedList: result
|
||||
})
|
||||
self.isShowAdd('delete')
|
||||
},
|
||||
isShowAdd: function (from) {
|
||||
if (this.data.selectedType == 'image') {
|
||||
if (this.data.selectedList.length < 9) {
|
||||
this.setData({
|
||||
showAdd: true
|
||||
})
|
||||
} else {
|
||||
this.setData({
|
||||
showAdd: false
|
||||
})
|
||||
}
|
||||
} else {
|
||||
if (from) {
|
||||
this.setData({
|
||||
showAdd: true
|
||||
})
|
||||
} else {
|
||||
this.setData({
|
||||
showAdd: false
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function () {
|
||||
|
||||
}
|
||||
})
|
3
pages/newFriendCircle/newFriendCircle.json
Normal file
3
pages/newFriendCircle/newFriendCircle.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
30
pages/newFriendCircle/newFriendCircle.wxml
Normal file
30
pages/newFriendCircle/newFriendCircle.wxml
Normal file
@ -0,0 +1,30 @@
|
||||
<view class="new-friend-circle">
|
||||
<view class="text">
|
||||
<textarea placeholder="请输入内容"></textarea>
|
||||
</view>
|
||||
<view class="select">
|
||||
<view class="photo" wx:for="{{selectedList}}" wx:key="index" wx:if="{{selectedList.length > 0}}">
|
||||
<view class="type-box" wx:if="{{selectedType == 'image'}}">
|
||||
<image src="{{item.tempFilePath}}"></image>
|
||||
<image src="../../images/delete-photo.png" class="delete" bindtap="deletePhoto" data-idx="{{index}}"></image>
|
||||
</view>
|
||||
<view class="type-box" wx:else>
|
||||
<video src="{{item.tempFilePath}}"></video>
|
||||
<image src="../../images/delete-photo.png" class="delete" bindtap="deletePhoto" data-idx="{{index}}"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="add" bindtap="selectContent" wx:if="{{showAdd}}">
|
||||
<image src="../../images/new.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="is-public">
|
||||
是否公开:
|
||||
<radio-group bindchange="changepublic">
|
||||
<radio value="true" color="#9F1512">公开</radio>
|
||||
<radio value="false" color="#9F1512">不公开</radio>
|
||||
</radio-group>
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit">
|
||||
发布
|
||||
</view>
|
79
pages/newFriendCircle/newFriendCircle.wxss
Normal file
79
pages/newFriendCircle/newFriendCircle.wxss
Normal file
@ -0,0 +1,79 @@
|
||||
.new-friend-circle{
|
||||
padding: 30rpx;
|
||||
margin-bottom: 100rpx;
|
||||
}
|
||||
.text{
|
||||
width: 100%;
|
||||
height: 250rpx;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
.text textarea{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 1px solid #DEDEDE;
|
||||
padding: 15rpx;
|
||||
box-sizing: border-box;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
.add{
|
||||
width: 32%;
|
||||
height: 200rpx;
|
||||
background: #DEDEDE;
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
vertical-align: top;
|
||||
}
|
||||
.add image{
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
}
|
||||
.is-public{
|
||||
margin-top: 20rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.is-public radio-group{
|
||||
display: inline-block;
|
||||
}
|
||||
.is-public radio-group radio{
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.photo{
|
||||
display: inline-block;
|
||||
width: 32%;
|
||||
height: 200rpx;
|
||||
margin-right: 2%;
|
||||
position: relative;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.photo:nth-child(3n){
|
||||
margin-right: 0;
|
||||
}
|
||||
.photo image{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.photo image.delete{
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
position: absolute;
|
||||
top: -15rpx;
|
||||
right: -15rpx;
|
||||
}
|
||||
.type-box, .type-box video{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.submit{
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: #9F1512;
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #fff;
|
||||
font-size: 32rpx;
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
var app = getApp();
|
||||
// pages/order/order.js
|
||||
Page({
|
||||
|
||||
@ -5,14 +6,62 @@ Page({
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
venueUrl : app.venueUrl,
|
||||
imgRoute : '/route/file/downloadfile/true/',
|
||||
token: '',
|
||||
orderList:[],
|
||||
page: 1,
|
||||
rows: 10,
|
||||
total: 0
|
||||
},
|
||||
|
||||
//查询订单列表
|
||||
listOrderList: function() {
|
||||
var self = this;
|
||||
app.dialog.loading('请稍等');
|
||||
app.restAjax.get(app.restAjax.path('{venueUrl}/app/booking/listpagemyticket', [app.venueUrl]),
|
||||
{page: self.data.page,rows: self.data.rows}, {headers:{token : self.data.token}},
|
||||
function (code, data) {
|
||||
data.rows.forEach(element => {
|
||||
element.venuePanorama = element.venuePanorama.split(',')[0]
|
||||
});
|
||||
self.setData({
|
||||
orderList: data.rows,
|
||||
page: data.page,
|
||||
total: data.total
|
||||
});
|
||||
},
|
||||
function (code, data) {
|
||||
app.dialog.msg(data.msg);
|
||||
},function(){
|
||||
wx.hideLoading();
|
||||
})
|
||||
},
|
||||
|
||||
//订单详情页
|
||||
toOrderDetail: function(options){
|
||||
var groundBookingId = options.currentTarget.dataset.id;
|
||||
if(!groundBookingId){
|
||||
return false;
|
||||
}
|
||||
wx.navigateTo({
|
||||
url: '../orderDetail/orderDetail?groundBookingId=' + groundBookingId,
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
|
||||
wx.getStorage({
|
||||
key: 'token',
|
||||
success: (result) => {
|
||||
this.setData({
|
||||
token : result.data
|
||||
})
|
||||
this.listOrderList();
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
@ -47,14 +96,12 @@ Page({
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -1,30 +1,25 @@
|
||||
<view class="order">
|
||||
<view class="order-box">
|
||||
<view class="order-box" wx:for="{{orderList}}" wx:key="inedx" bindtap="toOrderDetail" data-id="{{item.groundBookingId}}">
|
||||
<view class="order-img">
|
||||
<image src="../../images/center-bg.png"></image>
|
||||
<image src="{{venueUrl}}{{imgRoute}}{{item.venuePanorama}}"></image>
|
||||
</view>
|
||||
<view class="order-info">
|
||||
<view class="venue-project">
|
||||
<view class="venue">场馆场馆场馆场馆</view>
|
||||
<view class="project">篮球</view>
|
||||
<view class="venue">{{item.venuesName}}</view>
|
||||
<view class="project">{{item.projectName}}</view>
|
||||
</view>
|
||||
<view class="order-text">订单编号:01010101</view>
|
||||
<view class="order-text">下单时间:2020-01-01</view>
|
||||
<view class="price">¥15元</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="order-box">
|
||||
<view class="order-img">
|
||||
<image src="../../images/center-bg.png"></image>
|
||||
</view>
|
||||
<view class="order-info">
|
||||
<view class="venue-project">
|
||||
<view class="venue">场馆场馆场馆场馆</view>
|
||||
<view class="project">篮球</view>
|
||||
<view class="order-text">订单编号:{{item.serial}}</view>
|
||||
<view class="order-text">下单时间:{{item.gmtCreate}}</view>
|
||||
<view wx:if="{{item.orderType == '0'}}">
|
||||
<view class="price" wx:if="{{item.price == '0' || item.price == ''}}">¥15元</view>
|
||||
<view class="price" wx:else>¥{{item.price}}元</view>
|
||||
</view>
|
||||
<view wx:if="{{item.orderType == '1'}}">
|
||||
<view class="status">已取消</view>
|
||||
</view>
|
||||
<view wx:if="{{item.orderType == '2'}}">
|
||||
<view class="status">已过期</view>
|
||||
</view>
|
||||
<view class="order-text">订单编号:01010101</view>
|
||||
<view class="order-text">下单时间:2020-01-01</view>
|
||||
<view class="price">¥15元</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
@ -45,4 +45,11 @@
|
||||
.price{
|
||||
font-size: 32rpx;
|
||||
color:#9F1512;
|
||||
}
|
||||
.status{
|
||||
display: inline-block;
|
||||
padding: 0 10rpx;
|
||||
background: #DEDEDE;
|
||||
color: #FFF;
|
||||
font-size: 30rpx;
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
var app = getApp();
|
||||
// pages/orderDetail/orderDetail.js
|
||||
Page({
|
||||
|
||||
@ -5,14 +6,118 @@ Page({
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
venueUrl : app.venueUrl,
|
||||
imgRoute : '/route/file/downloadfile/true/',
|
||||
token:'',
|
||||
groundBookingId: '',
|
||||
serial: '',
|
||||
venuesName: '',
|
||||
projectName: '',
|
||||
venuePanorama: '',
|
||||
gmtCreate: '',
|
||||
price: '',
|
||||
itemList:[],
|
||||
cancelType: false,
|
||||
},
|
||||
|
||||
//查询订单详情
|
||||
getDetail: function(){
|
||||
var self = this;
|
||||
app.dialog.loading('请稍等');
|
||||
app.restAjax.get(app.restAjax.path('{venueUrl}/app/booking/getmyticketdetail/{groundBookingId}', [app.venueUrl,self.data.groundBookingId]),
|
||||
{}, {headers:{token : self.data.token}},
|
||||
function (code, data) {
|
||||
self.setData({
|
||||
serial: data.data.serial,
|
||||
venuesName: data.data.venuesName,
|
||||
projectName: data.data.projectName,
|
||||
venuePanorama: data.data.venuePanorama.split(',')[0],
|
||||
gmtCreate: data.data.gmtCreate.substring(0,19),
|
||||
itemList: data.data.itemDTOList,
|
||||
cancelType: false
|
||||
})
|
||||
var totalPrice = 0;
|
||||
self.data.itemList.forEach(element => {
|
||||
if(element.orderType != '1'){
|
||||
totalPrice += Number(element.price);
|
||||
}
|
||||
if(element.orderType == '0'){
|
||||
self.setData({
|
||||
cancelType: true
|
||||
})
|
||||
}
|
||||
});
|
||||
self.setData({
|
||||
price: totalPrice
|
||||
})
|
||||
},
|
||||
function (code, data) {
|
||||
app.dialog.msg(data.msg);
|
||||
},function(){
|
||||
wx.hideLoading();
|
||||
})
|
||||
},
|
||||
|
||||
//取消预订场次
|
||||
cancelItem: function(options){
|
||||
var self = this;
|
||||
var bookingItemId = options.currentTarget.dataset.id;
|
||||
var unCancelNum = 0;
|
||||
self.data.itemList.forEach(element => {
|
||||
if(element.orderType == '0'){
|
||||
unCancelNum++;
|
||||
}
|
||||
});
|
||||
//取消一个
|
||||
if(unCancelNum > 1){
|
||||
app.dialog.loading('请稍等');
|
||||
app.restAjax.delete(app.restAjax.path('{venueUrl}/app/booking/removemyticketitem/{groundBookingId}/{bookingItemId}',
|
||||
[app.venueUrl,self.data.groundBookingId,bookingItemId]), {}, {headers:{token : self.data.token}},
|
||||
function (code, data) {
|
||||
self.getDetail();
|
||||
},
|
||||
function (code, data) {
|
||||
app.dialog.msg(data.msg);
|
||||
},function(){
|
||||
wx.hideLoading();
|
||||
})
|
||||
}
|
||||
//取消全部
|
||||
if(unCancelNum <= 1){
|
||||
self.cancelAll();
|
||||
}
|
||||
},
|
||||
|
||||
//全部取消
|
||||
cancelAll: function(){
|
||||
var self = this;
|
||||
app.dialog.loading('请稍等');
|
||||
app.restAjax.delete(app.restAjax.path('{venueUrl}/app/booking/removemyticket/{groundBookingId}',
|
||||
[app.venueUrl,self.data.groundBookingId]), {}, {headers:{token : self.data.token}},
|
||||
function (code, data) {
|
||||
self.getDetail();
|
||||
},
|
||||
function (code, data) {
|
||||
app.dialog.msg(data.msg);
|
||||
},function(){
|
||||
wx.hideLoading();
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
|
||||
wx.getStorage({
|
||||
key: 'token',
|
||||
success: (result) => {
|
||||
this.setData({
|
||||
token : result.data,
|
||||
groundBookingId: options.groundBookingId
|
||||
})
|
||||
this.getDetail();
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -1,67 +1,40 @@
|
||||
<view class="venue">
|
||||
<view class="venue-img">
|
||||
<image src="../../images/center-bg.png"></image>
|
||||
<image wx:if="{{venuePanorama}}" src="{{venueUrl}}{{imgRoute}}{{venuePanorama}}"></image>
|
||||
</view>
|
||||
<view class="venue-info">
|
||||
<view class="venue-title">场馆</view>
|
||||
<view class="venue-title">{{venuesName}}</view>
|
||||
<view class="time-number">
|
||||
<text>订单编号:</text>123456789
|
||||
<text>订单编号:</text>{{serial}}
|
||||
</view>
|
||||
<view class="time-number">
|
||||
<text>下单时间:</text>10:10:10
|
||||
<text>下单时间:</text>{{gmtCreate}}
|
||||
</view>
|
||||
<view class="time-number">
|
||||
<text>价 格:</text>15元
|
||||
<view class="time-number" wx:if="{{price == '0' || price == ''}}">
|
||||
<text>价 格:</text> -
|
||||
</view>
|
||||
<view class="time-number" wx:else>
|
||||
<text>价 格:</text> {{price}}元
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="book">
|
||||
<view class="book-title">预定详情</view>
|
||||
<view class="book-title">{{projectName}}-预定详情</view>
|
||||
<view class="order">
|
||||
<view class="order-box">
|
||||
<view class="order-box" wx:for="{{itemList}}" wx:key="index">
|
||||
<view class="top">
|
||||
<view>2020-01-01</view>
|
||||
<view>12:00-13:00</view>
|
||||
<view>{{item.bookingOrderDate}}</view>
|
||||
<view>{{item.timeStr}}-{{item.timeEnd}}</view>
|
||||
</view>
|
||||
<view class="bottom">
|
||||
<view>场地1</view>
|
||||
<view>15元</view>
|
||||
<view class="cancel">取消预定</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="order-box">
|
||||
<view class="top">
|
||||
<view>2020-01-01</view>
|
||||
<view>12:00-13:00</view>
|
||||
</view>
|
||||
<view class="bottom">
|
||||
<view>场地1</view>
|
||||
<view>15元</view>
|
||||
<view class="time-out">已过期</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="order-box">
|
||||
<view class="top">
|
||||
<view>2020-01-01</view>
|
||||
<view>12:00-13:00</view>
|
||||
</view>
|
||||
<view class="bottom">
|
||||
<view>场地1</view>
|
||||
<view>15元</view>
|
||||
<view class="time-out">已取消</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="order-box">
|
||||
<view class="top">
|
||||
<view>2020-01-01</view>
|
||||
<view>12:00-13:00</view>
|
||||
</view>
|
||||
<view class="bottom">
|
||||
<view>场地1</view>
|
||||
<view>15元</view>
|
||||
<view class="cancel">取消预定</view>
|
||||
<view>{{item.groundName}}</view>
|
||||
<view wx:if="{{item.price == '' || item.price == '0'}}">免费</view>
|
||||
<view wx:else>{{item.price}}元</view>
|
||||
<view class="cancel" wx:if="{{item.orderType == '0'}}" bindtap="cancelItem" data-id="{{item.bookingItemId}}">取消预定</view>
|
||||
<view class="time-out" wx:if="{{item.orderType == '1'}}">已取消</view>
|
||||
<view class="time-out" wx:if="{{item.orderType == '2'}}">已过期</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="cancel-all">全部取消</view>
|
||||
<view class="cancel-all" wx:if="{{cancelType}}" bindtap="cancelAll">全部取消</view>
|
Loading…
Reference in New Issue
Block a user