From 9afe58b2eece02fe7054aafdb71a5a9e50ba97a4 Mon Sep 17 00:00:00 2001
From: 周宾 <2802492122@qq.com>
Date: 星期一, 22 十二月 2025 13:19:21 +0800
Subject: [PATCH] 海川开心-相关字段修复

---
 src/views/index.vue |  146 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 116 insertions(+), 30 deletions(-)

diff --git a/src/views/index.vue b/src/views/index.vue
index 154c476..e6b22c5 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -13,9 +13,13 @@
 							<div class="company-meta">{{userStore.roleName}}</div>
 						</div>
 						<div style="display: flex;align-items: center;gap: 8px">
-							<el-icon color="#5053B5" size="22"><Clock /></el-icon>
-							<span>鐧婚檰鏃ユ湡锛歿{userStore.currentLoginTime}}</span>
-						</div>
+						<el-icon color="#5053B5" size="22"><Clock /></el-icon>
+						<span>鐧婚檰鏃ユ湡锛歿{userStore.currentLoginTime}}</span>
+					</div>
+					<div style="display: flex;align-items: center;gap: 8px">
+						<el-icon color="#5053B5" size="22"><Calendar /></el-icon>
+						<span>鎺掔彮鏃堕棿锛歿{scheduleTime}}</span>
+					</div>
 					</div>
 				</div>
 				<div class="data-cards">
@@ -118,11 +122,11 @@
 			<div class="main-panel">
 				<div style="display: flex;justify-content: space-between;">
 					<div class="section-title">搴旀敹搴斾粯缁熻</div>
-					<el-radio-group v-model="radio1" size="large" @change="statisticsReceivable">
-						<el-radio-button label="鎸夊懆" :value="1" />
-						<el-radio-button label="鎸夋湀" :value="2" />
-						<el-radio-button label="鎸夊搴�" :value="3" />
-					</el-radio-group>
+<!--					<el-radio-group v-model="radio1" size="large" @change="statisticsReceivable">-->
+<!--						<el-radio-button label="鎸夊懆" :value="1" />-->
+<!--						<el-radio-button label="鎸夋湀" :value="2" />-->
+<!--						<el-radio-button label="鎸夊搴�" :value="3" />-->
+<!--					</el-radio-group>-->
 				</div>
 				<Echarts ref="chart"
 								 :color="barColors2"
@@ -138,23 +142,23 @@
 		
 		<!-- 搴曢儴妯悜涓ゆ爮 -->
 		<div class="dashboard-row">
-			<div class="main-panel">
-				<div class="section-title">璐ㄩ噺缁熻</div>
-				<div class="quality-cards">
-					<div class="quality-card one">鍘熸潗鏂欏凡妫�娴嬫暟 <span>{{qualityStatisticsObject.supplierNum}}浠�</span></div>
-					<div class="quality-card two">杩囩▼妫�楠屾暟閲� <span>{{qualityStatisticsObject.processNum}}浠�</span></div>
-					<div class="quality-card three">鍑哄巶宸叉鏁伴噺 <span>{{qualityStatisticsObject.factoryNum}}浠�</span></div>
-				</div>
-				<Echarts ref="chart"
-								 :chartStyle="chartStyle"
-								 :grid="grid"
-								 :legend="barLegend"
-								 :series="barSeries1"
-								 :tooltip="tooltip"
-								 :xAxis="xAxis1"
-								 :yAxis="yAxis1"
-								 style="height: 260px"></Echarts>
-			</div>
+<!--			<div class="main-panel">-->
+<!--				<div class="section-title">璐ㄩ噺缁熻</div>-->
+<!--				<div class="quality-cards">-->
+<!--					<div class="quality-card one">鍘熸潗鏂欏凡妫�娴嬫暟 <span>{{qualityStatisticsObject.supplierNum}}浠�</span></div>-->
+<!--					<div class="quality-card two">杩囩▼妫�楠屾暟閲� <span>{{qualityStatisticsObject.processNum}}浠�</span></div>-->
+<!--					<div class="quality-card three">鍑哄巶宸叉鏁伴噺 <span>{{qualityStatisticsObject.factoryNum}}浠�</span></div>-->
+<!--				</div>-->
+<!--				<Echarts ref="chart"-->
+<!--								 :chartStyle="chartStyle"-->
+<!--								 :grid="grid"-->
+<!--								 :legend="barLegend"-->
+<!--								 :series="barSeries1"-->
+<!--								 :tooltip="tooltip"-->
+<!--								 :xAxis="xAxis1"-->
+<!--								 :yAxis="yAxis1"-->
+<!--								 style="height: 260px"></Echarts>-->
+<!--			</div>-->
 			<div class="main-panel">
 				<div class="section-title">鍥炴涓庡紑绁ㄥ垎鏋�</div>
 				<Echarts ref="chart" :chartStyle="chartStyle" :grid="grid" :legend="lineLegend" :series="lineSeries"
@@ -165,17 +169,23 @@
 </template>
 
 <script setup>
-import { ref, onMounted } from 'vue'
+import { ref, reactive, onMounted } from 'vue'
+import { ElNotification } from 'element-plus'
 import Echarts from "@/components/Echarts/echarts.vue";
 import * as echarts from 'echarts';
 import useUserStore from "@/store/modules/user.js";
