fix:修改指挥部大屏Bug

This commit is contained in:
Vce 2024-07-05 18:00:15 +08:00
parent 18a096c551
commit 337b754730
8 changed files with 170 additions and 76 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -80,9 +80,9 @@
</div>
</div>
<div class="classify-div">
<div class="classify-div-item" @click="openDialogData({ index: 98, title: '人员总览' })">
<!-- <div class="classify-div-item" @click="openDialogData({ index: 98, title: '人员总览' })">
<span style="font-size: 12px">人员总览</span>
</div>
</div> -->
<div class="classify-div-item" style="width: 250px" @click="openDialogData({ index: 1, title: '' })">
<span style="font-size: 12px">危险特殊作业&nbsp;{{ statsDirectorateBigScreen.dangerousEngineeringRecordNum }}</span>
</div>
@ -102,9 +102,9 @@
>安全隐患&nbsp;{{ statsDirectorateBigScreen.securityQualityInspectionRecordNum }}</span
>
</div>
<div class="classify-div-item" @click="openDialogData({ index: 99, title: '质量管理' })">
<div class="classify-div-item" @click="openDialogData({ index: 99, title: '质量隐患' })">
<span style="font-size: 12px"
>质量管理&nbsp;{{ statsDirectorateBigScreen.qualityInspectionRecordNum }}</span
>质量隐患&nbsp;{{ statsDirectorateBigScreen.qualityInspectionRecordNum }}</span
>
</div>
<div class="classify-div-item" @click="openDialogData({ index: 6, title: 'AI警报' })">

View File

@ -1,7 +1,8 @@
<template>
<div class="list-detail" v-if="showDialog && mapsDetail.length == 0">
<div :class="postData.type == 1 ? 'dialog-content' : postData.type == 2 ? 'dialog-content-show' : 'dialog-content-more'"
:style="postData.index == 98 ? {'left':'5%','width':'90%','top':'5%','height':'90%'} : {}">
:style="postData.index == 98 ? {'left':'5%','width':'90%','top':'5%','height':'90%'} :
postData.index == 9 ? {'left':'10%','top':'10%','width':'80%','height':'70%'} : {}">
<div class="dialog-title">
<!-- <div class="title-img"><img src="@/assets/images/titleIcon.png" alt="" /></div> -->
<div class="title-text" :class="{ flex: showIndex == 7 }">
@ -44,9 +45,10 @@
<div class="political-outlook" v-if="showIndex == 99">
<qualityManage ref="historyAlarmList" tip="安全教育"></qualityManage>
</div>
<div class="political-outlook" v-if="showIndex == 98">
<!-- 人员总览 -->
<!-- <div class="political-outlook" v-if="showIndex == 98">
<personOverview ref="historyAlarmList" tip="安全教育"></personOverview>
</div>
</div> -->
<div class="political-outlook" v-if="showIndex == 6">
<aiAlarm ref="historyAlarmList" tip="安全教育"></aiAlarm>
</div>

View File

