This commit is contained in:
Teng 2025-11-19 16:52:27 +08:00
commit aef803f279
8 changed files with 347 additions and 140 deletions

View File

@ -212,6 +212,13 @@
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/procurement/outbound",
"style" :
{
"navigationBarTitleText" : ""
}
}
// {

View File

@ -20,8 +20,8 @@
<!-- 采购增加层级高度方便点击 -->
</view>
</view>
<view class="annotation" :class="'annotation'+(i+1)" v-for="(v,i) in ['付款','采购','拣货','完结','护理单元','监控室']"
:key='i' @click="onlyjump(i)">
<view class="annotation" :class="'annotation'+(i+1)" v-for="(v,i) in ['付款','采购','拣货','完结','护理单元','监控室','请领出库','退货入库']"
:key='i' @click.stop="housactive(i)">
<view> </view>
<view class="tp">
<text>{{v}}</text>
@ -34,7 +34,6 @@
</view>
<view @click="onlyjump(5)" class="zhanwei"></view>
<!-- <arrowkeys @movecard="movecard" :getblue="getblue" :moveleft="45" /> -->
<view class="operationbtn">
<view v-for="(v,i) in ['请领出库','退货入库','库存盘点','实时监控']" @tap="onTap(i)"
:class="beblue === i ? 'click-box-target' : 'click-box'">
@ -59,106 +58,86 @@
},
});
const housedex = ref(-1);
const lastTap = ref(0)
const DOUBLE_TAP_DELAY = 300;
const setout = ref(null)
const housactive = (index : number) => {
console.log("点击哪个了",index)
if (index > 5) { return }
if(housedex.value == index){
if (housedex.value == 0) {
navurl.value = 'pages/Warehouse/paymoney'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (housedex.value == 1) {
navurl.value = 'pages/procurement/material'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (housedex.value == 2) {
navurl.value = 'pages/Warehouse/picking'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (housedex.value == 3) {
navurl.value = 'pages/Warehouse/finish'
uni.navigateTo({
url: '/' + navurl.value
})
}
return
}
housedex.value = index;
// console.log("index", index)
// .....
if (index === 5) {
uni.navigateTo({
url: "/pages/watch/full"
})
}
const now = Date.now()
if (now - lastTap.value < DOUBLE_TAP_DELAY) {
//
clearTimeout(setout.value)
if (index == 0) {
navurl.value = 'pages/Warehouse/paymoney'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (index == 1) {
navurl.value = 'pages/procurement/material'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (index == 2) {
navurl.value = 'pages/Warehouse/picking'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (index == 3) {
navurl.value = 'pages/Warehouse/finish'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (index === 5) {
uni.navigateTo({
url: "/pages/watch/full"
})
}
if (index ==6) {
navurl.value = 'pages/procurement/outbound?code=0'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (index ==7) {
navurl.value = 'pages/procurement/outbound?code=1'
uni.navigateTo({
url: '/' + navurl.value
})
}
//
lastTap.value = 0
} else {
setout.value = setTimeout(()=>{
console.log("点击哪个了",index)
if (index === 5) {
uni.navigateTo({
url: "/pages/watch/full"
})
}
},DOUBLE_TAP_DELAY)
//
lastTap.value = now
}
}
onMounted(() => {
housedex.value = 1
})
const navurl = ref('');
const movecard = (type : number) => {
// console.log(type,housedex.value)
switch (type) {
case 0:
//
housedex.value > 0 ? housedex.value-- : housedex.value = 3
break;
case 1:
housedex.value > 2 ? housedex.value = 0 : housedex.value++
//
break;
case 2:
housedex.value > 2 ? housedex.value = 0 : housedex.value++
//
break;
case 3:
housedex.value > 0 ? housedex.value-- : housedex.value = 3
//
break;
case 4:
//
// console.log('' + housedex.value)
if (housedex.value == 1) {
navurl.value = 'pages/Warehouse/procurement'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (housedex.value == 2) {
navurl.value = 'pages/Warehouse/picking'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (housedex.value == 3) {
navurl.value = 'pages/Warehouse/finish'
uni.navigateTo({
url: '/' + navurl.value
})
}
// uni.navigateTo({
// url: '/' + navurl.value
// })
break;
case 5:
//
uni.navigateBack()
break;
default:
break;
}
}
const onlyjump = (index : number) => {
console.log("点击了哪个图标", index)
if (index > 5) { return }
if (index > 5) {
navurl.value = 'pages/Warehouse/finish'
uni.navigateTo({
url: '/' + navurl.value
})
return
}
if (index < 4) {
housedex.value = index;
}
@ -512,6 +491,14 @@
top: 24vw;
right: 6vw;
}
.annotation7 {
top: 62vh;
left: 40vw;
}
.annotation8 {
top: 5vh;
left: 28vw;
}
// title
.annotation {

View File

@ -175,4 +175,37 @@ export const pickingInfo = (params) => {
method: 'post',
data: params
})
}
}
//(业务)查询随行单照片集合
export const querySxdList = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/querySxdList`,
method: 'get',
data: params
})
}
//(业务)查询随行单照片集合
export const addSxd = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/addSxd`,
method: 'post',
data: params
})
}
export const queryJhzpList = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/queryJhzpList`,
method: 'get',
data: params
})
}
// (业务)采购单拣货记录
export const queryPickingRecordList = (params) => {
return request({
url: `${uni.getStorageSync('serverUrl')}/api/pad/invoicing/queryPickingRecordList`,
method: 'get',
data: params
})
}

View File

@ -90,6 +90,7 @@
z-index: 21;
padding: 0 10%;
z-index: 999;
border: 1px solid #999;
}
.zhezhao {
position: fixed;

View File

@ -333,20 +333,21 @@
采购单号
</text>
<text class="photowall-right">
10120251024012
{{plsbuy[lefttarget]?.cgdNo}}
</text>
</view>
</view>
<view class="photowall-other">
<view class="photowall-other-one" v-for="(item,index) in [1,1,1,1,1]" :key="index">
<image style="width: 100%;height: 70%;" src="/static/ceshiyaoshan.png" />
<scroll-view scroll-y="true" class="photowall-other" scroll-with-animation v-if="topbuttontarget==0">
<view class="photowall-other-one" v-for="(item,index) in jhdanarr" :key="index" @click="previewImage(item,index,jhdanarr,2)">
<image style="width: 100%;height: 70%;border-radius: 30rpx;"
:src="item.jhPic?serverUrl + item.jhPic:'/static/ceshiyaoshan.png'" mode="aspectFill" :lazy-load="true"/>
<view style="margin-top: 20rpx;">
<text style="color: #888888;">
上传时间:
</text>
<text style="margin-left: 15rpx;">
2025.10.11 10:12:56
{{item.createTime}}
</text>
</view>
<view style="margin-top: 10rpx;">
@ -354,13 +355,37 @@
上传人:
</text>
<text>
赵晓璇
{{item.createBy}}
</text>
</view>
</view>
</scroll-view>
<scroll-view scroll-y="true" class="photowall-other" scroll-with-animation v-if="topbuttontarget==1">
<view class="photowall-other-one" v-for="(item,index) in suixingdanarr" :key="index" @click="previewImage(item,index,suixingdanarr,1)">
<image style="width: 100%;height: 70%;border-radius: 30rpx;"
:src="item.sxdPic?serverUrl + item.sxdPic:'/static/ceshiyaoshan.png'" mode="aspectFill"/>
<view style="margin-top: 20rpx;">
<text style="color: #888888;">
上传时间:
</text>
<text style="margin-left: 15rpx;">
{{item.createTime}}
</text>
</view>
<view style="margin-top: 10rpx;">
<text style="color: #888888;letter-spacing: 8.9rpx;">
上传人:
</text>
<text>
{{item.createBy}}
</text>
</view>
</view>
<view class="photowall-other-one" v-if="topbuttontarget==1">
<view
style="width: 100%;height: 70%;display: flex;flex-direction: column;justify-content: center;align-items: center;background-color:#fafdff ;border: 1rpx solid #78B1EB;border-radius: 30rpx;"
style="width: 100%;height: 70%;display: flex;flex-direction: column;
justify-content: center;align-items: center;position: absolute;top:3vw;left: 0;
background-color:#fafdff ;border: 1rpx solid #78B1EB;border-radius: 30rpx;"
@click="uplod(1)"
>
<image style="width: 70rpx;height: 70rpx;margin-bottom: 5rpx;"
@ -370,8 +395,12 @@
</view>
</view>
</view>
</view>
</scroll-view>
</view>
<view class="contain-left">
<view class="left-select-more" v-show="openselect">
<view class="more-bottom">
@ -907,7 +936,7 @@
<view class="right-bottom" v-show="typechange==1" style="padding: 0 50rpx;flex-direction: column;">
<view style="width: 100%;display: flex;justify-content: space-between;margin-top: 20rpx;">
<view style="font-size: 35rpx;font-weight: 600;margin-left: 20rpx;">
留置针敷贴(医用...
{{showvalue.wlName}}
</view>
<view style="color: black;">
<text style="color: #888888;">
@ -915,31 +944,31 @@
</text>
<text style="font-weight: 600;">
100
{{showvalue.purchaseQuantity}}
</text>
{{showvalue.wlUnits}}
</view>
</view>
<view style="width: 110%;height: 400rpx;display: flex;flex-wrap: wrap;">
<scroll-view style="width: 110%;height: 400rpx;display: flex;flex-wrap: wrap;" scroll-y="true"
scroll-with-animation @scrolltolower="lhjlfy()">
<view
style="width: 45%;height: 180rpx;background-color: #F9F9F9;border-radius: 30rpx;margin-right: 2%;margin-top: 20rpx;padding: 0 30rpx;color: #888888;"
v-for="(item,index) in [1,1,1,1]" :key="index">
style=" display: inline-block;width: 45%;height: 180rpx;background-color: #F9F9F9;border-radius: 30rpx;margin-right: 2%;margin-top: 20rpx;padding: 0 30rpx;color: #888888;"
v-for="(item,index) in lhjlarr" :key="index">
<view
style="width: 100%;justify-content: space-between;display: flex;align-items: center;height: 60rpx;margin-top: 20rpx;">
<view class="">
拣货数量
<text style="font-weight: 600;color: black;">
20
{{item.crkNum}}
</text>
<text style="color: black;">
{{showvalue.wlUnits}}
</text>
</view>
<view
style="width: 110rpx;height: 50rpx;border-radius: 30rpx;display: flex;justify-content: center;align-items: center;border: 1rpx solid #C3C3C3;background-color: #f1f1f1;color: #888888;margin-top: -10rpx;">
{{ index?`销账`:`入库` }}
{{ item.crkStatus_dictText}}
</view>
</view>
<view style="width: 100%;justify-content: space-between;display: flex;">
@ -947,14 +976,14 @@
采购单价
<text style="font-weight: 600;color: black;">
1.50
{{item.oldPrice}}
</text>
</view>
<view class="">
拣货人
<text style="color: black;">
梁嘉豪
{{item.createBy}}
</text>
</view>
@ -962,26 +991,27 @@
<view style="width: 100%;justify-content: space-between;display: flex;margin-top: 10rpx;">
<view class="">
到货单价
<text style="font-weight: 600;color: black;">
1.50
{{item.newPrice}}
</text>
</view>
<view class="">
2025.10.03 10:10:30
{{item.createTime}}
</view>
</view>
</view>
<view
style="width: 100%;display: flex;justify-content: center;color: #C3C3C3;margin-top: 20rpx;">
<image
<image v-if="statustory=='loading'"
style="width: 25rpx;height: 25rpx;margin-right: 10rpx;margin-top: 5rpx;margin-left: -10rpx;"
src="/static/index/warehouse/procurement/picking/loading.png" />
点击加载更多
<text v-if="statustory=='loading'">上划加载更多</text>
<text v-if="statustory=='nomore'">已加载全部~</text>
<text v-if="statustory=='loadmore'">加载中~</text>
</view>
</view>
</scroll-view>
</view>
</view>
@ -1055,12 +1085,13 @@
<view class="mengban" v-if="open==1"> </view>
<equiment :open="open==1" @del="del()" @back="open = 0" :content="'是否删除此图片?'"></equiment>
<equiment :open="open==2" @del="sctp(1)" @back="open = 0" :content="'是否销账此物料?'"></equiment>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineProps, onUnmounted } from 'vue';
import { queryInvoicingList, getCgdMaterialTreeData, queryNuInfoByNuId, updateKfstatus, queryCgdList, queryCgdInfoList, queryWlInfoByWlId, voidedCgdMain, getCgrLis, getGysList, upload, editPrice, pickingInfo } from './api/lunpan.js'
import { queryPickingRecordList,queryJhzpList,addSxd,querySxdList,queryInvoicingList, getCgdMaterialTreeData, queryNuInfoByNuId, updateKfstatus, queryCgdList, queryCgdInfoList, queryWlInfoByWlId, voidedCgdMain, getCgrLis, getGysList, upload, editPrice, pickingInfo } from './api/lunpan.js'
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import calendar from '@/component/public/calendar.vue'
import superpicker from '@/component/public/superpicker.vue'
@ -1443,7 +1474,9 @@
showvalue.value.jianhuobtn = true;
}
Object.assign(form, mobanform)
lhjpageNo.value = 1;
lhjlarr.value = [];
lhjilu()
}
const InvoicingList = ref([])
const queryInvo = (index : number) => {
@ -1452,6 +1485,26 @@
clickmiddle(index);
})
}
const lhjlarr = ref([])
const lhjpageNo = ref(1)
const statustory = ref('loading')
const lhjilu = () =>{
let obj = {
cgdId:showvalue.value.cgdId,
wlId:showvalue.value.wlId,
pageNo: lhjpageNo.value,
pageSize: 10,
}
queryPickingRecordList(obj).then(res=>{
lhjlarr.value.push(...res.result.records)
statustory.value = (res.result.total == lhjlarr.value.length || res.result.records.length==0 ? 'nomore' : 'loadmore')
})
}
const lhjlfy =()=>{
if(statustory.value == 'nomore' ){return}
lhjpageNo.value++;
lhjilu()
}
const search = () => {
// if (!plzinfo.cgdParamInfo) return
plzinfo.pageNo = 1;
@ -1545,13 +1598,69 @@
})
}
const donghuaopo = ref(false)
const suixingdanarr = ref([])
const jhdanarr = ref([])
const donghuastart = (index : number) => {
if(index==1){
sxdarr()
}else{
JhzpList()
}
topbuttontarget.value = index;
donghuaopo.value = false;
setTimeout(() => {
donghuaopo.value = true;
}, 100)
}
const Jhz = ref(1)
const JhzpList =()=>{
let obj = {
cgdId:plsbuy.value[lefttarget.value].id,
}
queryJhzpList(obj).then(res=>{
jhdanarr.value=res.result
})
}
const sxdarr = ()=>{
let obj = {
cgdId:plsbuy.value[lefttarget.value].id,
pageNo:1,
pageSize:-1
}
querySxdList(obj).then(res=>{
console.log(res.result.records)
suixingdanarr.value = res.result.records
})
}
const sxdupld = (e)=>{
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
uni.uploadFile({
url: uni.getStorageSync('serverUrl') + '/sys/common/upload',
filePath: e,
name: 'file',
formData: {
biz: 'sxdPic/'+year+'/'+month
},
header: {
'X-Access-Token': uni.getStorageSync('token')
},
success: res => {
const data = JSON.parse(res.data)
addSxd({sxdPic:data.message,cgdId:plsbuy.value[lefttarget.value].id}).then(resd=>{
if(resd.success){
sxdarr()
}
})
},
fail: () => {
uni.showToast({ title: '上传失败', icon: 'none' })
}
})
}
//
const albumlist = ref([])
const uplod = (type:number) => {
@ -1568,7 +1677,8 @@
if(!type){
albumlist.value.push(res.tempFilePath)
}else if(type==1){
console.log("成功!")
sxdupld(res.tempFilePath)
console.log(res.tempFilePath)
}
}
@ -1577,11 +1687,45 @@
});
}
//
const previewImage = (v, i, arr) => {
uni.previewImage({
current: i,
urls: arr
})
const previewImage = (v, i, arr ,n) => {
if(n==1){
let u = []
arr.forEach(e=>{
u.push(serverUrl.value+e.sxdPic)
})
uni.previewImage({
current: i,
urls: u,
showmenu:false,
longPressActions: {
itemList: [],
}
})
}
else if(n==2){
let u = []
arr.forEach(e=>{
u.push(serverUrl.value+e.jhPic)
})
uni.previewImage({
current: i,
urls: u,
showmenu:false,
longPressActions: {
itemList: [],
}
})
}
else{
uni.previewImage({
current: i,
urls: arr,
showmenu:false,
longPressActions: {
itemList: [],
}
})
}
}
// 1
const deldex = ref(-1)
@ -1663,7 +1807,7 @@
let obj = {
jhId: showvalue.value.id,
jhNum: showvalue.value.num,
jhType: xdex.value,
jhType: e,
jhPic: str == '' ? null : str,
cgdId: showvalue.value.cgdId
}
@ -1680,20 +1824,22 @@
queryInvo(middletarget.value)
})
}
const xdex = ref(-1)
const addupimg = ref([])
const sctp = (e : number) => {
if (albumlist.value.length == 0) {
const sctp = (e : number ) => {
if (albumlist.value.length == 0 ) {
fag(e)
return
}
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
albumlist.value.forEach(item => {
uni.uploadFile({
url: uni.getStorageSync('serverUrl') + '/sys/common/upload',
filePath: item,
name: 'file',
formData: {
biz: 'jhPic'
biz: 'jhPic/'+year+'/'+month
},
header: {
'X-Access-Token': uni.getStorageSync('token')
@ -1715,7 +1861,6 @@
}
const config = (e) => {
xdex.value = e;
if (e == 1) {
open.value = 2;
} else {
@ -2982,16 +3127,18 @@
.photowall-other {
width: 110%;
height:67vh;
display: flex;
flex-wrap: wrap;
margin-top: 40rpx;
.photowall-other-one {
width: 28.5%;
height: 400rpx;
margin-right: 3%;
margin-right:3vw;
margin-bottom: 3%;
border-radius: 30rpx;
display: inline-block;
position: relative;
// background-color: red;
}
}

View File

@ -0,0 +1,32 @@
<template>
<view>
<view
style="
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
font-size: 2vw;">
{{code==0?'请领出库':'退货入库'}}
</view>
</view>
</template>
<script>
export default {
onLoad(e) {
this.code = e.code
},
data() {
return {
code:0
};
}
}
</script>
<style lang="less">
</style>

View File

@ -574,7 +574,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
)
]);
}
const camera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/hldy_app_mini/pages/camera.nvue"]]);
const camera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/项目/hldy_app_mini/pages/camera.nvue"]]);
export {
camera as default
};

View File

@ -577,7 +577,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
)
]);
}
const fullcamera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/hldy_app_mini/pages/fullcamera.nvue"]]);
const fullcamera = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]], ["__file", "D:/项目/hldy_app_mini/pages/fullcamera.nvue"]]);
export {
fullcamera as default
};