<!-- 单个商品购买页面 -->
<template>
<view class="flex-col justify-start relative page" :style="{ backgroundImage: 'url(' + bkgPubilcPath + ')' }">
  <view class="flex-col group_1">
		<!-- 地址信息 -->
	<view @click="loadPop" :style="{ pointerEvents: isLoading ? 'none' : 'auto' }">
		<addressSelectedVue></addressSelectedVue>
	</view>
		<!-- 商品信息 -->
    <view class="flex-col section_3">
      <view class="flex-col self-stretch">
        <view class="flex-row items-end group_18">
          <view class="flex-row items-end flex-1 group_19">
            <image
              class="shrink-0 image_3 image_4" mode="aspectFill"
              :src="publicPath + productObject.goodImg.split(';')[0]"
            />
            <view class="flex-col ml-17">
              <view class="flex-row">
                <text class="font">{{ productObject.name }}</text>
                <text class="font text_1">【{{ productObject.type }}】</text>
              </view>
              <view class="flex-row items-center mt-52">
              <!--  <image
                  class="image_7"
                  :src="orderUrl + '/singleGoodOrder/money.png'"
                /> -->
                <text class="font_4 ml-2">￥{{ productObject.price.toFixed(2) }}</text>
                <!-- <text class="font_6 text_27 ml-2">00</text> -->
              </view>
            </view>
          </view>
          <view class="flex-row shrink-0 ml-21">
            <image
              class="image_5"
              :src="orderUrl + '/singleGoodOrder/sub.png'"
							@click="shortNum"
            />
            <view class="flex-col justify-start items-center text-wrapper ml-2"><text class="font_5">{{ quantity }}</text></view>
            <image
              class="image_6 ml-2"
              :src="orderUrl + '/singleGoodOrder/add.png'"
							@click="addNum"
            />
          </view>
        </view>
      </view>
    </view>
    <view class="flex-col section_5">
      <view class="flex-row justify-between items-center group_14">
        <view class="flex-row">
          <text class="font_7 text_14">商品总价</text>
          <text class="font_8 ml-7">共{{ quantity }}件商品</text>
        </view>
        <view class="flex-row items-center">
          <text class="font_9">￥{{ sumprice.toFixed(2) }}</text>
        </view>
      </view>
      <view class="flex-col mt-25">
				<view class="flex-row justify-between group_100">
				  <text class="font_7">运费</text>
				  <view class="flex-row">
				    <text class="font_88">￥{{ realFreight }}</text>
				  </view>
				</view>
        <view class="flex-row justify-between group_10" @click="openCoupon" :style="{ pointerEvents: isLoading ? 'none' : 'auto' }">
          <text class="font_7">优惠券</text>
          <view class="flex-row">
            <text class="font_8" :style="{color: textColor}">{{ templateString }}</text>
            <image
              class="shrink-0 image_7 ml-3"
              :src="orderUrl + '/singleGoodOrder/yjt2.png'"
            />
          </view>
        </view>
        <view class="flex-col mt-9">
          <view class="flex-row justify-between items-center group_12">
            <text class="font_7 text_18">合计</text>
            <view class="flex-row items-center">
              <!-- <image
                class="shrink-0 image_9"
                :src="orderUrl + '/singleGoodOrder/money.png'"
              /> -->
              <text class="font_9">￥{{ sfAmount.toFixed(2) }}</text>
            </view>
          </view>
        </view>
      </view>
    </view>
    <view class="flex-col section_6">
      <text class="self-start font_7 text_19">订单备注</text>
      <textarea maxlength="250" placeholder-style="font-size: 25rpx;" v-model="note" placeholder="备注建议提前协商（250字以内）" class="flex-col justify-start items-start self-stretch text-wrapper_2 mt-11">
      </textarea>
    </view>
  </view>
  <view class="flex-row justify-between items-center section_7 pos_8">
    <view class="flex-row items-center">
      <text class="text_21">应付：</text>
      <text class="text_22">￥{{ sfAmount.toFixed(2) }}</text>
      <!-- <text class="text_24">00</text> -->
    </view>
    <view class="flex-col justify-start items-center text-wrapper_3" @click="wxPayFd" :style="{ pointerEvents: isLoading ? 'none' : 'auto' }">
		<text class="font_7 text_23">微信支付</text></view>
  </view>
