This commit is contained in:
wangweidong 2025-11-26 17:49:51 +08:00
commit 227d43dd12
4 changed files with 472 additions and 64 deletions

View File

@ -26,7 +26,7 @@
<view class="shx-font">
筛选
</view>
</view>
<view class="shx">
<image src="/static/index/requestform/chongzhi.png" mode="aspectFill"></image>
@ -38,15 +38,120 @@
<view class="other-contain">
<view class="other-contain-left">
<view class="left-selecttype">
<view :class="selectType===index?`selecttype-target`: `selecttype`" v-for="(item,index) in tagsarray" @click="changetype(index)" >
<view :class="selectType===index?`selecttype-target`: `selecttype`"
v-for="(item,index) in tagsarray" @click="changetype(index)">
{{ item }}
<view class="heng-blue" v-if="selectType===index"></view>
</view>
</view>
<scroll-view scroll-y="true" scroll-with-animation class="left-menu-scroll" :scroll-top="leftscrolltop"
@scrolltolower="plsbuytolower" :lower-threshold="400">
<view style="height: 1%;"></view>
<view class="pls-card" v-for="(v,i) in plsbuy" :key='i' @click="clickLeftMenu(i,v)" :style="{
borderColor: i === lefttarget ? '' : 'transparent',
background: i === lefttarget ? '#fff' : 'rgba(255,255,255,0.6)'
}">
<view style="background: #ff5757;position: absolute;width: 1.3vw;height: 1.3vw;border-radius: 50%;right: -0.5vw;top: -0.2vw;" v-if="v.izNew=='Y'">
</view>
<view class="pls-card-title">
<view class="middle-title">
请领单号
</view>
<view class="title-left">
{{ v.cgdNo }}
</view>
<!-- <view class="title-right">
<text style="position: absolute;bottom: 4rpx;left: -30rpx;">
</text>
<view class="title-right-big">
{{ Number(v.totalPrice).toFixed(2) }}
</view>
</view> -->
</view>
<view class="pls-card-middle">
<view class="middle-heng"></view>
<view class="pls-card-middle-one">
<view class="middle-title">
{{ v.qgDate }}
</view>
<view class="middle-heng-father">
<image class="middle-ball-img" src="/static/index/requestform/isok.png" />
</view>
<view class="end-font">
<view>
采购
</view>
<view style="font-size: 25rpx;">
{{ "[ " + v.qgBy + " ]" }}
</view>
</view>
</view>
<view class="pls-card-middle-one">
<view class="middle-title">
{{ v.jhTime?.slice(0,10) }}
</view>
<view class="middle-heng-father">
<view class="middle-ball" style="background-color: #1083F8;"
:style=" v?.cgdType=='9' ?{backgroundColor:`#FF5757`}:{}"
v-if="Number(v.status)<1"></view>
<image class="middle-ball-img" v-else src="/static/index/requestform/isok.png" />
</view>
<view class="end-font">
<view :style=" v?.cgdType=='9' ?{color:`#FF5757`}:{}">
{{ v?.cgdType=='9' ?`已作废`:`拣货` }}
</view>
<view style="font-size: 25rpx;" v-if="Number(v.status)>0 && v.jhBy ">
{{ "[ " + v.jhBy + " ]" }}
</view>
</view>
</view>
<view class="pls-card-middle-one">
<view class="middle-title">
{{ Number(v.status)>=2 ? v.wjTime?.slice(0,10) :""}}
</view>
<view class="middle-heng-father">
<!-- <view class="middle-ball" :style="{backgroundColor: `#1083F8`}"></view> -->
<view class="middle-ball"
:style="{backgroundColor: Number(v.status)==1? ``:`#E5E5E5`}"
v-if="Number(v.status)!=2"></view>
<image class="middle-ball-img" v-else src="/static/index/requestform/isok.png" />
</view>
<view class="end-font">
<view>
完结
</view>
<view style="font-size: 25rpx;" v-if=" v.wjBy">
{{ "[ " + v.wjBy + " ]" }}
</view>
</view>
</view>
</view>
<view class="pls-card-end">
<view class="end-left">
<image class="end-left-img" src="/static/shili.png" />
<view class="end-left-font">
{{ v.gysId_dictText }}
</view>
</view>
<view :class="v?.cgdType=='9' ?`tag-fail`:`tag-success`">
{{ v?.cgdType=='9' ?`已作废`:tagesstatues[Number(v.status)] }}
</view>
</view>
</view>
</scroll-view>
</view>
<view class="other-contain-right">
</view>
</view>
@ -56,11 +161,13 @@
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, defineProps, watch } from 'vue';
import { ref, onMounted, onBeforeUnmount, computed, nextTick, defineProps, watch, reactive } from 'vue';
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import { queryCgdList } from '@/pages/Warehouse/api/lunpan.js'
const transition = ref(false);
const tagsarray = ref(["全部","待出库","已出库","已收货 ","已作废"])
const tagsarray = ref(["全部", "待出库", "已出库", "已收货 ", "已作废"])
const props = defineProps({
isShow: {
type: Boolean,
@ -88,11 +195,111 @@
name.value = uni.getStorageSync('realname')
})
const lanjie = ref(false);
const selectType = ref(0)
const changetype = (index:number) => {
const changetype = (index : number) => {
selectType.value = index
}
const tagesstatues = ["待入库", "待完结", '已完结'];
const plsbuy = ref([])
const alltotal = ref(0);
const lefttarget = ref(0)
const plzinfo = reactive({
pageNo: 1,
pageSize: 10,
canpull: true,
cgdParamInfo: "",
suppliers: "",
// cgdType: "0,1",
startTime: "",
endTime: "",
cgBy: "",
// nuId: uni.getStorageSync('nuId')
})
const mobanplzinfo = {
pageNo: 1,
pageSize: 10,
canpull: true,
cgdParamInfo: "",
suppliers: "",
// cgdType: "0,1",
startTime: "",
endTime: "",
cgBy: "",
// nuId: uni.getStorageSync('nuId')
}
const nomessageshow = ref(false);
const leftscrolltop = ref(0)
const firstgetqueryCgdList = () => {
queryCgdList(plzinfo).then((res : any) => {
console.log("加载", res.result.records)
plsbuy.value.push(...res.result.records)
alltotal.value = res.result.total
if (!res.result.total) {
// console.log("!!!")
nomessageshow.value = true;
}
// console.log("???", res)
// if (res.result.records.length) {
// form.cgdId = plsbuy.value[0].id
// queryInvo(0);
// }
if (res.result.records.length < plzinfo.pageSize) {
plzinfo.canpull = false;
}
})
}
const setout = ref(true)
let times = null
const plsbuytolower = () => {
if (!setout.value) { return }
plzinfo.pageNo++;
getqueryCgdList()
setout.value = false
times = setTimeout(() => {
setout.value = true
}, 500)
}
//
const getqueryCgdList = () => {
if (!plzinfo.canpull) return
queryCgdList(plzinfo).then((res : any) => {
plsbuy.value.push(...res.result.records)
alltotal.value = res.result.total
if (res.result.records.length < plzinfo.pageSize) {
plzinfo.canpull = false;
}
})
}
const clickLeftMenu = (index : any, item : any) => {
let num = Math.ceil((index + 1))
leftscrolltop.value = (num - 2) * 180;
lefttarget.value = index;
// form.cgdId = plsbuy.value[index].id
// form.pageNo = 1
// form.canpull = true;
// // console.log("!!!!",form)
// queryCgdInfoList(form).then(res => {
// InvoicingList.value = []
// // console.log("", res.result.records)
// InvoicingList.value.push(...res.result.records);
// if (form.pageNo) {
// clickmiddle(0);
// }
// })
// if (item.izNew == 'Y') {
// item.izNew = 'N'
// editIzNew({ id: item.id })
// }
}
onLoad(() => {
firstgetqueryCgdList();
// serverUrl.value = uni.getStorageSync('serverUrl') + '/sys/common/static/';
// getSelectList();
})
</script>
<style scoped lang="less">
@ -158,11 +365,13 @@
height: 38rpx;
}
}
.buttons-father{
.buttons-father {
width: 100%;
height: 100rpx;
height: 90rpx;
// background-color: red;
display: flex;
.ipt {
display: flex;
align-items: center;
@ -170,21 +379,22 @@
background: #E2E4E9;
border-radius: 1.65vw;
height: 3.3vw;
image {
width: 2.2vw;
height: 2.2vw;
margin:0 0.5vw;
margin: 0 0.5vw;
}
input {
width: 18vw;
height: 3.5vw;
font-size: 1.4vw;
padding-left: 1.6vw;
}
}
.scr {
border-radius: 1.65vw;
font-weight: 400;
@ -200,7 +410,7 @@
color: #555555;
box-shadow: 0.5rpx 3rpx 3rpx #dadee1;
}
.shx {
width: 6.5vw;
height: 3.3vw;
@ -216,34 +426,231 @@
box-shadow: 0.5rpx 3rpx 3rpx #dadee1;
margin: 0 0 0 0.5vw;
color: #555555;
image {
width: 1.8vw;
height: 1.8vw;
margin: 0 0.2vw 0 0;
}
.shx-font{
.shx-font {
margin-top: 3rpx;
// margin-left: -5rpx;
}
}
}
.other-contain{
.other-contain {
width: 100%;
height: 1050rpx;
display: flex;
.other-contain-left{
.other-contain-left {
width: 35%;
height: 100%;
.left-selecttype{
.left-menu-scroll {
margin-top: 3%;
height: 94%;
width: 100%;
// position: relative;
// overflow: auto;
// background-color: red;
.pls-card {
width: 98%;
height: 25.3vh;
border: #0f9fff 3rpx solid;
background-color: #fff;
border-radius: 40rpx;
margin-bottom: 2vh;
// margin: 1vh 0;
padding: 0 30rpx;
position: relative;
.pls-card-title {
height: 5.5vh;
width: 105%;
display: flex;
justify-content: space-between;
align-items: flex-end;
.title-left {
font-weight: 600;
font-size: 32rpx;
}
.title-right {
display: flex;
align-items: flex-end;
font-size: 30rpx;
position: relative;
.title-right-big {
font-weight: 600;
font-size: 40rpx;
margin-right: 35rpx;
color: #555555;
}
.title-right-img {
position: absolute;
right: -10rpx;
bottom: 6rpx;
width: 40rpx;
height: 40rpx;
}
}
}
.pls-card-middle {
width: 100%;
height: 11vh;
margin-top: 1vh;
display: flex;
position: relative;
.middle-heng {
position: absolute;
left: 4%;
top: 35%;
transform: translateY(-35%);
width: 92%;
height: 2px;
/* 虚线粗细 */
background-image: repeating-linear-gradient(to right,
#E5E5E5 0,
#E5E5E5 6px,
transparent 6px,
transparent 10px);
}
.pls-card-middle-one {
width: 33.3%;
height: 100%;
// background-color: yellow;
.middle-title {
width: 100%;
height: 2vh;
// background-color: #007CFF;
color: #888888;
text-align: center;
font-size: 25rpx;
overflow: hidden;
}
.middle-heng-father {
width: 100%;
height: 4vh;
position: relative;
.middle-ball-img {
width: 35rpx;
height: 35rpx;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.middle-ball {
width: 20rpx;
height: 20rpx;
background-color: #1083F8;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 50%;
}
}
.end-font {
width: 100%;
height: 6vh;
text-align: center;
color: #666666;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
.pls-card-end {
width: 100%;
height: 7vh;
display: flex;
justify-content: space-between;
position: relative;
.end-left {
height: 100%;
display: flex;
align-items: center;
.end-left-img {
width: 30rpx;
height: 30rpx;
}
.end-left-font {
margin-top: 3rpx;
width: 400rpx;
// background-color: #007CFF;
// font-size: 26rpx;
color: #666666;
margin-left: 10rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.tag-fail {
width: 120rpx;
height: 50rpx;
border-radius: 30rpx;
display: flex;
align-items: center;
justify-content: center;
background-color: #FDEBEC;
color: #FF5757;
position: absolute;
right: -5rpx;
bottom: 20rpx;
}
.tag-success {
width: 120rpx;
height: 50rpx;
border-radius: 30rpx;
display: flex;
align-items: center;
justify-content: center;
background-color: #ECF6FF;
color: #1083F8;
border: 1rpx solid #1083F8;
position: absolute;
right: -5rpx;
bottom: 20rpx;
}
}
}
}
.left-selecttype {
width: 100%;
height: 80rpx;
border-radius: 40rpx;
background-color: #FFFFFF;
display: flex;
padding: 0 30rpx;
.heng-blue{
padding-right: 30rpx;
padding-left: 15rpx;
.heng-blue {
position: absolute;
bottom: 0;
left: 50%;
@ -252,9 +659,10 @@
height: 8rpx;
border-radius: 10rpx;
background-color: #1083F8;
}
.selecttype{
.selecttype {
width: 20%;
height: 100%;
display: flex;
@ -263,9 +671,10 @@
color: #999999;
font-size: 31rpx;
position: relative;
}
.selecttype-target{
.selecttype-target {
width: 20%;
height: 100%;
display: flex;
@ -278,7 +687,8 @@
}
}
}
.other-contain-right{
.other-contain-right {
width: 65%;
height: 100%;
// background-color: red;

View File

@ -1,13 +1,13 @@
<template>
<view class="contain">
<view v-show="moreindex!=-1 || topbuttontarget!=-1 || openjianhuo || opengaijia || opendata || opencgr "
class="mengban"
@click="moreindex=-1; topbuttontarget=-1;openjianhuo=false;opengaijia=false;opendata=false;opencgr=false;clickflag=false;">
<view v-show="moreindex!=-1 || topbuttontarget!=-1 || openjianhuo || opengaijia || opendata || opencgr || clickflag || opengys"
class="mengban" :style="opencgr||opengys||opendata ?{background:`transparent`}:{}"
@click="moreindex=-1; topbuttontarget=-1;openjianhuo=false;opengaijia=false;opendata=false;opencgr=false;clickflag=false;opengys=false">
</view>
<!-- 没数据了遮罩 -->
<nomessageimge cont="暂无数据" :show="nomessageshow" />
<!-- 给模糊搜索用的 -->
<view v-show="filteredCgrListsecond.length&&gysvalue" class="mengban" @click="closefilteredCgrListsecond">
<view v-show="filteredCgrListsecond.length&&gysvalue" class="mengban" style="background: transparent;" @click="closefilteredCgrListsecond">
</view>
<view class="input-next" style="bottom: 450rpx;" v-if="filteredCgrListsecond.length && gysvalue">
@ -21,7 +21,7 @@
</view>
</view>
<!-- 给模糊搜索用的 -->
<view v-show="filteredCgrList.length&&cgrvalue" class="mengban" @click="closefilteredCgrList"></view>
<view v-show="filteredCgrList.length&&cgrvalue" class="mengban" style="background: transparent;" @click="closefilteredCgrList"></view>
<view class="input-next" v-if="filteredCgrList.length && cgrvalue">
<view v-show="filteredCgrList[0].cgBy!=`暂无数据`" class="next-father"
@ -104,7 +104,7 @@
</view>
</view>
<view style="display: flex;width: 480rpx;">
<view class="gray-button-jianpan" @click="press('AC')">
<view class="gray-button-jianpan" style="font-size: 35rpx;" @click="press('AC')">
AC
</view>
<view class="gray-button-jianpan" @click="press('0')">
@ -132,7 +132,7 @@
</view>
<view style="display: flex;margin-top: 10rpx;">
<view class="" style="width: 33%;">
<view style="color: #888888;margin-top: 10rpx;">
<view style="color: #999999;margin-top: 10rpx;">
物料编码
</view>
<view class="" style="margin-top: 5rpx;font-size: 34rpx;">
@ -140,7 +140,7 @@
</view>
</view>
<view style="width: 33%;">
<view style="color: #888888;margin-top: 10rpx;white-space: nowrap;">
<view style="color: #999999;margin-top: 10rpx;white-space: nowrap;">
规格型号
</view>
<view
@ -151,7 +151,7 @@
</view>
<view style="display: flex;margin-top: 20rpx;">
<view class="" style="width: 33%;">
<view style="color: #888888;margin-top: 10rpx;">
<view style="color: #999999;margin-top: 10rpx;">
采购单价
</view>
<view class="text-anim" style="margin-top: 5rpx;font-weight: 600;font-size: 34rpx;">
@ -159,7 +159,7 @@
</view>
</view>
<view class="" style="width: 33%;">
<view style="color: #888888;margin-top: 10rpx;">
<view style="color: #999999;margin-top: 10rpx;">
采购数量
</view>
<view class="" style="margin-top: 5rpx;font-weight: 600;font-size: 34rpx;">
@ -167,7 +167,7 @@
</view>
</view>
<view class="" style="width: 33%;">
<view style="color: #888888;margin-top: 10rpx;">
<view style="color: #999999;margin-top: 10rpx;">
采购单位
</view>
<view class="" style="margin-top: 5rpx;font-size: 34rpx;">
@ -184,7 +184,7 @@
</view>
<view style="display: flex;margin-top: 10rpx;">
<view class="" style="width: 33%;">
<view style="color: #888888;margin-top: 10rpx;">
<view style="color: #999999;margin-top: 10rpx;">
入库数量
</view>
<view class="" style="margin-top: 5rpx;font-size: 34rpx;">
@ -192,7 +192,7 @@
</view>
</view>
<view class="" style="width: 33%;">
<view style="color: #888888;margin-top: 10rpx;">
<view style="color: #999999;margin-top: 10rpx;">
挂账数量
</view>
<view class="" style="margin-top: 5rpx;font-size: 34rpx;">
@ -200,7 +200,7 @@
</view>
</view>
<view class="" style="width: 33%;">
<view style="color: #888888;margin-top: 10rpx;">
<view style="color: #999999;margin-top: 10rpx;">
销账数量
</view>
<view class="" style="margin-top: 5rpx;font-size: 34rpx;">
@ -311,14 +311,14 @@
</view>
</view>
<view style="display: flex;width: 480rpx;">
<view class="gray-button-jianpan" @click="clknum('AC')">
<view class="gray-button-jianpan" style="font-size: 35rpx;" @click="clknum('AC')">
AC
</view>
<view class="gray-button-jianpan" @click="clknum(0)">
0
</view>
<view class="gray-button-jianpan" @click="clknum('AE')">
<view class="gray-button-jianpan" style="font-size: 35rpx;" @click="clknum('AE')">
AE
</view>
</view>
@ -413,7 +413,7 @@
<view class="contain-left">
<view v-show="openselect" class="mengban" @click="openselect=false"></view>
<view v-show="openselect" class="mengban" style="background: transparent;" @click="openselect=false"></view>
<view class="left-select-more" v-show="openselect">
<view class="more-bottom">
<view class="bottom-left" @click="chongzhi">
@ -611,13 +611,8 @@
{{ v.gysId_dictText }}
</view>
</view>
<!-- <view :class="v?.cgdType=='9' ?`tag-fail`:`tag-success`">
{{ tagesstatues[Number(v.status)] }}
</view> -->
<view class="tag-success">
{{ tagesstatues[Number(v.status)] }}
</view>
</view>
</view>
@ -2442,6 +2437,7 @@
justify-content: center;
background-color: #ECF6FF;
color: #1083F8;
border: 1rpx solid #1083F8;
position: absolute;
right: -5rpx;
bottom: 20rpx;
@ -2797,6 +2793,7 @@
top: 0;
left: 0;
z-index: 100;
background: RGBA(239, 240, 244, 0.55);
}
.popup-share {
@ -3222,12 +3219,12 @@
.gray-button {
font-size: 50rpx;
background-color: #f9f9f9;
box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.12);
background-color: #f3f5f9;
// box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.12);
border-radius: 20rpx;
width: 100rpx;
height: 100rpx;
// border: 1rpx solid #CBCFD0;
border: 1rpx solid #eeeeee;
display: flex;
justify-content: center;
align-items: center;
@ -3253,13 +3250,13 @@
.gray-button-jianpan {
font-size: 40rpx;
font-weight: 600;
background-color: #f9f9f9;
background-color: #f3f5f9;
border-radius: 35rpx;
box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.12);
// box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.12);
color: #555555;
width: 100rpx;
height: 100rpx;
border: 1rpx solid transparent;
border: 1rpx solid #eeeeee;
display: flex;
justify-content: center;
align-items: center;
@ -3273,14 +3270,14 @@
.gray-input {
font-size: 50rpx;
font-weight: 600;
background-color: #f9f9f9;
background-color: #f3f5f9;
border-radius: 20rpx;
box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.12);
// box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.12);
padding: 0 30rpx;
letter-spacing: 10rpx;
height: 100rpx;
border: 1rpx solid #CBCFD0;
border: 1rpx solid #eeeeee;
display: flex;
justify-content: flex-end;
align-items: center;

View File

@ -89,12 +89,12 @@
{{ tagesstatues[Number(v.status)] }}
</view> -->
<view class="tag-success">
<!-- <view class="tag-success">
<text v-if="v.cgdType==0">待入库 </text>
<text v-if="v.cgdType==1">待完结 </text>
<text v-if="v.cgdType==2">巳完结 </text>
<text v-if="v.cgdType==9">作废 </text>
</view>
</view> -->
</view>
</view>
</scroll-view>
@ -628,7 +628,7 @@
.end-left-font {
margin-top: 3rpx;
width: 400rpx;
width: 500rpx;
// background-color: #007CFF;
// font-size: 26rpx;
color: #666666;
@ -662,6 +662,7 @@
justify-content: center;
background-color: #ECF6FF;
color: #1083F8;
border: 1rpx solid #1083F8;
position: absolute;
right: -5rpx;
bottom: 20rpx;

View File

@ -402,7 +402,7 @@
</view>
</view>
</view> -->
<view class="mengban" v-if="ification" @click="ification = false"></view>
<view class="mengban" style="background: RGBA(239, 240, 244, 0.55);" v-if="ification" @click="ification = false"></view>
<classification @confirm="confirm" :show="ification" :typenum="2" :cgdId="plsbuy[lefttarget]?.id">
</classification>