Commit 9c7a3443 by 谢中龙

商城自提功能

parent 3955b022
......@@ -80,10 +80,13 @@ wxService.page({
});
},
onUnload(){
wx.removeStorageSync('choosedStoreInfo');
},
//获取本地选择的门店信息
getLocalStoreInfo(){
let storeInfo = wx.getStorageSync('choosedStoreInfo') ? wx.getStorageSync('choosedStoreInfo') : null;
console.log(storeInfo)
if (storeInfo){
this.data.storeInfo.storeId = storeInfo.id;
this.data.storeInfo.storeName = storeInfo.name;
......@@ -591,6 +594,7 @@ wxService.page({
},
// 下单
getBill(params) {
let _this = this;
wx.showLoading({
title: '加载中'
});
......@@ -603,6 +607,7 @@ wxService.page({
wxService.post(`${url}`, params).then(res => {
if (res) {
const { result, data } = res.data
wx.removeStorageSync('choosedStoreInfo');
if (result == 0) {
delete data.appId
let amount = data.amount || 0
......@@ -611,15 +616,23 @@ wxService.page({
wx.hideLoading()
// 支付成功页面
wx.redirectTo({
url: `/subPackage/page/pages/paymentStatus/paymentStatus?status=S&amount=${amount}`,
url: `/subPackage/page/pages/paymentStatus/paymentStatus?status=S&amount=${amount}&type=${_this.data.currentType}`,
});
},
fail(res) {
wx.hideLoading()
// wxService.router(`/subPackage/page/pages/paymentStatus/paymentStatus?status=F`)
if(_this.data.currentType == 'delivery'){
wx.redirectTo({
url: '/pages/order/order',
});
}
else{
wx.redirectTo({
url: '/subPackage/page/pages/selfPickUpOrderList/selfPickUpOrderList',
});
}
// wxService.router(`/pages/orderDetail/orderDetail?id=${id}`)
}
}, data.wxParams))
......
......@@ -558,9 +558,10 @@
"scene": null
},
{
"id": -1,
"id": 77,
"name": "自提订单详情",
"pathName": "subPackage/page/pages/selfPickUpOrderInfo/selfPickUpOrderInfo",
"query": "id=676422376522780672",
"scene": null
}
]
......
......@@ -83,13 +83,27 @@ wxService.page({
//获取session_key
jscode2session(code){
wxService.post(`/member/qiyeweixin/jscode2session?brandId=${app.globalData.brandId}&code=${code}`).then(r => {
this.setData({
let _this = this;
let url = envInfo.ctx + `/member/qiyeweixin/jscode2session?brandId=${app.globalData.brandId}&code=${code}`;
wx.request({
url,
method: 'POST',
header: {
'tunnel-token': envInfo.tunnelToken, // 开发
},
data: param,
channel: null,
success(r){
_this.setData({
jsCodeSession : r.data.data,
btnIsDisabled : false,
});
wx.hideLoading();
})
},
fail(error){
console.log(res)
},
});
},
//获取企业微信信息
......
......@@ -14,13 +14,15 @@ wxService.page({
data: {
amount: 0,
status: 'S',
isSubscribe: false
isSubscribe: false,
type : ''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.data.type = options.type;
wx.hideShareMenu()
},
......@@ -95,10 +97,21 @@ wxService.page({
console.log('goPayAgain')
},
goOrder() {
wxService.router(`/pages/order/order`)
if(this.data.type == 'selfPickUp'){
wx.redirectTo({
url: '/subPackage/page/pages/selfPickUpOrderList/selfPickUpOrderList',
});
}
else{
wx.redirectTo({
url: '/pages/order/order',
});
}
},
goClassificationPage() {
wxService.router(`/pages/category/category`)
wx.redirectTo({
url: '/pages/category/category',
});
},
/**
* 生命周期函数--监听页面隐藏
......
// subPackage/page/pages/selfPickUpOrderInfo/selfPickUpOrderInfo.js
const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util')
const orderStatusTextObj = {
N : '待付款',
P : '待自提',
R : '已完成',
C : '已取消',
RE : '已退款'
}
wxService.page({
/**
* 页面的初始数据
*/
data: {
id : null,
orderInfo :{}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
wx.hideShareMenu();
this.data.id = options.id;
this.getOrderInfo();
},
//获取订单详情
getOrderInfo(){
wx.showLoading({
title: '加载中',
mask: true
});
wxService.get(`/sale/trade/buyer/${this.data.id}`).then(res => {
if (res) {
const { result, data } = res.data
if (result == 0) {
wx.hideLoading()
let skuVOList = data.skuVOList ? data.skuVOList : [];
let sum = 0 ;
skuVOList.forEach(item => {
item.refundCount = item.refundCount ? item.refundCount : 0;
item.canRefundNum = (item.count - item.refundCount) >= 0 ? (item.count - item.refundCount) : 0;
sum = sum + item.price * item.count;
});
data.orderStatusText = orderStatusTextObj[data.status];
let store = data.store ? data.store : null;
data.storeAddress = '暂无地址';
data.latitude = '';
data.longitude = '';
if(store){
let addressArr = store.addressArea.split(',');
addressArr.push(store.addressDetail);
data.storeAddress = addressArr.join('');
data.latitude = store.latitude;
data.longitude = store.longitude;
}
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
//处理能不能退款
let canApplyRefund = true;
let filter = skuVOList.filter(c => c.canRefundNum > 0);
if (filter.length > 0){
canApplyRefund = true;
}
else{
canApplyRefund = false;
}
this.data.totalGoodsPrice = parseFloat(sum).toFixed(2);
this.data.orderInfo = data;
this.setData({
orderInfo: this.data.orderInfo,
totalGoodsPrice: this.data.totalGoodsPrice,
mergedAmount: data.mergedAmount || 0,
canApplyRefund: canApplyRefund
});
}
}
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
copy(e) {
wx.setClipboardData({
//准备复制的数据
data: e.currentTarget.dataset.content,
success: function (res) {
wx.showToast({
title: '复制成功',
icon: 'none'
});
}
});
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
//立即支付
onTapPayNow(e){
let _this = this;
let url = `/sale/trade/buyer/wxprepay/${this.data.id}`
wx.showLoading({
title: '加载中',
mask: true
})
wxService.post(`${url}`).then(res => {
if (res) {
const { result, data } = res.data
if (result == 0) {
let amount = data.amount || 0
wx.hideLoading()
wx.requestPayment(Object.assign({
success(res) {
wx.hideLoading()
// 支付成功页面
wx.showToast({
title: '支付成功!',
})
_this.getOrderInfo();
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
fail(res) {
wx.hideLoading()
wx.showToast({
title: '支付已取消',
icon : 'none'
});
}
}, data))
}
}
});
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
//取消订单
onTapCancelOrder(){
let _this = this;
wx.showModal({
title: '订单取消提示',
content: '确认取消此订单?',
showCancel: true,
cancelText: '再想想',
confirmText: '取消订单',
confirmColor: '#cb3c3c',
success: function (modalRes) {
if (modalRes.confirm) {
wx.showLoading({
title: '订单取消中..',
mask: true
});
wxService.post(`/sale/trade/buyer/cancel/${_this.data.id}`).then(res => {
if (res) {
const { result } = res.data
if (result == 0) {
wx.hideLoading()
wx.showToast({
title: `取消成功!`,
icon: 'none'
})
setTimeout(() => {
_this.getOrderInfo();
}, 200)
} else {
wx.showToast({
title: `取消失败!`,
icon: 'none'
})
}
}
})
}
}
});
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
//申请退款
handelRequestRefund(e) {
const id = this.data.id;
const detail = this.data.orderInfo;
detail.id = this.data.id;
let copyOrderInfo = JSON.parse(JSON.stringify(detail));
//过滤掉已经退货完的商品
copyOrderInfo.skuVOList = copyOrderInfo.skuVOList.filter(item => item.canRefundNum > 0);
//更新可退货数量
copyOrderInfo.skuVOList.forEach(item => {
item.totalCount = item.count;
item.count = item.canRefundNum;
});
let params = JSON.stringify(copyOrderInfo);
// 退款申请
wxService.router(`/pages/refund/refund`).search({params})
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
//确认收货
handelConfirmReceipt(e) {
const id = this.data.id;
let _this = this;
wx.showLoading({
title: '加载中',
mask: true
})
wxService.post(`/sale/trade/buyer/confirm/${id}`).then(res => {
if (res) {
const { result, data } = res.data
if (result == 0) {
wx.hideLoading()
wx.showToast({
title: `您已确认收货!`,
icon: 'none'
})
setTimeout(() => {
_this.getOrderInfo();
}, 200)
} else {
wx.showToast({
title: `确认收货失败!`,
icon: 'none'
})
}
}
})
},
//导航
onTapGuid(){
let latitude = this.data.orderInfo.latitude;
let longitude = this.data.orderInfo.longitude;
wx.openLocation({
latitude: latitude,
longitude: longitude,
name : this.data.orderInfo.storeName,
address : this.data.orderInfo.storeAddress
});
}
})
\ No newline at end of file
<!--subPackage/page/pages/selfPickUpOrderInfo/selfPickUpOrderInfo.wxml-->
<wxs src="../../../../wxs/utils.wxs" module="utils" />
<view class="order-info-store">
<view class="header">
<view class="lf-info">
<image src="/assets/imgs/address.png" mode="aspectFit"></image>
张江高科一店
{{orderInfo.storeName}}
</view>
<view class="rg-btn">导航 <image src="/assets/imgs/arrow-right-red.png" mode="aspectFit"></image></view>
<view class="rg-btn" bindtap="onTapGuid">导航 <image src="/assets/imgs/arrow-right-red.png" mode="aspectFit"></image></view>
</view>
<view class="store-address">上海市浦东新区祖冲之路2288号天之骄子</view>
<view class="store-address">{{orderInfo.storeAddress}}</view>
</view>
<!-- 订单商品 -->
<view class="order-goods">
<view class="order-status">
<view class="order-type"><view class="tips">自提</view>门店名称</view>
<text>待自提</text>
<view class="order-type"><view class="tips">自提</view>{{orderInfo.storeName}}</view>
<text>{{orderInfo.orderStatusText}}</text>
</view>
<view class="pro-wrap">
<block>
<block wx:for="{{orderInfo.skuVOList}}" wx:for-item="item" wx:key="*this">
<view class="pro-list">
<image data-img="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg"
<image data-img="{{item.skuImgUrl}}"
bindtap='onTapShowImg' class="pro-img"
src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode='aspectFit'/>
src="{{item.skuImgUrl}}" mode='aspectFit'/>
<view class="pro-info">
<view class="pro-name">商品免除跟那个短时</view>
<view class="pro-desc">规格是你的</view>
<view class="pro-name">{{item.productName}}</view>
<view class="pro-desc">{{item.skuSpec}}</view>
<view class="pro-price">
<text class="price">¥526</text>
<text class="number">x 1</text>
<text class="price">¥{{item.price}}</text>
<text class="number">x {{item.count}}</text>
</view>
<!-- 退款信息 -->
<!-- <view class="refund-info">
<view class="refund-info" wx:if="{{item.refundCount != 0}}">
<text class='refund-name'>退款</text>
<text>x 1</text>
</view> -->
<text>x {{item.refundCount}}</text>
</view>
</view>
<view class="pro-list">
<image data-img="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg"
bindtap='onTapShowImg' class="pro-img"
src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode='aspectFit'/>
<view class="pro-info">
<view class="pro-name">商品免除跟那个短时</view>
<view class="pro-desc">规格是你的</view>
<view class="pro-price">
<text class="price">¥526</text>
<text class="number">x 1</text>
</view>
<!-- 退款信息 -->
<!-- <view class="refund-info">
<text class='refund-name'>退款</text>
<text>x 1</text>
</view> -->
</view>
</view>
</block>
</view>
<!-- 优惠信息 -->
<view class="coupon-info">
<view>优惠:20元无门槛券</view>
<view>¥16</view>
<view>商品合计</view>
<view>¥{{totalGoodsPrice}}</view>
</view>
<view class="coupon-info">
<view>活动折扣</view>
<view>¥{{utils.numberFormat(orderInfo.promotionDiscount)}}</view>
</view>
<view class="coupon-info">
<view>优惠券优惠</view>
<view>¥{{utils.numberFormat(orderInfo.coouponDiscount)}}</view>
</view>
<!-- 订单金额 -->
<view class="order-price">
共计<label>5</label>件商品,实付<label>¥380</label>
共计<label>5</label>件商品,实付<label>¥{{orderInfo.payAmount}}</label>
</view>
</view>
<!-- 订单其他信息 -->
<view class="order-time">
<view class="order-items">下单时间:2020-02-06 15:20:30</view>
<view class="order-items">自提时间:暂无</view>
<view class="order-items">
订单编号:{{orderInfo.id}}
<view class="copy" bindtap="copy" data-content="{{orderInfo.id}}">复制</view>
</view>
<view class="order-items">下单时间:{{orderInfo.createTime}}</view>
<view class="order-items">下单备注:{{orderInfo.buyerRemark}}</view>
</view>
<!-- 底部操作按钮 -->
<view class="bottom-btns">
<view class="bto-btn primary-red">确认收货</view>
<view class="bto-btn">申请退款</view>
<!-- <view class="bto-btn primary-red">立即支付</view> -->
<!-- <view class="bto-btn">取消订单</view> -->
<view class="bottom-btns" wx:if="{{orderInfo.status != 'C' && orderInfo.status != 'RE'}}">
<view class="bto-btn primary-red"
wx:if="{{orderInfo.status == 'P'}}"
bindtap="handelConfirmReceipt" >确认收货</view>
<view class="bto-btn"
wx:if="{{orderInfo.status == 'P'}}"
bindtap="handelRequestRefund">申请退款</view>
<view class="bto-btn primary-red"
wx:if="{{orderInfo.status == 'N'}}" bindtap="onTapPayNow">立即支付</view>
<view class="bto-btn"
wx:if="{{orderInfo.status == 'N'}}"
bindtap="onTapCancelOrder">取消订单</view>
</view>
\ No newline at end of file
......@@ -7,6 +7,7 @@ page{
padding-bottom: 102rpx;
}
view{
box-sizing: border-box;
-webkit-box-sizing: border-box;
......@@ -20,6 +21,20 @@ view{
margin-bottom: 20rpx;
}
.copy{
display: inline-block;
width: 44rpx;
height: 26rpx;
line-height: 26rpx;
border-radius: 6rpx;
border: 1px solid rgba(203, 60, 60, 1);
font-size: 16rpx;
color: #cb3c3c;
text-align: center;
margin-left: 26rpx;
vertical-align: top;
}
.order-info-store .header{
display: flex;
align-items: center;
......
// subPackage/page/pages/selfPickUpOrderList/selfPickUpOrderList.js
const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util')
const orderStatusTextObj = {
N : '待付款',
P : '待自提',
R : '已完成',
C : '已取消',
RE : '已退款'
}
wxService.page({
/**
* 页面的初始数据
*/
data: {
pageNo : 1,
pageSize : 10,
totalPages : 0,
orderList : [],
hasMoreData : true,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
wx.hideShareMenu();
this.initOrderList();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
//获取订单列表
initOrderList(refresh) {
wx.showLoading({
title: '加载中',
mask: true
})
const params = { status: '',orderType:4 }
let pageNo = this.data.pageNo,
pageSize = this.data.pageSize;
wxService.post(`/sale/trade/buyer/history?pageNum=${pageNo}&pageSize=${pageSize}`, params).then(res => {
if (res) {
const { result, data } = res.data
if (result == 0) {
let list = data ? data : [];
if(list.length == 0 && this.data.pageNo > 1){
this.data.hasMoreData = false;
}
else{
this.data.hasMoreData = true;
}
},
list.forEach(item => {
item.orderStatusText = orderStatusTextObj[item.status];
});
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.data.orderList = this.data.orderList.concat(list);
this.setData({
hasMoreData : this.data.hasMoreData,
orderList : this.data.orderList
});
}
}
if(refresh){
wx.stopPullDownRefresh();
wx.showToast({
title: '刷新成功',
});
}
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
//跳转到订单详情
onTapToOrderInfo(e){
let item = e.currentTarget.dataset.item;
wx.navigateTo({
url: '/subPackage/page/pages/selfPickUpOrderInfo/selfPickUpOrderInfo?id=' + item.id,
});
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
//立即支付
onTapPayNow(e){
let _this = this;
let item = e.currentTarget.dataset.item;
let url = `/sale/trade/buyer/wxprepay/${item.id}`
wx.showLoading({
title: '加载中',
mask: true
})
wxService.post(`${url}`).then(res => {
if (res) {
const { result, data } = res.data
if (result == 0) {
let amount = data.amount || 0
wx.hideLoading()
wx.requestPayment(Object.assign({
success(res) {
wx.hideLoading()
// 支付成功页面
wx.showToast({
title: '支付成功!',
})
_this.initOrderList();
},
fail(res) {
wx.hideLoading()
wx.showToast({
title: '支付已取消',
icon : 'none'
});
}
}, data))
}
}
});
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
this.data.pageNo = 1;
this.data.hasMoreData = true;
this.data.orderList = [];
this.initOrderList(true);
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
if(this.data.hasMoreData){
this.data.pageNo ++;
this.initOrderList();
}
},
})
\ No newline at end of file
{
"navigationBarTitleText": "自提订单",
"usingComponents": {}
"enablePullDownRefresh" : true,
"usingComponents": {
"empty": "../../../../component/empty/empty"
}
}
\ No newline at end of file
<!--subPackage/page/pages/selfPickUpOrderList/selfPickUpOrderList.wxml-->
<view class="order-list">
<view class="order-items">
<view class="top-order-store">
<view class="order-list" wx:if="{{orderList.length != 0}}">
<view class="order-items"
wx:for="{{orderList}}"
wx:for-item="item"
wx:for-index="idx"
wx:key="*this">
<view class="top-order-store" data-item="{{item}}" bindtap="onTapToOrderInfo">
<view class="store-name">
<text>张江高科一店</text>
<text>{{item.storeName}}</text>
<image src="/assets/imgs/address.png" mode="aspectFit"></image>
</view>
<view class="order-status">待付款</view>
<view class="order-status">{{item.orderStatusText}}</view>
</view>
<view class="buy-goods-list">
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10023dc3fc71-4709-41fc-838a-f712e549dff1.jpeg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201912/20191229/100207011743-e8e6-4342-9375-d862904ed91b.jpg" mode="aspectFit"></image>
<view class="buy-goods-list" data-item="{{item}}" bindtap="onTapToOrderInfo">
<image
wx:for="{{item.skuVOList}}"
wx:for-item="skuItem"
wx:key="*this"
src="{{skuItem.skuImgUrl}}" mode="aspectFit"></image>
</view>
<view class="order-o-info">
<view>2020-02-06 15:25:30</view>
<view class="order-o-info" data-item="{{item}}" bindtap="onTapToOrderInfo">
<view>{{item.createTime}}</view>
<view class="order-price">
共计3件商品,合计 <text>¥360.00</text>
共计{{item.skuCount}}件商品,合计 <text>¥{{item.skuAmount}}</text>
</view>
</view>
<!-- 按钮 -->
<view class="operator">
<!-- <view class="order-btn">申请退款</view> -->
<view class="order-btn primary">立即支付</view>
<!-- <view class="order-btn primary">确认收货</view> -->
<!-- <view class="order-btn" wx:if="{{item.status == 'P'}}" data-item="{{item}}" bindtap="onTapApplyRefund">申请退款</view> -->
<view class="order-btn" data-item="{{item}}" bindtap="onTapToOrderInfo">查看详情</view>
<view class="order-btn primary" data-item="{{item}}" bindtap="onTapPayNow" wx:if="{{item.status == 'N'}}">立即支付</view>
<!-- <view class="order-btn primary" wx:if="{{item.status == 'P'}}">确认收货</view> -->
</view>
</view>
<view class="order-items">
<view class="top-order-store">
<view class="store-name">
<text>张江高科一店</text>
<image src="/assets/imgs/address.png" mode="aspectFit"></image>
</view>
<view class="order-status">待自提</view>
</view>
<view class="buy-goods-list">
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10023dc3fc71-4709-41fc-838a-f712e549dff1.jpeg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201912/20191229/100207011743-e8e6-4342-9375-d862904ed91b.jpg" mode="aspectFit"></image>
</view>
<view class="order-o-info">
<view>2020-02-06 15:25:30</view>
<view class="order-price">
共计3件商品,合计 <text>¥360.00</text>
</view>
</view>
<!-- 按钮 -->
<view class="operator">
<view class="order-btn">申请退款</view>
<!-- <view class="order-btn primary">立即支付</view> -->
<view class="order-btn primary">确认收货</view>
</view>
</view>
<view class="order-items">
<view class="top-order-store">
<view class="store-name">
<text>张江高科一店</text>
<image src="/assets/imgs/address.png" mode="aspectFit"></image>
</view>
<view class="order-status">已完成</view>
</view>
<view class="buy-goods-list">
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10020bc06784-2dbf-4295-b955-41698f9032d3.jpg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201911/20191122/10023dc3fc71-4709-41fc-838a-f712e549dff1.jpeg" mode="aspectFit"></image>
<image src="https://img3.bigaka.com/test/1002/201912/20191229/100207011743-e8e6-4342-9375-d862904ed91b.jpg" mode="aspectFit"></image>
</view>
<view class="order-o-info">
<view>2020-02-06 15:25:30</view>
<view class="order-price">
共计3件商品,合计 <text>¥360.00</text>
</view>
</view>
<!-- 按钮 -->
<!-- <view class="operator">
<view class="order-btn">申请退款</view>
<view class="order-btn primary">立即支付</view>
<view class="order-btn primary">确认收货</view>
</view> -->
</view>
</view>
<!-- 空 -->
<empty text="暂无任何订单信息~" wx:if="{{orderList.length == 0}}"/>
<view class='no-more' wx:if="{{!hasMoreData}}">-- 我也是有底线滴 --</view>
......@@ -113,3 +113,14 @@ view{
border: solid 1px #ff2222;
color: #ff2222;
}
.no-more{
width: 100%;
height: auto;
padding: 30rpx 0;
color: #999999;
font-size: 24rpx;
display: flex;
align-items: center;
justify-content: center;
}
\ No newline at end of file
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 to comment