</view>
	<uni-popup ref="popup" background-color="#fff" :is-mask-click="false">
		<view class="popup-content">
			<addressComponentVue></addressComponentVue>
		</view>
	</uni-popup>
	
	
	<uni-popup ref="coupon">
		<view class="coupon-popup">
			<couponPopupVue></couponPopupVue>
		</view>
	</uni-popup>
	
	<uni-popup ref="bookingTips" :maskClick="false" :animation="false">
		<view class="booking-tips">
			<expressageTipsVue></expressageTipsVue>
		</view>
	</uni-popup>
	
	<!-- 遮罩层 -->
	    <view v-if="isShow" class="overlay"></view>
	
</template>

<script setup>
import {nextTick, onMounted, onUnmounted, ref, toRaw, watch} from 'vue'
import  emitter  from '../../../utils/emitter'
import { onLoad , onShow } from  "@dcloudio/uni-app"; 
import { getFonts } from '../../../common/globalFont';
import { baseUrl } from '../../../api/request';
import addressComponentVue from '../component/addressComponent.vue';//导入组件
import couponPopupVue from '../../coupon/component/couponPopup.vue';
import { stateMap } from '../../../common/global';
import { myOrderUrl } from '../../../common/globalImagesUrl';
import * as math from 'mathjs'
import { JudgeIsNullity, dealResult } from '../../../common/globalFunction';
import addressSelectedVue from '../../Shopping-cart/component/addressSelected.vue';
import { orderUrl } from '../../../common/globalImagesUrl';
import { publicPath,bkgPubilcPath } from '../../../common/globalImagesUrl';
import expressageTipsVue from '../component/expressageTips.vue';

//一些暂时变量
const sumprice = ref(0) //总价格
//11.4开发 不应该删掉的
const popup = ref(null) //弹窗对象
const addressRealInfo = ref({}) //地址页  选择地址传过来的值  进入页面首先是默认地址，若无默认地址，则为空
const productObject = ref({})  //商品对象
const labelList = ref([])  //老套路，商品标签
const userInfo = wx.getStorageSync('userInfo')  //用户信息
const orderItemList = ref({})
const totalInfo = ref([]) //购物车传过来的批量商品
const note = ref('')
const postCartArr = ref([])
const quantity = ref(1)  //商品数量 
const couponIsShow = ref(false)

const coupon = ref(null)
const couponObj = ref({})
const templateString = ref('')
const conditionAmount = ref(0)
const sfAmount = ref(0)
const myCouponList = ref([])
const cookie = wx.getStorageSync("cookie")  //请求头


const useCouponId = ref(null)
const textColor = ref('')

const bookingTips = ref(null)


const openTipsPopup = () => {
		bookingTips.value.open('center')
	}
	
	const closeBookingTipsHandler = () => {
		nextTick(() => {
			if (bookingTips.value) {
				bookingTips.value.close()
			}
		})
	}

const closeAddressHandler = () => {
	nextTick(() => {
		if (popup.value) {
			popup.value.close()
			addExpressExpense()
		}
	})
}

const closeCouponHandler = () => {
	nextTick(() => {
		if (coupon.value) {
			coupon.value.close()
		}
	})
}

const addressInfoHandler = (val) => {   //地址选项变化
	addressRealInfo.value = val
	addExpressExpense()    //再监测一下是否是偏远地区
}


const delMyAddressHandler = (val) => {
	if (addressRealInfo.value.id === val) {
		addressRealInfo.value = {}
	}
}

const cancelCouponHandler = () => {
	templateString.value = myCouponList.value.length + '张优惠券可用'
	sfAmount.value = sumprice.value 
	useCouponId.value = null
	textColor.value = '#818181'
}

const getCouponObjHandler = (val) => {
	couponObj.value = val
	templateString.value = "-￥" + val.couponVO.conditionAmount.toFixed(2)
	conditionAmount.value = val.couponVO.conditionAmount
	sfAmount.value = sumprice.value - conditionAmount.value
	useCouponId.value = val.id
	textColor.value = '#FFB6B9'
	console.log(val)
}

