Commit 45962e2d by 严立

LL - 观影报名

parents c6171533 8cc2e3b2
......@@ -163,6 +163,13 @@ App({
if (obj && obj.success) {
obj.success(funcResponse.token)
}
// 防止无限刷新 token 的紧急修复手段
if (obj && obj.error) {
wx.switchTab({
url: '/pages/home/home'
})
}
},
})
}
......@@ -269,13 +276,7 @@ App({
this.globalData.token = ''
this.globalData.refreshToken = ''
// 记录原始请求参数
let funcCallBackFunction = {
success: () => {
this.wxRequest(obj)
}
}
this.login(funcCallBackFunction)
this.login({ error: true })
break
}
}
......
......@@ -11,6 +11,7 @@
flex-direction: row;
align-items: center;
width: 200rpx;
padding-left: 14rpx;
}
.navbar-operation-back,
......@@ -26,5 +27,6 @@
}
.title-text text {
font-size: 14px;
font-size: 17px;
font-weight: 500;
}
\ No newline at end of file
......@@ -30,11 +30,11 @@ Page({
onLoad: function (options) {
this.setSideHeight()
this.queryDetail()
this.queryActivity()
},
onShow: function () {
this.setShopInfo(3, 1)
this.queryDetail()
this.queryActivity()
},
setSideHeight: function () {
......
......@@ -53,7 +53,7 @@
<!-- 饮品预订 文创周边-->
<view class="buy-other row con-b">
<!-- 饮品预订 -->
<view class="buy-snacks row" bindtap="onBuySnacks" data-id="{{6}}">
<view class="buy-snacks row" bindtap="onBuySnacks" data-id="{{3}}">
<view class="buy-left col con-c">
<image src="./image/yinpinyuding.png"></image>
</view>
......@@ -63,7 +63,7 @@
</view>
</view>
<!-- 文创周边 -->
<view class="buy-art row" bindtap="onBuyArt" data-id="{{1}}">
<view class="buy-art row" bindtap="onBuyArt" data-id="{{3}}">
<view class="buy-left col con-c">
<image src="./image/wenchuangzhoubian.png"></image>
</view>
......
......@@ -34,6 +34,7 @@ Page({
},
onLoad: function (option) {
console.log(option)
this.setData({
option: option
})
......
......@@ -109,23 +109,23 @@
<text>{{'共' + selectionTotal + '件,优惠 ¥' + amountDiscount}}</text>
</view>
</view>
<view class="order_pay_wrap row con-c align-c" bindtap="onPaySubmit">结算</view>
<view class="order-pay-wrap row con-c align-c" bindtap="onPaySubmit">结算</view>
<!-- 库存提示弹窗 -->
<l-popup show="{{isEnough}}" content-align="center" locked="{{true}}">
<view class="popup_wrap">
<view class="popup_title">抱歉,您本单商品有2件库存不足</view>
<view class="popup_list">
<view class="popup_item row align-c" wx:for="{{notEnough}}" wx:key="id">
<view class="popup_item_img">
<view class="popup-wrap">
<view class="popup-title">抱歉,您本单商品有2件库存不足</view>
<view class="popup-list">
<view class="popup-item row align-c" wx:for="{{notEnough}}" wx:key="id">
<view class="popup-item-img">
<image mode="widthFix" src="{{item.img}}"></image>
</view>
<view class="popup_item_title">{{item.title}}</view>
<view class="popup-item-title">{{item.title}}</view>
</view>
</view>
<view class="popup_back_cart row con-c align-c" bindtap="handleBackCart">返回购物车</view>
<view class="popup-back-cart row con-c align-c" bindtap="handleBackCart">返回购物车</view>
</view>
<view class="popup_close_btn row con-c align-c" bindtap="handleClosePopup">
<view class="popup_close">
<view class="popup-close-btn row con-c align-c" bindtap="handleClosePopup">
<view class="popup-close">
<image mode="widthFix" src="../../../image/icon_close.png"></image>
</view>
</view>
......
......@@ -256,15 +256,17 @@
color: #15191F;
}
.order_pay_wrap {
.order-pay-wrap {
width: 188rpx;
height: 96rpx;
font-size: 30rpx;
color: #fff;
font-weight: 600;
background-color: #86c5e1;
border-radius: 4rpx;
}
.popup_wrap {
.popup-wrap {
width: 606rpx;
height: 690rpx;
padding: 0 40rpx;
......@@ -272,7 +274,7 @@
border-radius: 4rpx;
}
.popup_title {
.popup-title {
padding: 56rpx 0;
font-size: 34rpx;
font-weight: 600;
......@@ -281,26 +283,26 @@
border-bottom: 1px solid #e2e7ef;
}
.popup_list {
.popup-list {
padding: 26rpx 0;
}
.popup_item {
.popup-item {
padding: 32rpx 0;
}
.popup_item_img {
.popup-item-img {
width: 96rpx;
height: 96rpx;
}
.popup_item_title {
.popup-item-title {
margin-left: 32rpx;
font-size: 30rpx;
color: #15191f;
}
.popup_back_cart {
.popup-back-cart {
width: 526rpx;
height: 80rpx;
margin-top: 32rpx;
......
......@@ -269,7 +269,7 @@ Page({
winButtonPay: false, // 立即支付
winButtonAppointment: true, // 确认预约
})
this.setEntryTime()
this.setEntryTime(this.data.shoppingCartList[0].entryId)
break
}
......@@ -389,7 +389,7 @@ Page({
* @param
* @returns
*/
setEntryTime: function () {
setEntryTime: function (funcEntryId) {
let funcItem = wx.getStorageSync('shoppingCartBuffer')[0]
App.wxRequest({
url: '/api/v1/activity/getEnrollView',
......@@ -398,7 +398,6 @@ Page({
},
success: (response) => {
let funcResponse = response.data
console.log(funcResponse)
let funcTimetable = funcResponse.activityTimes
let funcDate = []
......@@ -406,9 +405,12 @@ Page({
let funcTimeList = []
let funcListIndex = -1
let funcActiveTime = ''
// 生成日期数组 ['YYYY-MM-DD', YYYY-MM-DD', YYYY-MM-DD', ]
// 生成对应日期场次数组 [['hh:mm:ss'], ['hh:mm:ss', 'hh:mm:ss'], ['hh:mm:ss', 'hh:mm:ss', 'hh:mm:ss']]
for (let i = 0, l = funcTimetable.length; i < l; i++) {
let funcDateString = App.modular.miment(funcTimetable[i].beginTime).format('YYYY-MM-DD')
let funcTimeString = App.modular.miment(funcTimetable[i].beginTime).format('hh:mm:ss')
let funcTimeString = App.modular.miment(funcTimetable[i].beginTime).format('hh:mm')
if (funcActiveTime === funcDateString) {
// 渲染数组
......@@ -429,7 +431,7 @@ Page({
}
this.setData({
entryId: funcDate[0][0].id,
entryId: funcEntryId ? funcEntryId : funcDate[0][0].id,
entryDate: funcDate,
entrySelection: funcDateList[0] + ' ' + funcTimeList[0][0],
entryDateList: [funcDateList, funcTimeList[0]],
......@@ -439,6 +441,26 @@ Page({
quantityMax: funcDate[0][0].residue < 3 ? funcDate[0][0].residue : 3,
quantityMin: 1,
})
// 如果存在场次 id 则重新设置场次信息
if (funcEntryId) {
let funcDate = ''
let funcTimeBegin = ''
let funcTimeEnd = ''
for (let i = 0, l = funcTimetable.length; i < l; i++) {
if (funcEntryId === funcTimetable[i].id) {
funcDate = App.modular.miment(funcTimetable[i].beginTime).format('MM月DD日')
funcTimeBegin = App.modular.miment(funcTimetable[i].beginTime).format('hh:mm:ss')
funcTimeEnd = App.modular.miment(funcTimetable[i].endTime).format('hh:mm:ss')
break
}
}
this.setData({
buyContentTime: funcDate + ' ' + funcTimeBegin + ' - ' + funcTimeEnd
})
}
}
})
},
......@@ -681,7 +703,6 @@ Page({
* @returns
*/
onQuantityAdd: function () {
console.log('onQuantityAdd', this.data.quantityMax)
// 购买数量最大为 20
if (this.data.quantity >= this.data.quantityMax) {
// 针对不同商品类型订制提示语
......@@ -978,6 +999,17 @@ Page({
return
}
if (/名额不足/.test(response.data.msg)) {
wx.lin.showToast({
title: response.data.msg,
icon: 'error',
})
this.setData({
isPaySubmit: false,
})
return
}
// 库存充足正常下单支付
let funcResponse = response.data
pagePayId = funcResponse.orderId
......
......@@ -121,10 +121,25 @@ Page({
}
})
// console.log(showList)
movieInfo.priceSpecialText = movieInfo.ownerPrice.toFixed(2)
movieInfo.priceText = movieInfo.visitorPrice.toFixed(2)
movieInfo.tags = movieInfo.tags.replace(/( )?热映影片( )?/, ' ').split(' ')
movieInfo.free = movieInfo.ownerPrice == '0' && movieInfo.visitorPrice == '0' ? '免费' : `¥${movieInfo.ownerPrice.toFixed(2)}`
let funcUserType = wx.getStorageSync('userInfo').userType
// 根据后台判断价格显示类型
// 活动价优先级最高,如果存在活动价,则只显示活动价和普通价
if (movieInfo.priceDiscount) {
movieInfo.priceType = 1
} else {
// 活动价不存在,进一步判断普通价与业主价是否一致,如果不一致,则显示两者
if (movieInfo.price !== movieInfo.ownerPrice && funcUserType) {
movieInfo.priceType = 2
} else {
movieInfo.priceType = 3
}
}
this.setData({
movieInfo,
showList,
......@@ -135,9 +150,45 @@ Page({
},
// 跳转到报名页面
onReportMovie: function (event) {
let id = event.currentTarget.dataset.movieid
console.log(event.currentTarget.dataset.item.filmId)
let funcMovieInfo = {
'id': this.data.movieInfo.activityId, // 活动 id
'name': this.data.movieInfo.filmName, // 电影名称
'cover': this.data.movieInfo.cover, // 电影封面
'entryId': event.currentTarget.dataset.item.filmId, // 场次 id
'price': this.data.movieInfo.sightseerPrice, // 普通价
'priceText': App.modular.utils.formatAmount(this.data.movieInfo.sightseerPrice), // 普通价文本格式
'priceSpecial': this.data.movieInfo.ownerPrice, // 业主价
'priceSpecialText': App.modular.utils.formatAmount(this.data.movieInfo.ownerPrice), // 业主价文本格式
'priceDiscount': this.data.movieInfo.price, // 活动价
'priceDiscountText': App.modular.utils.formatAmount(this.data.movieInfo.price), // 活动价文本格式
'priceType': 1,
'quantity': 1,
'quantityMin': 1,
'quantityMax': 3
}
let funcUserType = wx.getStorageSync('userInfo').userType
// 根据后台判断价格显示类型
// 活动价优先级最高,如果存在活动价,则只显示活动价和普通价
if (funcMovieInfo.priceDiscount) {
funcMovieInfo.priceType = 1
} else {
// 活动价不存在,进一步判断普通价与业主价是否一致,如果不一致,则显示两者
if (funcMovieInfo.price !== funcMovieInfo.priceSpecial && funcUserType) {
funcMovieInfo.priceType = 2
} else {
funcMovieInfo.priceType = 3
}
}
console.log(funcMovieInfo)
wx.setStorageSync('shoppingCartBuffer', [funcMovieInfo])
wx.navigateTo({
url: '/pages/pay/order-input/order-input?type=' + '7' + '&id=' + id,
url: '/pages/pay/order-input/order-input?type=7',
})
}
})
\ No newline at end of file
......@@ -84,7 +84,7 @@
<view class="show-free">
<text>{{movieInfo.free}}</text>
</view>
<view class="show-btn" bindtap="onReportMovie" data-movieId="{{item.filmId}}">
<view class="show-btn" bindtap="onReportMovie" data-item="{{item}}">
<text>报名观影</text>
</view>
</view>
......
......@@ -90,8 +90,24 @@ Page({
v.filmType = v.filmType.replace(/\//g, ' / ')
v.filmDirector = v.filmDirector.replace(/\//g, ' ')
v.filmLead = v.filmLead.replace(/\//g, ' ')
v.priceSpecialText = v.ownerPrice.toFixed(2)
v.priceText = v.visitorPrice.toFixed(2)
v.free = v.ownerPrice == '0' ? '免费' : `¥${v.ownerPrice.toFixed(2)}`
v.tags = v.tags.replace(/( )?热映影片( )?/, ' ').split(' ')
let funcUserType = wx.getStorageSync('userInfo').userType
// 根据后台判断价格显示类型
// 活动价优先级最高,如果存在活动价,则只显示活动价和普通价
if (v.priceDiscount) {
v.priceType = 1
} else {
// 活动价不存在,进一步判断普通价与业主价是否一致,如果不一致,则显示两者
if (v.price !== v.ownerPrice && funcUserType) {
v.priceType = 2
} else {
v.priceType = 3
}
}
})
this.setData({
movieToday
......@@ -124,6 +140,8 @@ Page({
v.filmType = v.filmType.replace(/\//g, ' / ')
v.filmDirector = v.filmDirector.replace(/\//g, ' ')
v.filmLead = v.filmLead.replace(/\//g, ' ')
v.priceSpecialText = v.ownerPrice.toFixed(2)
v.priceText = v.visitorPrice.toFixed(2)
v.free = v.ownerPrice == '0' ? '免费' : `¥${v.ownerPrice.toFixed(2)}`
v.tags = v.tags.replace(/( )?热映影片( )?/, ' ').replace(/( )+$/, '').split(' ')
})
......@@ -149,6 +167,8 @@ Page({
v.filmType = v.filmType.replace(/\//g, ' / ')
v.filmDirector = v.filmDirector.replace(/\//g, ' ')
v.filmLead = v.filmLead.replace(/\//g, ' ')
v.priceSpecialText = v.ownerPrice.toFixed(2)
v.priceText = v.visitorPrice.toFixed(2)
v.free = v.ownerPrice == '0'? '免费' : `¥${v.ownerPrice.toFixed(2)}`
v.tags = v.tags.replace(/( )?热映影片( )?/, ' ').split(' ')
})
......@@ -183,11 +203,47 @@ Page({
},
// 跳转到报名页面
onReportMovie: function (event) {
console.log(event)
let funcItem = event.currentTarget.dataset.item
console.log(funcItem)
let funcMovieInfo = {
'id': funcItem.activityId, // 活动 id
'name': funcItem.filmName, // 电影名称
'cover': funcItem.cover, // 电影封面
'entryId': funcItem.filmId, // 场次 id
'price': funcItem.sightseerPrice, // 普通价
'priceText': App.modular.utils.formatAmount(funcItem.sightseerPrice), // 普通价文本格式
'priceSpecial': funcItem.ownerPrice, // 业主价
'priceSpecialText': App.modular.utils.formatAmount(funcItem.ownerPrice), // 业主价文本格式
'priceDiscount': funcItem.price, // 活动价
'priceDiscountText': App.modular.utils.formatAmount(funcItem.price), // 活动价文本格式
'priceType': 1,
'quantity': 1,
'quantityMin': 1,
'quantityMax': 3
}
let funcUserType = wx.getStorageSync('userInfo').userType
// 根据后台判断价格显示类型
// 活动价优先级最高,如果存在活动价,则只显示活动价和普通价
if (funcMovieInfo.priceDiscount) {
funcMovieInfo.priceType = 1
} else {
// 活动价不存在,进一步判断普通价与业主价是否一致,如果不一致,则显示两者
if (funcMovieInfo.price !== funcMovieInfo.priceSpecial && funcUserType) {
funcMovieInfo.priceType = 2
} else {
funcMovieInfo.priceType = 3
}
}
wx.setStorageSync('shoppingCartBuffer', [funcMovieInfo])
let id = event.currentTarget.dataset.movieid
wx.navigateTo({
url: '/pages/pay/order-input/order-input?type=' + '7' + '&id=' + id,
url: '/pages/pay/order-input/order-input?type=7',
})
}
})
\ No newline at end of file
......@@ -68,7 +68,7 @@
<view class="movie-free">
<text>{{item.free}}</text>
</view>
<view class="movie-btn" catchtap="onReportMovie" data-movieId="{{item.activityId}}">
<view class="movie-btn" catchtap="onReportMovie" data-item="{{item}}">
<text>报名观影</text>
</view>
</view>
......
......@@ -473,56 +473,33 @@ Page({
},
success: (response) => {
let funcResponse = response.data.list
let funcCommodityList = []
let funcList = []
for (let i = 0, l = funcResponse.length; i < l; i++) {
let funcItem = {
'id': funcResponse[i].activityId, // 商品标识
'typeId': 7, // 商品类别标识
'sidebarId': '',
'name': funcResponse[i].filmName,
'cover': funcResponse[i].cover, // 商品封面
'price': funcResponse[i].visitorPrice, // 普通价
'priceText': App.modular.utils.formatAmount(funcResponse[i].visitorPrice), // 普通价文本格式
'priceSpecial': funcResponse[i].ownerPrice, // 业主价
'priceSpecialText': App.modular.utils.formatAmount(funcResponse[i].ownerPrice), // 业主价文本格式
'priceDiscount': funcResponse[i].price, // 活动价
'priceDiscountText': App.modular.utils.formatAmount(funcResponse[i].price), // 活动价文本格式
'priceType': 1,
'describe': funcResponse[i].synopsis,
'describeDetail': '', // 商品描述详情,在点击详情时获得数据
'name': funcResponse[i].activityId,
'dateBegin': funcResponse[i].beginDate,
'dateEnd': funcResponse[i].endDate,
'cover': funcResponse[i].cover,
'movieDirector': funcResponse[i].filmDirector,
'movieLeader': funcResponse[i].filmLead,
'movieName': funcResponse[i].filmName,
'movieType': funcResponse[i].filmType,
'movieKeyWord': funcResponse[i].keyword,
'movieLeader': funcResponse[i].filmLead,
'price': funcResponse[i].visitorPrice, // 普通价
'priceText': App.modular.utils.formatAmount(funcResponse[i].visitorPrice), // 普通价文本格式
'priceSpecial': funcResponse[i].ownerPrice, // 业主价
'priceSpecialText': App.modular.utils.formatAmount(funcResponse[i].ownerPrice), // 业主价文本格式
'priceType': 1,
'tagsId': funcResponse[i].tagIds,
'tags': funcResponse[i].tags.split(' '),
}
let funcUserType = wx.getStorageSync('userInfo').userType
// 根据后台判断价格显示类型
// 活动价优先级最高,如果存在活动价,则只显示活动价和普通价
if (funcItem.priceDiscount) {
funcItem.priceType = 1
} else {
// 活动价不存在,进一步判断普通价与业主价是否一致,如果不一致,则显示两者
if (funcItem.price !== funcItem.priceSpecial && funcUserType) {
funcItem.priceType = 2
} else {
funcItem.priceType = 3
}
}
if (funcItem.tagsId.includes('102')) {
funcCommodityList.push(funcItem)
funcList.push(funcItem)
}
funcCommodityList.push(funcItem)
}
this.setData({
detailCommodity: funcCommodityList
detailCommodity: funcList
})
}
})
......@@ -552,18 +529,20 @@ Page({
},
onBuy: function (event) {
let funcCommodityInfo = event.currentTarget.dataset.item
// 补充必要参数
funcCommodityInfo.quantity = 1
funcCommodityInfo.quantityMin = 1
funcCommodityInfo.quantityMax = 1
funcCommodityInfo.isActive = true
wx.setStorageSync('shoppingCartBuffer', [funcCommodityInfo])
let id = event.currentTarget.dataset.id
wx.navigateTo({
url: '/pages/pay/order-input/order-input?type=' + funcCommodityInfo.typeId
})
url: '/pages/play/movie-detail/movie-detail?id=' + id,
})
// // 补充必要参数
// funcCommodityInfo.quantity = 1
// funcCommodityInfo.quantityMin = 1
// funcCommodityInfo.quantityMax = 1
// funcCommodityInfo.isActive = true
// wx.setStorageSync('shoppingCartBuffer', [funcCommodityInfo])
// wx.navigateTo({
// url: '/pages/pay/order-input/order-input?type=' + funcCommodityInfo.typeId
// })
},
onLocation: function () {
......
<!-- 畅玩 - 商店详情 -->
<navigation class="navigation" titleText="{{info.name}}" color="#ffffff" scrollStyle="{{navigationStyle}}" scrollHeight="{{navigationScroll}}"></navigation>
<navigation class="navigation" titleText="{{info.title}}" color="#ffffff" scrollStyle="{{navigationStyle}}" scrollHeight="{{navigationScroll}}"></navigation>
<view class="container" wx:if="{{option.id !== '2'}}">
<view id="banner" class="banner">
......@@ -78,7 +78,7 @@
</block>
<block wx:if="{{detailActivity.length === 0}}">
<view class="commodity-card-item-nothing row con-c align-c">
<view class="commodity-card-item-nothing col con-c align-c">
<text>近期暂无活动安排</text>
</view>
</block>
......@@ -206,10 +206,10 @@
<view>
<text>{{item.content}}</text>
</view>
<view class="evaluate-item-content-more">
<!-- <view class="evaluate-item-content-more">
<text>... </text>
<text>全文</text>
</view>
</view> -->
</view>
<view class="evaluate-item-album">
......@@ -297,7 +297,7 @@
</view>
<view class="commodity-card-list row">
<block wx:for="{{detailCommodity}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="movie-card-item col">
<view class="movie-card-item col" data-id="{{item.name}}" bindtap="onBuy">
<image src="{{item.cover}}"></image>
<view class="movie-card-item-title row align-c">
<text>{{item.movieName}}</text>
......@@ -323,7 +323,7 @@
<text>免费</text>
</view>
<view>
<button class="row con-c align-c" data-item="{{item}}" bindtap="onBuy">报名观影</button>
<button class="row con-c align-c">报名观影</button>
</view>
</view>
</view>
......
......@@ -160,7 +160,10 @@
}
.commodity-title text {
flex-grow: 1;
flex: 1;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.commodity-title image {
......
......@@ -143,10 +143,9 @@
line-height: 36rpx;
color: #959da9;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.shop-date {
......
......@@ -71,20 +71,13 @@
"list": [
{
"id": -1,
"name": "pages/pay/order-comment/order-comment",
"pathName": "pages/pay/order-comment/order-comment",
"name": "pages/commodity/menu-food/menu-food",
"pathName": "pages/commodity/menu-food/menu-food",
"query": "",
"scene": null
},
{
"id": 11,
"name": "pages/play/movie/movie",
"pathName": "pages/play/movie/movie",
"query": "",
"scene": null
},
{
"id": 12,
"id": -1,
"name": "pages/play/home/home",
"pathName": "pages/play/home/home",
"query": "",
......@@ -94,76 +87,7 @@
"id": -1,
"name": "pages/play/service-detail/service-detail",
"pathName": "pages/play/service-detail/service-detail",
"query": "",
"scene": null
},
{
"id": 15,
"name": "pages/play/point-detail/point-detail",
"pathName": "pages/play/point-detail/point-detail",
"query": "",
"scene": null
},
{
"id": -1,
"name": "pages/mine/accumulate/accumulate",
"pathName": "pages/mine/accumulate/accumulate",
"query": "",
"scene": null
},
{
"id": -1,
"name": "pages/mine/home/home",
"pathName": "pages/mine/home/home",
"query": "",
"scene": null
},
{
"id": -1,
"name": "pages/campsite/home/home",
"pathName": "pages/campsite/home/home",
"query": "",
"scene": null
},
{
"id": 19,
"name": "pages/pay/order-detail/order-detail",
"pathName": "pages/pay/order-detail/order-detail",
"query": "id= 38f4a20175f444c899774ce379f94b83",
"scene": null
},
{
"id": 9,
"name": "pages/play/service/service",
"pathName": "pages/play/service/service",
"query": "type=2&title=美食",
"scene": null
},
{
"id": -1,
"name": "pages/play/activity-detail/activity-detail",
"pathName": "pages/play/activity-detail/activity-detail",
"query": "id=d1a698e4667645ea9d2920fc8b88c603",
"scene": null
},
{
"id": -1,
"name": "pages/play/service-detail/service-detail",
"pathName": "pages/play/service-detail/service-detail",
"query": "id=6&type=5",
"scene": null
},
{
"id": -1,
"name": "pages/play/activity/activity",
"pathName": "pages/play/activity/activity",
"query": "",
"scene": null
},
{
"id": -1,
"name": "pages/mine/appointment/appointment",
"pathName": "pages/mine/appointment/appointment",
"query": "id=1&type=4",
"scene": null
}
]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment