仓库更新

This commit is contained in:
wangweidong 2025-10-31 16:49:27 +08:00
parent 472ce41cc0
commit 07b97d027a
3 changed files with 317 additions and 807 deletions

View File

@ -137,12 +137,14 @@
<view class="typeitem"> <view class="typeitem">
<view class="toptype"> <view class="toptype">
<view v-for="v in ['三','二','一']">{{v+'级分类'}}</view> <!-- <view v-for="v in ['三','二','一']">{{v+'级分类'}}</view> -->
<view :class="scroll.act3==-1?'act':''" @click="typescroll(3,-1,{})" >全部</view>
<view :class="scroll.act2==-1?'act':''" @click="typescroll(2,-1,{})" >全部</view>
<view :class="scroll.act1==-1?'act':''" @click="typescroll(1,-1,{})" >全部</view>
</view> </view>
<view class="scroltype"> <view class="scroltype">
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop3" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop3"
class="scroll-Y scrl3"> class="scroll-Y scrl3">
<view :class="scroll.act3==-1?'act':''" @click="typescroll(3,-1,{})" >全部</view>
<view :class="scroll.act3==i?'act':''" <view :class="scroll.act3==i?'act':''"
v-for="(v,i) in TreeData[scroll.act1]?.children[scroll.act2]?.children" v-for="(v,i) in TreeData[scroll.act1]?.children[scroll.act2]?.children"
@click="typescroll(3,i,v)"> @click="typescroll(3,i,v)">
@ -152,7 +154,6 @@
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop2" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop2"
class="scroll-Y scrl2"> class="scroll-Y scrl2">
<view :class="scroll.act2==-1?'act':''" @click="typescroll(2,-1,{})" >全部</view>
<view :class="scroll.act2==i?'act':''" v-for="(v,i) in TreeData[scroll.act1]?.children" <view :class="scroll.act2==i?'act':''" v-for="(v,i) in TreeData[scroll.act1]?.children"
@click="typescroll(2,i,v)"> @click="typescroll(2,i,v)">
{{v.title}} {{v.title}}
@ -161,7 +162,6 @@
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop1" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop1"
class="scroll-Y scrl1"> class="scroll-Y scrl1">
<view :class="scroll.act1==-1?'act':''" @click="typescroll(1,-1,{})" >全部</view>
<view :class="scroll.act1==i?'act':''" v-for="(v,i) in TreeData" @click="typescroll(1,i,v)"> <view :class="scroll.act1==i?'act':''" v-for="(v,i) in TreeData" @click="typescroll(1,i,v)">
<image :src="serverUrl + v.appCheckIconPath" mode="aspectFill" v-if="scroll.act1==i"> <image :src="serverUrl + v.appCheckIconPath" mode="aspectFill" v-if="scroll.act1==i">
</image> </image>
@ -247,73 +247,39 @@
<view class="mengban" v-if="cgd" @click="qingkong"></view> <view class="mengban" v-if="cgd" @click="qingkong"></view>
<view class="caigoudan guodu" :class="cgd?'':'uncgd'"> <view class="caigoudan guodu" :class="cgd?'':'uncgd'">
<view class="title">采购单</view> <view class="title"><view></view>采购单</view>
<scroll-view scroll-y="true" class="cgdscroll"> <scroll-view scroll-y="true" class="cgdscroll" scroll-with-animation >
<view class="cardcd" v-for="(v,i) in generatedOrder" :key='i'> <view class="cardcd" v-for="(v,i) in generatedOrder" :key='i'>
<view class="gys">供应商:{{v.gysName}}</view> <view class="cgdh brtop">
<view class="cgdh"> <view>采购单号<text>{{v.cgdNo}}</text></view>
<view>采购单号:{{v.cgdNo}}</view>
<view>采购人:{{v.qgBy}} </view>
<view>采购金额<text>{{v.totalPrice}}</text></view> <view>采购金额<text>{{v.totalPrice}}</text></view>
</view> </view>
<view class="cgdh">
<view class="boxitem" v-for="(f,l) in v.cgdInfoList" :key='i' > <view>采购人{{v.qgBy}} </view>
<view>{{f.wlName}}</view> <view>采购日期{{v.qgDate}}</view>
<view style="white-space: nowrap;">规格型号{{f.wlSpecificationModel}}</view> <view>供应商{{v.gysName}}</view>
<view>采购单位{{f.wlUnits}}</view> </view>
<view>库存数量{{f.kcsl}}</view> <view class="fler">
<view> <view class="boxitem" v-for="(f,l) in v.cgdInfoList" :key='i' >
<view class="carditem" :class="{'hl':f.tagType==1,'yl':f.tagType==2,'bj':f.tagType>2}"> <view>{{f.wlName}}</view>
<image src="/static/index/warehouse/procurement/hl.png" mode="aspectFill" <view>物料编码{{f.wlMaterialNo}}</view>
v-if="f.tagType==1"></image> <view style="white-space: nowrap;">规格型号{{f.wlSpecificationModel}}</view>
<image src="/static/index/warehouse/procurement/yl.png" mode="aspectFill" <view>采购单位{{f.wlUnits}}</view>
v-if="f.tagType==2"></image> <view class="kcsl">
<image src="/static/index/warehouse/procurement/bj.png" mode="aspectFill" <text>{{f.kcsl}}</text>
v-if="f.tagType>2"></image> <text>库存数量</text>
{{f.tagName}} </view>
</view>
<view class="znk"> <view class="dbgys">
<image <view>采购数量<text>{{f.purchaseQuantity}}</text></view>
:src="f.materialImg?serverUrl + f.materialImg : '/static/index/warehouse/procurement/k.png'" <view>采购金额<text>{{f.procurementPrice}}</text></view>
mode="aspectFill"></image>
</view>
</view>
<view class="dbgys">
<view style="width: 100%;">
<view style="width: 100%;justify-content: space-between;">
<view style="width: 50%;">采购数量<text>{{f.purchaseQuantity}}</text></view>
<view style="width: 50%;justify-content: flex-end;">采购金额<text>{{f.procurementPrice}}</text></view>
</view>
<view style="width: 100%;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;height: 1.2vw;display: block;">供应商{{f.suppliersName}}</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view class="tj">
<text @click="connfig">确定</text>
</view>
</view> </view>
<!-- <view class="mengban" v-if="tost" @click="qingkong"></view> -->
<!-- <view class="toast guodu" v-if="tost" >
<view class="tit">提示</view>
<view class="xunw" v-if="anmidex==4">
是否删除
</view>
<view class="xunw" v-if="anmidex==5">
是否清空所有物料
</view>
<view class="cont" v-if="anmidex==4">
<view v-for="(v,i) in delstr" :key='i' >{{i+1}}{{v}} <br></view>
</view>
<view class="cfg">
<view @click="qingkong">取消</view>
<view @click="del(4)" v-if="anmidex==4">确认</view>
<view @click="del(5)" v-if="anmidex==5">确认</view>
</view>
</view> -->
<equiment :open="tost" @configdel="config" :propsmove="propsmove" @del="del(anmidex)" :content="anmidex==3?'确定要删除此物料吗?':'是否清空购物车?'"></equiment> <equiment :open="tost" @configdel="config" :propsmove="propsmove" @del="del(anmidex)" :content="anmidex==3?'确定要删除此物料吗?':'是否清空购物车?'"></equiment>
</view> </view>
</template> </template>
@ -484,9 +450,7 @@
}) })
} }
const getMaterial = () => { const getMaterial = () => {
getGwcMaterialTreeData(form).then(res => { getGwcMaterialTreeData(form).then(res => {
TreeData.value = res.result TreeData.value = res.result
}) })
} }
@ -517,6 +481,7 @@
} }
scrollnum.value = e.detail.scrollTop; scrollnum.value = e.detail.scrollTop;
} }
const queryInvo = () => { const queryInvo = () => {
queryShoppingCartList(form).then(res => { queryShoppingCartList(form).then(res => {
res.result.records.forEach((item,i)=>{ res.result.records.forEach((item,i)=>{
@ -530,6 +495,20 @@
} }
const propsmove = ref(-1) const propsmove = ref(-1)
const movecard = (type : number, l : number) => { const movecard = (type : number, l : number) => {
if(cgd.value == true){
switch (type){
case 4:
connfig()
break;
case 5:
qingkong()
break;
default:
break;
}
return
}
if(tost.value == true){ if(tost.value == true){
propsmove.value = type; propsmove.value = type;
return return
@ -924,207 +903,154 @@
bottom: -96vh !important; bottom: -96vh !important;
} }
.caigoudan{ .caigoudan{
width: 50vw; width: 47.6vw;
height: 95vh; height: 95vh;
background: #FFFFFF; background: #FFFFFF;
border-radius: 1.6vw; border-radius: 1.6vw;
position: fixed; position: fixed;
z-index: 104; z-index: 104;
bottom: 1.5vw; bottom: 1.5vw;
left: 22vw; left: 26vw;
padding:1.5vw 2vw 0; padding:0.5vw 1vw 0;
.cgdscroll{ .cgdscroll{
width: 100%; width: 100%;
height: calc(95vh - 7vw); height: calc(95vh - 4.5vw);
.cardcd{ .cardcd{
>.boxitem {
.fler{
display: grid;
grid-template-columns: 1fr 1fr;
}
.boxitem {
width: 22vw; width: 22vw;
height: 19.3vw; height: 14vw;
background: rgba(255, 255, 255, .7); background: rgba(192, 192, 192, 0.14);
border-radius: 1.6vw; border-radius: 1.6vw;
margin: 0 1vw 1.2vw 0; margin: 0 1vw 1.2vw 0;
border: 2px dashed #fff;
display: inline-block; display: inline-block;
padding:1.5vw 2.3vw 2.3vw; padding:1vw 1.6vw 0;
position: relative; position: relative;
border: 2px solid rgba(187,187,187,0.34); .kcsl{
position: absolute;
width: 4vw;
top: 1.5vw;
right: 1.7vw;
display: flex;
flex-direction: column;
align-items: flex-end;
text{
&:nth-child(1){
font-weight: bold;
font-size: 1.8vw;
color: #555555;
}
&:nth-child(2){
font-weight: 400;
font-size: 1vw;
color: #999999;
}
}
}
.dbgys{ .dbgys{
width: 100%; width: 100%;
height: 4.3vw; height: 3.6vw;
position: absolute; position: absolute;
left: 0; left: 0;
bottom: 0vw; bottom: 0vw;
background: rgba(239, 240, 244, 1); background: #f7f7fa;
border-radius:0 0 1.6vw 1.6vw; border-radius:0 0 1.6vw 1.6vw;
border: 2px solid rgba(239, 240, 244, 1); border: 2px solid rgba(239, 240, 244, 1);
padding: 0.4vw 1.5vw 0;
display: flex; display: flex;
padding: 0.6vw 1.5vw 0;
justify-content: space-between; justify-content: space-between;
align-items: center;
.act{ .act{
background: rgba(231, 240, 251, 1) !important; background: rgba(231, 240, 251, 1) !important;
border: 1px solid rgba(0, 118, 214, 1) !important; border: 1px solid rgba(0, 118, 214, 1) !important;
} }
>view{ >view{
white-space: nowrap; font-weight: 400;
&:nth-child(1){ font-size: 1vw;
display: flex; color: #888888;
flex-direction: column;
font-weight: 400; view{
font-size: 1vw; width:15vw;
color: #888888; height:1.9vw;
view{ white-space: nowrap;
display: flex; overflow: hidden;
align-items: center; text-overflow: ellipsis;
} }
text{ text{
font-weight: bold; font-weight: bold;
font-size: 1.4vw; font-size: 1.4vw;
color: #555555; color: #555555;
} }
}
} }
} }
>view { >view {
.hl {
color: #0385FA;
background: #E7F0FB;
}
.yl {
background: #DCF6F3;
color: #00C6A9;
}
.bj {
background: #E9EBFC;
color: #727BFF;
}
&:nth-child(1) { &:nth-child(1) {
font-weight: bold; font-weight: bold;
font-size: 1.5vw; font-size: 1.4vw;
color: #333; color: #333;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
width: 100%; width: 100%;
text-overflow: ellipsis; text-overflow: ellipsis;
max-width: 15vw;
} }
&:nth-child(2) { &:nth-child(2) {
font-weight: 400; font-weight: 400;
font-size: 1.2vw; font-size: 1.1vw;
color: #555555; color: #555555;
margin-top: .6vw; margin-top: .6vw;
} }
&:nth-child(3) ,&:nth-child(4) { &:nth-child(3) ,&:nth-child(4) {
font-weight: 400; font-weight: 400;
font-size: 1.2vw; font-size: 1.1vw;
color: #666666; color: #666666;
margin-top: .6vw; margin-top: .2vw;
} }
&:nth-child(5) {
width: 100%;
height: 7vw;
}
.znk {
width: 8vw;
height: 7vw;
position: absolute;
right: 1vw;
bottom: 4.3vw;
image {
width: 100%;
height: 100%;
}
}
.carditem {
width: 5.8vw;
height: 2.1vw;
border-radius: 1.0vw;
display: flex;
justify-content: center;
align-items: center;
font-weight: 400;
font-size: .9vw;
margin-top: .8vw;
image {
width: 1.4vw;
height: 1.4vw;
}
}
} }
} }
.cgdh{ .cgdh{
width: 100%; width: 100%;
height: 4.3vw; height: 2.5vw;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
color: #333333; color: #333333;
font-weight: bold;
view{ view{
font-size: 1.1vw; font-size: 1.1vw;
} }
text{ text{
font-size: 1.4vw; font-size: 1.2vw;
font-weight: bold;
} }
} }
.gys{
width: 100%;
height: 2vw;
background:rgba(238, 238, 238, 0.5);
text-align: right;
font-weight: 400;
font-size: 1.1vw;
color: #666666;
padding-right: 0.8vw;
line-height: 2vw;
}
}
}
.tj {
width: 100%;
height: 3.5vw;
display: flex;
justify-content: flex-end;
align-items: center;
>text {
&:nth-child(1) {
width: 5.2vw;
height: 2.2vw;
display: inline-block;
text-align: center;
line-height: 2.2vw;
font-weight: 400;
font-size: 1vw;
color: #5C7992;
background: linear-gradient(-61deg, #EAF5FF, #CBE7FF) !important;
border-radius: 1.1vw;
}
} }
} }
.title{ .title{
height: 2vw; height: 4vw;
font-weight: 400; font-weight: 400;
font-size: 1.4vw; font-size: 1.4vw;
color: #333333; color: #333333;
border-bottom: 1px solid #DCDCDC;
display: flex;
align-items: center;
view{
width: 0.5vw;
height: 1.4vw;
background: linear-gradient(-69deg, #006DC9, #0385FA);
border-radius: 0.25vw;
margin-right: 0.7vw;
}
} }
@ -1276,12 +1202,12 @@
padding: 0vw 1vw 0; padding: 0vw 1vw 0;
.rights { .rights {
width: 27vw; width: 24.5vw;
height: calc(100% - 4vw); height: calc(100% - 4vw);
margin-top: 4vw; margin-top: 4vw;
.serchs { .serchs {
width: 27vw; width: 100%;
height: 3.2vw; height: 3.2vw;
background: rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .5);
border-radius: 1.6vw; border-radius: 1.6vw;
@ -1333,7 +1259,7 @@
flex-wrap: wrap; flex-wrap: wrap;
>view { >view {
width: 8.5vw; width: 7.8vw;
height: 3.7vw; height: 3.7vw;
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -1342,11 +1268,12 @@
font-size: 1.3vw; font-size: 1.3vw;
color: #212327; color: #212327;
background: #FFFFFF; background: #FFFFFF;
margin: 0.25vw 0.5vw 0 0; margin: 0.25vw 0.3vw 0 0;
border-radius: 1.6vw; border-radius: 1.6vw;
view { view {
margin-right: .4vw; display: flex;
justify-content: center;
align-items: center;
image { image {
width: 2vw; width: 2vw;
height: 2vw; height: 2vw;
@ -1421,33 +1348,36 @@
} }
} }
.toptype { >.toptype {
width: 100%; width: 100%;
height: 2vw; height: 2vw;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
margin: .4vw 0 .4vw 0; margin: .4vw 0 .4vw 0;
.act {
view { background: rgba(255, 255, 255, 1) !important;
font-weight: 600;
color: #0385FA !important;
}
>view {
width: 7vw; width: 7vw;
height: 1.9vw; height: 1.9vw;
border-radius: 1vw; border-radius: 1vw;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background: rgba(255, 255, 255, .5);
border:1px solid rgba(255, 255, 255, .5);
font-weight: 400; font-weight: 400;
font-size: 1vw; font-size: 1.2vw;
color: #333333; color: #333333;
margin-left: -1.5vw; padding: 0;
&:nth-child(1){
margin-left: -1vw;
}
} }
} }
} }
.shitem { .shitem {
width: 27vw; width: 100%;
height: 6.8vw; height: 6.8vw;
background: #E8E9ED; background: #E8E9ED;
border-radius: 1.6vw; border-radius: 1.6vw;
@ -1537,7 +1467,7 @@
} }
.lefts { .lefts {
width: 70vw; width: 72.5vw;
margin-left: 1vw; margin-left: 1vw;
height: calc(100%); height: calc(100%);
position: relative; position: relative;
@ -1561,7 +1491,7 @@
} }
.boxitem { .boxitem {
width: 22vw; width: 22.5vw;
height: 14.3vw; height: 14.3vw;
background: rgba(255, 255, 255, .7); background: rgba(255, 255, 255, .7);
border-radius: 1.6vw; border-radius: 1.6vw;
@ -1788,7 +1718,7 @@
} }
.leftr { .leftr {
width: 70vw; width: 72.5vw;
margin-left: 1vw; margin-left: 1vw;
height: calc(100%); height: calc(100%);
position: relative; position: relative;
@ -2014,7 +1944,7 @@
.ksfw{ .ksfw{
width: 27vw; width: 100%;
height: 13.6vw; height: 13.6vw;
background: rgba(255, 255, 255, 0.6); background: rgba(255, 255, 255, 0.6);
border-radius: 1vw; border-radius: 1vw;

View File

@ -122,12 +122,14 @@
</view> </view>
<view class="typeitem"> <view class="typeitem">
<view class="toptype"> <view class="toptype">
<view v-for="v in ['三','二','一']">{{v+'级分类'}}</view> <!-- <view v-for="v in ['三','二','一']">{{v+'级分类'}}</view> -->
<view :class="scroll.act3==-1?'act':''" @click="typescroll(3,-1,{})" >全部</view>
<view :class="scroll.act2==-1?'act':''" @click="typescroll(2,-1,{})" >全部</view>
<view :class="scroll.act1==-1?'act':''" @click="typescroll(1,-1,{})" >全部</view>
</view> </view>
<view class="scroltype"> <view class="scroltype">
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop3" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop3"
class="scroll-Y scrl3"> class="scroll-Y scrl3">
<view :class="scroll.act3==-1?'act':''" @click="typescroll(3,-1,{})" >全部</view>
<view :class="scroll.act3==i?'act':''" <view :class="scroll.act3==i?'act':''"
v-for="(v,i) in TreeData[scroll.act1]?.children[scroll.act2]?.children" v-for="(v,i) in TreeData[scroll.act1]?.children[scroll.act2]?.children"
@click="typescroll(3,i,v)"> @click="typescroll(3,i,v)">
@ -137,7 +139,6 @@
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop2" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop2"
class="scroll-Y scrl2"> class="scroll-Y scrl2">
<view :class="scroll.act2==-1?'act':''" @click="typescroll(2,-1,{})" >全部</view>
<view :class="scroll.act2==i?'act':''" v-for="(v,i) in TreeData[scroll.act1]?.children" <view :class="scroll.act2==i?'act':''" v-for="(v,i) in TreeData[scroll.act1]?.children"
@click="typescroll(2,i,v)"> @click="typescroll(2,i,v)">
{{v.title}} {{v.title}}
@ -146,7 +147,6 @@
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop1" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop1"
class="scroll-Y scrl1"> class="scroll-Y scrl1">
<view :class="scroll.act1==-1?'act':''" @click="typescroll(1,-1,{})" >全部</view>
<view :class="scroll.act1==i?'act':''" v-for="(v,i) in TreeData" @click="typescroll(1,i,v)"> <view :class="scroll.act1==i?'act':''" v-for="(v,i) in TreeData" @click="typescroll(1,i,v)">
<image :src="serverUrl + v.appCheckIconPath" mode="aspectFill" v-if="scroll.act1==i"> <image :src="serverUrl + v.appCheckIconPath" mode="aspectFill" v-if="scroll.act1==i">
</image> </image>
@ -266,13 +266,13 @@
</view> </view>
<view> <view>
<text>采购数量</text> <text>采购数量</text>
<view class="jj" @click="jjnum(-1)" @touchstart="handleTouchStart(-1)" @touchend="handleTouchEnd"> <view class="jj" @click="jjnum(-1)" @longpress="handleTouchStart(-1)" @touchend="handleTouchEnd">
- -
</view> </view>
<view class="num" @click="colse"> <view class="num" @click="colse">
{{caigouobj.Limitnum}} {{caigouobj.Limitnum}}
</view> </view>
<view class="jj" @click="jjnum(1)" @touchstart="handleTouchStart(1)" @touchend="handleTouchEnd"> <view class="jj" @click="jjnum(1)" @longpress="handleTouchStart(1)" @touchend="handleTouchEnd">
+ +
</view> </view>
</view> </view>
@ -693,19 +693,13 @@
return `${base}/${prefix}${idx}.${ext}` return `${base}/${prefix}${idx}.${ext}`
}) })
} }
const timeoutId = ref(null)
const InteroutId = ref(null) const InteroutId = ref(null)
const handleTouchStart = (e:number)=> { const handleTouchStart = (e:number)=> {
// timeoutId.value = setTimeout(()=>{ Interval(e)
// Interval(e)
// },1000)
} }
const handleTouchEnd=()=> { const handleTouchEnd=()=> {
//
console.log('清除定时器')
clearInterval(timeoutId.value);
clearInterval(InteroutId.value); clearInterval(InteroutId.value);
//
} }
const Interval = (e:number)=>{ const Interval = (e:number)=>{
InteroutId.value = setInterval(() => { InteroutId.value = setInterval(() => {
@ -1770,23 +1764,30 @@
} }
} }
.toptype { >.toptype {
width: 100%; width: 100%;
height: 2vw; height: 2vw;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
margin: .4vw 0 .4vw 0; margin: .4vw 0 .4vw 0;
.act {
view { background: rgba(255, 255, 255, 1) !important;
font-weight: 600;
color: #0385FA !important;
}
>view {
width: 7vw; width: 7vw;
height: 1.9vw; height: 1.9vw;
border-radius: 1vw; border-radius: 1vw;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background: rgba(255, 255, 255, .5);
border:1px solid rgba(255, 255, 255, .5);
font-weight: 400; font-weight: 400;
font-size: 1.2vw; font-size: 1.2vw;
color: #333333; color: #333333;
padding: 0;
} }
} }
} }

View File

@ -2,14 +2,7 @@
<view> <view>
<!-- 采购 --> <!-- 采购 -->
<view class="box"> <view class="box">
<view class="rel-left"> <view class="rel-left">
<view class="blue-tags">
<view class="blue-shu"></view>
<view class="">
采购单
</view>
</view>
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="leftscrolltop" class="scroll-Y" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="leftscrolltop" class="scroll-Y"
@scrolltolower="plsbuytolower" :lower-threshold="200"> @scrolltolower="plsbuytolower" :lower-threshold="200">
<view class="margin-height"></view> <view class="margin-height"></view>
@ -21,19 +14,20 @@
<view>供应商:{{ v.gysId_dictText }}</view> <view>供应商:{{ v.gysId_dictText }}</view>
<view>采购人: {{ v.createBy_dictText }}</view> <view>采购人: {{ v.createBy_dictText }}</view>
<view>{{ v.qgDate }}</view> <view>{{ v.qgDate }}</view>
<view>
<view>
采购金额
</view>
<view>
<text class="dollar">{{v.totalPrice}}</text>
</view>
</view>
<view v-if="v?.cgdType=='9'" class="zuofei"> <view v-if="v?.cgdType=='9'" class="zuofei">
已作废 已作废
</view> </view>
<view class="special-pos">
<view class="num">
<view>{{v.totalPrice}}</view>
<view>采购金额</view>
</view>
<view class="dollar">
</view>
</view>
</view> </view>
@ -44,61 +38,31 @@
</view> </view>
</view> </view>
<view class="lefts"> <view class="lefts">
<view class="blue-tags-middle"> <view class="caigoudan guodu">
<view class="blue-shu"></view> <view class="title">
<view class=""> <view></view>采购单
采购项目
</view> </view>
<view class="cgdh brtop">
<view>采购单号<text>{{plsbuy[leftitem].cgdNo}}</text></view>
<view>采购金额<text>{{plsbuy[leftitem].totalPrice}}</text></view>
</view>
<view class="cgdh">
<view>采购人{{plsbuy[leftitem].createBy_dictText}} </view>
<view>采购日期{{plsbuy[leftitem].qgDate}}</view>
<view>供应商{{plsbuy[leftitem].gysId_dictText}}</view>
</view>
<scroll-view scroll-y="true" class="cgdscroll" scroll-with-animation>
<view class="fler">
<view class="boxitem" v-for="(f,l) in InvoicingList" :key='l'>
<view>{{f.wlName}}</view>
<view style="white-space: nowrap;">规格型号{{f.wlSpecificationModel}}</view>
<view>采购金额{{f.procurementPrice}}</view>
<view>采购数量{{f.purchaseQuantity}}</view>
</view>
</view>
</scroll-view>
</view> </view>
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scrolltop" class="scroll-Y"
@scrolltolower="scrolltolower" :lower-threshold="200" @scroll="scrollview">
<view class="margin-height"></view>
<view class="boxitem" v-for="(v,i) in InvoicingList" :key='i'
:class="{'yujing':Number(v.lowerLimit)>=Number(v.kcsl),'active':shopitem==i}"
@click="shopclick(i);getdetail()">
<view>{{v.wlName}}</view>
<view>规格型号: {{v.wlMaterialNo}}</view>
<view>采购金额:
<text style="font-weight: bold;">
{{(v.purchaseQuantity * Number(v.procurementPrice)).toFixed(2) }}
</text>
</view>
<view>采购数量:
<text style="font-weight: bold;">
{{v.purchaseQuantity }}
</text>
<text>
{{ `(${v.wlUnits})` }}
</text>
</view>
<!-- <view>
<view class="carditem" :class="{'hl':v.tagType==1,'yl':v.tagType==2,'bj':v.tagType>2}">
<image src="/static/index/warehouse/procurement/hl.png" mode="aspectFill"
v-if="v.tagType==1"></image>
<image src="/static/index/warehouse/procurement/yl.png" mode="aspectFill"
v-if="v.tagType==2"></image>
<image src="/static/index/warehouse/procurement/bj.png" mode="aspectFill"
v-if="v.tagType>2"></image>
{{v.tagName}}
</view>
<view class="znk">
<image
:src="v.materialImg?serverUrl + v.materialImg : '/static/index/warehouse/procurement/k.png'"
mode="aspectFill"></image>
</view>
<view class="num">
<view>{{v.kcsl}}</view>
<view>库存数量</view>
</view>
</view> -->
</view>
<view style="height: 23vw;padding-top: 10vw;">
<u-loadmore :status="status" />
</view>
</scroll-view>
</view> </view>
<view class="rights"> <view class="rights">
<view class="shitem"> <view class="shitem">
@ -123,12 +87,14 @@
</view> </view>
<view class="typeitem"> <view class="typeitem">
<view class="toptype"> <view class="toptype">
<view v-for="v in ['三','二','一']">{{v+'级分类'}}</view> <!-- <view v-for="v in ['三','二','一']">{{v+'级分类'}}</view> -->
<view :class="scroll.act3==-1?'act':''" @click="typescroll(3,-1,{})">全部</view>
<view :class="scroll.act2==-1?'act':''" @click="typescroll(2,-1,{})">全部</view>
<view :class="scroll.act1==-1?'act':''" @click="typescroll(1,-1,{})">全部</view>
</view> </view>
<view class="scroltype"> <view class="scroltype">
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop3" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop3"
class="scroll-Y"> class="scroll-Y">
<view :class="scroll.act3==-1?'act':''" @click="typescroll(3,-1,{})">全部</view>
<view :class="scroll.act3==i?'act':''" <view :class="scroll.act3==i?'act':''"
v-for="(v,i) in TreeData[scroll.act1]?.children[scroll.act2]?.children" v-for="(v,i) in TreeData[scroll.act1]?.children[scroll.act2]?.children"
@click="typescroll(3,i,v)"> @click="typescroll(3,i,v)">
@ -138,7 +104,6 @@
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop2" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop2"
class="scroll-Y"> class="scroll-Y">
<view :class="scroll.act2==-1?'act':''" @click="typescroll(2,-1,{})">全部</view>
<view :class="scroll.act2==i?'act':''" v-for="(v,i) in TreeData[scroll.act1]?.children" <view :class="scroll.act2==i?'act':''" v-for="(v,i) in TreeData[scroll.act1]?.children"
@click="typescroll(2,i,v)"> @click="typescroll(2,i,v)">
{{v.title}} {{v.title}}
@ -147,7 +112,6 @@
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop1" <scroll-view scroll-y="true" scroll-with-animation :scroll-top="scroll.scrolltop1"
class="scroll-Y scrl1"> class="scroll-Y scrl1">
<view :class="scroll.act1==-1?'act':''" @click="typescroll(1,-1,{})">全部</view>
<view :class="scroll.act1==i?'act':''" v-for="(v,i) in TreeData" @click="typescroll(1,i,v)"> <view :class="scroll.act1==i?'act':''" v-for="(v,i) in TreeData" @click="typescroll(1,i,v)">
<image :src="serverUrl + v.appCheckIconPath" mode="aspectFill" v-if="scroll.act1==i"> <image :src="serverUrl + v.appCheckIconPath" mode="aspectFill" v-if="scroll.act1==i">
</image> </image>
@ -524,13 +488,13 @@
const plzinfo = reactive({ const plzinfo = reactive({
pageNo: 1, pageNo: 1,
pageSize: 3, pageSize: 10,
canpull: true canpull: true
}) })
const mobanplzinfo = { const mobanplzinfo = {
pageNo: 1, pageNo: 1,
pageSize: 3, pageSize: 10,
canpull: true canpull: true
} }
const plsbuy = ref([]) const plsbuy = ref([])
@ -623,7 +587,6 @@
// console.log("form", form) // console.log("form", form)
queryCgdInfoList(form).then(res => { queryCgdInfoList(form).then(res => {
InvoicingList.value.push(...res.result.records); InvoicingList.value.push(...res.result.records);
// console.log("chu", InvoicingList.value)
detailform.wlId = InvoicingList.value[0].wlId detailform.wlId = InvoicingList.value[0].wlId
@ -1453,22 +1416,21 @@
height: 100%; height: 100%;
} }
} }
.box { .box {
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-wrap: wrap;
padding: 0vw 1vw 0; padding: 0vw 1vw 0;
overflow: hidden;
.rights { .rights {
width: 27vw; width: 24.5vw;
height: calc(100% - 4vw); height: calc(100% - 4vw);
margin-top: 4vw; margin-top: 4vw;
.serchs { .serchs {
width: 27vw; width: 24.5vw;
height: 3.2vw; height: 3.2vw;
background: rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .5);
border-radius: 1.6vw; border-radius: 1.6vw;
@ -1600,29 +1562,38 @@
} }
} }
.toptype { >.toptype {
width: 100%; width: 100%;
height: 2vw; height: 2vw;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
margin: .4vw 0 .4vw 0; margin: .4vw 0 .4vw 0;
view { .act {
background: rgba(255, 255, 255, 1) !important;
font-weight: 600;
color: #0385FA !important;
}
>view {
width: 7vw; width: 7vw;
height: 1.9vw; height: 1.9vw;
border-radius: 1vw; border-radius: 1vw;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background: rgba(255, 255, 255, .5);
border: 1px solid rgba(255, 255, 255, .5);
font-weight: 400; font-weight: 400;
font-size: 1.2vw; font-size: 1.2vw;
color: #333333; color: #333333;
padding: 0;
} }
} }
} }
.shitem { .shitem {
width: 27vw; width: 24.5vw;
height: 10.3vw; height: 10.3vw;
background: #E8E9ED; background: #E8E9ED;
border-radius: 1.6vw; border-radius: 1.6vw;
@ -1699,200 +1670,110 @@
} }
.lefts { .lefts {
width: 47vw; width: 46vw;
height: calc(100%); height: calc(100vh - 8vh);
position: relative; position: relative;
background: #FFFFFF;
box-shadow: 0rpx 2px 3px 0rpx rgba(182, 186, 196, 0.24);
border-radius: 1.6vw;
margin-top: 6vh;
.yujing { .caigoudan {
// border: 2px solid rgba(255, 102, 107, 0.51) !important; width: 46vw;
border: 2px solid rgba(255, 102, 107, 0.51) !important; height: 92vh;
box-shadow: 0 0 8px rgba(255, 102, 107, 0.051) inset; background: #FFFFFF;
view {
.num {
view {
&:nth-child(1) {
color: #FF5757 !important;
}
}
}
}
}
.fxj {
width: 23vw;
height: 22vw;
position: absolute;
left: 0;
bottom: 2vw;
z-index: 11;
border-radius: 1.6vw; border-radius: 1.6vw;
padding: 0.5vw 1.5vw 0;
text { .cgdscroll {
width: 100%; width: 100%;
font-weight: 400; height: calc(92vh - 10vw);
font-size: .9vw;
color: #999999;
display: flex;
justify-content: center;
position: absolute;
left: 0;
bottom: 0vw;
} }
}
.mblbg { .fler {
width: 24.5vw; display: grid;
height: 21vw; grid-template-columns: 1fr 1fr;
position: absolute; }
left: -1vw;
bottom: 0.5vw;
border-radius: 1.6vw;
filter: blur(15rpx);
background: RGBA(239, 240, 244, 1);
z-index: 10;
}
.scroll-Y { .boxitem {
width: 100%; width: 22vw;
height: 90%; height: 10vw;
display: flex; background: rgba(192, 192, 192, 0.14);
flex-wrap: wrap; border-radius: 1.6vw;
margin: 0 1vw 1.2vw 0;
border: 2px dashed #fff;
display: inline-block;
padding: 1vw 1.6vw 0;
position: relative;
>view {
&:nth-child(1) {
font-weight: bold;
font-size: 1.4vw;
color: #333;
white-space: nowrap;
overflow: hidden;
width: 100%;
text-overflow: ellipsis;
max-width: 15vw;
// .boxitem { }
// &:nth-child(1) { &:nth-child(2) {
// margin-top: 4vw; font-weight: 400;
// } font-size: 1.1vw;
// } color: #555555;
} margin-top: .6vw;
}
.boxitem { &:nth-child(3),
width: 22vw; &:nth-child(4) {
height: 12vw; font-weight: 400;
background: rgba(255, 255, 255, .7); font-size: 1.1vw;
border-radius: 1.6vw; color: #666666;
margin: 0 1.3vw 1.4vw 0; margin-top: .2vw;
border: 2px dashed #fff; }
display: inline-block;
padding: 1.5vw;
position: relative;
>view {
.hl {
color: #0385FA;
background: #E7F0FB;
}
.yl {
background: #DCF6F3;
color: #00C6A9;
}
.bj {
background: #E9EBFC;
color: #727BFF;
}
&:nth-child(1) {
font-weight: bold;
font-size: 1.5vw;
color: #333;
white-space: nowrap;
overflow: hidden;
width: 100%;
text-overflow: ellipsis;
}
&:nth-child(2) {
font-weight: 400;
font-size: 1.2vw;
color: #555555;
margin-top: .4vw;
}
&:nth-child(3) {
font-weight: 400;
font-size: 1.2vw;
color: #666666;
margin-top: .4vw;
// z-index: 9999;
}
&:nth-child(4) {
font-weight: 400;
font-size: 1.2vw;
color: #666666;
margin-top: .4vw;
}
>&:nth-child(6) {
width: 100%;
height: 10vw;
position: absolute;
left: 0;
bottom: 0;
}
.num {
position: absolute;
bottom: 2vw;
left: 2.5vw;
display: flex;
flex-direction: column;
justify-content: center;
view {
&:nth-child(1) {
font-weight: bold;
font-size: 2.2vw;
color: #555;
}
&:nth-child(2) {
font-weight: 400;
font-size: 1vw;
color: #999999;
} }
} }
} .cgdh {
.znk {
width: 10vw;
height: 9.5vw;
position: absolute;
right: 1.5vw;
bottom: 1vw;
image {
width: 100%; width: 100%;
height: 100%; height: 2.5vw;
} display: flex;
} justify-content: space-between;
align-items: center;
color: #333333;
.carditem { view {
width: 5.8vw; font-size: 1.1vw;
height: 2.1vw; }
border-radius: 1.0vw;
display: flex;
justify-content: center;
align-items: center;
font-weight: 400;
font-size: .9vw;
margin-top: .8vw;
image { text {
width: 1.4vw; font-size: 1.2vw;
height: 1.4vw; font-weight: bold;
}
} }
.title {
height: 4vw;
font-weight: 400;
font-size: 1.4vw;
color: #333333;
border-bottom: 1px solid #DCDCDC;
display: flex;
align-items: center;
view {
width: 0.5vw;
height: 1.4vw;
background: linear-gradient(-69deg, #006DC9, #0385FA);
border-radius: 0.25vw;
margin-right: 0.7vw;
} }
} }
} }
} }
@ -1900,30 +1781,10 @@
} }
.active { .active {
border: 2px dashed #017DE9 !important; border: 2px dashed #017DE9 !important;
} }
.swsh {
width: 2.7vw;
height: 1.5vw;
background: #D6D8DC;
border-radius: .75vw;
border: 1px solid #D6D8DC;
padding: 0.2vw;
box-sizing: border-box;
display: flex;
align-items: center;
>view {
width: 1.1vw;
height: 1.1vw;
background: #FCFCFD;
border-radius: 50%;
}
}
.act { .act {
background: linear-gradient(-69deg, #E1EFFC, #CAE0F9, #D2E9FF) !important; background: linear-gradient(-69deg, #E1EFFC, #CAE0F9, #D2E9FF) !important;
border: 1px solid rgba(0, 130, 251, 0.34) !important; border: 1px solid rgba(0, 130, 251, 0.34) !important;
@ -1935,199 +1796,19 @@
} }
} }
//
.guodu { .guodu {
transition: .4s; transition: .4s;
-webkit-transform-style: preserve-3d; -webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
} }
.leftr {
width: 70vw;
margin-left: 1vw;
height: calc(100%);
position: relative;
.fxj {
width: 30vw;
height: 16vw;
position: absolute;
left: 1vw;
bottom: 0vw;
z-index: 111;
border-radius: 1.6vw;
text {
width: 76%;
font-weight: 400;
font-size: .9vw;
color: #999999;
display: flex;
justify-content: center;
position: absolute;
left: 0;
bottom: 0vw;
}
}
.mblbg {
width: 35vw;
height: 16vw;
position: absolute;
left: -1vw;
bottom: 0vw;
border-radius: 1.6vw;
filter: blur(15rpx);
background: RGBA(239, 240, 244, 1);
z-index: 10;
}
.scroll-Y {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
.boxitem {
&:nth-child(1),
&:nth-child(2),
&:nth-child(3) {
margin-top: 4vw;
}
}
}
.boxibigtem {
&:nth-child(1),
&:nth-child(2) {
margin-top: 4vw;
}
}
.boxibigtem {
width: 33.3vw;
height: 21.7vw;
background: rgba(255, 255, 255, .7);
border-radius: 1.6vw;
margin: 0 1.3vw 1.2vw 0;
border: 2px dashed #fff;
display: inline-block;
padding: 2.3vw;
position: relative;
>view {
.hl {
color: #0385FA;
background: #E7F0FB;
}
.yl {
background: #DCF6F3;
color: #00C6A9;
}
.bj {
background: #E9EBFC;
color: #727BFF;
}
&:nth-child(1) {
font-weight: bold;
font-size: 1.5vw;
color: #333;
white-space: nowrap;
overflow: hidden;
width: 100%;
text-overflow: ellipsis;
}
&:nth-child(2) {
font-weight: 400;
font-size: 1.2vw;
color: #555555;
margin-top: .9vw;
}
&:nth-child(3) {
font-weight: 400;
font-size: 1.2vw;
color: #666666;
margin-top: .6vw;
}
>&:nth-child(4) {
width: 100%;
height: 10vw;
position: absolute;
left: 0;
bottom: 0;
}
.num {
position: absolute;
bottom: 2vw;
left: 2.5vw;
display: flex;
flex-direction: column;
justify-content: center;
view {
&:nth-child(1) {
font-weight: bold;
font-size: 2.2vw;
color: #555;
}
&:nth-child(2) {
font-weight: 400;
font-size: 1vw;
color: #999999;
}
}
}
.znk {
width: 12vw;
height: 11.5vw;
position: absolute;
right: 1.5vw;
bottom: 1vw;
image {
width: 100%;
height: 100%;
}
}
.carditem {
width: 5.8vw;
height: 2.1vw;
border-radius: 1.0vw;
display: flex;
justify-content: center;
align-items: center;
font-weight: 400;
font-size: .9vw;
margin-top: .8vw;
image {
width: 1.4vw;
height: 1.4vw;
}
}
}
}
}
.rel-left { .rel-left {
width: 24vw; width: 26vw;
height: 100%; height: 100%;
position: relative; position: relative;
margin-top: 6vh;
margin-right: -1.2vw;
.zuofei { .zuofei {
background-color: #FFE2E2; background-color: #FFE2E2;
@ -2146,7 +1827,6 @@
// margin-left: 1vw; // margin-left: 1vw;
.fxj { .fxj {
// margin-left: 1.5vw;
width: 23vw; width: 23vw;
height: 22vw; height: 22vw;
position: absolute; position: absolute;
@ -2170,7 +1850,7 @@
.mblbg { .mblbg {
width: 24.5vw; width: 24.5vw;
height: 21vw; height: 25vh;
position: absolute; position: absolute;
left: -1vw; left: -1vw;
bottom: 0.5vw; bottom: 0.5vw;
@ -2182,18 +1862,9 @@
.scroll-Y { .scroll-Y {
width: 100%; width: 100%;
height: 62%; height: 75vh;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
// padding-top: ;
// margin-top: 20rpx;
// .boxitem {
// &:nth-child(1) {
// // margin-top: 4vw;
// }
// }
} }
.yujing { .yujing {
@ -2202,8 +1873,8 @@
} }
.boxitem { .boxitem {
width: 22vw; width: 24vw;
height: 19.3vw; height: 14.7vw;
background: rgba(255, 255, 255, .7); background: rgba(255, 255, 255, .7);
border-radius: 1.6vw; border-radius: 1.6vw;
margin: 0 0vw 1.2vw 0.6vw; margin: 0 0vw 1.2vw 0.6vw;
@ -2213,22 +1884,6 @@
position: relative; position: relative;
>view { >view {
.hl {
color: #0385FA;
background: #E7F0FB;
}
.yl {
background: #DCF6F3;
color: #00C6A9;
}
.bj {
background: #E9EBFC;
color: #727BFF;
}
&:nth-child(1) { &:nth-child(1) {
font-weight: bold; font-weight: bold;
font-size: 1.5vw; font-size: 1.5vw;
@ -2244,6 +1899,11 @@
font-size: 1.2vw; font-size: 1.2vw;
color: #555555; color: #555555;
margin-top: .6vw; margin-top: .6vw;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
width: 100%;
height: 1.5vw;
} }
&:nth-child(3) { &:nth-child(3) {
@ -2260,98 +1920,27 @@
margin-top: .6vw; margin-top: .6vw;
} }
&:nth-child(5) {
width: 100%;
// >&:nth-child(5) {
// width: 100%;
// height: 10vw;
// position: absolute;
// left: 0;
// bottom: 0;
// }
.dollar {
position: absolute;
bottom: 3.6vw;
left: 1.2vw;
font-weight: bold;
}
.num {
position: absolute;
bottom: 2vw;
left: 2.5vw;
display: flex; display: flex;
flex-direction: column; justify-content: space-between;
justify-content: center; margin-top: 1.5vw;
view { view {
&:nth-child(1) { color: #888888;
font-weight: bold;
font-size: 2.2vw;
color: #555;
}
&:nth-child(2) {
font-weight: 400;
font-size: 1vw;
color: #999999;
}
} }
} text {
font-weight: bold;
.right-icon { font-size: 1.8vw;
position: absolute; color: #555;
bottom: 3.7vw;
right: 1.2vw;
display: flex;
justify-content: center;
align-items: center;
width: 5vw;
height: 2vw;
border-radius: 30rpx;
background-color: #E8E9ED;
color: #626363;
}
.znk {
width: 10vw;
height: 9.5vw;
position: absolute;
right: 1.5vw;
bottom: 1vw;
image {
width: 100%;
height: 100%;
} }
} }
.carditem {
width: 5.8vw;
height: 2.1vw;
border-radius: 1.0vw;
display: flex;
justify-content: center;
align-items: center;
font-weight: 400;
font-size: .9vw;
margin-top: .8vw;
image {
width: 1.4vw;
height: 1.4vw;
}
}
} }
} }
} }
.mar-left { .mar-left {
margin-left: 100vw; margin-left: 100vw;
} }
@ -2664,9 +2253,6 @@
border-radius: 30rpx; border-radius: 30rpx;
} }
.title {
margin-top: 70rpx;
}
.card-font { .card-font {
margin-top: 70rpx; margin-top: 70rpx;
@ -2702,13 +2288,6 @@
height: 10rpx; height: 10rpx;
} }
.special-pos {
width: 100%;
height: 10vw;
position: absolute;
left: 0;
bottom: 0;
}
.right-flex { .right-flex {
display: flex; display: flex;