const updateAddressHandler = (val) => {
	if (addressRealInfo.value.id === val.id) {
		addressRealInfo.value = val
	}
}



	onMounted( async () => {
		await getDefaultAddress()
		// 将关闭弹窗方法传入弹窗页面，绑定弹窗按钮可关闭弹窗
		
		emitter.on('closeAddress', closeAddressHandler)
		
		emitter.on('closeCoupon', closeCouponHandler)
		
		emitter.on('addressInfo', addressInfoHandler)
		
		emitter.on('cancelCoupon', cancelCouponHandler)
		
		emitter.on('getCouponObj', getCouponObjHandler)
		
		emitter.on('delMyAddress', delMyAddressHandler)
		
		emitter.on('updateAddress', updateAddressHandler)
		
		emitter.on('closeBookingTips', closeBookingTipsHandler)
		
		await getPostagePrice()
		
		await addExpressExpense()
	})
	
	 onUnmounted(() => {
		 emitter.off('closeBookingTips', closeBookingTipsHandler)
		
		 emitter.off('closeAddress', closeAddressHandler)
		 
		 emitter.off('closeCoupon', closeCouponHandler)
		 
		 emitter.off('addressInfo', addressInfoHandler)
		 
		 emitter.off('cancelCoupon', cancelCouponHandler)
		 
		 emitter.off('getCouponObj', getCouponObjHandler)
		 
		 emitter.off('delMyAddress', delMyAddressHandler)
		 
		 emitter.off('updateAddress', updateAddressHandler)
	 })
	 
	onLoad( async (options)=>{
		getFonts() 
		totalInfo.value = JSON.parse(options.cartInfo)
		await getProduct()
		await getMyCouponList() 
		await openTipsPopup()
	})




	const openCoupon = () => {
		emitter.emit('getTotalPrice', initialPrice.value)
		coupon.value.open('bottom')
	}


	const getMyCouponList = async () => {		
		const res = await uni.request({
			url: baseUrl + '/coupon/list/use',
			method: 'POST',
			header: {
				cookie
			},
			data: {
				currentAmount: sumprice.value,
				isAvailable: true
			}
		})
		myCouponList.value = res.data.data
		templateString.value = myCouponList.value.length + '张优惠券可用'
		console.log('============================>', myCouponList.value)
	}
	
	
	
	
	

	
	
	

	
	
	
	
	
	
	
	let debounceTimer = null;
	let wxPayTimer = null;
	let loading = false;
	let isLoading = ref(false)
	let isShow = ref(false)
	
	const fd = () => {  //防抖
		clearTimeout(debounceTimer)
		showLoading()
		debounceTimer = setTimeout(async () => {
			await getMyCouponList()
			hideLoading()
		}, 1000)
	}
	
	const wxPayFd = () => {
		if (addressRealInfo.value.name === null || addressRealInfo.value.name === '' || addressRealInfo.value.name === undefined) {
			uni.showToast({
				title: '请选择地址',
				icon: 'error'
			})
			return ;
		}
		showLoading()
		isShow.value = true
		createOrder()
	}
	
	
	function showLoading() {
	  if (!loading) {
	    wx.showLoading({
	      title: '加载中...',
	    });
	    loading = true;
		isLoading.value = true
	  }
	}
	
	
	function hideLoading() {
	  if (loading) {
	    wx.hideLoading();
	    loading = false;
		isLoading.value = false
	  }
	}
	
	//减少当前商品数量
	const shortNum = ()=>{
		if(quantity.value > 1) {
			quantity.value -= 1
			//计算商品价格
			sumprice.value = math.round(sumprice.value-productObject.value.price,2) 
			sfAmount.value = sumprice.value
			initialPrice.value = sumprice.value
			useCouponId.value = null
			textColor.value = '#818181'
			fd()
		}
	}
	//增加当前商品数量
	const addNum = ()=>{
		 if( quantity.value < productObject.value.inventory ) { //数量肯定不能大于库存
			 quantity.value += 1
			 sumprice.value = math.round(sumprice.value+productObject.value.price,2)   //解决js计算精度问题
			 sfAmount.value = sumprice.value
			 initialPrice.value = sumprice.value
			 useCouponId.value = null
			 textColor.value = '#818181'
			 fd()
		 }
	}
	
	
	
	
	
	
	
	
	
	
	
	

