From c899675f6cd2303dc802ee7d04d4bf5dc903ac02 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 18 三月 2026 11:37:31 +0800
Subject: [PATCH] 进销存升级app 1.工作台图标替换

---
 src/pages/index.vue |  165 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 150 insertions(+), 15 deletions(-)

diff --git a/src/pages/index.vue b/src/pages/index.vue
index 8f7a18a..3c122d7 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -1,8 +1,16 @@
 <template>
   <view class="page">
-    <view class="safe-top" />
-
     <scroll-view class="scroll" scroll-y>
+      <!-- 椤堕儴 Banner锛氭斁鍏ユ粴鍔ㄥ尯鍩燂紝闅忛〉闈竴璧锋粴鍔紝涓嶅浐瀹氬湪椤堕儴 -->
+      <view class="hero-section">
+        <view class="bg-img">
+          <view class="hero-content">
+            <!-- 棰勭暀锛氬鍚庣画闇�瑕佸彲鍦ㄦ鏀� logo 鎴栫畝鐭彁绀� -->
+          </view>
+          <view class="hero-wave"></view>
+        </view>
+      </view>
+
       <!-- 蹇嵎鍏ュ彛 -->
       <view class="quick-section">
         <up-grid :border="false" col="4">
@@ -47,7 +55,6 @@
                 </view>
               </view>
             </view>
-            <image class="card-icon" :src="imgSales" mode="widthFix" />
           </view>
 
           <view class="overview-card purchase">
@@ -64,7 +71,6 @@
                 </view>
               </view>
             </view>
-            <image class="card-icon" :src="imgPurchase" mode="widthFix" />
           </view>
 
           <view class="overview-card stock">
@@ -81,7 +87,6 @@
                 </view>
               </view>
             </view>
-            <image class="card-icon" :src="imgStock" mode="widthFix" />
           </view>
         </view>
       </view>
@@ -199,9 +204,6 @@
 import { computed, onMounted, ref } from "vue";
 import { analysisCustomerContractAmounts, getBusiness } from "@/api/viewIndex";
 
-const imgSales = "/static/images/index/xiaoshoushuju.png";
-const imgPurchase = "/static/images/index/caigoushuju.png";
-const imgStock = "/static/images/index/kucunshuju.png";
 const imgNum1 = "/static/images/index/num1.png";
 const imgNum2 = "/static/images/index/num2.png";
 const imgNum3 = "/static/images/index/num3.png";
@@ -211,7 +213,7 @@
     label: "鐢熶骇鎶ュ伐",
     icon: "/static/images/icon/shengchanbaogong@2x.png",
     bgColor: "linear-gradient(135deg,#3b82f6,#2563eb)",
-    route: "/pages/productionManagement/productionReport/index",
+    action: "scan",
   },
   {
     label: "璁惧宸℃",
@@ -248,6 +250,28 @@
 }
 
 function handleQuickTool(item) {
+  if (item?.action === "scan") {
+    // 鐢熶骇鎶ュ伐 - 璋冪敤鎵爜
+    uni.scanCode({
+      success: (res) => {
+        console.log("鎵爜缁撴灉:", res);
+        // 瑙f瀽鎵爜缁撴灉骞惰烦杞埌鐢熶骇鎶ュ伐椤甸潰
+        try {
+          const scanResult = JSON.parse(res.result);
+          uni.navigateTo({
+            url: `/pages/productionManagement/productionReport/index?orderRow=${encodeURIComponent(JSON.stringify(scanResult))}`
+          });
+        } catch (e) {
+          console.error("鎵爜缁撴灉瑙f瀽澶辫触:", e);
+          uni.showToast({ title: "鏃犳晥鐨勪簩缁寸爜", icon: "none" });
+        }
+      },
+      fail: (err) => {
+        console.error("鎵爜澶辫触:", err);
+      }
+    });
+    return;
+  }
   if (!item?.route) return;
   uni.navigateTo({ url: item.route });
 }
