web-retail-h5/pages/specialArea/details.vue

974 lines
26 KiB
Vue
Raw Normal View History

2025-03-23 09:29:40 +08:00
<template>
<view class="content">
<backIcon></backIcon>
<!-- 轮播图 -->
<u-swiper
2025-04-28 09:49:59 +08:00
:list="bannerImgList"
2025-03-23 09:29:40 +08:00
:height="isWidth"
circular
:autoplay="false"
indicator
indicatorMode="dot"
></u-swiper>
<view class="contxt">
<view v-if="goodDetail.preSaleStatus == 1">
<view class="sTop">
<view class="sTop_l">
<view class="f1">
{{ goodDetail.goodsPrice | toThousandthAndKeepDecimal }}
2025-03-23 09:29:40 +08:00
</view>
<view class="disFlex1">
<img src="@/static/images/clock.png" alt="" />
<view class="f2">{{ '预计发货' }}</view>
2025-03-23 09:29:40 +08:00
</view>
</view>
<view class="sTop_l">
<view class="f2" v-if="specialArea != 18 && specialArea != 13"
>业绩:{{ goodDetail.goodsAchive | toThousandthAndKeepDecimal }}
2025-03-23 09:29:40 +08:00
</view>
<view class="f3">
<view>{{ '剩余时间' }}:{{ countDown }}</view>
2025-03-23 09:29:40 +08:00
<!-- <view></view> -->
</view>
</view>
</view>
<view class="kuang1">
<!-- <view class="disFlex" v-show="specialArea == 31">
<view class="t_hui">统一零售价:{{ goodDetail.retailPrice | numberToCurrency | isLocal }}</view>
</view> -->
<view class="disFlex">
<view class="t_hui">销量:{{ goodDetail.sales | seles }}</view>
</view>
<view class="disFlex">
<view class="bao" v-if="goodDetail.prefixLabelTarget"
>[{{ goodDetail.prefixLabelTarget.label }}]
</view>
<view class="t_hei">{{ goodDetail.waresName }}</view>
</view>
</view>
</view>
<view class="kuang" v-else>
<view class="disFlex">
<view class="t_red">{{
goodDetail.goodsPrice | numberToCurrency | isLocal
}}</view>
<view
class="t_hui"
v-if="
specialArea != 18 &&
specialArea != 13 &&
specialArea != 31 &&
specialArea != 10
"
2025-03-23 09:29:40 +08:00
>业绩:{{ goodDetail.goodsAchive | numberToCurrency }}</view
>
<view class="t_hui" v-if="specialArea == 10"
2025-03-23 09:29:40 +08:00
>积分可抵扣:{{ goodDetail.deductMoney | numberToCurrency }}</view
>
<view
class="t_hui"
v-if="goodDetail.specialArea == 31 && user.isMakerSpace == 0"
>业绩:{{ goodDetail.goodsAchive | numberToCurrency }}</view
>
<view class="t_hui" v-if="specialArea == 13"
>BV:{{ goodDetail.goodsAssAchive | numberToCurrency }}</view
>
</view>
<view class="t_hui1">销量:{{ goodDetail.sales | seles }}</view>
<!-- <view class="disFlex" v-show="specialArea == 31">
<view class="t_hui1">统一零售价:{{ goodDetail.retailPrice | numberToCurrency | isLocal }}</view>
</view> -->
<view class="disFlex">
<view class="bao" v-if="goodDetail.prefixLabelTarget"
>[{{ goodDetail.prefixLabelTarget.label }}]
</view>
<view class="t_hei">{{ goodDetail.waresName }}</view>
</view>
</view>
<view class="kuang t_hei">
{{ '急速下单即享优先发货' }}
2025-03-23 09:29:40 +08:00
</view>
<view class="kuang">
<view class="heng" @tap="selSku = true">
<view class="disFlex">
<view class="label">{{ '规格' }}</view>
<view class="label1">{{ '已选' }}: {{ skuString }}</view>
2025-03-23 09:29:40 +08:00
</view>
<u-icon name="arrow-right"></u-icon>
</view>
<view class="heng">
<view class="disFlex">
<view class="label">{{ '服务承诺' }}</view>
2025-03-23 09:29:40 +08:00
<view
class="label1"
v-for="item in goodDetail.ensureLabelList"
:key="item.pkId"
>{{ item.label }}</view
>
</view>
</view>
</view>
<view class="bTit">
<view>{{ '商品详情' }}</view>
2025-03-23 09:29:40 +08:00
<view class="btm"></view>
</view>
<u-parse :content="goodDetail.details"></u-parse>
</view>
<!-- 占空 -->
<view style="height: 150rpx"></view>
<!-- 底部 -->
<view class="footer_f">
<view class="footer">
<view class="footer_l">
<view class="footer_li footer_ll" @click="toIndex">
<u-icon size="18" name="home"></u-icon>
<view>{{ '首页' }}</view>
2025-03-23 09:29:40 +08:00
</view>
<view
class="footer_li footer_ll"
@click="toCart"
v-if="
(specialArea == 31 && user.isMakerSpace == 0) || specialArea != 31
"
>
2025-03-23 09:29:40 +08:00
<u-icon size="20" name="shopping-cart"></u-icon>
<view class="qiu">{{ shopCarLength }}</view>
<view>{{ '购物车' }}</view>
2025-03-23 09:29:40 +08:00
</view>
</view>
<view
class="footer_r"
v-if="
(specialArea == 31 && user.isMakerSpace == 0) || specialArea != 31
"
>
2025-03-23 09:29:40 +08:00
<!-- <u-button type="success"
class="uBtn"
@tap="goBuy"
shape="circle"
2025-04-22 17:47:02 +08:00
color="linear-gradient(to right, #005BAC, #005BAC )">{{'立即购买'}} </u-button> -->
<view class="btn1" @click="addCar()">加入购物车</view>
<!-- <view class="btn2">{{'立即购买'}}</view> -->
2025-03-23 09:29:40 +08:00
</view>
</view>
</view>
<!-- 选择规格 -->
<u-popup :show="selSku" mode="bottom" closeable @close="close">
<view class="pop_a">
<view class="pop_tt">
<view class="pop_t">
<img :src="imgUrlList[0]" alt="" />
2025-03-23 09:29:40 +08:00
<view>{{
goodDetail.goodsPrice | numberToCurrency | isLocal
}}</view>
</view>
</view>
<view class="zhan"></view>
<view class="pop">
<view
2025-07-05 09:12:44 +08:00
v-for="(item, index) in goodDetail.productList"
2025-03-23 09:29:40 +08:00
:key="item.productId"
class="pop_c"
>
<view class="ggTit"
>{{ item.productName }}*{{ item.quantity }}</view
>
<view
v-for="(ctem, cndex) in item.waresItemsParamsList"
:key="ctem.pkSkuId"
class="pop_ci"
>
<view class="pop_cl">
<img :src="ctem.specCover" alt="" />
<view class="gui_iit">{{ ctem.specsNameDian }}</view>
</view>
<u-number-box
:min="0"
:max="ctem.maxNum"
@change="getNum(index, cndex, $event)"
v-model="ctem.quantity"
>
<view
slot="minus"
:class="ctem.quantity == 0 ? 'hui' : 'minus'"
>
<u-icon name="minus" color="#FFFFFF" size="12"></u-icon>
</view>
<text slot="input" class="input">{{ ctem.quantity }}</text>
<view slot="plus" :class="ctem.quantity == 0 ? 'hui' : 'plus'">
<u-icon name="plus" color="#FFFFFF" size="12"></u-icon>
</view>
</u-number-box>
</view>
</view>
</view>
<view class="zhan1"></view>
<view class="pop_b">
<view class="pop_bb">
<u-button
type="success"
class="uBtn"
shape="circle"
2025-04-22 17:47:02 +08:00
color="linear-gradient(to right, #005BAC, #005BAC )"
2025-03-23 09:29:40 +08:00
@click="close"
2025-04-23 11:51:12 +08:00
>确认</u-button
2025-03-23 09:29:40 +08:00
>
</view>
</view>
</view>
</u-popup>
<selSpaceGoods ref="selSpaceGoods" @getCar="getCatLength"></selSpaceGoods>
</view>
</template>
<script>
import backIcon from '@/components/backIcon.vue'
import * as api from '@/config/goods'
import { mapGetters } from 'vuex'
import selSpaceGoods from '@/components/selSpaceGoods.vue'
2025-03-23 09:29:40 +08:00
export default {
components: {
backIcon,
selSpaceGoods,
},
filters: {
seles(value) {
if (value > 999) {
return 999 + '+'
2025-03-23 09:29:40 +08:00
} else {
return value
2025-03-23 09:29:40 +08:00
}
},
},
data() {
return {
waresCode: '',
specialArea: '',
goodDetail: '',
2025-03-23 09:29:40 +08:00
imgUrlList: [],
selSku: false,
skuString: '',
2025-03-23 09:29:40 +08:00
num: 1,
isWidth: 375,
pkCountry: 1,
countDown: '',
bannerImgList: [],
}
2025-03-23 09:29:40 +08:00
},
2025-03-23 09:29:40 +08:00
onLoad(options) {
this.pkCountry = uni.getStorageSync('pkCountry')
this.waresCode = options.waresCode
this.specialArea = options.specialArea
this.getDetails()
2025-03-23 09:29:40 +08:00
uni.getSystemInfo({
success: function (res) {
this.isWidth = res.screenWidth
2025-03-23 09:29:40 +08:00
},
})
2025-03-23 09:29:40 +08:00
},
2025-04-28 09:49:59 +08:00
computed: {
...mapGetters(['user', 'shopCarLength']),
// bannerImgList() {
// const list = this.imgUrlList.map(item => item)
// list.splice(1,1)
// return list
// }
2025-04-28 09:49:59 +08:00
},
methods: {
2025-03-23 09:29:40 +08:00
toIndex() {
uni.switchTab({ url: '/pages/index/index' })
2025-03-23 09:29:40 +08:00
},
toCart() {
uni.switchTab({ url: '/pages/shoppingCar/index' })
2025-03-23 09:29:40 +08:00
},
addCar() {
let sum = 0
let selSum = 0
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach(item => {
sum += item.quantity
item.waresItemsParamsList.forEach(ctem => {
selSum += ctem.quantity
})
})
2025-03-23 09:29:40 +08:00
if (selSum != sum) {
uni.showToast({
title: '请添加产品',
icon: 'none',
2025-03-23 09:29:40 +08:00
mask: true,
})
return false
2025-03-23 09:29:40 +08:00
}
let carList = {
specialArea: this.goodDetail.specialArea,
number: this.num,
waresCode: this.goodDetail.waresCode,
productGroup: [],
pkCountry: this.pkCountry,
}
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach(item => {
item.waresItemsParamsList.forEach(ctem => {
2025-03-23 09:29:40 +08:00
if (ctem.quantity != 0) {
carList.productGroup.push({
pkProduct: ctem.pkProduct,
pkSkuId: ctem.pkSkuId,
quantity: ctem.quantity,
})
2025-03-23 09:29:40 +08:00
}
})
})
2025-03-23 09:29:40 +08:00
if (this.goodDetail.isMakerGift == 2) {
this.$refs.selSpaceGoods.getData(carList)
2025-03-23 09:29:40 +08:00
} else {
api.addShopping(carList).then(res => {
2025-03-23 09:29:40 +08:00
if (res.code == 200) {
uni.showToast({
title: '购物车添加成功',
icon: 'success',
2025-03-23 09:29:40 +08:00
mask: true,
})
this.$store.dispatch('getCarLength')
2025-03-23 09:29:40 +08:00
}
})
2025-03-23 09:29:40 +08:00
}
},
getCatLength() {
this.$store.dispatch('getCarLength', this.goodDetail.specialArea)
2025-03-23 09:29:40 +08:00
},
close() {
this.selSku = false
2025-03-23 09:29:40 +08:00
},
goBuy() {
uni.navigateTo({
url:
'/pages/shareArea/orderShare?allData=' +
2025-03-23 09:29:40 +08:00
JSON.stringify(this.goodDetail),
})
2025-03-23 09:29:40 +08:00
},
getDetails() {
api
.waresDetail({
pkCountry: this.pkCountry,
specialArea: this.specialArea,
waresCode: this.waresCode,
})
.then(res => {
this.goodDetail = res.data
2025-03-23 09:29:40 +08:00
// let sl = this.goodDetail.sales + ''
// if (sl >= 10000) {
// sl = sl.substring(0, sl.length - 4) + '万+'
// }
// this.goodDetail.sales = sl
// this.mainImgUrl = res.data.videoUrl
this.imgUrlList = [
res.data.cover,
res.data.cover1,
res.data.cover2,
res.data.cover3,
res.data.cover4,
res.data.cover5,
res.data.cover6,
]
this.bannerImgList = [
res.data.videoUrl,
res.data.cover1,
res.data.cover2,
res.data.cover3,
res.data.cover4,
res.data.cover5,
res.data.cover6,
]
this.imgUrlList = this.imgUrlList.filter(item => item && item.trim())
this.bannerImgList = this.bannerImgList.filter(
item => item && item.trim()
)
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach((item, index) => {
2025-03-23 09:29:40 +08:00
item.waresItemsParamsList.forEach((ctem, cndex) => {
ctem.quantity = 0
ctem.maxNum = 0
2025-03-23 09:29:40 +08:00
if (ctem.specsName.length > 15) {
ctem.specsNameDian = ctem.specsName.substring(0, 15) + '...'
2025-03-23 09:29:40 +08:00
} else {
ctem.specsNameDian = ctem.specsName
2025-03-23 09:29:40 +08:00
}
})
})
2025-03-23 09:29:40 +08:00
// 赋初值
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach((item, index) => {
2025-03-23 09:29:40 +08:00
item.waresItemsParamsList.forEach((ctem, cndex) => {
if (cndex == 0) {
this.$set(ctem, 'quantity', item.quantity)
this.$set(ctem, 'maxNum', item.quantity)
2025-03-23 09:29:40 +08:00
// 初始总价格业绩
this.$set(item, 'priceTotal', ctem.priceTotal)
this.$set(item, 'vipPriceTotal', ctem.vipPriceTotal)
this.$set(item, 'retailPriceTotal', ctem.retailPriceTotal)
this.$set(item, 'achieveTotal', ctem.achieveTotal)
this.$set(item, 'assAchieveTotal', ctem.assAchieveTotal)
2025-03-23 09:29:40 +08:00
}
})
})
this.$set(this.goodDetail, 'goodsPrice', 0)
this.$set(this.goodDetail, 'retailPrice', 0)
this.$set(this.goodDetail, 'goodsAchive', 0)
this.$set(this.goodDetail, 'goodsAssAchive', 0)
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach(item => {
2025-03-23 09:29:40 +08:00
if (this.specialArea == 31) {
if (this.user.isMakerSpace == 0) {
this.goodDetail.goodsPrice += parseFloat(item.priceTotal)
this.goodDetail.retailPrice += parseFloat(item.retailPriceTotal)
this.goodDetail.goodsAchive += parseFloat(item.achieveTotal)
2025-03-23 09:29:40 +08:00
this.goodDetail.goodsAssAchive += parseFloat(
item.assAchieveTotal
)
2025-03-23 09:29:40 +08:00
} else {
this.goodDetail.goodsPrice += parseFloat(item.vipPriceTotal)
this.goodDetail.retailPrice += parseFloat(item.retailPriceTotal)
this.goodDetail.goodsAchive += parseFloat(item.achieveTotal)
2025-03-23 09:29:40 +08:00
this.goodDetail.goodsAssAchive += parseFloat(
item.assAchieveTotal
)
2025-03-23 09:29:40 +08:00
}
} else {
this.goodDetail.goodsPrice += parseFloat(item.priceTotal)
this.goodDetail.goodsAchive += parseFloat(item.achieveTotal)
this.goodDetail.goodsAssAchive += parseFloat(item.assAchieveTotal)
2025-03-23 09:29:40 +08:00
}
})
this.ggString()
this.downTime()
})
2025-03-23 09:29:40 +08:00
},
// 拼接已选
ggString() {
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach(item => {
item.skuString = ''
2025-03-23 09:29:40 +08:00
item.waresItemsParamsList.forEach((ctem, cndex) => {
if (ctem.quantity > 0) {
item.skuString += ctem.specsName + '*' + ctem.quantity
2025-03-23 09:29:40 +08:00
}
})
})
let skuString = ''
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach(item => {
skuString += item.productName + item.skuString
})
2025-03-23 09:29:40 +08:00
if (skuString.length > 19) {
this.skuString = skuString.substring(0, 19) + '...'
2025-03-23 09:29:40 +08:00
} else {
this.skuString = skuString
2025-03-23 09:29:40 +08:00
}
},
getNum(index, cndex, { value }) {
2025-07-05 09:12:44 +08:00
this.goodDetail.productList[index].waresItemsParamsList[
2025-03-23 09:29:40 +08:00
cndex
].quantity = value
let ggNum = 0
2025-07-05 09:12:44 +08:00
this.goodDetail.productList[index].waresItemsParamsList.forEach(
2025-03-23 09:29:40 +08:00
(item, iindex) => {
if (iindex == cndex) {
ggNum += value
2025-03-23 09:29:40 +08:00
} else {
ggNum += item.quantity
2025-03-23 09:29:40 +08:00
}
}
)
2025-07-05 09:12:44 +08:00
if (this.goodDetail.productList[index].quantity - value >= 0) {
this.goodDetail.productList[index].waresItemsParamsList.forEach(
2025-03-23 09:29:40 +08:00
(stem, sndex) => {
if (sndex != cndex) {
this.$set(
stem,
'maxNum',
2025-07-05 09:12:44 +08:00
this.goodDetail.productList[index].quantity -
2025-03-23 09:29:40 +08:00
(ggNum - stem.quantity)
)
2025-03-23 09:29:40 +08:00
}
}
)
2025-03-23 09:29:40 +08:00
}
let that = this
2025-03-23 09:29:40 +08:00
setTimeout(() => {
that.calPrice()
}, 50)
2025-03-23 09:29:40 +08:00
},
calPrice() {
if (this.user.pkCountry == 1) {
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach(item => {
item.waresItemsParamsList.forEach(ctem => {
ctem.priceTotal = parseFloat(ctem.price) * ctem.quantity
ctem.assAchieveTotal = ctem.assAchieve * ctem.quantity
ctem.vipPriceTotal = ctem.vipPrice * ctem.quantity
ctem.retailPriceTotal = ctem.retailPrice * ctem.quantity
2025-03-23 09:29:40 +08:00
ctem.achieveTotal =
ctem.achieve * ctem.quantity * this.goodDetail.inExchangeRate
})
})
2025-03-23 09:29:40 +08:00
} else {
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach(item => {
item.waresItemsParamsList.forEach(ctem => {
ctem.priceTotal = ctem.price * ctem.quantity
ctem.achieveTotal = ctem.achieve * ctem.quantity
ctem.assAchieveTotal = ctem.assAchieve * ctem.quantity
})
})
2025-03-23 09:29:40 +08:00
}
let price = 0
let vipPrice = 0
let retailPrice = 0
let achieve = 0
let assAchieve = 0
2025-07-05 09:12:44 +08:00
this.goodDetail.productList.forEach(item => {
item.waresItemsParamsList.forEach(ctem => {
price += ctem.priceTotal
vipPrice += ctem.vipPriceTotal
retailPrice += ctem.retailPriceTotal
achieve += ctem.achieveTotal
assAchieve += ctem.assAchieveTotal
})
})
2025-03-23 09:29:40 +08:00
if (this.specialArea == 31) {
if (this.user.isMakerSpace == 0) {
this.goodDetail.goodsPrice = price.toFixed(2)
2025-03-23 09:29:40 +08:00
} else {
this.goodDetail.goodsPrice = vipPrice.toFixed(2)
2025-03-23 09:29:40 +08:00
}
} else {
this.goodDetail.goodsPrice = price.toFixed(2)
2025-03-23 09:29:40 +08:00
}
this.goodDetail.retailPrice = retailPrice
this.goodDetail.goodsAchive = achieve
this.goodDetail.goodsAssAchive = assAchieve
2025-03-23 09:29:40 +08:00
this.ggString()
2025-03-23 09:29:40 +08:00
},
downTime() {
let that = this
2025-03-23 09:29:40 +08:00
this.clockTime = setInterval(() => {
if (
that.goodDetail.deliveryTimeMs &&
that.goodDetail.deliveryTimeMs > 0
) {
that.countDown = this.getTime(this.goodDetail.deliveryTimeMs--)
2025-03-23 09:29:40 +08:00
} else {
that.countDown = '0天00时00分00秒'
2025-03-23 09:29:40 +08:00
}
}, 1000)
2025-03-23 09:29:40 +08:00
},
getTime(time) {
// 转换为式分秒
let d = parseInt(time / 60 / 60 / 24) //计算剩余天数\
d = d < 10 ? '0' + d : d
let h = parseInt((time / 60 / 60) % 24)
h = h < 10 ? '0' + h : h
let m = parseInt((time / 60) % 60)
m = m < 10 ? '0' + m : m
let s = parseInt(time % 60)
s = s < 10 ? '0' + s : s
2025-03-23 09:29:40 +08:00
// 作为返回值返回
return d + '天' + h + ':' + m + ':' + s
2025-03-23 09:29:40 +08:00
},
},
}
2025-03-23 09:29:40 +08:00
</script>
<style lang="scss" scoped>
.content {
background: #f8f8f8;
min-height: 100vh;
}
.contxt {
padding: 0 24rpx 20rpx 24rpx;
}
.kuang {
margin-top: 20rpx;
padding: 20rpx;
background: #fff;
box-shadow: 0px 2px 10px 0px rgba(204, 204, 204, 0.5);
border-radius: 10px 10px 10px 10px;
.disFlex {
display: flex;
align-items: center;
}
.t_red {
font-size: 16px;
font-family: Arial-Bold, Arial;
font-weight: bold;
color: #b42b2a;
// margin-right: 20px;
}
.t_hui {
font-size: 11px;
font-family: Arial-Bold, Arial;
font-weight: bold;
color: #999;
margin-left: 20rpx;
}
.t_hui1 {
2025-03-23 09:29:40 +08:00
font-size: 11px;
font-family: Arial-Bold, Arial;
font-weight: bold;
color: #999;
margin: 5px 0 10px 0;
}
.bao {
font-size: 13px;
color: #de0214;
font-weight: 600;
}
}
.kuang1 {
margin-top: -10rpx;
padding: 20rpx;
background: #fff;
box-shadow: 0px 2px 10px 0px rgba(204, 204, 204, 0.5);
border-radius: 10px 10px 10px 10px;
.t_red {
font-size: 16px;
font-family: Arial-Bold, Arial;
font-weight: bold;
color: #b42b2a;
// margin-right: 20px;
}
.t_hui {
font-size: 11px;
font-family: Arial-Bold, Arial;
font-weight: bold;
color: #999;
// margin-left: 20rpx;
}
.bao {
font-size: 13px;
color: #de0214;
font-weight: 600;
}
}
.t_hei {
font-size: 13px;
font-family:
PingFang SC-Semibold,
PingFang SC;
2025-03-23 09:29:40 +08:00
font-weight: 600;
color: #333;
}
.heng {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 12px;
font-family:
PingFang SC-Medium,
PingFang SC;
2025-03-23 09:29:40 +08:00
font-weight: 500;
color: #999999;
margin-bottom: 10rpx;
}
.label {
margin-right: 40rpx;
}
.label1 {
font-size: 13px;
font-family:
PingFang SC-Semibold,
PingFang SC;
2025-03-23 09:29:40 +08:00
font-weight: 600;
color: #333333;
}
.bTit {
text-align: center;
margin: 30rpx 0;
font-size: 16px;
font-family:
PingFang SC-Semibold,
PingFang SC;
2025-03-23 09:29:40 +08:00
font-weight: 600;
color: #333333;
.btm {
width: 26px;
height: 2px;
background: #15b84b;
border-radius: 2px 2px 2px 2px;
margin: 10rpx auto;
}
}
.pop_a {
background: #f7f7f7;
max-height: 80vh;
overflow-y: auto;
}
.pop_tt {
padding: 0 10rpx;
margin: 0rpx 10rpx;
height: 172rpx;
background: #fff;
position: fixed;
width: calc(100% - 40rpx);
display: flex;
align-items: center;
z-index: 1;
.pop_t {
display: flex;
align-items: center;
img {
width: 58px;
height: 58px;
border-radius: 8px 8px 8px 8px;
margin-right: 40rpx;
}
font-size: 28px;
font-family: Arial-Bold, Arial;
font-weight: bold;
color: #b42b2a;
}
}
.zhan {
height: 172rpx;
}
.zhan1 {
height: 130rpx;
}
.pop {
padding: 10rpx 20rpx;
margin: 20rpx 10rpx;
box-shadow: 0px 2px 10px 0px rgba(204, 204, 204, 0.5);
border-radius: 8px 8px 8px 8px;
background: #fff;
.pop_c {
border-bottom: 8rpx solid rgba(0, 0, 0, 0.05);
padding: 10rpx 0 20rpx 0;
.ggTit {
font-size: 12px;
font-family:
PingFang SC-Medium,
PingFang SC;
2025-03-23 09:29:40 +08:00
font-weight: 500;
color: #333333;
margin: 20rpx 0;
}
.pop_ci {
display: flex;
align-items: center;
justify-content: space-between;
background: #eeeeee;
border-radius: 4px 4px 4px 4px;
opacity: 1;
margin-bottom: 20rpx;
padding: 4rpx 12rpx;
.pop_cl {
display: flex;
align-items: center;
.gui_iit {
margin-left: 20rpx;
}
}
}
img {
width: 48rpx;
height: 48rpx;
border-radius: 4px 4px 4px 4px;
}
}
}
::v-deep .u-popup__content__close {
z-index: 2;
}
.hui {
width: 22px;
height: 22px;
background: #dbdbdb;
border-radius: 3px 3px 3px 3px;
display: flex;
align-items: center;
justify-content: center;
}
.minus {
width: 22px;
height: 22px;
2025-04-23 11:51:12 +08:00
background: rgba(176, 196, 222, 1);
2025-03-23 09:29:40 +08:00
border-radius: 3px 3px 3px 3px;
display: flex;
align-items: center;
justify-content: center;
}
.plus {
width: 22px;
height: 22px;
background: #005bac;
2025-03-23 09:29:40 +08:00
border-radius: 3px 3px 3px 3px;
display: flex;
align-items: center;
justify-content: center;
}
.input {
width: 50px;
text-align: center;
background: #fff;
margin: 0 10rpx;
border-radius: 3px 3px 3px 3px;
}
.pop_b {
position: fixed;
bottom: 0;
height: 166rpx;
background: #ffffff;
width: 100%;
}
.pop_bb {
padding: 20rpx 40rpx;
}
.footer_f {
position: fixed;
bottom: 0;
width: 100%;
z-index: 10;
box-shadow: 0px -2px 20px 0px rgba(204, 204, 204, 0.5);
}
.footer {
display: flex;
justify-content: space-between;
padding: 20rpx 24rpx 40rpx 24rpx;
background: #fff;
.footer_l {
flex: 1;
display: flex;
align-items: center;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 400;
color: #222222;
}
.footer_r {
display: flex;
.btn1 {
background: #005bac;
2025-03-23 09:29:40 +08:00
color: #fff;
// padding: 0rpx 33rpx 0rpx 43rpx;
border-radius: 50px;
height: 75rpx;
width: 214rpx;
line-height: 75rpx;
text-align: center;
}
.btn2 {
background: #3d3d3d;
color: #fff;
// padding: 0rpx 43rpx 0rpx 33rpx;
border-radius: 0px 50px 50px 0;
height: 75rpx;
width: 214rpx;
line-height: 75rpx;
text-align: center;
}
}
.footer_li {
// position: relative;
// text-align: center;
display: flex;
flex-direction: column;
align-items: center;
font-size: 10px;
font-family:
PingFang SC-Medium,
PingFang SC;
2025-03-23 09:29:40 +08:00
font-weight: 500;
color: #333333;
}
.flout {
position: absolute;
top: -4px;
right: -10px;
background: #f56c6c;
border-radius: 50%;
width: 32rpx;
height: 32rpx;
color: #fff;
text-align: center;
}
.footer_ll {
margin-right: 40rpx;
position: relative;
}
.qiu {
position: absolute;
width: 30rpx;
height: 30rpx;
background: #e03030;
border-radius: 50%;
color: #fff;
text-align: center;
line-height: 30rpx;
right: 0;
top: -10rpx;
font-size: 10px;
}
.btns {
border-radius: 18px;
border: 1px solid #fbb61e;
padding: 12rpx 0;
width: 176rpx;
text-align: center;
font-size: 12px;
font-weight: 500;
}
.btn3 {
background: rgba(255, 255, 255, 0);
color: #fbb61e;
margin-right: 20rpx;
}
.btn4 {
background: #fbb61e;
color: #fff;
}
}
.sTop {
// display: flex;
// align-items: center;
// justify-content: space-between;
background: #005bac;
2025-03-23 09:29:40 +08:00
padding: 10rpx 20rpx 20rpx 20rpx;
margin-top: 20rpx;
border-radius: 10px 10px 0 0;
.sTop_l {
display: flex;
align-items: center;
justify-content: space-between;
}
img {
width: 18px;
height: 18px;
}
.f1 {
font-size: 22px;
color: #fff;
font-weight: 600;
}
.f2 {
font-size: 12px;
color: #fff;
margin-left: 10rpx;
font-weight: 400;
}
.f3 {
font-size: 10px;
color: #fff;
font-weight: 400;
}
}
.disFlex {
display: flex;
align-items: center;
}
.disFlex1 {
display: flex;
align-items: center;
justify-content: flex-end;
margin-bottom: 10rpx;
}
</style>