This commit is contained in:
wangweidong 2026-04-27 13:38:19 +08:00
parent 8d81be9f99
commit c74b9b0da5
8 changed files with 1341 additions and 39 deletions

View File

@ -93,36 +93,12 @@
</view>
</scroll-view>
</view>
<view class="right-one-white center" v-if="InvoicingList.length<2&&InvoicingList.length">
<!-- <view class="right-one-white center" v-if="InvoicingList.length<2&&InvoicingList.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="right-one-white center" v-if="InvoicingList.length<3&&InvoicingList.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="right-one-white center" v-if="InvoicingList.length<4&&InvoicingList.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="right-one-white center" v-if="InvoicingList.length<5&&InvoicingList.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="right-one-white center" v-if="InvoicingList.length<6&&InvoicingList.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
</view> -->
<defaultr cont="暂无数据" v-if="InvoicingList.length==0 "
style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
</view>

View File

@ -0,0 +1,405 @@
<template>
<view class="cont">
<view class="topcon">
<view class="title" >
<view></view>
采购单
</view>
<view class="zuofei" @click="emit(`link`,0)">
<image src="/static/index/procurement/bk.png" mode="aspectFill"></image>
返回
</view>
</view>
<view class="cgdh" >
<view class="conts">
<text>采购单号 </text>101C20251121006
</view>
<view class="conts">
<text>采购日期 </text>2025-10-12
</view>
<view class="jiage">
<view>
<text></text>0.35
</view>
<text>采购价格 </text>
</view>
</view>
<scroll-view scroll-y="true" class="caigoulist" scroll-with-animation @scrolltolower="scrolltolower()" lower-threshold="300"
:enhanced="true" :bounce="true" enable-back-to-top>
<view class="fler" v-for="(v,index) in InvoicingList" :key="index">
<view class="fler-view" >
<view class="carditem guodu" >
<view class="speitem guodu">
<view class="imghs">
<image style="border-radius: 1vw;"
:src="v.materialImg?serverUrl+v.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill">
</image>
</view>
<view class="cardp">
<view>复健用品</view>
<view>复健用品</view>
</view>
<!-- <view class="cardp">
<view v-if="v.categoryId_dictText">{{v.categoryId_dictText}}</view>
<view v-if="v.typeId_dictText">{{v.typeId_dictText}}</view>
<view v-if="v.medicationId_dictText">{{v.medicationId_dictText}}</view>
</view> -->
</view>
<view class="msitem guodu">
<view style="margin-top: 1.4vw;">
<view>纸尿裤-拉拉裤纸尿裤拉拉裤纸尿裤</view>
</view>
<view>
<text style="white-space: nowrap;"> 规格型号: 800mm*680mm</text>
</view>
<view>
<text style="white-space: nowrap;"> 品牌型号品牌型号名称</text>
</view>
<view>
<text style="white-space: nowrap;"> 生产厂家吉林省捌零信创科技有限...</text>
</view>
</view>
</view>
<view class="dibu">
<view>
<view><text></text>0.32</view>
<text>采购价格</text>
</view>
<view>
<view></view>
<text>采购单位</text>
</view>
<view>
<view><text></text>0.58</view>
<text>销售金额</text>
</view>
</view>
</view>
</view>
<view style="height:3vw;width: 100%;display: flex;align-items: center;justify-content: center;">
<u-loadmore :status="status" :loadText="{nomore:'暂无更多数据'}" v-if="InvoicingList.length>6" />
</view>
</scroll-view>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineComponent, inject, watch } from 'vue';
const InvoicingList = ref([{},{},{},{},{},])
const emit = defineEmits(['link' ])
const ification = ref(false)
const carnum = ref(2)
</script>
<style lang="less" scoped>
.caigoulist{
width: 100%;
height: 47vw;
padding: 0 1.4vw;
.fler {
width: 59.5vw;
position: relative;
.fler-view {
width: 59vw;
height: 22.5vw;
border: 1px solid #E5E5E5;
border-radius: 1.6vw;
position: relative;
margin-bottom: 1.1vw;
overflow: hidden;
white-space: nowrap;
.dibu{
width: 100%;
height: 10vw;
display: flex;
justify-content: space-around;
align-items: center;
>view{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text{
font-size: 1.4vw;
color: #555555;
}
view{
font-size: 2.1vw;
color: #555555;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
text{
font-size: 1.6vw;
font-weight: 600;
}
}
}
}
.carditem {
height: 13vw;
display: flex;
transition: transform 500ms cubic-bezier(.2, .8, .2, 1);
will-change: transform;
width: 59vw;
.add {
width: 6.5vw;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
>view {
width: 5.5vw;
height: 2.2vw;
background: #fff;
border-radius: 0.9vw;
border: 1px solid #1083F8;
font-weight: 400;
font-size: 1.4vw;
color: #1083F8;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 2.3vw;
right: 0.8vw;
}
image {
width: 2.5vw;
height: 2.5vw;
}
}
.msitem {
width: 38vw;
margin-left: 2vw;
>view {
&:nth-child(2),
&:nth-child(3),
&:nth-child(4),
&:nth-child(6),
&:nth-child(5) {
margin-top: 1.25vw;
max-width: 25vw;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
text {
font-weight: 400;
font-size: 1.3vw;
color: #777777;
margin-top: 0.25vw;
}
}
&:nth-child(1) {
display: flex;
justify-content: space-between;
align-items: center;
height: 2vw;
margin-top:2.4vw;
>view {
width: 100%;
height: 2vw;
font-weight: bold;
font-size: 1.8vw;
color: #222222;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
text {
width: 6vw;
font-weight: 300;
font-size: 1.4vw;
color: #222222;
}
}
}
}
.speitem {
width: 16.8vw;
height: 14vw;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.cardp {
width: 12.5vw;
height: 4vw;
display: flex;
flex-wrap: wrap;
margin: 0 auto;
align-items: center;
view {
min-width: 5.5vw;
height: 1.8vw;
border-radius: 0.9vw;
border: 1px solid #D2D2D2;
margin: 0.5vw 0 0 0.5vw;
display: flex;
justify-content: center;
align-items: center;
font-weight: 400;
font-size: 1vw;
color: #555555;
padding: 0 0.25vw;
&:nth-child(1),
&:nth-child(2) {
max-width: 6vw;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
line-height: 1.8vw;
text-align: center;
}
&:nth-child(3) {
max-width: 11.5vw;
padding: 0 0.8vw;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
line-height: 1.8vw;
text-align: center;
}
}
}
.imghs {
width: 10vw;
height: 9.1vw;
margin: 3vw auto 1.25vw;
padding: 0.2vw;
background: #fff;
border-radius: 1.1vw;
>image {
width: 100%;
height: 100%;
border-radius: 1.1vw;
}
}
}
}
}
}
}
.cont{
width: 100%;
height: 60.4vw;
position: relative;
.gys{
width: 100%;
text-align: right;
position: absolute;
right: 3.2vw;
bottom: 3.2vw;
font-size: 1.4vw;
color: #555555;
}
.jiage{
display: flex;
flex-direction: column;
justify-content: space-between;
position: absolute;
align-items: center;
top:0vw;
right:5.9vw;
text{
font-size: 1.3vw;
color: #888888;
}
view{
font-size: 2.3vw;
color: #333333;
font-weight: bold;
>text{
font-size: 1.4vw
}
}
}
.cgdh{
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
height: 3.8vw;
position: relative;
font-size: 1.4vw;
padding:0 2.3vw;
margin: 2.2vw auto 2vw;
.conts{
color: #333333;
text{
font-weight: 500;
}
}
}
.topcon{
width: 100%;
display: flex;
justify-content: space-between;
height: 3.6vw;
padding: 0 2.3vw;
align-items: center;
margin-top: 1.7vw;
.zuofei{
width: 9vw;
height: 3.6vw;
background: #FFFFFF;
border-radius: 1.6vw;
border: 1px solid #DCDCDC;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.3vw;
color: #555555;
image{
width: 1.4vw;
height: 1.4vw;
margin: 0 0.5vw;
}
}
.title{
font-size: 1.7vw;
color: #222222;
display: flex;
align-items: center;
view{
width: 0.5vw;
height: 1.4vw;
background: radial-gradient( 0% 0% at 0% 0%, #006DC9 7.25%, #0385FA 100%), #F7F7F7;
border-radius: 0.2vw;
margin-right: 1vw;
}
}
}
}
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
</style>

View File

@ -0,0 +1,810 @@
<template>
<view class="plsbuy-contain guodu" :class="show?'':'unclass'" :style="showbox?'z-index:999':'z-index:-2'">
<view class="gys">
<view class="tlt">供应商</view>
<view class="gssel" @click="gysflag = true">
<view>
{{gysarr[gysidnum]?.name}}
</view>
<text @click.stop="gysflag = !gysflag">
<image class="guodu" :style="gysflag?'transform: rotate(180deg);':''"
:src=" '/static/index/procurement/sj.png' " mode="aspectFill"></image>
</text>
</view>
<view class="tanchu guodu" :class="gysflag?'':'hei0'"
:style="`height: ${(gysarr && gysarr.length*8) || 0}vh`">
<scroll-view scroll-y="true" class="gysscrol" v-if="gysflag">
<view v-for="(v,i) in gysarr" :key='i' :class="gysidnum==i?'acts':''" @click="gysid(i)">
<text class="tab-view">{{ v.name }}</text>
</view>
</scroll-view>
</view>
</view>
<view class="calculator-father">
<view v-for="(item,index) in calculatorArray" :key="index">
<view :class="blueNumber == index ? `calculator-kuai-target` : ``" class="calculator-kuai"
style="font-size: 33rpx;" v-if="item==`AC`" @click="clickKuai(item,index)">
清零
</view>
<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>
</view>
<view :class="blueNumber == index ? `calculator-kuai-target` : ``" class="calculator-kuai" v-else
@click="clickKuai(item,index)">
{{item}}
</view>
</view>
</view>
<view class="tlt" style="width: 96%;margin-top: 30rpx;margin-bottom: 10rpx;">采购数量 <text style="color: red;"
v-if="sx==true">超过库存上限</text></view>
<!-- <view class="qinggou-font">
采购数量 <text style="color: red;" v-if="sx==true">超过库存上限</text>
</view> -->
<view class="stringShow-father">
<view class="jj" @click="jjnum(-1)" @touchstart="clickstart(-1)" @touchend="handleTouchEnd">
-
</view>
<view class="stringShow-kuai">
<view v-for="(item,index) in stringShow" :key="index" :style="sx==true?'color: red':''">
{{item}}
</view>
</view>
<view class="jj" :style="sx==true?'background:#f8f8f8':''" @click="jjnum(1)" @touchstart="clickstart(1)"
@touchend="handleTouchEnd">
+
</view>
</view>
<view class="cgdw">
<view class="leftr" @click.stop="cgdwflag = !cgdwflag,cgdwec = false">
<view>{{type.unit}}</view>
<text>
<image class="guodu" :style="!cgdwflag?'transform: rotate(180deg);':''"
:src=" '/static/index/procurement/sj.png' " mode="aspectFill"></image>
</text>
</view>
<!-- <view class="tz" @click="cgdwflag=!cgdwflag">调整</view> -->
<view class="dwdw guodu" :class="cgdwflag?'':'hei0'"
:style="`height: ${(cgdwarr && cgdwarr.length*8) || 0}vh`">
<view class="gysscrol guodu" v-if="cgdwec" :class="cgdwflag?'':'hei0'">
<view v-for="(v,i) in cgdwarr" :key='i' :class="type.multiUnitType==v.multiUnitType?'acts':''"
@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>
<!-- <image src="/static/index/procurement/d.png" mode="aspectFill"></image> -->
</view>
</view>
</view>
</view>
<view class="plsbuy-bottom">
<view class="quxiao" @click="colse">
取消
</view>
<view class="plsbuy-bottom-blue" @click="closeIt">
确定
</view>
</view>
<view class="mengban" v-if="cgdwflag||gysflag" @click="gysflag = false;cgdwflag = false;cgdwec = false;"></view>
</view>
</template>
<script setup lang="ts">
import {
ref,
onMounted,
onBeforeUnmount,
computed,
nextTick,
watch
} from 'vue';
const emit = defineEmits(['right', 'colse', 'jjnum'])
const blueNumber = ref(-1);
const gysflag = ref(false)
const cgdwflag = ref(false)
const sx = ref(false)
const type = ref({})
const downslength = ref(0);
const gysarr = ref([])
const cgdwarr = ref([])
const gysidnum = ref(0)
const props = defineProps({
show: {
type: Boolean,
default: false
},
caigouobj: {
type: Object,
required: true,
}
});
// 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)
// }
// }
// )
const cgdwec = ref(false)
const showbox = ref(false)
watch(() => cgdwflag.value,
() => {
if (cgdwflag.value == true) {
setTimeout(() => {
cgdwec.value = true
}, 200)
}
})
// watch(
// () => props.show,
// () => {
// if (props.show) {
// let a = [
// {
// multiUnitType: 1,
// price: props.caigouobj.oneUnitPrice,
// unit: props.caigouobj.oneUnit,
// num: props.caigouobj.oneUnitProportion
// },
// {
// multiUnitType: 2,
// price: props.caigouobj.twoUnitPrice,
// unit: props.caigouobj.twoUnit,
// num: props.caigouobj.twoUnitProportion
// },
// {
// multiUnitType: 3,
// price: props.caigouobj.unitPrice ? props.caigouobj.unitPrice : props.caigouobj.referenceUnitPrice,
// unit: props.caigouobj.materialUnits,
// num: 1
// }
// ];
// if (props.caigouobj.wlUnits) {
// type.value = a.find(item =>
// item.unit == props.caigouobj.wlUnits
// );
// } else {
// type.value = a.find(item =>
// item.multiUnitType == props.caigouobj.multiUnitType
// );
// }
// cgdwarr.value = []
// downslength.value = 0;
// a.forEach((element : any) => {
// if (element.unit && element.num) {
// cgdwarr.value.push(element)
// }
// })
// let n = [];
// let id = [];
// gysarr.value = [];
// 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) {
// gysid(i)
// }
// })
// if (props.caigouobj.purchaseQuantity) {
// props.caigouobj.upperLimit = props.caigouobj.wlUpperLimit
// huansuan(props.caigouobj.purchaseQuantity)
// } else {
// jssl()
// }
// setTimeout(() => {
// showbox.value = true;
// }, 50)
// } else {
// gysflag.value = false;
// cgdwflag.value = false;
// cgdwec.value = false;
// type.value = {};
// sx.value = false;
// gysidnum.value = 0;
// isZero.value = false;
// setTimeout(() => {
// showbox.value = false;
// }, 400)
// }
// })
const jssl = () => {
let num = Number(props.caigouobj.upperLimit) - Number(props.caigouobj.kcsl);
let m = Math.floor(num / type.value.num)
huansuan(m);
cy()
}
const huansuan = (m : number) => {
relNumber.value = m;
stringShow.value = toFixed4ByPadStart(relNumber.value);
}
const cy = () => {
let num = Number(props.caigouobj.upperLimit) - Number(props.caigouobj.kcsl);
let bl = relNumber.value * type.value.num
if (bl > num) {
sx.value = true
} else {
sx.value = false
}
}
const cd = (v, i) => {
type.value = v;
cgdwflag.value = false;
cgdwec.value = false;
jssl()
}
const gysid = (e : number) => {
gysidnum.value = e;
gysflag.value = false;
}
const calculatorArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, "AC", 0, "AE"];
const stringShow = ref("0000");
const relNumber = ref(0);
const isZero = ref(false);
const clickKuai = (item : any, index : number) => {
blueNumber.value = index;
setTimeout(() => {
blueNumber.value = -1
}, 300)
if (item == "AC") {
relNumber.value = 0;
stringShow.value = "0000";
cy()
return
}
if (item == "AE") {
relNumber.value = Math.trunc(relNumber.value / 10)
stringShow.value = toFixed4ByPadStart(relNumber.value);
cy()
return
}
if (isZero.value == false) {
isZero.value = true;
relNumber.value = item;
stringShow.value = toFixed4ByPadStart(relNumber.value);
cy()
return
}
if (digitCountByString(relNumber.value) > 3) {
} else {
if (!relNumber.value) {
relNumber.value = item
} else {
relNumber.value = relNumber.value * 10 + item;
}
cy()
stringShow.value = toFixed4ByPadStart(relNumber.value)
}
}
const InteroutId = ref(null)
const handleTouchStart = (e : number) => {
// Interval(e)
}
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
}
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) => {
InteroutId.value = setInterval(() => {
jjnum(e);
}, 120);
}
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;
stringShow.value = toFixed4ByPadStart(relNumber.value)
cy()
// emit('jjnum',e)
}
const closeIt = () => {
if (relNumber.value < 1) {
uni.showToast({
title: '采购数量不能为0',
icon: 'none'
})
return
}
emit('right', relNumber.value, gysarr.value[gysidnum.value], type.value, props.caigouobj)
}
const colse = () => {
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>
.hei0 {
height: 0 !important;
view {
height: 0 !important;
}
}
.unclass {
opacity: 0 !important;
}
.cgdw {
width: 26vw;
display: flex;
height: 3.3vw;
justify-content: space-between;
align-items: center;
margin: 1.2vw 0;
margin-left: 1.1vw;
background: #F3F5F9;
border-radius: 1.1vw;
padding: 0 1vw;
position: relative;
text {
width: 3.3vw;
height: 3.3vw;
display: flex;
justify-content: center;
align-items: center;
image {
width: 1.6vw;
height: 1.6vw;
}
}
.dwdw {
width: 26vw;
// max-height: 21vh;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 0.5vw 0rpx rgba(174, 175, 176, 0.35);
border-radius: 1.1vw;
padding: 0 2vw;
// background-color: red;
position: absolute;
left: 0vw;
bottom: 3.5vw;
z-index: 211;
.gysscrol {
width: 100%;
height: 100%;
// max-height: 21vw;
>.acts {
color: #0385FA !important;
image {
display: block;
}
}
view {
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 400;
font-size: 1.5vw;
color: #666666;
// margin-bottom: 1.2vw;
// padding-right: 1.5vw;
height: 8vh;
position: relative;
white-space: nowrap;
text {
white-space: nowrap;
padding-right: 1vw;
}
&:nth-child(1) {
// margin-top: 1vw;
}
>image {
position: absolute;
right: -0.2vw;
top: 50%;
transform: translateY(-50%);
width: 1vw !important;
height: 0.7vw !important;
display: none;
}
}
}
}
.tz {
width: 7vw;
height: 3.3vw;
background: rgba(255, 255, 255, 0.6);
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;
}
.leftr {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
white-space: nowrap;
height: 3.3vw;
padding: 0 1vw;
view {
width: 8.6vw;
font-weight: 400;
font-size: 1.6vw;
color: #555555;
}
text {
font-weight: 400;
font-size: 1.4vw;
color: #888888;
}
}
}
.gys {
width: 100%;
height: 7vw;
position: relative;
margin-top: 0.5vw;
>.tanchu {
width: 26vw;
// max-height: 35vh;
box-shadow: 0rpx 0rpx 0.5vw 0rpx rgba(174, 175, 176, 0.35);
border-radius: 1.1vw;
padding: 0 1vw;
position: absolute;
left: 4vw;
top: 6.5vw;
z-index: 211;
background-color: #fff;
.gysscrol {
width: 100%;
height: 100%;
.acts {
color: #0385FA !important;
image {
display: block;
}
}
view {
display: flex;
align-items: center;
font-weight: 400;
font-size: 1.5vw;
color: #666666;
// height: 8vh;
position: relative;
// padding: 0 30rpx;
margin: 20rpx 0;
image {
position: absolute;
right: 0.2vw;
top: 50%;
transform: translateY(-50%);
width: 1vw !important;
height: 0.7vw !important;
display: none;
}
}
}
}
.gssel {
width: 27vw;
display: flex;
height: 3.3vw;
justify-content: space-between;
align-items: center;
margin: 0.8vw auto 0;
background: #F3F5F9;
border-radius: 1.1vw;
padding: 0 1vw;
margin-bottom: 10rpx;
text {
width: 3.3vw;
height: 3.3vw;
display: flex;
justify-content: center;
align-items: center;
image {
width: 1.6vw;
height: 1.6vw;
}
}
view {
width: 22vw;
height: 3.3vw;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-weight: 400;
font-size: 1.5vw;
color: #555555;
line-height: 3.3vw;
}
}
}
.plsbuy-contain {
display: flex;
align-items: center;
flex-direction: column;
width: 33vw;
height: 91vh;
background: rgba(250, 251, 252, 1);
overflow: hidden;
box-shadow: 0rpx 0rpx 1.6vw 0rpx rgba(136, 141, 153, 0.28);
border-radius: 2.2vw;
top: 50%;
transform: translateY(-50%);
right: 32vw;
position: fixed;
padding: 1.5vw 0vw;
}
.plsbuy-bottom {
width: 90%;
margin-top: 0.5vw;
height: 7vw;
display: flex;
justify-content: flex-end;
font-size: 35rpx;
view {
display: flex;
justify-content: center;
align-items: center;
width: 9vw;
height: 3.8vw;
color: rgba(92, 121, 146, 1);
border-radius: 1.9vw;
font-size: 1.8vw;
border: 1px solid #EDEDEF;
margin-left: 1vw;
}
.quxiao {
width: 160rpx;
height: 75rpx;
background-color: #ebeced;
color: #888888;
display: flex;
justify-content: center;
align-items: center;
font-size: 30rpx;
border-radius: 40rpx;
}
.plsbuy-bottom-blue {
width: 160rpx;
height: 75rpx;
color: #0385FA;
display: flex;
justify-content: center;
align-items: center;
font-size: 30rpx;
border-radius: 40rpx;
border: 1rpx solid #0385FA;
background: linear-gradient(to bottom, #E9F4FF, #CAE0F9);
margin: 0 40rpx;
}
}
.calculator-father {
width: 25vw;
height: 45vh;
margin-left: -20rpx;
// margin: 0 auto 0;
flex-wrap: wrap;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
padding-left: 29rpx;
.calculator-kuai {
display: flex;
justify-content: center;
align-items: center;
background-size: 100% 100%;
font-size: 42rpx;
font-weight: 500;
margin: 25rpx 25rpx 0 0;
width: 7vw;
height: 5.5vw;
background-color: #F3F5F9;
border-radius: 40rpx;
}
.calculator-kuai:active {
background: linear-gradient(to bottom, #019cef, #0084fa);
color: #fff;
font-size: 42rpx;
font-weight: 500;
border-radius: 40rpx;
}
}
.stringShow-father {
width: 100%;
height: 7vw;
margin-top: 0.5vw;
display: flex;
align-items: center;
justify-content: center;
margin-left: 0.8vw;
.jj {
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;
}
.jj:active {
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;
}
.stringShow-kuai {
display: flex;
align-items: center;
width: 14vw;
height: 5vw;
background: #F3F5F9;
border-radius: 1vw;
border: 1px solid #CBCFD0;
justify-content: space-around;
padding: 0 1vw;
// box-shadow: 0rpx 0.1vw 0.3vw 0rpx rgba(140, 143, 153, 0.17) inset;
view {
display: flex;
justify-content: center;
align-items: center;
font-size: 42rpx;
font-weight: 500;
width: 2.5vw;
height: 5vw;
}
}
}
.qinggou-font {
font-size: 27rpx;
font-weight: 500;
margin: 0.8vw auto 0;
}
.mengban {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 210;
background: RGBA(239, 240, 244, 0);
}
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
.tab-view {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
word-break: break-word;
}
.tlt {
font-weight: bold;
font-size: 34rpx;
color: #333333;
padding-left: 3vw;
font-weight: 400;
margin-bottom: 30rpx;
}
</style>

View File

@ -17,7 +17,7 @@
<image src="/static/index/purchaseorder/selecttarget.png" mode="aspectFill" class="shr"></image>
筛选
</view>
<view class="shx guodu" >
<view class="shx guodu" @click="open = 2;cont = '是否清空购物车中所有物料?'">
<!-- <image src="/static/index/purchaseorder/cg.png" mode="aspectFill" class="sh"></image> -->
<image src="/static/index/procurement/del1.png" mode="aspectFill" class="sh"></image>
<image src="/static/index/procurement/del1.png" mode="aspectFill" class="shr"></image>
@ -122,9 +122,9 @@
</view>
<view class="zkadd guodu" >
<view @click.stop="addcar(v,index)" @touchend.stop>编辑</view>
<view @click.stop="del(v,index)" v-if="v.isAdd!=1" @touchend.stop>
<view @click.stop="open = 1;cont = '确认将该物料从购物车中移除吗?'" @touchend.stop>
<view>
</view>
</view>
</view>
@ -142,6 +142,7 @@
<view class="fiedrightview">
<image src="/static/index/purchaseorder/cg.png" mode="aspectFill"></image>
</view>
<tanchuang :show="open>0" :font="cont" @back="open = 0" @right="del()"> </tanchuang>
</view>
</template>
@ -157,6 +158,8 @@
const InvoicingList = ref([{},{},{},{},{},])
const ification = ref(false)
const carnum = ref(2)
const open = ref(0)
const cont = ref('')
const form = reactive({
nuId: uni.getStorageSync('nuId'),
@ -169,6 +172,9 @@
isWaring: 0,
suppliers: ''
})
const del = () =>{
console.log(open.value)
}
const startX = ref(0)
const openwhitchindex = ref(-1)
const ts = (e) => {
@ -478,7 +484,7 @@
&:nth-child(6) {
width: 30vw;
display: flex;
margin-top: 1.1vw;
margin-top: 0.6vw;
.three-one {
width: 33%;

View File

@ -1,10 +1,34 @@
<template>
<view>
<view class="cont">
<view class="title" @click="clk">
<view></view>
采购单
<view class="gys">
供应商吉林省捌零信创科技有限公司
</view>
<view class="topcon">
<view class="title" @click="clk">
<view></view>
采购单
</view>
<view class="zuofei" v-if="active==2">
<image src="/static/three/zf.png" mode="aspectFill"></image>
作废采购单
</view>
</view>
<view class="cgdh" v-if="active==2">
<view class="cont">
<text>采购单号 </text>101C20251121006
</view>
<view class="cont">
<text>采购日期 </text>2025-10-12
</view>
<view class="jiage">
<view>
<text></text>0.35
</view>
<text>采购价格 </text>
</view>
</view>
<view class="boxcen">
<view class="boxa">
<view class="bianj" v-if="active==1">
@ -51,7 +75,6 @@
<text>拣货</text>
</view>
</view>
</view>
</view>
</template>
@ -71,12 +94,62 @@
<style lang="less" scoped>
.cont{
width: 100%;
height: 100%;
height: 60.4vw;
padding: 1.7vw 2.3vw;
position: relative;
.gys{
width: 100%;
text-align: right;
position: absolute;
right: 3.2vw;
bottom: 3.2vw;
font-size: 1.4vw;
color: #555555;
}
.jiage{
display: flex;
flex-direction: column;
justify-content: space-between;
position: absolute;
align-items: center;
top:1.5vw;
right: 0;
text{
font-size: 1.3vw;
color: #888888;
}
view{
font-size: 2.3vw;
color: #333333;
font-weight: bold;
>text{
font-size: 1.4vw
}
}
}
.cgdh{
width: 55vw;
display: flex;
flex-direction: column;
justify-content: space-between;
height: 3.8vw;
position: relative;
font-size: 1.4vw;
.cont{
color: #333333;
text{
font-weight: 500;
}
}
}
.boxcen{
width: 50vw;
height: 20vw;
margin: 18vw auto 0;
// margin: 18vw auto 0;
position: absolute;
top: 18vw;
left:6.25vw;
display: flex;
justify-content: space-around;
align-items: center;
@ -160,6 +233,29 @@
}
}
}
.topcon{
width: 100%;
display: flex;
justify-content: space-between;
height: 3.5vw;
.zuofei{
width: 11vw;
height: 3.6vw;
background: #FFFFFF;
border-radius: 1.6vw;
border: 1px solid rgba(16, 131, 248,0.5);
display: flex;
justify-content: center;
align-items: center;
font-size: 1.3vw;
color: #555555;
image{
width: 1.4vw;
height: 1.4vw;
margin: 0 0.5vw;
}
}
}
.title{
font-size: 1.7vw;
color: #222222;

View File

@ -101,6 +101,7 @@
</view>
</view>
</view>
</view>
</template>

View File

@ -177,6 +177,7 @@
<contright @link="link" v-if="rightcat==0"></contright>
<procurement @link="link" v-if="rightcat==1"></procurement>
<carlist @link="link" v-if="rightcat==2"></carlist>
<caigoudan @link="link" v-if="lefttarget>=0" style="z-index: 9999;"></caigoudan>
</view>
</view>
</view>
@ -187,8 +188,12 @@
import contright from './component/contright.vue';
import procurement from './component/procurement.vue';
import carlist from './component/carlist.vue';
import caigoudan from './component/caigoudan.vue';
const transition = ref(false)
const leftscrolltop = ref(0)
const lefttarget = ref(-1)
const tagsarray = ref(["全部", "待确认", "待完结", "待付款", "已完成"])
const selectType = ref(0)
@ -197,12 +202,16 @@
const rightcat = ref(0)
const link = (e)=>{
console.log(e)
rightcat.value = e
rightcat.value = e;
lefttarget.value =-1;
}
const clickLeftMenu =(e)=>{
lefttarget.value = e;
rightcat.value = -1;
}
const changetype = (index : number) => {
if ((selectType.value == index) && index) {
@ -273,7 +282,6 @@
}, 500)
}
const plsbuy = ref([{cgdType:9},{},{}])
const lefttarget = ref(0)
const basePath = '/static/index/procurement/' //
const imgNormal = basePath + 'sh.png'
const imgActive = basePath + 'shr.png'

BIN
static/three/zf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB