From 5392dc649209ff372ec276aa6cbf86b16b12a375 Mon Sep 17 00:00:00 2001
From: 周宾 <2802492122@qq.com>
Date: 星期五, 26 十二月 2025 16:41:16 +0800
Subject: [PATCH] 天津双奇点-仓储物流板块开发

---
 src/pages/index.vue |  290 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 279 insertions(+), 11 deletions(-)

diff --git a/src/pages/index.vue b/src/pages/index.vue
index 05398bd..c71cd5e 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -11,8 +11,7 @@
 		<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>
@@ -32,7 +31,35 @@
 		<!--				</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">
@@ -123,6 +150,36 @@
 			</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>
+						<text class="item-label">{{item.label}}</text>
+					</up-grid-item>
+				</up-grid>
+			</view>
+		</view>
+		
 		<!-- 璁惧绠$悊妯″潡 -->
 		<view class="common-module equipment-module">
 			<view class="module-header">
@@ -152,14 +209,17 @@
 				</up-grid>
 			</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('');
@@ -184,6 +244,30 @@
 		currentStatus.value = statusList[statusIndex]
 	}, 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([
@@ -253,6 +337,35 @@
 	}
 ]);
 
+// 鐢熶骇绠℃帶鍔熻兘鏁版嵁
+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([
 	// {
@@ -268,13 +381,28 @@
 		label: '璁惧淇濆吇',
 	},
 	{
-		icon: '/static/images/icon/shebeixunjian@2x.png',
-		label: '璁惧宸℃',
+		icon: '/static/images/icon/xunjianshangchuan@2x.png',
+		label: '宸℃涓婁紶',
 	},
 	{
-		icon: 'flash',
+		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'
 	}
 ]);
 
@@ -352,6 +480,31 @@
 				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'
@@ -367,9 +520,14 @@
 				url: '/pages/equipmentManagement/upkeep/index'
 			});
 			break;
-		case '璁惧宸℃':
+		case '宸℃涓婁紶':
 			uni.navigateTo({
-				url: '/pages/equipmentManagement/inspection/index'
+				url: '/pages/inspectionUpload/index'
+			});
+			break;
+		case '鍒嗘瀽杩芥函':
+			uni.navigateTo({
+				url: '/pages/equipmentManagement/faultAnalysis/index'
 			});
 			break;
 		case '鏅鸿兘娲惧崟':
@@ -377,6 +535,39 @@
 				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}`,
@@ -429,6 +620,73 @@
 	uni.reLaunch({
 		url: '/pages/index'
 	});
+}
+
+
+//寮�濮嬫壂鐮�
+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
+		});
+	})
 }
 
 // 瀹氫箟鏂规硶
@@ -527,7 +785,7 @@
 .bg-img {
 	width: 100%;
 	height: 8.75rem;
-	background-image: url("../static/images/banner/view-background.png");
+	background-image: url("../static/images/banner/backview.png");
 	background-size: cover;
 	border-radius: 0.75rem;
 	position: relative;
@@ -561,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 {
@@ -574,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; }
@@ -583,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 {
@@ -771,6 +1031,10 @@
 
 .collaboration-module {
 	--module-color: #4caf50;
+}
+
+.production-module {
+	--module-color: #FF9800;
 }
 
 .equipment-module {
@@ -979,6 +1243,10 @@
 	--module-color: #4caf50;
 }
 
+.production-module {
+	--module-color: #FF9800;
+}
+
 .equipment-module {
 	--module-color: #9c27b0;
 }

--
Gitblit v1.9.3