hldy_app_mini/pages/Warehouse/warehome.vue

468 lines
8.3 KiB
Vue

<template>
<view>
<view class="home tp">
<image src="/static/index/warehouse/home/Back2.jpg" mode="aspectFill"></image>
</view>
<view class="contitem tp">
<image src="/static/index/warehouse/home/warehouse.png" mode="aspectFill"></image>
</view>
<view class="hldy tp">
<donghua width="16vw" height="8.6vw" :links="logoval.url" :playing="true" />
</view>
<view class="route tp">
<image src="/static/index/warehouse/home/carrhate.gif" mode="aspectFill" style="z-index: 4;"></image>
</view>
<view class="pulu1 tp">
<!-- <image src="/static/index/warehouse/home/pu1.png" mode="aspectFill" ></image> -->
<image src="/static/index/warehouse/home/pu3.gif" mode="aspectFill"></image>
</view>
<view class="pulu2 tp">
<!-- <image src="/static/index/warehouse/home/pu2.png" mode="aspectFill" ></image> -->
<image src="/static/index/warehouse/home/pu2.gif" mode="aspectFill"></image>
</view>
<view class="clikurlbox">
<view class="tp" :class="'itemact'+(index+1)" v-for="(item,index) in animArray" :key='index'
@click="housactive(index)">
<donghua :width="item.width" :height="item.height" :links="item.url" :playing="index == housedex" />
</view>
</view>
<view class="cardtm">
<view class="b" :class="{ 'actve':housedex == i}" v-for="(v,i) in ['采购','盘点','拣货','后勤','退货','监控室']"
@click="housactive(i)">
<text></text>{{v}}
<view class="tp">
<image src="/static/index/warehouse/home/z.png" mode=""></image>
</view>
</view>
</view>
<view class="contain-right-button" @click="goback()">
<image class="buttont-img" style="margin-top: 4rpx;" src="/static/index/purchaseorder/back.png" />
<view class="button-font">
返回
</view>
</view>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick } from 'vue';
const housedex = ref(0);
const lastTap = ref(0)
const DOUBLE_TAP_DELAY = 300;
const setout = ref(null)
const navurl = ref('')
const housactive = (index : number) => {
console.log(index)
housedex.value = index;
const now = Date.now()
if (now - lastTap.value < DOUBLE_TAP_DELAY) {
// 双击成立
clearTimeout(setout.value)
if (index == 1) {
navurl.value = 'pages/Warehouse/paymoney'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (index == 0) {
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) {
uni.navigateTo({
url: "/pages/watch/full"
})
}
if (index === 4) {
uni.navigateTo({
url: "/pages/procurement/retstock"
})
}
if (index === 5) {
uni.navigateTo({
url: "/pages/watch/full"
})
}
if (index == 7) {
navurl.value = 'pages/procurement/outbound?code=0'
uni.navigateTo({
url: '/' + navurl.value
})
}
if (index == 8) {
navurl.value = 'pages/procurement/outbound?code=1'
uni.navigateTo({
url: '/' + navurl.value
})
}
// 重置,避免多次触发
lastTap.value = 0
} else {
setout.value = setTimeout(() => {
// console.log("点击哪个了", index)
}, DOUBLE_TAP_DELAY)
// 记录本次时间,等待下次点击
lastTap.value = now
}
}
function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) {
return Array.from({ length: count }, (_, i) => {
const idx = pad
? String(i + startIndex).padStart(2, '0')
: i + startIndex
return `${base}/${prefix}${idx}.${ext}`
})
}
const animArray = ref([
{
url: genPaths(
'/static/index/warehouse/home/',
'Procurement',
5, // 张数
'png',
0, // 起始索引为 1
false // 不补零
),
width: '22.3vw',
height: '13.6vw'
},
{
url: genPaths(
'/static/index/warehouse/home',
'inventory',
4, // 张数
'png',
0, // 起始索引为 1
false // 不补零
),
width: '11vw',
height: '10vw'
},
{
url: genPaths(
'/static/index/warehouse/home',
'pick',
4, // 张数
'png',
0, // 起始索引为 1
false // 不补零
),
width: '11vw',
height: '9vw'
},
{
url: genPaths(
'/static/index/warehouse/home',
'unit1-',
5, // 张数
'png',
0, // 起始索引为 1
false // 不补零
),
width: '14.3vw',
height: '13vw'
},
{
url: genPaths(
'/static/index/warehouse/home',
'unit1-',
5, // 张数
'png',
0, // 起始索引为 1
false // 不补零
),
width: '14.3vw',
height: '13vw'
},
{
url: genPaths(
'/static/index/warehouse/home',
'unit11-',
5, // 张数
'png',
0, // 起始索引为 1
false // 不补零
),
width: '14.3vw',
height: '13vw'
},
])
const logoval = reactive({
url: genPaths(
'/static/index/warehouse/home',
'logo',
3, // 张数
'png',
1, // 起始索引为 1
false // 不补零
)
})
const goback = () => {
console.log("?/////")
uni.navigateBack()
}
</script>
<style scoped lang="less">
.clikurlbox {
position: fixed;
width: 100vw;
height: 100vw;
top: 0;
left: 0;
overflow: hidden;
z-index: 61;
.itemact1 {
width: 22.3vw;
height: 13.6vw;
bottom: 9.8vw;
left: 12.6vw;
z-index: 31;
}
.itemact2 {
width: 9vw;
height: 9vw;
top: 22.5vw;
left: 16.5vw;
z-index: 57;
}
.itemact3 {
width: 11vw;
height: 9vw;
top: 37vw;
left: 48vw;
z-index: 55;
}
.itemact4 {
width: 14.4vw;
height: 13vw;
top: 35vw;
right: 4.4vw;
z-index: 65;
}
.itemact5 {
width: 14.4vw;
height: 10vw;
bottom: 3vw;
right: 21vw;
z-index: 65;
}
.itemact6 {
width: 18.2vw;
height: 12vw;
top: 8vw;
left: 12vw;
z-index: 65;
}
view {
position: fixed;
z-index: 10;
}
}
.cardtm {
position: relative;
z-index: 66;
>view {
position: fixed;
min-width: 5vw;
height: 2.7vw;
border-radius: 1.35vw;
box-shadow: 0rpx 0rpx 0.3vw 0rpx rgba(174, 174, 188, 0.4);
z-index: 66;
display: flex;
align-items: center;
padding: 0 1vw;
white-space: nowrap;
z-index: 70;
&:nth-child(1) {
bottom: 33.5vh;
left: 20.5vw;
}
&:nth-child(2) {
top: 28vw;
left: 26.5vw;
}
&:nth-child(3) {
bottom: 21vw;
left: 55vw;
}
&:nth-child(4) {
top: 35vw;
right: 6.5vw;
}
&:nth-child(5) {
bottom: 11.5vw;
right: 23.5vw;
}
&:nth-child(6) {
top: 6vw;
left: 17vw;
}
text {
width: 1vw;
height: 1vw;
border-radius: 50%;
border: 1px solid rgba(0, 137, 254, 1);
margin: 0 0.4vw 0 0;
}
view {
width: 2.8vw;
height: 4.4vw;
position: absolute;
top: 2vw;
left: 30%;
}
}
.actve {
background: linear-gradient(-45deg, #0089FE, #97C1FF) !important;
color: #fff !important;
text {
border: 1px solid #fff;
}
}
.b {
background: #EFF2F6;
}
}
.pulu1 {
width: 28.2vw;
height: 9.8vw;
position: fixed;
top: 30vw;
right: 9.2vw;
z-index: 60;
overflow: auto;
image {
position: absolute;
top: 0;
left: 0;
}
}
.pulu2 {
width: 16.8vw;
height: 24vw;
position: fixed;
top: 30.7vw;
right: 21.1vw;
z-index: 60;
image {
position: absolute;
top: 0;
left: 0;
}
}
.route {
width: 99.5vw;
height: 51.2vw;
position: fixed;
top: 4.5vw;
left: 0.3vw;
z-index: 2;
image {
position: absolute;
top: 0;
left: 0;
}
}
.contitem {
width: 48vw;
height: 36vw;
position: fixed;
top: 5.3vw;
left: 28.2vw;
z-index: 50;
}
.hldy {
position: fixed;
left: 6.7vw;
bottom: 3.7vw;
}
.home {
width: 100vw;
height: 100vh;
overflow: hidden;
position: relative;
z-index: 0;
}
.tp {
image {
width: 100%;
height: 100%;
}
}
.contain-right-button {
position: fixed;
top: 5vh;
right: 2vw;
width: 7.3vw;
height: 3.3vw;
background: #FFFFFF;
border-radius: 1.65vw;
border: 1px solid #D9DADC;
font-weight: 400;
font-size: 1.4vw;
color: #222;
display: flex;
justify-content: center;
align-items: center;
margin: 0 0 0 0.7vw;
color: #555555;
z-index: 99;
image {
width: 1.5vw;
height: 1.3vw;
margin: 0 0.5vw 0 0;
}
}
</style>