This commit is contained in:
Teng 2025-12-09 15:09:36 +08:00
commit 6692c9be4f
21 changed files with 665 additions and 349 deletions

View File

@ -127,3 +127,17 @@ export const requireTH = (params) => {
data: params,
})
}
export const updateQldWlSl = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/qld/updateQldWlSl`,
method: 'post',
data: params,
})
}
export const deleteQldWl = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/qld/deleteQldWl`,
method: 'post',
data: params,
})
}

View File

@ -8,9 +8,9 @@
<scroll-view scroll-x="true" class="kcscrol guodu" @scroll="onScroll"
scroll-with-animation :scroll-left="scrollleft" :style="qb?'width:calc(100% - 21.8vw)':'width:calc(100% - 10vw)' ">
<view class="yjbox" v-for="(v,i) in Material" :key="i" >
<image :src="v.materialInfo.materialImg?serverUrl+v.materialInfo.materialImg:'/static/index/procurement/k.png'"
<image :src="v.materialInfo?.materialImg?serverUrl+v.materialInfo?.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill"></image>
<view>{{v.materialInfo.materialName}}</view>
<view>{{v.materialInfo?.materialName}}</view>
<text class="ytj" v-if="v.qlNum>=0">{{v.qlNum}}</text>
<view class="zhanwei" v-if="moredex==1" @click.stop="del(v)">
<view>-</view>
@ -18,7 +18,7 @@
</view>
<defaultr cont="暂无数据" v-if="Material.length==0&&timeout" style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
</scroll-view>
<view class="kjlt more guodu" :style="qb?'width:15vw':'' " @touchstart="ts" @touchmove="canmove">
<view class="kjlt more guodu" :style="qb?'width:15vw':'' " @touchstart="ts" @touchmove="canmove" v-if="Material.length>0">
<view @click="zksq" class="righ0">
{{!qb?'更多':'收起'}}
<image class="guodu" :style="qb?'transform: rotate(180deg);':''"

View File

@ -10,7 +10,7 @@
<image src="/static/index/procurement/zd.png" mode="aspectFill"></image>
</view>
<view class="speitem guodu" >
<image :src="v.materialImg?serverUrl+v.materialImg:'/static/index/procurement/k.png'"
<image :src="v?.materialImg?serverUrl+v?.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill">
</image>
<view class="cardp">

View File

