|
@@ -1,286 +1,300 @@
|
|
|
<!-- 支付结果页面 -->
|
|
|
<template>
|
|
|
- <s-layout title="支付结果" :bgStyle="{ color: '#FFF' }">
|
|
|
- <view class="pay-result-box ss-flex-col ss-row-center ss-col-center">
|
|
|
- <!-- 信息展示 -->
|
|
|
- <view class="pay-waiting ss-m-b-30" v-if="payResult === 'waiting'" />
|
|
|
- <image
|
|
|
- class="pay-img ss-m-b-30"
|
|
|
- v-if="payResult === 'success'"
|
|
|
- :src="sheep.$url.static('/static/images/order_pay_success.gif')"
|
|
|
- />
|
|
|
- <image
|
|
|
- class="pay-img ss-m-b-30"
|
|
|
- v-if="['failed', 'closed'].includes(payResult)"
|
|
|
- :src="sheep.$url.static('/static/images/order_paty_fail.gif')"
|
|
|
- />
|
|
|
- <view class="tip-text ss-m-b-30" v-if="payResult === 'success'">支付成功</view>
|
|
|
- <view class="tip-text ss-m-b-30" v-if="payResult === 'failed'">支付失败</view>
|
|
|
- <view class="tip-text ss-m-b-30" v-if="payResult === 'closed'">该订单已关闭</view>
|
|
|
- <view class="tip-text ss-m-b-30" v-if="payResult === 'waiting'">检测支付结果...</view>
|
|
|
- <view class="pay-total-num ss-flex" v-if="payResult === 'success'">
|
|
|
- <view>¥{{ fen2yuan(state.orderInfo.price) }}</view>
|
|
|
- </view>
|
|
|
- <!-- 操作区 -->
|
|
|
- <view class="btn-box ss-flex ss-row-center ss-m-t-50">
|
|
|
- <button class="back-btn ss-reset-button" @tap="sheep.$router.go('/pages/index/index')">
|
|
|
- 返回首页
|
|
|
- </button>
|
|
|
- <button
|
|
|
- class="check-btn ss-reset-button"
|
|
|
- v-if="payResult === 'failed'"
|
|
|
- @tap="
|
|
|
+ <s-layout title="支付结果" :bgStyle="{ color: '#FFF' }">
|
|
|
+ <view class="pay-result-box ss-flex-col ss-row-center ss-col-center">
|
|
|
+ <!-- 信息展示 -->
|
|
|
+ <view class="pay-waiting ss-m-b-30" v-if="payResult === 'waiting'" />
|
|
|
+ <image class="pay-img ss-m-b-30" v-if="payResult === 'success'"
|
|
|
+ :src="sheep.$url.static('/static/images/order_pay_success.gif')" />
|
|
|
+ <image class="pay-img ss-m-b-30" v-if="['failed', 'closed'].includes(payResult)"
|
|
|
+ :src="sheep.$url.static('/static/images/order_paty_fail.gif')" />
|
|
|
+ <view class="tip-text ss-m-b-30" v-if="payResult === 'success'">支付成功</view>
|
|
|
+ <view class="tip-text ss-m-b-30" v-if="payResult === 'failed'">支付失败</view>
|
|
|
+ <view class="tip-text ss-m-b-30" v-if="payResult === 'closed'">该订单已关闭</view>
|
|
|
+ <view class="tip-text ss-m-b-30" v-if="payResult === 'waiting'">检测支付结果...</view>
|
|
|
+ <view class="pay-total-num ss-flex" v-if="payResult === 'success'">
|
|
|
+ <view>¥{{ fen2yuan(state.orderInfo.price) }}</view>
|
|
|
+ </view>
|
|
|
+ <!-- 操作区 -->
|
|
|
+ <view class="btn-box ss-flex ss-row-center ss-m-t-50">
|
|
|
+ <button class="back-btn ss-reset-button" @tap="sheep.$router.go('/pages/index/index')">
|
|
|
+ 返回首页
|
|
|
+ </button>
|
|
|
+ <button class="check-btn ss-reset-button" v-if="payResult === 'failed'" @tap="
|
|
|
sheep.$router.redirect('/pages/pay/index', { id: state.id, orderType: state.orderType })
|
|
|
- "
|
|
|
- >
|
|
|
- 重新支付
|
|
|
- </button>
|
|
|
- <button class="check-btn ss-reset-button" v-if="payResult === 'success'" @tap="onOrder">
|
|
|
- 查看订单
|
|
|
- </button>
|
|
|
- <!-- TODO 非繁人:拼团接入 -->
|
|
|
- <button
|
|
|
- class="check-btn ss-reset-button"
|
|
|
- v-if="payResult === 'success' && state.tradeOrder.type === 3"
|
|
|
- @tap="sheep.$router.redirect('/pages/activity/groupon/order')"
|
|
|
- >
|
|
|
- 我的拼团
|
|
|
- </button>
|
|
|
- </view>
|
|
|
- <!-- TODO 非繁人:订阅 -->
|
|
|
- <!-- #ifdef MP -->
|
|
|
- <view class="subscribe-box ss-flex ss-m-t-44">
|
|
|
- <image class="subscribe-img" :src="sheep.$url.static('/static/images/cargo.png')" />
|
|
|
- <view class="subscribe-title ss-m-r-48 ss-m-l-16">获取实时发货信息与订单状态</view>
|
|
|
- <view class="subscribe-start" @tap="subscribeMessage">立即订阅</view>
|
|
|
- </view>
|
|
|
- <!-- #endif -->
|
|
|
- </view>
|
|
|
- </s-layout>
|
|
|
+ ">
|
|
|
+ 重新支付
|
|
|
+ </button>
|
|
|
+ <button class="check-btn ss-reset-button" v-if="payResult === 'success'" @tap="onOrder">
|
|
|
+ 查看订单
|
|
|
+ </button>
|
|
|
+ <!-- TODO 非繁人:拼团接入 -->
|
|
|
+ <button class="check-btn ss-reset-button" v-if="payResult === 'success' && state.tradeOrder.type === 3"
|
|
|
+ @tap="sheep.$router.redirect('/pages/activity/groupon/order')">
|
|
|
+ 我的拼团
|
|
|
+ </button>
|
|
|
+ </view>
|
|
|
+ <!-- TODO 非繁人:订阅 -->
|
|
|
+ <!-- #ifdef MP -->
|
|
|
+ <view class="subscribe-box ss-flex ss-m-t-44">
|
|
|
+ <image class="subscribe-img" :src="sheep.$url.static('/static/images/cargo.png')" />
|
|
|
+ <view class="subscribe-title ss-m-r-48 ss-m-l-16">获取实时发货信息与订单状态</view>
|
|
|
+ <view class="subscribe-start" @tap="subscribeMessage">立即订阅</view>
|
|
|
+ </view>
|
|
|
+ <!-- #endif -->
|
|
|
+ </view>
|
|
|
+ </s-layout>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
- import { onLoad, onHide, onShow } from '@dcloudio/uni-app';
|
|
|
- import { reactive, computed } from 'vue';
|
|
|
- import { isEmpty } from 'lodash';
|
|
|
- import sheep from '@/sheep';
|
|
|
- import PayOrderApi from '@/sheep/api/pay/order';
|
|
|
- import { fen2yuan } from '../../sheep/hooks/useGoods';
|
|
|
- import OrderApi from '@/sheep/api/trade/order';
|
|
|
+ import {
|
|
|
+ onLoad,
|
|
|
+ onHide,
|
|
|
+ onShow
|
|
|
+ } from '@dcloudio/uni-app';
|
|
|
+ import {
|
|
|
+ reactive,
|
|
|
+ computed,
|
|
|
+ watchEffect
|
|
|
+ } from 'vue';
|
|
|
+ import {
|
|
|
+ isEmpty
|
|
|
+ } from 'lodash';
|
|
|
+ import sheep from '@/sheep';
|
|
|
+ import PayOrderApi from '@/sheep/api/pay/order';
|
|
|
+ import {
|
|
|
+ fen2yuan
|
|
|
+ } from '../../sheep/hooks/useGoods';
|
|
|
+ import OrderApi from '@/sheep/api/trade/order';
|
|
|
+ import {
|
|
|
+ showWalletModal,
|
|
|
+ colseWalletModal
|
|
|
+ } from '@/sheep/hooks/useModal';
|
|
|
+ const state = reactive({
|
|
|
+ id: 0, // 支付单号
|
|
|
+ orderType: 'goods', // 订单类型
|
|
|
+ result: 'unpaid', // 支付状态
|
|
|
+ orderInfo: {}, // 支付订单信息
|
|
|
+ tradeOrder: {}, // 商品订单信息,只有在 orderType 为 goods 才会请求。目的:【我的拼团】按钮的展示
|
|
|
+ counter: 0, // 获取结果次数
|
|
|
+ });
|
|
|
|
|
|
- const state = reactive({
|
|
|
- id: 0, // 支付单号
|
|
|
- orderType: 'goods', // 订单类型
|
|
|
- result: 'unpaid', // 支付状态
|
|
|
- orderInfo: {}, // 支付订单信息
|
|
|
- tradeOrder: {}, // 商品订单信息,只有在 orderType 为 goods 才会请求。目的:【我的拼团】按钮的展示
|
|
|
- counter: 0, // 获取结果次数
|
|
|
- });
|
|
|
+
|
|
|
|
|
|
- // 支付结果 result => payResult
|
|
|
- const payResult = computed(() => {
|
|
|
- if (state.result === 'unpaid') {
|
|
|
- return 'waiting';
|
|
|
- }
|
|
|
- if (state.result === 'paid') {
|
|
|
- return 'success';
|
|
|
- }
|
|
|
- if (state.result === 'failed') {
|
|
|
- return 'failed';
|
|
|
- }
|
|
|
- if (state.result === 'closed') {
|
|
|
- return 'closed';
|
|
|
- }
|
|
|
- });
|
|
|
+ // 支付结果 result => payResult
|
|
|
+ const payResult = computed(() => {
|
|
|
+ if (state.result === 'unpaid') {
|
|
|
+ return 'waiting';
|
|
|
+ }
|
|
|
+ if (state.result === 'paid') {
|
|
|
+ return 'success';
|
|
|
+ }
|
|
|
+ if (state.result === 'failed') {
|
|
|
+ return 'failed';
|
|
|
+ }
|
|
|
+ if (state.result === 'closed') {
|
|
|
+ return 'closed';
|
|
|
+ }
|
|
|
+ });
|
|
|
+ watchEffect(()=>{
|
|
|
+ if(payResult.value == 'success'){
|
|
|
+ showWalletModal({points: state.orderInfo.jf,socialStatus: state.orderInfo.sj})
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 获得订单信息
|
|
|
+ async function getOrderInfo(id) {
|
|
|
|
|
|
- // 获得订单信息
|
|
|
- async function getOrderInfo(id) {
|
|
|
-
|
|
|
- state.counter++;
|
|
|
- // 1. 加载订单信息
|
|
|
- const { data, code } = await PayOrderApi.getByStatus(id);
|
|
|
- if (code === 0) {
|
|
|
- state.orderInfo = data;
|
|
|
- if (!state.orderInfo || state.orderInfo.status === 30) {
|
|
|
- // 支付关闭
|
|
|
- state.result = 'closed';
|
|
|
- return;
|
|
|
- }
|
|
|
- if (state.orderInfo.status !== 0) {
|
|
|
- // 非待支付,可能是已支付,可能是已退款
|
|
|
- state.result = 'paid';
|
|
|
- // #ifdef MP
|
|
|
- subscribeMessage();
|
|
|
- // #endif
|
|
|
- // 特殊:获得商品订单信息
|
|
|
- if (state.orderType === 'goods') {
|
|
|
- const { data, code } = await OrderApi.getByStatus(state.orderInfo.merchantOrderId);
|
|
|
- if (code === 0) {
|
|
|
- state.tradeOrder = data;
|
|
|
- }
|
|
|
- }
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- // 2.1 情况三一:未支付,且轮询次数小于三次,则继续轮询
|
|
|
- if (state.counter < 3 && state.result === 'unpaid') {
|
|
|
- setTimeout(() => {
|
|
|
- getOrderInfo(id);
|
|
|
- }, 1500);
|
|
|
- }
|
|
|
- // 2.2 情况二:超过三次检测才判断为支付失败
|
|
|
- if (state.counter >= 3) {
|
|
|
- state.result = 'failed';
|
|
|
- }
|
|
|
- }
|
|
|
+ state.counter++;
|
|
|
+ // 1. 加载订单信息
|
|
|
+ const {
|
|
|
+ data,
|
|
|
+ code
|
|
|
+ } = await PayOrderApi.getByStatus(id);
|
|
|
+ if (code === 0) {
|
|
|
+ state.orderInfo = data;
|
|
|
+ if (!state.orderInfo || state.orderInfo.status === 30) {
|
|
|
+ // 支付关闭
|
|
|
+ state.result = 'closed';
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (state.orderInfo.status !== 0) {
|
|
|
+ // 非待支付,可能是已支付,可能是已退款
|
|
|
+ state.result = 'paid';
|
|
|
+ // #ifdef MP
|
|
|
+ subscribeMessage();
|
|
|
+ // #endif
|
|
|
+ // 特殊:获得商品订单信息
|
|
|
+ if (state.orderType === 'goods') {
|
|
|
+ const {
|
|
|
+ data,
|
|
|
+ code
|
|
|
+ } = await OrderApi.getByStatus(state.orderInfo.merchantOrderId);
|
|
|
+ if (code === 0) {
|
|
|
+ state.tradeOrder = data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 2.1 情况三一:未支付,且轮询次数小于三次,则继续轮询
|
|
|
+ if (state.counter < 3 && state.result === 'unpaid') {
|
|
|
+ setTimeout(() => {
|
|
|
+ getOrderInfo(id);
|
|
|
+ }, 1500);
|
|
|
+ }
|
|
|
+ // 2.2 情况二:超过三次检测才判断为支付失败
|
|
|
+ if (state.counter >= 3) {
|
|
|
+ state.result = 'failed';
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- function onOrder() {
|
|
|
- // TODO 非繁人:待测试
|
|
|
- if (state.orderType === 'recharge') {
|
|
|
- sheep.$router.redirect('/pages/pay/recharge-log');
|
|
|
- } else {
|
|
|
- sheep.$router.redirect('/pages/order/list');
|
|
|
- }
|
|
|
- }
|
|
|
+ function onOrder() {
|
|
|
+ // TODO 非繁人:待测试
|
|
|
+ if (state.orderType === 'recharge') {
|
|
|
+ sheep.$router.redirect('/pages/pay/recharge-log');
|
|
|
+ } else {
|
|
|
+ sheep.$router.redirect('/pages/order/list');
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // TODO 非繁人:待测试
|
|
|
- // #ifdef MP
|
|
|
- function subscribeMessage() {
|
|
|
- let event = ['order_dispatched'];
|
|
|
- if (state.tradeOrder.type === 3) {
|
|
|
- event.push('groupon_finish');
|
|
|
- event.push('groupon_fail');
|
|
|
- }
|
|
|
- sheep.$platform.useProvider('wechat').subscribeMessage(event);
|
|
|
- }
|
|
|
- // #endif
|
|
|
+ // TODO 非繁人:待测试
|
|
|
+ // #ifdef MP
|
|
|
+ function subscribeMessage() {
|
|
|
+ let event = ['order_dispatched'];
|
|
|
+ if (state.tradeOrder.type === 3) {
|
|
|
+ event.push('groupon_finish');
|
|
|
+ event.push('groupon_fail');
|
|
|
+ }
|
|
|
+ sheep.$platform.useProvider('wechat').subscribeMessage(event);
|
|
|
+ }
|
|
|
+ // #endif
|
|
|
|
|
|
- onLoad(async (options) => {
|
|
|
- // 支付订单号
|
|
|
- if (options.id) {
|
|
|
- state.id = options.id;
|
|
|
- }
|
|
|
- // 订单类型
|
|
|
- if (options.orderType) {
|
|
|
- state.orderType = options.orderType;
|
|
|
- }
|
|
|
+ onLoad(async (options) => {
|
|
|
+ // 支付订单号
|
|
|
+ if (options.id) {
|
|
|
+ state.id = options.id;
|
|
|
+ }
|
|
|
+ // 订单类型
|
|
|
+ if (options.orderType) {
|
|
|
+ state.orderType = options.orderType;
|
|
|
+ }
|
|
|
|
|
|
- // 支付结果传值过来是失败,则直接显示失败界面
|
|
|
- // if (options.payState === 'fail') {
|
|
|
- // state.result = 'failed';
|
|
|
- // } else {
|
|
|
- // 轮询三次检测订单支付结果
|
|
|
- await getOrderInfo(state.id);
|
|
|
- // }
|
|
|
- });
|
|
|
+ // 支付结果传值过来是失败,则直接显示失败界面
|
|
|
+ // if (options.payState === 'fail') {
|
|
|
+ // state.result = 'failed';
|
|
|
+ // } else {
|
|
|
+ // 轮询三次检测订单支付结果
|
|
|
+ await getOrderInfo(state.id);
|
|
|
+ // }
|
|
|
+ });
|
|
|
|
|
|
- onShow(() => {
|
|
|
- if (isEmpty(state.orderInfo)) {
|
|
|
- return;
|
|
|
- }
|
|
|
- getOrderInfo(state.id);
|
|
|
- });
|
|
|
+ onShow(() => {
|
|
|
+ if (isEmpty(state.orderInfo)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ getOrderInfo(state.id);
|
|
|
+ });
|
|
|
|
|
|
- onHide(() => {
|
|
|
- state.result = 'unpaid';
|
|
|
- state.counter = 0;
|
|
|
- });
|
|
|
+ onHide(() => {
|
|
|
+ state.result = 'unpaid';
|
|
|
+ state.counter = 0;
|
|
|
+ });
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- @keyframes rotation {
|
|
|
- 0% {
|
|
|
- transform: rotate(0deg);
|
|
|
- }
|
|
|
+ @keyframes rotation {
|
|
|
+ 0% {
|
|
|
+ transform: rotate(0deg);
|
|
|
+ }
|
|
|
|
|
|
- 100% {
|
|
|
- transform: rotate(360deg);
|
|
|
- }
|
|
|
- }
|
|
|
+ 100% {
|
|
|
+ transform: rotate(360deg);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .score-img {
|
|
|
- width: 36rpx;
|
|
|
- height: 36rpx;
|
|
|
- margin: 0 4rpx;
|
|
|
- }
|
|
|
+ .score-img {
|
|
|
+ width: 36rpx;
|
|
|
+ height: 36rpx;
|
|
|
+ margin: 0 4rpx;
|
|
|
+ }
|
|
|
|
|
|
- .pay-result-box {
|
|
|
- padding: 60rpx 0;
|
|
|
+ .pay-result-box {
|
|
|
+ padding: 60rpx 0;
|
|
|
|
|
|
- .pay-waiting {
|
|
|
- margin-top: 20rpx;
|
|
|
- width: 60rpx;
|
|
|
- height: 60rpx;
|
|
|
- border: 10rpx solid rgb(233, 231, 231);
|
|
|
- border-bottom-color: rgb(204, 204, 204);
|
|
|
- border-radius: 50%;
|
|
|
- display: inline-block;
|
|
|
- // -webkit-animation: rotation 1s linear infinite;
|
|
|
- animation: rotation 1s linear infinite;
|
|
|
- }
|
|
|
+ .pay-waiting {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ width: 60rpx;
|
|
|
+ height: 60rpx;
|
|
|
+ border: 10rpx solid rgb(233, 231, 231);
|
|
|
+ border-bottom-color: rgb(204, 204, 204);
|
|
|
+ border-radius: 50%;
|
|
|
+ display: inline-block;
|
|
|
+ // -webkit-animation: rotation 1s linear infinite;
|
|
|
+ animation: rotation 1s linear infinite;
|
|
|
+ }
|
|
|
|
|
|
- .pay-img {
|
|
|
- width: 130rpx;
|
|
|
- height: 130rpx;
|
|
|
- }
|
|
|
+ .pay-img {
|
|
|
+ width: 130rpx;
|
|
|
+ height: 130rpx;
|
|
|
+ }
|
|
|
|
|
|
- .tip-text {
|
|
|
- font-size: 30rpx;
|
|
|
- font-weight: bold;
|
|
|
- color: #333333;
|
|
|
- }
|
|
|
+ .tip-text {
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
|
|
|
- .pay-total-num {
|
|
|
- font-size: 36rpx;
|
|
|
- font-weight: 500;
|
|
|
- color: #333333;
|
|
|
- font-family: OPPOSANS;
|
|
|
- }
|
|
|
+ .pay-total-num {
|
|
|
+ font-size: 36rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #333333;
|
|
|
+ font-family: OPPOSANS;
|
|
|
+ }
|
|
|
|
|
|
- .btn-box {
|
|
|
- width: 100%;
|
|
|
+ .btn-box {
|
|
|
+ width: 100%;
|
|
|
|
|
|
- .back-btn {
|
|
|
- width: 190rpx;
|
|
|
- height: 70rpx;
|
|
|
- font-size: 28rpx;
|
|
|
- border: 2rpx solid #dfdfdf;
|
|
|
- border-radius: 35rpx;
|
|
|
- font-weight: 400;
|
|
|
- color: #595959;
|
|
|
- }
|
|
|
+ .back-btn {
|
|
|
+ width: 190rpx;
|
|
|
+ height: 70rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ border: 2rpx solid #dfdfdf;
|
|
|
+ border-radius: 35rpx;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #595959;
|
|
|
+ }
|
|
|
|
|
|
- .check-btn {
|
|
|
- width: 190rpx;
|
|
|
- height: 70rpx;
|
|
|
- font-size: 28rpx;
|
|
|
- border: 2rpx solid #dfdfdf;
|
|
|
- border-radius: 35rpx;
|
|
|
- font-weight: 400;
|
|
|
- color: #595959;
|
|
|
- margin-left: 32rpx;
|
|
|
- }
|
|
|
- }
|
|
|
+ .check-btn {
|
|
|
+ width: 190rpx;
|
|
|
+ height: 70rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ border: 2rpx solid #dfdfdf;
|
|
|
+ border-radius: 35rpx;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #595959;
|
|
|
+ margin-left: 32rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .subscribe-box {
|
|
|
- .subscribe-img {
|
|
|
- width: 44rpx;
|
|
|
- height: 44rpx;
|
|
|
- }
|
|
|
+ .subscribe-box {
|
|
|
+ .subscribe-img {
|
|
|
+ width: 44rpx;
|
|
|
+ height: 44rpx;
|
|
|
+ }
|
|
|
|
|
|
- .subscribe-title {
|
|
|
- font-weight: 500;
|
|
|
- font-size: 32rpx;
|
|
|
- line-height: 36rpx;
|
|
|
- color: #434343;
|
|
|
- }
|
|
|
+ .subscribe-title {
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 32rpx;
|
|
|
+ line-height: 36rpx;
|
|
|
+ color: #434343;
|
|
|
+ }
|
|
|
|
|
|
- .subscribe-start {
|
|
|
- color: var(--ui-BG-Main);
|
|
|
- font-weight: 700;
|
|
|
- font-size: 32rpx;
|
|
|
- line-height: 36rpx;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-</style>
|
|
|
+ .subscribe-start {
|
|
|
+ color: var(--ui-BG-Main);
|
|
|
+ font-weight: 700;
|
|
|
+ font-size: 32rpx;
|
|
|
+ line-height: 36rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|