//加载弹窗。默认从底部弹出
const loadPop =() =>{
	popup.value.open('bottom')

}
//获取用户默认地址
const getDefaultAddress = async () =>{
	const res = await uni.request({
		url: baseUrl + '/address/list',
		method: 'POST',
		header: {
			cookie: wx.getStorageSync('cookie')
		}
	})
	let addArr = res.data.data
	for(let key in addArr) {
		if(addArr[key].isDefault === 1) {
			addressRealInfo.value = addArr[key]
		}
	} 
	emitter.emit('getAddressInfo', addressRealInfo.value)
}
const createOrder = async () => {  //创建单个商品订单的方法
	console.log('地址信息-->',addressRealInfo.value);
	formatArr()
	console.log('postCartArr--->',postCartArr.value);
	const res = await uni.request({   //向后端发送生成订单请求
		url: baseUrl + '/order/add',
		method: 'POST',
		header: {
			cookie: wx.getStorageSync('cookie')
		},
		data: {
			orderType: productObject.value.type === '服务类' ? 'service' : 'product',
			userName: userInfo.userName,
			addressId: addressRealInfo.value.id, //地址信息id
			couponId: useCouponId.value, //优惠卷id
			note: note.value,
			isPostage: isPostage.value,
			orderItemMainInfoAddRequestList: toRaw(postCartArr.value)
		}
	})
	console.log('isPostage--->',isPostage.value);
	console.log('后台返回订单响应==>',res.data);
	if (!dealResult(res)) {
		hideLoading()
		isShow.value = false
		return 
	} 
	wxPay(res.data.data)

}
//根据商品id获取单个商品信息
const getProduct = async ()=> {
	const res = await uni.request({
		url: baseUrl + '/goods/getById',
		method: 'POST',
		header: {
			cookie: wx.getStorageSync('cookie')
		},
		data: { id: totalInfo.value }
	})
	console.log('展示订单页面的商品信息-->',res.data);
	if( res.data.code === 1 ) {
		dealRes(res)
	}
}
const dealRes =(res)=> {  //处理来自后端的数据
	productObject.value = res.data.data;
	sumprice.value = res.data.data.price;
	initialPrice.value = res.data.data.price;
	sfAmount.value = res.data.data.price;
	// console.log('productArr--->',productObject.value);
}





const formatArr = () =>{  //格式化
	postCartArr.value.splice(0,postCartArr.value.length)
	postCartArr.value.push({
		goodId: totalInfo.value,
		quantity: quantity.value
	})
	// console.log(postCartArr.value);
}
const wxPay = async ( oid )=> {  //传入订单id
	try {
		const res = await uni.request({
			url: baseUrl + '/wechat/payment/create',
			method: 'POST',
			header: {
				'cookie': wx.getStorageSync("cookie")
			},
			data: { id: oid }
		})
		const paymentData = res.data.data
		wx.requestPayment({
			appid: paymentData.appId,
			nonceStr: paymentData.nonceStr,
			package: paymentData.packageVal,
			paySign: paymentData.paySign,
			timeStamp: paymentData.timeStamp,
			signType: paymentData.signType,
			success(res) {
				uni.showModal({
					title: '提示',
					content: '支付成功',
					showCancel: false 
				})
			},
			fail(e) {
				
			},
			complete () {
				uni.redirectTo({
					url: '/pages/my-order/myGeneralOrderDetail/myGeneralOrderDetail?id=' + oid
				})
			}
		})
	}catch(error) {
		uni.showModal({
			title: '提示',
			content: '支付失败，请刷新后重试',
			showCancel: false
		})
	}
}

const remoteArea = ref(['新疆','西藏','内蒙','甘肃','青海','宁夏','云南','海南'])
const isPostage = ref(false);
const freight = ref(0);
const realFreight = ref(0);
const initialPrice = ref(0);   //初始价格
const addExpressProductPrice = ref(0)   //增加过快递费用的商品

//偏远地区附加运费函数
const addExpressExpense =()=> {
	addExpressProductPrice.value = initialPrice.value + freight.value;
	// console.log('看看地址-->',addressRealInfo.value);
	let judge = addressRealInfo.value.region.substring(0,2) //判断的变量
	// console.log(remoteArea.value.includes(judge));
	console.log('当前快递价格--->',freight.value);
	if(remoteArea.value.includes(judge)) {
		isPostage.value = true;
		realFreight.value = freight.value;
		sfAmount.value = addExpressProductPrice.value;
	} else {
		sfAmount.value = initialPrice.value;
		realFreight.value = 0;
		console.log('初始价格--->',initialPrice.value);
		isPostage.value = false;
	}
}

