hldy_app/component/storeroom/orders.vue

1181 lines
30 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="index-content-other" v-show="isShow" :style="transition?{opacity: `1`}:{opacity: `0`}">
<view class="index-content-right">
<!-- 解决margin重叠问题 -->
<view class="index-right-height"></view>
<view class="index-right-title">
<view class="ball-bgc" style="box-shadow: 2rpx 2rpx 4rpx 0rpx rgba(0, 0, 0, 0.3);"
@click="firstBallClick">
<view :class="clickBall(firstBall)">
采购
</view>
</view>
<view class="ball-bgc" style="box-shadow: 2rpx 2rpx 4rpx 0rpx rgba(0, 0, 0, 0.3);"
@click="secondBallClick">
<view :class="clickBall(secondBall)">
拣货
</view>
</view>
<view class="ball-bgc" style="box-shadow: 2rpx 2rpx 4rpx 0rpx rgba(0, 0, 0, 0.3);"
@click="thirdBallClick">
<view :class="clickBall(thirdBall)">
结账
</view>
</view>
<view class="index-right-name">
采购单号
</view>
<input class="index-right-input" placeholder="请输入采购单号" />
<view class="index-right-name">
供应商
</view>
<input class="index-right-input" placeholder="请输入供应商" />
<view class="index-right-name">
采购日期
</view>
<view @click.stop="calendarShow=true">
<view class="index-right-input" style="width: 200rpx;height: 66rpx;"
:style="stateTarget?{}:{color:`#999`}">
{{stateTarget ? stateTarget : `请输入采购日期`}}
</view>
</view>
<u-calendar style="width: 40%;margin-left: 30%;" border-radius="40" v-model="calendarShow" mode="date"
@change="calendarchange"></u-calendar>
<view class="index-right-button-all">
<view class="" v-for="(item,index) in buttonList" :key="index">
<view class="index-right-button">
<image class="index-right-button-img" :src="item.url" />
<view class="index-right-button-font">
{{item.name}}
</view>
</view>
</view>
</view>
</view>
<view class="swiper-contain">
<scroll-view scroll-y style="height: 98%;" :show-scrollbar="false">
<view class="swiper-flex">
<view v-for="(item,index) in sliceArray" :key="index">
<view class="swiper-card">
<view class="swiper-title-contect">
<view class="swiper-states">
<view
:class="item.cardType >1 ?`swiper-states-heng-one-green`:`swiper-states-heng-one`">
</view>
<view
:class="item.cardType >3 ?`swiper-states-heng-two-green`: `swiper-states-heng-two`">
</view>
<view class="ball-bgc" :style="item.cardType !==0 && item.cardType !==1?{
}:{boxShadow: `8rpx 8rpx 16rpx 0rpx rgba(0, 0, 0, 0.3)`,width:`110rpx`,height:`110rpx`}">
<view :class="getBallFirst(item.cardType)">
采购
</view>
</view>
<view class="ball-bgc" :style="item.cardType!=2 && item.cardType!=3 ?{
}:{boxShadow: `8rpx 8rpx 16rpx 0rpx rgba(0, 0, 0, 0.3)`,width:`110rpx`,height:`110rpx`}">
<view :class="getBallSecond(item.cardType)">
拣货
</view>
</view>
<view class="ball-bgc" :style="item.cardType!=4 ?{
}:{boxShadow: `8rpx 8rpx 16rpx 0rpx rgba(0, 0, 0, 0.3)`,width:`110rpx`,height:`110rpx`}">
<view :class="getBallThird(item.cardType)">
结账
</view>
</view>
</view>
<view :class="item.cardType ? `title-button`:`title-button-red`">
{{stateArray[item.cardType]}}
</view>
</view>
<view class="swiper-down">
<view class="swiper-flex">
<view class="swiper-down-title">采购单号:</view>
<view class="swiper-down-number">A0120250301001555</view>
</view>
<view class="swiper-down-card">
<view class="swiper-down-text">
<view class="swiper-down-text-left">
采 购 人:
</view>
<view class="swiper-down-text-right">
王法
</view>
</view>
<view class="swiper-down-text">
<view class="swiper-down-text-left">
采购日期
</view>
<view class="swiper-down-text-right">
2025.03.02
</view>
</view>
<view class="swiper-down-text">
<view class="swiper-down-text-left">
联 系 人
</view>
<view class="swiper-down-text-right">
李月
</view>
</view>
<view class="swiper-down-text">
<view class="swiper-down-text-left">
联系电话
</view>
<view class="swiper-down-text-right">
13355653333
</view>
</view>
<view class="swiper-down-text" style="width: 100%;">
<view class="swiper-down-text-left">
供 应 商
</view>
<view class="swiper-down-text-right">
宽城区珂爱个人卫生用品店
</view>
</view>
</view>
<view class="swiper-button">
<view class="button-father">
<view class="swiper-button-white" @click="openDetailDrawer(item.cardType)">
详情
</view>
<view class="swiper-button-blue" v-show="item.cardType==4"
@click="openfinish(item.cardType)">
结账
</view>
<view class="swiper-button-blue" v-show="item.cardType==3||item.cardType==2"
@click="pickingGoodclick">
拣货
</view>
<!-- <view class="swiper-button-blue" v-show="item.cardType==2">
分享
</view> -->
<view class="swiper-button-white"
v-show="item.cardType>=2&&item.cardType!==5" @click="isBack(index)">
回退
</view>
<view class="swiper-button-blue" v-show="item.cardType==1"
@click="isRight(index)">
确认
</view>
<view class="swiper-button-red" v-show="item.cardType==1"
@click="openVoidDrawer(index)">
作废
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
<view class="index-content-down">
长春市朝阳区久泰开运养老服务有限公司
</view>
</view>
<!-- 表格详情的的弹出层 -->
<view v-show="detailisopen && isShow" class="popup-detail" @click="detailisopen=false">
<view class="popup-detail-content" :style="{ opacity: detailisopacity ? 1 : 0 }" @click.stop>
<view class="popup-detail-left">
<view class="popup-detail-left-white">
<image class="popup-detail-left-white-img" :src="`/static/index/project3.png`"
@click="opendetail" />
</view>
<view class="popup-detail-left-bottom">
<view class="popup-small-card">
</view>
</view>
</view>
<view class="popup-detail-right">
</view>
</view>
</view>
<!-- 详情的抽屉 -->
<Drawer ref="detaildrawer" :widNumber="60">
<otherDetail :openType="openType" @closedetail="closedetaildrawer" @openDrawer="openDrawer" />
</Drawer>
<!-- 改价弹窗 -->
<view v-show="pricedrawer && isShow" class="popup-detail-finish" @click="pricedrawer=false">
<view class="popup-detail-content" :style="{ opacity: detailisopacity ? 1 : 0 }" @click.stop>
<finish :changePrice="changePrice" :savePrice="savePrice" @rightclose="rightclose" @close="pricedrawer=false" @openCal="openCalsec" @closeCal="isopenCalsec=false" />
</view>
<view v-show="isopenCalsec" class="popup-detail-content-calculator" :style="{ opacity: detailisopacity ? 1 : 0 }" @click.stop>
<calculatorfly :doOnce="doOnce" :translateNumber="translateNumber" @right="rightchangePrice" />
</view>
</view>
<!-- 结账的抽屉 -->
<Drawer ref="finishAccountdrawer" :widNumber="60">
<finishAccount :valueBack="valueBack" :openType="openType" @closedetail="closedetaildrawer" @openDrawer="openDrawer" @openPen="openPen" />
</Drawer>
<!-- 入库单的抽屉 -->
<Drawer ref="storagedrawer" :widNumber="50" style="z-index: 1000;">
<storage :dantype="dantype" @opensuixing="opensuixing" @closevoid="closestorage" />
</Drawer>
<!-- 核销单的抽屉 -->
<Drawer ref="verificationdrawer" :widNumber="50" style="z-index: 1000;">
<verification @closehexiao="closehexiao" />
</Drawer>
<!-- 随行单的抽屉 -->
<Drawer ref="suixingdrawer" :widNumber="40" style="z-index: 1001;">
<suixing />
</Drawer>
<!-- 计算器弹窗 -->
<view v-show="caldrawer && isShow" class="popup-detail-cal" @click="caldrawer=false">
<view class="popup-detail-content" :style="{ opacity: detailisopacity ? 1 : 0 }" @click.stop>
<calculator :doOnce="doOnce" :translateNumber="translateNumber" @close="closeCal" @right="rightCal" />
</view>
</view>
<!-- 计算器的抽屉 -->
<!-- <Drawer ref="caldrawer" :widNumber="30" :canclose="false" style="z-index: 1001;">
<calculator :doOnce="doOnce" :translateNumber="translateNumber" @close="closeCal" @right="rightCal" />
</Drawer> -->
<!-- 作废的抽屉 -->
<Drawer ref="voiddrawer" :widNumber="60">
<otherVoid @voidIt="isDelete(saveVoidIndex)" @closevoid="closevoid" />
</Drawer>
<!-- 拣货的抽屉 -->
<Drawer ref="pickingGooddrawer" :widNumber="60" style="z-index: 998;">
<pickingGood @openDrawer="openDrawer" />
</Drawer>
<!-- 拣货的拣货的抽屉 -->
<Drawer ref="pickingdrawer" :canclose="false" :widNumber="50" style="z-index: 998;">
<picking :backnumber="backnumber" @openCal="openCal" @closepickingdrawer="closepickingdrawer" />
</Drawer>
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, defineProps, watch } from 'vue';
import Drawer from "@/component/public/Drawer.vue"
import otherDetail from "@/component/storeroom/drawer/otherDetail/index.vue"
import otherVoid from "@/component/storeroom/drawer/otherVoid/index.vue"
import storage from "@/component/storeroom/drawer/storage/index.vue"
import suixing from "@/component/storeroom/drawer/suixing/index.vue"
import verification from "@/component/storeroom/drawer/verification/index.vue"
import pickingGood from "@/component/storeroom/drawer/pickingGood/index.vue"
import picking from "@/component/storeroom/drawer/picking/index.vue"
import calculator from "@/component/storeroom/drawer/calculator/index.vue"
import finish from "@/component/storeroom/drawer/finish/index.vue"
import finishAccount from "@/component/storeroom/drawer/finishAccount/index.vue"
import calculatorfly from "@/component/storeroom/components/calculatorfly.vue"
const props = defineProps({
isShow: {
type: Boolean,
required: true,
},
});
// 使用watch监听isShow变化
const transition = ref(true);
const getBallFirst = (type : number) => {
switch (type) {
case 0:
return `ball-red-big`
case 1:
return `ball-yellow-big`
default:
return 'ball-green'
}
}
const getBallSecond = (type : number) => {
switch (type) {
case 0:
return `ball-white`
case 1:
return `ball-white`
case 2:
return `ball-yellow-big`
case 3:
return `ball-yellow-big`
case 4:
return `ball-green`
case 5:
return `ball-green`
// default:
// return 'ball-green'
}
}
const getBallThird = (type : number) => {
switch (type) {
case 4:
return `ball-yellow-big`
case 5:
return `ball-green`
default:
return 'ball-white'
}
}
watch(
() => props.isShow,
(newVal, oldVal) => {
// 当旧值为false新值为true时延迟0.2秒调用方法
if (!oldVal && newVal) {
transition.value = false;
setTimeout(() => {
transition.value = true;
}, 50)
}
}
)
const detaildrawer = ref(null);
const voiddrawer = ref(null);
const storagedrawer = ref(null);
const verificationdrawer = ref(null);
const pricedrawer = ref(false);
const firstBall = ref(0);
const secondBall = ref(0);
const thirdBall = ref(0);
const calendarShow = ref(false);
// 打开详情
const openType = ref(-1);
const openDetailDrawer = (type : number) => {
openType.value = type;
detaildrawer.value.openDrawer();
}
const pickingGooddrawer = ref(null);
const pickingGoodclick = () => {
pickingGooddrawer.value.openDrawer();
}
const saveVoidIndex = ref(-1);
const openVoidDrawer = (index : number) => {
// openType.value = type;
saveVoidIndex.value = index
voiddrawer.value.openDrawer();
}
const suixingdrawer = ref(null);
const opensuixing = () => {
suixingdrawer.value.openDrawer();
}
const dantype = ref(0);
const pickingdrawer = ref(null);
const openDrawer = (index : number) => {
if (!index) {
storagedrawer.value.openDrawer();
dantype.value = 0;
} else if (index === 1) {
storagedrawer.value.openDrawer();
dantype.value = 1;
}
else if (index === 2) {
dantype.value = 2;
verificationdrawer.value.openDrawer();
} else if (index === 3) {
pickingdrawer.value.openDrawer();
} else if (index === 4) {
// console.log("?????")
suixingdrawer.value.openDrawer();
}
}
const savePrice = ref(0);
const changePrice = ref(0);
const valueBack = ref(-1);
const rightclose = (number:number) =>{
valueBack.value = number;
}
const rightchangePrice = (price:number) =>{
isopenCalsec.value = false;
changePrice.value = price
}
const openPen = (price:number) =>{
savePrice.value = price;
changePrice.value = price;
pricedrawer.value = true;
detailisopacity.value = true
}
const translateNumber = ref(0);
const doOnce = ref(0);
const caldrawer = ref(false);
const closeCal = () => {
caldrawer.value = false;
}
const isopenCalsec = ref(false);
const openCalsec = (many:number) =>{
isopenCalsec.value = true;
doOnce.value++
translateNumber.value = many
}
const backnumber = ref(0);
const rightCal = (number : number) => {
caldrawer.value = false;
backnumber.value = number
}
const openCal = (number : number) => {
translateNumber.value = number;
caldrawer.value = true;
detailisopacity.value = false;
setTimeout(() => {
detailisopacity.value = true
}, 100)
doOnce.value++
}
const closepickingdrawer = () => {
pickingdrawer.value.closeDrawer()
}
const isDelete = (index : number) => {
firstBall.value = 0
secondBall.value = 0
thirdBall.value = 0
cardArray.value[index].cardType = 0
sliceArray.value = cardArray.value;
voiddrawer.value.closeDrawer()
}
const finishAccountdrawer = ref(null);
const openfinish = (index : number) => {
openType.value = index;
finishAccountdrawer.value.openDrawer();
}
const isRight = (index : number) => {
firstBall.value = 0
secondBall.value = 0
thirdBall.value = 0
cardArray.value[index].cardType++
sliceArray.value = cardArray.value;
}
const isBack = (index : number) => {
firstBall.value = 0
secondBall.value = 0
thirdBall.value = 0
cardArray.value[index].cardType--
sliceArray.value = cardArray.value;
}
const firstBallClick = () => {
secondBall.value = 0
thirdBall.value = 0
if (firstBall.value < 3) {
firstBall.value++
} else {
firstBall.value = 0
}
if (firstBall.value) {
let saveArray = []
switch (firstBall.value) {
case 1:
cardArray.value.forEach((element : any) => {
if (element.cardType == 1) {
saveArray.push(element)
}
})
sliceArray.value = saveArray;
break
case 2:
cardArray.value.forEach((element : any) => {
if (element.cardType > 2) {
saveArray.push(element)
}
})
sliceArray.value = saveArray;
break
case 3:
cardArray.value.forEach((element : any) => {
if (element.cardType == 0) {
saveArray.push(element)
}
})
sliceArray.value = saveArray;
break
}
} else {
sliceArray.value = cardArray.value;
}
}
const secondBallClick = () => {
firstBall.value = 0
thirdBall.value = 0
if (secondBall.value < 2) {
secondBall.value++
} else {
secondBall.value = 0
}
if (secondBall.value) {
let saveArray = []
switch (secondBall.value) {
case 1:
cardArray.value.forEach((element : any) => {
if (element.cardType == 2 || element.cardType == 3) {
saveArray.push(element)
}
})
sliceArray.value = saveArray;
break
case 2:
cardArray.value.forEach((element : any) => {
if (element.cardType > 3) {
saveArray.push(element)
}
})
sliceArray.value = saveArray;
break
}
} else {
sliceArray.value = cardArray.value;
}
}
const thirdBallClick = () => {
secondBall.value = 0
firstBall.value = 0
if (thirdBall.value < 2) {
thirdBall.value++
} else {
thirdBall.value = 0
}
if (thirdBall.value) {
let saveArray = []
switch (thirdBall.value) {
case 1:
cardArray.value.forEach((element : any) => {
if (element.cardType == 4) {
saveArray.push(element)
}
})
sliceArray.value = saveArray;
break
case 2:
cardArray.value.forEach((element : any) => {
if (element.cardType == 5) {
saveArray.push(element)
}
})
sliceArray.value = saveArray;
break
}
} else {
sliceArray.value = cardArray.value;
}
}
// 表格弹窗
const detailisopen = ref(false);
const detailisopacity = ref(false);
// 初始化左侧菜单列表
const buttonList = ref([
// { url: '/static/index/Warehousing/zuoce.png', name: '请购单' },
{ url: '/static/index/Warehousing/sousuo.png', name: '查询' },
{ url: '/static/index/Warehousing/chongzhi.png', name: '重置' },
]);
const stateTarget = ref("");
const stateArray = ref(['已作废', '未确认', '已确认', '未完结', '待结账', '已结账']);
// 注意cardType 0是已作废1是未确认2是已确认3是未完结4是待结账5是已结账
const cardArray = ref(
Array.from({ length: 6 }, (_, index) => ({ cardType: index }))
);
const sliceArray = ref([]);
const clickBall = (index : number) => {
switch (index) {
case 0:
return `ball-white`
case 1:
return `ball-yellow`
case 2:
return `ball-green`
case 3:
return `ball-red`
}
}
const opendetail = () => {
detailisopen.value = true;
detailisopacity.value = false;
setTimeout(() => {
detailisopacity.value = true
}, 200)
}
const closedetaildrawer = () => {
detaildrawer.value.closeDrawer()
}
const closestorage = () => {
storagedrawer.value.closeDrawer()
}
const closevoid = () => {
voiddrawer.value.closeDrawer()
}
const closehexiao = () => {
verificationdrawer.value.closeDrawer()
}
const calendarchange = (e : any) => {
stateTarget.value = e.result
}
onMounted(() => {
sliceArray.value = cardArray.value;
})
</script>
<style scoped lang="less">
.index-content-other {
width: calc(100% - 170rpx);
height: 100%;
transition: opacity 1s ease;
}
.index-content-right {
height: calc(100% - 100rpx);
width: calc(100% - 60rpx);
background-color: rgba(255, 255, 255, 0.5);
/* 白色背景透明度为 10% */
background-image: url('/static/index/mountain.png');
background-position: 70% 45%;
border-radius: 50rpx;
box-shadow: 4rpx 8rpx 16rpx 4rpx rgba(0, 0, 0, 0.3);
border-radius: 1rpx solid #fff;
.index-right-height {
height: 20rpx;
}
.index-right-title {
margin-left: 30rpx;
width: calc(100% - 60rpx);
height: 120rpx;
background: linear-gradient(to right, #C4E0FD, #D5CDFF, #D9ECFF);
border-radius: 35rpx;
border: 2rpx solid #fff;
display: flex;
align-items: center;
.index-right-name {
margin-left: 20rpx;
margin-right: 10rpx;
color: #19233B;
font-size: 30rpx;
}
.index-right-input {
font-size: 23rpx;
width: 180rpx;
border: 2rpx #a0adc8 solid;
padding: 15rpx 0 15rpx 10rpx;
background-color: rgba(234, 243, 254, 0.6);
border-radius: 10rpx;
}
.index-right-button-all {
height: 100%;
margin-left: auto;
display: flex;
align-items: center;
.index-right-button {
// width: 160rpx;
height: 75rpx;
background: linear-gradient(to right, #00c9ff, #0076ff);
color: #fff;
font-size: 30rpx;
display: flex;
align-items: center;
border-radius: 20rpx;
border: 1rpx solid #fff;
margin-right: 20rpx;
.index-right-button-img {
width: 45rpx;
height: 45rpx;
margin: 0 5rpx 0 15rpx;
}
.index-right-button-font {
margin-right: 25rpx;
}
}
}
}
}
.index-content-down {
width: calc(100% - 60rpx);
height: 100rpx;
display: flex;
justify-content: flex-end;
align-items: center;
}
.swiper-contain {
width: 100%;
margin-left: 10rpx;
// width: calc(100% - 60rpx);
height: calc(100% - 140rpx);
.swiper-flex {
display: flex;
flex-wrap: wrap;
.swiper-card {
margin: 20rpx 0 0 20rpx;
width: 1007rpx;
height: 530rpx;
border: 3rpx solid #fff;
// border-top: 4rpx solid #FFA504;
border-radius: 30rpx;
/* 设置背景图和白色背景 */
background: url("/static/index/clearmountain.png") center/cover, rgba(255, 255, 255, 0.5);
/* 使用 screen 混合模式,让图像与白色混合变淡 */
background-blend-mode: screen;
isolation: isolate;
box-shadow: 4rpx 4rpx 8rpx 0rpx rgba(0, 0, 0, 0.3);
display: flex;
position: relative;
overflow: hidden;
flex-direction: column;
.swiper-title-contect {
margin-bottom: 0;
width: 100%;
height: 115rpx;
background: linear-gradient(to right, #CBD8FC, #F2EAFF, #E2EDFE, #BDCAE9);
border-top-right-radius: 30rpx;
border-top-left-radius: 30rpx;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 3rpx solid;
/* 指定边框宽度 */
border-image: linear-gradient(to right, transparent, #fff, transparent) 1;
.swiper-states {
margin-left: 15rpx;
display: flex;
justify-content: space-between;
align-items: center;
width: 350rpx;
height: 100%;
position: relative;
.swiper-states-heng-one {
position: absolute;
top: 50%;
left: 80rpx;
width: 100rpx;
height: 10rpx;
background-color: #C6CBF6;
}
.swiper-states-heng-one-green {
position: absolute;
top: 50%;
left: 80rpx;
width: 100rpx;
height: 10rpx;
background: linear-gradient(to top, #ACE800, #55B718);
}
.swiper-states-heng-two {
position: absolute;
top: 50%;
left: 180rpx;
width: 100rpx;
height: 10rpx;
background-color: #C6CBF6;
}
.swiper-states-heng-two-green {
position: absolute;
top: 50%;
left: 180rpx;
width: 100rpx;
height: 10rpx;
background: linear-gradient(to top, #ACE800, #55B718);
}
}
}
}
}
}
.swiper-heng {
width: 100rpx;
height: 10rpx;
background: linear-gradient(to right, #0EA7DD, #047ADB);
border-radius: 30rpx;
margin-top: 10rpx;
margin-bottom: 30rpx;
}
.popup-detail {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
backdrop-filter: blur(1rpx);
background-color: rgba(89, 109, 154, 0.4);
/* 添加毛玻璃效果 */
.popup-detail-price{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 1000rpx;
height: 1000rpx;
background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.5);
background-blend-mode: screen;
border: 2rpx solid #fff;
/* 使用 screen 混合模式,让图像与白色混合变淡 */
border-radius: 30rpx;
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
transition: opacity 0.4s ease;
z-index: 1005;
}
.popup-detail-content {
display: flex;
width: 1500rpx;
height: 900rpx;
background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.5);
background-blend-mode: screen;
border: 2rpx solid #fff;
/* 使用 screen 混合模式,让图像与白色混合变淡 */
border-radius: 30rpx;
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
transition: opacity 0.4s ease;
.popup-detail-left {
height: 100%;
width: 45%;
.popup-detail-left-white {
margin: 70rpx 0 0rpx 70rpx;
width: 600rpx;
height: 600rpx;
// background-color: #fff;
background-color: rgba(255, 255, 255, 0.3);
display: flex;
border-radius: 30rpx;
justify-content: center;
align-items: center;
.popup-detail-left-white-img {
width: 550rpx;
height: 550rpx;
}
}
.popup-detail-left-bottom {
width: calc(100% - 70rpx);
margin-left: 70rpx;
height: 230rpx;
// background-color: #fff
display: flex;
}
}
.popup-detail-right {
height: 100%;
width: 55%;
}
}
}
.ball-bgc {
background-color: #fff;
width: 90rpx;
height: 90rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
margin-left: 20rpx;
z-index: 1;
}
.ball-yellow {
background: linear-gradient(to top right, #FF9F00, #FFDF2A);
width: 80rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
color: #A53600;
font-size: 25rpx;
}
.ball-yellow-big {
background: linear-gradient(to top right, #FF9F00, #FFDF2A);
width: 100rpx;
height: 100rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
color: #A53600;
font-size: 35rpx;
}
.ball-red-big {
background: #FF642F;
color: #fff;
width: 100rpx;
height: 100rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
font-size: 35rpx;
}
.ball-red {
background: #FF642F;
width: 80rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
color: #fff;
font-size: 25rpx;
}
.ball-white {
background: linear-gradient(to bottom, #CBD9FD, #A2B7E0);
width: 80rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
// color: #585858;
font-size: 25rpx;
}
.ball-green {
background: linear-gradient(to top, #ACE800, #55B718);
width: 80rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
color: #fff;
font-size: 25rpx;
}
.ball-blue {
background: linear-gradient(to top, #0076ff, #00c9ff);
width: 80rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
color: #fff;
font-size: 25rpx;
}
.title-button {
margin-right: 30rpx;
border: 2rpx solid #fff;
border-radius: 20rpx;
background: #00AEFF;
color: #fff;
padding: 10rpx 20rpx;
}
.title-button-red {
margin-right: 30rpx;
border: 2rpx solid #fff;
border-radius: 20rpx;
background: linear-gradient(to bottom, #FF8251, #F52E2C);
color: #fff;
padding: 10rpx 20rpx;
}
.swiper-down {
width: 100%;
height: calc(100% - 115rpx);
padding: 0 30rpx;
background-color: rgba(255, 255, 255, 0.5);
.swiper-flex {
display: flex;
margin: 30rpx 0;
margin-left: 10rpx;
}
.swiper-down-title {
font-weight: 500;
font-size: 30rpx;
}
.swiper-down-number {
font-weight: 700;
font-size: 30rpx;
}
.swiper-down-card {
width: 100%;
height: 200rpx;
background-color: rgba(255, 255, 255, 0.3);
border-radius: 20rpx;
box-shadow: 2rpx 4rpx 8rpx 2rpx rgba(0, 0, 0, 0.1);
display: flex;
flex-wrap: wrap;
padding: 20rpx 0;
padding-left: 20rpx;
.swiper-down-text {
width: 50%;
// height: 40rpx;
padding-left: 20rpx;
display: flex;
align-items: center;
.swiper-down-text-left {
color: #596278;
}
}
}
.swiper-button {
width: 100%;
// background-color: #fff;
height: 110rpx;
display: flex;
justify-content: center;
align-items: center;
.button-father {
display: flex;
}
.swiper-button-white {
background: linear-gradient(to bottom, #D5E0F8, #ECF6FF);
border: 2rpx solid #fff;
border-radius: 20rpx;
width: 150rpx;
height: 70rpx;
display: flex;
justify-content: center;
align-items: center;
margin: 0 10rpx;
}
.swiper-button-blue {
background: linear-gradient(to bottom, #00C9FF, #0076FF);
border: 2rpx solid #fff;
border-radius: 20rpx;
width: 150rpx;
height: 70rpx;
display: flex;
justify-content: center;
align-items: center;
margin: 0 10rpx;
color: #fff;
}
.swiper-button-red {
background: linear-gradient(to bottom, #FF8251, #F52E2C);
border: 2rpx solid #fff;
border-radius: 20rpx;
width: 150rpx;
height: 70rpx;
display: flex;
justify-content: center;
align-items: center;
margin: 0 10rpx;
color: #fff;
}
}
}
.popup-detail-cal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
// display: flex;
// justify-content: center;
// align-items: center;
backdrop-filter: blur(1rpx);
background-color: rgba(89, 109, 154, 0.4);
/* 添加毛玻璃效果 */
z-index: 999;
.popup-detail-content {
position: absolute;
right: 330rpx;
top: 140rpx;
display: flex;
width: 600rpx;
height: 900rpx;
background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.5);
background-blend-mode: screen;
border: 2rpx solid #fff;
/* 使用 screen 混合模式,让图像与白色混合变淡 */
border-radius: 40rpx;
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
transition: opacity 0.4s ease;
overflow: hidden;
}
}
.popup-detail-finish {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
// display: flex;
// justify-content: center;
// align-items: center;
backdrop-filter: blur(1rpx);
background-color: rgba(89, 109, 154, 0.4);
/* 添加毛玻璃效果 */
z-index: 1001;
.popup-detail-content {
position: absolute;
left: 350rpx;
top: 400rpx;
// left: 0;
// bottom: 0;
display: flex;
width: 1200rpx;
height: 700rpx;
background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.5);
background-blend-mode: screen;
border: 2rpx solid #fff;
/* 使用 screen 混合模式,让图像与白色混合变淡 */
border-radius: 40rpx;
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
transition: opacity 0.4s ease;
overflow: hidden;
}
}
.popup-detail-content-calculator {
position: absolute;
right: 100rpx;
top: 310rpx;
display: flex;
width: 650rpx;
height: 850rpx;
background-color: #fff;
border: 2rpx solid #fff;
border-radius: 30rpx;
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
transition: opacity 0.4s ease;
overflow: hidden;
}
</style>