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 | 429 ++++++++++-------------------------------------------
1 files changed, 80 insertions(+), 349 deletions(-)
diff --git a/src/pages/index.vue b/src/pages/index.vue
index 1749b98..63b3ecb 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -12,7 +12,6 @@
<view class="bg-img">
<view class="hero-content">
<text class="hero-title"></text>
- <text class="hero-subtitle"></text>
</view>
<view class="hero-wave"></view>
</view>
@@ -33,125 +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 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>
@@ -184,236 +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 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/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);
@@ -466,6 +130,13 @@
if (uToastRef.value) {
uToastRef.value.success(`鐐瑰嚮浜嗙${name + 1}涓猔); // 娉ㄦ剰锛氳繖閲屽姞1鏄洜涓洪�氬父鎴戜滑鏄粠绗�1涓紑濮嬭鏁扮殑
}
+};
+
+// 璺宠浆鍒板晢鏈虹鐞�
+const goOpportunity = () => {
+ uni.navigateTo({
+ url: '/pages/opportunityManagement/index'
+ });
};
onMounted(() => {
@@ -557,7 +228,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;
@@ -591,12 +262,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 {
@@ -604,6 +275,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; }
@@ -613,6 +285,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 {
@@ -803,6 +476,10 @@
--module-color: #4caf50;
}
+.production-module {
+ --module-color: #FF9800;
+}
+
.equipment-module {
--module-color: #9c27b0;
}
@@ -914,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 {
@@ -1009,6 +732,10 @@
--module-color: #4caf50;
}
+.production-module {
+ --module-color: #FF9800;
+}
+
.equipment-module {
--module-color: #9c27b0;
}
@@ -1072,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