const getPostagePrice = async ()=>{
	const res = await uni.request({
		url: baseUrl + '/global/query/postage/price',
		method: 'GET',
		header: {
			cookie
		}
	})
	console.log('偏远地区快递费用--->',res.data); 
	if(res.data.code === 1) {
		freight.value = res.data.data
	} 
}

</script>
 
<style lang="scss" scoped>
.booking-tips {
	justify-content: center;
	background-color: #fff;
	border-radius: 41.1rpx;
	margin-top: -100rpx;
	width: 650rpx;
}
.my-text-wrap {
	width:480rpx; ;display:inline-block;white-space: pre-wrap; word-wrap: break-word;height: auto;
}
.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);  /* 半透明黑色背景 */
  z-index: 999;
}
	
.popup-content {
	height: 400px;
	align-items: center;
	justify-content: center;
	// background-color: #fff;
	border-radius: 20rpx 20rpx 0 0;
}

.coupon-popup {
	height: 1200rpx; 
	justify-content: center;
	background-color: #fff;
	border-radius: 20rpx 20rpx 0 0;
}

.ml-17 {
  margin-left: 31.88rpx;
}
.ml-21 {
  margin-left: 39.38rpx;
}
.ml-7 {
  margin-left: 13.13rpx;
}
.mt-25 {
  margin-top: 20.88rpx;
}
.ml-3 {
  margin-left: 5.63rpx;
}
.mt-9 {
  // margin-top: 16.88rpx;
}
.mt-11 {
  margin-top: 20.63rpx;
}
.page {
  background-color: #fff;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  height: 100vh;
}
.group_1 {
  padding: 18.75rpx 15rpx 247.5rpx 16.88rpx;
}
.section_2 {
  padding: 25.07rpx 18.75rpx 28.07rpx 20.63rpx;
  background-color: #ffffff;
  border-radius: 18.75rpx;
  position: relative;
}
.font {
  font-size: 26.25rpx;
  font-family: FangZhengFonts;
  line-height: 26.25rpx;
  color: #323232;
}
.text {
	margin-left: 54rpx;
	line-height: 25.74rpx;
}
.image {
  width: 43.13rpx;
  height: 43.13rpx;
  position: absolute;
  top: 35%;
}
.font_2 {
  font-size: 26.25rpx;
  font-family: FangZhengFonts;
  line-height: 22.54rpx;
  color: #818181;
}
.text_2 {
  line-height: 26.25rpx;
  margin-left: 54rpx;
  margin-top: 15rpx;
}
.group {
  // margin-top: 36.54rpx;
  position: absolute;
  top: 40%;
  right: 20rpx;
}
.font_3 {
  font-size: 26.25rpx;
  font-family: FangZhengFonts;
  line-height: 25.54rpx;
  color: #ffaaa5;
}
.text_3 {
  line-height: 24.41rpx;
}
.image_2 {
  width: 24.38rpx;
  height: 24.38rpx;
}
.group_2 {
  // padding: 0 59.23rpx;
  margin-left: 54rpx;
  margin-top: 15rpx;
}
.text_4 {
  color: #5a5a5a;
  line-height: 19.42rpx;
}
.text_5 {
	margin-left: 24rpx;
  line-height: 15.04rpx;
}
.section_3 {
  margin-top: 16.88rpx;
  padding: 22.5rpx 0 22.63rpx;
  background-color: #ffffff;
  border-radius: 18.75rpx;
}
.group_18 {
  padding-left: 26.27rpx;
  padding-right: 24.36rpx;
}
.group_19 {
  margin-bottom: 3.75rpx;
  display: flex;
  align-items: center;
}
.image_3 {
  border-radius: 9.38rpx;
  width: 146.25rpx;
  height: 165rpx;
}
.image_4 {
  // margin-bottom: 9.38rpx;
}
.text_1 {
  line-height: 25.01rpx;
}
.image_7 {
  width: 30rpx;
  height: 30rpx;
}
.font_4 {
  font-size: 33.75rpx;
  font-family: FangZhengFonts;
  line-height: 22.54rpx;
  color: #323232;
}
.font_6 {
  font-size: 26.25rpx;
  font-family: FangZhengFonts;
  line-height: 17.23rpx;
  color: #323232;
}
.text_27 {
  line-height: 17.53rpx;
  margin-left: 54rpx;
}
.image_5 {
  border-radius: 9.38rpx 0rpx 0rpx 9.38rpx;
  width: 45rpx;
  height: 45rpx;
}
.text-wrapper {
  padding: 16.31rpx 0 16.46rpx;
  background-color: #ffaaa5;
  width: 58.13rpx;
  height: 45rpx;
}
.font_5 {
  font-size: 26.25rpx;
  font-family: FangZhengFonts;
  line-height: 17.23rpx;
  color: #ffffff;
}
.image_6 {
  border-radius: 0rpx 9.38rpx 9.38rpx 0rpx;
  width: 45rpx;
  height: 45rpx;
}
.group_9 {
  line-height: 21.71rpx;
  height: 21.71rpx;
}
.text_12 {
  line-height: 21.71rpx;
}
.text_13 {
  color: #ed4845;
  line-height: 21rpx;
}
.image_8 {
  width: 26.25rpx;
  height: 26.25rpx;
}
.section_5 {
  margin-top: 16.88rpx;
  padding: 31.88rpx 13.13rpx 5.63rpx;
  background-color: #ffffff;
  border-radius: 18.75rpx;
}
.group_14 {
  padding: 0 24.02rpx;
}
.font_7 {
  font-size: 30rpx;
  font-family: FangZhengFonts;
  line-height: 29.18rpx;
  color: #323232;
}
.text_14 {
  line-height: 28.13rpx;
}
.font_8 {
  font-size: 30rpx;
  font-family: FangZhengFonts;
  line-height: 29.18rpx;
  color: #818181;
}
.font_88 {
  font-size: 30rpx;
  font-family: FangZhengFonts;
  line-height: 29.18rpx;
  color: #000;
}
.image_9 {
  width: 33.75rpx;
  height: 33.75rpx;
}
.font_9 {
  font-size: 30rpx;
  font-family: FangZhengFonts;
  line-height: 20.04rpx;
  color: #323232;
}
.group_10 {
  padding: 25rpx 3.75rpx 25rpx 22.97rpx;
}
.group_100 {
  padding: 25rpx 26.75rpx 25rpx 22.97rpx;
}
.group_11 {
  padding: 26.25rpx 10.42rpx 28.13rpx 24.62rpx;
  border-bottom: solid 1.88rpx #dfdfdf;
}
.text_15 {
  line-height: 29.42rpx;
}
.image_10 {
  margin-left: 21.6rpx;
}
.text_16 {
  margin-left: -55.35rpx;
  line-height: 25.74rpx;
}
.text_17 {
  margin-left: 33.68rpx;
  color: #ffaaa5;
}
.group_12 {
  padding: 18.25rpx 23.94rpx 28.13rpx 23.44rpx;
}
.text_18 {
  line-height: 27.77rpx;
}
.section_6 {
  margin-top: 16.88rpx;
  padding: 17.81rpx 24.13rpx 22.5rpx;
  background-color: #ffffff;
  border-radius: 18.75rpx;
}
.text_19 {
  color: #323232;
  line-height: 29.53rpx;
}
.text-wrapper_2 {
  height: 200rpx;
  width: 650rpx;
  padding: 22.35rpx;
  box-sizing: border-box;
  background-color: #ffefef;
  border-radius: 9.38rpx;
  margin: 20rpx auto 0;
}
.text_20 {
  margin-left: 21.15rpx;
  line-height: 21.81rpx;
}
.section_7 {
  padding: 16.88rpx 25.31rpx 15rpx;
  background-color: #ffffff;
}
.pos_8 {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
}
.image_11 {
  margin-left: 85.31rpx;
}
.text_21 {
  // margin-left: -119.06rpx;
  color: #323232;
  font-size: 30rpx;
  font-family: FangZhengFonts;
  line-height: 26.49rpx;
}
.text_22 {
  color: #ffaaa5;
  font-size: 37.5rpx;
  font-family: FangZhengFonts;
  font-weight: 700;
  line-height: 27.62rpx;
}
.text_24 {
  color: #ffaaa5;
  font-size: 30rpx;
  font-family: FangZhengFonts;
  font-weight: 700;
  line-height: 22.05rpx;
}
.text-wrapper_3 {
  padding: 20.51rpx 0 22.97rpx;
  background-color: #ffaaa5;
  border-radius: 75rpx;
  width: 204.38rpx;
  height: 71.25rpx;
}
.text_23 {
  color: #ffffff;
  line-height: 27.77rpx;
}
@import url(../../../common/css/global.css);
</style>
