fix: BUG修改
This commit is contained in:
parent
7a986d8ae7
commit
68cde83997
@ -40,9 +40,15 @@ export const getSafeEducationDataApi = (params: {}) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 天气弹窗
|
// 天气弹窗
|
||||||
|
// 顶部数据
|
||||||
export const getDelayEventTypeApi = (params: {}) => {
|
export const getDelayEventTypeApi = (params: {}) => {
|
||||||
return http.post(BASEURL + `/xmgl/xzTaskProgressContent/statsDelayEventType`, params, { headers: { noLoading: true } });
|
return http.post(BASEURL + `/xmgl/xzTaskProgressContent/statsDelayEventType`, params, { headers: { noLoading: true } });
|
||||||
};
|
};
|
||||||
|
// 底部列表
|
||||||
|
export const getProgressContentApi = (params: {}) => {
|
||||||
|
return http.get(BASEURL + `/xmgl/xzTaskProgressContent/page`, params, { headers: { noLoading: true } });
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// 风险统计弹窗
|
// 风险统计弹窗
|
||||||
// 顶部数据
|
// 顶部数据
|
||||||
@ -50,3 +56,22 @@ export const getStatisticsNumDataApi = (params: {}) => {
|
|||||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNum`, params, { headers: { noLoading: true } });
|
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNum`, params, { headers: { noLoading: true } });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 安全隐患
|
||||||
|
// 顶部数据
|
||||||
|
export const getQualityStatisticsNumDataApi = (params: {}) => {
|
||||||
|
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNumList`, params, { headers: { noLoading: true } });
|
||||||
|
};
|
||||||
|
// 获取分包单位
|
||||||
|
export const getProjectEnterpriseApi = (params: {}) => {
|
||||||
|
return http.post(BASEURL + `/xmgl/projectEnterprise/list`, params, { headers: { noLoading: true } });
|
||||||
|
};
|
||||||
|
// 获取整改人
|
||||||
|
export const getSystemUserApi = (params: {}) => {
|
||||||
|
return http.post(BASEURL + `/xmgl/systemUser/getProjectChilderSystemUserList`, params, { headers: { noLoading: true } });
|
||||||
|
};
|
||||||
|
|
||||||
|
// AI警报
|
||||||
|
// 底部数据接口
|
||||||
|
export const getAlarmRecordApi = (params: {}) => {
|
||||||
|
return http.post(BASEURL + `/xmgl/aiAnalyseHardWareAlarmRecord/selectPageList`, params, { headers: { noLoading: true } });
|
||||||
|
};
|
||||||
|
|||||||
@ -67,15 +67,15 @@
|
|||||||
<el-image
|
<el-image
|
||||||
fit="contain"
|
fit="contain"
|
||||||
class="el-img"
|
class="el-img"
|
||||||
:src="BASEURL + '/image/' + item.fieldAcquisitionUrl"
|
:src="BASEURL + '/image/' + item.imageUrl"
|
||||||
:preview-src-list="[BASEURL + '/image/' + item.fieldAcquisitionUrl]"
|
:preview-src-list="[BASEURL + '/image/' + item.imageUrl]"
|
||||||
>
|
>
|
||||||
</el-image>
|
</el-image>
|
||||||
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
|
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
|
||||||
</div>
|
</div>
|
||||||
<div>{{item.workerName}}</div>
|
<div>{{item.hardwareName}}</div>
|
||||||
<div>{{item.phoneNumber}}</div>
|
<div>{{item.alarmType == 1?'烟感报警':item.alarmType == 2?'明火报警':item.alarmType == 3?'人员到底报警':item.alarmType == 4?'未带安全帽报警':item.alarmType == 5?'区域入侵报警':item.alarmType == 6?'越界入侵报警':'人员聚集报警'}}</div>
|
||||||
<div>{{item.personType == 1?item.teamName:item.personType == 2?item.departmentName:''}}</div>
|
<div>{{item.createTime}}</div>
|
||||||
<div style="color: #1FADC5;" @click="openDetailDialog(item)">查看详情</div>
|
<div style="color: #1FADC5;" @click="openDetailDialog(item)">查看详情</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="notoDta" v-if="partyMemberList.length == 0">
|
<div class="notoDta" v-if="partyMemberList.length == 0">
|
||||||
@ -122,6 +122,7 @@ import { GlobalStore } from "@/stores";
|
|||||||
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
||||||
import type { TabsPaneContext } from 'element-plus'
|
import type { TabsPaneContext } from 'element-plus'
|
||||||
import { getAlarmTypeOption } from "@/api/modules/aIEarlyWarn";
|
import { getAlarmTypeOption } from "@/api/modules/aIEarlyWarn";
|
||||||
|
import { getAlarmRecordApi } from "@/api/modules/agjtCommandApi";
|
||||||
const store = GlobalStore();
|
const store = GlobalStore();
|
||||||
const props = defineProps(["tip"]);
|
const props = defineProps(["tip"]);
|
||||||
const BASEURL = import.meta.env.VITE_API_URL;
|
const BASEURL = import.meta.env.VITE_API_URL;
|
||||||
@ -205,22 +206,10 @@ const getCompanyList = async () => {
|
|||||||
const getMemberCountList = async (tip:any) => {
|
const getMemberCountList = async (tip:any) => {
|
||||||
let requestData:any = {
|
let requestData:any = {
|
||||||
projectSn: store.sn,
|
projectSn: store.sn,
|
||||||
personType: searchForm.value.memberType, //人员类型
|
|
||||||
enterpriseId: searchForm.value.belongCompany, //所属企业
|
|
||||||
inserviceType: searchForm.value.workState, //在职状态
|
|
||||||
idCard: searchForm.value.idCard, //身份证号
|
|
||||||
workerName: searchForm.value.name, //姓名
|
|
||||||
pageNo: tip == 'search'?1:pageNo.value,
|
pageNo: tip == 'search'?1:pageNo.value,
|
||||||
pageSize: 100
|
pageSize: 100
|
||||||
}
|
}
|
||||||
if(props.tip == '实时'){
|
const res: any = await getAlarmRecordApi(requestData);
|
||||||
requestData.presence = 1;
|
|
||||||
} else if(props.tip == '日累积') {
|
|
||||||
requestData.attendance = 1;
|
|
||||||
} else {
|
|
||||||
requestData.inserviceType = 1;
|
|
||||||
}
|
|
||||||
const res: any = await getMemberInfoList(requestData);
|
|
||||||
console.log("获取人员信息列表", res);
|
console.log("获取人员信息列表", res);
|
||||||
if(tip == 'more'){
|
if(tip == 'more'){
|
||||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||||
|
|||||||
@ -2,12 +2,20 @@
|
|||||||
<div class="political-outlook">
|
<div class="political-outlook">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="top-statistics">
|
<div class="top-statistics">
|
||||||
<div class="statistics-item">
|
<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.greatFaultLevelNum }}</span>
|
||||||
|
<span class="statistics-item-content">未销项隐患次数:{{ item.notCloseNum }}</span>
|
||||||
|
<span class="statistics-item-content">一般隐患次数:{{ item.generalRiskNum }}</span>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="statistics-item">
|
||||||
<span class="title">2024.04.01 - 2024.04.07</span>
|
<span class="title">2024.04.01 - 2024.04.07</span>
|
||||||
<span class="statistics-item-content">安全隐患数量:1</span>
|
<span class="statistics-item-content">安全隐患数量:1</span>
|
||||||
<span class="statistics-item-content">未整改隐患次数:1</span>
|
<span class="statistics-item-content">未整改隐患次数:1</span>
|
||||||
<span class="statistics-item-content">重大隐患次数:1</span>
|
<span class="statistics-item-content">重大隐患次数:1</span>
|
||||||
<span class="statistics-item-content">未整改隐患次数:1</span>
|
<span class="statistics-item-content">未销项隐患次数:1</span>
|
||||||
<span class="statistics-item-content">一般隐患次数:1</span>
|
<span class="statistics-item-content">一般隐患次数:1</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="statistics-item">
|
<div class="statistics-item">
|
||||||
@ -15,7 +23,7 @@
|
|||||||
<span class="statistics-item-content">安全隐患数量:1</span>
|
<span class="statistics-item-content">安全隐患数量:1</span>
|
||||||
<span class="statistics-item-content">未整改隐患次数:1</span>
|
<span class="statistics-item-content">未整改隐患次数:1</span>
|
||||||
<span class="statistics-item-content">重大隐患次数:1</span>
|
<span class="statistics-item-content">重大隐患次数:1</span>
|
||||||
<span class="statistics-item-content">未整改隐患次数:1</span>
|
<span class="statistics-item-content">未销项隐患次数:1</span>
|
||||||
<span class="statistics-item-content">一般隐患次数:1</span>
|
<span class="statistics-item-content">一般隐患次数:1</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="statistics-item">
|
<div class="statistics-item">
|
||||||
@ -23,43 +31,34 @@
|
|||||||
<span class="statistics-item-content">安全隐患数量:1</span>
|
<span class="statistics-item-content">安全隐患数量:1</span>
|
||||||
<span class="statistics-item-content">未整改隐患次数:1</span>
|
<span class="statistics-item-content">未整改隐患次数:1</span>
|
||||||
<span class="statistics-item-content">重大隐患次数:1</span>
|
<span class="statistics-item-content">重大隐患次数:1</span>
|
||||||
<span class="statistics-item-content">未整改隐患次数:1</span>
|
<span class="statistics-item-content">未销项隐患次数:1</span>
|
||||||
<span class="statistics-item-content">一般隐患次数:1</span>
|
<span class="statistics-item-content">一般隐患次数:1</span>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="statistics-item">
|
|
||||||
<span class="title">2024.04.01 - 2024.04.07</span>
|
|
||||||
<span class="statistics-item-content">安全隐患数量:1</span>
|
|
||||||
<span class="statistics-item-content">未整改隐患次数:1</span>
|
|
||||||
<span class="statistics-item-content">重大隐患次数:1</span>
|
|
||||||
<span class="statistics-item-content">未整改隐患次数:1</span>
|
|
||||||
<span class="statistics-item-content">一般隐患次数:1</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="top-search">
|
<div class="top-search">
|
||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<span>状态</span>
|
<span>状态</span>
|
||||||
<el-select
|
<el-select
|
||||||
class="m-2"
|
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
size="small"
|
size="small"
|
||||||
v-model="searchForm.memberType"
|
v-model="searchForm.status"
|
||||||
:clearable="true"
|
:clearable="true"
|
||||||
style="width: 150px"
|
style="width: 150px"
|
||||||
>
|
>
|
||||||
<el-option v-for="(item, index) in memberTypeList" :key="index" :label="item.name" :value="item.value" />
|
<el-option v-for="(item, index) in statusList" :key="index" :label="item.name" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<span>影响级别</span>
|
<span>问题等级</span>
|
||||||
<el-select
|
<el-select
|
||||||
class="m-2"
|
class="m-2"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
size="small"
|
size="small"
|
||||||
v-model="searchForm.belongCompany"
|
v-model="searchForm.level"
|
||||||
:clearable="true"
|
:clearable="true"
|
||||||
style="width: 150px"
|
style="width: 150px"
|
||||||
>
|
>
|
||||||
<el-option v-for="(item, index) in enterpriseListData" :key="index" :label="item.enterpriseName" :value="item.id" />
|
<el-option v-for="(item, index) in levelListData" :key="index" :label="item.enterpriseName" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
@ -68,49 +67,66 @@
|
|||||||
class="m-2"
|
class="m-2"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
size="small"
|
size="small"
|
||||||
v-model="searchForm.workState"
|
v-model="searchForm.inspectId"
|
||||||
:clearable="true"
|
:clearable="true"
|
||||||
style="width: 150px"
|
style="width: 150px"
|
||||||
>
|
>
|
||||||
<el-option v-for="(item, index) in onlineWorkList" :key="index" :label="item.name" :value="item.value" />
|
<el-option v-for="(item, index) in inspectList" :key="index" :label="item.realName" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<span>整改人</span>
|
<span>整改人</span>
|
||||||
<el-input placeholder="请输入" v-model="searchForm.name" :clearable="true" style="width: 150px" />
|
<el-select
|
||||||
|
class="m-2"
|
||||||
|
placeholder="请选择"
|
||||||
|
size="small"
|
||||||
|
v-model="searchForm.changeId"
|
||||||
|
:clearable="true"
|
||||||
|
style="width: 150px"
|
||||||
|
>
|
||||||
|
<el-option v-for="(item, index) in inspectList" :key="index" :label="item.realName" :value="item.id" />
|
||||||
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<span>分包单位</span>
|
<span>分包单位</span>
|
||||||
<el-input placeholder="请输入" v-model="searchForm.idCard" :clearable="true" style="width: 180px" />
|
<el-select
|
||||||
|
class="m-2"
|
||||||
|
placeholder="请选择"
|
||||||
|
size="small"
|
||||||
|
v-model="searchForm.enterpriseId"
|
||||||
|
:clearable="true"
|
||||||
|
style="width: 150px"
|
||||||
|
>
|
||||||
|
<el-option v-for="(item, index) in enterpriseListData" :key="index" :label="item.enterpriseName" :value="item.id" />
|
||||||
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<!-- <el-button @click="getMemberCountList('search')">查询</el-button> -->
|
<!-- <el-button @click="getMemberCountList('search')">查询</el-button> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="table-one">
|
<div class="table-one">
|
||||||
<div class="tabList">
|
<div class="tabList">
|
||||||
<div>序号</div>
|
<div>序号</div>
|
||||||
<div>检查结果</div>
|
<div>状态</div>
|
||||||
|
<div>问题等级</div>
|
||||||
|
<div>隐患部位</div>
|
||||||
|
<div>隐患描述及要求</div>
|
||||||
|
<div>整改时限</div>
|
||||||
<div>检查人</div>
|
<div>检查人</div>
|
||||||
<div>检查时间</div>
|
<div style="width: 15%;">检查时间</div>
|
||||||
<div>隐患信息</div>
|
|
||||||
<div>整改人</div>
|
<div>整改人</div>
|
||||||
|
<div>分包单位</div>
|
||||||
</div>
|
</div>
|
||||||
<el-scrollbar class="listBox" ref="refScrollbar">
|
<el-scrollbar class="listBox" ref="refScrollbar">
|
||||||
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
|
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
|
||||||
<div>{{index + 1}}</div>
|
<div>{{index + 1}}</div>
|
||||||
<div>{{item.workerName}}</div>
|
<div>{{statusList[item.status].name}}</div>
|
||||||
<div class="list-img">
|
<div>{{item.level?levelListData[item.level - 1].name:''}}</div>
|
||||||
<el-image
|
<div>{{item.regionName}}</div>
|
||||||
fit="contain"
|
<div>{{item.dangerItemContent}}</div>
|
||||||
class="el-img"
|
<div>{{item.changeLimitTime}}</div>
|
||||||
:src="BASEURL + '/image/' + item.fieldAcquisitionUrl"
|
<div>{{item.inspectManName}}</div>
|
||||||
:preview-src-list="[BASEURL + '/image/' + item.fieldAcquisitionUrl]"
|
<div style="width: 15%;">{{item.inspectTime}}</div>
|
||||||
>
|
<div>{{item.changeId}}</div>
|
||||||
</el-image>
|
<div>{{item.enterpriseName}}</div>
|
||||||
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
|
|
||||||
</div>
|
|
||||||
<div>{{item.phoneNumber}}</div>
|
|
||||||
<div>{{item.personType == 1?item.teamName:item.personType == 2?item.departmentName:''}}</div>
|
|
||||||
<div>{{item.phoneNumber}}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="notoDta" v-if="partyMemberList.length == 0">
|
<div class="notoDta" v-if="partyMemberList.length == 0">
|
||||||
<img src="@/assets/images/noData.png" alt="" />
|
<img src="@/assets/images/noData.png" alt="" />
|
||||||
@ -126,46 +142,76 @@
|
|||||||
import { ref, onMounted } from "vue";
|
import { ref, onMounted } from "vue";
|
||||||
import { GlobalStore } from "@/stores";
|
import { GlobalStore } from "@/stores";
|
||||||
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
||||||
import type { TabsPaneContext } from 'element-plus'
|
import { getQualityStatisticsNumDataApi, getProjectEnterpriseApi, getSystemUserApi, getInspectionRecordApi } from "@/api/modules/agjtCommandApi";
|
||||||
const store = GlobalStore();
|
const store = GlobalStore();
|
||||||
const props = defineProps(["tip"]);
|
const props = defineProps(["tip"]);
|
||||||
const BASEURL = import.meta.env.VITE_API_URL;
|
const BASEURL = import.meta.env.VITE_API_URL;
|
||||||
const activeName = ref('first')
|
const inspectList = ref([] as any);
|
||||||
const activeIndex = ref('1' as any)
|
|
||||||
const onlineWorkList = ref([
|
|
||||||
{ name: "在职", value: 1 },
|
|
||||||
{ name: "离职", value: 2 }
|
|
||||||
])
|
|
||||||
const enterpriseListData = ref([] as any);
|
const enterpriseListData = ref([] as any);
|
||||||
const memberTypeList = ref([
|
const levelListData = ref([
|
||||||
{ name: "劳务人员", value: 1 },
|
{ name: "重大隐患", value: 1 },
|
||||||
{ name: "管理人员", value: 2 },
|
{ name: "较大隐患", value: 2 },
|
||||||
{ name: "临时人员", value: 3 }
|
{ name: "一般隐患", value: 3 },
|
||||||
|
{ name: "低隐患", value: 4 }
|
||||||
|
])
|
||||||
|
const statusList = ref([
|
||||||
|
{ name: "无需整改", value: 1 },
|
||||||
|
{ name: "待整改", value: 2 },
|
||||||
|
{ name: "待复查", value: 3 },
|
||||||
|
{ name: "待核验", value: 4 },
|
||||||
|
{ name: "合格", value: 5 },
|
||||||
|
{ name: "不合格", value: 6 },
|
||||||
|
{ name: "超期未关闭", value: 7 },
|
||||||
]);
|
]);
|
||||||
const alarmTypeList = ref(["报警", "预警"]);
|
|
||||||
let pageNo = ref(1 as any);
|
let pageNo = ref(1 as any);
|
||||||
let moreScroll = ref(true as any);
|
let moreScroll = ref(true as any);
|
||||||
const refScrollbar = ref(null as any); // 绑定到滚动的盒子上
|
const refScrollbar = ref(null as any); // 绑定到滚动的盒子上
|
||||||
const deviceList = ref([] as any); // 设备列表
|
|
||||||
const searchForm = ref({
|
const searchForm = ref({
|
||||||
memberType: '',
|
status: '',
|
||||||
belongCompany: '',
|
inspectId: '',
|
||||||
workState: '',
|
changeId: '',
|
||||||
name: '',
|
enterpriseId: '',
|
||||||
idCard: ''
|
level: ''
|
||||||
});
|
});
|
||||||
|
const topDangerList = ref([] as any)
|
||||||
const partyMemberList = ref({} as any);
|
const partyMemberList = ref({} as any);
|
||||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
// 获取整改人、检查人
|
||||||
// console.log(tab, event)
|
const getSystemUserFn = async () => {
|
||||||
// console.log('tab',tab.index)
|
let data = {
|
||||||
// console.log('activeName',activeName.value)
|
projectSn: store.sn
|
||||||
// if(activeName.value === 'first') console.log('1')
|
};
|
||||||
// if(activeName.value === 'second') console.log('2')
|
const res: any = await getSystemUserApi(data);
|
||||||
// if(activeName.value === 'third') console.log('3')
|
if (res.code == 200) {
|
||||||
activeIndex.value = tab.index
|
console.log("整改人、检查人",res)
|
||||||
console.log('activeIndex',activeIndex.value)
|
inspectList.value = res.result;
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
// 获取分包单位
|
||||||
|
const getDivisionUnitFn = async () => {
|
||||||
|
let data = {
|
||||||
|
projectSn: store.sn,
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 999
|
||||||
|
};
|
||||||
|
const res: any = await getProjectEnterpriseApi(data);
|
||||||
|
if (res.code == 200) {
|
||||||
|
console.log("分包单位",res)
|
||||||
|
enterpriseListData.value = res.result.records;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// 获取顶部数据
|
||||||
|
const getQualityStatisticsNumDataFn = async () => {
|
||||||
|
let data = {
|
||||||
|
projectSn: store.sn,
|
||||||
|
isStatsByWeek: 1
|
||||||
|
};
|
||||||
|
const res: any = await getQualityStatisticsNumDataApi(data);
|
||||||
|
if (res.code == 200) {
|
||||||
|
console.log("安全隐患顶部数据",res)
|
||||||
|
topDangerList.value = res.result || []
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//获取企业列表
|
//获取企业列表
|
||||||
const getCompanyList = async () => {
|
const getCompanyList = async () => {
|
||||||
let data = {
|
let data = {
|
||||||
@ -182,11 +228,7 @@ const getCompanyList = async () => {
|
|||||||
const getMemberCountList = async (tip:any) => {
|
const getMemberCountList = async (tip:any) => {
|
||||||
let requestData:any = {
|
let requestData:any = {
|
||||||
projectSn: store.sn,
|
projectSn: store.sn,
|
||||||
personType: searchForm.value.memberType, //人员类型
|
...searchForm.value,
|
||||||
enterpriseId: searchForm.value.belongCompany, //所属企业
|
|
||||||
inserviceType: searchForm.value.workState, //在职状态
|
|
||||||
idCard: searchForm.value.idCard, //身份证号
|
|
||||||
workerName: searchForm.value.name, //姓名
|
|
||||||
pageNo: tip == 'search'?1:pageNo.value,
|
pageNo: tip == 'search'?1:pageNo.value,
|
||||||
pageSize: 100
|
pageSize: 100
|
||||||
}
|
}
|
||||||
@ -197,12 +239,12 @@ const getMemberCountList = async (tip:any) => {
|
|||||||
} else {
|
} else {
|
||||||
requestData.inserviceType = 1;
|
requestData.inserviceType = 1;
|
||||||
}
|
}
|
||||||
const res: any = await getMemberInfoList(requestData);
|
const res: any = await getInspectionRecordApi(requestData);
|
||||||
console.log("获取人员信息列表", res);
|
console.log("获取安全隐患底部列表", res);
|
||||||
if(tip == 'more'){
|
if(tip == 'more'){
|
||||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
partyMemberList.value = partyMemberList.value.concat(res.result.page.records);
|
||||||
} else {
|
} else {
|
||||||
partyMemberList.value = res.result.records;
|
partyMemberList.value = res.result.page.records;
|
||||||
}
|
}
|
||||||
// 为图片拼接IP
|
// 为图片拼接IP
|
||||||
// partyMemberList.value.map((item:any) => {
|
// partyMemberList.value.map((item:any) => {
|
||||||
@ -217,6 +259,9 @@ const getMemberCountList = async (tip:any) => {
|
|||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await getCompanyList();
|
await getCompanyList();
|
||||||
|
await getDivisionUnitFn();
|
||||||
|
await getSystemUserFn();
|
||||||
|
await getQualityStatisticsNumDataFn();
|
||||||
await getMemberCountList('search');
|
await getMemberCountList('search');
|
||||||
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
||||||
// console.log("滚动容器", e);
|
// console.log("滚动容器", e);
|
||||||
@ -340,7 +385,7 @@ onMounted(async () => {
|
|||||||
margin-top: 2%;
|
margin-top: 2%;
|
||||||
div {
|
div {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: 20%;
|
width: 10%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.listBox {
|
.listBox {
|
||||||
@ -365,7 +410,7 @@ onMounted(async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
div {
|
div {
|
||||||
width: 20%;
|
width: 10%;
|
||||||
white-space: nowrap; //单行
|
white-space: nowrap; //单行
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|||||||
@ -36,29 +36,29 @@
|
|||||||
<div class="table-one">
|
<div class="table-one">
|
||||||
<div class="tabList">
|
<div class="tabList">
|
||||||
<div>序号</div>
|
<div>序号</div>
|
||||||
<div>天气状况</div>
|
<div>区域</div>
|
||||||
<div>影响工期天数</div>
|
<div>单位名称</div>
|
||||||
<div>预警提示</div>
|
<div>延期误工类型</div>
|
||||||
<div>预警记录时间</div>
|
<div>延期误工原因</div>
|
||||||
<div>备注</div>
|
<div>图片</div>
|
||||||
</div>
|
</div>
|
||||||
<el-scrollbar class="listBox" ref="refScrollbar">
|
<el-scrollbar class="listBox" ref="refScrollbar">
|
||||||
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
|
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
|
||||||
<div>{{ index + 1 }}</div>
|
<div>{{ index + 1 }}</div>
|
||||||
<div>{{ item.workerName }}</div>
|
<div>{{ item.regionName }}</div>
|
||||||
|
<div>{{ item.enterpriseName }}</div>
|
||||||
|
<div>{{ item.delayEventType == 1 ? "人为因素" : item.personType == 2 ? "环境因素" : "不可抵抗因素" }}</div>
|
||||||
|
<div>{{ item.delayEventReason }}</div>
|
||||||
<div class="list-img">
|
<div class="list-img">
|
||||||
<el-image
|
<el-image
|
||||||
fit="contain"
|
fit="contain"
|
||||||
class="el-img"
|
class="el-img"
|
||||||
:src="BASEURL + '/image/' + item.fieldAcquisitionUrl"
|
:src="BASEURL + '/image/' + item.image"
|
||||||
:preview-src-list="[BASEURL + '/image/' + item.fieldAcquisitionUrl]"
|
:preview-src-list="[BASEURL + '/image/' + item.image]"
|
||||||
>
|
>
|
||||||
</el-image>
|
</el-image>
|
||||||
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
|
<!-- <img :src="item.fieldAcquisitionUrl" alt="" srcset=""> -->
|
||||||
</div>
|
</div>
|
||||||
<div>{{ item.phoneNumber }}</div>
|
|
||||||
<div>{{ item.personType == 1 ? item.teamName : item.personType == 2 ? item.departmentName : "" }}</div>
|
|
||||||
<div>{{ item.phoneNumber }}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="notoDta" v-if="partyMemberList.length == 0">
|
<div class="notoDta" v-if="partyMemberList.length == 0">
|
||||||
<img src="@/assets/images/noData.png" alt="" />
|
<img src="@/assets/images/noData.png" alt="" />
|
||||||
@ -71,27 +71,21 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, onMounted } from "vue";
|
import { ref, onMounted, watch } from "vue";
|
||||||
import { GlobalStore } from "@/stores";
|
import { GlobalStore } from "@/stores";
|
||||||
import { getMemberInfoList } from "@/api/modules/labor";
|
import { getDelayEventTypeApi, getProgressContentApi } from "@/api/modules/agjtCommandApi";
|
||||||
import { getDelayEventTypeApi } from "@/api/modules/agjtCommandApi";
|
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
const store = GlobalStore();
|
const store = GlobalStore();
|
||||||
const props = defineProps(["tip"]);
|
const props = defineProps(["tip"]);
|
||||||
const BASEURL = import.meta.env.VITE_API_URL;
|
const BASEURL = import.meta.env.VITE_API_URL;
|
||||||
const dateTime:any = ref(null);
|
const dateTime:any = ref(null);
|
||||||
const calendarVal:any = ref(new Date());
|
const calendarVal:any = ref();
|
||||||
let pageNo = ref(1 as any);
|
let pageNo = ref(1 as any);
|
||||||
let moreScroll = ref(true as any);
|
let moreScroll = ref(true as any);
|
||||||
const refScrollbar = ref(null as any); // 绑定到滚动的盒子上
|
const refScrollbar = ref(null as any); // 绑定到滚动的盒子上
|
||||||
const deviceList = ref([] as any); // 设备列表
|
const tableParams = ref({
|
||||||
const searchForm = ref({
|
calendarVal: ""
|
||||||
memberType: "",
|
})
|
||||||
belongCompany: "",
|
|
||||||
workState: "",
|
|
||||||
name: "",
|
|
||||||
idCard: ""
|
|
||||||
});
|
|
||||||
|
|
||||||
const partyMemberList = ref({} as any);
|
const partyMemberList = ref({} as any);
|
||||||
const topStatisticData = ref({} as any)
|
const topStatisticData = ref({} as any)
|
||||||
@ -99,7 +93,8 @@ const topStatisticData = ref({} as any)
|
|||||||
const getDelayEventTypeFn = async () => {
|
const getDelayEventTypeFn = async () => {
|
||||||
let requestData: any = {
|
let requestData: any = {
|
||||||
projectSn: store.sn,
|
projectSn: store.sn,
|
||||||
auditType: 2
|
auditType: 2,
|
||||||
|
month: dateTime.value
|
||||||
};
|
};
|
||||||
const res: any = await getDelayEventTypeApi(requestData);
|
const res: any = await getDelayEventTypeApi(requestData);
|
||||||
console.log("获取天气顶部统计数据", res);
|
console.log("获取天气顶部统计数据", res);
|
||||||
@ -109,22 +104,12 @@ const getDelayEventTypeFn = async () => {
|
|||||||
const getMemberCountList = async (tip: any) => {
|
const getMemberCountList = async (tip: any) => {
|
||||||
let requestData: any = {
|
let requestData: any = {
|
||||||
projectSn: store.sn,
|
projectSn: store.sn,
|
||||||
personType: searchForm.value.memberType, //人员类型
|
auditType: 2,
|
||||||
enterpriseId: searchForm.value.belongCompany, //所属企业
|
date: tableParams.value.calendarVal,
|
||||||
inserviceType: searchForm.value.workState, //在职状态
|
|
||||||
idCard: searchForm.value.idCard, //身份证号
|
|
||||||
workerName: searchForm.value.name, //姓名
|
|
||||||
pageNo: tip == "search" ? 1 : pageNo.value,
|
pageNo: tip == "search" ? 1 : pageNo.value,
|
||||||
pageSize: 100
|
pageSize: 100
|
||||||
};
|
};
|
||||||
if (props.tip == "实时") {
|
const res: any = await getProgressContentApi(requestData);
|
||||||
requestData.presence = 1;
|
|
||||||
} else if (props.tip == "日累积") {
|
|
||||||
requestData.attendance = 1;
|
|
||||||
} else {
|
|
||||||
requestData.inserviceType = 1;
|
|
||||||
}
|
|
||||||
const res: any = await getMemberInfoList(requestData);
|
|
||||||
console.log("获取人员信息列表", res);
|
console.log("获取人员信息列表", res);
|
||||||
if (tip == "more") {
|
if (tip == "more") {
|
||||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||||
@ -141,11 +126,22 @@ const getMemberCountList = async (tip: any) => {
|
|||||||
pageNo.value = pageNo.value + 1;
|
pageNo.value = pageNo.value + 1;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
watch(
|
||||||
|
() => calendarVal.value,
|
||||||
|
newVal => {
|
||||||
|
// console.log(newVal, "newVal");
|
||||||
|
if (newVal) {
|
||||||
|
// props.xData = newVal;
|
||||||
|
tableParams.value.calendarVal = moment(newVal).format("YYYY-MM-DD")
|
||||||
|
getMemberCountList("search");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
dateTime.value = moment(new Date()).format("YYYY-MM")
|
||||||
|
calendarVal.value = moment(new Date()).format("YYYY-MM-DD")
|
||||||
await getDelayEventTypeFn();
|
await getDelayEventTypeFn();
|
||||||
await getMemberCountList("search");
|
await getMemberCountList("search");
|
||||||
dateTime.value = moment(new Date()).format("YYYY-MM")
|
|
||||||
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
||||||
// console.log("滚动容器", e);
|
// console.log("滚动容器", e);
|
||||||
const scrollTop = e.target.scrollTop;
|
const scrollTop = e.target.scrollTop;
|
||||||
@ -403,7 +399,7 @@ onMounted(async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.notoDta {
|
.notoDta {
|
||||||
top: 35%;
|
top: 15%;
|
||||||
width: 20%;
|
width: 20%;
|
||||||
left: 40%;
|
left: 40%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user