diff --git a/src/api/modules/agjtCommandApi.ts b/src/api/modules/agjtCommandApi.ts index 9623f905..3d278f0d 100644 --- a/src/api/modules/agjtCommandApi.ts +++ b/src/api/modules/agjtCommandApi.ts @@ -78,4 +78,12 @@ export const getAlarmRecordApi = (params: {}) => { // 顶部数据接口 export const getAlarmTypeCountApi = (params: {}) => { return http.post(BASEURL + `/xmgl/aiStatistic/selectAiAnalyseHardWareAlarmTypeCount`, params, { headers: { noLoading: true } }); -}; \ No newline at end of file +}; +// centerTop底部按钮显示数据接口 +export const getStatsDirectorateBigScreenApi = (params: {}) => { + return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/statsDirectorateBigScreen`, params, { headers: { noLoading: true } }); +}; +// centerTop评分数据接口 +export const getStatScoreApi = (params: {}) => { + return http.get(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/getStatScore`, params, { headers: { noLoading: true } }); +}; diff --git a/src/views/commandScreen/commandCenter/centerBottom.vue b/src/views/commandScreen/commandCenter/centerBottom.vue index a868dc9f..573e3a3d 100644 --- a/src/views/commandScreen/commandCenter/centerBottom.vue +++ b/src/views/commandScreen/commandCenter/centerBottom.vue @@ -8,7 +8,7 @@
- +
{{ item.header }}
diff --git a/src/views/commandScreen/commandCenter/centerTop.vue b/src/views/commandScreen/commandCenter/centerTop.vue index 84d03744..e5db1d70 100644 --- a/src/views/commandScreen/commandCenter/centerTop.vue +++ b/src/views/commandScreen/commandCenter/centerTop.vue @@ -3,70 +3,71 @@
- 20分 + {{statScore.hiddenDangerScore}}分
安全隐患治理
- 20分 + {{statScore.dangerEngScore}}分
危大工程
- 20分 + + 25分
安全教育
- 20分 + {{statScore.riskScore}}分
风险管理
- 20分 + {{statScore.aiScore}}分
- 智能硬件分析 + AI警报
上月安全综合评分 - 65 + {{statScore.lastMonthTotal}}
- 相较上月上升20% + 相较上月上升{{statScore.radio}}%
- 78 + {{statScore.total}}
安全评分
- 危大工程  +20 + 危大工程  {{statsDirectorateBigScreen.dangerousEngineeringRecordNum}}
- 安全教育  +20 + 安全教育  {{statsDirectorateBigScreen.workerInfoAuditRecordNum}}
- 极端恶劣天气  +20 + 极端恶劣天气  {{statsDirectorateBigScreen.taskProgressContentNum}}
- 风险统计  +20 + 风险统计  {{statsDirectorateBigScreen.securityQualityInspectionRecordNum}}
- 安全隐患  +20 + 安全隐患  {{statsDirectorateBigScreen.securityQualityInspectionRecordNum}}
- AI警报  +20 + AI警报  {{statsDirectorateBigScreen.aiAnalyseHardWareAlarmRecordNum}}
@@ -83,6 +84,7 @@ import { GlobalStore } from "@/stores"; import { ElMessage } from "element-plus"; import { editProjectInfo, eidtProjectShowConfig, queryBySnData } from "@/api/modules/projectOverview"; +import { getStatsDirectorateBigScreenApi, getStatScoreApi } from "@/api/modules/agjtCommandApi"; import { selectLiveVideoListApi } from "@/api/modules/video"; import ckplayerComp from "./ckplayerComp.vue"; import { COMPANY } from "@/config/config"; @@ -159,6 +161,20 @@ const getVideoList = async () => { }, 2000); } }; +let statsDirectorateBigScreen = ref({} as any); +//获取centerTop底部按钮显示数据 +const getStatsDirectorateBigScreen = async () => { + const res = await getStatsDirectorateBigScreenApi({ projectSn: store.sn }); + statsDirectorateBigScreen.value = res.result +}; +let statScore = ref({} as any); +//获取centerTop底部按钮显示数据 +const getStatScore = async () => { + const res = await getStatScoreApi({ projectSn: store.sn }); + console.log("获取项目信息6666666666666666666666666666666666", res); + statScore.value = res.result +}; + function boxStyle(item: any) { if (item.isActive) { @@ -236,6 +252,8 @@ defineExpose({ onMounted(async () => { await getVideoList(); getQueryBySnData(); + getStatsDirectorateBigScreen(); + getStatScore(); }); diff --git a/src/views/commandScreen/commandCenter/leftBottom.vue b/src/views/commandScreen/commandCenter/leftBottom.vue index 0643d91d..5ec62e18 100644 --- a/src/views/commandScreen/commandCenter/leftBottom.vue +++ b/src/views/commandScreen/commandCenter/leftBottom.vue @@ -11,7 +11,7 @@
-
人员履职情况分析
+
人员履职情况分析
@@ -72,7 +73,7 @@ import { getPersonTypeAndEduStatisticsApi } from "@/api/modules/labor"; import type { TabsPaneContext, ElMessageBox } from "element-plus"; import { GlobalStore } from "@/stores"; const store = GlobalStore(); -const emits = defineEmits(["openDialog"]) +const emits = defineEmits(["openDialog"]); const activeName = ref("first"); const activeIndex = ref("0" as any); const dateRange = ref([]); @@ -96,6 +97,10 @@ let dataList2 = ref([ value: 0, show: true, name: "未教育人员", + // 设置文本颜色 + // textStyle: { + // color: '#038cf5' + // }, itemStyle: { normal: { color: "#038cf5", @@ -107,6 +112,10 @@ let dataList2 = ref([ value: 0, show: true, name: "完成人员", + // 设置文本颜色 + // textStyle: { + // color: '#01d6f4' + // } itemStyle: { normal: { color: "#01d6f4", @@ -127,85 +136,94 @@ let dataList2 = ref([ } ]); // 打开弹窗 -const openDialogData = (obj:any) => { - emits("openDialog",obj) +const openDialogData = (obj: any) => { + emits("openDialog", obj); +}; +const dateChange = () => { + if (activeIndex.value == "0") { + getMemberJobStatusFn(); + } else if (activeIndex.value == "1") { + getInspectManStatusFn(); + } else if (activeIndex.value == "2") { + getEnterpriseStatusFn(); + } } //获取人员数据 const getPersonList = async () => { - const res:any = await getPersonTypeAndEduStatisticsApi({ + const res: any = await getPersonTypeAndEduStatisticsApi({ projectSn: store.sn }); if (res.result) { - dataList2.value[1].value = res.result.personType.toaltPerson.totalPerson - dataList2.value[2].value = res.result.personType.toaltPerson.totalPerson - console.log('安全教育智能分析666',res) + dataList2.value[1].value = res.result.personType.toaltPerson.totalPerson; + dataList2.value[2].value = res.result.personType.toaltPerson.totalPerson; + console.log("安全教育智能分析666", res); } }; // 获取人员履职情况分析数据--整改人 const getMemberJobStatusFn = async () => { - let requestData:any = { + let requestData: any = { projectSn: store.sn, pageSize: 5, pageNo: 1 - } - if(dateRange.value.length > 0){ + }; + if (dateRange.value.length > 0) { requestData.inspectTime_begin = dateRange.value[0]; requestData.inspectTime_end = dateRange.value[1]; } - const res:any = await getMemberJobStatusApi(requestData); - console.log('人员履职情况res--整改人',res) - if(res.result){ + const res: any = await getMemberJobStatusApi(requestData); + console.log("人员履职情况res--整改人", res); + if (res.result) { tabList.value = res.result.records; } else { tabList.value = []; } -} +}; // 获取人员履职情况分析数据--检查人 const getInspectManStatusFn = async () => { - let requestData:any = { + let requestData: any = { projectSn: store.sn, pageSize: 5, pageNo: 1 - } - if(dateRange.value.length > 0){ + }; + if (dateRange.value.length > 0) { requestData.inspectTime_begin = dateRange.value[0]; requestData.inspectTime_end = dateRange.value[1]; } - const res:any = await getInspectManStatusApi(requestData); - console.log('人员履职情况res--检查人',res) - if(res.result){ + const res: any = await getInspectManStatusApi(requestData); + console.log("人员履职情况res--检查人", res); + if (res.result) { tabList.value = res.result.records; } else { tabList.value = []; } -} +}; // 获取人员履职情况分析数据--按分包单位分析 const getEnterpriseStatusFn = async () => { - let requestData:any = { + let requestData: any = { projectSn: store.sn, pageSize: 5, pageNo: 1 - } - if(dateRange.value.length > 0){ + }; + if (dateRange.value.length > 0) { requestData.inspectTime_begin = dateRange.value[0]; requestData.inspectTime_end = dateRange.value[1]; } - const res:any = await getEnterpriseStatusApi(requestData); - console.log('人员履职情况res--按分包单位分析',res) - if(res.result){ + const res: any = await getEnterpriseStatusApi(requestData); + console.log("人员履职情况res--按分包单位分析", res); + if (res.result) { tabList.value = res.result.records; } else { tabList.value = []; } -} +}; const handleClick = (tab: TabsPaneContext, event: Event) => { activeIndex.value = tab.index; - console.log(tab) - if(tab.index == '0'){ + console.log(tab); + if (tab.index == "0") { getMemberJobStatusFn(); - } else if(tab.index == '1'){ + } else if (tab.index == "1") { getInspectManStatusFn(); - } else if(tab.index == '2'){ + } else if (tab.index == "2") { getEnterpriseStatusFn(); } console.log("activeIndex", activeIndex.value); @@ -258,10 +276,10 @@ function drawEchart2() { textStyle: { color: "#fff", fontSize: 26, - fontWeight: "normal", + fontWeight: "normal" // align: "center", // width: "200px", - fontFamily: "sadigitalNumber" + // fontFamily: "sadigitalNumber" }, subtextStyle: { color: "#ccc", @@ -283,7 +301,7 @@ function drawEchart2() { itemHeight: 7, // 设置高度 symbolKeepAspect: false, textStyle: { - color: "#000", + // color: "#000", rich: { name: { verticalAlign: "right", @@ -291,10 +309,26 @@ function drawEchart2() { fontSize: 14, color: "#FFFFFF" }, - value: { + value1: { align: "left", fontSize: 14, - color: "#FFFFFF" + color: "#FBDC00", + fontFamily: "Source Han Sans CN, Source Han Sans CN", + fontWeight: "bold" + }, + value2: { + align: "left", + fontSize: 14, + color: "#0DAF27", + fontFamily: "Source Han Sans CN, Source Han Sans CN", + fontWeight: "bold" + }, + value3: { + align: "left", + fontSize: 14, + color: "#047EFF", + fontFamily: "Source Han Sans CN, Source Han Sans CN", + fontWeight: "bold" } } }, @@ -304,12 +338,20 @@ function drawEchart2() { } }), formatter: function (data) { + console.log(data, 666777); if (dataList2.value && dataList2.value.length) { for (var i = 0; i < dataList2.value.length; i++) { if (data === dataList2.value[i].name) { var value = dataList2.value[i].value; var percentage = value + "%"; - return "{name| " + data + "} {gap| }" + "{value|" + value + " " + "}"; + console.log(value, 888); + if (data == "未教育人员") { + return "{name| " + data + "} {gap| }" + "{value1|" + value + " " + "}"; + } else if (data == "完成人员") { + return "{name| " + data + "} {gap| }" + "{value2|" + value + " " + "}"; + } else if (data == "现场人员") { + return "{name| " + data + "} {gap| }" + "{value3|" + value + " " + "}"; + } } } } @@ -501,7 +543,7 @@ onMounted(async () => { width: 50%; font-size: 20px; font-weight: bold; - background-image: linear-gradient(to bottom left, #c8E3FF, #007AFF); + background-image: linear-gradient(to bottom left, #c8e3ff, #007aff); -webkit-background-clip: text; background-clip: text; color: transparent; @@ -536,7 +578,7 @@ onMounted(async () => { width: 50%; font-size: 20px; font-weight: bold; - background-image: linear-gradient(to bottom left, #c8E3FF, #007AFF); + background-image: linear-gradient(to bottom left, #c8e3ff, #007aff); -webkit-background-clip: text; background-clip: text; color: transparent; diff --git a/src/views/commandScreen/dialogCompnnents/ai-alarm.vue b/src/views/commandScreen/dialogCompnnents/ai-alarm.vue index 10e78b11..16d61156 100644 --- a/src/views/commandScreen/dialogCompnnents/ai-alarm.vue +++ b/src/views/commandScreen/dialogCompnnents/ai-alarm.vue @@ -78,6 +78,9 @@ :src="BASEURL + '/image/' + item.imageUrl" :preview-src-list="[BASEURL + '/image/' + item.imageUrl]" > +
@@ -130,6 +133,7 @@ import { GlobalStore } from "@/stores"; import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor"; import type { TabsPaneContext } from 'element-plus' import { getAlarmTypeOption } from "@/api/modules/aIEarlyWarn"; +import noDataImage from "@/assets/images/vehicleManagement/car.png"; import { getAlarmRecordApi, getAlarmTypeCountApi } from "@/api/modules/agjtCommandApi"; const store = GlobalStore(); const props = defineProps(["tip"]); @@ -490,6 +494,10 @@ onMounted(async () => { height: 100%; } } + .el-no-img{ + width: 30px; + height: 30px; + } } div { width: 17%; diff --git a/src/views/commandScreen/dialogCompnnents/member-count-list.vue b/src/views/commandScreen/dialogCompnnents/member-count-list.vue index 32561610..32f68458 100644 --- a/src/views/commandScreen/dialogCompnnents/member-count-list.vue +++ b/src/views/commandScreen/dialogCompnnents/member-count-list.vue @@ -20,7 +20,11 @@
{{index + 1}}
{{item.engineeringName}}
-
{{item.progressDescribe}}
+
+ + {{item.progressDescribe}} + +
+
@@ -86,7 +93,11 @@
{{index + 1}}
{{item.engineeringName}}
-
{{item.acceptanceDesc}}
+
+ + {{item.acceptanceDesc}} + +
{{item.acceptanceResult == 1?'合格':'不合格'}}
+
@@ -110,6 +124,7 @@
序号
+
危大工程名称
旁站记录
图片
记录人
@@ -118,6 +133,7 @@
{{index + 1}}
+
{{item.engineeringName}}
{{item.buildSituation}}
+
@@ -147,6 +166,7 @@ import { ref, onMounted } from "vue"; import { GlobalStore } from "@/stores"; import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor"; import type { TabsPaneContext } from 'element-plus' +import noDataImage from "@/assets/images/vehicleManagement/car.png"; import { getProgressRecordApi, getInspectionRecordApi, getEngineeringRecordApi, getSideStationApi } from "@/api/modules/agjtCommandApi"; const store = GlobalStore(); const props = defineProps(["tip"]); @@ -183,6 +203,7 @@ const handleClick = (tab: TabsPaneContext, event: Event) => { // if(activeName.value === 'first') console.log('1') // if(activeName.value === 'second') console.log('2') // if(activeName.value === 'third') console.log('3') + if(tab.index == activeIndex.value) return; activeIndex.value = tab.index partyMemberList.value = []; getMemberCountList('search') @@ -316,6 +337,10 @@ onMounted(async () => { height: 100%; } } + .el-no-img{ + width: 30px; + height: 30px; + } } div { width: 17%; @@ -371,6 +396,10 @@ onMounted(async () => { height: 100%; } } + .el-no-img{ + width: 30px; + height: 30px; + } } div { width: 17%; @@ -426,6 +455,10 @@ onMounted(async () => { height: 100%; } } + .el-no-img{ + width: 30px; + height: 30px; + } } div { width: 20%; @@ -458,7 +491,7 @@ onMounted(async () => { margin-top: 2%; div { text-align: center; - width: 20%; + width: 17%; } } .listBox { @@ -471,6 +504,10 @@ onMounted(async () => { font-size: 12px; margin-bottom: 5px; .list-img { + .el-img { + width: 50px; + height: 25px; + } .el-img { width: 30px; height: 30px; @@ -481,9 +518,13 @@ onMounted(async () => { height: 100%; } } + .el-no-img{ + width: 30px; + height: 30px; + } } div { - width: 20%; + width: 17%; white-space: nowrap; //单行 overflow: hidden; text-overflow: ellipsis; diff --git a/src/views/commandScreen/dialogCompnnents/month-safe-score.vue b/src/views/commandScreen/dialogCompnnents/month-safe-score.vue index d3e055f8..9b2cc048 100644 --- a/src/views/commandScreen/dialogCompnnents/month-safe-score.vue +++ b/src/views/commandScreen/dialogCompnnents/month-safe-score.vue @@ -2,23 +2,23 @@
- 综合得分:78 + 综合得分:{{ countData.total || 0 }}
月度安全综合评分表
- 工程名称:123测试工程 - 表格日期:2024-05-10 + 工程名称:{{projectData.projectName || ""}} + 表格日期:{{currentDate}}
-
考核分类
-
考核指标
-
指标说明
-
单模块权重
-
模块权重
-
模块得分
+
考核分类
+
考核指标
+
指标说明
+
单模块权重
+
模块权重
+
模块得分
@@ -26,45 +26,51 @@
{{ key2 }}
-
+
- {{ index3 + 1 }} + {{ index3 }}
-
{{item.name}}
-
+
{{item.name}}
+
{{item.value}}
-
- {{ key2 }} +
+ 25% + 15% + 15% + 25%
-
- {{ key2 }} +
+ {{ countData.hiddenDangerScore || 0 }} + {{ countData.dangerEngScore || 0 }} + {{ countData.riskscore || 0 }} + 25
-
+
AI报警
-
+
AI违章抓拍
-
+
告警数量月度环比对比
-
- 123 +
+ 100%
-
- 123 +
+       {{ countData.aiScore || 0 }}
-
综合得分
-
- 89 +
综合得分
+
+ {{ countData.total || 0 }}
@@ -89,33 +95,54 @@