From bb44f08f420fc6b1520c06f3698f3d4f52e4a06b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 03 三月 2026 16:08:25 +0800
Subject: [PATCH] 公司app 1.添加商机管理功能 2.app部署修改

---
 src/pages/index.vue |  496 +++++++-----------------------------------------------
 1 files changed, 67 insertions(+), 429 deletions(-)

diff --git a/src/pages/index.vue b/src/pages/index.vue
index 3ba08d3..63b3ecb 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -32,155 +32,20 @@
 		<!--			</view>-->
 		<!--		</view>-->
 		
-		<!-- 钀ラ攢绠$悊妯″潡 -->
-		<view class="common-module marketing-module">
-			<view class="module-header">
-				<view class="module-title-container">
-					<text class="module-title">钀ラ攢绠$悊</text>
+		<!-- 鍟嗘満绠$悊鍏ュ彛锛堝皬鎸夐挳锛� -->
+		<view class="opportunity-entry">
+			<view class="opportunity-item" @click="goOpportunity">
+				<view class="opportunity-icon-wrap">
+					<image
+						class="opportunity-icon"
+						src="/static/images/icon/xiaoshoutaizhang@2x.png"
+						mode="aspectFit"
+					/>
 				</view>
-			</view>
-			<view class="module-content">
-				<up-grid
-					:border="false"
-					col="4"
-				>
-					<up-grid-item
-						v-for="(item, index) in marketingItems"
-						: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>
+				<text class="opportunity-text small-title">鍟嗘満绠$悊</text>
 			</view>
 		</view>
 		
-		<!-- 閲囪喘绠$悊妯″潡 -->
-		<view class="common-module purchase-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 purchaseItems"
-						: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 collaboration-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 collaborationItems"
-						: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 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">
-				<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 equipmentItems"
-						: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>
 </template>
 
@@ -213,290 +78,6 @@
 		currentStatus.value = statusList[statusIndex]
 	}, 3000)
 }