@ -29,10 +29,10 @@
<el-scrollbar class="listBox" ref="refScrollbar">
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
<div>{{index + 1}}</div>
<div>{{item.engineeringName}}</div>
<div>{{item.engineeringName || '--'}}</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.progressDescribe" placement="top-start">
<span>{{item.progressDescribe}}</span>
<span>{{item.progressDescribe || '--'}}</span>
</el-tooltip>
</div>
<div class="list-img">
@ -48,8 +48,8 @@
</el-image>
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
</div>
<div>{{item.createUserName}}</div>
<div>{{item.createTime}}</div>
<div>{{item.createUserName || '--'}}</div>
<div>{{item.createTime || '--'}}</div>
</div>
<div class="notoDta" v-if="partyMemberList.length == 0">
<img src="@/assets/images/noData.png" alt="" />
@ -69,7 +69,7 @@
<el-scrollbar class="listBox" ref="refScrollbar">
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
<div>{{index + 1}}</div>
<div>{{item.engineeringName}}</div>
<div>{{item.engineeringName || '--'}}</div>
<div>{{item.status == 2
? '待整改'
: item.status == 3
@ -78,10 +78,10 @@
? '待核验'
: item.status == 5
? '合格'
: ''}}</div>
<div>{{item.inspectManName}}</div>
<div>{{item.inspectTime}}</div>
<div>{{item.changeName}}</div>
: '--'}}</div>
<div>{{item.inspectManName || '--'}}</div>
<div>{{item.inspectTime || '--'}}</div>
<div>{{item.changeName || '--'}}</div>
</div>
<div class="notoDta" v-if="partyMemberList.length == 0">
<img src="@/assets/images/noData.png" alt="" />
@ -96,19 +96,25 @@
<div>验收描述</div>
<div>验收结果</div>
<div>图片</div>
<div>申请验收</div>
<div>记录</div>
<div>创建时间</div>
</div>
<el-scrollbar class="listBox" ref="refScrollbar">
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
<div>{{index + 1}}</div>
<div>{{item.engineeringName}}</div>
<div>{{item.engineeringName || '--'}}</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.acceptanceDesc" placement="top-start">
<span>{{item.acceptanceDesc}}</span>
<span>{{item.acceptanceDesc || '--'}}</span>
</el-tooltip>
</div>
<div>{{item.acceptanceResult == 1?'合格':'不合格'}}</div>
<div>{{
item.acceptanceResult == undefined ||
item.acceptanceResult == null ||
item.acceptanceResult == '' ? '待确认' :
item.acceptanceResult == 1 ? '合格' :
item.acceptanceResult == 2 ? '不合格' : ''
}}</div>
<div class="list-img">
<el-image
fit="contain"
@ -122,8 +128,8 @@
</el-image>
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
</div>
<div>{{item.applyAcceptanceUserName}}</div>
<div>{{item.createTime}}</div>
<div>{{item.acceptanceUserName || '--'}}</div>
<div>{{item.createTime || '--'}}</div>
</div>
<div class="notoDta" v-if="partyMemberList.length == 0">
<img src="@/assets/images/noData.png" alt="" />
@ -143,8 +149,12 @@
<el-scrollbar class="listBox" ref="refScrollbar">
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
<div>{{index + 1}}</div>
<div>{{item.engineeringName}}</div>
<div>{{item.buildSituation}}</div>
<div>{{item.engineeringName || '--'}}</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.buildSituation" placement="top-start">
<span>{{item.buildSituation || '--'}}</span>
</el-tooltip>
</div>
<div class="list-img">
<el-image
fit="contain"
@ -158,8 +168,8 @@
</el-image>
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
</div>
<div>{{item.createUserName}}</div>
<div>{{item.createTime}}</div>
<div>{{item.createUserName || '--'}}</div>
<div>{{item.createTime || '--'}}</div>
</div>
<div class="notoDta" v-if="partyMemberList.length == 0">
<img src="@/assets/images/noData.png" alt="" />
@ -195,7 +205,11 @@
{{ item.type === typeItem.type? typeItem.name : '' }}
</span>
</div>
<div>{{item.workTicketCode || '--'}}</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.workTicketCode" placement="top-start">
<span>{{item.workTicketCode || '--'}}</span>
</el-tooltip>
</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.progressDescribe" placement="top-start">
<span>{{item.progressDescribe || '--'}}</span>
@ -214,7 +228,11 @@
</el-image>
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
</div>
<div>{{item.jobApplicationUnitName || '--'}}</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.jobApplicationUnitName" placement="top-start">
<span>{{item.jobApplicationUnitName || '--'}}</span>
</el-tooltip>
</div>
<div>{{item.createUserName || '--'}}</div>
<div>{{item.createTime || '--'}}</div>
</div>
@ -240,10 +258,14 @@
<div>{{index + 1}}</div>
<div>
<span v-for="typeItem in typeName" :key="typeItem.type">
{{ item.type === typeItem.type? typeItem.name : '--' }}
{{ item.type === typeItem.type? typeItem.name : '' }}
</span>
</div>
<div>{{item.workTicketCode || '--'}}</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.workTicketCode" placement="top-start">
<span>{{item.workTicketCode || '--'}}</span>
</el-tooltip>
</div>
<div>{{item.status == 2
? '待整改'
: item.status == 3
@ -255,7 +277,11 @@
: '--'}}</div>
<div>{{item.inspectManName || '--'}}</div>
<div>{{item.inspectTime || '--'}}</div>
<div>{{item.jobApplicationUnitName || '--'}}</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.jobApplicationUnitName" placement="top-start">
<span>{{item.jobApplicationUnitName || '--'}}</span>
</el-tooltip>
</div>
<div>{{item.changeName || '--'}}</div>
</div>
<div class="notoDta" v-if="partyMemberList.length == 0">
@ -272,7 +298,7 @@
<div>验收描述</div>
<div>验收结果</div>
<div>图片</div>
<div>申请验收</div>
<div>记录</div>
<div>创建时间</div>
</div>
<el-scrollbar class="listBox" ref="refScrollbar">
@ -280,16 +306,26 @@
<div>{{index + 1}}</div>
<div>
<span v-for="typeItem in typeName" :key="typeItem.type">
{{ item.type === typeItem.type? typeItem.name : '--' }}
{{ item.type === typeItem.type? typeItem.name : '' }}
</span>
</div>
<div>{{item.workTicketCode || '--'}}</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.workTicketCode" placement="top-start">
<span>{{item.workTicketCode || '--'}}</span>
</el-tooltip>
</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.acceptanceDesc" placement="top-start">
<span>{{item.acceptanceDesc || '--'}}</span>
</el-tooltip>
</div>
<div>{{item.acceptanceResult == 1?'合格':'不合格'}}</div>
<div>{{
item.acceptanceResult == undefined ||
item.acceptanceResult == null ||
item.acceptanceResult == '' ? '待确认' :
item.acceptanceResult == 1 ? '合格' :
item.acceptanceResult == 2 ? '不合格' : ''
}}</div>
<div class="list-img">
<el-image
fit="contain"
@ -297,13 +333,13 @@
:src="BASEURL + '/image/' + item.photo"
:preview-src-list="[BASEURL + '/image/' + item.photo]"
>
<template #error>
<template #error>
<el-image :src="noDataImage" :preview-src-list="[noDataImage]" fit="contain" class="el-no-img" alt="" />
</template>
</el-image>
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
</div>
<div>{{item.applyAcceptanceUserName || '--'}}</div>
<div>{{item.acceptanceUserName || '--'}}</div>
<div>{{item.createTime || '--'}}</div>
</div>
<div class="notoDta" v-if="partyMemberList.length == 0">
@ -327,11 +363,19 @@
<div>{{index + 1}}</div>
<div>
<span v-for="typeItem in typeName" :key="typeItem.type">
{{ item.type === typeItem.type? typeItem.name : '--' }}
{{ item.type === typeItem.type? typeItem.name : '' }}
</span>
</div>
<div>{{item.workTicketCode || '--'}}</div>
<div>{{item.buildSituation || '--'}}</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.workTicketCode" placement="top-start">
<span>{{item.workTicketCode || '--'}}</span>
</el-tooltip>
</div>
<div>
<el-tooltip class="box-item" effect="dark" :content="item.buildSituation" placement="top-start">
<span>{{item.buildSituation || '--'}}</span>
</el-tooltip>
</div>
<div class="list-img">
<el-image
fit="contain"

