From 1cd412f1692d58d27b5bf6ee714da52ba03c8265 Mon Sep 17 00:00:00 2001 From: Vce Date: Mon, 3 Jun 2024 13:45:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- src/api/modules/agjtCommandApi.ts | 7 +++ src/assets/images/mountain-icon.png | Bin 0 -> 3527 bytes .../commandScreen/commandCenter/index.vue | 5 +- .../commandCenter/leftBottom.vue | 50 +++++++++++++---- .../commandScreen/commandCenter/leftTop.vue | 51 ++++++++++++++++-- 6 files changed, 101 insertions(+), 16 deletions(-) create mode 100644 src/assets/images/mountain-icon.png diff --git a/.env.development b/.env.development index a2acb68..c77c6ea 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ NODE_ENV = 'development' # 后端本地 # VITE_API_URL = 'http://192.168.34.221:19111' # VITE_API_URL = 'http://192.168.34.221:9111' #雄哥本地 -VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程 +# VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程 # VITE_API_URL = 'http://192.168.34.221:28889' # VITE_API_URL = 'http://121.196.214.246/api' # VITE_API_URL = 'http://jxj.zhgdyun.com:100' @@ -24,7 +24,7 @@ VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程 # VITE_API_URL = 'http://182.90.224.237:15551' # agjt # VITE_API_URL = 'http://42.180.188.17:9809' #生产环境 -# VITE_API_URL = 'http://42.180.188.17:11211' #测试环境 +VITE_API_URL = 'http://42.180.188.17:11211' #测试环境 # VITE_API_URL = 'http://jxj.zhgdyun.com:19812' # 苏立信 # VITE_API_URL = 'http://101.43.164.214:11111' diff --git a/src/api/modules/agjtCommandApi.ts b/src/api/modules/agjtCommandApi.ts index e368eee..a71b007 100644 --- a/src/api/modules/agjtCommandApi.ts +++ b/src/api/modules/agjtCommandApi.ts @@ -97,3 +97,10 @@ export const getStatsDirectorateBigScreenApi = (params: {}) => { export const getStatScoreApi = (params: {}) => { return http.get(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/getStatScore`, params, { headers: { noLoading: true } }); }; + +// 项目人员考勤 +// 出勤人员/考勤日环比 +export const getPersonTypeAndEduStatisticsApi = (params: {}) => { + return http.post(BASEURL + `/xmgl/workerInfo/selectPersonTypeAndEduStatistics`, params, { headers: { noLoading: true } }); +}; + diff --git a/src/assets/images/mountain-icon.png b/src/assets/images/mountain-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7dadabe1ccf317b21bab86ad609147e378e2b1c6 GIT binary patch literal 3527 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 { height: 100%; display: flex; .left { - height: 100%; + height: 109.5%; width: 26%; + transform: translateY(-70px); .leftTop { - height: 35%; + height: 24.5%; } .leftBottom { height: 65%; diff --git a/src/views/commandScreen/commandCenter/leftBottom.vue b/src/views/commandScreen/commandCenter/leftBottom.vue index 1986a90..ffb2483 100644 --- a/src/views/commandScreen/commandCenter/leftBottom.vue +++ b/src/views/commandScreen/commandCenter/leftBottom.vue @@ -7,10 +7,20 @@
出勤人员总数: -
{{item}}
+ +
{{item}}
考勤日环比 -
0.22%
-
+
+
{{totalPersonRhbRatio}}%
+
+
+
+
{{totalPersonRhbRatio}}%
+
+
+
{{totalPersonRhbRatio}}%
+
+
总包出勤情况分析
@@ -64,7 +74,7 @@
- --> + @@ -73,8 +83,9 @@ import { onMounted, ref } from "vue"; import * as echarts from "echarts"; import { selectQualityStatisticsApi } from "@/api/modules/projectOverview"; -import { getMemberJobStatusApi, getInspectManStatusApi, getEnterpriseStatusApi } from "@/api/modules/agjtCommandApi"; -import { getPersonTypeAndEduStatisticsApi } from "@/api/modules/labor"; +import { getMemberJobStatusApi, getInspectManStatusApi, getEnterpriseStatusApi, + getPersonTypeAndEduStatisticsApi + } from "@/api/modules/agjtCommandApi"; import type { TabsPaneContext, ElMessageBox } from "element-plus"; import * as ElementPlusIconsVue from '@element-plus/icons-vue' import { GlobalStore } from "@/stores"; @@ -82,7 +93,27 @@ import { Vue3SeamlessScroll } from "vue3-seamless-scroll"; const store = GlobalStore(); const activeName = ref("总包出勤情况分析"); const activeIndex = ref("0" as any); - +//出勤人员数据 +let totalPerson = ref(""as any) +//考勤日环比 +let totalPersonRhbRatio = ref("" as any) +//获取出勤人员数据/考勤日环比 +const getPersonTypeAndEduStatistics = async () => { + const res: any = await getPersonTypeAndEduStatisticsApi({ + projectSn: store.sn + }); + if (res.result) { + console.log("出勤人员数据/考勤日环比", res); + totalPerson.value = res.result.personType.attendancePerson.totalPerson + if(totalPerson.value.length < 4){ + let temp = 4-totalPerson.value.length + for(let i = 0;i { activeIndex.value = val @@ -184,6 +215,7 @@ let listData = ref([ onMounted(async () => { drawBar() + getPersonTypeAndEduStatistics() }); @@ -327,7 +359,7 @@ onMounted(async () => { } .cbProcess{ padding-top: 5px; - height: calc(100% - 55px); + height: calc(100% - 65px); overflow: hidden; // background-color: #fff; .pItem{ @@ -423,7 +455,7 @@ onMounted(async () => { } .plBtnBgc2{ background: rgb(155,155,0); - background: linear-gradient(90deg, rgba(50,50,50,0.5) 10%, rgba(155,0,0,1) 100%); + background: linear-gradient(90deg, rgba(50,50,50,0.5) 10%, rgba(155,155,0,1) 100%); } .plBgc3{ background: rgb(0,0,139); diff --git a/src/views/commandScreen/commandCenter/leftTop.vue b/src/views/commandScreen/commandCenter/leftTop.vue index 52964b7..12aeef4 100644 --- a/src/views/commandScreen/commandCenter/leftTop.vue +++ b/src/views/commandScreen/commandCenter/leftTop.vue @@ -15,6 +15,51 @@
+ + +
+
+
+ 项目经理: + {{ projectData.projectManage || "" }} +
+
+ 联系电话: + {{ projectData.projectTel || "" }} +
+
+
+
+ 建筑面积: + {{ projectData.projectAcreage || "" }} {{ projectData.projectAcreage ? '㎡' : "" }} +
+
+ 开工日期: + {{ projectData.startWorkDate || "" }} +
+
+
+
+ 工程类别: + {{ projectData.projectType && projectTypeEnumList.length > 0 ? projectTypeEnumList[projectData.projectType - 1].name : "" }} +
+ +
+
+
+
+ + +
@@ -103,7 +148,7 @@ onMounted(async () => { display: flex; // align-items: center; justify-content: space-between; - padding: 20px 20px; + padding: 10px 20px; border-bottom: 1px solid #0059ff; .hLeft { width: 50%; @@ -123,7 +168,7 @@ onMounted(async () => { display: flex; flex-direction: column; margin-top: 10px; - margin-left: 20px; + margin-left: 10px; &-info:not(:first-child){ margin-top: 11px; }