@@ -451,8 +475,116 @@
 
 <style scoped lang="scss">
 .page {
-  min-height: 100vh;
-  background: #f5f6fa;
+	background: #f6f7fb;
+	min-height: 100vh;
+	// padding: 12px;
+	/* 涓烘墍鏈夎澶囪缃熀纭�padding-top锛堝寘鍚畨鍏ㄥ尯锛� */
+	padding-top: calc(env(safe-area-inset-top) + 30px);
+	position: relative;
+	
+	/* 涓哄畨鍗撹澶囪缃洿澶х殑椤堕儴鍐呰竟璺� */
+	/* #ifdef APP-PLUS && !MP && !H5 */
+	padding-top: calc(env(safe-area-inset-top) + 45px);
+	/* #endif */
+	
+	/* H5鍜屽皬绋嬪簭骞冲彴鐨勯�氱敤鏍峰紡 */
+	/* #ifdef H5 || MP */
+	padding-top: calc(env(safe-area-inset-top) + 30px);
+	/* #endif */
+	&::before {
+		content: "";
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="dots" width="24" height="24" patternUnits="userSpaceOnUse"><circle cx="12" cy="12" r="1" fill="rgba(41, 121, 255, 0.02)"/></pattern></defs><rect width="100" height="100" fill="url(%23dots)"/></svg>');
+		pointer-events: none;
+		z-index: -1;
+	}
+	
+	&::after {
+		content: "";
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background: radial-gradient(
+				circle at 20% 80%,
+				rgba(41, 121, 255, 0.02) 0%,
+				transparent 55%
+		),
+		radial-gradient(
+				circle at 80% 20%,
+				rgba(156, 39, 176, 0.015) 0%,
+				transparent 55%
+		);
+		pointer-events: none;
+		z-index: -1;
+	}
+}
+.hero-section {
+	margin: 0 12px;
+	margin-bottom: 12px;
+	animation: fadeInUp 0.6s ease-out 0.1s both;
+}
+
+.bg-img {
+	width: 100%;
+	height: 9.25rem;
+	background-image: url("../static/images/banner/backview.png");
+	background-size: cover;
+	border-radius: 14px;
+	position: relative;
+	overflow: hidden;
+	box-shadow: 0 10px 26px rgba(17, 24, 39, 0.08);
+	
+	&::before {
+		content: "";
+		position: absolute;
+		top: -50%;
+		left: -50%;
+		width: 200%;
+		height: 200%;
+		background: conic-gradient(
+				from 0deg,
+				transparent,
+				rgba(255, 255, 255, 0.1),
+				transparent,
+				rgba(255, 255, 255, 0.05),
+				transparent
+		);
+		animation: rotate 20s linear infinite;
+	}
+	
+	&::after {
+		content: "";
+		position: absolute;
+		top: 0;
+		right: 0;
+		width: 7.5rem;
+		height: 7.5rem;
+		background: radial-gradient(
+				circle,
+				rgba(255, 255, 255, 0.15) 0%,
+				transparent 70%
+		);
+		border-radius: 50%;
+		transform: translate(2.5rem, -2.5rem);
+	}
+}
+
+.hero-content {
+	position: relative;
+	z-index: 1;
+	
+	padding: 14px 14px 18px 14px;
+	margin: 0 12px;
+	height: 100%;
+}
+.hero-wave {
+	height: 2.75rem;
 }
 
 .safe-top {
@@ -460,7 +592,7 @@
 }
 
 .scroll {
-  height: calc(100vh - env(safe-area-inset-top) - 10px);
+  min-height: calc(100vh - env(safe-area-inset-top) - 10px);
 }
 
 .section {
@@ -570,13 +702,16 @@
 }
 
 .overview-card.sales {
-  background: linear-gradient(135deg, #e9fbff 0%, #d8fbff 100%);
+  background: url("/static/images/index/xiaoshoushuju.png") no-repeat center center;
+  background-size: cover;
 }
 .overview-card.purchase {
-  background: linear-gradient(135deg, #fff4e7 0%, #ffe7ce 100%);
+  background: url("/static/images/index/caigoushuju.png") no-repeat center center;
+  background-size: cover;
 }
 .overview-card.stock {
-  background: linear-gradient(135deg, #eaf0ff 0%, #dbe6ff 100%);
+  background: url("/static/images/index/kucunshuju.png") no-repeat center center;
+  background-size: cover;
 }
 
 .card-left {

--
Gitblit v1.9.3