flx:修复bug
This commit is contained in:
parent
619588e27f
commit
17f4d21cba
@ -65,6 +65,11 @@ export const getQualityStatisticsNumDataApi = (params: {}) => {
|
||||
export const getProjectEnterpriseApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/projectEnterprise/list`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
// 获取检查人
|
||||
export const getSystemUserBySnApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/systemUser/getSystemUserBySn`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
// 获取整改人
|
||||
export const getSystemUserApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/systemUser/getProjectChilderSystemUserList`, params, { headers: { noLoading: true } });
|
||||
|
||||
@ -217,6 +217,7 @@ onMounted(async () => {
|
||||
.cbContent {
|
||||
width: 100%;
|
||||
height: calc(100% - 40px);
|
||||
overflow: hidden;
|
||||
|
||||
// background: #fff;
|
||||
.item {
|
||||
@ -304,6 +305,7 @@ onMounted(async () => {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 100%;
|
||||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -314,7 +316,7 @@ onMounted(async () => {
|
||||
|
||||
.timeInfo {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
justify-content: flex-start;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -39,8 +39,9 @@
|
||||
<span>分</span>
|
||||
</div>
|
||||
<div class="count-div-item">
|
||||
<span>相较上月{{ statScore.radio > 0 ?'上升':'下降' }} {{statScore.radio}}%</span>
|
||||
<span :style="statScore.radio > 0 ? 'color:#0db027' : 'color:#f77c7d'">{{ statScore.radio > 0 ? '↑' : '↓' }} </span>
|
||||
<span>相较上月{{ statScore.radio > 0 ? '上升' + statScore.radio : '下降' + (statScore.radio && statScore.radio.toString().substr(1)) }} %</span>
|
||||
<span :style="statScore.radio > 0 ? 'color:#0db027' : 'color:#f77c7d'">{{ statScore.radio > 0 ? '↑'
|
||||
: '↓' }} </span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="score-div" @click="openDialogData({ index: 9, title: '月度安全综合评分' })">
|
||||
@ -52,22 +53,28 @@
|
||||
</div>
|
||||
<div class="classify-div">
|
||||
<div class="classify-div-item" @click="openDialogData({ index: 1, title: '危大工程' })">
|
||||
<span style="font-size: 12px;">危大工程 {{statsDirectorateBigScreen.dangerousEngineeringRecordNum}}</span>
|
||||
<span
|
||||
style="font-size: 12px;">危大工程 {{ statsDirectorateBigScreen.dangerousEngineeringRecordNum }}</span>
|
||||
</div>
|
||||
<div class="classify-div-item" @click="openDialogData({ index: 2, title: '安全教育' })">
|
||||
<span style="font-size: 12px;">安全教育 {{statsDirectorateBigScreen.workerInfoAuditRecordNum}}</span>
|
||||
<span
|
||||
style="font-size: 12px;">安全教育 {{ statsDirectorateBigScreen.workerInfoAuditRecordNum }}</span>
|
||||
</div>
|
||||
<div class="classify-div-item" @click="openDialogData({ index: 3, title: '影响进度的因素' })">
|
||||
<span style="font-size: 12px;">极端恶劣天气 {{statsDirectorateBigScreen.taskProgressContentNum}}</span>
|
||||
<span
|
||||
style="font-size: 12px;">极端恶劣天气 {{ statsDirectorateBigScreen.taskProgressContentNum }}</span>
|
||||
</div>
|
||||
<div class="classify-div-item" @click="openDialogData({ index: 4, title: '风险统计' })">
|
||||
<span style="font-size: 12px;">风险统计 {{statsDirectorateBigScreen.securityQualityInspectionRecordNum}}</span>
|
||||
<span
|
||||
style="font-size: 12px;">风险统计 {{ statsDirectorateBigScreen.securityQualityInspectionRecordNum }}</span>
|
||||
</div>
|
||||
<div class="classify-div-item" @click="openDialogData({ index: 5, title: '安全隐患' })">
|
||||
<span style="font-size: 12px;">安全隐患 {{statsDirectorateBigScreen.securityQualityInspectionRecordNum}}</span>
|
||||
<span
|
||||
style="font-size: 12px;">安全隐患 {{ statsDirectorateBigScreen.securityQualityInspectionRecordNum }}</span>
|
||||
</div>
|
||||
<div class="classify-div-item" @click="openDialogData({ index: 6, title: 'AI警报' })">
|
||||
<span style="font-size: 12px;">AI警报 {{statsDirectorateBigScreen.aiAnalyseHardWareAlarmRecordNum}}</span>
|
||||
<span
|
||||
style="font-size: 12px;">AI警报 {{ statsDirectorateBigScreen.aiAnalyseHardWareAlarmRecordNum }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="background-title">
|
||||
@ -167,7 +174,14 @@ const getStatsDirectorateBigScreen = async () => {
|
||||
const res = await getStatsDirectorateBigScreenApi({ projectSn: store.sn });
|
||||
statsDirectorateBigScreen.value = res.result
|
||||
};
|
||||
let statScore = ref({} as any);
|
||||
let statScore = ref({
|
||||
dangerEngScore: 0,
|
||||
hiddenDangerScore: 0,
|
||||
aiScore: 0,
|
||||
riskScore: 0,
|
||||
total:0,
|
||||
lastMonthTotal:0,
|
||||
} as any);
|
||||
//获取centerTop底部按钮显示数据
|
||||
const getStatScore = async () => {
|
||||
const res = await getStatScoreApi({ projectSn: store.sn });
|
||||
@ -259,6 +273,7 @@ onMounted(async () => {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.centerTop {
|
||||
|
||||
// background-color: darkred;
|
||||
.top-content {
|
||||
height: 100%;
|
||||
@ -266,6 +281,7 @@ onMounted(async () => {
|
||||
background-image: url("@/assets/images/commandScreen/top-bg.png");
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
.content-div {
|
||||
width: 30%;
|
||||
height: 30%;
|
||||
@ -273,6 +289,7 @@ onMounted(async () => {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.circle-box {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
@ -287,45 +304,53 @@ onMounted(async () => {
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
span {
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
>span {
|
||||
margin-top: 10px;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.aq {
|
||||
// left: 40px;
|
||||
// top: 180px;
|
||||
left: 0%;
|
||||
top: 45%;
|
||||
}
|
||||
|
||||
.wd {
|
||||
// left: 200px;
|
||||
// top: 80px;
|
||||
left: 12%;
|
||||
top: 20%;
|
||||
}
|
||||
|
||||
.jy {
|
||||
// left: 400px;
|
||||
// top: 5px;
|
||||
left: 35%;
|
||||
top: 0%;
|
||||
}
|
||||
|
||||
.fx {
|
||||
// right: 180px;
|
||||
// top: 80px;
|
||||
right: 12%;
|
||||
top: 20%;
|
||||
}
|
||||
|
||||
.zn {
|
||||
// right: 40px;
|
||||
// top: 180px;
|
||||
right: 0%;
|
||||
top: 45%;
|
||||
}
|
||||
|
||||
.count-div {
|
||||
width: 60%;
|
||||
color: white;
|
||||
@ -337,13 +362,16 @@ onMounted(async () => {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
&-item {
|
||||
font-size: 14px;
|
||||
|
||||
>span:nth-child(2) {
|
||||
color: #2983E1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.score-div {
|
||||
color: white;
|
||||
position: absolute;
|
||||
@ -356,19 +384,23 @@ onMounted(async () => {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.score-part {
|
||||
span:nth-child(1) {
|
||||
font-size: 72px;
|
||||
}
|
||||
|
||||
span:nth-child(2) {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
>span {
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
.classify-div {
|
||||
width: 100%;
|
||||
color: white;
|
||||
@ -378,6 +410,7 @@ onMounted(async () => {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
&-item {
|
||||
width: 180px;
|
||||
height: 75px;
|
||||
@ -390,11 +423,13 @@ onMounted(async () => {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 5px;
|
||||
|
||||
span {
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.background-title {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
|
||||
@ -7,22 +7,19 @@
|
||||
<div class="content">
|
||||
<div class="contentTop">
|
||||
<div id="echartsEdu" style="width: 100%; height: 100%"></div>
|
||||
<div class="notoDta" v-if="dataList2.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
<p>暂无数据</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="centerBottom">
|
||||
<div class="leftTop">
|
||||
<div class="header">
|
||||
<div class="hLeft" @click="openDialogData({ index: 8, title: '人员履职情况分析(整改人)' })">人员履职情况分析</div>
|
||||
<div class="hRight">
|
||||
<el-date-picker
|
||||
style="width: 85%"
|
||||
v-model="dateRange"
|
||||
type="daterange"
|
||||
value-format="YYYY-MM-DD"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="dateChange"
|
||||
/>
|
||||
<el-date-picker style="width: 85%" v-model="dateRange" type="daterange"
|
||||
value-format="YYYY-MM-DD" range-separator="至" start-placeholder="开始日期"
|
||||
end-placeholder="结束日期" @change="dateChange" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
@ -45,7 +42,8 @@
|
||||
<div v-for="(item, index) in tabList" :key="index" class="listStyle">
|
||||
<div>{{ index + 1 }}</div>
|
||||
<div v-if="activeIndex === '0' || activeIndex === '1'">{{ item.workerName }}</div>
|
||||
<div v-if="activeIndex === '2'" :title="item.enterpriseName">{{ item.enterpriseName }}</div>
|
||||
<div v-if="activeIndex === '2'" :title="item.enterpriseName">{{ item.enterpriseName
|
||||
}}</div>
|
||||
<div v-if="activeIndex === '0' || activeIndex === '2'">{{ item.rectifiedNum }}</div>
|
||||
<div v-if="activeIndex === '1'">{{ item.createDangerNum }}</div>
|
||||
<div>{{ item.rectifiedNumRatio }}</div>
|
||||
@ -515,6 +513,7 @@ onMounted(async () => {
|
||||
background: url("@/assets/images/commandScreen/card-left-bottom.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
height: 100%;
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@ -523,6 +522,7 @@ onMounted(async () => {
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
border-bottom: 1px solid #0059ff;
|
||||
|
||||
// height: 10%;
|
||||
.hLeft {
|
||||
width: 50%;
|
||||
@ -533,24 +533,30 @@ onMounted(async () => {
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.hRight {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
height: 90%;
|
||||
|
||||
// background-color: #fff;
|
||||
.contentTop {
|
||||
height: 40%;
|
||||
}
|
||||
|
||||
.centerBottom {
|
||||
// width: 100%;
|
||||
height: 60%;
|
||||
// background-color: #fff;
|
||||
position: relative;
|
||||
|
||||
.leftTop {
|
||||
width: 100%;
|
||||
height: 35%;
|
||||
|
||||
.header {
|
||||
// width: 100%;
|
||||
// height: 100%;
|
||||
@ -559,6 +565,7 @@ onMounted(async () => {
|
||||
justify-content: space-between;
|
||||
padding: 20px 20px;
|
||||
border-bottom: 1px solid #0059ff;
|
||||
|
||||
.hLeft {
|
||||
width: 50%;
|
||||
font-size: 20px;
|
||||
@ -568,18 +575,23 @@ onMounted(async () => {
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.hRight {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0 20px;
|
||||
|
||||
::v-deep .el-tabs__item {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
::v-deep .el-tabs__nav-wrap::after {
|
||||
background-color: rgba(255, 0, 0, 0);
|
||||
}
|
||||
|
||||
.tabList {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
@ -602,7 +614,9 @@ onMounted(async () => {
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
|
||||
.listBox {
|
||||
|
||||
// height: 10%;
|
||||
.listStyle {
|
||||
display: flex;
|
||||
@ -612,6 +626,7 @@ onMounted(async () => {
|
||||
line-height: 25px;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
|
||||
div {
|
||||
width: 100px;
|
||||
white-space: nowrap;
|
||||
@ -619,20 +634,24 @@ onMounted(async () => {
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
|
||||
.listStyle:hover {
|
||||
background: #003c84;
|
||||
}
|
||||
}
|
||||
|
||||
.notoDta {
|
||||
top: 52%;
|
||||
width: 45%;
|
||||
left: 28%;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
|
||||
img {
|
||||
width: 40%;
|
||||
margin: 5% 30%;
|
||||
}
|
||||
|
||||
p {
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
@ -641,34 +660,43 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-input__inner {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
::v-deep .el-select .el-input .el-select__caret {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
::v-deep .el-input__wrapper {
|
||||
width: 85%;
|
||||
height: 0%;
|
||||
background: #0d2956;
|
||||
}
|
||||
|
||||
::v-deep .el-range-separator {
|
||||
color: #ccc;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
::v-deep .el-range-input {
|
||||
color: #ccc;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.dialogContainer {
|
||||
padding: 0 50px;
|
||||
|
||||
// height: 600px;
|
||||
::v-deep .el-tabs__item {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
::v-deep .el-tabs__nav-wrap::after {
|
||||
background-color: rgba(255, 0, 0, 0);
|
||||
}
|
||||
|
||||
.tabList {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
@ -691,7 +719,9 @@ onMounted(async () => {
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
|
||||
.listBox {
|
||||
|
||||
// height: 10%;
|
||||
.listStyle {
|
||||
display: flex;
|
||||
@ -701,6 +731,7 @@ onMounted(async () => {
|
||||
line-height: 25px;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
|
||||
div {
|
||||
width: 100px;
|
||||
white-space: nowrap;
|
||||
@ -708,20 +739,24 @@ onMounted(async () => {
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
|
||||
.listStyle:hover {
|
||||
background: #003c84;
|
||||
}
|
||||
}
|
||||
|
||||
.notoDta {
|
||||
top: 40%;
|
||||
width: 30%;
|
||||
left: 35%;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
|
||||
img {
|
||||
width: 40%;
|
||||
margin: 5% 30%;
|
||||
}
|
||||
|
||||
p {
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
@ -729,16 +764,19 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-dialog {
|
||||
background: url("@/assets/images/commandScreen/dialog-bg.png") no-repeat;
|
||||
// background-color: #fff;
|
||||
background-size: 100% 100%;
|
||||
margin-top: 12%;
|
||||
}
|
||||
|
||||
::v-deep .el-dialog__headerbtn {
|
||||
right: 35px;
|
||||
top: 25px;
|
||||
}
|
||||
|
||||
::v-deep .el-dialog .el-dialog__header .el-dialog__title {
|
||||
margin-left: 30px;
|
||||
margin-top: 10px;
|
||||
@ -746,6 +784,7 @@ onMounted(async () => {
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
::v-deep el-dialog__header {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
</div>
|
||||
<div class="content-info">
|
||||
<span>建筑面积:</span>
|
||||
<span>{{ projectData.projectAcreage || "" }} ㎡</span>
|
||||
<span>{{ projectData.projectAcreage || "" }} {{ projectData.projectAcreage ? '㎡' : "" }}</span>
|
||||
</div>
|
||||
<div class="content-info">
|
||||
<span>开工日期:</span>
|
||||
@ -58,10 +58,10 @@ const store = GlobalStore();
|
||||
const projectData = ref({} as any);
|
||||
const projectTypeEnumList:any = ref([]); //工程类别
|
||||
const addressData = () => {
|
||||
return projectData.value.provinceName +
|
||||
return projectData.value.provinceName ? projectData.value.provinceName +
|
||||
projectData.value.cityName +
|
||||
projectData.value.areaName +
|
||||
projectData.value.projectAddress;
|
||||
projectData.value.projectAddress : '';
|
||||
}
|
||||
// 工程类别字典数据
|
||||
const projectTypeEnum = async () => {
|
||||
|
||||
@ -17,6 +17,10 @@
|
||||
</div>
|
||||
<div class="ctContent">
|
||||
<div id="echartsSafe" style="width: 100%; height: 100%"></div>
|
||||
<div class="notoDta" v-if="dataList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
<p>暂无数据</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -26,6 +30,10 @@
|
||||
</div>
|
||||
<div class="cmContent">
|
||||
<div id="echarts2" style="width: 100%; height: 100%"></div>
|
||||
<div class="notoDta" v-if="dataList2.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
<p>暂无数据</p>
|
||||
</div>
|
||||
<!-- <div id="echartsMajorDanger" style="width: 100%; height: 100%"></div> -->
|
||||
</div>
|
||||
</div>
|
||||
@ -978,6 +986,7 @@ onMounted(async () => {
|
||||
.cbContent {
|
||||
width: 100%;
|
||||
height: calc(100% - 55px);
|
||||
overflow: hidden;
|
||||
// height: 100%;
|
||||
|
||||
// background: #fff;
|
||||
@ -999,6 +1008,7 @@ onMounted(async () => {
|
||||
font-size: 16px;
|
||||
width: 65%;
|
||||
|
||||
|
||||
.itemHeadInner1 {
|
||||
border: 1px solid #e02020;
|
||||
box-shadow: 0 0 0 1px #e02020;
|
||||
@ -1035,7 +1045,7 @@ onMounted(async () => {
|
||||
box-shadow: 0 0 0 1px #5394f7;
|
||||
background: rgba(83,148,247, 0.4);
|
||||
border-radius: 3px;
|
||||
padding: 0 15px;
|
||||
padding: 0 23px;
|
||||
margin: 9px 0;
|
||||
margin-left: 2px;
|
||||
}
|
||||
@ -1047,6 +1057,7 @@ onMounted(async () => {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 100%;
|
||||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1054,11 +1065,17 @@ onMounted(async () => {
|
||||
// background-color: #fff;
|
||||
width: 35%;
|
||||
font-size: 16px;
|
||||
margin-left: 10px;
|
||||
|
||||
.timeInfo {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-right: 10px;
|
||||
width: 100%;
|
||||
// display: flex;
|
||||
// justify-content: flex-end;
|
||||
// margin-right: 10px;
|
||||
font-size: 15px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -85,7 +85,8 @@
|
||||
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
|
||||
</div>
|
||||
<div>{{item.hardwareName}}</div>
|
||||
<div>{{item.alarmType == 1?'烟感报警':item.alarmType == 2?'明火报警':item.alarmType == 3?'人员到底报警':item.alarmType == 4?'未带安全帽报警':item.alarmType == 5?'区域入侵报警':item.alarmType == 6?'越界入侵报警':'人员聚集报警'}}</div>
|
||||
<div>{{ item.alarmTypeName }}</div>
|
||||
<!-- <div>{{item.alarmType == 1?'烟感报警':item.alarmType == 2?'明火报警':item.alarmType == 3?'人员到底报警':item.alarmType == 4?'未带安全帽报警':item.alarmType == 5?'区域入侵报警':item.alarmType == 6?'越界入侵报警':'人员聚集报警'}}</div> -->
|
||||
<div>{{item.createTime}}</div>
|
||||
<div style="color: #1FADC5;" @click="openDetailDialog(item)">查看详情</div>
|
||||
</div>
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<div class="statistics-item" v-for="(item,index) in topDangerList" :key="index">
|
||||
<span class="title">{{item.weekBetweenStr}}</span>
|
||||
<span class="statistics-item-content">安全隐患数量:{{ item.dangerNum }}</span>
|
||||
<span class="statistics-item-content">未整改隐患次数:{{ item.overdueRectificationNum }}</span>
|
||||
<span class="statistics-item-content">未整改隐患次数:{{ item.rectificationNum }}</span>
|
||||
<span class="statistics-item-content">重大隐患次数:{{ item.greatFaultLevelNum }}</span>
|
||||
<span class="statistics-item-content">未销项隐患次数:{{ item.notCloseNum }}</span>
|
||||
<span class="statistics-item-content">一般隐患次数:{{ item.generalRiskNum }}</span>
|
||||
@ -74,7 +74,7 @@
|
||||
style="width: 150px"
|
||||
@change="conditionSearch"
|
||||
>
|
||||
<el-option v-for="(item, index) in inspectList" :key="index" :label="item.realName" :value="item.userId" />
|
||||
<el-option v-for="(item, index) in inspectBySnList" :key="index" :label="item.realName" :value="item.userId" />
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
@ -155,11 +155,12 @@
|
||||
import { ref, onMounted } from "vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
||||
import { getQualityStatisticsNumDataApi, getProjectEnterpriseApi, getSystemUserApi, getInspectionRecordApi } from "@/api/modules/agjtCommandApi";
|
||||
import { getQualityStatisticsNumDataApi, getProjectEnterpriseApi, getSystemUserApi,getSystemUserBySnApi, getInspectionRecordApi } from "@/api/modules/agjtCommandApi";
|
||||
const store = GlobalStore();
|
||||
const props = defineProps(["tip"]);
|
||||
const BASEURL = import.meta.env.VITE_API_URL;
|
||||
const inspectList = ref([] as any);
|
||||
const inspectBySnList = ref([] as any);
|
||||
const enterpriseListData = ref([] as any);
|
||||
const levelListData = ref([
|
||||
{ name: "一级", value: 1 },
|
||||
@ -200,14 +201,26 @@ const textFilter = (val:any) => {
|
||||
const conditionSearch = async () => {
|
||||
getMemberCountList('search')
|
||||
}
|
||||
// 获取整改人、检查人
|
||||
// 获取检查人
|
||||
const getSystemUserBySn = async () => {
|
||||
let data = {
|
||||
sn: store.sn,
|
||||
queryType: "projectLevelAndChildren",
|
||||
};
|
||||
const res: any = await getSystemUserBySnApi(data);
|
||||
if (res.code == 200) {
|
||||
console.log("检查人",res)
|
||||
inspectBySnList.value = res.result;
|
||||
}
|
||||
};
|
||||
// 获取整改人
|
||||
const getSystemUserFn = async () => {
|
||||
let data = {
|
||||
projectSn: store.sn
|
||||
};
|
||||
const res: any = await getSystemUserApi(data);
|
||||
if (res.code == 200) {
|
||||
console.log("整改人、检查人",res)
|
||||
console.log("整改人",res)
|
||||
inspectList.value = res.result;
|
||||
}
|
||||
};
|
||||
@ -255,7 +268,8 @@ const getMemberCountList = async (tip:any) => {
|
||||
projectSn: store.sn,
|
||||
...searchForm.value,
|
||||
pageNo: tip == 'search'?1:pageNo.value,
|
||||
pageSize: 100
|
||||
pageSize: 100,
|
||||
recordType: 1,
|
||||
}
|
||||
if(props.tip == '实时'){
|
||||
requestData.presence = 1;
|
||||
@ -285,6 +299,7 @@ const getMemberCountList = async (tip:any) => {
|
||||
onMounted(async () => {
|
||||
await getCompanyList();
|
||||
await getDivisionUnitFn();
|
||||
await getSystemUserBySn();
|
||||
await getSystemUserFn();
|
||||
await getQualityStatisticsNumDataFn();
|
||||
await getMemberCountList('search');
|
||||
@ -332,8 +347,9 @@ onMounted(async () => {
|
||||
grid-gap: 20px;
|
||||
color: white;
|
||||
margin: 0 auto;
|
||||
padding: 20px 0;
|
||||
.statistics-item{
|
||||
width: 350px;
|
||||
width: 450px;
|
||||
height: 95px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
<div>{{ index + 1 }}</div>
|
||||
<div>{{ item.regionName }}</div>
|
||||
<div>{{ item.enterpriseName }}</div>
|
||||
<div>{{ item.delayEventType == 1 ? "人为因素" : item.delayEventType == 2 ? "环境因素" : "不可抵抗因素" }}</div>
|
||||
<div>{{ delayEvent(item.delayEventType) }}</div>
|
||||
<div>{{ item.delayEventReason }}</div>
|
||||
<div class="list-img">
|
||||
<el-image
|
||||
@ -89,6 +89,11 @@ const tableParams = ref({
|
||||
|
||||
const partyMemberList = ref({} as any);
|
||||
const topStatisticData = ref({} as any)
|
||||
const delayEvent = (type:string) => {
|
||||
const arrType = ["人为因素","环境因素","不可抵抗因素"];
|
||||
const arr = type.split(",");
|
||||
return arr.map((item:any) => arrType[item - 1]).join("、")
|
||||
}
|
||||
// 日期切换
|
||||
const dateChange = async () => {
|
||||
calendarVal.value = dateTime.value
|
||||
@ -111,7 +116,8 @@ const getMemberCountList = async (tip: any) => {
|
||||
auditType: 2,
|
||||
date: tableParams.value.calendarVal,
|
||||
pageNo: tip == "search" ? 1 : pageNo.value,
|
||||
pageSize: 100
|
||||
pageSize: 100,
|
||||
hasDelayEvent:1,
|
||||
};
|
||||
const res: any = await getProgressContentApi(requestData);
|
||||
console.log("获取人员信息列表", res);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user