@ -0,0 +1,395 @@
<template>
<view>
<!-- 回退单 滑动 组件 -->
<scroll-view scroll-y="true" class="itembox" scroll-with-animation @scrolltolower="scrolltolower()" enable-back-to-top>
<view class="box">
<view class="fler" v-for="(v,index) in InvoicingList" :key="index">
<scroll-view class="carditem guodu" @touchend="handleTouchEnd($event,v,index)"
@touchstart="touchstart($event,v,index)" scroll-with-animation scroll-x="true"
:scroll-left="v.scrollleft" @scroll="scroll" >
<view class="speitem guodu" >
<image :src="v.materialInfo?.materialImg?serverUrl+v.materialInfo?.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill">
</image>
<view class="cardp">
<view v-if="v.materialInfo?.categoryName">{{v.materialInfo?.categoryName}}</view>
<view v-if="v.materialInfo?.typeName">{{v.materialInfo?.typeName}}</view>
</view>
</view>
<view class="msitem guodu" >
<view>
<view>{{v.materialInfo?.materialName}}</view>
</view>
<view>
<text style="white-space: nowrap;"> 规格型号: </text>
<view>{{v.materialInfo?.specificationModel}}</view>
</view>
<view>
<view>
<text>{{v.qlNum?v.qlNum:'--'}}</text>
<text>退货数量</text>
</view>
<view>
<text>{{v.materialInfo?.materialUnits}}</text>
<text>退货单位</text>
</view>
</view>
</view>
<view class="add" @click.stop="del(v,i)" v-if="status=='3'">
<!-- <image v-if="v.isAdd!=1" :src="'/static/index/procurement/+.png'" mode="aspectFill"></image> -->
<image :src="'/static/index/procurement/-.png'" mode="aspectFill"></image>
</view>
<view class="zkadd guodu" v-if="status=='3'">
<view @click.stop="comfig(v,index,1)" @touchend.stop>
编辑
</view>
</view>
</scroll-view>
</view>
<defaultr cont="暂无数据" v-if="InvoicingList.length==0 " style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
</view>
</scroll-view>
<taking :show="tuihuoshow" :objtake="tuihuoobj.materialInfo" :num="tuihuoobj.qlNum" @fill="tuihuoshow = false" @right="right"></taking>
<tanchuang @back="delshow = false" :show="delshow" font="确定将该物料从本次请领清单中移除吗?" @right="dell"></tanchuang>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
import taking from './takeing.vue'
import defaultr from '../common/default.vue'
const props = defineProps({
InvoicingList: {
type: Array,
required: true
},
status: {
type: String
}
})
const carnum = ref(0)
const caigouobj = ref({})
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
const emit = defineEmits([ 'scrolltolower' ,'comfig','del'])
const delshow = ref(false)
const pageX = ref(0);
const pageY = ref(0);
const ones = ref(true)
const touchstart = (event : any, v : any,i:number) => {
caigouobj.value = v;
pageX.value = event.changedTouches[0].pageX;
pageY.value = event.changedTouches[0].pageY;
if(ones.value){
ones.value = false;
solleft(v, i)
}
}
const tuihuoshow = ref(false)
const tuihuoobj = ref({})
const comfig=(v,i,t)=>{
tuihuoobj.value = v;
tuihuoshow.value = true;
// emit('comfig',v,i,t)
}
const dell = () =>{
emit('del',tuihuoobj.value);
delshow.value = false;
}
const del =(v,i)=>{
tuihuoobj.value = v;
delshow.value = true;
}
const right = (e,v) =>{
emit('comfig',e,tuihuoobj.value);
tuihuoshow.value = false;
}
const handleTouchEnd = (event : any, v : any, i : number) => {
let y = event.changedTouches[0].pageY;
let x = event.changedTouches[0].pageX;
let absx = Math.abs(x - pageX.value)
let absy = Math.abs(y - pageY.value);
ones.value = true;
if (absy > 30 && absx+10<absy) {
caigouobj.value.scrollleft = 0.01
setTimeout(()=>{
caigouobj.value.scrollleft = 0
},20)
return
}
if (absx < 10 && absy < 10) {
if(caigouobj.value.zk==false){
setTimeout(()=>{
caigouobj.value.scrollleft = 0
},20)
}
return
}
if(scrollLeft.value <=40){
caigouobj.value.scrollleft = scrollLeft.value;
caigouobj.value.zk = false;
nextTick(()=>{
caigouobj.value.scrollleft = 0;
scrollLeft.value = 0;
})
}else{
scrollLeft.value = 150
caigouobj.value.scrollleft = scrollLeft.value;
caigouobj.value.zk = true;
}
caigouobj.value.zk = x > pageX.value ? false : true;
caigouobj.value.scrollleft = caigouobj.value.zk ? 150 : 0;
}
const solleft = (v : any, i : number) => {
props.InvoicingList.forEach((item, k) => {
if (k != i&&item.zk==true) {
item.zk = false;
item.scrollleft = 0;
}
})
}
const scrolltolower = () => {
emit('scrolltolower')
}
const scrollLeft = ref(0)
const scroll = (e)=>{
scrollLeft.value = e.detail.scrollLeft
// console.log(e.detail.scrollLeft)
}
</script>
<style scoped lang="less">
.zkadd {
width: 9vw;
height: 100%;
display: inline-flex;
justify-content: flex-end;
position: absolute;
top: 0;
right: -9vw;
view:active{
background:rgba(85, 166, 249, 1) !important;
color: #FFFFFF !important;
}
>view {
width: 3.6vw;
height: 100%;
font-weight: 400;
font-size: 1.3vw;
display: flex;
justify-content: center;
align-items: center;
writing-mode: vertical-rl;
text-orientation: upright;
letter-spacing:2px;
background:rgba(85, 166, 249, 1) !important;
color: #FFFFFF !important;
}
}
.add {
width:5vw;
height: 13vw;
display: inline-flex;
justify-content: space-between;
align-items: center;
position: absolute;
top:0;
right:0.8vw;
>view {
width: 4.5vw;
height: 1.8vw;
background: #E3EEF7;
border-radius: 0.9vw;
border: 1px solid rgba(3, 133, 250, 0.34);
font-weight: 400;
font-size: 1.1vw;
color: #1083F8;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 0.8vw;
right: 0vw;
}
image {
width: 3vw;
height: 3vw;
position: absolute;
bottom: 0.8vw;
right: 0vw;
}
}
.msitem {
width: 11.5vw;
height: 100%;
position: absolute;
top:0;
left: 10vw;
>view {
margin-top: 0.25vw;
&:nth-child(3) {
width: 100%;
height: 3.4vw;
display: flex;
justify-content: space-between;
>view {
width: 50%;
height: 100%;
display: flex;
flex-direction: column;
position: relative;
margin-top:1vw;
white-space: nowrap;
&:nth-child(1){
padding-right: 1.7vw;
align-items: flex-start;
}
&:nth-child(2){
padding-left: 1.7vw;
align-items: flex-start;
}
&:nth-child(1)::after {
content: '';
position: absolute;
right: 0;
width: 100%;
height: 2.2vw;
border-right: 1px solid #C9C9C9;
top: 0.6vw;
}
text {
&:nth-child(1) {
font-weight: bold;
font-size: 1.7vw;
color: #555555;
}
&:nth-child(2) {
font-weight: 400;
font-size: 1.1vw;
color: #999999;
white-space: nowrap;
}
}
}
}
&:nth-child(2) {
display: flex;
justify-content: space-between;
flex-direction: column;
margin-top: 0.1vw;
view{
font-size: 1.4vw;
color: #888888;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
text {
font-weight: 400;
font-size: 1.1vw;
color: #777777;
margin-top: 0.25vw;
}
}
&:nth-child(1) {
view{
display: inline-block;
width: 10vw;
font-weight: bold;
font-size: 1.6vw;
color: #222222;
height: 3vw;
padding-top: 1.3vw;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
}
}
.zding{
width: 4.6vw;
height: 4.6vw;
position: absolute;
left: 0;
top: 0;
z-index: 11;
image{
width: 100%;
height: 100%;
}
}
.speitem {
width: 10vw;
height: 100%;
display: inline-flex;
flex-direction: column;
position: absolute;
top:0;
left: 0;
.cardp {
width:8vw;
height: 4vw;
display: flex;
margin: 0 auto;
align-items: center;
justify-content: center;
flex-direction: column;
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;
}
}
>image {
width: 8.5vw;
height: 7.5vw;
margin: 1.7vw auto 0.25vw;
}
}
.itembox{
width: 55vw;
height: calc(100vh - 15vw);
padding:1vw 0.5vw 1vw;
.box{
width: 100%;
display: grid;
grid-template-columns: 1fr 1fr;
}
.fler{
width: 27vw;
height: 13vw;
margin-bottom: 0.9vw;
margin-left: 0.5vw;
.carditem{
width: 27vw;
height: 13vw;
background: rgba(245, 246, 248, 1);
border-radius: 1.1vw;
position: relative;
overflow: hidden;
}
}
}
</style>

View File

@ -5,7 +5,7 @@
<view class="tit">物料详情</view>
<view class="cont">
<view class="leftbox">
<image :src="objtake.materialImg?serverUrl+objtake.materialImg:'/static/index/procurement/k.png'" mode="aspectFill"/>
<image :src="objtake?.materialImg?serverUrl+objtake?.materialImg:'/static/index/procurement/k.png'" mode="aspectFill"/>
<view>
<text>耗材用品</text>
<text>复健用品</text>

View File

@ -17,21 +17,21 @@
<view class="list">
<view class="card" v-for="(v,i) in list" :key='i'>
<view class="speitem guodu" >
<image :src="v.materialInfo.materialImg?serverUrl+v.materialInfo.materialImg:'/static/index/procurement/k.png'"
<image :src="v.materialInfo?.materialImg?serverUrl+v.materialInfo?.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill">
</image>
<view class="cardp">
<view v-if="v.materialInfo.categoryName">{{v.materialInfo.categoryName}}</view>
<view v-if="v.materialInfo.typeName">{{v.materialInfo.typeName}}</view>
<view v-if="v.materialInfo?.categoryName">{{v.materialInfo?.categoryName}}</view>
<view v-if="v.materialInfo?.typeName">{{v.materialInfo?.typeName}}</view>
</view>
</view>
<view class="msitem guodu" >
<view>
<view>{{v.materialInfo.materialName}}</view>
<view>{{v.materialInfo?.materialName}}</view>
</view>
<view>
<text style="white-space: nowrap;"> 规格型号: </text>
<view>{{v.materialInfo.specificationModel}}</view>
<view>{{v.materialInfo?.specificationModel}}</view>
</view>
<view>
<view>
@ -39,7 +39,7 @@
<text>请领数量</text>
</view>
<view>
<text>{{v.materialInfo.materialUnits}}</text>
<text>{{v.materialInfo?.materialUnits}}</text>
<text>请领单位</text>
</view>
</view>

View File

@ -9,7 +9,7 @@
<view class="zuo">
<view class="carp">
<view class="zuoimg tp">
<image :src="objtake.materialImg?serverUrl+objtake.materialImg:'/static/index/procurement/k.png'" mode="aspectFill"/>
<image :src="objtake?.materialImg?serverUrl+objtake?.materialImg:'/static/index/procurement/k.png'" mode="aspectFill"/>
</view>
<view class="youcont">
<view>{{objtake.materialName}}</view>
@ -82,7 +82,10 @@
},
show: {
type: Boolean
}
},
num:{
type:Number
}
})
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
const emit = defineEmits([ 'fill' ,'right'])
@ -90,7 +93,7 @@
watch(()=>props.show,
()=>{
if(props.show==true){
relNumber.value = 1;
relNumber.value = props.num ? props.num : 1;
stringShow.value = toFixed4ByPadStart(relNumber.value)
setTimeout(()=>{
showbox.value = true
@ -117,7 +120,7 @@
stringShow.value = toFixed4ByPadStart(relNumber.value);
return
}
if(isZero.value == false){
if(isZero.value == false&&item>0){
isZero.value = true;
relNumber.value = item;
stringShow.value = toFixed4ByPadStart(relNumber.value);

View File

@ -8,7 +8,7 @@
</view>
<view class="cont">
<view class="leftbox">
<image :src="objtake.materialImg?serverUrl+objtake.materialImg:'/static/index/procurement/k.png'" mode="aspectFill"/>
<image :src="objtake?.materialImg?serverUrl+objtake?.materialImg:'/static/index/procurement/k.png'" mode="aspectFill"/>
<view>
<text>耗材用品</text>
<text>复健用品</text>

View File

@ -164,7 +164,7 @@
<view class="right-one" v-for="(item,index) in rightarray" :key="index">
<view class="right-one-left">
<image class="left-image"
:src="item.materialInfo.materialImg?serverUrl+item.materialInfo.materialImg:'/static/index/procurement/k.png'"
:src="item.materialInfo?.materialImg?serverUrl+item.materialInfo?.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill"></image>
<view class="left-tages" style="margin-top: -15rpx;">
耗材用品
@ -175,13 +175,13 @@
</view>
<view class="right-one-right">
<view class="right-title">
{{ item.materialInfo.materialName }}
{{ item.materialInfo?.materialName }}
</view>
<view class="right-setting">
规格型号
</view>
<view class="right-mm">
{{ item.materialInfo.materialNo }}
{{ item.materialInfo?.materialNo }}
</view>
<view class="right-down">
<view class="">
@ -195,7 +195,7 @@
<view class="right-shu"></view>
<view class="">
<view class="right-first-num" style="font-weight: 500;">
{{ item.materialInfo.materialUnits }}
{{ item.materialInfo?.materialUnits }}
</view>
<view class="right-first-type">
请领单位

View File

@ -1,27 +1,9 @@
<template>
<view class="buttons-father" :style="transition?{opacity: `1`}:{opacity: `0`}" v-show="isShow">
<!-- <view class="ipt">
<input type="text" v-model="plzinfo.searchContent" placeholder="请领单号" @confirm="clickconfirm" />
</view>
<view class="scr" @click="clickconfirm">
检索
</view>
<view class="shx" @click="chongzhi">
<image src="/static/index/requestform/chongzhi.png" mode="aspectFill"></image>
<view class="shx-font">
重置
</view>
</view>
<view class="right-button" @click="badshow=true" v-show="plsbuy[lefttarget]?.status==`1`">
<image src="/static/index/warehouse/procurement/picking/bebad.png" />
<view>
作废
</view>
</view> -->
<view class="button-tilte">
回退单
</view>
<view class="right-button-father" v-if="!nomessageshow">
<view class="right-button-father" v-if="!nomessageshow&&plsbuy[lefttarget]?.status=='3'">
<view class="right-button" @click="badshow=true">
<image src="/static/index/warehouse/procurement/picking/bebad.png" />
<view>
@ -40,7 +22,6 @@
</view>
<tanchuang :show="badshow" font="确定要作废这个回退单吗" @back="badshow=false;" @right="zuofei"> </tanchuang>
<tijiao :show="tijiaoshow" :plsbuy="plsbuy[lefttarget]" @back="tijiaoshow=false;"> </tijiao>
<view class="other-contain" :style="transition?{opacity: `1`}:{opacity: `0`}" v-show="isShow && !nomessageshow">
<view class="other-contain-left">
@ -136,14 +117,14 @@
</view>
<view class="pls-card-middle-one">
<view class="middle-title">
{{ Number(v.status)==5 ? v.shTime?.slice(0,10).replace(/-/g, '.') :""}}
{{ Number(v?.status)==5 ? v.shTime?.slice(0,10).replace(/-/g, '.') :""}}
</view>
<view class="middle-heng-father">
<!-- <view class="middle-ball" :style="{backgroundColor: `#1083F8`}"></view> -->
<view class="middle-ball" :style="{backgroundColor: `#E5E5E5`}"
v-if="Number(v.status)!=5"></view>
v-if="Number(v?.status)!=5"></view>
<image class="middle-ball-img" v-else src="/static/index/requestform/isok.png" />
</view>
<view class="end-font">
@ -171,78 +152,30 @@
</scroll-view>
</view>
<view class="other-contain-right">
<scroll-view scroll-y="true" scroll-with-animation class="right-contain">
<view class="right-ones">
<view class="right-one" v-for="(item,index) in rightarray" :key="index">
<view class="right-one-left">
<image class="left-image"
:src="item.materialInfo.materialImg?serverUrl+item.materialInfo.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill"></image>
<view class="left-tages" style="margin-top: -15rpx;">
耗材用品
</view>
<view class="left-tages">
支架
</view>
</view>
<view class="right-one-right">
<view class="right-title">
{{ item.materialInfo.materialName }}
</view>
<view class="right-setting">
规格型号
</view>
<view class="right-mm">
{{ item.materialInfo.materialNo }}
</view>
<view class="right-down">
<view class="">
<view class="right-first-num">
{{ item.qlNum }}
</view>
<view class="right-first-type">
请领数量
</view>
</view>
<view class="right-shu"></view>
<view class="">
<view class="right-first-num" style="font-weight: 500;">
{{ item.materialInfo.materialUnits }}
</view>
<view class="right-first-type">
请领单位
</view>
</view>
</view>
</view>
<view class="right-buttons">
</view>
</view>
</view>
<defaultr cont="暂无数据" v-if="rightarray.length==0 && rightdonghua"
style="width: 30%;height: 30%;position: absolute;">
</defaultr>
</scroll-view>
<htditem :InvoicingList="rightarray" :status="plsbuy[lefttarget]?.status" @comfig="comfig" @del="del"></htditem>
</view>
<errorshow :show="openerror" :font="errmsg" @close="openerror=false" />
<submits :show="tijiaoshow" :list="rightarray" @fill="tijiaoshow = false" @config="tijiao"></submits>
<!-- <tijiao :show="tijiaoshow" :plsbuy="plsbuy[lefttarget]" @back="tijiaoshow=false;"> </tijiao> -->
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import { queryQld, queryQldWlInfo, transRead, cancellation, confirmReceipt } from '../api/api.js'
import { queryQld, queryQldWlInfo, transRead, cancellation, confirmReceipt,updateQldWlSl,deleteQldWl,submitQld } from '../api/api.js'
import nomessage from '../common/nomessage.vue'
import defaultr from '../common/default.vue'
import tijiao from '../common/tijiao.vue'
import htditem from '../common/htditem.vue'
import submits from '../common/submits.vue'
const props = defineProps({
isShow: {
type: Boolean,
required: true,
},
});
const openerror = ref(false)
const errmsg = ref('')
const tagsarray = ref(["全部", "待出库", "已出库", "已收货 ", "已作废"])
// const nottrue = Array(10).fill(null)
// 使watchisShow
@ -256,6 +189,8 @@
// console.log("????",transition.value)
setTimeout(() => {
transition.value = true;
lefttarget.value = 0;
firstgetqueryCgdList();
}, 50)
} else {
transition.value = false;
@ -263,11 +198,7 @@
}
)
onMounted(() => {
})
const lanjie = ref(false);
const selectType = ref(0)
const changetype = (index : number) => {
if ((selectType.value == index) && index) {
@ -355,7 +286,8 @@
}
cannomessage.value = false
plsbuy.value = []
plsbuy.value = [];
console.log(res)
plsbuy.value.push(...res.result.records)
// console.log("", plzinfo)
// console.log("", res.result.records)
@ -364,12 +296,7 @@
// console.log("???", res)
if (res.result.records.length) {
rightdonghua.value = false;
queryQldWlInfo({ qldNo: res.result.records[0].qldNo }).then((element : any) => {
rightarray.value = []
rightarray.value.push(...element.result)
rightdonghua.value = true;
})
rightinfolist();
}
if (res.result.records.length < plzinfo.pageSize) {
@ -378,6 +305,28 @@
})
}
const del = (e) =>{
let obj = {
qldNo:plsbuy.value[lefttarget.value].qldNo,
wlId:e.wlId,
}
deleteQldWl(obj).then(res=>{
if(res.success){
rightinfolist();
}else{
errmsg.value = res.message;
openerror.value = true;
}
})
// /api/pad/invoicing/qld/deleteQldWl
}
const rightinfolist = ()=>{
queryQldWlInfo({ qldNo: plsbuy.value[lefttarget.value].qldNo }).then((element : any) => {
rightarray.value = [];
rightarray.value.push(...element.result)
rightdonghua.value = true;
})
}
const setout = ref(true)
let times = null
const plsbuytolower = () => {
@ -393,7 +342,6 @@
const getqueryCgdList = () => {
if (!plzinfo.canpull) return
queryQld(plzinfo).then((res : any) => {
console.log("???加载", res.result.records)
plsbuy.value.push(...res.result.records)
alltotal.value = res.result.total
if (res.result.records.length < plzinfo.pageSize) {
@ -405,25 +353,8 @@
let num = Math.ceil((index + 1))
leftscrolltop.value = (num - 2) * 175.4;
lefttarget.value = index;
rightdonghua.value = false;
queryQldWlInfo({ qldNo: plsbuy.value[index].qldNo }).then((element : any) => {
rightarray.value = [];
rightarray.value.push(...element.result)
rightdonghua.value = true;
})
// 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);
// }
// })
rightinfolist();
if (item.izYgRead == 'N') {
let param = {
status: `yg`,
@ -437,13 +368,22 @@
}
}
const serverUrl = ref("")
onLoad(() => {
// console.log("",uni.getStorageSync('NUall'))
firstgetqueryCgdList();
serverUrl.value = uni.getStorageSync('serverUrl') + '/sys/common/static/';
// getSelectList();
})
const comfig = (e,v) =>{
let obj = {
qldNo:plsbuy.value[lefttarget.value].qldNo,
wlId:v.wlId,
qlNum:e
}
updateQldWlSl(obj).then(res=>{
if(res.success){
rightinfolist();
}else{
errmsg.value = res.message;
openerror.value = true;
}
})
}
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
const badshow = ref(false)
const zuofei = () => {
@ -472,38 +412,32 @@
})
}
const tijiaoshow = ref(false)
// const tijiao = () => {
// let param = {
// qldNo: plsbuy.value[lefttarget.value].qldNo,
// elderId: uni.getStorageSync('NUall').elderId,
// nuId: uni.getStorageSync('nuId')
// }
// confirmReceipt(param).then((res : any) => {
// tijiaoshow.value = false
// if (res.success) {
// } else {
// plzinfo.pageNo = 1;
// leftscrolltop.value = 1
// setTimeout(() => {
// leftscrolltop.value = 0
// }, 50)
// lefttarget.value = 0
// plzinfo.canpull = true;
// firstgetqueryCgdList();
// }
// setTimeout(() => {
// uni.showToast({
// title: res.message,
// icon: 'none', // 'none'
// duration: 3000
// })
// }, 300)
// })
// }
const tijiaoshow = ref(false);
const tijiao = ()=>{
let obj = {
nuId:plzinfo.nuId,
elderId:plzinfo.elderId,
qldNo:plsbuy.value[lefttarget.value].qldNo
}
submitQld(obj).then(res=>{
console.log(res)
if(res.success&&res.result.status=='success'){
uni.showToast({
icon:'success',
title:'提交成功'
})
setTimeout(()=>{
plsbuy.value[lefttarget.value] = res.result.result
tijiaoshow.value = false;
rightinfolist();
},800)
}else{
errmsg.value = res.result.message;
openerror.value = true;
}
})
}
</script>
<style scoped lang="less">
@ -896,126 +830,7 @@
}
.other-contain-right {
width: 64%;
margin-left: 1%;
height: 103.5%;
.right-contain {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
position: relative;
.right-ones {
display: flex;
width: 100%;
flex-wrap: wrap;
.right-one {
width: 570rpx;
height: 261rpx;
margin-right: 20rpx;
// margin-top: 15rpx;
margin: 7.5rpx 0;
background-color: #fff;
border-radius: 30rpx;
display: flex;
overflow: hidden;
.right-one-left {
height: 100%;
min-width: 40%;
display: flex;
flex-direction: column;
align-items: center;
.left-image {
width: 150rpx;
height: 150rpx;
// margin: 15rpx 0;
margin-top: 10rpx;
margin-bottom: 15rpx;
// margin-top: 5rpx;
}
.left-tages {
width: 130rpx;
height: 43rpx;
border-radius: 30rpx;
display: flex;
justify-content: center;
align-items: center;
color: #555555;
border: 1rpx solid #D2D2D2;
margin-top: 5rpx;
font-size: 23rpx;
}
}
.right-one-right {
height: 100%;
min-width: 60%;
.right-title {
font-size: 34rpx;
font-weight: 600;
margin-top: 25rpx;
color: #222222;
width: 300rpx;
overflow: hidden;
/* 必须 */
white-space: nowrap;
/* 强制单行 */
text-overflow: ellipsis;
/* 显示省略号 */
}
.right-setting {
color: #888888;
margin-top: 5rpx;
font-size: 25rpx;
}
.right-mm {
color: #555555;
font-size: 28rpx;
}
.right-down {
display: flex;
margin-top: 15rpx;
.right-first-num {
font-size: 35rpx;
color: #555555;
font-weight: 600;
}
.right-first-type {
color: #888888;
font-size: 23rpx;
}
.right-shu {
width: 2rpx;
height: 50rpx;
background-color: #C9C9C9;
margin: 0 40rpx;
margin-top: 10rpx;
}
}
}
.right-buttons{
width: 40vw;
height: 100%;
background-color: red;
}
}
}
}
width: 55vw;
}
}
</style>

View File

@ -676,7 +676,7 @@
{{v.status_dictText}}
</view>
<image class="middle-img"
:src="v.materialImg?serverUrl + v.materialImg : '/static/index/warehouse/procurement/k.png'"
:src="v?.materialImg?serverUrl + v?.materialImg : '/static/index/warehouse/procurement/k.png'"
mode="aspectFill"></image>
<!-- <image class="middle-img" :src=" '/static/zhiniaoku.png'" mode="aspectFill"></image> -->
<view class="middle-right">

View File

@ -504,16 +504,16 @@
<view class="statues-gray">
单据状态
</view>
<view :class="plzinfo.cgdType==`0,1`?`statues-button-target`:`statues-button`" style="margin-left: 4%;"
@click="plzinfo.cgdType=`0,1`;search()">
<view :class="plzinfo.status==''?`statues-button-target`:`statues-button`" style="margin-left: 4%;"
@click="plzinfo.cgdType=`0,1`;plzinfo.status='';search()">
全部
</view>
<view :class="plzinfo.cgdType==`0`?`statues-button-target`:`statues-button`"
@click="plzinfo.cgdType=`0`;search()">
<view :class="plzinfo.status==`0`?`statues-button-target`:`statues-button`"
@click="plzinfo.cgdType=`0`;plzinfo.status='0';search()">
待入库
</view>
<view :class="plzinfo.cgdType==`1`?`statues-button-target`:`statues-button`"
@click="plzinfo.cgdType=`1`;search()">
<view :class="plzinfo.status==`1`?`statues-button-target`:`statues-button`"
@click="plzinfo.cgdType=`0`;plzinfo.status='1';search()">
待完结
</view>
</view>
@ -1310,7 +1310,8 @@
startTime: "",
endTime: "",
cgBy: "",
nuId: uni.getStorageSync('nuId')
nuId: uni.getStorageSync('nuId'),
status:''
})
const mobanplzinfo = {
pageNo: 1,

View File

@ -107,8 +107,8 @@
mode="aspectFill">
</image>
<view class="cardp">
<view v-if="v.materialInfo.categoryName">{{v.materialInfo.categoryName}}</view>
<view v-if="v.materialInfo.typeName">{{v.materialInfo.typeName}}</view>
<view v-if="v.materialInfo?.categoryName">{{v.materialInfo?.categoryName}}</view>
<view v-if="v.materialInfo?.typeName">{{v.materialInfo?.typeName}}</view>
</view>
</view>
<view class="msitem guodu" >

View File

@ -21,17 +21,17 @@
mode="aspectFill">
</image>
<view class="cardp">
<view v-if="v.materialInfo.categoryName">{{v.materialInfo.categoryName}}</view>
<view v-if="v.materialInfo.typeName">{{v.materialInfo.typeName}}</view>
<view v-if="v.materialInfo?.categoryName">{{v.materialInfo?.categoryName}}</view>
<view v-if="v.materialInfo?.typeName">{{v.materialInfo?.typeName}}</view>
</view>
</view>
<view class="msitem guodu" >
<view>
<view>{{v.materialInfo.materialName}}</view>
<view>{{v.materialInfo?.materialName}}</view>
</view>
<view>
<text style="white-space: nowrap;"> 规格型号: </text>
<view>{{v.materialInfo.specificationModel}}</view>
<view>{{v.materialInfo?.specificationModel}}</view>
</view>
<view>
<view>
@ -39,7 +39,7 @@
<text>请领数量</text>
</view>
<view>
<text>{{v.materialInfo.materialUnits}}</text>
<text>{{v.materialInfo?.materialUnits}}</text>
<text>请领单位</text>
</view>
</view>

View File

@ -12,21 +12,21 @@
<image :src="objtake.materialInfo?.materialImg?serverUrl+objtake.materialInfo?.materialImg:'/static/index/procurement/k.png'" mode="aspectFill"/>
</view>
<view class="youcont">
<view>{{objtake.materialInfo.materialName}}</view>
<view>{{objtake.materialInfo?.materialName}}</view>
<view>
<view>
物料编码
<text>{{objtake.materialInfo.materialNo}}</text>
<text>{{objtake.materialInfo?.materialNo}}</text>
</view>
<view>
请购单位
<text>{{objtake.materialInfo.materialUnits}}</text>
<text>{{objtake.materialInfo?.materialUnits}}</text>
</view>
</view>
<view>
<view>
规格型号
<text style="white-space: nowrap;">{{objtake.materialInfo.specificationModel}}</text>
<text style="white-space: nowrap;">{{objtake.materialInfo?.specificationModel}}</text>
</view>
</view>
</view>

View File

@ -14,17 +14,17 @@
mode="aspectFill">
</image>
<view class="cardp">
<view v-if="v.materialInfo?.categoryName">{{v.materialInfo.categoryName}}</view>
<view v-if="v.materialInfo?.typeName">{{v.materialInfo.typeName}}</view>
<view v-if="v.materialInfo?.categoryName">{{v.materialInfo?.categoryName}}</view>
<view v-if="v.materialInfo?.typeName">{{v.materialInfo?.typeName}}</view>
</view>
</view>
<view class="msitem guodu" >
<view>
<view>{{v.materialInfo.materialName}}</view>
<view>{{v.materialInfo?.materialName}}</view>
</view>
<view>
<text style="white-space: nowrap;"> 规格型号: </text>
<view>{{v.materialInfo.specificationModel}}</view>
<view>{{v.materialInfo?.specificationModel}}</view>
</view>
<view>
<view>
@ -32,7 +32,7 @@
<text>退货数量</text>
</view>
<view>
<text>{{v.materialInfo.materialUnits}}</text>
<text>{{v.materialInfo?.materialUnits}}</text>
<text>退货单位</text>
</view>
</view>
@ -53,7 +53,7 @@
</view>
</scroll-view>
<taking :show="tuihuoshow" :objtake="tuihuoobj" @fill="tuihuoshow = false" @right="right"></taking>
<errorshow :show="openerror" :font="errmsg" @close="openerror=false" />
</view>
</template>
@ -70,6 +70,8 @@
type: String
}
})
const openerror = ref(false)
const errmsg = ref('')
const carnum = ref(0)
const caigouobj = ref({})
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
@ -90,6 +92,11 @@
const tuihuoshow = ref(false)
const tuihuoobj = ref({})
const comfig=(v,i,t)=>{
if(props.status == '0'){
errmsg.value = '未开始服务不能添加退货物料!';
openerror.value = true;
return
}
tuihuoobj.value = v;
tuihuoshow.value = true;

View File

@ -10,7 +10,7 @@
<view class="yjbox" v-for="(v,i) in Material" :key="i" >
<image :src="v.materialInfo?.materialImg?serverUrl+v.materialInfo?.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill"></image>
<view>{{v.materialInfo.materialName}}</view>
<view>{{v.materialInfo?.materialName}}</view>
<text class="ytj" v-if="v.thNum>=0">{{v.thNum}}</text>
<view class="zhanwei" v-if="moredex==1" @click.stop="del(v)">
<view>-</view>

View File

@ -6,17 +6,29 @@
</view>
<view class="select">
<view>
<!-- <view @click="tive(1)" :class="actv==1?'act':''">全部</view> -->
<text>总计:{{wlobjs.crkzl}}</text>
<text>出库{{wlobjs.cksl}}</text>
<text>入库{{wlobjs.rksl}}</text>
</view>
<view>
<view @click="crflag = !crflag">
{{crkarr[cr].name}}
<image src="/static/index/hulilist/xia.png" class="guodu" :style="crflag?'transform: rotate(180deg);':''" mode="aspectFill"></image>
<view class="mengban" v-if="crflag" @click.stop="crflag = false"></view>
<view class="tanchu guodu" :style="crflag?'height:15vw ':'height:0vw;'" >
<view class="gysscrol" v-if="crflag">
<view v-for="(v,i) in crkarr" :key='i' :class="cr==i?'acts':''" @click.stop="gysid(v,i)">
<text>{{v.name}}</text>
<image src="/static/index/procurement/d.png" mode="aspectFill"></image>
</view>
</view>
</view>
</view>
<view @click="tive()">
{{actv?'日期从近到远':'日期从远到近'}}
<image src="/static/index/hulilist/xia.png" class="guodu" :style="!actv?'transform: rotate(180deg);':''" mode="aspectFill"></image>
</view>
</view>
<view>
<text>总计:{{wlobjs.crkzl}}</text>
<text>出库{{wlobjs.cksl}}</text>
<text>入库{{wlobjs.rksl}}</text>
</view>
</view>
<scroll-view scroll-y="true" class="crkscroll" scroll-with-animation @scrolltolower="scrolltolower()">
<view class="cgrk" v-for="(v,i) in list" :key='i'>
@ -31,6 +43,7 @@
<text> </text>
</view>
</view>
<defaults cont="暂无内容" v-if="list.length == 0 && status == 'nomore'"></defaults>
<view style="height:2vw;width: 100%;display: flex;align-items: center;justify-content: center;">
<u-loadmore :status="status" :loadText="{nomore:'暂无更多数据'}" v-if="list.length>3" />
</view>
@ -42,6 +55,7 @@
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick ,defineComponent,watch} from 'vue';
import { queryCrkInfoNumList ,queryCrkInfoList } from '../api/lunpan.js'
import defaults from './default.vue';
const props = defineProps({
wl:{
type:Object
@ -73,13 +87,31 @@
setTimeout(() => {
showbox.value = false;
list.value = [];
crflag.value = false;
}, 400)
}
})
const crkarr = ref([
{name:'全部',value:''},
{name:'入库',value:'1'},
{name:'出库',value:'3'}
])
const gysid = (v,i) =>{
cr.value = i;
crflag.value = false;
pageNo.value = 1;
list.value = [];
InfoList();
}
const crflag = ref(false);
const pageNo = ref(1);
const cr = ref(0);
const list = ref([])
const InfoList = () =>{
let obj = {
crkStatus:crkarr.value[cr.value].value,
wlId:props.wl.wlId,
nuId:props.wl.nuId,
colomnDesc:actv.value?'desc':'asc',//ascdesc
@ -215,7 +247,7 @@
>view {
display: flex;
margin-left: 1.5vw;
&:nth-child(2) {
&:nth-child(1) {
justify-content: space-between;
text {
@ -225,20 +257,67 @@
}
}
&:nth-child(1) {
&:nth-child(2) {
justify-content: flex-end;
view {
>view {
min-width: 5vw;
height: 2.6vw;
border-radius: 1.3vw;
border: 1px solid #DCDCDC;
padding: 0 1.4vw;
align-items: center;
display: flex;
align-items: center;
margin: 0 0.5vw;
position: relative;
padding: 0 1vw;
>.tanchu{
width: 10vw;
max-height: 23vh;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 0.5vw 0rpx rgba(174,175,176,0.35);
border-radius: 1.1vw;
padding: 0 1.4vw;
position: absolute;
left: -2vw;
top: 3vw;
z-index: 211;
display: flex;
flex-direction: column;
.gysscrol{
width: 100%;
height: 100%;
.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;
height: 7vh;
position: relative;
&:nth-child(1){
// margin-top: 1.2vw;
}
image{
position: absolute;
right: 0.2vw;
top: 50%;
transform: translateY(-50%);
width: 1vw !important;
height: 0.7vw !important;
display: none;
}
}
}
}
image {
width: 0.7vw;
height: 0.5vw;
@ -247,13 +326,21 @@
}
}
.act{
background: linear-gradient(to bottom, #00C9FF, #0076FF);
color: #fff;
}
}
}
.mengban{
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 210;
}
.shopcont {
width: 100%;
height: 10vw;

View File

@ -355,19 +355,13 @@
if (caigouobj.value.Limitnum == 1 && e == -1) { return }
caigouobj.value.Limitnum += e;
}
const adfangdou = ref(true)
const right = (n : number, nm : any, type : Object) => {
console.log(nm, n, type)
// let d = Number(caigouobj.value.upperLimit)-Number(caigouobj.value.kcsl)
// if(d>=n){
// caigouobj.value.Limitnum = n;
// }else{
// caigouobj.value.Limitnum = d;
// }
// if(n<1){
// caigouobj.value.Limitnum = 1;
// }
connfig(nm, n, type)
if(adfangdou.value){
addflag.value = false;
connfig(nm, n, type)
}
}
const timers = ref(true)
const connfig = (nm : any, num : Number, type : Object) => {
@ -403,20 +397,18 @@
}else{
errmsg.value = res.message;
openerror.value = true;
adfangdou.value = true;
}
setTimeout(() => {
timers.value = true;
if (res.success) {
adfangdou.value = true;
addflag.value = false;
detailsshow.value = false;
shoppcar();
warn.pageNo = 1;
Material.value = [];
getWaringMaterial();
console.log("看看",caigouobj.value)
// console.log("",forthmenuIndex.value)
console.log("参数",InvoicingList.value)
if (caigouobj.value.yj) {
InvoicingList.value.forEach((element:any)=>{
if(element.id===caigouobj.value.id){

View File

@ -194,9 +194,14 @@
})
}
const adfangdou = ref(true);
//
const right = (n:number,nm:any,type:Object) => {
setTimeout(()=>{
connfig(nm,n,type)
if(adfangdou.value){
connfig(nm,n,type);
adfangdou.value = false;
}
},30)
}
@ -216,9 +221,6 @@
referenceUnitPrice:type.price,
dhbl:type.num
}
console.log(`111111111111111111111111111111`,dt)
eddShoppingCartList(dt).then(res=>{
timers.value=true;
if(res.success){
@ -236,7 +238,7 @@
errmsg.value = res.message;
openerror.value = true;
}
adfangdou.value = true;
})
}
const caigouflag = ref(false)

View File

@ -228,7 +228,7 @@
let obj = {
pkId: tharrlist.value[cardindex.value].id,
kfId: v.kfId,
wlId: v.materialInfo.id,
wlId: v.materialInfo?.id,
thNum: e,
nuId: tharrlist.value[cardindex.value].nuId,
elderId: tharrlist.value[cardindex.value].elderId
@ -280,7 +280,7 @@
const del = () => {
let obj = {
pkId: tharrlist.value[cardindex.value].id,
wlId: objtake.value.materialInfo.id
wlId: objtake.value.materialInfo?.id
}
removeWl(obj).then(res => {
if (res.success) {