智能柜补货

This commit is contained in:
weiwei committed 2025-04-17 17:48:12 +08:00
1 parent 587858fc74
commit eb57fc50b0
10 files changed
+1148 -812

No files matched your search

+14 -32
View File
@@ -1,68 +1,50 @@
<template>
<crud-layout bg="/static/page/blue-bg.png">
<view class="bg-white rounded-16rpx mx-2 my-40rpx animate-both">
<view class="bg-white rounded-20rpx my-20rpx font-bold">
<z-tabs
:list="[
{ name: '浙政钉支付', value: 1 },
{ name: '支付宝支付', value: 2, disabled: true },
]"
bar-width="300"
bar-height="0"
bar-width="150"
:active-style="{
width: '300rpx',
height: '70rpx',
backgroundColor: '#0779FDdd',
color: '#ffffff',
textAlign: 'center',
lineHeight: '70rpx',
fontWeight: 'light',
fontSize: '30rpx',
borderRadius: '10rpx',
marginTop: '10rpx',
}"
:inactive-style="{
width: '300rpx',
height: '70rpx',
color: '#000000',
textAlign: 'center',
lineHeight: '70rpx',
fontWeight: 'light',
fontSize: '30rpx',
borderRadius: '10rpx',
marginTop: '10rpx',
}"
@change="payMethodTabChange"
/>
</view>
<tm-sheet v-if="!state.isUseDoor && state.isUseDoorTip" borderWidth="2" margin="40" padding="10" color="#0094FF22">
<tm-sheet v-if="!state.isUseDoor && state.isUseDoorTip" borderWidth="2" :margin="[0, 20]" padding="10" color="#0094FF22">
<view class="flex items-center justify-between pl-4">
<tm-text font-size="30 " color="#0779FD">{{ state.isUseDoorTip }}</tm-text>
<tm-button size="m" @click="goRecharge">去充值</tm-button>
<tm-button size="s" @click="goRecharge">去充值</tm-button>
</view>
</tm-sheet>
<tm-sheet>
<tm-sheet margin="0">
<tm-text font-size="30">购买须知:</tm-text>
<view class="flex items-center px-10rpx py-20rpx">
<image class="w-60rpx h-60rpx mr-3" src="@/static/page/印章.svg" />
<view class="flex items-center p-10rpx">
<image class="w-50rpx h-50rpx mr-3" src="@/static/page/印章.svg" />
<view>
<view class="second-text-26">第一步</view>
<tm-text font-size="30">购买需钱包余额大于100元</tm-text>
<tm-text font-size="28">购买需钱包余额大于100元</tm-text>
</view>
</view>
<view class="flex items-center px-10rpx py-20rpx">
<image class="w-60rpx h-60rpx mr-3" src="@/static/page/开门.svg" />
<view class="flex items-center p-10rpx">
<image class="w-50rpx h-50rpx mr-3" src="@/static/page/开门.svg" />
<view>
<view class="second-text-26">第二步</view>
<tm-text font-size="30">开门之后选取商品并关门</tm-text>
<tm-text font-size="28">开门之后选取商品并关门</tm-text>
</view>
</view>
<view class="flex items-center px-10rpx py-20rpx">
<image class="w-60rpx h-60rpx mr-3" src="@/static/page/支付.svg" />
<view class="flex items-center p-10rpx">
<image class="w-50rpx h-50rpx mr-3" src="@/static/page/支付.svg" />
<view>
<view class="second-text-26">第三步</view>
<tm-text font-size="30">关门后自动结算</tm-text>
<tm-text font-size="28">关门后自动结算</tm-text>
</view>
</view>
</tm-sheet>
+55
View File
@@ -0,0 +1,55 @@
<template>
<crud-layout bg="/static/page/blue-bg.png">
<z-paging
ref="pageRef"
height="100%"
:fixed="false"
safe-area-inset-bottom
:loading-more-enabled="true"
:show-scrollbar="false"
:auto-clean-list-when-reload="false"
:auto-scroll-to-top-when-reload="false"
>
<view class="h-30rpx" />
<tm-collapse :multiple="false">
<tm-collapse-item
v-for="(item, index) in new Array(3).fill({})"
:key="index"
left-icon="settings-line"
:name="index"
title="柜子123"
>
<tm-text class="line-10">地址:123</tm-text>
<view class="card flex justify-around items-center">
<view class="flex-col items-center p-2 rounded-1 active:bg-#E8E8E8">
<image class="w-60 h-60" src="@/static/page/开门.svg" />
<text>货柜详情</text>
</view>
<view class="flex-col items-center p-2 rounded-1 active:bg-#E8E8E8" @click="replenishment">
<image class="w-60 h-60" src="@/static/page/开门.svg" />
<text>货柜补货</text>
</view>
<view class="flex-col items-center p-2 rounded-1 active:bg-#E8E8E8" @click="openPutaway">
<image class="w-60 h-60" src="@/static/page/开门.svg" />
<text>商品上架</text>
</view>
</view>
</tm-collapse-item>
</tm-collapse>
</z-paging>
</crud-layout>
</template>
<script setup lang="ts">
import { router } from "@/sheep"
// 商品补货
const replenishment = () => {
router.jump("/pages/cabinet/replenishment", {}, 1)
}
// 商品上架
const openPutaway = () => {
router.jump("/pages/cabinet/putaway", {}, 1)
}
</script>
+129
View File
@@ -0,0 +1,129 @@
<template>
<crud-layout bg="/static/page/blue-bg.png">
<z-paging
ref="pageRef"
height="100%"
:fixed="false"
safe-area-inset-bottom
:loading-more-enabled="true"
:show-scrollbar="false"
:auto-clean-list-when-reload="false"
:auto-scroll-to-top-when-reload="false"
>
<template #top>
<view class="h-30rpx" />
<tm-tabs
item-width="50%"
gap="0"
line-full
line-height="4rpx"
round="10"
active-title-color=""
:list="['门1', '门2']"
@change="doorTabsChange"
/>
<view class="h-10rpx" />
</template>
<view class="w-full w-full">
<view v-for="(item, index) in new Array(6).fill(new Array(10)).map((item) => item.fill({}))" :key="index">
<tm-text class="text-center mt-4">第 {{ index + 1 }} 层</tm-text>
<view class="flex flex-wrap">
<view v-for="(v, i) in item" :key="i" class="w-1/4 h-200 p-1">
<view class="card w-full h-full p-2 flex items-center justify-center active:bg-#e8e8e8!" @click="doPutaway">
<image class="w-half h-half" src="@/static/page/加号.svg" />
</view>
</view>
</view>
</view>
</view>
<view class="h-30rpx" />
</z-paging>
<tm-drawer
title="选择商品"
:showClose="true"
:showFooter="true"
size="90%"
placement="bottom"
v-model:show="state.showDrawer"
zIndex="999"
>
<tm-tabs
item-width="50%"
gap="0"
line-full
line-height="4rpx"
round="10"
active-title-color=""
:list="['平台商品', '我的商品']"
@change="goodsTabsChange"
/>
<view class="h-30rpx" />
<tm-checkbox-group v-model="state.checkboxValue" direction="column">
<view
v-for="(item, index) in listview"
:key="index"
class="w-full h-100rpx flex items-center p-2 border-1 border-solid border-b-coolGray"
:class="[state.checkboxValue.includes(item.id) ? 'bg-#e8e8e8' : '']"
>
<tm-checkbox class="w-full h-full" :value="item.id">
<template v-slot:label="checked">
<tm-text>{{ 11111 }}</tm-text>
</template>
</tm-checkbox>
</view>
</tm-checkbox-group>
<view class="h-30rpx" />
<template #footer>
<view class="px-20rpx flex justify-between">
<tm-button skin="thin" block>取消</tm-button>
&nbsp;&nbsp;
<tm-button block>上架</tm-button>
</view>
</template>
</tm-drawer>
</crud-layout>
</template>
<script setup lang="ts">
import { reactive, ref } from "vue"
const state = reactive<any>({
curDoorTabIndex: 0,
curGoodsTabIndex: 0,
showDrawer: false,
checkboxValue: [],
})
const listview = ref<any>([
{ text: "科技创新引领制造业高质量发展", id: 1 },
{ text: "明确提出“建立保持制造业合理比重投入机制”。", id: 2 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 3 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 4 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 5 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 6 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 7 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 8 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 9 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 10 },
])
const doorTabsChange = (index: number) => {
state.curDoorTabIndex = index
}
const goodsTabsChange = (index: number) => {
state.curGoodsTabIndex = index
}
// 上架
const doPutaway = () => {
state.curGoodsTabIndex = 0
state.showDrawer = true
}
</script>
+87
View File
@@ -0,0 +1,87 @@
<template>
<crud-layout bg="/static/page/blue-bg.png">
<z-paging
ref="pageRef"
height="100%"
:fixed="false"
safe-area-inset-bottom
:loading-more-enabled="true"
:show-scrollbar="false"
:auto-clean-list-when-reload="false"
:auto-scroll-to-top-when-reload="false"
>
<template #top>
<view class="bg-white rounded-20rpx my-20rpx font-bold">
<z-tabs
:list="[
{ name: '门1', value: 1 },
{ name: '门2', value: 2 },
]"
bar-width="150"
:active-style="{
fontSize: '30rpx',
}"
:inactive-style="{
fontSize: '30rpx',
}"
@change="doorTabsChange"
/>
</view>
</template>
<tm-sheet v-for="(item, index) in listview" :key="index" :margin="[0, 20]">
<view class="flex">
<image class="w-120rpx h-120rpx" />
<view class="ml-2 flex-1 flex-col">
<tm-text font-size="32">更改圆角</tm-text>
<view class="flex justify-between my-1">
<tm-text font-size="26">规格:</tm-text>
<tm-text font-size="26">规格:</tm-text>
</view>
<view class="flex justify-end items-center">
<tm-text font-size="30">库存:</tm-text>
<tm-stepper width="200" v-model="item.stock" />
</view>
</view>
</view>
</tm-sheet>
</z-paging>
<template #main-bottom>
<view class="m-30rpx flex justify-between">
<tm-button block @click="openDoor" :disabled="!state.isUseDoor">一键补满</tm-button>
&nbsp;&nbsp;
<tm-button block @click="openDoor" :disabled="!state.isUseDoor">开 门</tm-button>
&nbsp;&nbsp;
<tm-button block @click="save" :disabled="!state.isUseDoor">保 存</tm-button>
</view>
</template>
</crud-layout>
</template>
<script setup lang="ts">
import { reactive, ref } from "vue"
import zTabs from "@@/components/other/z-tabs/z-tabs.vue"
const listview = ref<any>([
{ text: "科技创新引领制造业高质量发展", id: 1 },
{ text: "明确提出“建立保持制造业合理比重投入机制”。", id: 2 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 3 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 4 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 5 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 6 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 7 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 8 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 9 },
{ text: "改造提升传统产业,培育壮大新兴产业,布局建设未来产业,完善现代化产业体系", id: 10 },
])
const state = reactive({
curDoorTabIndex: 0,
})
// 柜门tab切换
const doorTabsChange = (e: number) => {
state.curDoorTabIndex = e
}
</script>
+1
View File
@@ -76,6 +76,7 @@ const state = reactive<{
// { text: "外来人员就餐", icon: "/static/icon/service_1.png", router: "/pages/apply/foreign-list" },
// { text: "跨单位就餐", icon: "/static/icon/service_1.png", router: "/pages/apply/stride-list" },
{ text: "人脸管理", icon: "/static/icon/service_5.png", router: "/pages/human-face/list" },
{ text: "智能柜列表", icon: "/static/icon/service_5.png", router: "/pages/cabinet/cabinetList" },
// { text: "意见反馈", icon: "/static/icon/service_5.png", router: "/pages/integrated/feedback/index" },
],
appInfo: "",