View File

@ -277,6 +277,8 @@ onMounted(async () => {
.political-outlook {
height: 97%;
margin: 0 60px;
// background-color: #fff;
transform: translateY(40px) translateX(-13px);
.content {
height: 95%;
width: 100%;
@ -333,6 +335,7 @@ onMounted(async () => {
}
.listBox {
height: 73%;
// background-color: #fff;
.listStyle {
display: flex;
align-items: center;

View File

@ -153,7 +153,7 @@ const statusList = ref([
{ name: "待复查", value: 3 },
{ name: "待核验", value: 4 },
{ name: "合格", value: 5 },
{ name: "已撤回", value: 6 },
// { name: "", value: 6 },
{ name: "超期未关闭", value: 7 },
]);
let pageNo = ref(1 as any);
@ -256,9 +256,9 @@ const getMemberCountList = async (tip:any) => {
// const res: any = await getInspectionRecordApi(requestData);
const res: any = await getQualityInspectionRecordApi(requestData);
if(tip == 'more'){
partyMemberList.value = partyMemberList.value.concat(res.result.page.records);
partyMemberList.value = partyMemberList.value.concat(res.result.page.records.filter((item:any) => item.status != 6));
} else {
partyMemberList.value = res.result.page.records;
partyMemberList.value = res.result.page.records.filter((item:any) => item.status != 6);
}
// IP
// partyMemberList.value.map((item:any) => {

View File

@ -150,7 +150,7 @@ const statusList = ref([
{ name: "待复查", value: 3 },
{ name: "待核验", value: 4 },
{ name: "合格", value: 5 },
{ name: "已撤回", value: 6 },
// { name: "", value: 6 },
{ name: "超期未关闭", value: 7 },
]);
let pageNo = ref(1 as any);
@ -251,9 +251,9 @@ const getMemberCountList = async (tip:any) => {
}
const res: any = await getInspectionRecordApi(requestData);
if(tip == 'more'){
partyMemberList.value = partyMemberList.value.concat(res.result.page.records);
partyMemberList.value = partyMemberList.value.concat(res.result.page.records.filter((item:any) => item.status != 6));
} else {
partyMemberList.value = res.result.page.records;
partyMemberList.value = res.result.page.records.filter((item:any) => item.status != 6);
}
// IP
// partyMemberList.value.map((item:any) => {

View File

@ -19,9 +19,9 @@
<div>照片</div>
<div>所属企业</div>
<div>所属班组</div>
<div>身份证号</div>
<div style="width:180px">身份证号</div>
<div>联系电话</div>
<div>考试时间</div>
<div style="width:160px">考试时间</div>
<div>培训状态</div>
</div>
<el-scrollbar class="listBox" ref="refScrollbar">
@ -37,6 +37,9 @@
:src="BASEURL + '/image/' + item.fieldAcquisitionUrl"
:preview-src-list="[BASEURL + '/image/' + item.fieldAcquisitionUrl]"
>
<template #error>
<el-image :src="noDataImage" :preview-src-list="[noDataImage]" fit="contain" class="el-no-img" alt="" />
</template>
</el-image>
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
</div>
@ -50,13 +53,13 @@
<span>{{ item.personType == 1 ? item.teamName : item.departmentName }}</span>
</el-tooltip>
</div>
<div>
<div style="width:180px">
<el-tooltip class="box-item" effect="dark" :content="item.idCard" placement="top-start">
<span>{{item.idCard}}</span>
</el-tooltip>
</div>
<div>{{ item.phoneNumber }}</div>
<div>
<div style="width:160px">
<el-tooltip class="box-item" effect="dark" :content="item.educationTime" placement="top-start">
<span>{{item.educationTime}}</span>
</el-tooltip>
@ -107,8 +110,8 @@
<div style="width:350px">{{ item.trainBeginTime || '--'}} - {{item.trainEndTime || '--' }}</div>
<div>{{ item.workerNum || '--' }}</div>
<div>{{ item.createByName || '--' }}</div>
<div>{{ item.completeRadio ? item.completeRadio + '%' : '--' }}</div>
<div>{{ item.passRadio ? item.passRadio + '%' : '--' }}</div>
<div>{{ item.completeRadio != null ? item.completeRadio + '%' : '--' }}</div>
<div>{{ item.passRadio != null ? item.passRadio + '%' : '--' }}</div>
<div style="color:#5382f6;cursor:pointer;" @click="handleOpenDetail(item)">查看培训详情</div>
</div>
<div class="notoDta" v-if="partyMemberList.length == 0">
@ -128,7 +131,7 @@
<div>序号</div>
<div>姓名</div>
<div>课程名称</div>
<div>身份证号</div>
<div style="width:150px">身份证号</div>
<div>培训计划名称</div>
<div>开始学习时间</div>
<div>结束学习时间</div>
@ -137,9 +140,17 @@
<div v-for="(item, index) in studyExamRecord" class="listStyle" :key="item" style="justify-content:space-around">
<div>{{ index + 1 }}</div>
<div>{{ item.workerName || '--' }}</div>
<div>{{ item.courseName || '--' }}</div>
<div>{{ item.workerCard || '--' }}</div>
<div>{{ eduPlanItem.name || '--' }}</div>
<div>
<el-tooltip class="box-item" style="text-align:center" effect="dark" :content="eduPlanItem.courseName" placement="top-start">
<span>{{ eduPlanItem.courseName || '--' }}</span>
</el-tooltip>
</div>
<div style="width:150px">{{ item.workerCard || '--' }}</div>
<div>
<el-tooltip class="box-item" style="text-align:center" effect="dark" :content="eduPlanItem.name" placement="top-start">
<span>{{ eduPlanItem.name || '--' }}</span>
</el-tooltip>
</div>
<div>{{ item.beginTime || '--' }}</div>
<div>{{ item.endTime || '--' }}</div>
</div>
@ -157,29 +168,37 @@
<div>姓名</div>
<div>科目名称</div>
<div>考试名称</div>
<div>培训计划名称</div>
<div>身份证号</div>
<div>开始考试时间</div>
<div style="width:140px">培训计划名称</div>
<div style="width:200px">身份证号</div>
<div style="width:180px">开始考试时间</div>
<div>作答时长</div>
<div>考试结果</div>
<div>考试总分</div>
<div>考得分</div>
<div>剩余重考次数</div>
<div style="width:140px">剩余重考次数</div>
</div>
<el-scrollbar class="listBox" ref="refScrollbar" style="height:420px">
<div v-for="(item, index) in studyExamRecord" class="listStyle" :key="item" style="justify-content:space-around">
<div>{{ index + 1 }}</div>
<div>{{ item.workerName || '--' }}</div>
<div>{{ item.subjectName || '--' }}</div>
<div>{{ item.examPaperName || '--' }}</div>
<div>{{ eduPlanItem.name || '--' }}</div>
<div>{{ item.workerCard || '--' }}</div>
<div>{{ item.startExamTime || '--' }}</div>
<div>
<el-tooltip class="box-item" style="text-align:center" effect="dark" :content="item.examPaperName" placement="top-start">
<span>{{ item.examPaperName || '--' }}</span>
</el-tooltip>
</div>
<div style="width:140px">
<el-tooltip class="box-item" style="text-align:center" effect="dark" :content="eduPlanItem.name" placement="top-start">
<span>{{ eduPlanItem.name || '--' }}</span>
</el-tooltip>
</div>
<div style="width:200px">{{ item.workerCard || '--' }}</div>
<div style="width:180px">{{ item.startExamTime || '--' }}</div>
<div>{{ item.duration || '--' }}</div>
<div>{{ item.isPass || '--' }}</div>
<div>{{ item.totalScore || '--' }}</div>
<div>{{ item.score || '--' }}</div>
<div>{{ item.examCount || '--' }}</div>
<div>{{ item.isPass == 1 ? '合格' : '不合格'}}</div>
<div>{{ item.totalScore != null ? item.totalScore : 0}}</div>
<div>{{ item.score != null ? item.score : 0}}</div>
<div style="width:140px">{{ item.examCount != null ? item.examCount : 0}}</div>
</div>
<div class="notoDta" v-if="studyExamRecord.length == 0">
<img src="@/assets/images/noData.png" alt="" />
@ -193,7 +212,7 @@
<div class="tabList" style="justify-content:space-around">
<div>序号</div>
<div>姓名</div>
<div>身份证号</div>
<div style="width:150px">身份证号</div>
<div>培训计划名称</div>
<div>科目类型</div>
<div>课程名称</div>
@ -202,10 +221,18 @@
<div v-for="(item, index) in studyExamRecord" class="listStyle" :key="item" style="justify-content:space-around">
<div>{{ index + 1 }}</div>
<div>{{ item.workerName || '--' }}</div>
<div>{{ item.workerCard || '--' }}</div>
<div>{{ eduPlanItem.name || '--' }}</div>
<div style="width:150px">{{ item.workerCard || '--' }}</div>
<div>
<el-tooltip class="box-item" style="text-align:center" effect="dark" :content="eduPlanItem.paperName" placement="top-start">
<span>{{ eduPlanItem.name || '--' }}</span>
</el-tooltip>
</div>
<div>{{ eduPlanItem.subjectName || '--' }}</div>
<div>{{ eduPlanItem.courseName || '--' }}</div>
<div>
<el-tooltip class="box-item" style="text-align:center" effect="dark" :content="eduPlanItem.paperName" placement="top-start">
<span>{{ eduPlanItem.courseName || '--' }}</span>
</el-tooltip>
</div>
</div>
<div class="notoDta" v-if="studyExamRecord.length == 0">
<img src="@/assets/images/noData.png" alt="" />
@ -219,7 +246,7 @@
<div class="tabList" style="justify-content:space-around">
<div>序号</div>
<div>姓名</div>
<div>身份证号</div>
<div style="width:150px">身份证号</div>
<div>培训计划名称</div>
<div>科目类型</div>
<div>考试名称</div>
@ -228,10 +255,18 @@
<div v-for="(item, index) in studyExamRecord" class="listStyle" :key="item" style="justify-content:space-around">
<div>{{ index + 1 }}</div>
<div>{{ item.workerName || '--' }}</div>
<div>{{ item.workerCard || '--' }}</div>
<div>{{ eduPlanItem.name || '--' }}</div>
<div style="width:150px">{{ item.workerCard || '--' }}</div>
<div>
<el-tooltip class="box-item" style="text-align:center" effect="dark" :content="eduPlanItem.name" placement="top-start">
<span>{{ eduPlanItem.name || '--' }}</span>
</el-tooltip>
</div>
<div>{{ eduPlanItem.subjectName || '--' }}</div>
<div>{{ eduPlanItem.paperName || '--' }}</div>
<div>
<el-tooltip class="box-item" style="text-align:center" effect="dark" :content="eduPlanItem.paperName" placement="top-start">
<span>{{ eduPlanItem.paperName || '--' }}</span>
</el-tooltip>
</div>
</div>
<div class="notoDta" v-if="studyExamRecord.length == 0">
<img src="@/assets/images/noData.png" alt="" />
@ -250,6 +285,7 @@
import { ref, onMounted } from "vue";
import { GlobalStore } from "@/stores";
import type { TabsPaneContext } from 'element-plus'
import noDataImage from "@/assets/images/vehicleManagement/car.png";
import { getSafeEducationDataApi,getEduPlanDataApi,
getStudyDataApi,getExamDataApi
} from "@/api/modules/agjtCommandApi";
@ -266,6 +302,7 @@ function handleChangeTab(val: any){
//
isDetail.value = false
activeIndex.value = 0
activeName.value = 'first'
//
currentTab.value = val
partyMemberList.value = []
@ -282,12 +319,15 @@ const activeName = ref('first' as any)
const studyExamRecord = ref('' as any)
//
const handleOpenDetail = async(item: any) => {
activeIndex.value = 0
activeName.value = 'first'
isDetail.value = true
eduPlanItem.value = item
getStudyExamData()
}
const handleCloseDetail = async() => {
activeIndex.value = 0
activeName.value = 'first'
isDetail.value = false
}
//tab
@ -551,6 +591,11 @@ onMounted(async () => {
height: 100%;
}
}
.el-no-img {
transform: translateX(-6px);
width: 30px;
height: 30px;
}
}
div {
width: 10%;