-
-// 钀ラ攢绠$悊鍔熻兘鏁版嵁
-const marketingItems = 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/huikuanliushui@2x.png',
-		label: '鍥炴娴佹按',
-	},
-	{
-		icon: '/static/images/icon/kehuwanglai@2x.png',
-		label: '瀹㈡埛寰�鏉�',
-	}
-]);
-
-// 閲囪喘绠$悊鍔熻兘鏁版嵁
-const purchaseItems = reactive([
-	{
-		icon: '/static/images/icon/caigoutaizhang@2x.png',
-		label: '閲囪喘鍙拌处',
-	},
-	{
-		icon: '/static/images/icon/laipiaodengji@2x.png',
-		label: '鏉ョエ鐧昏',
-	},
-	{
-		icon: '/static/images/icon/laipiaotaizhang@2x.png',
-		label: '鏉ョエ鍙拌处',
-	},
-	{
-		icon: '/static/images/icon/fukuanjingji@2x.png',
-		label: '浠樻鐧昏',
-	},
-	{
-		icon: '/static/images/icon/fukuanliushui@2x.png',
-		label: '浠樻娴佹按',
-	},
-	{
-		icon: '/static/images/icon/gongyingshangwanglai@2x.png',
-		label: '渚涘簲鍟嗗線鏉�',
-	},
-]);
-
-// 鍗忓悓鍔炲叕鍔熻兘鏁版嵁
-const collaborationItems = reactive([
-	{
-		icon: '/static/images/icon/xietongshenpi@2x.png',
-		label: '鍗忓悓瀹℃壒',
-	},
-	{
-		icon: '/static/images/icon/kehubaifang@2x.png',
-		label: '瀹㈡埛鎷滆',
-	}
-]);
-
-// 鐢熶骇绠℃帶鍔熻兘鏁版嵁
-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: '/static/images/icon/shbeibaoxiu@2x.png',
-		label: '璁惧鎶ヤ慨',
-	},
-	{
-		icon: '/static/images/icon/shbeibaoyang@2x.png',
-		label: '璁惧淇濆吇',
-	},
-	{
-		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'
-	}
-]);
-
-// 澶勭悊甯哥敤鍔熻兘鐐瑰嚮
-const handleCommonItemClick = (item) => {
-	// 鏍规嵁涓嶅悓鐨勫姛鑳介」杩涜璺宠浆
-	switch (item.label) {
-		case '閿�鍞彴璐�':
-			uni.navigateTo({
-				url: '/pages/sales/salesAccount/index'
-			});
-			break;
-		case '寮�绁ㄧ櫥璁�':
-			uni.navigateTo({
-				url: '/pages/sales/invoicingRegistration/index'
-			});
-			break;
-		case '寮�绁ㄥ彴璐�':
-			uni.navigateTo({
-				url: '/pages/sales/invoiceLedger/index'
-			});
-			break;
-		case '鍥炴鐧昏':
-			uni.navigateTo({
-				url: '/pages/sales/receiptPayment/index'
-			});
-			break;
-		case '鍥炴娴佹按':
-			uni.navigateTo({
-				url: '/pages/sales/receiptPaymentHistory/index'
-			});
-			break;
-		case '瀹㈡埛寰�鏉�':
-			uni.navigateTo({
-				url: '/pages/sales/receiptPaymentLedger/index'
-			});
-			break;
-		case '閲囪喘鍙拌处':
-			uni.navigateTo({
-				url: '/pages/procurementManagement/procurementLedger/index'
-			});
-			break;
-		case '鏉ョエ鐧昏':
-			uni.navigateTo({
-				url: '/pages/procurementManagement/invoiceEntry/index'
-			});
-			break;
-		case '鏉ョエ鍙拌处':
-			uni.navigateTo({
-				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 '瀹㈡埛鎷滆':
-			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;
-		default:
-			uni.showToast({
-				title: `鐐瑰嚮浜�${item.label}`,
-				icon: 'none'
-			});
-	}
-};
 
 // 鍒涘缓瀵瑰瓙缁勪欢鐨勫紩鐢�
 const uToastRef = ref(null);
@@ -549,6 +130,13 @@
 	if (uToastRef.value) {
 		uToastRef.value.success(`鐐瑰嚮浜嗙${name + 1}涓猔); // 娉ㄦ剰锛氳繖閲屽姞1鏄洜涓洪�氬父鎴戜滑鏄粠绗�1涓紑濮嬭鏁扮殑
 	}
+};
+
+// 璺宠浆鍒板晢鏈虹鐞�
+const goOpportunity = () => {
+	uni.navigateTo({
+		url: '/pages/opportunityManagement/index'
+	});
 };
 
 onMounted(() => {
@@ -1003,6 +591,52 @@
 	/* #endif */
 }
 
+.opportunity-icon {
+	width: 2.4rem;
+	height: 2.4rem;
+}
+
+/* 鍟嗘満绠$悊灏忔寜閽牱寮� */
+.opportunity-entry {
+	margin-top: 0.5rem;
+	display: flex;
+	justify-content: flex-start;
+}
+
+.opportunity-item {
+	flex-direction: row;
+	align-items: center;
+	justify-content: flex-start;
+	background: #ffffff;
+	border-radius: 999px;
+	padding: 0.4rem 0.9rem 0.4rem 0.5rem;
+	box-shadow: 0 0.125rem 0.75rem rgba(15, 23, 42, 0.12);
+	display: inline-flex;
+}
+
+.opportunity-icon-wrap {
+	width: 2.4rem;
+	height: 2.4rem;
+	border-radius: 999px;
+	background: #e3f2ff;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	margin-right: 0.4rem;
+}
+
+.opportunity-text {
+	font-size: 0.9rem;
+	color: #1f2933;
+	font-weight: 500;
+}
+
+.small-title {
+	font-size: 0.78rem;
+	font-weight: 400;
+	color: #4b5563;
+}
+
 /* 鏆楄壊妯″紡閫傞厤 */
 @media (prefers-color-scheme: dark) {
 	.content {
@@ -1165,6 +799,10 @@
 
 .item-label { font-size: 0.8125rem; margin-top: 0.25rem; margin-bottom: 0.625rem; }
 .grid-text { font-size: 0.875rem; }
+.opportunity-icon {
+	width: 2.4rem;
+	height: 2.4rem;
+}
 
 @media (prefers-color-scheme: dark) {
 	.common-module { box-shadow: 0 0.375rem 1.5rem rgba(0,0,0,0.35); }

--
Gitblit v1.9.3