合并文件

This commit is contained in:
Teng 2025-11-12 13:41:33 +08:00
parent ca7fc5a285
commit aa564a0d0c
6 changed files with 475 additions and 35 deletions

View File

@ -2074,7 +2074,10 @@
}
const savePackagelist = ref([]);
onMounted(() => {
// console.log("jiance",uni.getStorageSync('serverUrl'))
// uni.setStorageSync('serverUrl', `http://localhost:8091/nursing-unit_101`);
savePackagelist.value = uni.getStorageSync('Packagelist') || []
let res = uni.getStorageSync('saveTree')

View File

@ -78,7 +78,7 @@
return
}
housedex.value = index;
console.log("index", index)
// console.log("index", index)
// .....
if (index === 5) {
uni.navigateTo({
@ -111,7 +111,7 @@
break;
case 4:
//
console.log('选中' + housedex.value)
// console.log('' + housedex.value)
if (housedex.value == 1) {
navurl.value = 'pages/Warehouse/procurement'
uni.navigateTo({

View File

@ -1,11 +1,13 @@
<template>
<view class="contain">
<view v-show="moreindex!=-1" class="mengban" @click="moreindex=-1"></view>
<view class="contain-left">
<view class="title-input-father">
<input class="title-input" type="text" v-model="searchValue" maxlength="15"
placeholder="采购单号/采购日期/供应商" />
<image v-show="searchValue" class="right-img" src="@/static/x.png" @click="searchValue=''" />
<view class="title-input-button">
<input class="title-input" type="text" v-model="searchValue" maxlength="15" placeholder="采购单号/采购日期/供应商"
@confirm="search()" />
<image v-show="searchValue" class="title-input-img" src="@/static/x.png"
@click="searchValue='';search()" />
<view class="title-input-button" @click="search()">
检索
</view>
</view>
@ -14,6 +16,15 @@
@scrolltolower="plsbuytolower" :lower-threshold="400">
<view class="pls-card" v-for="(v,i) in plsbuy" :key='i' @click="clickLeftMenu(i)"
:style="{borderColor: i==lefttarget? ``:`#fff` }">
<view v-if="moreindex==i" class="more-father">
<view class="more-one" @click="share">
分享
</view>
<view class="more-one" @click="bebad">
作废
</view>
</view>
<view class="pls-card-title">
<view class="title-left">
{{ v.cgdNo }}
@ -27,14 +38,14 @@
{{ v.totalPrice }}
</view>
<image class="title-right-img" src="/static/more.png" />
<image class="title-right-img" src="/static/more.png" @click="openmore(i)" />
</view>
</view>
<view class="pls-card-middle">
<view class="pls-card-middle-one">
<view class="middle-title">
{{ v.updateTime?.split(' ')[0] }}
{{ v.createTime?.split(' ')[0] }}
</view>
<view class="middle-heng-father">
<view class="middle-heng"
@ -55,7 +66,6 @@
</view>
<view class="pls-card-middle-one">
<view class="middle-title">
<!-- 2025.10.03 -->
</view>
<view class="middle-heng-father">
<view class="middle-heng"></view>
@ -72,13 +82,11 @@
拣货
</view>
<view class="">
<!-- [ 梁嘉豪 ] -->
</view>
</view>
</view>
<view class="pls-card-middle-one">
<view class="middle-title">
<!-- 2025.10.03 -->
</view>
<view class="middle-heng-father">
<view class="middle-heng"
@ -97,7 +105,6 @@
完结
</view>
<view class="">
<!-- [ 梁嘉豪 ] -->
</view>
</view>
</view>
@ -114,7 +121,6 @@
</view>
</view>
</view>
</scroll-view>
</view>
</view>
@ -286,6 +292,71 @@
</view>
</view>
</view>
<!-- 分享的弹出层 -->
<view v-show="shareShow" class="popup-share" @click="shareShow=false">
<view class="popup-share-content" :style="{ opacity: deletedownisopacity ? 1 : 0 }" @click.stop>
<view class="share-other">
<view class="share-main">
<view class="">
<view class="share-weight">
{{ plsbuy[lefttarget]?.cgdNo }}
</view>
<view class="share-font">
供应商{{ plsbuy[lefttarget]?.gysId_dictText }}
</view>
<view class="share-font">
采购时间{{ plsbuy[lefttarget]?.qgDate }}
</view>
</view>
<view class="right-flex">
<view style="font-weight: 600;">
<text style="vertical-align: 2rpx;">
</text>
<text class="dollar-text">
{{plsbuy[lefttarget]?.totalPrice}}
</text>
</view>
<view class="caigou-font">
采购金额
</view>
</view>
</view>
<view class="share-bottom">
<view style="display: flex;align-items: center;">
<image class="share-bottom-img" src="/static/index/youngman.png"></image>
<view class="share-name">
{{ plsbuy[lefttarget]?.createBy_dictText }}
</view>
<view class="share-font">
采购人
</view>
</view>
<view class="blue-button" @click="clickshare">
分享
</view>
</view>
</view>
</view>
</view>
<view :class="['neuro-wrapper', donghuacs ? 'is-active' : '']" v-show="badshow">
<view class="neuro-mask" @click="badshow=false;"></view>
<view class="neuro-box" @click.stop>
<view class="button-father">
<view class="button-white" @click="badshow=false;">取消</view>
<view class="button" @click="zuofei">确定</view>
</view>
<view class="title">作废</view>
<view class="card-font">
确定要作废这个采购单吗
</view>
</view>
</view>
</view>
</template>
@ -293,15 +364,11 @@
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineProps } from 'vue';
import { queryInvoicingList, getCgdMaterialTreeData, queryNuInfoByNuId, updateKfstatus, queryCgdList, queryCgdInfoList, queryWlInfoByWlId, voidedCgdMain } 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';
const serverUrl = ref("")
onLoad(() => {
firstgetqueryCgdList();
serverUrl.value = uni.getStorageSync('serverUrl') + '/sys/common/static/';
})
const searchValue = ref("");
@ -312,6 +379,11 @@
pageSize: 10,
canpull: true
})
const mobanplzinfo = {
pageNo: 1,
pageSize: 10,
canpull: true
}
const leftscrolltop = ref(0)
const plsbuy = ref([])
@ -319,7 +391,7 @@
const firstgetqueryCgdList = () => {
queryCgdList(plzinfo).then((res : any) => {
plsbuy.value.push(...res.result.records)
console.log("zzzz",plsbuy.value)
// console.log("zzzz", plsbuy.value)
if (res.result.records.length) {
form.cgdId = plsbuy.value[0].id
queryInvo();
@ -347,9 +419,7 @@
const getqueryCgdList = () => {
if (!plzinfo.canpull) return
queryCgdList(plzinfo).then((res : any) => {
// console.log("", res.result.records)
plsbuy.value.push(...res.result.records)
// console.log("records",...res.result.records)
if (res.result.records.length < plzinfo.pageSize) {
plzinfo.canpull = false;
@ -363,7 +433,6 @@
lefttarget.value = index;
form.cgdId = plsbuy.value[index].id
queryCgdInfoList(form).then(res => {
// console.log("zzz",form)
InvoicingList.value = []
InvoicingList.value.push(...res.result.records);
if (form.pageNo) {
@ -375,7 +444,6 @@
materialImg: ""
})
const goback = () => {
uni.navigateBack()
}
@ -412,7 +480,6 @@
const queryInvo = () => {
queryCgdInfoList(form).then(res => {
InvoicingList.value.push(...res.result.records);
// console.log("", res.result.records)
clickmiddle(0);
})
}
@ -428,14 +495,85 @@
}
}
// const getMaterial = () => {
// getCgdMaterialTreeData(form).then(res => {
// // console.log(form)
// // console.log(res)
// // TreeData.value = res.result;
// console.log("TreeData.value",res)
// })
// }
const search = () => {
// if (!searchValue.value) return
form.pageNo = 1;
InvoicingList.value = [];
middletarget.value = 0;
form.wlParamInfo = searchValue.value;
form.cgdId = plsbuy.value[lefttarget.value].id
queryInvo();
}
const moreindex = ref(-1);
const zuofeiindex = ref(-1);
const openmore = (index : number) => {
zuofeiindex.value = index;
if (plsbuy.value[index].cgdType == '9') {
setTimeout(() => {
uni.showToast({
title: '该采购单已作废',
icon: 'error', //
duration: 2000
})
}, 300)
} else {
moreindex.value = index;
}
}
const shareShow = ref(false);
const deletedownisopacity = ref(false)
const share = () => {
shareShow.value = true;
moreindex.value = -1;
deletedownisopacity.value = false;
setTimeout(() => {
deletedownisopacity.value = true
}, 100)
}
const clickshare = () => {
uni.share({
provider: "weixin",
scene: "WXSceneSession",
type: 0,
href: "https://www.baidu.com/",
title: "采购单分享",
summary: "采购单",
imageUrl: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni@2x.png",
success: function (res) {
console.log("success:");
},
fail: function (err) {
console.log("fail:");
}
});
}
const badshow = ref(false);
const donghuacs = ref(false)
const bebad = () => {
badshow.value = true;
moreindex.value = -1;
donghuacs.value = false;
setTimeout(() => donghuacs.value = true, 50)
}
const zuofei = () => {
voidedCgdMain({ id: plsbuy.value[zuofeiindex.value].id }).then((res : any) => {
// console.log("res", res)
if (res.success) {
uni.showToast({
title: res.message,
icon: 'success', // 'none'
duration: 2000
})
badshow.value = false;
InvoicingList.value = [];
plsbuy.value = []
Object.assign(plzinfo, mobanplzinfo)
Object.assign(form, mobanform)
firstgetqueryCgdList();
}
})
}
</script>
<style lang="less" scoped>
@ -457,6 +595,7 @@
width: 100%;
display: flex;
align-items: center;
position: relative;
.title-input {
width: 71%;
@ -500,6 +639,7 @@
border-radius: 40rpx;
margin-bottom: 2vh;
padding: 0 30rpx;
position: relative;
.pls-card-title {
height: 7vh;
@ -882,4 +1022,299 @@
width: 80%;
}
.title-input-img {
width: 50rpx;
height: 50rpx;
position: absolute;
right: 150rpx;
top: 50%;
transform: translateY(-50%);
}
.more-father {
position: absolute;
right: 60rpx;
top: 15rpx;
width: 165rpx;
height: 150rpx;
background-color: #fff;
z-index: 102;
border-radius: 35rpx;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20rpx 0;
.more-one {
width: 100%;
height: 50%;
display: flex;
justify-content: center;
align-items: center;
}
}
.mengban {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 100;
}
.popup-share {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
backdrop-filter: blur(1rpx);
background-color: rgba(236, 237, 241, 0.4);
/* 添加毛玻璃效果 */
z-index: 999;
.share-other {
z-index: 1;
width: 100%;
height: 100%;
padding: 50rpx;
position: relative;
.share-main {
display: flex;
justify-content: space-between;
.share-weight {
font-weight: 600;
font-size: 30rpx;
}
.share-font {
color: #666666;
font-size: 30rpx;
margin-top: 20rpx;
}
}
}
.popup-share-content {
position: absolute;
display: flex;
flex-direction: column;
width: 1000rpx;
height: 500rpx;
background-color: #fff;
border-radius: 30rpx;
transition: opacity 0.4s ease;
.popup-share-title {
margin: 30rpx 30rpx;
font-size: 40rpx;
position: relative;
.popup-share-img {
position: absolute;
top: 0;
right: 0;
width: 200rpx;
height: 200rpx;
}
}
.popup-share-upcontent {
margin: 0 30rpx;
display: flex;
justify-content: space-between;
.popup-share-font {
font-size: 35rpx;
color: gray;
}
}
.popup-share-gray {
background-color: #D3D3D3;
width: calc(100% - 60rpx);
height: 2rpx;
margin: 110rpx 30rpx 0 30rpx;
}
.popup-share-downcontent {
display: flex;
justify-content: space-between;
align-items: center;
height: 100%;
margin: 0 30rpx;
.popup-downcontent-img {
width: 70rpx;
height: 70rpx;
}
.popup-downcontent-font {
font-size: 27rpx;
margin-left: 20rpx;
}
.popup-share-downcontent-left {
display: flex;
align-items: center;
}
.popup-share-downcontent-button {
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
color: #fff;
display: flex;
justify-content: center;
align-items: center;
padding: 15rpx 30rpx;
border-radius: 20rpx;
font-size: 32rpx;
}
}
}
.share-bottom {
position: absolute;
width: 100%;
padding: 0 50rpx;
height: 120rpx;
bottom: 70rpx;
left: 0;
display: flex;
justify-content: space-between;
align-items: center;
.share-bottom-img {
width: 150rpx;
height: 140rpx;
}
.share-name {
margin: 0 20rpx;
font-size: 35rpx;
color: #555555;
font-weight: 600;
}
.share-font {
color: #555555;
margin-top: 10rpx;
font-size: 24rpx;
}
}
.blue-button {
margin-top: 60rpx;
width: 150rpx;
height: 70rpx;
border-radius: 40rpx;
display: flex;
justify-content: center;
align-items: center;
color: #007CFF;
font-size: 30rpx;
background: linear-gradient(to bottom, #e7f4ff, #c5e5ff);
border: 2rpx solid #9AD1FF;
}
}
/* 容器默认隐藏,透明度为 0不接受点击 */
.neuro-wrapper {
position: fixed;
inset: 0;
display: flex;
justify-content: center;
align-items: center;
z-index: 999;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
}
/* 显示时透明度过渡到 1可接受点击 */
.neuro-wrapper.is-active {
opacity: 1;
pointer-events: auto;
}
/* 遮罩层,半透明黑色 */
.neuro-mask {
position: absolute;
inset: 0;
background-color: rgba(0, 0, 0, 0.3);
}
/* 拟态框 固定尺寸 + 阴影样式 + 相对定位于 wrapper */
.neuro-box {
position: relative;
width: 600rpx;
height: 450rpx;
border-radius: 30rpx;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
z-index: 1;
padding: 0 10%;
.button {
width: 47%;
background-color: #ddf0ff;
display: flex;
justify-content: center;
align-items: center;
// color: #fff;
color: #007CFF;
border: 1rpx solid #007CFF;
font-size: 25rpx;
border-radius: 30rpx;
}
.card-font {
margin-top: 70rpx;
width: 600rpx;
justify-content: center;
display: flex;
}
.button-white {
width: 47%;
border: 2rpx solid #c3cacd;
background: linear-gradient(to bottom, #f3f3f5, #dee4e9);
display: flex;
justify-content: center;
align-items: center;
font-size: 25rpx;
border-radius: 30rpx;
}
.button-father {
position: absolute;
bottom: 60rpx;
left: 50%;
transform: translateX(-50%);
width: 100%;
height: 70rpx;
display: flex;
justify-content: space-between;
padding: 0 50rpx;
}
.title {
margin-top: 80rpx;
font-weight: 600;
font-size: 35rpx;
}
}
</style>

View File

@ -204,7 +204,7 @@
const getImg = () => {
if (/^\d{11}$/.test(form.username)) {
isRel(form.username).then((res : any) => {
// console.log("6666",res.result)
console.log("6666",res.result)
if (res.result.code == `0`) {
uni.setStorageSync('serverUrl', res.result.orgList[0].serverUrl);
uni.setStorageSync('orgList', res.result.orgList);

View File

@ -1,6 +1,7 @@
// 全局请求封装
const base_url = 'https://www.focusnu.com/devopsapi'
// const base_url = 'http://192.168.2.22:8091/devopsapi'
// const base_url = 'http://192.168.2.37:8081/devopsapi'
// const base_url = 'http://localhost:8091/devopsapi'
// 请求超出时间
const timeout = 5000

View File

@ -1,6 +1,7 @@
// 全局请求封装
const base_url = 'https://www.focusnu.com/opeapi'
// const base_url = 'http://192.168.2.22:8091/opeapi'
// const base_url = 'http://192.168.2.37:8081/opeapi'
// const base_url = 'http://localhost:8091/opeapi'
// 请求超出时间
const timeout = 5000