This commit is contained in:
Teng 2025-05-13 17:18:07 +08:00
parent ea6d9740cc
commit a032a01544
47 changed files with 4601 additions and 262 deletions

View File

@ -1,13 +1,13 @@
<template> <template>
<view> <view>
<!-- 遮罩层display v-show 控制opacity overlay-show 类控制 --> <!-- 遮罩层display v-show 控制opacity overlay-show 类控制 -->
<view v-show="isVisible" :class="['overlay', { 'overlay-show': isVisible }]" @click="closeDrawer" /> <view v-show="isVisible" :class="['overlay', { 'overlay-show': isVisible }]" @click="whiteDrawer" />
<!-- 抽屉 --> <!-- 抽屉 -->
<view :class="['drawer', { 'drawer-open': isVisible }]" :style="drawerStyle"> <view :class="['drawer', { 'drawer-open': isVisible }]" :style="drawerStyle">
<view class="drawer-content"> <view class="drawer-content">
<!-- 抽屉中间的半圆 --> <!-- 抽屉中间的半圆 -->
<view v-show="isVisible" class="drawer-content-circle" @click="closeDrawer"> <view v-show="isVisible && canclose" class="drawer-content-circle" @click="whiteDrawer">
<image class="drawer-img" src="/static/index/zuoyuan.png" /> <image class="drawer-img" src="/static/index/zuoyuan.png" />
</view> </view>
<!-- 抽屉内容 --> <!-- 抽屉内容 -->
@ -32,6 +32,10 @@
widNumber: { widNumber: {
type: Number, type: Number,
default: 85 default: 85
},
canclose: {
type:Boolean,
default:true
} }
}) })
@ -44,7 +48,12 @@
function openDrawer() { function openDrawer() {
isVisible.value = true isVisible.value = true
} }
//
function whiteDrawer() {
if(props.canclose){
isVisible.value = false
}
}
// //
function closeDrawer() { function closeDrawer() {
isVisible.value = false isVisible.value = false

View File

@ -123,6 +123,7 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
background: url("/static/index/pink.png") center/cover; background: url("/static/index/pink.png") center/cover;
overflow: hidden;
} }
.draw-title { .draw-title {

View File

@ -144,18 +144,30 @@
</view> </view>
<view class="swiper-left-buttons-big"> <view class="swiper-left-buttons-big">
<view class="swiper-left-button-blue"> <view class="swiper-left-button-blue" @click="buttonclick(`qinggou`)" >
请购 请购
</view> </view>
<view class="swiper-left-button"> <view class="swiper-left-button" @click="buttonclick(`churuku`)" >
出入库 出入库
</view> </view>
</view> </view>
</view> </view>
</template> </template>
<script setup> <script setup lang="ts">
import {
ref,
onMounted,
onBeforeUnmount,
computed,
nextTick,
defineProps,
watch
} from 'vue';
const emit = defineEmits(["qinggou","churuku"])
const buttonclick = (res:any) =>{
emit(res)
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -0,0 +1,310 @@
<!-- 入库单 -->
<template>
<view class="draw-all">
<view class="draw-contain">
<view style="margin-left: 80rpx;">
<view class="draw-title">
<view class="draw-flex">
<view class="draw-title-gun"></view>
<view class="draw-title-font">采购数量</view>
</view>
</view>
<view class="calculator-father">
<view v-for="(item,index) in calculatorArray" :key="index">
<view :class="blueNumber == index ? `calculator-kuai-target` : `calculator-kuai`"
@click="clickKuai(item,index)">
{{item}}
</view>
</view>
</view>
<view class="qinggou-font">
采购数量
</view>
<view class="stringShow-father">
<view v-for="(item,index) in stringShow" :key="index">
<view class="stringShow-kuai">
{{item}}
</view>
</view>
</view>
</view>
<!-- <view class="plsbuy-bottom">
<view class="plsbuy-bottom-blue" @click="closeIt">
确认
</view>
</view> -->
<view class="button-card">
<view class="swiper-button-white" @click="close()">
关闭
</view>
<view class="swiper-button-blue" @click="closeIt()">
确定
</view>
</view>
</view>
</view>
</template>
<script setup lang="ts">
import {
ref,
onMounted,
onBeforeUnmount,
computed,
nextTick,
watch
} from 'vue';
const emit = defineEmits(['right',"close"])
const blueNumber = ref(-1);
const props = defineProps({
doOnce: {
type: Number,
required: true,
},
translateNumber: {
type: Number,
required: true,
},
});
watch(
() => props.doOnce,
() => {
relNumber.value = props.translateNumber
stringShow.value = toFixed4ByPadStart(relNumber.value)
}
)
const calculatorArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, "AC", 0, "CE"];
const stringShow = ref("0000");
const relNumber = ref(0);
// const isZero = ref(false);
const clickKuai = (item : any, index : number) => {
blueNumber.value = index;
setTimeout(() => {
blueNumber.value = -1
}, 300)
if (item == "AC") {
relNumber.value = 0;
stringShow.value = "0000"
return
}
if (item == "CE") {
relNumber.value = Math.trunc(relNumber.value / 10)
stringShow.value = toFixed4ByPadStart(relNumber.value)
return
}
if (digitCountByString(relNumber.value) > 3) {
} else {
if (!relNumber.value) {
relNumber.value = item
} else {
relNumber.value = relNumber.value * 10 + item;
}
stringShow.value = toFixed4ByPadStart(relNumber.value)
}
}
const closeIt = () => {
emit('right', relNumber.value)
}
const close = () =>{
emit('close')
}
//
function digitCountByString(n) {
//
const s = Math.abs(n).toString();
//
// return s.replace('.', '').length;
return s.length;
}
// NumberString
function toFixed4ByPadStart(n) {
// 1.
const intPart = Math.floor(Math.abs(n));
// 2. padStart 4 '0'
return String(intPart).padStart(4, '0');
}
</script>
<style lang="less" scoped>
.draw-all {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
background-color: #fff;
// border-top-left-radius: 80rpx;
// border-bottom-left-radius: 80rpx;
overflow: hidden;
.draw-flex {
display: flex;
}
.draw-contain {
width: 100%;
height: calc(100vh);
background-image: url("/static/index/fanpink.png");
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
}
}
.button-card {
margin-top: 30rpx;
display: flex;
justify-content: flex-end;
}
.swiper-button-white {
background: linear-gradient(to bottom, #D5E0F8, #ECF6FF);
border: 2rpx solid #fff;
border-radius: 20rpx;
width: 200rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
// margin: 0 10rpx;
margin-right: 20rpx;
}
.swiper-button-blue {
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
border: 2rpx solid #fff;
border-radius: 20rpx;
width: 200rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
margin: 0 10rpx;
color: #fff;
margin-right: 40rpx;
}
.draw-title {
width: 100%;
height: 60rpx;
display: flex;
justify-content: space-between;
padding-top: 30rpx;
margin-top: 20rpx;
margin-bottom: 20rpx;
.draw-flex {
display: flex;
}
.draw-title-gun {
margin-left: 20rpx;
margin-right: 20rpx;
width: 13rpx;
height: 40rpx;
background: linear-gradient(to bottom, #04BCED, #0160CE);
border-radius: 10rpx;
}
.draw-title-font {
font-size: 35rpx;
font-weight: 700;
}
}
// .plsbuy-bottom {
// width: 100%;
// margin-top: 20rpx;
// height: 70rpx;
// display: flex;
// justify-content: center;
// font-size: 35rpx;
// .plsbuy-bottom-blue {
// display: flex;
// justify-content: center;
// align-items: center;
// width: 230rpx;
// height: 80rpx;
// border-radius: 20rpx;
// background: linear-gradient(to right bottom, #00c9ff, #0076ff);
// color: #fff;
// border: 1rpx #fff solid;
// // margin-right: 20rpx;
// box-shadow: 2rpx 2rpx 4rpx 0rpx rgba(0, 0, 0, 0.3);
// }
// }
.calculator-father {
width: 420rpx;
height: 500rpx;
margin-top: 20rpx;
flex-wrap: wrap;
display: flex;
.calculator-kuai {
display: flex;
justify-content: center;
align-items: center;
background-color: #DCDCEE;
border-radius: 25rpx;
font-size: 45rpx;
font-weight: 500;
margin: 15rpx 20rpx 0 20rpx;
width: 100rpx;
height: 100rpx;
}
.calculator-kuai-target {
background: linear-gradient(to bottom, #00C9FF, #0076FF);
color: #fff;
display: flex;
justify-content: center;
align-items: center;
background-color: #DCDCEE;
border-radius: 25rpx;
font-size: 45rpx;
font-weight: 500;
margin: 15rpx 20rpx 0 20rpx;
width: 100rpx;
height: 100rpx;
}
}
.stringShow-father {
width: 420rpx;
height: 70rpx;
margin-top: 20rpx;
margin-left: 23rpx;
// flex-wrap: wrap;
display: flex;
.stringShow-kuai {
display: flex;
justify-content: center;
align-items: center;
// background-color: #DCDCEE;
border-radius: 25rpx;
// border-radius: 15rpx;
font-size: 45rpx;
font-weight: 500;
margin: 0 15rpx;
width: 70rpx;
height: 70rpx;
border: 3rpx solid #303C57;
}
}
.qinggou-font {
font-size: 35rpx;
font-weight: 500;
margin-top: 20rpx;
margin-bottom: 20rpx;
}
</style>

View File

@ -0,0 +1,683 @@
<!-- 拣货单 -->
<template>
<view class="draw-all">
<view class="draw-contain">
<!-- 解决margin重叠问题 -->
<view class="title-title">
留置针敷贴(医用透明敷料)
</view>
<view class="draw-title" style="margin-top: 35rpx;margin-bottom: 10rpx;">
<view class="draw-flex">
<view class="draw-title-gun"></view>
<view class="draw-title-font">采购单</view>
</view>
</view>
<view class="swiper-card-once">
<view class="swiper-card-top">
<view class="swiper-card-top-card">
<view class="swiper-card-top-card-noral">
<view class="swiper-all-flex">
<view class="swiper-gray">
货品名称:
</view>
<view class="swiper-black">
留置针敷贴(医用透明敷料)
</view>
</view>
<view class="swiper-all-flex" style="width: 45%;">
<view class="swiper-gray">
货品编码:
</view>
<view class="swiper-black">
FLYP001
</view>
</view>
</view>
<view class="swiper-card-top-card-noral" style="margin-top: 15rpx;">
<view class="swiper-all-flex">
<view class="swiper-gray">
规格型号:
</view>
<view class="swiper-black">
6cm*7cm
</view>
</view>
<view class="swiper-all-flex" style="width: 45%;">
<view class="swiper-gray">
采购单位:
</view>
<view class="swiper-black">
</view>
</view>
</view>
<view class="swiper-card-top-card-noral" style="margin-top: 15rpx;">
<view class="swiper-all-flex" style="width: 30%;">
<view class="swiper-gray">
采购单价:
</view>
<view class="swiper-black">
0.1
</view>
</view>
<view class="swiper-all-flex" style="width: 30%;">
<view class="swiper-gray">
到货单价:
</view>
<view class="swiper-black">
0.12
</view>
</view>
<view class="swiper-all-flex" style="width: 30%;">
<view class="swiper-gray">
采购金额:
</view>
<view class="swiper-black">
10.12
</view>
</view>
</view>
</view>
</view>
</view>
<view class="draw-title" style="margin-top: 35rpx;margin-bottom: 10rpx;">
<view class="draw-flex">
<view class="draw-title-gun"></view>
<view class="draw-title-font">入库信息</view>
</view>
</view>
<view class="color-father">
<view class="color-pink" style="margin-left: 40rpx;">
<view class="color-weight">
10
</view>
<view class="color-font">
采购数量
</view>
</view>
<view class="color-green">
<view class="color-weight">
0
</view>
<view class="color-font">
入库数量
</view>
</view>
<!-- <view class="color-blue">
<view class="color-weight">
0
</view>
<view class="color-font">
挂账数量
</view>
</view> -->
<view class="color-red">
<view class="color-weight">
0
</view>
<view class="color-font">
销账数量
</view>
</view>
</view>
<view class="draw-title" style="margin-top: 35rpx;margin-bottom: 10rpx;">
<view class="draw-flex">
<view class="draw-title-gun"></view>
<view class="draw-title-font">拣货入库</view>
</view>
</view>
<view class="swiper-card-once" style="height: 240rpx;">
<view class="swiper-card-top">
<view class="swiper-card-top-card">
<view class="swiper-card-top-card-noral" style="margin-top: 15rpx;flex-direction: column;">
<view v-for="(item, index) in shopArray" :key="index" class="plsbuy-card-heng">
<view class="card-flex">
<!-- <view class="plsbuy-weight">供应商</view> -->
<view class="plsbuy-font-right">{{ item.name }}</view>
</view>
<view class="card-flex">
<view class="plsbuy-right-weight">{{index?`销账数量`:`入库数量`}}</view>
<view :class="item.change===1?`plsbuy-jian-target`:`plsbuy-jian`"
@click="subtractNumber(item)">
-</view>
<view class="plsbuy-number" @click="openIndex(index,item.many)">{{ item.many }}</view>
<view :class="item.change===2?`plsbuy-jia-target`:`plsbuy-jia`"
@click="addNumber(item)">+
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<!-- <view class="dash-font">
说明:采购改量=入库数量+销账数量+挂账改量其中挂账致量由平台自动计算得出;平含根据入库致量"销账致量和挂账致量分别生成对应的入库单销账中挂账单
</view> -->
<view class="draw-title" style="margin-top: 35rpx;margin-bottom: 25rpx;">
<view class="draw-flex">
<view class="draw-title-gun"></view>
<view class="draw-title-font">拣货拍照</view>
</view>
</view>
<view class="down-note">
<image class="down-note-img" style="margin-left: 40rpx;" src="/static/index/Warehousing/zuo.png" />
<scroll-view scroll-x style="height: 100%;width: 950rpx;" :show-scrollbar="false">
<view style="display: flex;">
<view v-for="(item,index) in photoArray" :key="index">
<image class="down-note-photo" :src="item" @click="openPhoto(index)" />
</view>
</view>
</scroll-view>
<image class="down-note-img" src="/static/index/Warehousing/you.png" />
</view>
<view class="button-card">
<view class="swiper-button-white" @click="closeIt">
取消
</view>
<view class="swiper-button-blue" @click="closeIt">
确定
</view>
</view>
</view>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, defineProps, defineEmits, watch } from 'vue';
const note = ref("");
const calendarShow = ref(false);
const stateTarget = ref("");
const emit = defineEmits(['opensuixing', "closehexiao","closepickingdrawer","openCal"])
const props = defineProps({
backnumber:{
type:Number
}
});
watch(
() => props.backnumber,
() => {
shopArray.value[saveIndex.value].many = props.backnumber
})
const postItems = ref(0);
// const stateArray = ['', '', '', '', '', ''];
//
const buttonList = ref([
{ url: '/static/index/Warehousing/sousuo.png', name: '查询' },
{ url: '/static/index/Warehousing/chongzhi.png', name: '重置' },
]);
const photoArray = ref([`https://img-s.msn.cn/tenant/amp/entityid/AA1ECZ6y.img?w=768&h=960&m=6&x=355&y=171&s=47&d=47`, `https://img-s.msn.cn/tenant/amp/entityid/AA1ECtEb.img?w=768&h=436&m=6&x=280&y=134&s=200&d=200`,"/static/index/addphoto.png"])
const shopArray = ref([{
name: "入库数量",
many: 9999,
change: 0
},
{
name: "销账数量",
many: 0,
change: 0
},
// {
// name: "",
// many: 0,
// change: 0
// },
]);
const saveIndex = ref(0)
const openIndex = (index:number,number:number) =>{
saveIndex.value = index;
emit("openCal",number)
}
const closeIt = () =>{
emit("closepickingdrawer")
}
const chooseImages = () => {
uni.chooseImage({
count: 9, // 9
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
success: (res) => {
photoArray.value.pop()
photoArray.value = [...photoArray.value, ...res.tempFilePaths];
photoArray.value.push("/static/index/addphoto.png")
}
});
};
const openPhoto = (index : number) => {
if (index == photoArray.value.length - 1) {
chooseImages()
} else {
uni.previewImage({
urls: photoArray.value.slice(0, -1),
current: photoArray.value[index],
})
}
}
const subtractNumber = (item) => {
item.many && item.many--
item.change = 1
setTimeout(() => {
item.change = 0
}, 300)
}
const addNumber = (item) => {
item.many < 9999 && item.many++
item.change = 2
setTimeout(() => {
item.change = 0
}, 300)
}
const calendarchange = (e : any) => {
stateTarget.value = e.result
}
const opensuixing = () => {
emit('opensuixing')
}
const closehexiao = () => {
emit('closehexiao')
}
// const opendetail = () => {
// emit('opendetail')
// }
</script>
<style lang="less" scoped>
.draw-all {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
background-color: #fff;
border-top-left-radius: 80rpx;
border-bottom-left-radius: 80rpx;
overflow: hidden;
.draw-flex {
display: flex;
}
.draw-contain {
width: 100%;
height: calc(100vh);
background-image: url("/static/index/fanpink.png");
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
}
}
.swiper-gray {
color: #596278;
}
.draw-title {
width: 100%;
height: 60rpx;
display: flex;
justify-content: space-between;
margin-left: 20rpx;
.draw-flex {
display: flex;
}
.draw-title-gun {
margin-left: 20rpx;
margin-right: 20rpx;
width: 13rpx;
height: 40rpx;
background: linear-gradient(to bottom, #04BCED, #0160CE);
border-radius: 10rpx;
}
.draw-title-font {
font-size: 35rpx;
font-weight: 700;
margin-top: -3rpx;
}
.draw-title-blue {
height: 50rpx;
width: 120rpx;
margin-right: 50rpx;
background: linear-gradient(to right bottom, #00c9ff, #0076ff);
color: #fff;
display: flex;
align-items: center;
justify-content: center;
border-radius: 10rpx;
border: 1rpx solid #fff;
}
}
.swiper-card-once {
margin: 0rpx 0 30rpx 30rpx;
width: 1100rpx;
height: 180rpx;
border: 2rpx solid #fff;
border-radius: 30rpx;
background: url("/static/index/blueMountain.png") center/cover, rgba(255, 255, 255, 0.5);
background-blend-mode: screen;
isolation: isolate;
box-shadow: 5rpx 5rpx 10rpx 0rpx #839fcc;
overflow: hidden;
padding: 0 40rpx;
.swiper-card-top {
width: 100%;
height: 220rpx;
display: flex;
.swiper-card-top-card {
width: 100%;
height: 100%;
.swiper-card-top-card-weight {
display: flex;
justify-content: space-between;
margin: 25rpx 0;
font-size: 30rpx;
font-weight: 500;
.weight-left {
display: flex;
.blue-number {
font-size: 32rpx;
font-weight: 700;
color: #017DE9;
margin-top: 10rpx;
}
}
.weight-right {
color: #FF6000;
font-weight: 500;
font-size: 30rpx;
}
}
.swiper-card-top-card-noral {
// margin-left: 50rpx;
display: flex;
justify-content: space-between;
margin-top: 17rpx;
font-size: 25rpx;
}
}
}
}
.title-title {
margin-top: 70rpx;
margin-bottom: 40rpx;
width: 100%;
display: flex;
justify-content: center;
// align-items: center;
font-weight: 700;
font-size: 35rpx;
}
.swiper-all-flex {
display: flex;
margin-top: 5rpx;
}
.color-father {
display: flex;
margin-left: 30rpx;
}
.color-weight {
font-size: 40rpx;
font-weight: 700;
margin-bottom: 15rpx;
margin-left: 50rpx;
}
.color-font {
margin-left: 50rpx;
}
.color-pink {
width: 300rpx;
height: 180rpx;
border-radius: 25rpx;
box-shadow: 4rpx 8rpx 16rpx 4rpx #839fcc;
background: linear-gradient(to bottom right, #eae7fa, #dadbf9);
margin-left: 50rpx;
display: flex;
justify-content: center;
// align-items: center;
flex-direction: column;
}
.color-green {
width: 300rpx;
height: 180rpx;
border-radius: 25rpx;
box-shadow: 4rpx 8rpx 16rpx 4rpx #839fcc;
background: linear-gradient(to bottom right, #bcf3f1, #9de9ee);
margin-left: 50rpx;
display: flex;
justify-content: center;
// align-items: center;
flex-direction: column;
}
.color-red {
width: 300rpx;
height: 180rpx;
border-radius: 25rpx;
box-shadow: 4rpx 8rpx 16rpx 4rpx #839fcc;
background: linear-gradient(to bottom right, #ffcccc, #ffccff);
margin-left: 50rpx;
display: flex;
justify-content: center;
// align-items: center;
flex-direction: column;
}
.plsbuy-card-heng {
display: flex;
align-items: center;
justify-content: space-between;
height: 100rpx;
.plsbuy-card-img {
width: 40rpx;
height: 40rpx;
margin: 0 20rpx;
}
}
.plsbuy-right-weight {
font-weight: 700;
font-size: 35rpx;
// margin-left: 140rpx;
}
.plsbuy-font-right {
font-size: 30rpx;
line-height: 30rpx;
}
.plsbuy-jian {
background-color: #D3E7FF;
width: 70rpx;
height: 70rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 10rpx;
margin-left: 30rpx;
border: 1rpx solid #313A4E;
font-size: 35rpx;
}
.plsbuy-jian-target {
background: linear-gradient(to bottom, #00C9FF, #0076FF);
color: #fff;
width: 70rpx;
height: 70rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 10rpx;
margin-left: 30rpx;
border: 1rpx solid #fff;
font-size: 35rpx;
}
.plsbuy-number {
border: 1rpx solid #313A4E;
// padding: 10rpx 20rpx;
border-radius: 10rpx;
display: flex;
justify-content: center;
align-items: center;
font-weight: 700;
margin: 0 10rpx;
// margin: 0 20rpx;
width: 90rpx;
height: 70rpx;
}
.plsbuy-number-target {
color: #0076FF;
border: 1rpx solid #0076FF;
// padding: 10rpx 20rpx;
border-radius: 10rpx;
display: flex;
justify-content: center;
align-items: center;
font-weight: 700;
margin: 0 10rpx;
// margin: 0 20rpx;
width: 90rpx;
height: 70rpx;
}
.plsbuy-jia {
background-color: #D3E7FF;
width: 70rpx;
height: 70rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 10rpx;
border: 1rpx solid #313A4E;
font-size: 35rpx;
margin-right: 5rpx;
}
.plsbuy-jia-target {
background: linear-gradient(to bottom, #00C9FF, #0076FF);
color: #fff;
width: 70rpx;
height: 70rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 10rpx;
border: 1rpx solid #fff;
font-size: 35rpx;
margin-right: 5rpx;
}
.card-flex {
display: flex;
align-items: center;
}
.plsbuy-number {
border: 1rpx solid #313A4E;
// padding: 10rpx 20rpx;
border-radius: 10rpx;
display: flex;
justify-content: center;
align-items: center;
font-weight: 700;
margin: 0 10rpx;
// margin: 0 20rpx;
width: 90rpx;
height: 70rpx;
}
.dash-font {
margin: 10rpx 30rpx;
padding: 10rpx;
width: 1100rpx;
// height: 60rpx;
border-style: dashed;
/* 定义虚线 */
border-width: 2px;
/* 线宽 */
border-color: #FF6657;
border-radius: 15rpx;
color: #FF6657;
}
.down-note {
width: 100%;
overflow: hidden;
height: 170rpx;
display: flex;
align-items: center;
position: relative;
margin-top: -10rpx;
display: flex;
.down-note-img {
width: 60rpx;
height: 60rpx;
}
.down-note-photo {
height: 150rpx;
width: 200rpx;
margin: 0 10rpx;
}
}
.button-card {
margin-top: 30rpx;
display: flex;
justify-content: flex-end;
}
.swiper-button-blue {
background: linear-gradient(to bottom, #00C9FF, #0076FF);
border: 2rpx solid #fff;
border-radius: 20rpx;
width: 200rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
margin: 0 10rpx;
color: #fff;
margin-right: 35rpx;
}
.swiper-button-white {
background: #fff;
border: 2rpx solid #fff;
border-radius: 20rpx;
width: 200rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
margin: 0 10rpx;
// color: #fff;
margin-right: 35rpx;
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -71,12 +71,12 @@
<view class="scroll-view"> <view class="scroll-view">
<scroll-view scroll-y style="height: 100%;" :show-scrollbar="false"> <scroll-view scroll-y style="height: 100%;" :show-scrollbar="false">
<view v-for="(item,index) in [1,1,1,1,1,1]" :key="index"> <view v-for="(item,index) in photoArray" :key="index">
<view class="card-father"> <view class="card-father" @click="openPhoto(index)">
<view class="card-white"> <view class="card-white">
<image class="card-white-photo" src="/static/index/Warehousing/photo.png" /> <image class="card-white-photo" :src="item" />
</view> </view>
<view class="down-title"> <view class="down-title" v-if="index!==photoArray.length-1">
<view class="down-title-flex"> <view class="down-title-flex">
<image class="down-title-photo" src="/static/index/Warehousing/shangchuanpeople.png" /> <image class="down-title-photo" src="/static/index/Warehousing/shangchuanpeople.png" />
<view style="margin-left: 10rpx;">上传人:</view> <view style="margin-left: 10rpx;">上传人:</view>
@ -117,6 +117,7 @@
}); });
const postItems = ref(0); const postItems = ref(0);
const photoArray = ref([`https://img-s.msn.cn/tenant/amp/entityid/AA1ECZ6y.img?w=768&h=960&m=6&x=355&y=171&s=47&d=47`, `https://img-s.msn.cn/tenant/amp/entityid/AA1ECtEb.img?w=768&h=436&m=6&x=280&y=134&s=200&d=200`,"/static/index/addphoto.png"])
// const stateArray = ['', '', '', '', '', '']; // const stateArray = ['', '', '', '', '', ''];
// //
const buttonList = ref([ const buttonList = ref([
@ -124,6 +125,28 @@
{ url: '/static/index/Warehousing/chongzhi.png', name: '重置' }, { url: '/static/index/Warehousing/chongzhi.png', name: '重置' },
]); ]);
const chooseImages = () => {
uni.chooseImage({
count: 9, // 9
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
success: (res) => {
photoArray.value.pop()
photoArray.value = [...photoArray.value, ...res.tempFilePaths];
photoArray.value.push("/static/index/addphoto.png")
}
});
};
const openPhoto = (index : number) => {
if (index == photoArray.value.length - 1) {
chooseImages()
} else {
uni.previewImage({
urls: photoArray.value.slice(0, -1),
current: photoArray.value[index],
})
}
}
// const emit = defineEmits(['opendetail']) // const emit = defineEmits(['opendetail'])
const calendarchange = (e : any) => { const calendarchange = (e : any) => {
stateTarget.value = e.result stateTarget.value = e.result

View File

@ -144,7 +144,7 @@
<!-- 详情的的弹出层 --> <!-- 详情的的弹出层 -->
<view v-show="detailisopen && isShow" class="popup-detail" @click="detailisopen=false"> <view v-show="detailisopen && isShow" class="popup-detail" @click="detailisopen=false">
<view class="popup-detail-content" :style="{ opacity: detailisopacity ? 1 : 0 }" @click.stop> <view class="popup-detail-content" :style="{ opacity: detailisopacity ? 1 : 0 }" @click.stop>
<info /> <info @qinggou="openBuy" @churuku="clickgoback" />
</view> </view>
</view> </view>
<!-- 请购的的弹出层 --> <!-- 请购的的弹出层 -->
@ -298,6 +298,7 @@
}, 100) }, 100)
} }
const openBuy = () => { const openBuy = () => {
detailisopen.value=false
plsBuyIsopen.value = true; plsBuyIsopen.value = true;
plsBuyisopacity.value = false; plsBuyisopacity.value = false;
setTimeout(() => { setTimeout(() => {
@ -311,6 +312,7 @@
goshopdrawer.value.openDrawer(); goshopdrawer.value.openDrawer();
} }
const clickgoback = () => { const clickgoback = () => {
detailisopen.value=false
gobackdrawer.value.openDrawer(); gobackdrawer.value.openDrawer();
} }
// //
@ -581,7 +583,7 @@
/* 添加毛玻璃效果 */ /* 添加毛玻璃效果 */
z-index: 999; z-index: 999;
overflow: hidden;
.popup-detail-content-plsbuy { .popup-detail-content-plsbuy {
position: absolute; position: absolute;
left: 350rpx; left: 350rpx;
@ -615,6 +617,7 @@
border-radius: 30rpx; border-radius: 30rpx;
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1); box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
transition: opacity 0.4s ease; transition: opacity 0.4s ease;
overflow: hidden;
} }
} }

View File

@ -146,7 +146,8 @@
结账 结账
</view> </view>
<view class="swiper-button-blue" <view class="swiper-button-blue"
v-show="item.cardType==3||item.cardType==2"> v-show="item.cardType==3||item.cardType==2"
@click="pickingGoodclick">
拣货 拣货
</view> </view>
<!-- <view class="swiper-button-blue" v-show="item.cardType==2"> <!-- <view class="swiper-button-blue" v-show="item.cardType==2">
@ -214,11 +215,27 @@
<Drawer ref="suixingdrawer" :widNumber="40" style="z-index: 1001;"> <Drawer ref="suixingdrawer" :widNumber="40" style="z-index: 1001;">
<suixing /> <suixing />
</Drawer> </Drawer>
<view v-show="caldrawer && isShow" class="popup-detail-cal" @click="caldrawer=false">
<view class="popup-detail-content" :style="{ opacity: detailisopacity ? 1 : 0 }" @click.stop>
<calculator :doOnce="doOnce" :translateNumber="translateNumber" @close="closeCal" @right="rightCal" />
</view>
</view>
<!-- 计算器的抽屉 -->
<!-- <Drawer ref="caldrawer" :widNumber="30" :canclose="false" style="z-index: 1001;">
<calculator :doOnce="doOnce" :translateNumber="translateNumber" @close="closeCal" @right="rightCal" />
</Drawer> -->
<!-- 作废的抽屉 --> <!-- 作废的抽屉 -->
<Drawer ref="voiddrawer" :widNumber="60"> <Drawer ref="voiddrawer" :widNumber="60">
<otherVoid @voidIt="isDelete(saveVoidIndex)" @closevoid="closevoid" /> <otherVoid @voidIt="isDelete(saveVoidIndex)" @closevoid="closevoid" />
</Drawer> </Drawer>
<!-- 拣货的抽屉 -->
<Drawer ref="pickingGooddrawer" :widNumber="60" style="z-index: 998;">
<pickingGood @openDrawer="openDrawer" />
</Drawer>
<!-- 拣货的拣货的抽屉 -->
<Drawer ref="pickingdrawer" :canclose="false" :widNumber="50" style="z-index: 998;">
<picking :backnumber="backnumber" @openCal="openCal" @closepickingdrawer="closepickingdrawer" />
</Drawer>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -229,6 +246,9 @@
import storage from "@/component/storeroom/drawer/storage/index.vue" import storage from "@/component/storeroom/drawer/storage/index.vue"
import suixing from "@/component/storeroom/drawer/suixing/index.vue" import suixing from "@/component/storeroom/drawer/suixing/index.vue"
import verification from "@/component/storeroom/drawer/verification/index.vue" import verification from "@/component/storeroom/drawer/verification/index.vue"
import pickingGood from "@/component/storeroom/drawer/pickingGood/index.vue"
import picking from "@/component/storeroom/drawer/picking/index.vue"
import calculator from "@/component/storeroom/drawer/calculator/index.vue"
const props = defineProps({ const props = defineProps({
isShow: { isShow: {
@ -305,6 +325,10 @@
openType.value = type; openType.value = type;
detaildrawer.value.openDrawer(); detaildrawer.value.openDrawer();
} }
const pickingGooddrawer = ref(null);
const pickingGoodclick = () =>{
pickingGooddrawer.value.openDrawer();
}
const saveVoidIndex = ref(-1); const saveVoidIndex = ref(-1);
const openVoidDrawer = (index:number) =>{ const openVoidDrawer = (index:number) =>{
// openType.value = type; // openType.value = type;
@ -316,6 +340,7 @@
suixingdrawer.value.openDrawer(); suixingdrawer.value.openDrawer();
} }
const dantype = ref(0); const dantype = ref(0);
const pickingdrawer =ref(null);
const openDrawer = (index:number) =>{ const openDrawer = (index:number) =>{
if(!index){ if(!index){
storagedrawer.value.openDrawer(); storagedrawer.value.openDrawer();
@ -324,13 +349,41 @@
storagedrawer.value.openDrawer(); storagedrawer.value.openDrawer();
dantype.value = 1; dantype.value = 1;
} }
else{ else if(index===2){
dantype.value = 2; dantype.value = 2;
verificationdrawer.value.openDrawer(); verificationdrawer.value.openDrawer();
}else if(index===3){
pickingdrawer.value.openDrawer();
}else if(index===4){
suixingdrawer.value.openDrawer();
} }
} }
const translateNumber = ref(0);
const doOnce = ref(0);
const caldrawer = ref(false);
const closeCal = () =>{
caldrawer.value = false;
}
const backnumber = ref(0);
const rightCal = (number:number) =>{
caldrawer.value = false;
backnumber.value = number
}
const openCal = (number:number) =>{
translateNumber.value = number;
caldrawer.value = true;
detailisopacity.value = false;
setTimeout(() => {
detailisopacity.value = true
}, 100)
doOnce.value ++
}
const closepickingdrawer = () =>{
pickingdrawer.value.closeDrawer()
}
const isDelete = (index : number) => { const isDelete = (index : number) => {
firstBall.value = 0 firstBall.value = 0
secondBall.value = 0 secondBall.value = 0
@ -981,4 +1034,36 @@
} }
} }
} }
.popup-detail-cal {
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(89, 109, 154, 0.4);
/* 添加毛玻璃效果 */
z-index: 999;
.popup-detail-content {
position: absolute;
right: 330rpx;
top: 140rpx;
display: flex;
width: 600rpx;
height: 900rpx;
background: url("/static/index/lightbgcnew.png") center/cover, rgba(255, 255, 255, 0.5);
background-blend-mode: screen;
border: 2rpx solid #fff;
/* 使用 screen 混合模式,让图像与白色混合变淡 */
border-radius: 40rpx;
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
transition: opacity 0.4s ease;
overflow: hidden;
}
}
</style> </style>

View File

@ -2,8 +2,8 @@
"name" : "养老App", "name" : "养老App",
"appid" : "__UNI__FB2D473", "appid" : "__UNI__FB2D473",
"description" : "养老App", "description" : "养老App",
"versionName" : "1.1.8", "versionName" : "1.2.0",
"versionCode" : 118, "versionCode" : 120,
"transformPx" : false, "transformPx" : false,
/* 5+App */ /* 5+App */
"app-plus" : { "app-plus" : {

BIN
static/index/addphoto.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
static/index/caigoubgc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
static/index/leftjiao.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1008 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

File diff suppressed because one or more lines are too long

View File

@ -7,8 +7,8 @@
"id": "__UNI__FB2D473", "id": "__UNI__FB2D473",
"name": "养老App", "name": "养老App",
"version": { "version": {
"name": "1.1.8", "name": "1.2.0",
"code": 118 "code": 120
}, },
"description": "养老App", "description": "养老App",
"developer": { "developer": {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1008 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

File diff suppressed because it is too large Load Diff

View File

@ -7,8 +7,8 @@
"id": "__UNI__FB2D473", "id": "__UNI__FB2D473",
"name": "养老App", "name": "养老App",
"version": { "version": {
"name": "1.1.8", "name": "1.2.0",
"code": 118 "code": 120
}, },
"description": "养老App", "description": "养老App",
"developer": { "developer": {

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1008 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB