flx:冲突

This commit is contained in:
X_Rian 2024-06-03 14:58:00 +08:00
commit 945e8622b1
10 changed files with 166 additions and 4818 deletions

View File

@ -24,7 +24,7 @@ VITE_API_URL = 'http://192.168.34.221:9111' #雄哥本地
# VITE_API_URL = 'http://182.90.224.237:15551' # VITE_API_URL = 'http://182.90.224.237:15551'
# agjt # agjt
# VITE_API_URL = 'http://42.180.188.17:9809' #生产环境 # 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://jxj.zhgdyun.com:19812'
# 苏立信 # 苏立信
# VITE_API_URL = 'http://101.43.164.214:11111' # VITE_API_URL = 'http://101.43.164.214:11111'

4819
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -97,3 +97,10 @@ export const getStatsDirectorateBigScreenApi = (params: {}) => {
export const getStatScoreApi = (params: {}) => { export const getStatScoreApi = (params: {}) => {
return http.get(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/getStatScore`, params, { headers: { noLoading: true } }); 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 } });
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -27,8 +27,8 @@ export const BASE_IMAGE_URL = import.meta.env.VITE_BASE_IMAGE_URL;
// export const COMPANY: string = "zhzrf"; //中海·臻如府 // export const COMPANY: string = "zhzrf"; //中海·臻如府
// export const COMPANY: string = "zsbf"; //中水北方 // export const COMPANY: string = "zsbf"; //中水北方
// export const COMPANY: string = "as"; //鞍山项目 // export const COMPANY: string = "as"; //鞍山项目
export const COMPANY: string = "agjt"; //鞍钢集团 // export const COMPANY: string = "agjt"; //鞍钢集团
// export const COMPANY: string = "agjtCommand"; //鞍钢集团指挥部大屏 export const COMPANY: string = "agjtCommand"; //鞍钢集团指挥部大屏
// export const COMPANY: string = "slx"; //苏立信项目 // export const COMPANY: string = "slx"; //苏立信项目
// export const COMPANY: string = "hfqc"; //合肥启程项目 // export const COMPANY: string = "hfqc"; //合肥启程项目
// export const COMPANY: string = "jsyc"; // 江苏盐城项目 // export const COMPANY: string = "jsyc"; // 江苏盐城项目

View File

@ -601,17 +601,24 @@ onMounted(async () => {
color: white !important; color: white !important;
> div { > div {
padding: 2px 0; // padding: 2px 0;
height: 13%; height: 13%;
font-size: 16px; // font-size: 16px;
width: 200px; font-size: 13px;
font-weight: normal;
line-height: 25px;
width: 140px;
text-align: center; text-align: center;
background-color: #315296; // background-color: #315296;
background: rgb(0,33,116);
background: linear-gradient(270deg, rgba(0,33,116,0.8) 0%, rgba(40,88,184,0.3) 96%);
cursor: pointer; cursor: pointer;
} }
.title-color { .title-color {
background-color: #1449b6; // background-color: #1449b6;
background: rgb(0,33,116);
background: linear-gradient(270deg, rgba(0,33,116,1) 0%, rgba(40,88,184,1) 96%);
} }
} }
.notoDta { .notoDta {

View File

@ -42,13 +42,14 @@ const openPeopleCountDialog = (index:any) => {
height: 100%; height: 100%;
display: flex; display: flex;
.left { .left {
height: 100%; height: 109.5%;
width: 26%; width: 26%;
transform: translateY(-70px);
.leftTop { .leftTop {
height: 35%; height: 24.5%;
} }
.leftBottom { .leftBottom {
height: 65%; height: 75.5%;
margin: 3% 0 3% 0; margin: 3% 0 3% 0;
} }
} }
@ -61,13 +62,14 @@ const openPeopleCountDialog = (index:any) => {
// margin-bottom: 3%; // margin-bottom: 3%;
} }
.centerBottom { .centerBottom {
height: 44.2%; height: 45.85%;
margin: 2% 0 0 0; margin: 2% 0 0 0;
} }
} }
.right { .right {
width: 26%; width: 26%;
height: 100%; height: 109.2%;
transform: translateY(-70px);
// .rightAll { // .rightAll {
// height: 32%; // height: 32%;
// } // }

View File

@ -7,10 +7,20 @@
<div class="contentTop"> <div class="contentTop">
<div class="line1"> <div class="line1">
<span>出勤人员总数:</span> <span>出勤人员总数:</span>
<div class="numberCard" v-for="(item,i) in '0234'" :key="i">{{item}}</div> <!-- <div class="numberCard" v-for="(item,i) in '0234'" :key="i">{{item}}</div> -->
<div class="numberCard" v-for="(item,i) in totalPerson" :key="i">{{item}}</div>
<span style="margin-left:15px">考勤日环比</span> <span style="margin-left:15px">考勤日环比</span>
<div class="dayRadio">0.22%</div> <div style="display:flex" v-if="totalPersonRhbRatio > 0">
<div class="iconCenter"><el-icon size="20" color="#0262c7"><Top/></el-icon></div> <div class="dayRadio">{{totalPersonRhbRatio}}%</div>
<div class="iconCenter"><el-icon size="20" color="#1E90FF"><Top/></el-icon></div>
</div>
<div style="display:flex" v-if="totalPersonRhbRatio === 0">
<div class="dayRadio">{{totalPersonRhbRatio}}%</div>
</div>
<div style="display:flex" v-if="totalPersonRhbRatio < 0">
<div class="dayRadio">{{totalPersonRhbRatio}}%</div>
<div class="iconCenter"><el-icon size="20" color="#8B0000"><Bottom/></el-icon></div>
</div>
</div> </div>
<div class="line2"> <div class="line2">
<div :class="['line2Item',activeIndex === '0' ? 'activeTab' : '']" @click="handleTab('0')">总包出勤情况分析</div> <div :class="['line2Item',activeIndex === '0' ? 'activeTab' : '']" @click="handleTab('0')">总包出勤情况分析</div>
@ -64,7 +74,7 @@
</div> </div>
</div> </div>
</div> </div>
</div> --> </div>
</div> </div>
</div> </div>
</template> </template>
@ -73,8 +83,9 @@
import { onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import * as echarts from "echarts"; import * as echarts from "echarts";
import { selectQualityStatisticsApi } from "@/api/modules/projectOverview"; import { selectQualityStatisticsApi } from "@/api/modules/projectOverview";
import { getMemberJobStatusApi, getInspectManStatusApi, getEnterpriseStatusApi } from "@/api/modules/agjtCommandApi"; import { getMemberJobStatusApi, getInspectManStatusApi, getEnterpriseStatusApi,
import { getPersonTypeAndEduStatisticsApi } from "@/api/modules/labor"; getPersonTypeAndEduStatisticsApi
} from "@/api/modules/agjtCommandApi";
import type { TabsPaneContext, ElMessageBox } from "element-plus"; import type { TabsPaneContext, ElMessageBox } from "element-plus";
import * as ElementPlusIconsVue from '@element-plus/icons-vue' import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import { GlobalStore } from "@/stores"; import { GlobalStore } from "@/stores";
@ -82,7 +93,27 @@ import { Vue3SeamlessScroll } from "vue3-seamless-scroll";
const store = GlobalStore(); const store = GlobalStore();
const activeName = ref("总包出勤情况分析"); const activeName = ref("总包出勤情况分析");
const activeIndex = ref("0" as any); 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<temp;i++){
totalPerson.value = "0" + totalPerson.value
}
}
totalPersonRhbRatio.value = res.result.personType.attendancePerson.totalPersonRhbRatio
}
};
//tab //tab
const handleTab = (val:string) => { const handleTab = (val:string) => {
activeIndex.value = val activeIndex.value = val
@ -135,7 +166,7 @@ function drawBar() {
top: "8%", top: "8%",
right: "0", right: "0",
left:"5%", left:"5%",
bottom: "12%", bottom: "10%",
}, },
series: [{ series: [{
@ -184,6 +215,7 @@ let listData = ref([
onMounted(async () => { onMounted(async () => {
drawBar() drawBar()
getPersonTypeAndEduStatistics()
}); });
</script> </script>
@ -217,7 +249,7 @@ onMounted(async () => {
height: 92.5%; height: 92.5%;
.contentTop { .contentTop {
padding: 0 10px; padding: 0 10px;
height: 40%; height: 50%;
// background-color: #fff; // background-color: #fff;
font-size: 13px; font-size: 13px;
.line1{ .line1{
@ -277,7 +309,7 @@ onMounted(async () => {
} }
.centerBottom { .centerBottom {
height: 60%; height: 50%;
position: relative; position: relative;
.cbTop { .cbTop {
@ -327,7 +359,7 @@ onMounted(async () => {
} }
.cbProcess{ .cbProcess{
padding-top: 5px; padding-top: 5px;
height: calc(100% - 55px); height: calc(100% - 65px);
overflow: hidden; overflow: hidden;
// background-color: #fff; // background-color: #fff;
.pItem{ .pItem{
@ -423,7 +455,7 @@ onMounted(async () => {
} }
.plBtnBgc2{ .plBtnBgc2{
background: rgb(155,155,0); 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{ .plBgc3{
background: rgb(0,0,139); background: rgb(0,0,139);

View File

@ -15,6 +15,51 @@
</div> </div>
<div class="content"> <div class="content">
<div class="content-info"> <div class="content-info">
<span style="font-size:15px">项目名称</span>
<span style="font-size:15px">{{ projectData.projectName || "" }}</span>
</div>
<div class="content-info">
<span style="font-size:15px">项目地址</span>
<span style="font-size:15px">{{addressData()}}</span>
</div>
<div class="content-info">
<span style="font-size:15px">项目编号</span>
<span style="font-size:15px">{{ projectData.projectNumber || "" }}</span>
</div>
<div style="font-size:15px;line-height:22px">
<div style="display:flex;color:white;margin-top:8px">
<div style="width:50%;display:flex;">
<span>项目经理</span>
<span>{{ projectData.projectManage || "" }}</span>
</div>
<div style="width:50%;display:flex;">
<span>联系电话</span>
<span>{{ projectData.projectTel || "" }}</span>
</div>
</div>
<div style="display:flex;color:white;margin-top:8px">
<div style="width:50%;display:flex;">
<span>建筑面积</span>
<span>{{ projectData.projectAcreage || "" }} {{ projectData.projectAcreage ? '㎡' : "" }}</span>
</div>
<div style="width:50%;display:flex;">
<span>开工日期</span>
<span>{{ projectData.startWorkDate || "" }}</span>
</div>
</div>
<div style="display:flex;color:white;margin-top:8px">
<div style="width:50%;display:flex;">
<span>工程类别</span>
<span>{{ projectData.projectType && projectTypeEnumList.length > 0 ? projectTypeEnumList[projectData.projectType - 1].name : "" }}</span>
<div style="margin-left:5px;line-height:20px;">
<img style="width:25px;height:25px;" src="@/assets/images/mountain-icon.png" alt="" />
</div>
</div>
</div>
</div>
<!-- <div class="content-info">
<span>项目名称</span> <span>项目名称</span>
<span>{{ projectData.projectName || "" }}</span> <span>{{ projectData.projectName || "" }}</span>
</div> </div>
@ -45,7 +90,7 @@
<div class="content-info"> <div class="content-info">
<span>工程类别</span> <span>工程类别</span>
<span>{{ projectData.projectType && projectTypeEnumList.length > 0 ? projectTypeEnumList[projectData.projectType - 1].name : "" }}</span> <span>{{ projectData.projectType && projectTypeEnumList.length > 0 ? projectTypeEnumList[projectData.projectType - 1].name : "" }}</span>
</div> </div> -->
</div> </div>
</div> </div>
</template> </template>
@ -103,7 +148,7 @@ onMounted(async () => {
display: flex; display: flex;
// align-items: center; // align-items: center;
justify-content: space-between; justify-content: space-between;
padding: 20px 20px; padding: 10px 20px;
border-bottom: 1px solid #0059ff; border-bottom: 1px solid #0059ff;
.hLeft { .hLeft {
width: 50%; width: 50%;
@ -123,7 +168,7 @@ onMounted(async () => {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
margin-top: 10px; margin-top: 10px;
margin-left: 20px; margin-left: 10px;
&-info:not(:first-child){ &-info:not(:first-child){
margin-top: 11px; margin-top: 11px;
} }

View File

@ -1428,16 +1428,22 @@ onMounted(async () => {
color: white !important; color: white !important;
> div { > div {
padding: 2px 0; // padding: 2px 0;
font-size: 16px; font-size: 13px;
line-height: 25px;
width: 170px; width: 170px;
width: 140px;
text-align: center; text-align: center;
background-color: #315296; // background-color: #315296;
background: rgb(0,33,116);
background: linear-gradient(270deg, rgba(0,33,116,0.8) 0%, rgba(40,88,184,0.3) 96%);
cursor: pointer; cursor: pointer;
} }
.title-color { .title-color {
background-color: #1449b6; // background-color: #1449b6;
background: rgb(0,33,116);
background: linear-gradient(270deg, rgba(0,33,116,1) 0%, rgba(40,88,184,1) 96%);
} }
} }
@ -1525,7 +1531,7 @@ onMounted(async () => {
} }
.ctContent { .ctContent {
height: 72%; height: 80%;
// background-color: darkred; // background-color: darkred;
} }
} }