From 299b4948b7a2bef5b4053167a754631fbd8fe272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=96=87=E6=B6=9B?= <1909118034@qq.com> Date: Thu, 27 Mar 2025 23:43:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93(home)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/ticket.ts | 17 +- pages.json | 2 +- pagesA/my_order/detail.vue | 12 +- pagesA/warehousing/index.vue | 465 ++++++++++++++++++--------------- unocss/a-hua-unocss/index.scss | 63 +++++ 5 files changed, 334 insertions(+), 225 deletions(-) diff --git a/api/ticket.ts b/api/ticket.ts index 3350381..fe4ac37 100644 --- a/api/ticket.ts +++ b/api/ticket.ts @@ -12,12 +12,11 @@ export const myTicketList = (data : any = {}) => get('v1/ticket/my/list', data); export const myTicketInfo = (data : any = {}) => get('v1/ticket/my/info', data); - - - - - - - - - +// 获取码信息 +export const scanCodeGet = (data : any = {}) => get('v1/scan/code/get', data); +// 入库接口 +export const orderStorageAct = (data : any) => post('v1/order/storage/act', data); +// 获取码信息 +export const orderStorageVerify = (data : any) => post('v1/order/storage/verify', data); +// 入库&核销记录 +export const orderRecord = (data : any = {}) => get('v1/order/record', data); \ No newline at end of file diff --git a/pages.json b/pages.json index 2aebcf0..448115b 100644 --- a/pages.json +++ b/pages.json @@ -172,7 +172,7 @@ "current": 0, // 当前激活的条件,默认为 0 "list": [{ "name": "", // 条件名称 - "path": "pagesA/my_order/list", // 要打开的页面路径 + "path": "pagesA/warehousing/index", // 要打开的页面路径 "query": "" // 可选的页面参数 }] } diff --git a/pagesA/my_order/detail.vue b/pagesA/my_order/detail.vue index 60e4306..5a21e66 100644 --- a/pagesA/my_order/detail.vue +++ b/pagesA/my_order/detail.vue @@ -123,7 +123,7 @@ class="scene-image" :src="item" mode="aspectFill"> - + @@ -150,7 +150,7 @@ 2025-03-13 11:25:18 工单已接单 - + @@ -178,8 +178,8 @@ import { onLoad, onShow } from '@dcloudio/uni-app' import { useNavigation } from '@/hooks/useNavigation' import {myTicketInfo} from '@/api/ticket' - import { useToast } from '@/uni_modules/wot-design-uni' - + import { useToast } from '@/uni_modules/wot-design-uni' + const Toast = useToast() const loading = ref(false) const bntloading = ref(false) @@ -303,7 +303,7 @@ -webkit-backdrop-filter: blur(10px); z-index: 998; } - + /* 卡片通用样式 */ .ticket-card, .info-card { width: 92%; @@ -623,7 +623,7 @@ } } } - + ::v-deep .wd-button { width: auto !important; height: 80rpx !important; diff --git a/pagesA/warehousing/index.vue b/pagesA/warehousing/index.vue index 4aa829b..f6db67b 100644 --- a/pagesA/warehousing/index.vue +++ b/pagesA/warehousing/index.vue @@ -41,7 +41,7 @@ - + 连续入库 @@ -56,7 +56,8 @@ - + @@ -66,7 +67,7 @@ - + 请输入订单号 @@ -104,10 +105,9 @@ - - - 暂无入库记录 + + + @@ -120,76 +120,121 @@ custom-style="height: auto; max-height: 80vh;"> - - 商品确认 + + 商品确认 ({{orderInfo.product.length}}件) - - - - - - - - - - - - 数量: - 1 + + + + + + + + + + + + + + 数量: + {{item.num}} + + 商品规格: {{item.spec_name}} + + + + + + + + 商品名称: {{item.product_name}} + + + + + + + + + + + + 订单号 + + + {{orderInfo.order_no}} + + + + + + 下单时间 + + + {{orderInfo.create_time}} + + + + + + 操作人 + + + {{userInfo.realname}} + + + + + + 负责仓库 + + + {{orderInfo.distribute_name}} + + + + + + 来源 + + + {{orderInfo.supplier_name}} + + + + + + 订单类型 + + + {{orderInfo.type==1?'普通订单':(orderInfo.type==2?'秒杀订单':'拼团订单')}} + - 预计入库时间: 今天 - - - - - 商品名称: 示例商品 - 商品编码: SP202505126 - - - - - - 订单号: 123456789 - 来源: 京东自营 - - - - - - 入库时间: 2023-10-01 12:00 - 类型: 普通入库 - - - - - - 操作人: 张三 - 负责仓库: 北京仓 - - - - + {{ isConfirming ? '处理中...' : '确认入库' }} - 稍后处理 + @click="GetorderStorageAct"> + {{ isConfirming ? '处理中...' : '确认入库' }} + + 稍后处理 + - + @@ -425,7 +442,7 @@ transition: all 0.3s ease; position: relative; overflow: hidden; - + &.btn-scanning { transform: scale(0.95); box-shadow: 0 4rpx 25rpx rgba(56, 165, 255, 0.4); @@ -446,16 +463,16 @@ transform: scale(0.92); box-shadow: 0 4rpx 15rpx rgba(56, 165, 255, 0.2); } - + &.scanning { animation: scanning 0.8s ease-in-out; } - + .ri-qr-scan-2-line { animation: iconPulse 1.5s ease-in-out infinite alternate; display: inline-block; } - + .scan-line { position: absolute; width: 80%; @@ -465,7 +482,7 @@ left: 10%; animation: scanAnimation 2s ease-in-out infinite; opacity: 0.2; - + &.scan-active { opacity: 1; animation: scanAnimation 0.8s ease-in-out infinite; @@ -485,7 +502,7 @@ z-index: -1; animation: ripple 2s linear infinite; } - + &::before { content: ''; position: absolute; @@ -505,35 +522,42 @@ transform: scale(1); opacity: 1; } + 100% { transform: scale(1.2); opacity: 0; } } - + @keyframes pulse { - 0%, 100% { + + 0%, + 100% { transform: translateY(0); } + 50% { transform: translateY(-10rpx); } } - + @keyframes scanLight { 0% { left: -100%; } - 50%, 100% { + + 50%, + 100% { left: 100%; } } - + @keyframes iconPulse { 0% { opacity: 0.7; transform: scale(0.95); } + 100% { opacity: 1; transform: scale(1.05); @@ -545,9 +569,11 @@ top: 20%; opacity: 0.5; } + 50% { opacity: 1; } + 100% { top: 80%; opacity: 0.5; @@ -559,10 +585,12 @@ transform: scale(1); box-shadow: 0 8rpx 30rpx rgba(56, 165, 255, 0.25); } + 50% { transform: scale(0.92); box-shadow: 0 4rpx 15rpx rgba(56, 165, 255, 0.35); } + 100% { transform: scale(1); box-shadow: 0 8rpx 30rpx rgba(56, 165, 255, 0.25); @@ -629,33 +657,54 @@ } .product-confirm-popup { + .product-scroll { + /* #ifdef MP-WEIXIN */ + max-height: calc(80vh - 280rpx); + /* #endif */ + /* #ifdef APP-PLUS || H5 */ + max-height: calc(80vh - 380rpx); + /* #endif */ + } + + .product-item { + position: relative; + padding: 20rpx 0; + + .item-divider { + position: absolute; + bottom: 0; + left: 40rpx; + right: 40rpx; + height: 2rpx; + background: rgba(0, 0, 0, 0.05); + } + } + .product-header { - padding: 20rpx 30rpx; - border-bottom: 1rpx solid #eee; + padding: 30rpx; display: flex; align-items: center; - justify-content: center; + border-bottom: 2rpx solid rgba(0, 0, 0, 0.05); } .product-content { - height: 850rpx ; - overflow-y: auto; - + padding-bottom: 30rpx; + } + + .product-image { .image-container { position: relative; width: 160rpx; height: 160rpx; border-radius: 16rpx; overflow: hidden; - box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); - + .product-img { width: 100%; height: 100%; object-fit: cover; - transition: transform 0.3s ease; } - + .image-overlay { position: absolute; top: 0; @@ -667,57 +716,55 @@ align-items: center; justify-content: center; opacity: 0; - transition: opacity 0.3s ease; - } - - &:active { - .product-img { - transform: scale(1.1); - } - - .image-overlay { + transition: opacity 0.3s; + + &:active { opacity: 1; } } } - - .product-info { - .info-item { - padding: 20rpx 0; - border-bottom: 1rpx solid #eee; - transition: background-color 0.2s ease; - - &:active { - background-color: rgba(0, 112, 240, 0.05); - } + } + + .order-info { + margin-top: 20rpx; + padding-top: 20rpx; + border-top: 2rpx solid rgba(0, 0, 0, 0.05); + + .info-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 30rpx; + padding: 20rpx 0; + + .info-item { + display: flex; + flex-direction: column; + justify-content: center; + padding: 20rpx 20rpx 20rpx; + background: #f8faff; + border-radius: 16rpx; - &:last-child { - border-bottom: none; - } - .info-content { - display: flex; - flex-direction: column; + margin-left: 4rpx; + flex: 1; } } } } .action-buttons { - position: sticky; - bottom: 0; - left: 0; - right: 0; - /* #ifdef APP-PLUS || H5 */ - padding: 20rpx 30rpx calc(20rpx + constant(safe-area-inset-bottom)); - padding: 20rpx 30rpx calc(20rpx + env(safe-area-inset-bottom)); - /* #endif */ - /* #ifdef MP-WEIXIN */ - padding: 20rpx 30rpx 0; - /* #endif */ - border-top: 1rpx solid #f5f5f5; - background: white; - z-index: 9; + padding: 30rpx; + padding-bottom: calc(30rpx + constant(safe-area-inset-bottom)); + padding-bottom: calc(30rpx + env(safe-area-inset-bottom)); + background: #fff; + border-top: 2rpx solid rgba(0, 0, 0, 0.05); + + .custom-shadow1 { + box-shadow: 0 8rpx 16rpx rgba(0, 112, 240, 0.2); + } } } + ::v-deep .wd-status-tip__text{ + margin: 0 auto !important; + } \ No newline at end of file diff --git a/unocss/a-hua-unocss/index.scss b/unocss/a-hua-unocss/index.scss index b28b04f..c08688f 100644 --- a/unocss/a-hua-unocss/index.scss +++ b/unocss/a-hua-unocss/index.scss @@ -1,3 +1,66 @@ + + + + +.li-font-550{font-weight:550} +.li-h-68{height:68rpx} +.li-items-center{align-items:center} +.li-justify-between{justify-content:space-between} +.li-justify-center{justify-content:center} +.li-mt-100{margin-top:100rpx} +.li-mt-28{margin-top:28rpx} +.li-mt-32{margin-top:32rpx} +.li-mt-90{margin-top:90rpx} +.li-mx-10{margin-left:10rpx;margin-right:10rpx} +.li-pt-270{padding-top:270rpx} +.li-rd-40{border-radius:40rpx} +.li-text-000000-color{color:rgb(0,0,0)} +.li-text-2EA1EA-color{color:rgb(46,161,234)} +.li-text-38{font-size:38rpx} +.li-text-a5a5a5-color{color:rgb(165,165,165)} +.li-w-150{width:150rpx} +.li-w-420{width:420rpx} +.li-w-full-80{width:80%} +.li-w-full-85{width:85%} +.li-w-full-90{width:90%} + +.li-items-end{align-items:end} +.li-mb-20{margin-bottom:20rpx} +.li-mb-30{margin-bottom:30rpx} +.li-mb-8{margin-bottom:8rpx} +.li-ml-10{margin-left:10rpx} +.li-ml-15{margin-left:15rpx} +.li-ml-20{margin-left:20rpx} +.li-ml-6{margin-left:6rpx} +.li-mr-10{margin-right:10rpx} +.li-mr-4{margin-right:4rpx} +.li-mt-4{margin-top:4rpx} +.li-mt-40{margin-top:40rpx} +.li-mt-50{margin-top:50rpx} +.li-mt-60{margin-top:60rpx} +.li-mt-8{margin-top:8rpx} +.li-pb-10{padding-bottom:10rpx} +.li-py-40{padding-top:40rpx;padding-bottom:40rpx} +.li-rd-20{border-radius:20rpx} +.li-text-0070F0-color{color:rgb(0,112,240)} +.li-text-009aff-color{color:rgb(0,154,255)} +.li-text-100{font-size:100rpx} +.li-text-32{font-size:32rpx} +.li-text-333-color{color:rgb(51,51,51)} +.li-text-34{font-size:34rpx} +.li-text-36{font-size:36rpx} +.li-text-42{font-size:42rpx} +.li-text-44{font-size:44rpx} +.li-text-55{font-size:55rpx} +.li-text-666-color{color:rgb(102,102,102)} +.li-text-70{font-size:70rpx} +.li-text-90{font-size:90rpx} +.li-text-999-color{color:rgb(153,153,153)} +.li-text-center{text-align:center} +.li-text-ddd-color{color:rgb(221,221,221)} +.li-text-white{color:rgb(255,255,255)} +.li-w-500{width:500rpx} +.li-w-full-92{width:92%}