购物车

This commit is contained in:
wangweidong 2025-10-23 16:02:14 +08:00
parent c53687a9f5
commit cf031622d4
6 changed files with 683 additions and 99 deletions

View File

@ -88,11 +88,17 @@ export const generatedPurchaseViewOrder = (params) => {
}
export const deleteQgInfoById = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/deleteQgInfoById`,
method: 'DELETE',
data: params,
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/deleteQgInfoById?id=`+params,
method: 'DELETE'
})
}
export const emptiedQgInfo = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/emptiedQgInfo`,
method: 'DELETE'
})
}
// 作废
export const voidedCgdMain = (params) => {

View File

@ -2,7 +2,7 @@
<view>
<!-- 采购 -->
<view class="box">
<view class="leftr" v-if="shyp">
<view class="leftr" v-if="lie">
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scrolltop" class="scroll-Y"
@scrolltolower="scrolltolower" :lower-threshold="400" @scroll="scrollview">
<view class="boxibigtem" v-for="(v,i) in InvoicingList" :key='i'
@ -44,7 +44,7 @@
</view>
</view>
<view class="lefts" v-if="!shyp">
<view class="lefts" v-if="!lie">
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scrolltop" class="scroll-Y"
@scrolltolower="scrolltolower" :lower-threshold="200" @scroll="scrollview">
<view class="boxitem" v-for="(v,i) in InvoicingList" :key='i'
@ -102,7 +102,7 @@
<view class="guodu"></view>
</view>
<text>
{{!shyp?'两列':'三列'}}
{{!shyp?'停用':'启用'}}
</text>
</view>
</view>
@ -120,6 +120,16 @@
<text>{{cellobj?.fzrTel?cellobj?.fzrTel:'-'}}</text>
</view>
</view>
<view style="display: flex;flex-direction: column;align-items: center;margin-left: 3.8vw;">
<view class="swsh guodu" :class="lie?'act':''" @click="lie=!lie">
<view class="guodu"></view>
</view>
<text style=" white-space: nowrap;
font-weight: 400;
font-size: 1vw;
color: #666666;">{{lie?'三列':'两列'}}</text>
</view>
</view>
</view>
@ -235,18 +245,18 @@
<view class="title">采购单</view>
<scroll-view scroll-y="true" class="cgdscroll">
<view class="cardcd" v-for="(v,i) in generatedOrder" :key='i'>
<view class="gys">供应商:{{v.suppliersName}}</view>
<view class="gys">供应商:{{v.gysName}}</view>
<view class="cgdh">
<view>采购单号:{{v.cgdNo}}</view>
<view>采购人:梁嘉豪 </view>
<view>采购金额<text>1356.82</text></view>
<view>采购人:{{v.qgBy}} </view>
<view>采购金额<text>{{v.totalPrice}}</text></view>
</view>
<view class="boxitem" v-for="(f,l) in v.cgdInfoList" :key='i' >
<view>{{f.materialName}}</view>
<view>规格型号: {{f.specificationModel}}</view>
<view>采购单位 {{f.materialUnits}}</view>
<view>库存数量 {{f.kcsl}}</view>
<view>{{f.wlName}}</view>
<view style="white-space: nowrap;">规格型号{{f.wlSpecificationModel}}</view>
<view>采购单位{{f.wlUnits}}</view>
<view>库存数量{{f.kcsl}}</view>
<view>
<view class="carditem" :class="{'hl':f.tagType==1,'yl':f.tagType==2,'bj':f.tagType>2}">
<image src="/static/index/warehouse/procurement/hl.png" mode="aspectFill"
@ -264,25 +274,41 @@
</view>
</view>
<view class="dbgys">
<view>
<view>
<view>采购数量<text>50</text></view>
<view>采购金额<text>50</text></view>
<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>供应商长春市天林商贸有限公司</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>
</scroll-view>
<view class="tj">
<text @click="connfig">确定</text>
</view>
</view>
<view class="mengban" v-if="tost" @click="qingkong"></view>
<view class="toast guodu" v-if="tost" >
<view class="tit">提示</view>
<view class="cont">
<view v-html="delstr" v-if="anmidex==3"></view>
<view v-html="delstr" v-if="anmidex==4"></view>
</view>
<view class="cfg">
<view @click="qingkong">取消</view>
<view @click="del(3)" v-if="anmidex==3">确认</view>
<view @click="del(4)" v-if="anmidex==4">确认</view>
</view>
</view>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineProps } from 'vue';
import { queryShoppingCartList, getMaterialTreeData, queryNuInfoByNuId, updateKfstatus ,queryWlInfoByWlId,generatedPurchaseOrder,generatedPurchaseViewOrder } from './api/lunpan.js'
import { queryShoppingCartList, getMaterialTreeData, queryNuInfoByNuId, updateKfstatus,deleteQgInfoById,emptiedQgInfo ,queryWlInfoByWlId,generatedPurchaseOrder,generatedPurchaseViewOrder } from './api/lunpan.js'
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import shadowview from './components/ShadowView.vue';
import calculator from './components/calculator.vue';
@ -301,7 +327,8 @@
const wlxq = ref(false);
const cgd = ref(false);
const tost = ref(false);
const lie = ref(false)
const scrollnum = ref(0);
@ -334,6 +361,27 @@
}
})
}
const timerflag = ref(true);
const connfig = () =>{
if(timerflag.value==false){return}
timerflag.value = false;
generatedPurchaseOrder(generatedOrder.value).then(res=>{
uni.showToast({
icon:res.success?'success':'error',
title:res.message
})
setTimeout(()=>{
if(res.success){
InvoicingList.value = [];
form.pageNo = 1;
qingkong()
queryInvo()
timerflag.value = true;
}
},700)
})
}
const shopclick = (i : number, k : number,flag:boolean) => {
if(i==shopitem.value&&!flag){
InvoicingList.value[shopitem.value].flag = !InvoicingList.value[shopitem.value].flag;
@ -408,6 +456,7 @@
anmidex.value = -1;
wlxq.value = false;
cgd.value = false;
tost.value = false;
}
const cell = () => {
queryNuInfoByNuId(form).then(res => {
@ -540,6 +589,7 @@
}
const anmidex = ref(-1)
const generatedOrder = ref([])
const delstr = ref('')
const admiclick = (i : number) => {
if (anmidex.value == 2) {
anmidex.value = -1
@ -559,9 +609,7 @@
arr.push(item)
}
})
console.log(arr)
generatedPurchaseViewOrder(arr).then(res=>{
console.log(res)
generatedOrder.value = res.result
})
cgd.value = true
@ -570,11 +618,35 @@
queryWlInfo();
break;
case 3:
let str = ''
let a = []
InvoicingList.value.forEach((item,i)=>{
if(item.flag){
str+='<br />'+' · '+item.wlName;
a.push(item)
}
})
if(a.length==0){
uni.showToast({
title:'购物车暂无物料~',
icon:'none'
})
return
}
delstr.value = '<view style="font-weight: 600 ">是否删除</view>'+str
tost.value = true;
break;
case 4:
if(InvoicingList.value.length==0){
uni.showToast({
title:'购物车已清空~',
icon:'none'
})
return
}
delstr.value = ' 是否清空购物车? '
tost.value = true;
break;
case 5:
uni.navigateTo({
@ -587,6 +659,45 @@
}
}
}
const del = (e:number)=>{
if(e==3){
let arr = [];
let delstr = '';
InvoicingList.value.forEach((item,i)=>{
if(item.flag){
delstr+=item.id+','
arr.push(i)
}
})
if(delstr.indexOf(",")>-1) delstr = delstr.substring(0,delstr.length-1)
arr.sort((a, b) => b - a)
deleteQgInfoById(delstr).then(res=>{
uni.showToast({
icon:res.success?'success':'none',
title:res.message
})
if(res.success){
arr.forEach(item=>{
InvoicingList.value.splice(item,1)
})
qingkong()
}
})
}else{
emptiedQgInfo().then(res=>{
if(res.success){
InvoicingList.value = [];
queryInvo()
qingkong()
}
uni.showToast({
icon:res.success?'success':'none',
title:res.message
})
})
}
}
//
const queryWlInfo = ()=>{
let obj = {
@ -663,6 +774,58 @@
</script>
<style scoped lang="less">
.toast{
width: 26vw;
max-height: 40vh;
position: fixed;
z-index: 105;
right: 1.5vw;
bottom: 1.5vw;
background: #fff;
border-radius: 1.6vw;
padding: 2vw 1vw 5vw;
.cfg{
width: 100%;
height: 3.5vw;
display: flex;
position: absolute;
bottom: 0;
left: 0vw;
>view{
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.2vw;
font-weight: 600;
border-top: 1px solid rgba(239, 240, 244, 1);
&:nth-child(2){
color:rgba(3, 133, 250, 1);
border-left: 1px solid rgba(239, 240, 244, 1);
}
}
}
.cont{
width: 100%;
font-size: 1.3vw;
margin: 0.5vw auto 0;
overflow-y: scroll;
max-height: 23.5vh;
text-align: center;
}
.tit{
width: 100%;
height: 3vw;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.4vw;
font-weight: bolder;
letter-spacing: 0.3vw;
}
}
.uncgd{
bottom: -96vh !important;
}
@ -676,9 +839,10 @@
bottom: 1.5vw;
left: 22vw;
padding:1.5vw 2vw 0;
.cgdscroll{
width: 100%;
height: calc(95vh - 3.5vw);
height: calc(95vh - 7vw);
.cardcd{
>.boxitem {
width: 22vw;
@ -700,13 +864,14 @@
border-radius:0 0 1.6vw 1.6vw;
border: 2px solid rgba(239, 240, 244, 1);
display: flex;
padding: 0.6vw 1.5vw;
padding: 0.6vw 1.5vw 0;
justify-content: space-between;
.act{
background: rgba(231, 240, 251, 1) !important;
border: 1px solid rgba(0, 118, 214, 1) !important;
}
>view{
white-space: nowrap;
&:nth-child(1){
display: flex;
flex-direction: column;
@ -715,7 +880,6 @@
color: #888888;
view{
display: flex;
justify-content: space-between;
align-items: center;
}
text{
@ -838,6 +1002,30 @@
}
}
}
.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{
height: 2vw;
font-weight: 400;
@ -1301,7 +1489,7 @@
position: absolute;
left: 0;
bottom: 0vw;
background: rgba(239, 240, 244, 1);
background: #f7f7fa;
border-radius:0 0 1.6vw 1.6vw;
border: 2px solid rgba(239, 240, 244, 1);
display: flex;

View File

@ -2,7 +2,7 @@
<view>
<!-- 采购 -->
<view class="box">
<view class="leftr" v-if="shyp">
<view class="leftr" v-if="lie">
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scrolltop" class="scroll-Y"
@scrolltolower="scrolltolower" :lower-threshold="400" @scroll="scrollview">
<view class="boxibigtem" v-for="(v,i) in InvoicingList" :key='i'
@ -44,7 +44,7 @@
</view>
</view>
<view class="lefts" v-if="!shyp">
<view class="lefts" v-if="!lie">
<scroll-view scroll-y="true" scroll-with-animation :scroll-top="scrolltop" class="scroll-Y"
@scrolltolower="scrolltolower" :lower-threshold="200" @scroll="scrollview">
<view class="boxitem" v-for="(v,i) in InvoicingList" :key='i'
@ -95,7 +95,7 @@
<view class="guodu"></view>
</view>
<text>
{{!shyp?'两列':'三列'}}
{{!shyp?'停用':'启用'}}
</text>
</view>
</view>
@ -113,6 +113,15 @@
<text>{{cellobj?.fzrTel?cellobj?.fzrTel:'-'}}</text>
</view>
</view>
<view style="display: flex;flex-direction: column;align-items: center;margin-left: 3.8vw;">
<view class="swsh guodu" :class="lie?'act':''" @click="lie=!lie">
<view class="guodu"></view>
</view>
<text style=" white-space: nowrap;
font-weight: 400;
font-size: 1vw;
color: #666666;">{{lie?'三列':'两列'}}</text>
</view>
</view>
</view>
@ -160,6 +169,7 @@
<text>
{{v.name}}
</text>
<view class="dot" v-if="carnum>0&&i==5">{{carnum<=99?carnum:'99+'}}</view>
</view>
</view>
<view class="serchs">
@ -207,7 +217,7 @@
</view>
</view>
<view class="shuru guodu" :class="gysnum?'':'unrigbot'">
<calculator :translateNumber="0" @colse="colse" @right="right"></calculator>
<calculator :translateNumber="caigouobj.Limitnum" :doOnce="caigouobj.Limitnum" @colse="colse" @right="right"></calculator>
</view>
<view class="cgou guodu" :class="gys?'':'uncg'">
<view class="topcont">
@ -379,7 +389,7 @@
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineProps } from 'vue';
import { queryInvoicingList, getMaterialTreeData, queryNuInfoByNuId, updateKfstatus,queryWlInfoByWlId,addShoppingCartList } from './api/lunpan.js'
import { queryInvoicingList, getMaterialTreeData, queryNuInfoByNuId, updateKfstatus,queryWlInfoByWlId,addShoppingCartList,queryShoppingCartList } from './api/lunpan.js'
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import shadowview from './components/ShadowView.vue';
import calculator from './components/calculator.vue';
@ -399,7 +409,7 @@
const gys = ref(false);
const crk = ref(false);
const wlxq = ref(false);
const lie = ref(false)
const scrollnum = ref(0);
@ -495,12 +505,15 @@
queryInvo();
cell();
})
onShow(()=>{
shoppcar()
})
const qingkong = () => {
gys.value = false;
anmidex.value = -1;
crk.value = false;
wlxq.value = false;
gysnum.value = false;
}
const colse = () => {
@ -508,10 +521,17 @@
}
const right = (n:number) => {
let d = Number(caigouobj.value.upperLimit)-Number(caigouobj.value.kcsl)
if(d>=n){
caigouobj.value.Limitnum = n;
gys.value = false;
}else{
caigouobj.value.Limitnum = d;
}
if(n<1){
caigouobj.value.Limitnum = 1;
}
gysnum.value = false;
}
const cell = () => {
@ -709,7 +729,10 @@
gysidnum.value = i;
gysflag.value = false;
}
const timers = ref(true)
const connfig = () =>{
if(timers.value==false){return}
timers.value=false;
let dt = {
nuId:form.nuId,
purchaseQuantity:caigouobj.value.Limitnum,
@ -719,12 +742,22 @@
}
addShoppingCartList([dt]).then(res=>{
uni.showToast({
icon:res.success?'success':'error',
icon:res.success?'success':'none',
title:res.message
})
if(res.success){
qingkong()
}
setTimeout(()=>{
timers.value=true;
if(res.success){
qingkong()
shoppcar()
}
},700)
})
}
const carnum = ref(0)
const shoppcar=()=>{
queryShoppingCartList(form).then(resr=>{
carnum.value = resr.result.total
})
}
const animArray = ref([
@ -1640,6 +1673,23 @@
background: #FFFFFF;
margin: 0.25vw 0;
border-radius: 1.6vw;
position: relative;
.dot{
position: absolute;
right: 0;
top: -0.5vw;
min-width: 1.5vw;
height: 1.5vw;
border-radius: 0.75vw;
display: flex;
justify-content: center;
align-items: center;
background: red;
color: #fff;
font-size: 1vw;
margin: 0 !important;
padding: 0 0.25vw;
}
view {
margin-right: .4vw;

View File

@ -33239,6 +33239,13 @@ if (uni.restoreGlobal) {
data: params
});
};
const generatedPurchaseOrder = (params) => {
return request({
url: `${uni.getStorageSync("serverUrl")}/api/pad/invoicing/generatedPurchaseOrder`,
method: "post",
data: params
});
};
const generatedPurchaseViewOrder = (params) => {
return request({
url: `${uni.getStorageSync("serverUrl")}/api/pad/invoicing/generatedPurchaseViewOrder`,
@ -33246,6 +33253,18 @@ if (uni.restoreGlobal) {
data: params
});
};
const deleteQgInfoById = (params) => {
return request({
url: `${uni.getStorageSync("serverUrl")}/api/pad/invoicing/deleteQgInfoById?id=` + params,
method: "DELETE"
});
};
const emptiedQgInfo = (params) => {
return request({
url: `${uni.getStorageSync("serverUrl")}/api/pad/invoicing/emptiedQgInfo`,
method: "DELETE"
});
};
const voidedCgdMain = (params) => {
return request({
url: `${uni.getStorageSync("serverUrl")}/api/pad/invoicing/voidedCgdMain`,
@ -33422,6 +33441,7 @@ if (uni.restoreGlobal) {
const gys = vue.ref(false);
const crk = vue.ref(false);
const wlxq = vue.ref(false);
const lie = vue.ref(false);
const scrollnum = vue.ref(0);
const scroll = vue.reactive({ scrolltop1: 0, scrolltop2: 0, scrolltop3: 0, act1: -1, act2: -1, act3: -1 });
const form = vue.reactive({
@ -33439,7 +33459,7 @@ if (uni.restoreGlobal) {
status: shyp.value ? "5" : "2"
};
updateKfstatus(obj).then((res) => {
formatAppLog("log", "at pages/Warehouse/procurement.vue:423", res);
formatAppLog("log", "at pages/Warehouse/procurement.vue:433", res);
if (res.success) {
shyp.value = shyp.value ? false : true;
cell();
@ -33514,11 +33534,15 @@ if (uni.restoreGlobal) {
queryInvo();
cell();
});
onShow(() => {
shoppcar();
});
const qingkong = () => {
gys.value = false;
anmidex.value = -1;
crk.value = false;
wlxq.value = false;
gysnum.value = false;
};
const colse = () => {
gysnum.value = !gysnum.value;
@ -33527,8 +33551,13 @@ if (uni.restoreGlobal) {
let d = Number(caigouobj.value.upperLimit) - Number(caigouobj.value.kcsl);
if (d >= n) {
caigouobj.value.Limitnum = n;
gys.value = false;
} else {
caigouobj.value.Limitnum = d;
}
if (n < 1) {
caigouobj.value.Limitnum = 1;
}
gysnum.value = false;
};
const cell = () => {
queryNuInfoByNuId(form).then((res) => {
@ -33545,7 +33574,7 @@ if (uni.restoreGlobal) {
let times = null;
const status = vue.ref("loadmore");
onPageScroll((e) => {
formatAppLog("log", "at pages/Warehouse/procurement.vue:532", e);
formatAppLog("log", "at pages/Warehouse/procurement.vue:552", e);
});
const scrolltolower = () => {
if (!setout) {
@ -33702,7 +33731,12 @@ if (uni.restoreGlobal) {
gysidnum.value = i;
gysflag.value = false;
};
const timers = vue.ref(true);
const connfig = () => {
if (timers.value == false) {
return;
}
timers.value = false;
let dt = {
nuId: form.nuId,
purchaseQuantity: caigouobj.value.Limitnum,
@ -33712,12 +33746,22 @@ if (uni.restoreGlobal) {
};
addShoppingCartList([dt]).then((res) => {
uni.showToast({
icon: res.success ? "success" : "error",
icon: res.success ? "success" : "none",
title: res.message
});
if (res.success) {
qingkong();
}
setTimeout(() => {
timers.value = true;
if (res.success) {
qingkong();
shoppcar();
}
}, 700);
});
};
const carnum = vue.ref(0);
const shoppcar = () => {
queryShoppingCartList(form).then((resr) => {
carnum.value = resr.result.total;
});
};
const animArray = vue.ref([
@ -33812,11 +33856,11 @@ if (uni.restoreGlobal) {
imgurl: "/static/index/warehouse/procurement/Cart/Cart01.png"
}
]);
const __returned__ = { navurl, InvoicingList, TreeData, cellobj, wuliaoobj, serverUrl, scrolltop, shopitem, getblue, shyp, opacity, gysnum, gys, crk, wlxq, scrollnum, scroll, form, switchshyp, shopclick, typescroll, search, qingkong, colse, right, cell, getMaterial, setout, get times() {
const __returned__ = { navurl, InvoicingList, TreeData, cellobj, wuliaoobj, serverUrl, scrolltop, shopitem, getblue, shyp, opacity, gysnum, gys, crk, wlxq, lie, scrollnum, scroll, form, switchshyp, shopclick, typescroll, search, qingkong, colse, right, cell, getMaterial, setout, get times() {
return times;
}, set times(v) {
times = v;
}, status, scrolltolower, scrollview, queryInvo, movecard, genPaths: genPaths2, jjnum, anmidex, caigouobj, gysarr, admiclick, gysidnum, gysflag, gysid, connfig, animArray, shadowview, calculator };
}, status, scrolltolower, scrollview, queryInvo, movecard, genPaths: genPaths2, jjnum, anmidex, caigouobj, gysarr, admiclick, gysidnum, gysflag, gysid, timers, connfig, carnum, shoppcar, animArray, shadowview, calculator };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
@ -33835,7 +33879,7 @@ if (uni.restoreGlobal) {
return vue.openBlock(), vue.createElementBlock("view", null, [
vue.createCommentVNode(" 采购 "),
vue.createElementVNode("view", { class: "box" }, [
$setup.shyp ? (vue.openBlock(), vue.createElementBlock("view", {
$setup.lie ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
class: "leftr"
}, [
@ -33946,7 +33990,7 @@ if (uni.restoreGlobal) {
vue.createElementVNode("text", null, "长春市朝阳区久泰开运养老服务有限公司")
])
])) : vue.createCommentVNode("v-if", true),
!$setup.shyp ? (vue.openBlock(), vue.createElementBlock("view", {
!$setup.lie ? (vue.openBlock(), vue.createElementBlock("view", {
key: 1,
class: "lefts"
}, [
@ -34077,7 +34121,7 @@ if (uni.restoreGlobal) {
vue.createElementVNode(
"text",
null,
vue.toDisplayString(!$setup.shyp ? "两列" : "三列"),
vue.toDisplayString(!$setup.shyp ? "停用" : "启用"),
1
/* TEXT */
)
@ -34108,6 +34152,27 @@ if (uni.restoreGlobal) {
/* TEXT */
)
])
]),
vue.createElementVNode("view", { style: { "display": "flex", "flex-direction": "column", "align-items": "center", "margin-left": "3.8vw" } }, [
vue.createElementVNode(
"view",
{
class: vue.normalizeClass(["swsh guodu", $setup.lie ? "act" : ""]),
onClick: _cache[1] || (_cache[1] = ($event) => $setup.lie = !$setup.lie)
},
[
vue.createElementVNode("view", { class: "guodu" })
],
2
/* CLASS */
),
vue.createElementVNode(
"text",
{ style: { "white-space": "nowrap", "font-weight": "400", "font-size": "1vw", "color": "#666666" } },
vue.toDisplayString($setup.lie ? "三列" : "两列"),
1
/* TEXT */
)
])
])
]),
@ -34229,7 +34294,17 @@ if (uni.restoreGlobal) {
vue.toDisplayString(v.name),
1
/* TEXT */
)
),
$setup.carnum > 0 && i == 5 ? (vue.openBlock(), vue.createElementBlock(
"view",
{
key: 0,
class: "dot"
},
vue.toDisplayString($setup.carnum <= 99 ? $setup.carnum : "99+"),
1
/* TEXT */
)) : vue.createCommentVNode("v-if", true)
], 8, ["onClick"]);
}),
128
@ -34243,7 +34318,7 @@ if (uni.restoreGlobal) {
{
type: "text",
placeholder: "物料名称/物料编码/物料简拼",
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.form.wlParamInfo = $event)
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.form.wlParamInfo = $event)
},
null,
512
@ -34255,7 +34330,7 @@ if (uni.restoreGlobal) {
key: 0,
src: _imports_3$1,
mode: "aspectFill",
onClick: _cache[2] || (_cache[2] = ($event) => $setup.search(0))
onClick: _cache[3] || (_cache[3] = ($event) => $setup.search(0))
})) : vue.createCommentVNode("v-if", true)
]),
vue.createElementVNode("view", {
@ -34281,13 +34356,13 @@ if (uni.restoreGlobal) {
vue.createElementVNode("view", null, [
vue.createTextVNode(" 供应商 "),
vue.createElementVNode("text", {
onClick: _cache[3] || (_cache[3] = ($event) => $setup.gysflag = true)
onClick: _cache[4] || (_cache[4] = ($event) => $setup.gysflag = true)
}, "选择")
]),
vue.createElementVNode(
"view",
{
onClick: _cache[4] || (_cache[4] = ($event) => $setup.gysflag = true)
onClick: _cache[5] || (_cache[5] = ($event) => $setup.gysflag = true)
},
vue.toDisplayString((_i = $setup.gysarr[$setup.gysidnum]) == null ? void 0 : _i.name),
1
@ -34297,7 +34372,7 @@ if (uni.restoreGlobal) {
vue.createElementVNode("text", null, "采购数量"),
vue.createElementVNode("view", {
class: "jj",
onClick: _cache[5] || (_cache[5] = ($event) => $setup.jjnum(-1))
onClick: _cache[6] || (_cache[6] = ($event) => $setup.jjnum(-1))
}, " - "),
vue.createElementVNode(
"view",
@ -34311,7 +34386,7 @@ if (uni.restoreGlobal) {
),
vue.createElementVNode("view", {
class: "jj",
onClick: _cache[6] || (_cache[6] = ($event) => $setup.jjnum(1))
onClick: _cache[7] || (_cache[7] = ($event) => $setup.jjnum(1))
}, " + ")
]),
$setup.gysflag ? (vue.openBlock(), vue.createElementBlock("view", {
@ -34360,10 +34435,11 @@ if (uni.restoreGlobal) {
},
[
vue.createVNode($setup["calculator"], {
translateNumber: 0,
translateNumber: $setup.caigouobj.Limitnum,
doOnce: $setup.caigouobj.Limitnum,
onColse: $setup.colse,
onRight: $setup.right
})
}, null, 8, ["translateNumber", "doOnce"])
],
2
/* CLASS */
@ -34526,7 +34602,7 @@ if (uni.restoreGlobal) {
vue.createElementVNode("text", null, "采购数量"),
vue.createElementVNode("view", {
class: "jj",
onClick: _cache[7] || (_cache[7] = ($event) => $setup.jjnum(-1))
onClick: _cache[8] || (_cache[8] = ($event) => $setup.jjnum(-1))
}, " - "),
vue.createElementVNode(
"view",
@ -34537,7 +34613,7 @@ if (uni.restoreGlobal) {
),
vue.createElementVNode("view", {
class: "jj",
onClick: _cache[8] || (_cache[8] = ($event) => $setup.jjnum(1))
onClick: _cache[9] || (_cache[9] = ($event) => $setup.jjnum(1))
}, " + ")
])
]),
@ -34792,6 +34868,8 @@ if (uni.restoreGlobal) {
const opacity = vue.ref(false);
const wlxq = vue.ref(false);
const cgd = vue.ref(false);
const tost = vue.ref(false);
const lie = vue.ref(false);
const scrollnum = vue.ref(0);
const scroll = vue.reactive({ scrolltop1: 0, scrolltop2: 0, scrolltop3: 0, act1: -1, act2: -1, act3: -1 });
const form = vue.reactive({
@ -34809,7 +34887,7 @@ if (uni.restoreGlobal) {
status: shyp.value ? "5" : "2"
};
updateKfstatus(obj).then((res) => {
formatAppLog("log", "at pages/Warehouse/procurecart.vue:325", res);
formatAppLog("log", "at pages/Warehouse/procurecart.vue:352", res);
if (res.success) {
shyp.value = shyp.value ? false : true;
cell();
@ -34821,6 +34899,28 @@ if (uni.restoreGlobal) {
}
});
};
const timerflag = vue.ref(true);
const connfig = () => {
if (timerflag.value == false) {
return;
}
timerflag.value = false;
generatedPurchaseOrder(generatedOrder.value).then((res) => {
uni.showToast({
icon: res.success ? "success" : "error",
title: res.message
});
setTimeout(() => {
if (res.success) {
InvoicingList.value = [];
form.pageNo = 1;
qingkong();
queryInvo();
timerflag.value = true;
}
}, 700);
});
};
const shopclick = (i, k, flag) => {
if (i == shopitem.value && !flag) {
InvoicingList.value[shopitem.value].flag = !InvoicingList.value[shopitem.value].flag;
@ -34894,6 +34994,7 @@ if (uni.restoreGlobal) {
anmidex.value = -1;
wlxq.value = false;
cgd.value = false;
tost.value = false;
};
const cell = () => {
queryNuInfoByNuId(form).then((res) => {
@ -34910,7 +35011,7 @@ if (uni.restoreGlobal) {
let times = null;
const status = vue.ref("loadmore");
onPageScroll((e) => {
formatAppLog("log", "at pages/Warehouse/procurecart.vue:427", e);
formatAppLog("log", "at pages/Warehouse/procurecart.vue:476", e);
});
const scrolltolower = () => {
if (!setout) {
@ -35006,6 +35107,7 @@ if (uni.restoreGlobal) {
}
const anmidex = vue.ref(-1);
const generatedOrder = vue.ref([]);
const delstr = vue.ref("");
const admiclick = (i) => {
if (anmidex.value == 2) {
anmidex.value = -1;
@ -35025,9 +35127,7 @@ if (uni.restoreGlobal) {
arr.push(item);
}
});
formatAppLog("log", "at pages/Warehouse/procurecart.vue:562", arr);
generatedPurchaseViewOrder(arr).then((res) => {
formatAppLog("log", "at pages/Warehouse/procurecart.vue:564", res);
generatedOrder.value = res.result;
});
cgd.value = true;
@ -35036,8 +35136,34 @@ if (uni.restoreGlobal) {
queryWlInfo();
break;
case 3:
let str = "";
let a = [];
InvoicingList.value.forEach((item, i2) => {
if (item.flag) {
str += "<br /> · " + item.wlName;
a.push(item);
}
});
if (a.length == 0) {
uni.showToast({
title: "购物车暂无物料~",
icon: "none"
});
return;
}
delstr.value = '<view style="font-weight: 600 ">是否删除</view>' + str;
tost.value = true;
break;
case 4:
if (InvoicingList.value.length == 0) {
uni.showToast({
title: "购物车已清空~",
icon: "none"
});
return;
}
delstr.value = " 是否清空购物车? ";
tost.value = true;
break;
case 5:
uni.navigateTo({
@ -35047,6 +35173,45 @@ if (uni.restoreGlobal) {
}
}
};
const del = (e) => {
if (e == 3) {
let arr = [];
let delstr2 = "";
InvoicingList.value.forEach((item, i) => {
if (item.flag) {
delstr2 += item.id + ",";
arr.push(i);
}
});
if (delstr2.indexOf(",") > -1)
delstr2 = delstr2.substring(0, delstr2.length - 1);
arr.sort((a, b) => b - a);
deleteQgInfoById(delstr2).then((res) => {
uni.showToast({
icon: res.success ? "success" : "none",
title: res.message
});
if (res.success) {
arr.forEach((item) => {
InvoicingList.value.splice(item, 1);
});
qingkong();
}
});
} else {
emptiedQgInfo().then((res) => {
if (res.success) {
InvoicingList.value = [];
queryInvo();
qingkong();
}
uni.showToast({
icon: res.success ? "success" : "none",
title: res.message
});
});
}
};
const queryWlInfo = () => {
let obj = {
wlId: InvoicingList.value[shopitem.value].wlId,
@ -35134,11 +35299,11 @@ if (uni.restoreGlobal) {
imgurl: "/static/index/warehouse/procurement/dele/del1.png"
}
]);
const __returned__ = { navurl, InvoicingList, TreeData, cellobj, wuliaoobj, serverUrl, scrolltop, shopitem, getblue, shyp, opacity, wlxq, cgd, scrollnum, scroll, form, switchshyp, shopclick, xuanzhong, typescroll, search, qingkong, cell, getMaterial, setout, get times() {
const __returned__ = { navurl, InvoicingList, TreeData, cellobj, wuliaoobj, serverUrl, scrolltop, shopitem, getblue, shyp, opacity, wlxq, cgd, tost, lie, scrollnum, scroll, form, switchshyp, timerflag, connfig, shopclick, xuanzhong, typescroll, search, qingkong, cell, getMaterial, setout, get times() {
return times;
}, set times(v) {
times = v;
}, status, scrolltolower, scrollview, queryInvo, movecard, genPaths: genPaths2, anmidex, generatedOrder, admiclick, queryWlInfo, animArray, shadowview };
}, status, scrolltolower, scrollview, queryInvo, movecard, genPaths: genPaths2, anmidex, generatedOrder, delstr, admiclick, del, queryWlInfo, animArray, shadowview };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
@ -35152,7 +35317,7 @@ if (uni.restoreGlobal) {
return vue.openBlock(), vue.createElementBlock("view", null, [
vue.createCommentVNode(" 采购 "),
vue.createElementVNode("view", { class: "box" }, [
$setup.shyp ? (vue.openBlock(), vue.createElementBlock("view", {
$setup.lie ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
class: "leftr"
}, [
@ -35263,7 +35428,7 @@ if (uni.restoreGlobal) {
vue.createElementVNode("text", null, "长春市朝阳区久泰开运养老服务有限公司")
])
])) : vue.createCommentVNode("v-if", true),
!$setup.shyp ? (vue.openBlock(), vue.createElementBlock("view", {
!$setup.lie ? (vue.openBlock(), vue.createElementBlock("view", {
key: 1,
class: "lefts"
}, [
@ -35426,7 +35591,7 @@ if (uni.restoreGlobal) {
vue.createElementVNode(
"text",
null,
vue.toDisplayString(!$setup.shyp ? "两列" : "三列"),
vue.toDisplayString(!$setup.shyp ? "停用" : "启用"),
1
/* TEXT */
)
@ -35457,6 +35622,27 @@ if (uni.restoreGlobal) {
/* TEXT */
)
])
]),
vue.createElementVNode("view", { style: { "display": "flex", "flex-direction": "column", "align-items": "center", "margin-left": "3.8vw" } }, [
vue.createElementVNode(
"view",
{
class: vue.normalizeClass(["swsh guodu", $setup.lie ? "act" : ""]),
onClick: _cache[1] || (_cache[1] = ($event) => $setup.lie = !$setup.lie)
},
[
vue.createElementVNode("view", { class: "guodu" })
],
2
/* CLASS */
),
vue.createElementVNode(
"text",
{ style: { "white-space": "nowrap", "font-weight": "400", "font-size": "1vw", "color": "#666666" } },
vue.toDisplayString($setup.lie ? "三列" : "两列"),
1
/* TEXT */
)
])
])
]),
@ -35592,7 +35778,7 @@ if (uni.restoreGlobal) {
{
type: "text",
placeholder: "物料名称/物料编码/物料简拼",
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.form.wlParamInfo = $event)
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.form.wlParamInfo = $event)
},
null,
512
@ -35604,7 +35790,7 @@ if (uni.restoreGlobal) {
key: 0,
src: _imports_3$1,
mode: "aspectFill",
onClick: _cache[2] || (_cache[2] = ($event) => $setup.search(0))
onClick: _cache[3] || (_cache[3] = ($event) => $setup.search(0))
})) : vue.createCommentVNode("v-if", true)
]),
vue.createElementVNode("view", {
@ -35774,7 +35960,7 @@ if (uni.restoreGlobal) {
vue.createElementVNode(
"view",
{ class: "gys" },
"供应商:" + vue.toDisplayString(v.suppliersName),
"供应商:" + vue.toDisplayString(v.gysName),
1
/* TEXT */
),
@ -35786,10 +35972,22 @@ if (uni.restoreGlobal) {
1
/* TEXT */
),
vue.createElementVNode("view", null, "采购人:梁嘉豪 "),
vue.createElementVNode(
"view",
null,
"采购人:" + vue.toDisplayString(v.qgBy),
1
/* TEXT */
),
vue.createElementVNode("view", null, [
vue.createTextVNode("采购金额:"),
vue.createElementVNode("text", null, "1356.82")
vue.createElementVNode(
"text",
null,
vue.toDisplayString(v.totalPrice),
1
/* TEXT */
)
])
]),
(vue.openBlock(true), vue.createElementBlock(
@ -35803,28 +36001,28 @@ if (uni.restoreGlobal) {
vue.createElementVNode(
"view",
null,
vue.toDisplayString(f.materialName),
vue.toDisplayString(f.wlName),
1
/* TEXT */
),
vue.createElementVNode(
"view",
{ style: { "white-space": "nowrap" } },
"规格型号:" + vue.toDisplayString(f.wlSpecificationModel),
1
/* TEXT */
),
vue.createElementVNode(
"view",
null,
"规格型号: " + vue.toDisplayString(f.specificationModel),
"采购单位:" + vue.toDisplayString(f.wlUnits),
1
/* TEXT */
),
vue.createElementVNode(
"view",
null,
"采购单位: " + vue.toDisplayString(f.materialUnits),
1
/* TEXT */
),
vue.createElementVNode(
"view",
null,
"库存数量: " + vue.toDisplayString(f.kcsl),
"库存数量:" + vue.toDisplayString(f.kcsl),
1
/* TEXT */
),
@ -35867,18 +36065,36 @@ if (uni.restoreGlobal) {
])
]),
vue.createElementVNode("view", { class: "dbgys" }, [
vue.createElementVNode("view", null, [
vue.createElementVNode("view", null, [
vue.createElementVNode("view", null, [
vue.createElementVNode("view", { style: { "width": "100%" } }, [
vue.createElementVNode("view", { style: { "width": "100%", "justify-content": "space-between" } }, [
vue.createElementVNode("view", { style: { "width": "50%" } }, [
vue.createTextVNode("采购数量:"),
vue.createElementVNode("text", null, "50")
vue.createElementVNode(
"text",
null,
vue.toDisplayString(f.purchaseQuantity),
1
/* TEXT */
)
]),
vue.createElementVNode("view", null, [
vue.createElementVNode("view", { style: { "width": "50%", "justify-content": "flex-end" } }, [
vue.createTextVNode("采购金额:"),
vue.createElementVNode("text", null, "50")
vue.createElementVNode(
"text",
null,
vue.toDisplayString(f.procurementPrice),
1
/* TEXT */
)
])
]),
vue.createElementVNode("view", null, "供应商:长春市天林商贸有限公司")
vue.createElementVNode(
"view",
{ style: { "width": "100%", "white-space": "nowrap", "text-overflow": "ellipsis", "overflow": "hidden", "height": "1.2vw", "display": "block" } },
"供应商:" + vue.toDisplayString(f.suppliersName),
1
/* TEXT */
)
])
])
]);
@ -35891,11 +36107,46 @@ if (uni.restoreGlobal) {
128
/* KEYED_FRAGMENT */
))
]),
vue.createElementVNode("view", { class: "tj" }, [
vue.createElementVNode("text", { onClick: $setup.connfig }, "确定")
])
],
2
/* CLASS */
)
),
$setup.tost ? (vue.openBlock(), vue.createElementBlock("view", {
key: 2,
class: "mengban",
onClick: $setup.qingkong
})) : vue.createCommentVNode("v-if", true),
$setup.tost ? (vue.openBlock(), vue.createElementBlock("view", {
key: 3,
class: "toast guodu"
}, [
vue.createElementVNode("view", { class: "tit" }, "提示"),
vue.createElementVNode("view", { class: "cont" }, [
$setup.anmidex == 3 ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
innerHTML: $setup.delstr
}, null, 8, ["innerHTML"])) : vue.createCommentVNode("v-if", true),
$setup.anmidex == 4 ? (vue.openBlock(), vue.createElementBlock("view", {
key: 1,
innerHTML: $setup.delstr
}, null, 8, ["innerHTML"])) : vue.createCommentVNode("v-if", true)
]),
vue.createElementVNode("view", { class: "cfg" }, [
vue.createElementVNode("view", { onClick: $setup.qingkong }, "取消"),
$setup.anmidex == 3 ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
onClick: _cache[4] || (_cache[4] = ($event) => $setup.del(3))
}, "确认")) : vue.createCommentVNode("v-if", true),
$setup.anmidex == 4 ? (vue.openBlock(), vue.createElementBlock("view", {
key: 1,
onClick: _cache[5] || (_cache[5] = ($event) => $setup.del(4))
}, "确认")) : vue.createCommentVNode("v-if", true)
])
])) : vue.createCommentVNode("v-if", true)
]);
}
const PagesWarehouseProcurecart = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-29da2345"], ["__file", "D:/项目/hldy_app/pages/Warehouse/procurecart.vue"]]);

View File

@ -171,6 +171,57 @@ to {
height: 16vw !important;
}
.toast[data-v-29da2345] {
width: 26vw;
max-height: 40vh;
position: fixed;
z-index: 105;
right: 1.5vw;
bottom: 1.5vw;
background: #fff;
border-radius: 1.6vw;
padding: 2vw 1vw 5vw;
}
.toast .cfg[data-v-29da2345] {
width: 100%;
height: 3.5vw;
display: flex;
position: absolute;
bottom: 0;
left: 0vw;
}
.toast .cfg > uni-view[data-v-29da2345] {
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.2vw;
font-weight: 600;
border-top: 1px solid #eff0f4;
}
.toast .cfg > uni-view[data-v-29da2345]:nth-child(2) {
color: #0385fa;
border-left: 1px solid #eff0f4;
}
.toast .cont[data-v-29da2345] {
width: 100%;
font-size: 1.3vw;
margin: 0.5vw auto 0;
overflow-y: scroll;
max-height: 23.5vh;
text-align: center;
}
.toast .tit[data-v-29da2345] {
width: 100%;
height: 3vw;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.4vw;
font-weight: bolder;
letter-spacing: 0.3vw;
}
.uncgd[data-v-29da2345] {
bottom: -96vh !important;
}
@ -187,7 +238,7 @@ to {
}
.caigoudan .cgdscroll[data-v-29da2345] {
width: 100%;
height: calc(95vh - 3.5vw);
height: calc(95vh - 7vw);
}
.caigoudan .cgdscroll .cardcd > .boxitem[data-v-29da2345] {
width: 22vw;
@ -210,13 +261,16 @@ to {
border-radius: 0 0 1.6vw 1.6vw;
border: 2px solid #eff0f4;
display: flex;
padding: 0.6vw 1.5vw;
padding: 0.6vw 1.5vw 0;
justify-content: space-between;
}
.caigoudan .cgdscroll .cardcd > .boxitem .dbgys .act[data-v-29da2345] {
background: #e7f0fb !important;
border: 1px solid #0076d6 !important;
}
.caigoudan .cgdscroll .cardcd > .boxitem .dbgys > uni-view[data-v-29da2345] {
white-space: nowrap;
}
.caigoudan .cgdscroll .cardcd > .boxitem .dbgys > uni-view[data-v-29da2345]:nth-child(1) {
display: flex;
flex-direction: column;
@ -226,7 +280,6 @@ to {
}
.caigoudan .cgdscroll .cardcd > .boxitem .dbgys > uni-view:nth-child(1) uni-view[data-v-29da2345] {
display: flex;
justify-content: space-between;
align-items: center;
}
.caigoudan .cgdscroll .cardcd > .boxitem .dbgys > uni-view:nth-child(1) uni-text[data-v-29da2345] {
@ -324,6 +377,25 @@ to {
padding-right: 0.8vw;
line-height: 2vw;
}
.caigoudan .tj[data-v-29da2345] {
width: 100%;
height: 3.5vw;
display: flex;
justify-content: flex-end;
align-items: center;
}
.caigoudan .tj > uni-text[data-v-29da2345]: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;
}
.caigoudan .title[data-v-29da2345] {
height: 2vw;
font-weight: 400;
@ -717,7 +789,7 @@ to {
position: absolute;
left: 0;
bottom: 0vw;
background: #eff0f4;
background: #f7f7fa;
border-radius: 0 0 1.6vw 1.6vw;
border: 2px solid #eff0f4;
display: flex;

View File

@ -980,6 +980,23 @@ to {
background: #FFFFFF;
margin: 0.25vw 0;
border-radius: 1.6vw;
position: relative;
}
.box .rights .anmikc > uni-view .dot {
position: absolute;
right: 0;
top: -0.5vw;
min-width: 1.5vw;
height: 1.5vw;
border-radius: 0.75vw;
display: flex;
justify-content: center;
align-items: center;
background: red;
color: #fff;
font-size: 1vw;
margin: 0 !important;
padding: 0 0.25vw;
}
.box .rights .anmikc > uni-view uni-view {
margin-right: 0.4vw;