hldy_app_mini/pages/procurement/components/calculator.vue

801 lines
18 KiB
Vue
Raw Normal View History

2025-11-07 17:31:30 +08:00
<template>
2026-02-27 17:02:36 +08:00
<view class="plsbuy-contain guodu" :class="show?'':'unclass'" :style="showbox?'z-index:999':'z-index:-2'">
2025-11-07 17:31:30 +08:00
<view class="gys">
<view class="tlt">供应商</view>
<view class="gssel" @click="gysflag = true">
<view>
{{gysarr[gysidnum]?.name}}
</view>
2026-02-27 17:02:36 +08:00
<text @click.stop="gysflag = !gysflag">
<image class="guodu" :style="gysflag?'transform: rotate(180deg);':''"
:src=" '/static/index/procurement/sj.png' " mode="aspectFill"></image>
2025-11-26 17:49:44 +08:00
</text>
2025-11-07 17:31:30 +08:00
</view>
2026-02-27 17:02:36 +08:00
<view class="tanchu guodu" :class="gysflag?'':'hei0'"
2026-02-28 17:31:05 +08:00
:style="`height: ${(gysarr && gysarr.length*8) || 0}vh`">
2025-11-26 17:49:44 +08:00
<scroll-view scroll-y="true" class="gysscrol" v-if="gysflag">
2025-11-07 17:31:30 +08:00
<view v-for="(v,i) in gysarr" :key='i' :class="gysidnum==i?'acts':''" @click="gysid(i)">
<text>{{v.name}}</text>
2025-12-01 17:13:29 +08:00
<!-- <image src="/static/index/procurement/d.png" mode="aspectFill"></image> -->
2025-11-07 17:31:30 +08:00
</view>
</scroll-view>
</view>
</view>
<view class="calculator-father">
<view v-for="(item,index) in calculatorArray" :key="index">
2026-02-27 17:02:36 +08:00
<view :class="blueNumber == index ? `calculator-kuai-target` : ``" class="calculator-kuai"
style="font-size: 33rpx;" v-if="item==`AC`" @click="clickKuai(item,index)">
2025-12-05 16:12:13 +08:00
清零
</view>
2026-02-27 17:02:36 +08:00
<view :class="blueNumber == index ? `calculator-kuai-target` : ``" class="calculator-kuai"
v-else-if="item==`AE`" @click="clickKuai(item,index)">
<image src="/static/cleanone.png" mode="aspectFill"
style="width: 50%;height: 50%;margin-left: -5rpx;"></image>
2025-12-05 16:12:13 +08:00
</view>
<view :class="blueNumber == index ? `calculator-kuai-target` : ``" class="calculator-kuai" v-else
2025-11-07 17:31:30 +08:00
@click="clickKuai(item,index)">
{{item}}
</view>
2026-02-27 17:02:36 +08:00
2025-11-07 17:31:30 +08:00
</view>
</view>
<view class="qinggou-font">
2025-11-14 11:26:32 +08:00
采购数量 <text style="color: red;" v-if="sx==true">超过库存上限</text>
2025-11-07 17:31:30 +08:00
</view>
<view class="stringShow-father">
2026-02-27 17:02:36 +08:00
<view class="jj" @click="jjnum(-1)" @touchstart="clickstart(-1)"
@touchend="handleTouchEnd">
2025-11-07 17:31:30 +08:00
-
</view>
<view class="stringShow-kuai">
2026-02-27 17:02:36 +08:00
<view v-for="(item,index) in stringShow" :key="index" :style="sx==true?'color: red':''">
2025-11-07 17:31:30 +08:00
{{item}}
</view>
</view>
2026-02-27 17:02:36 +08:00
<view class="jj" :style="sx==true?'background:#f8f8f8':''" @click="jjnum(1)" @touchstart="clickstart(1)"
@touchend="handleTouchEnd">
2025-11-07 17:31:30 +08:00
+
</view>
</view>
2025-11-14 10:34:26 +08:00
<view class="cgdw">
2026-02-27 17:02:36 +08:00
<view class="leftr" @click.stop="cgdwflag = !cgdwflag,cgdwec = false">
2025-11-26 17:49:44 +08:00
<view>{{type.unit}}</view>
<text>
2026-02-27 17:02:36 +08:00
<image class="guodu" :style="!cgdwflag?'transform: rotate(180deg);':''"
:src=" '/static/index/procurement/sj.png' " mode="aspectFill"></image>
2025-11-26 17:49:44 +08:00
</text>
2025-11-14 10:34:26 +08:00
</view>
2025-11-26 17:49:44 +08:00
<!-- <view class="tz" @click="cgdwflag=!cgdwflag">调整</view> -->
2026-02-27 17:02:36 +08:00
<view class="dwdw guodu" :class="cgdwflag?'':'hei0'"
2026-02-28 17:31:05 +08:00
:style="`height: ${(cgdwarr && cgdwarr.length*8) || 0}vh`">
2026-02-27 17:02:36 +08:00
<view class="gysscrol guodu" v-if="cgdwec" :class="cgdwflag?'':'hei0'">
2025-11-14 10:34:26 +08:00
<view v-for="(v,i) in cgdwarr" :key='i' :class="type.multiUnitType==v.multiUnitType?'acts':''"
2026-02-27 17:02:36 +08:00
@click="cd(v,i)" :style="v.unit&&v.num?'':'height:0 !important;margin-top:-0.5vw'">
<text v-if="v.unit&&v.num">{{v.unit}}</text><text
v-if="v.unit&&v.num">{{v.num}}{{caigouobj.materialUnits}}</text>
2025-12-01 17:13:29 +08:00
<!-- <image src="/static/index/procurement/d.png" mode="aspectFill"></image> -->
2025-11-14 10:34:26 +08:00
</view>
</view>
</view>
</view>
2025-11-07 17:31:30 +08:00
<view class="plsbuy-bottom">
2026-02-27 17:02:36 +08:00
<view class="quxiao" @click="colse">
2025-11-07 17:31:30 +08:00
取消
</view>
<view class="plsbuy-bottom-blue" @click="closeIt">
确定
</view>
</view>
2025-11-26 17:49:44 +08:00
<view class="mengban" v-if="cgdwflag||gysflag" @click="gysflag = false;cgdwflag = false;cgdwec = false;"></view>
2025-11-07 17:31:30 +08:00
</view>
</template>
<script setup lang="ts">
import {
ref,
onMounted,
onBeforeUnmount,
computed,
nextTick,
watch
} from 'vue';
2026-02-27 17:02:36 +08:00
const emit = defineEmits(['right', 'colse', 'jjnum'])
2025-11-07 17:31:30 +08:00
const blueNumber = ref(-1);
const gysflag = ref(false)
2025-11-14 10:34:26 +08:00
const cgdwflag = ref(false)
2025-11-14 11:26:32 +08:00
const sx = ref(false)
2025-11-14 10:34:26 +08:00
const type = ref({})
2026-02-27 17:02:36 +08:00
2025-12-01 17:13:29 +08:00
const downslength = ref(0);
2025-11-07 17:31:30 +08:00
const gysarr = ref([])
2025-11-14 10:34:26 +08:00
const cgdwarr = ref([])
2025-11-07 17:31:30 +08:00
const gysidnum = ref(0)
const props = defineProps({
show: {
type: Boolean,
2026-02-27 17:02:36 +08:00
default: false
2025-11-07 17:31:30 +08:00
},
2026-02-27 17:02:36 +08:00
caigouobj: {
type: Object,
2025-11-07 17:31:30 +08:00
required: true,
}
});
2025-11-14 11:26:32 +08:00
// watch(
// () => type.value,
// (news,old) => {
// console.log(old,news)
// if(!old.num){return}
// if(old.num==1){
// let num = Number(props.caigouobj.upperLimit)-Number(props.caigouobj.kcsl);
// let m = Math.floor(relNumber.value/news.num);
// huansuan(m)
// }
// if(old.num!=1){
// let f = relNumber.value*old.num;
// let num = Number(props.caigouobj.upperLimit)-Number(props.caigouobj.kcsl);
// f = f>num?num:f;
// // let m = Math.floor(num/type.value.num)
// let m = Math.floor(f/news.num);
// huansuan(m)
// }
// }
// )
2025-11-26 17:49:44 +08:00
const cgdwec = ref(false)
2025-11-27 17:26:38 +08:00
const showbox = ref(false)
2026-02-27 17:02:36 +08:00
watch(() => cgdwflag.value,
() => {
if (cgdwflag.value == true) {
setTimeout(() => {
2025-11-26 17:49:44 +08:00
cgdwec.value = true
2026-02-27 17:02:36 +08:00
}, 200)
2025-11-26 17:49:44 +08:00
}
})
2025-11-07 17:31:30 +08:00
watch(
2026-02-27 17:02:36 +08:00
() => props.show,
() => {
2026-02-02 15:52:17 +08:00
console.log(props.caigouobj)
2026-02-27 17:02:36 +08:00
if (props.show) {
2025-11-14 10:34:26 +08:00
let a = [
{
2026-02-27 17:02:36 +08:00
multiUnitType: 1,
price: props.caigouobj.oneUnitPrice,
unit: props.caigouobj.oneUnit,
num: props.caigouobj.oneUnitProportion
2025-11-14 10:34:26 +08:00
},
{
2026-02-27 17:02:36 +08:00
multiUnitType: 2,
price: props.caigouobj.twoUnitPrice,
unit: props.caigouobj.twoUnit,
num: props.caigouobj.twoUnitProportion
2025-11-14 10:34:26 +08:00
},
{
2026-02-27 17:02:36 +08:00
multiUnitType: 3,
price: props.caigouobj.unitPrice ? props.caigouobj.unitPrice : props.caigouobj.referenceUnitPrice,
unit: props.caigouobj.materialUnits,
num: 1
2025-11-14 10:34:26 +08:00
}
];
2026-02-27 17:02:36 +08:00
if (props.caigouobj.wlUnits) {
type.value = a.find(item =>
2025-11-20 10:27:33 +08:00
item.unit == props.caigouobj.wlUnits
);
2026-02-27 17:02:36 +08:00
} else {
type.value = a.find(item =>
2025-11-20 10:27:33 +08:00
item.multiUnitType == props.caigouobj.multiUnitType
);
}
2026-02-27 17:02:36 +08:00
2025-12-01 17:13:29 +08:00
cgdwarr.value = []
downslength.value = 0;
2026-02-27 17:02:36 +08:00
a.forEach((element : any) => {
if (element.unit && element.num) {
2025-12-01 17:13:29 +08:00
cgdwarr.value.push(element)
}
})
2026-02-27 17:02:36 +08:00
2025-11-07 17:31:30 +08:00
let n = [];
let id = [];
gysarr.value = [];
2026-02-27 17:02:36 +08:00
console.log("为啥报错", props.caigouobj)
n = props.caigouobj.suppliers_dictText?.split(/[, ]+/);
id = props.caigouobj.suppliers?.split(/[, ]+/);
n.forEach((item, i) => {
gysarr.value.push({ 'name': item, 'id': id[i] })
if (item == props.caigouobj.suppliersName) {
2025-11-20 10:27:33 +08:00
gysid(i)
}
2025-11-07 17:31:30 +08:00
})
2026-02-27 17:02:36 +08:00
if (props.caigouobj.purchaseQuantity) {
props.caigouobj.upperLimit = props.caigouobj.wlUpperLimit
2025-11-14 17:28:10 +08:00
huansuan(props.caigouobj.purchaseQuantity)
2026-02-27 17:02:36 +08:00
} else {
2025-11-14 17:28:10 +08:00
jssl()
}
2026-02-27 17:02:36 +08:00
setTimeout(() => {
2025-11-27 17:26:38 +08:00
showbox.value = true;
2026-02-27 17:02:36 +08:00
}, 50)
} else {
2025-11-12 17:32:02 +08:00
gysflag.value = false;
2025-11-14 10:34:26 +08:00
cgdwflag.value = false;
2025-11-26 17:49:44 +08:00
cgdwec.value = false;
2025-11-14 10:34:26 +08:00
type.value = {};
2025-11-14 11:26:32 +08:00
sx.value = false;
2025-11-20 16:37:54 +08:00
gysidnum.value = 0;
isZero.value = false;
2025-11-27 17:26:38 +08:00
setTimeout(() => {
showbox.value = false;
}, 400)
2025-11-12 17:32:02 +08:00
}
2026-02-27 17:02:36 +08:00
})
const jssl = () => {
let num = Number(props.caigouobj.upperLimit) - Number(props.caigouobj.kcsl);
let m = Math.floor(num / type.value.num)
2025-12-05 10:10:53 +08:00
huansuan(m);
cy()
2025-11-14 10:34:26 +08:00
}
2026-02-27 17:02:36 +08:00
const huansuan = (m : number) => {
2025-11-14 10:34:26 +08:00
relNumber.value = m;
2025-11-14 11:26:32 +08:00
stringShow.value = toFixed4ByPadStart(relNumber.value);
}
2026-02-27 17:02:36 +08:00
const cy = () => {
let num = Number(props.caigouobj.upperLimit) - Number(props.caigouobj.kcsl);
let bl = relNumber.value * type.value.num
if (bl > num) {
2025-11-14 11:26:32 +08:00
sx.value = true
2026-02-27 17:02:36 +08:00
} else {
2025-11-14 11:26:32 +08:00
sx.value = false
}
2025-11-14 10:34:26 +08:00
}
2026-02-27 17:02:36 +08:00
const cd = (v, i) => {
2025-11-14 10:34:26 +08:00
type.value = v;
cgdwflag.value = false;
2025-11-26 17:49:44 +08:00
cgdwec.value = false;
2025-11-14 11:26:32 +08:00
jssl()
2025-11-14 10:34:26 +08:00
}
2026-02-27 17:02:36 +08:00
const gysid = (e : number) => {
2025-11-07 17:31:30 +08:00
gysidnum.value = e;
gysflag.value = false;
}
2025-11-19 09:56:56 +08:00
const calculatorArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, "AC", 0, "AE"];
2025-11-07 17:31:30 +08:00
const stringShow = ref("0000");
const relNumber = ref(0);
2025-11-20 16:37:54 +08:00
const isZero = ref(false);
2025-11-07 17:31:30 +08:00
const clickKuai = (item : any, index : number) => {
blueNumber.value = index;
setTimeout(() => {
blueNumber.value = -1
}, 300)
if (item == "AC") {
relNumber.value = 0;
2025-11-14 17:28:10 +08:00
stringShow.value = "0000";
cy()
2025-11-07 17:31:30 +08:00
return
}
2025-11-19 09:56:56 +08:00
if (item == "AE") {
2025-11-07 17:31:30 +08:00
relNumber.value = Math.trunc(relNumber.value / 10)
2025-11-14 17:28:10 +08:00
stringShow.value = toFixed4ByPadStart(relNumber.value);
cy()
2025-11-07 17:31:30 +08:00
return
}
2026-02-27 17:02:36 +08:00
if (isZero.value == false) {
2025-11-20 16:37:54 +08:00
isZero.value = true;
relNumber.value = item;
stringShow.value = toFixed4ByPadStart(relNumber.value);
cy()
return
}
2025-11-07 17:31:30 +08:00
if (digitCountByString(relNumber.value) > 3) {
} else {
if (!relNumber.value) {
relNumber.value = item
} else {
relNumber.value = relNumber.value * 10 + item;
}
2025-11-14 11:26:32 +08:00
cy()
2025-11-07 17:31:30 +08:00
stringShow.value = toFixed4ByPadStart(relNumber.value)
}
}
const InteroutId = ref(null)
2026-02-27 17:02:36 +08:00
const handleTouchStart = (e : number) => {
// Interval(e)
2025-11-07 17:31:30 +08:00
}
2026-02-27 17:02:36 +08:00
let longPressTimer = null;
let longPressed = false;
const clickstart = (e : number) => {
// console.log("开始长按")
longPressed = false;
if (longPressTimer) {
clearTimeout(longPressTimer);
longPressTimer = null;
}
longPressTimer = setTimeout(() => {
longPressTimer = null;
longPressed = true;
Interval(e)
}, 800); // 1000ms = 1s
2025-11-07 17:31:30 +08:00
}
2026-02-27 17:02:36 +08:00
const handleTouchEnd = () => {
// console.log("取消了吗???")
// 如果定时器还在,说明没到 1 秒,取消长按
if (longPressTimer) {
clearTimeout(longPressTimer);
longPressTimer = null;
// console.log('未达到 1 秒:取消长按');
return;
}
// 如果已经触发过长按
if (longPressed) {
// console.log('长按已触发,用户放手');
clearInterval(InteroutId.value);
longPressed = false; // 重置状态(按需)
} else {
console.log('无效状态(通常不会到这)');
}
}
const Interval = (e : number) => {
2025-11-07 17:31:30 +08:00
InteroutId.value = setInterval(() => {
2026-02-27 17:02:36 +08:00
jjnum(e);
}, 120);
2025-11-07 17:31:30 +08:00
}
2026-02-27 17:02:36 +08:00
const jjnum = (e : number) => {
let num = Number(props.caigouobj.upperLimit) - Number(props.caigouobj.kcsl);
let m = Math.floor(num / type.value.num)
if (m <= relNumber.value && e == 1) { relNumber.value = m; return }
if (relNumber.value <= 1 && e == -1) { relNumber.value = 1; return }
relNumber.value += e;
2025-11-14 10:34:26 +08:00
stringShow.value = toFixed4ByPadStart(relNumber.value)
2025-11-14 11:26:32 +08:00
cy()
2025-11-14 10:34:26 +08:00
// emit('jjnum',e)
2025-11-07 17:31:30 +08:00
}
const closeIt = () => {
2026-02-27 17:02:36 +08:00
if (relNumber.value < 1) {
2025-11-14 10:34:26 +08:00
uni.showToast({
2026-02-27 17:02:36 +08:00
title: '采购数量不能为0',
icon: 'none'
2025-11-14 10:34:26 +08:00
})
return
}
2026-02-27 17:02:36 +08:00
emit('right', relNumber.value, gysarr.value[gysidnum.value], type.value, props.caigouobj)
2025-11-07 17:31:30 +08:00
}
2026-02-27 17:02:36 +08:00
const colse = () => {
2025-11-07 17:31:30 +08:00
emit('colse')
}
function digitCountByString(n) {
const s = Math.abs(n).toString();
return s.length;
}
function toFixed4ByPadStart(n) {
const intPart = Math.floor(Math.abs(n));
return String(intPart).padStart(4, '0');
}
</script>
<style lang="less" scoped>
2025-11-26 17:49:44 +08:00
.hei0 {
height: 0 !important;
2026-02-27 17:02:36 +08:00
view {
2025-11-26 17:49:44 +08:00
height: 0 !important;
}
}
2026-02-27 17:02:36 +08:00
2025-11-27 17:26:38 +08:00
.unclass {
opacity: 0 !important;
}
2026-02-27 17:02:36 +08:00
.cgdw {
2026-02-28 17:31:05 +08:00
width: 26vw;
2025-11-14 10:34:26 +08:00
display: flex;
2025-11-26 17:49:44 +08:00
height: 3.3vw;
2025-11-14 10:34:26 +08:00
justify-content: space-between;
2025-11-26 17:49:44 +08:00
align-items: center;
2026-02-28 17:31:05 +08:00
margin: 0.8vw 0;
2025-11-27 17:26:38 +08:00
background: #F3F5F9;
2026-02-28 17:31:05 +08:00
border-radius: 1.1vw;
2025-11-26 17:49:44 +08:00
padding: 0 1vw;
2025-11-14 10:34:26 +08:00
position: relative;
2026-02-27 17:02:36 +08:00
text {
2025-11-26 17:49:44 +08:00
width: 3.3vw;
height: 3.3vw;
display: flex;
justify-content: center;
align-items: center;
2026-02-27 17:02:36 +08:00
2025-11-26 17:49:44 +08:00
image {
width: 1.6vw;
height: 1.6vw;
}
}
2026-02-27 17:02:36 +08:00
.dwdw {
2026-02-28 17:31:05 +08:00
width: 26vw;
2025-12-01 17:13:29 +08:00
// max-height: 21vh;
2025-11-14 10:34:26 +08:00
background: #FFFFFF;
2026-02-27 17:02:36 +08:00
box-shadow: 0rpx 0rpx 0.5vw 0rpx rgba(174, 175, 176, 0.35);
2025-11-14 10:34:26 +08:00
border-radius: 1.1vw;
2026-02-28 17:31:05 +08:00
padding: 0 2vw;
// background-color: red;
2025-11-14 10:34:26 +08:00
position: absolute;
2026-02-27 17:02:36 +08:00
left: 0vw;
2025-11-26 17:49:44 +08:00
bottom: 3.5vw;
2025-11-21 09:26:06 +08:00
z-index: 211;
2026-02-27 17:02:36 +08:00
.gysscrol {
2025-11-14 10:34:26 +08:00
width: 100%;
2025-12-01 17:13:29 +08:00
height: 100%;
2026-02-27 17:02:36 +08:00
2025-12-01 17:13:29 +08:00
// max-height: 21vw;
2026-02-27 17:02:36 +08:00
>.acts {
2025-11-14 10:34:26 +08:00
color: #0385FA !important;
2026-02-27 17:02:36 +08:00
image {
2025-11-14 10:34:26 +08:00
display: block;
}
}
2026-02-27 17:02:36 +08:00
view {
2025-11-14 10:34:26 +08:00
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 400;
font-size: 1.5vw;
color: #666666;
2025-12-01 17:13:29 +08:00
// margin-bottom: 1.2vw;
// padding-right: 1.5vw;
2026-02-28 17:31:05 +08:00
height: 8vh;
2025-11-14 10:34:26 +08:00
position: relative;
2025-11-26 17:49:44 +08:00
white-space: nowrap;
2026-02-27 17:02:36 +08:00
text {
2025-11-26 17:49:44 +08:00
white-space: nowrap;
padding-right: 1vw;
}
2026-02-27 17:02:36 +08:00
&:nth-child(1) {
2025-12-01 17:13:29 +08:00
// margin-top: 1vw;
2025-11-14 10:34:26 +08:00
}
2026-02-27 17:02:36 +08:00
>image {
2025-11-14 10:34:26 +08:00
position: absolute;
2025-12-01 17:13:29 +08:00
right: -0.2vw;
top: 50%;
transform: translateY(-50%);
2025-11-14 10:34:26 +08:00
width: 1vw !important;
height: 0.7vw !important;
display: none;
}
}
}
}
2026-02-27 17:02:36 +08:00
.tz {
2025-11-14 10:34:26 +08:00
width: 7vw;
height: 3.3vw;
2026-02-27 17:02:36 +08:00
background: rgba(255, 255, 255, 0.6);
2025-11-14 10:34:26 +08:00
border-radius: 1.6vw;
border: 1px solid #D9DADC;
box-shadow: 0.05vw 0.5vw 0.5vw #dadee1;
display: flex;
justify-content: center;
align-items: center;
font-weight: 400;
font-size: 1.5vw;
color: #555555;
}
2026-02-27 17:02:36 +08:00
.leftr {
2025-11-26 17:49:44 +08:00
width: 100%;
2025-11-14 10:34:26 +08:00
display: flex;
align-items: center;
2025-11-26 17:49:44 +08:00
justify-content: space-between;
2025-11-14 10:34:26 +08:00
white-space: nowrap;
2025-11-27 17:26:38 +08:00
height: 3.3vw;
2026-02-28 17:31:05 +08:00
padding: 0 1vw;
2026-02-27 17:02:36 +08:00
view {
2025-11-14 10:34:26 +08:00
width: 8.6vw;
font-weight: 400;
font-size: 1.6vw;
color: #555555;
}
2026-02-27 17:02:36 +08:00
text {
2025-11-14 10:34:26 +08:00
font-weight: 400;
font-size: 1.4vw;
color: #888888;
}
}
}
2026-02-27 17:02:36 +08:00
.gys {
2025-11-07 17:31:30 +08:00
width: 100%;
2025-11-14 10:34:26 +08:00
height: 7vw;
2025-11-07 17:31:30 +08:00
position: relative;
2025-11-14 10:34:26 +08:00
margin-top: 0.5vw;
2026-02-27 17:02:36 +08:00
>.tanchu {
2026-02-28 17:31:05 +08:00
width: 26vw;
2025-12-01 17:13:29 +08:00
max-height: 35vh;
2025-11-07 17:31:30 +08:00
background: #FFFFFF;
2026-02-27 17:02:36 +08:00
box-shadow: 0rpx 0rpx 0.5vw 0rpx rgba(174, 175, 176, 0.35);
2025-11-07 17:31:30 +08:00
border-radius: 1.1vw;
2026-02-28 17:31:05 +08:00
padding: 0 1vw;
2025-11-07 17:31:30 +08:00
position: absolute;
2026-02-28 17:31:05 +08:00
left: 4vw;
2025-11-27 17:26:38 +08:00
top: 6.5vw;
2025-11-21 09:26:06 +08:00
z-index: 211;
2026-02-27 17:02:36 +08:00
.gysscrol {
2025-11-07 17:31:30 +08:00
width: 100%;
2025-12-01 17:13:29 +08:00
height: 100%;
2026-02-27 17:02:36 +08:00
.acts {
2025-11-07 17:31:30 +08:00
color: #0385FA !important;
2026-02-27 17:02:36 +08:00
image {
2025-11-07 17:31:30 +08:00
display: block;
}
}
2026-02-27 17:02:36 +08:00
view {
2025-11-07 17:31:30 +08:00
display: flex;
justify-content: space-between;
align-items: center;
2025-12-01 17:13:29 +08:00
// justify-content: center;
2025-11-07 17:31:30 +08:00
font-weight: 400;
2025-11-14 10:34:26 +08:00
font-size: 1.5vw;
2025-11-07 17:31:30 +08:00
color: #666666;
2026-02-28 17:31:05 +08:00
height: 8vh;
2025-12-01 17:13:29 +08:00
// margin-bottom: 1.2vw;
// padding-right: 1.5vw;
2025-11-14 10:34:26 +08:00
position: relative;
2026-02-27 17:02:36 +08:00
&:nth-child(1) {
2025-12-01 17:13:29 +08:00
// margin-top: 1.2vw;
2025-11-07 17:31:30 +08:00
}
2026-02-27 17:02:36 +08:00
image {
2025-11-14 10:34:26 +08:00
position: absolute;
right: 0.2vw;
2025-12-01 17:13:29 +08:00
top: 50%;
transform: translateY(-50%);
2025-11-07 17:31:30 +08:00
width: 1vw !important;
height: 0.7vw !important;
display: none;
}
}
}
2026-02-27 17:02:36 +08:00
2025-11-07 17:31:30 +08:00
}
2026-02-27 17:02:36 +08:00
.gssel {
width: 26vw;
2025-11-07 17:31:30 +08:00
display: flex;
2025-11-26 17:49:44 +08:00
height: 3.3vw;
2025-11-07 17:31:30 +08:00
justify-content: space-between;
align-items: center;
2026-02-27 17:02:36 +08:00
margin: 0.8vw auto 0;
2025-11-27 17:26:38 +08:00
background: #F3F5F9;
2026-02-28 17:31:05 +08:00
border-radius: 1.1vw;
2025-11-26 17:49:44 +08:00
padding: 0 1vw;
2026-02-28 17:31:05 +08:00
margin-bottom: 10rpx;
2026-02-27 17:02:36 +08:00
text {
2025-11-26 17:49:44 +08:00
width: 3.3vw;
2025-11-07 17:31:30 +08:00
height: 3.3vw;
display: flex;
justify-content: center;
align-items: center;
2026-02-27 17:02:36 +08:00
2025-11-26 17:49:44 +08:00
image {
width: 1.6vw;
height: 1.6vw;
}
2025-11-07 17:31:30 +08:00
}
2026-02-27 17:02:36 +08:00
view {
2025-11-07 17:31:30 +08:00
width: 22vw;
height: 3.3vw;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-weight: 400;
font-size: 1.6vw;
color: #555555;
line-height: 3.3vw;
}
}
2026-02-27 17:02:36 +08:00
.tlt {
2025-11-07 17:31:30 +08:00
font-weight: bold;
2025-11-26 17:49:44 +08:00
font-size: 1.5vw;
2025-11-07 17:31:30 +08:00
color: #333333;
2025-11-26 17:49:44 +08:00
padding-left: 3vw;
font-weight: 400;
2026-02-28 17:31:05 +08:00
margin-bottom: 30rpx;
2025-11-07 17:31:30 +08:00
}
}
2026-02-27 17:02:36 +08:00
2025-11-07 17:31:30 +08:00
.plsbuy-contain {
display: flex;
align-items: center;
flex-direction: column;
2026-02-27 17:02:36 +08:00
width: 34vw;
2025-11-14 10:34:26 +08:00
height: 95vh;
2025-11-07 17:31:30 +08:00
background: rgba(250, 251, 252, 1);
overflow: hidden;
2026-02-27 17:02:36 +08:00
box-shadow: 0rpx 0rpx 1.6vw 0rpx rgba(136, 141, 153, 0.28);
2025-11-07 17:31:30 +08:00
border-radius: 2.2vw;
2026-02-12 16:14:54 +08:00
top: 50%;
transform: translateY(-50%);
2025-12-30 08:42:53 +08:00
right: 32vw;
2025-11-07 17:31:30 +08:00
position: fixed;
2026-02-27 17:02:36 +08:00
padding: 1.5vw 0vw;
2025-11-07 17:31:30 +08:00
}
.plsbuy-bottom {
2026-02-27 17:02:36 +08:00
width: 75%;
2025-11-14 10:34:26 +08:00
margin-top: 3vw;
height: 7vw;
2025-11-07 17:31:30 +08:00
display: flex;
justify-content: flex-end;
font-size: 35rpx;
2026-02-27 17:02:36 +08:00
view {
2025-11-07 17:31:30 +08:00
display: flex;
justify-content: center;
align-items: center;
width: 9vw;
height: 3.8vw;
color: rgba(92, 121, 146, 1);
2026-02-27 17:02:36 +08:00
border-radius: 1.9vw;
2025-11-07 17:31:30 +08:00
font-size: 1.8vw;
2025-11-21 14:45:32 +08:00
border: 1px solid #EDEDEF;
2025-11-07 17:31:30 +08:00
margin-left: 1vw;
}
2026-02-27 17:02:36 +08:00
.quxiao {
2025-12-01 17:13:29 +08:00
min-width: 8vw;
height: 3.8vw;
2025-11-21 14:45:32 +08:00
background: #EDEDEF;
2025-12-01 17:13:29 +08:00
border-radius: 1.9vw;
padding: 0 2vw;
margin-left: 1vw;
border: 1px solid #EDEDEF;
font-size: 1.8vw;
font-weight: 400;
color: #888888;
white-space: nowrap;
display: flex;
justify-content: center;
align-items: center;
2025-11-07 17:31:30 +08:00
}
2026-02-27 17:02:36 +08:00
2025-11-07 17:31:30 +08:00
.plsbuy-bottom-blue {
background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
2026-02-27 17:02:36 +08:00
border: 1px solid rgba(3, 133, 250, 0.34);
2025-11-21 14:45:32 +08:00
color: #0385FA;
2025-11-07 17:31:30 +08:00
}
}
.calculator-father {
2025-11-27 17:26:38 +08:00
width: 25vw;
2025-11-14 10:34:26 +08:00
height: 45vh;
2026-02-27 17:02:36 +08:00
margin-left: -20rpx;
// margin: 0 auto 0;
2025-11-07 17:31:30 +08:00
flex-wrap: wrap;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
2026-02-27 17:02:36 +08:00
2025-11-07 17:31:30 +08:00
.calculator-kuai {
display: flex;
justify-content: center;
align-items: center;
background: url('/static/index/procurement/bt.png') no-repeat;
background-size: 100% 100%;
font-size: 42rpx;
font-weight: 500;
2026-02-28 17:31:05 +08:00
margin: 12rpx 40rpx 0 0rpx;
width: 7.6vw;
2026-02-27 17:02:36 +08:00
height: 6.1vw;
2025-11-07 17:31:30 +08:00
}
2026-02-27 17:02:36 +08:00
.calculator-kuai:active {
2025-11-07 17:31:30 +08:00
background: linear-gradient(to bottom, #00C9FF, #0076FF);
color: #fff;
font-size: 45rpx;
font-weight: 500;
2025-11-27 13:58:23 +08:00
border-radius: 2.6vw;
2025-11-07 17:31:30 +08:00
}
}
.stringShow-father {
width: 100%;
2026-02-27 17:02:36 +08:00
height: 7vw;
margin-top: 0.5vw;
2025-11-07 17:31:30 +08:00
display: flex;
align-items: center;
2025-11-27 17:26:38 +08:00
justify-content: center;
2026-02-27 17:02:36 +08:00
.jj {
2025-11-07 17:31:30 +08:00
width: 5vw;
height: 5vw;
margin: 0 1vw;
display: flex;
justify-content: center;
align-items: center;
background: url('/static/index/procurement/bt.png') no-repeat;
background-size: 100% 100%;
border-radius: 25rpx;
font-size: 42rpx;
}
2026-02-27 17:02:36 +08:00
.jj:active {
2025-11-07 17:31:30 +08:00
background: linear-gradient(to bottom, #00C9FF, #0076FF);
color: #fff;
display: flex;
justify-content: center;
align-items: center;
background-color: #DCDCEE;
border-radius: 25rpx;
font-size: 45rpx;
font-weight: 500;
}
2026-02-27 17:02:36 +08:00
2025-11-07 17:31:30 +08:00
.stringShow-kuai {
display: flex;
align-items: center;
2026-02-27 17:02:36 +08:00
width: 14vw;
2025-11-07 17:31:30 +08:00
height: 5vw;
background: #F3F5F9;
border-radius: 1vw;
border: 1px solid #CBCFD0;
justify-content: space-around;
2026-02-27 17:02:36 +08:00
box-shadow: 0rpx 0.1vw 0.3vw 0rpx rgba(140, 143, 153, 0.17) inset;
view {
2025-11-07 17:31:30 +08:00
display: flex;
justify-content: center;
align-items: center;
font-size: 42rpx;
font-weight: 500;
2026-02-27 17:02:36 +08:00
width: 2.5vw;
2025-11-07 17:31:30 +08:00
height: 5vw;
2026-02-27 17:02:36 +08:00
}
2025-11-07 17:31:30 +08:00
}
}
.qinggou-font {
font-size: 27rpx;
font-weight: 500;
2025-11-14 10:34:26 +08:00
margin: 0.8vw auto 0;
2025-11-21 09:26:06 +08:00
}
2026-02-27 17:02:36 +08:00
2025-11-21 09:26:06 +08:00
.mengban {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
2026-02-27 17:02:36 +08:00
z-index: 210;
2025-11-26 17:49:44 +08:00
background: RGBA(239, 240, 244, 0);
}
2026-02-27 17:02:36 +08:00
2025-11-26 17:49:44 +08:00
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
2025-11-07 17:31:30 +08:00
}
</style>