From b54a94b098a5a0a3375bab0d6493bacf45dd0a58 Mon Sep 17 00:00:00 2001
From: 周宾 <2802492122@qq.com>
Date: 星期五, 26 十二月 2025 18:08:55 +0800
Subject: [PATCH] 天津双奇点-仓储物流增加产品名称搜索
---
src/pages/index.vue | 457 ++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 387 insertions(+), 70 deletions(-)
diff --git a/src/pages/index.vue b/src/pages/index.vue
index 8f1b48e..c71cd5e 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -1,9 +1,9 @@
<template>
- <view class="content">
+ <view class="content">
<view class="header-section">
<view class="currentFactory">
<up-text type="primary" :text="userStore.currentFactoryName" @click="show = true" size="18"
- class="factoryName" suffixIcon="arrow-right" :iconStyle="iconStyle"></up-text>
+ class="factoryName" suffixIcon="arrow-right" :iconStyle="iconStyle"></up-text>
</view>
<up-picker :show="show" :columns="factoryList" @confirm="changeFactory" @cancel="show = false"></up-picker>
</view>
@@ -11,28 +11,55 @@
<view class="hero-section">
<view class="bg-img">
<view class="hero-content">
- <text class="hero-title">浜у搧搴撳瓨绠$悊绯荤粺</text>
- <text class="hero-subtitle">楂樻晥銆佷究鎹风殑涓氬姟绠$悊鍏ュ彛</text>
+ <text class="hero-title">鍙屽鐐�</text>
</view>
<view class="hero-wave"></view>
</view>
</view>
- <view class="notice-section">
- <view class="notice">
- <view class="notice-content">
- <view class="notice-left">
- <text class="notice-status">閫氱煡</text>
- </view>
- <view class="notice-separator"></view>
- <view class="notice-right">
- <text class="notice-label">{{currentStatus}}</text>
- <text class="notice-text">褰撴棩閿�鍞澶囨暟:<text class="notice-number">{{number}}<text class="notice-unit">涓�</text></text></text>
- </view>
+ <!-- <view class="notice-section">-->
+ <!-- <view class="notice">-->
+ <!-- <view class="notice-content">-->
+ <!-- <view class="notice-left">-->
+ <!-- <text class="notice-status">閫氱煡</text>-->
+ <!-- </view>-->
+ <!-- <view class="notice-separator"></view>-->
+ <!-- <view class="notice-right">-->
+ <!-- <text class="notice-label">{{currentStatus}}</text>-->
+ <!-- <text class="notice-text">褰撴棩閿�鍞澶囨暟:<text class="notice-number">{{number}}<text class="notice-unit">涓�</text></text></text>-->
+ <!-- </view>-->
+ <!-- </view>-->
+ <!-- </view>-->
+ <!-- </view>-->
+ <!-- 浠撳偍鐗╂祦妯″潡 -->
+ <view class="common-module marketing-module">
+ <view class="module-header">
+ <view class="module-title-container">
+ <text class="module-title">浠撳偍鐗╂祦</text>
</view>
</view>
+ <view class="module-content">
+ <up-grid
+ :border="false"
+ col="4"
+ >
+ <up-grid-item
+ v-for="(item, index) in warehousingLogisticsItems"
+ :key="index"
+ @click="handleCommonItemClick(item)"
+ >
+ <view class="icon-container" :style="{ background: item.bgColor }">
+ <up-icon
+ :name="item.icon"
+ :size="58"
+ color="#ffffff"
+ ></up-icon>
+ </view>
+ <text class="item-label">{{item.label}}</text>
+ </up-grid-item>
+ </up-grid>
+ </view>
</view>
-
<!-- 钀ラ攢绠$悊妯″潡 -->
<view class="common-module marketing-module">
<view class="module-header">
@@ -53,7 +80,7 @@
<view class="icon-container" :style="{ background: item.bgColor }">
<up-icon
:name="item.icon"
- :size="26"
+ :size="58"
color="#ffffff"
></up-icon>
</view>
@@ -83,7 +110,7 @@
<view class="icon-container" :style="{ background: item.bgColor }">
<up-icon
:name="item.icon"
- :size="26"
+ :size="58"
color="#ffffff"
></up-icon>
</view>
@@ -113,7 +140,37 @@
<view class="icon-container" :style="{ background: item.bgColor }">
<up-icon
:name="item.icon"
- :size="26"
+ :size="58"
+ color="#ffffff"
+ ></up-icon>
+ </view>
+ <text class="item-label">{{item.label}}</text>
+ </up-grid-item>
+ </up-grid>
+ </view>
+ </view>
+
+ <!-- 鐢熶骇绠℃帶妯″潡 -->
+ <view class="common-module production-module">
+ <view class="module-header">
+ <view class="module-title-container">
+ <text class="module-title">鐢熶骇绠℃帶</text>
+ </view>
+ </view>
+ <view class="module-content">
+ <up-grid
+ :border="false"
+ col="4"
+ >
+ <up-grid-item
+ v-for="(item, index) in productionItems"
+ :key="index"
+ @click="handleCommonItemClick(item)"
+ >
+ <view class="icon-container" :style="{ background: item.bgColor }">
+ <up-icon
+ :name="item.icon"
+ :size="58"
color="#ffffff"
></up-icon>
</view>
@@ -143,7 +200,7 @@
<view class="icon-container" :style="{ background: item.bgColor }">
<up-icon
:name="item.icon"
- :size="26"
+ :size="58"
color="#ffffff"
></up-icon>
</view>
@@ -152,14 +209,17 @@
</up-grid>
</view>
</view>
- </view>
+ <GoodsDetailPopup ref="refGoodsDetailPopup"></GoodsDetailPopup>
+ </view>
</template>
<script setup>
import {ref, onMounted, nextTick, reactive} from 'vue';
import {userLoginFacotryList} from "@/api/login";
+import { stockinDetail, detailManagementByCustom } from '@/api/inventoryManagement/receiptManagement'
import modal from "@/plugins/modal";
import useUserStore from "@/store/modules/user";
+import GoodsDetailPopup from './components/GoodsDetailPopup.vue';
const userStore = useUserStore()
const factoryId = ref('');
@@ -185,104 +245,164 @@
}, 3000)
}
+//浠撳偍鐗╂祦鍔熻兘鏁版嵁
+const warehousingLogisticsItems = reactive([
+ {
+ icon: '/static/images/icon/xiaoshoutaizhang@2x.png',
+ label: '鍏ュ簱绠$悊',
+ },
+ {
+ icon: '/static/images/icon/kaipiaodengji@2x.png',
+ label: '鍑哄簱绠$悊',
+ },
+ {
+ icon: '/static/images/icon/kaipiaotaizhang@2x.png',
+ label: '鍑哄簱鍙拌处',
+ },
+ {
+ icon: '/static/images/icon/huikuandengji@2x.png',
+ label: '搴撳瓨绠$悊',
+ },
+ {
+ icon: '/static/images/icon/huikuandengji@2x.png',
+ label: '浜у搧鎵爜',
+ }
+]);
+
// 钀ラ攢绠$悊鍔熻兘鏁版嵁
const marketingItems = reactive([
{
- icon: 'account',
+ icon: '/static/images/icon/xiaoshoutaizhang@2x.png',
label: '閿�鍞彴璐�',
- bgColor: '#2979ff'
},
{
- icon: 'home',
+ icon: '/static/images/icon/kaipiaodengji@2x.png',
label: '寮�绁ㄧ櫥璁�',
- bgColor: '#1976d2'
},
{
- icon: 'file-text',
+ icon: '/static/images/icon/kaipiaotaizhang@2x.png',
label: '寮�绁ㄥ彴璐�',
- bgColor: '#42a5f5'
},
{
- icon: 'shopping-cart',
+ icon: '/static/images/icon/huikuandengji@2x.png',
label: '鍥炴鐧昏',
- bgColor: '#64b5f6'
},
{
- icon: 'chat',
+ icon: '/static/images/icon/huikuanliushui@2x.png',
label: '鍥炴娴佹按',
- bgColor: '#90caf9'
},
{
- icon: 'chat',
+ icon: '/static/images/icon/kehuwanglai@2x.png',
label: '瀹㈡埛寰�鏉�',
- bgColor: '#90caf9'
}
]);
// 閲囪喘绠$悊鍔熻兘鏁版嵁
const purchaseItems = reactive([
{
- icon: 'order',
+ icon: '/static/images/icon/caigoutaizhang@2x.png',
label: '閲囪喘鍙拌处',
- bgColor: '#bbdefb'
},
{
- icon: 'truck',
+ icon: '/static/images/icon/laipiaodengji@2x.png',
label: '鏉ョエ鐧昏',
- bgColor: '#e3f2fd'
},
{
- icon: 'box',
+ icon: '/static/images/icon/laipiaotaizhang@2x.png',
label: '鏉ョエ鍙拌处',
- bgColor: '#f3e5f5'
},
{
- icon: 'chart-line',
+ icon: '/static/images/icon/fukuanjingji@2x.png',
label: '浠樻鐧昏',
- bgColor: '#e8eaf6'
},
{
- icon: 'settings',
+ icon: '/static/images/icon/fukuanliushui@2x.png',
label: '浠樻娴佹按',
- bgColor: '#f1f8e9'
},
{
- icon: 'settings',
+ icon: '/static/images/icon/gongyingshangwanglai@2x.png',
label: '渚涘簲鍟嗗線鏉�',
- bgColor: '#f1f8e9'
},
]);
// 鍗忓悓鍔炲叕鍔熻兘鏁版嵁
const collaborationItems = reactive([
{
- icon: 'checkmark-circle',
+ icon: '/static/images/icon/xietongshenpi@2x.png',
label: '鍗忓悓瀹℃壒',
- bgColor: '#4caf50'
},
{
- icon: 'map-pin',
+ icon: '/static/images/icon/kehubaifang@2x.png',
label: '瀹㈡埛鎷滆',
- bgColor: '#ff9800'
+ }
+]);
+
+// 鐢熶骇绠℃帶鍔熻兘鏁版嵁
+const productionItems = reactive([
+ {
+ icon: '/static/images/icon/shengchandingdan@2x.png',
+ label: '鐢熶骇璁㈠崟',
+ bgColor: '#FF9800'
+ },
+ {
+ icon: '/static/images/icon/shengchanpaigong@2x.png',
+ label: '鐢熶骇娲惧伐',
+ bgColor: '#FF6B35'
+ },
+ {
+ icon: '/static/images/icon/shengchanpaichan@2x.png',
+ label: '宸ュ簭鎺掍骇',
+ bgColor: '#E91E63'
+ },
+ {
+ icon: '/static/images/icon/shengchanbaogong@2x.png',
+ label: '鐢熶骇鎶ュ伐',
+ bgColor: '#673AB7'
+ },
+ {
+ icon: '/static/images/icon/shengchanhesuan@2x.png',
+ label: '鐢熶骇鏍哥畻',
+ bgColor: '#3F51B5'
}
]);
// 璁惧绠$悊鍔熻兘鏁版嵁
const equipmentItems = reactive([
+ // {
+ // icon: '/static/images/icon/shebeitaizhang@2x.png',
+ // label: '璁惧鍙拌处',
+ // },
{
- icon: 'list',
- label: '璁惧鍙拌处',
- bgColor: '#9c27b0'
- },
- {
- icon: 'wrench',
+ icon: '/static/images/icon/shbeibaoxiu@2x.png',
label: '璁惧鎶ヤ慨',
- bgColor: '#f44336'
},
{
- icon: 'shield-check',
+ icon: '/static/images/icon/shbeibaoyang@2x.png',
label: '璁惧淇濆吇',
- bgColor: '#00bcd4'
+ },
+ {
+ icon: '/static/images/icon/xunjianshangchuan@2x.png',
+ label: '宸℃涓婁紶',
+ },
+ {
+ icon: '/static/images/icon/guzhangfenxi@2x.png',
+ label: '鍒嗘瀽杩芥函',
+ bgColor: '#ff9800'
+ },
+ {
+ icon: '/static/images/icon/zhinengpaidan@2x.png',
+ label: '鏅鸿兘娲惧崟',
+ bgColor: '#ff6b35'
+ },
+ {
+ icon: '/static/images/icon/zuoyezhidao@2x.png',
+ label: '浣滀笟鎸囧',
+ bgColor: '#4caf50'
+ },
+ {
+ icon: '/static/images/icon/jieguoyanzheng@2x.png',
+ label: '缁撴灉楠岃瘉',
+ bgColor: '#9c27b0'
}
]);
@@ -335,16 +455,119 @@
url: '/pages/procurementManagement/procurementInvoiceLedger/index'
});
break;
+ case '浠樻鐧昏':
+ uni.navigateTo({
+ url: '/pages/procurementManagement/paymentEntry/index'
+ });
+ break;
+ case '浠樻娴佹按':
+ uni.navigateTo({
+ url: '/pages/procurementManagement/receiptPaymentHistory/index'
+ });
+ break;
+ case '渚涘簲鍟嗗線鏉�':
+ uni.navigateTo({
+ url: '/pages/procurementManagement/paymentLedger/index'
+ });
+ break;
case '鍗忓悓瀹℃壒':
uni.navigateTo({
url: '/pages/cooperativeOffice/collaborativeApproval/index'
});
break;
- case '瀹㈡埛鎷滆':
+ case '瀹㈡埛鎷滆':
uni.navigateTo({
url: '/pages/cooperativeOffice/clientVisit/index'
});
break;
+ case '鐢熶骇璁㈠崟':
+ uni.navigateTo({
+ url: '/pages/productionManagement/productionOrder/index'
+ });
+ break;
+ case '鐢熶骇娲惧伐':
+ uni.navigateTo({
+ url: '/pages/productionManagement/productionDispatching/index'
+ });
+ break;
+ case '宸ュ簭鎺掍骇':
+ uni.navigateTo({
+ url: '/pages/productionManagement/processScheduling/index'
+ });
+ break;
+ case '鐢熶骇鎶ュ伐':
+ uni.navigateTo({
+ url: '/pages/productionManagement/productionReport/index'
+ });
+ break;
+ case '鐢熶骇鏍哥畻':
+ uni.navigateTo({
+ url: '/pages/productionManagement/productionAccounting/index'
+ });
+ break;
+ case '璁惧鍙拌处':
+ uni.navigateTo({
+ url: '/pages/equipmentManagement/ledger/index'
+ });
+ break;
+ case '璁惧鎶ヤ慨':
+ uni.navigateTo({
+ url: '/pages/equipmentManagement/repair/index'
+ });
+ break;
+ case '璁惧淇濆吇':
+ uni.navigateTo({
+ url: '/pages/equipmentManagement/upkeep/index'
+ });
+ break;
+ case '宸℃涓婁紶':
+ uni.navigateTo({
+ url: '/pages/inspectionUpload/index'
+ });
+ break;
+ case '鍒嗘瀽杩芥函':
+ uni.navigateTo({
+ url: '/pages/equipmentManagement/faultAnalysis/index'
+ });
+ break;
+ case '鏅鸿兘娲惧崟':
+ uni.navigateTo({
+ url: '/pages/equipmentManagement/smartDispatch/index'
+ });
+ break;
+ case '浣滀笟鎸囧':
+ uni.navigateTo({
+ url: '/pages/equipmentManagement/sop/index'
+ });
+ break;
+ case '缁撴灉楠岃瘉':
+ uni.navigateTo({
+ url: '/pages/equipmentManagement/verification/index'
+ });
+ break;
+ case '鍏ュ簱绠$悊':
+ uni.navigateTo({
+ url: '/pages/inventoryManagement/receiptManagement/index'
+ });
+ break
+ case '鍑哄簱绠$悊':
+ uni.navigateTo({
+ url: '/pages/inventoryManagement/issueManagement/index'
+ });
+ break
+ case '鍑哄簱鍙拌处':
+ uni.navigateTo({
+ url: '/pages/inventoryManagement/dispatchLog/index'
+ });
+ break
+ case '搴撳瓨绠$悊':
+ uni.navigateTo({
+ url: '/pages/inventoryManagement/stockManagement/index'
+ });
+ break
+ case '浜у搧鎵爜':
+ scanQRCode()
+ break
default:
uni.showToast({
title: `鐐瑰嚮浜�${item.label}`,
@@ -399,6 +622,73 @@
});
}
+
+//寮�濮嬫壂鐮�
+const scanQRCode = ()=>{
+ uni.scanCode({
+ onlyFromCamera:true,
+ scanType:['barCode','qrCode'],
+ success(res) {
+ searchDetail(res.result||'')
+ },
+ fail(res) {
+ uni.showToast({
+ title: res.errMsg||'鎵爜澶辫触',
+ icon: 'none',
+ duration: 1500
+ })
+ }
+ })
+}
+
+//璋堟鐩稿叧
+const refGoodsDetailPopup = ref(null)
+
+
+//鏌ョ湅璇︽儏
+const searchDetail = (barcode)=>{
+ if(!barcode||barcode.indexOf(',')==-1){
+ uni.showToast({
+ title:"璇锋壂鎻忔纭殑浜岀淮鐮�",
+ icon: 'none',
+ duration: 1500
+ })
+ return
+ }
+ let barcodeList = barcode.split(",")
+ let barcodeId = barcodeList[0]
+ let type = barcodeList[1]
+ let detailApi = null
+ if(type==1){
+ detailApi = stockinDetail
+ }else if(type==2){
+ detailApi = detailManagementByCustom
+ }
+
+ if(!detailApi){
+ uni.showToast({
+ title:"璇锋壂鎻忔纭殑浜岀淮鐮�",
+ icon: 'none',
+ duration: 1500
+ })
+ return
+ }
+ detailApi({id:barcodeId}).then((resp) => {
+ if(resp.code!=200||!resp.data)return
+ // barcodeDetail.value = resp.data
+ refGoodsDetailPopup.value.open({
+ type: type,
+ ...resp.data
+ })
+ }).catch(() => {
+ uni.showToast({
+ title: "鑾峰彇鏁版嵁澶辫触",
+ icon: 'none',
+ duration: 1500
+ });
+ })
+}
+
// 瀹氫箟鏂规硶
const click = (name) => {
if (uToastRef.value) {
@@ -420,8 +710,22 @@
background: linear-gradient(135deg, #f8f9fa 0%, #e3f2fd 100%);
min-height: 100vh;
padding: 1.25rem;
- padding-top: env(safe-area-inset-top);
+ /* 涓烘墍鏈夎澶囪缃熀纭�padding-top */
+ padding-top: 40px;
position: relative;
+
+ /* iOS璁惧浣跨敤env()鍑芥暟澶勭悊瀹夊叏鍖哄煙 */
+ padding-top: env(safe-area-inset-top);
+
+ /* 涓哄畨鍗撹澶囪缃洿澶х殑椤堕儴鍐呰竟璺� */
+ /* #ifdef APP-PLUS && !MP && !H5 */
+ padding-top: 45px;
+ /* #endif */
+
+ /* H5鍜屽皬绋嬪簭骞冲彴鐨勯�氱敤鏍峰紡 */
+ /* #ifdef H5 || MP */
+ padding-top: 30px;
+ /* #endif */
&::before {
content: '';
@@ -443,17 +747,19 @@
right: 0;
bottom: 0;
background: radial-gradient(circle at 20% 80%, rgba(41, 121, 255, 0.02) 0%, transparent 50%),
- radial-gradient(circle at 80% 20%, rgba(156, 39, 176, 0.02) 0%, transparent 50%);
+ radial-gradient(circle at 80% 20%, rgba(156, 39, 176, 0.02) 0%, transparent 50%);
pointer-events: none;
z-index: -1;
}
}
-/* 鏈〉涓嶅啀瀹氫箟 .safe-area-top锛屽凡绉昏嚦鍏ㄥ眬鏍峰紡 */
-
.header-section {
margin-bottom: 1rem;
animation: fadeInDown 0.6s ease-out;
+ /* 涓哄畨鍗撹澶囬澶栬皟鏁村ご閮ㄤ綅缃� */
+ /* #ifdef APP-PLUS && !MP && !H5 */
+ margin-top: 10px;
+ /* #endif */
}
.currentFactory {
@@ -479,7 +785,8 @@
.bg-img {
width: 100%;
height: 8.75rem;
- background: linear-gradient(135deg, #2979ff 0%, #1565c0 100%);
+ background-image: url("../static/images/banner/backview.png");
+ background-size: cover;
border-radius: 0.75rem;
position: relative;
overflow: hidden;
@@ -512,12 +819,12 @@
.hero-content {
position: relative;
z-index: 1;
- padding: 1.25rem;
+ padding: 1.25rem 1.25rem 1.6rem 1.25rem;
height: 100%;
display: flex;
flex-direction: column;
align-items: flex-start;
- justify-content: center;
+ justify-content: flex-start;
}
.hero-title {
@@ -525,6 +832,7 @@
font-size: 1.625rem;
font-weight: 700;
letter-spacing: 0.03125rem;
+ text-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.5);
}
.hero-subtitle { font-size: 0.8125rem; margin-top: 0.375rem; }
.hero-wave { height: 2.75rem; }
@@ -534,6 +842,7 @@
font-size: 0.8125rem;
margin-top: 0.375rem;
font-weight: 400;
+ text-shadow: 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.5);
}
.hero-wave {
@@ -594,11 +903,11 @@
@keyframes shine {
- 0% {
- transform: translateX(-100%) translateY(-100%) rotate(45deg);
+ 0% {
+ transform: translateX(-100%) translateY(-100%) rotate(45deg);
}
- 100% {
- transform: translateX(100%) translateY(100%) rotate(45deg);
+ 100% {
+ transform: translateX(100%) translateY(100%) rotate(45deg);
}
}
@@ -722,6 +1031,10 @@
.collaboration-module {
--module-color: #4caf50;
+}
+
+.production-module {
+ --module-color: #FF9800;
}
.equipment-module {
@@ -930,6 +1243,10 @@
--module-color: #4caf50;
}
+.production-module {
+ --module-color: #FF9800;
+}
+
.equipment-module {
--module-color: #9c27b0;
}
--
Gitblit v1.9.3