+import { Clock, Calendar } from '@element-plus/icons-vue'
 import {
 	analysisCustomerContractAmounts, getAmountHalfYear,
 	getBusiness,
 	homeTodos,
 	qualityStatistics,
-	statisticsReceivablePayable
+	statisticsReceivablePayable,
+	approveAndDeviceTodos,
+	noticesCount
 } from "@/api/viewIndex.js";
+import { getCurrentUserLatestScheduling } from "@/api/personnelManagement/scheduling.js";
+import dayjs from "dayjs";
 
 const userStore = useUserStore()
 
@@ -341,6 +351,10 @@
 const todoList = ref([])
 const radio1 = ref(1)
 
+// 鎺掔彮鏃堕棿
+const scheduleTime = ref('')
+const scheduleInfo = ref({})
+
 // 鍥捐〃寮曠敤
 const barChart = ref(null)
 const lineChart = ref(null)
@@ -358,6 +372,9 @@
 	statisticsReceivable()
 	qualityStatisticsInfo()
 	getAmountHalfYearNum()
+	getCurrentUserSchedule()
+	getApproveAndDeviceTodos()
+	getOngoingAnnouncementNoticeNumber()
 })
 // 鏁版嵁缁熻
 const getBusinessData = () => {
@@ -386,7 +403,6 @@
 }
 // 搴斾粯搴旀敹缁熻
 const statisticsReceivable = (type) => {
-	console.log(type)
 	statisticsReceivablePayable({type: radio1.value}).then((res) => {
 		barSeries.value[0].data = [
 			// { value: res.data.prepayMoney, itemStyle: { color: barColors2[0] } },
@@ -410,6 +426,35 @@
 		qualityStatisticsObject.value.factoryNum = res.data.factoryNum
 	})
 }
+// 鑾峰彇褰撳墠鐢ㄦ埛鎺掔彮淇℃伅
+const getCurrentUserSchedule = async () => {
+  try {
+    const res = await getCurrentUserLatestScheduling()
+    
+    if (res.data) {
+      const currentSchedule = res.data
+      scheduleInfo.value = currentSchedule
+      
+      // 鏍煎紡鍖栨帓鐝椂闂存樉绀�
+      if (currentSchedule.startTime && currentSchedule.endTime) {
+        scheduleTime.value = `${currentSchedule.startTime} - ${currentSchedule.endTime}`
+      } else if (currentSchedule.workStartTime && currentSchedule.workEndTime) {
+        const startTime = dayjs(currentSchedule.workStartTime).format('HH:mm')
+        const endTime = dayjs(currentSchedule.workEndTime).format('HH:mm')
+        scheduleTime.value = `${startTime} - ${endTime}`
+      } else {
+        scheduleTime.value = '浠婃棩鏃犳帓鐝�'
+      }
+    } else {
+      scheduleTime.value = '浠婃棩鏃犳帓鐝�'
+      scheduleInfo.value = {}
+    }
+  } catch (error) {
+    console.error('鑾峰彇鎺掔彮淇℃伅澶辫触:', error)
+    scheduleTime.value = '鑾峰彇鎺掔彮淇℃伅澶辫触'
+  }
+}
+
 const getAmountHalfYearNum = async () => {
 	const res = await getAmountHalfYear()
 	console.log(res)
@@ -484,6 +529,44 @@
 			},
 		}
 	]
+}
+
+// 鍗忓悓寰呭鎵瑰拰鎶ヤ慨寰呭姙浜嬮」
+const getApproveAndDeviceTodos = async () => {
+	try {
+		const res = await approveAndDeviceTodos()
+		const { approveTodo, deviceRepairTodo } = res.data
+		
+		// 鏄剧ず閫氱煡
+		ElNotification({
+				title: '寰呭姙浜嬮」鎻愰啋',
+				message: `褰撳墠鏈�${approveTodo}鏉″緟瀹℃壒浜嬮」锛�${deviceRepairTodo}鏉″緟缁翠慨浜嬮」`,
+				type: 'warning',
+				duration: 5000
+			})
+	} catch (error) {
+		console.error('鑾峰彇鍗忓悓寰呭姙浜嬮」澶辫触:', error)
+	}
+}
+// 杩涜涓叕鍛婇�氱煡
+const getOngoingAnnouncementNoticeNumber = async () => {
+	try {
+		const res = await noticesCount()
+		// const { approveTodo, deviceRepairTodo } = res.data
+		const _noticesCount = res.data
+		if(!_noticesCount){
+			return
+		}
+		// 鏄剧ず閫氱煡
+		ElNotification({
+				title: '閫氱煡鍏憡閫氱煡',
+				message: `褰撳墠鏈�${_noticesCount}鏉″叕鍛婇�氱煡锛屾敞鎰忔煡鐪媊,
+				type: 'warning',
+				duration: 5000
+			})
+	} catch (error) {
+		console.error('鑾峰彇鍗忓悓寰呭姙浜嬮」澶辫触:', error)
+	}
 }
 </script>
 
@@ -744,15 +827,18 @@
 	color: #666;
 	list-style: none;
 	padding: 0;
+	height: 190px;
+	overflow-y: auto;
+	width: 460px;
 }
 .line {
 	position: relative;
-	width: 250px;
+	width: 230px;
 }
 .line::after {
 	content: '';
 	position: absolute;
-	right: 12px;
+	right: 2px;
 	top: 0;
 	bottom: 0;
 	width: 1px;

--
Gitblit v1.9.3