shenzhen-dev #2
@ -16,3 +16,37 @@ export const getEnterpriseStatusApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/statsByEnterprise`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
// 危大工程弹窗
|
||||
// 形象进度
|
||||
export const getProgressRecordApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/dangerousEngineeringProgressRecord/page`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
// 安全隐患
|
||||
export const getInspectionRecordApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/page`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
// 验收记录
|
||||
export const getEngineeringRecordApi = (params: {}) => {
|
||||
return http.get(BASEURL + `/xmgl/xzDangerousEngineeringAcceptance/page`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
// 旁站记录
|
||||
export const getSideStationApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/dangerousEngineeringSideStation/page`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
// 安全教育弹窗
|
||||
export const getSafeEducationDataApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzWorkerInfoAuditRecord/selectWorkerInfoAuditList`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
// 天气弹窗
|
||||
export const getDelayEventTypeApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzTaskProgressContent/statsDelayEventType`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
// 风险统计弹窗
|
||||
// 顶部数据
|
||||
export const getStatisticsNumDataApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNum`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
|
||||
BIN
src/assets/images/commandScreen/title-bg.png
Normal file
BIN
src/assets/images/commandScreen/title-bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@ -56,7 +56,7 @@
|
||||
<div class="classify-div-item" @click="openDialogData({index: 2, title: '安全教育'})">
|
||||
<span>安全教育 +20</span>
|
||||
</div>
|
||||
<div class="classify-div-item" @click="openDialogData({index: 3, title: '极端恶劣天气'})">
|
||||
<div class="classify-div-item" @click="openDialogData({index: 3, title: '影响进度的因素'})">
|
||||
<span>极端恶劣天气 +20</span>
|
||||
</div>
|
||||
<div class="classify-div-item" @click="openDialogData({index: 4, title: '风险统计'})">
|
||||
@ -69,6 +69,9 @@
|
||||
<span>AI警报 +20</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="background-title">
|
||||
<span @click="openDialogData({index: 9, title: '月度安全综合评分'})">查看月度安全评分报告详情</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -352,7 +355,7 @@ onMounted(async () => {
|
||||
width: 100%;
|
||||
color: white;
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
bottom: 10px;
|
||||
left: 0px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -374,6 +377,21 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
.background-title{
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
line-height: 50px;
|
||||
color: #00E2F9;
|
||||
font-size: 14px;
|
||||
bottom: -10px;
|
||||
left: 0px;
|
||||
background-image: url("@/assets/images/commandScreen/title-bg.png");
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -10,7 +10,8 @@
|
||||
<div class="tabs-one" v-if="activeIndex == 0">
|
||||
<div class="tabList">
|
||||
<div>序号</div>
|
||||
<div>当前进度</div>
|
||||
<div>危大工程名称</div>
|
||||
<div>进度描述</div>
|
||||
<div>图片</div>
|
||||
<div>记录人</div>
|
||||
<div>记录时间</div>
|
||||
@ -18,19 +19,20 @@
|
||||
<el-scrollbar class="listBox" ref="refScrollbar">
|
||||
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
|
||||
<div>{{index + 1}}</div>
|
||||
<div>{{item.workerName}}</div>
|
||||
<div>{{item.engineeringName}}</div>
|
||||
<div>{{item.progressDescribe}}</div>
|
||||
<div class="list-img">
|
||||
<el-image
|
||||
fit="contain"
|
||||
class="el-img"
|
||||
:src="BASEURL + '/image/' + item.fieldAcquisitionUrl"
|
||||
:preview-src-list="[BASEURL + '/image/' + item.fieldAcquisitionUrl]"
|
||||
:src="BASEURL + '/image/' + item.imageUrl"
|
||||
:preview-src-list="[BASEURL + '/image/' + item.imageUrl]"
|
||||
>
|
||||
</el-image>
|
||||
<!-- <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.createUserName}}</div>
|
||||
<div>{{item.createTime}}</div>
|
||||
</div>
|
||||
<div class="notoDta" v-if="partyMemberList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
@ -41,29 +43,28 @@
|
||||
<div class="tabs-two" v-if="activeIndex == 1">
|
||||
<div class="tabList">
|
||||
<div>序号</div>
|
||||
<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.workerName}}</div>
|
||||
<div class="list-img">
|
||||
<el-image
|
||||
fit="contain"
|
||||
class="el-img"
|
||||
:src="BASEURL + '/image/' + item.fieldAcquisitionUrl"
|
||||
:preview-src-list="[BASEURL + '/image/' + item.fieldAcquisitionUrl]"
|
||||
>
|
||||
</el-image>
|
||||
<!-- <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>{{item.engineeringName}}</div>
|
||||
<div>{{item.status == 2
|
||||
? '待整改'
|
||||
: item.status == 3
|
||||
? '待复查'
|
||||
: item.status == 4
|
||||
? '待核验'
|
||||
: item.status == 5
|
||||
? '合格'
|
||||
: ''}}</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="" />
|
||||
@ -74,29 +75,31 @@
|
||||
<div class="tabs-three" v-if="activeIndex == 2">
|
||||
<div class="tabList">
|
||||
<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">
|
||||
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
|
||||
<div>{{index + 1}}</div>
|
||||
<div>{{item.workerName}}</div>
|
||||
<div>{{item.phoneNumber}}</div>
|
||||
<div>{{item.engineeringName}}</div>
|
||||
<div>{{item.acceptanceDesc}}</div>
|
||||
<div>{{item.acceptanceResult == 1?'合格':'不合格'}}</div>
|
||||
<div class="list-img">
|
||||
<el-image
|
||||
fit="contain"
|
||||
class="el-img"
|
||||
:src="BASEURL + '/image/' + item.fieldAcquisitionUrl"
|
||||
:preview-src-list="[BASEURL + '/image/' + item.fieldAcquisitionUrl]"
|
||||
:src="BASEURL + '/image/' + item.photo"
|
||||
:preview-src-list="[BASEURL + '/image/' + item.photo]"
|
||||
>
|
||||
</el-image>
|
||||
<!-- <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.applyAcceptanceUserName}}</div>
|
||||
<div>{{item.createTime}}</div>
|
||||
</div>
|
||||
<div class="notoDta" v-if="partyMemberList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
@ -115,19 +118,19 @@
|
||||
<el-scrollbar class="listBox" ref="refScrollbar">
|
||||
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
|
||||
<div>{{index + 1}}</div>
|
||||
<div>{{item.workerName}}</div>
|
||||
<div>{{item.buildSituation}}</div>
|
||||
<div class="list-img">
|
||||
<el-image
|
||||
fit="contain"
|
||||
class="el-img"
|
||||
:src="BASEURL + '/image/' + item.fieldAcquisitionUrl"
|
||||
:preview-src-list="[BASEURL + '/image/' + item.fieldAcquisitionUrl]"
|
||||
:src="BASEURL + '/image/' + item.imageUrl"
|
||||
:preview-src-list="[BASEURL + '/image/' + item.imageUrl]"
|
||||
>
|
||||
</el-image>
|
||||
<!-- <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.createUserName}}</div>
|
||||
<div>{{item.createTime}}</div>
|
||||
</div>
|
||||
<div class="notoDta" v-if="partyMemberList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
@ -144,16 +147,16 @@ import { ref, onMounted } from "vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
||||
import type { TabsPaneContext } from 'element-plus'
|
||||
import { getProgressRecordApi, getInspectionRecordApi, getEngineeringRecordApi, getSideStationApi } from "@/api/modules/agjtCommandApi";
|
||||
const store = GlobalStore();
|
||||
const props = defineProps(["tip"]);
|
||||
const BASEURL = import.meta.env.VITE_API_URL;
|
||||
const activeName = ref('first')
|
||||
const activeIndex = ref('1' as any)
|
||||
const activeIndex = ref(0 as any)
|
||||
const onlineWorkList = ref([
|
||||
{ name: "在职", value: 1 },
|
||||
{ name: "离职", value: 2 }
|
||||
])
|
||||
const enterpriseListData = ref([] as any);
|
||||
const memberTypeList = ref([
|
||||
{ name: "劳务人员", value: 1 },
|
||||
{ name: "管理人员", value: 2 },
|
||||
@ -172,7 +175,7 @@ const searchForm = ref({
|
||||
idCard: ''
|
||||
});
|
||||
|
||||
const partyMemberList = ref({} as any);
|
||||
const partyMemberList = ref([] as any);
|
||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||
// console.log(tab, event)
|
||||
// console.log('tab',tab.index)
|
||||
@ -181,45 +184,50 @@ const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||
// if(activeName.value === 'second') console.log('2')
|
||||
// if(activeName.value === 'third') console.log('3')
|
||||
activeIndex.value = tab.index
|
||||
partyMemberList.value = [];
|
||||
getMemberCountList('search')
|
||||
console.log('activeIndex',activeIndex.value)
|
||||
}
|
||||
//获取企业列表
|
||||
const getCompanyList = async () => {
|
||||
let data = {
|
||||
projectSn: store.sn,
|
||||
enterpriseName: "",
|
||||
userEnterpriseId: store.userInfo?.userEnterpriseId
|
||||
};
|
||||
const res: any = await getCompanyDataList(data);
|
||||
if (res.code == 200) {
|
||||
enterpriseListData.value = res.result;
|
||||
}
|
||||
};
|
||||
//获取数据
|
||||
const getMemberCountList = async (tip:any) => {
|
||||
let requestData:any = {
|
||||
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,
|
||||
pageSize: 100
|
||||
}
|
||||
if(props.tip == '实时'){
|
||||
requestData.presence = 1;
|
||||
} else if(props.tip == '日累积') {
|
||||
requestData.attendance = 1;
|
||||
} else {
|
||||
requestData.inserviceType = 1;
|
||||
let requestFn:any;
|
||||
if(activeIndex.value == 0){
|
||||
requestFn = getProgressRecordApi;
|
||||
} else if(activeIndex.value == 1){
|
||||
requestFn = getInspectionRecordApi;
|
||||
requestData.isDangerousEngineering = 1;
|
||||
} else if(activeIndex.value == 2){
|
||||
requestFn = getEngineeringRecordApi;
|
||||
} else if(activeIndex.value == 3){
|
||||
requestFn = getSideStationApi;
|
||||
}
|
||||
const res: any = await getMemberInfoList(requestData);
|
||||
console.log("获取人员信息列表", res);
|
||||
const res: any = await requestFn(requestData);
|
||||
console.log("获取危大工程数据", res);
|
||||
if(tip == 'more'){
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
if(activeIndex.value == 0){
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
} else if(activeIndex.value == 1){
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.page.records);
|
||||
} else if(activeIndex.value == 2){
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
} else if(activeIndex.value == 3){
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
}
|
||||
} else {
|
||||
partyMemberList.value = res.result.records;
|
||||
if(activeIndex.value == 0){
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
} else if(activeIndex.value == 1){
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.page.records);
|
||||
} else if(activeIndex.value == 2){
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
} else if(activeIndex.value == 3){
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
}
|
||||
}
|
||||
// 为图片拼接IP
|
||||
// partyMemberList.value.map((item:any) => {
|
||||
@ -233,7 +241,6 @@ const getMemberCountList = async (tip:any) => {
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
await getCompanyList();
|
||||
await getMemberCountList('search');
|
||||
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
||||
// console.log("滚动容器", e);
|
||||
@ -286,7 +293,7 @@ onMounted(async () => {
|
||||
margin-top: 2%;
|
||||
div {
|
||||
text-align: center;
|
||||
width: 20%;
|
||||
width: 17%;
|
||||
}
|
||||
}
|
||||
.listBox {
|
||||
@ -311,7 +318,7 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
div {
|
||||
width: 20%;
|
||||
width: 17%;
|
||||
white-space: nowrap; //单行
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@ -451,7 +458,7 @@ onMounted(async () => {
|
||||
margin-top: 2%;
|
||||
div {
|
||||
text-align: center;
|
||||
width: 17%;
|
||||
width: 20%;
|
||||
}
|
||||
}
|
||||
.listBox {
|
||||
@ -476,7 +483,7 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
div {
|
||||
width: 17%;
|
||||
width: 20%;
|
||||
white-space: nowrap; //单行
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
@ -31,27 +31,41 @@
|
||||
<div>
|
||||
<span>{{ index3 + 1 }}</span>
|
||||
</div>
|
||||
<div>{{ item.scoreCriteria }}</div>
|
||||
<div>123</div>
|
||||
<div>
|
||||
<span>{{ item.standardScore }}</span>
|
||||
</div>
|
||||
<div>0</div>
|
||||
<div>
|
||||
<!-- <el-input placeholder="请输入" v-model="item.punish" class="form-element-input" /> -->
|
||||
0
|
||||
<span>123</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="category-title">
|
||||
<span>{{ key2 }}</span>
|
||||
</div>
|
||||
<div class="category-title">
|
||||
<span>{{ key2 }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-head-nine-part2">
|
||||
<div><span>小计</span></div>
|
||||
<div>
|
||||
<span>0</span>
|
||||
<div class="category-title">
|
||||
<span>AI报警</span>
|
||||
</div>
|
||||
<div>
|
||||
<span>0</span>
|
||||
<div class="category-title">
|
||||
<span>AI违章抓拍</span>
|
||||
</div>
|
||||
<div class="category-title">
|
||||
<span>告警数量月度环比对比</span>
|
||||
</div>
|
||||
<div class="category-title">
|
||||
<span>123</span>
|
||||
</div>
|
||||
<div class="category-title">
|
||||
<span>123</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-head-nine-part3">
|
||||
<div><span>综合得分</span></div>
|
||||
<div>
|
||||
<span>89</span>
|
||||
</div>
|
||||
<div></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
|
||||
@ -367,78 +381,36 @@ onMounted(async () => {
|
||||
.table-head-nine-part1 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
// background-color: #fff;
|
||||
text-align: center;
|
||||
color: white;
|
||||
font-size: 20px;
|
||||
border-bottom: 1px solid #086d93;
|
||||
font-size: 14px;
|
||||
.category-title {
|
||||
width: calc(17% - 2px);
|
||||
width: 17%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
// overflow-wrap: anywhere;
|
||||
border-right: 2px solid #086d93;
|
||||
// text-align: left !important;
|
||||
}
|
||||
.category-content {
|
||||
width: calc(85% - 8px);
|
||||
width: 49%;
|
||||
> div {
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
display: flex;
|
||||
> div:nth-child(1) {
|
||||
width: 6%;
|
||||
>div{
|
||||
width: 33.3%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
> div:nth-child(2) {
|
||||
width: 54%;
|
||||
overflow-wrap: anywhere;
|
||||
text-align: left !important;
|
||||
}
|
||||
> div:nth-child(3) {
|
||||
width: 13%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
> div:nth-child(4) {
|
||||
width: 13%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
> div:nth-child(5) {
|
||||
width: calc(14% - 2px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
div:not(:last-child) {
|
||||
border-right: 2px solid #086d93;
|
||||
}
|
||||
}
|
||||
> div:not(:last-child) {
|
||||
> div:nth-child(1) {
|
||||
border-bottom: 1px solid #086d93;
|
||||
}
|
||||
> div:nth-child(2) {
|
||||
border-bottom: 1px solid #086d93;
|
||||
}
|
||||
> div:nth-child(3) {
|
||||
border-bottom: 1px solid #086d93;
|
||||
}
|
||||
> div:nth-child(4) {
|
||||
border-bottom: 1px solid #086d93;
|
||||
}
|
||||
> div:nth-child(5) {
|
||||
border-bottom: 1px solid #086d93;
|
||||
>div:nth-child(2){
|
||||
text-align: left;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -448,10 +420,55 @@ onMounted(async () => {
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
color: white;
|
||||
font-size: 20px;
|
||||
border-bottom: 1px solid #086d93;
|
||||
font-size: 14px;
|
||||
>div{
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
> div:nth-child(1) {
|
||||
width: 68%;
|
||||
width: 17%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: nowrap;
|
||||
}
|
||||
> div:nth-child(2) {
|
||||
width: 17%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: nowrap;
|
||||
}
|
||||
> div:nth-child(3) {
|
||||
width: 34%;
|
||||
text-align: left;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: nowrap;
|
||||
}
|
||||
> div:nth-child(4) {
|
||||
width: 17%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: nowrap;
|
||||
}
|
||||
> div:nth-child(5) {
|
||||
width: 17%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
.table-head-nine-part3 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
color: white;
|
||||
font-size: 14px;
|
||||
>div{
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
> div:nth-child(1) {
|
||||
width: 17%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: nowrap;
|
||||
@ -460,31 +477,10 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
> div:nth-child(2) {
|
||||
width: 11%;
|
||||
width: 49%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: nowrap;
|
||||
> span:not(:first-child) {
|
||||
border-top: 1px solid #086d93;
|
||||
}
|
||||
}
|
||||
> div:nth-child(3) {
|
||||
width: 11%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: nowrap;
|
||||
> span:not(:first-child) {
|
||||
border-top: 1px solid #086d93;
|
||||
}
|
||||
}
|
||||
> div:nth-child(4) {
|
||||
width: calc(12% - 4px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
white-space: nowrap;
|
||||
}
|
||||
div:not(:last-child) {
|
||||
border-right: 2px solid #086d93;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,70 +2,65 @@
|
||||
<div class="political-outlook">
|
||||
<div class="content">
|
||||
<div class="top-count">
|
||||
<div class="rightHeader">
|
||||
<!-- <div class="rightHeader">
|
||||
<div class="day Selected" @click="changeSelect(1)" :class="checked == 1 ? 'active' : ''"><span>在施</span></div>
|
||||
<div class="year Selected" @click="changeSelect(2)" :class="checked == 2 ? 'active' : ''"><span>当月</span></div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="risk-count-all">
|
||||
<div class="all-sum">
|
||||
<span>5</span>
|
||||
<span>{{ statisticsData.totalNum || 0 }}</span>
|
||||
<span>个</span>
|
||||
</div>
|
||||
<span>风险总数</span>
|
||||
</div>
|
||||
<div class="risk-classify">
|
||||
<div class="classify-item classify-one">
|
||||
<span>2</span>
|
||||
<span>{{ statisticsData.greatFaultLevelNum || 0 }}</span>
|
||||
<span>重大风险</span>
|
||||
</div>
|
||||
<div class="classify-item classify-two">
|
||||
<span>2</span>
|
||||
<span>{{ statisticsData.largerRiskNum || 0 }}</span>
|
||||
<span>较大风险</span>
|
||||
</div>
|
||||
<div class="classify-item classify-three">
|
||||
<span>2</span>
|
||||
<span>{{ statisticsData.generalRiskNum || 0 }}</span>
|
||||
<span>一般风险</span>
|
||||
</div>
|
||||
<div class="classify-item classify-four">
|
||||
<span>2</span>
|
||||
<span>{{ statisticsData.lowRiskNum || 0 }}</span>
|
||||
<span>低风险</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="radio-content">
|
||||
<!-- <div class="radio-content">
|
||||
<el-radio-group
|
||||
v-model="riskType"
|
||||
>
|
||||
<el-radio :label="1">动态风险</el-radio>
|
||||
<el-radio :label="2">静态风险</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="table-one">
|
||||
<div class="tabList">
|
||||
<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">
|
||||
<div v-for="(item, index) in partyMemberList" class="listStyle" :key="item.id">
|
||||
<div>{{ index + 1 }}</div>
|
||||
<div>{{ item.workerName }}</div>
|
||||
<div class="list-img">
|
||||
<el-image
|
||||
fit="contain"
|
||||
class="el-img"
|
||||
:src="BASEURL + '/image/' + item.fieldAcquisitionUrl"
|
||||
:preview-src-list="[BASEURL + '/image/' + item.fieldAcquisitionUrl]"
|
||||
>
|
||||
</el-image>
|
||||
<!-- <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>{{ item.problemDescription }}</div>
|
||||
<div>{{ item.remark }}</div>
|
||||
<div>{{ item.level == 1
|
||||
? "一级"
|
||||
: item.level == 2
|
||||
? "二级"
|
||||
: item.level == 3
|
||||
? "三级"
|
||||
: "四级" }}</div>
|
||||
<div>{{ item.inspectTime }}</div>
|
||||
</div>
|
||||
<div class="notoDta" v-if="partyMemberList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
@ -81,28 +76,15 @@
|
||||
import { ref, onMounted } from "vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
||||
import type { TabsPaneContext } from "element-plus";
|
||||
import { getStatisticsNumDataApi, getInspectionRecordApi } from "@/api/modules/agjtCommandApi";
|
||||
const store = GlobalStore();
|
||||
const props = defineProps(["tip"]);
|
||||
const BASEURL = import.meta.env.VITE_API_URL;
|
||||
const riskType = ref(1);
|
||||
const activeName = ref("first");
|
||||
const activeIndex = ref("1" as any);
|
||||
const onlineWorkList = ref([
|
||||
{ name: "在职", value: 1 },
|
||||
{ name: "离职", value: 2 }
|
||||
]);
|
||||
const enterpriseListData = ref([] as any);
|
||||
const memberTypeList = ref([
|
||||
{ name: "劳务人员", value: 1 },
|
||||
{ name: "管理人员", value: 2 },
|
||||
{ name: "临时人员", value: 3 }
|
||||
]);
|
||||
const alarmTypeList = ref(["报警", "预警"]);
|
||||
let pageNo = ref(1 as any);
|
||||
let moreScroll = ref(true as any);
|
||||
const refScrollbar = ref(null as any); // 绑定到滚动的盒子上
|
||||
const deviceList = ref([] as any); // 设备列表
|
||||
const searchForm = ref({
|
||||
memberType: "",
|
||||
belongCompany: "",
|
||||
@ -112,18 +94,20 @@ const searchForm = ref({
|
||||
});
|
||||
const checked = ref(1);
|
||||
const partyMemberList = ref({} as any);
|
||||
const statisticsData = ref({} as any)
|
||||
const changeSelect = (index: any) => {
|
||||
checked.value = index;
|
||||
};
|
||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||
// console.log(tab, event)
|
||||
// console.log('tab',tab.index)
|
||||
// console.log('activeName',activeName.value)
|
||||
// if(activeName.value === 'first') console.log('1')
|
||||
// if(activeName.value === 'second') console.log('2')
|
||||
// if(activeName.value === 'third') console.log('3')
|
||||
activeIndex.value = tab.index;
|
||||
console.log("activeIndex", activeIndex.value);
|
||||
// 获取顶部统计数据
|
||||
const getStatisticsNumDataFn = async () => {
|
||||
let data = {
|
||||
projectSn: store.sn
|
||||
};
|
||||
const res: any = await getStatisticsNumDataApi(data);
|
||||
if (res.code == 200) {
|
||||
console.log('风险统计顶部统计数据', res)
|
||||
statisticsData.value = res.result;
|
||||
}
|
||||
};
|
||||
//获取企业列表
|
||||
const getCompanyList = async () => {
|
||||
@ -141,27 +125,16 @@ const getCompanyList = async () => {
|
||||
const getMemberCountList = async (tip: any) => {
|
||||
let requestData: any = {
|
||||
projectSn: store.sn,
|
||||
personType: searchForm.value.memberType, //人员类型
|
||||
enterpriseId: searchForm.value.belongCompany, //所属企业
|
||||
inserviceType: searchForm.value.workState, //在职状态
|
||||
idCard: searchForm.value.idCard, //身份证号
|
||||
workerName: searchForm.value.name, //姓名
|
||||
recordType: 1,
|
||||
pageNo: tip == "search" ? 1 : pageNo.value,
|
||||
pageSize: 100
|
||||
};
|
||||
if (props.tip == "实时") {
|
||||
requestData.presence = 1;
|
||||
} else if (props.tip == "日累积") {
|
||||
requestData.attendance = 1;
|
||||
} else {
|
||||
requestData.inserviceType = 1;
|
||||
}
|
||||
const res: any = await getMemberInfoList(requestData);
|
||||
console.log("获取人员信息列表", res);
|
||||
const res: any = await getInspectionRecordApi(requestData);
|
||||
console.log("获取风险统计列表", res);
|
||||
if (tip == "more") {
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.page.records);
|
||||
} else {
|
||||
partyMemberList.value = res.result.records;
|
||||
partyMemberList.value = res.result.page.records;
|
||||
}
|
||||
// 为图片拼接IP
|
||||
// partyMemberList.value.map((item:any) => {
|
||||
@ -177,6 +150,7 @@ const getMemberCountList = async (tip: any) => {
|
||||
onMounted(async () => {
|
||||
await getCompanyList();
|
||||
await getMemberCountList("search");
|
||||
await getStatisticsNumDataFn();
|
||||
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
||||
// console.log("滚动容器", e);
|
||||
const scrollTop = e.target.scrollTop;
|
||||
@ -275,7 +249,7 @@ onMounted(async () => {
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
color: white;
|
||||
margin: 0 auto;
|
||||
margin-top: 1.5%;
|
||||
margin-top: 3%;
|
||||
.classify-item {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="political-outlook">
|
||||
<div class="content">
|
||||
<div class="top-statistics">
|
||||
<!-- <div class="top-statistics">
|
||||
<div class="statistics-item">
|
||||
<span class="title">三级入场教育</span>
|
||||
<span class="statistics-item-content">总数:1</span>
|
||||
@ -44,20 +44,27 @@
|
||||
<span class="statistics-item-content">已完成:1</span>
|
||||
<span class="statistics-item-content">100%</span>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="table-one">
|
||||
<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>
|
||||
<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.workerName}}</div>
|
||||
<div>{{ index + 1 }}</div>
|
||||
<div>{{ item.workerName }}</div>
|
||||
<div>{{ item.sex == 1 ? "男" : "女" }}</div>
|
||||
<div>{{ item.nation }}</div>
|
||||
<div class="list-img">
|
||||
<el-image
|
||||
fit="contain"
|
||||
@ -68,9 +75,12 @@
|
||||
</el-image>
|
||||
<!-- <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>{{ item.enterpriseName }}</div>
|
||||
<div>{{ item.personType == 1 ? item.teamName : item.departmentName }}</div>
|
||||
<div>{{ item.idCard }}</div>
|
||||
<div>{{ item.phoneNumber }}</div>
|
||||
<div>{{ item.educationTime }}</div>
|
||||
<div>{{ item.isExamPass == -1 ? "未培训" : item.isExamPass == 1 ? "合格" : "不合格" }}</div>
|
||||
</div>
|
||||
<div class="notoDta" v-if="partyMemberList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
@ -85,81 +95,32 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref, onMounted } from "vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
||||
import type { TabsPaneContext } from 'element-plus'
|
||||
import { getSafeEducationDataApi } from "@/api/modules/agjtCommandApi";
|
||||
const store = GlobalStore();
|
||||
const props = defineProps(["tip"]);
|
||||
const BASEURL = import.meta.env.VITE_API_URL;
|
||||
const activeName = ref('first')
|
||||
const activeIndex = ref('1' as any)
|
||||
const onlineWorkList = ref([
|
||||
{ name: "在职", value: 1 },
|
||||
{ name: "离职", value: 2 }
|
||||
])
|
||||
const enterpriseListData = ref([] as any);
|
||||
const memberTypeList = ref([
|
||||
{ name: "劳务人员", value: 1 },
|
||||
{ name: "管理人员", value: 2 },
|
||||
{ name: "临时人员", value: 3 }
|
||||
]);
|
||||
const alarmTypeList = ref(["报警", "预警"]);
|
||||
let pageNo = ref(1 as any);
|
||||
let moreScroll = ref(true as any);
|
||||
const refScrollbar = ref(null as any); // 绑定到滚动的盒子上
|
||||
const deviceList = ref([] as any); // 设备列表
|
||||
const searchForm = ref({
|
||||
memberType: '',
|
||||
belongCompany: '',
|
||||
workState: '',
|
||||
name: '',
|
||||
idCard: ''
|
||||
});
|
||||
|
||||
const partyMemberList = ref({} as any);
|
||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||
// console.log(tab, event)
|
||||
// console.log('tab',tab.index)
|
||||
// console.log('activeName',activeName.value)
|
||||
// if(activeName.value === 'first') console.log('1')
|
||||
// if(activeName.value === 'second') console.log('2')
|
||||
// if(activeName.value === 'third') console.log('3')
|
||||
activeIndex.value = tab.index
|
||||
console.log('activeIndex',activeIndex.value)
|
||||
}
|
||||
//获取企业列表
|
||||
const getCompanyList = async () => {
|
||||
let data = {
|
||||
projectSn: store.sn,
|
||||
enterpriseName: "",
|
||||
userEnterpriseId: store.userInfo?.userEnterpriseId
|
||||
};
|
||||
const res: any = await getCompanyDataList(data);
|
||||
if (res.code == 200) {
|
||||
enterpriseListData.value = res.result;
|
||||
}
|
||||
};
|
||||
//获取数据
|
||||
const getMemberCountList = async (tip:any) => {
|
||||
let requestData:any = {
|
||||
const getMemberCountList = async (tip: any) => {
|
||||
let requestData: any = {
|
||||
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
|
||||
}
|
||||
if(props.tip == '实时'){
|
||||
};
|
||||
if (props.tip == "实时") {
|
||||
requestData.presence = 1;
|
||||
} else if(props.tip == '日累积') {
|
||||
} else if (props.tip == "日累积") {
|
||||
requestData.attendance = 1;
|
||||
} else {
|
||||
requestData.inserviceType = 1;
|
||||
}
|
||||
const res: any = await getMemberInfoList(requestData);
|
||||
console.log("获取人员信息列表", res);
|
||||
if(tip == 'more'){
|
||||
const res: any = await getSafeEducationDataApi(requestData);
|
||||
console.log("获取安全教育", res);
|
||||
if (tip == "more") {
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
} else {
|
||||
partyMemberList.value = res.result.records;
|
||||
@ -176,8 +137,7 @@ const getMemberCountList = async (tip:any) => {
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
await getCompanyList();
|
||||
await getMemberCountList('search');
|
||||
await getMemberCountList("search");
|
||||
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
||||
// console.log("滚动容器", e);
|
||||
const scrollTop = e.target.scrollTop;
|
||||
@ -210,13 +170,13 @@ onMounted(async () => {
|
||||
// background: url("@/assets/images/cardImg.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
padding: 20px 15px;
|
||||
.top-statistics{
|
||||
.top-statistics {
|
||||
display: grid;
|
||||
grid-gap: 20px;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
color: white;
|
||||
margin: 0 5%;
|
||||
.statistics-item{
|
||||
.statistics-item {
|
||||
width: 240px;
|
||||
height: 95px;
|
||||
display: flex;
|
||||
@ -224,50 +184,50 @@ onMounted(async () => {
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
.title{
|
||||
.title {
|
||||
position: absolute;
|
||||
top: 4%;
|
||||
left: 4%;
|
||||
}
|
||||
&-content{
|
||||
&-content {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
height: auto;
|
||||
text-indent: 1.5em;
|
||||
}
|
||||
&-content:nth-child(2){
|
||||
&-content:nth-child(2) {
|
||||
margin-top: 8%;
|
||||
}
|
||||
&-content:nth-child(3){
|
||||
&-content:nth-child(3) {
|
||||
margin-top: 8%;
|
||||
}
|
||||
}
|
||||
.statistics-item:nth-child(1){
|
||||
.statistics-item:nth-child(1) {
|
||||
background: url("@/assets/images/commandScreen/bg6.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.statistics-item:nth-child(2){
|
||||
.statistics-item:nth-child(2) {
|
||||
background: url("@/assets/images/commandScreen/bg2.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.statistics-item:nth-child(3){
|
||||
.statistics-item:nth-child(3) {
|
||||
background: url("@/assets/images/commandScreen/bg4.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.statistics-item:nth-child(4){
|
||||
.statistics-item:nth-child(4) {
|
||||
background: url("@/assets/images/commandScreen/bg1.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.statistics-item:nth-child(5){
|
||||
.statistics-item:nth-child(5) {
|
||||
background: url("@/assets/images/commandScreen/bg3.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.statistics-item:nth-child(6){
|
||||
.statistics-item:nth-child(6) {
|
||||
background: url("@/assets/images/commandScreen/bg5.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
.table-one{
|
||||
.table-one {
|
||||
height: 68%;
|
||||
.tabList {
|
||||
display: flex;
|
||||
@ -285,7 +245,7 @@ onMounted(async () => {
|
||||
margin-top: 2%;
|
||||
div {
|
||||
text-align: center;
|
||||
width: 20%;
|
||||
width: 10%;
|
||||
}
|
||||
}
|
||||
.listBox {
|
||||
@ -310,7 +270,7 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
div {
|
||||
width: 20%;
|
||||
width: 10%;
|
||||
white-space: nowrap; //单行
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@ -321,12 +281,12 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
:deep(){
|
||||
.el-tabs__item{
|
||||
:deep() {
|
||||
.el-tabs__item {
|
||||
color: white;
|
||||
}
|
||||
.el-tabs__item.is-active{
|
||||
color: var(--el-color-primary)
|
||||
.el-tabs__item.is-active {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,13 +3,13 @@
|
||||
<div class="content">
|
||||
<div class="top-data-show">
|
||||
<div class="top-left">
|
||||
<el-date-picker v-model="dateTime" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" :clearable="true" />
|
||||
<el-date-picker v-model="dateTime" type="month" placeholder="请选择日期" value-format="YYYY-MM" :clearable="false"/>
|
||||
<el-calendar v-model="calendarVal" style="width: 95%; margin-top: 15px" />
|
||||
</div>
|
||||
<div class="top-right">
|
||||
<div class="right-title-data">
|
||||
<div>
|
||||
<span>1.00</span>
|
||||
<span>{{ topStatisticData.count }}</span>
|
||||
<span>天</span>
|
||||
</div>
|
||||
<span>本月影响天数</span>
|
||||
@ -17,18 +17,18 @@
|
||||
<div class="right-inspect-data">
|
||||
<div class="inspect-data-item">
|
||||
<div class="inspect-style inspect-one"></div>
|
||||
<span>多因素影响</span>
|
||||
<span>0.50</span>
|
||||
<span>人为因素</span>
|
||||
<span>{{ topStatisticData.data?topStatisticData.data[0].count:0 }}</span>
|
||||
</div>
|
||||
<div class="inspect-data-item">
|
||||
<div class="inspect-style inspect-two"></div>
|
||||
<span>雷电</span>
|
||||
<span>0.50</span>
|
||||
<span>环境因素</span>
|
||||
<span>{{ topStatisticData.data?topStatisticData.data[1].count:0 }}</span>
|
||||
</div>
|
||||
<div class="inspect-data-item">
|
||||
<div class="inspect-style inspect-three"></div>
|
||||
<span>大风</span>
|
||||
<span>0.50</span>
|
||||
<span>不可抗力因素</span>
|
||||
<span>{{ topStatisticData.data?topStatisticData.data[2].count:0 }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -73,26 +73,14 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref, onMounted } from "vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
||||
import type { TabsPaneContext } from "element-plus";
|
||||
import { getMemberInfoList } from "@/api/modules/labor";
|
||||
import { getDelayEventTypeApi } from "@/api/modules/agjtCommandApi";
|
||||
import moment from "moment";
|
||||
const store = GlobalStore();
|
||||
const props = defineProps(["tip"]);
|
||||
const BASEURL = import.meta.env.VITE_API_URL;
|
||||
const dateTime = ref(null);
|
||||
const calendarVal = ref(new Date());
|
||||
const activeName = ref("first");
|
||||
const activeIndex = ref("1" as any);
|
||||
const onlineWorkList = ref([
|
||||
{ name: "在职", value: 1 },
|
||||
{ name: "离职", value: 2 }
|
||||
]);
|
||||
const enterpriseListData = ref([] as any);
|
||||
const memberTypeList = ref([
|
||||
{ name: "劳务人员", value: 1 },
|
||||
{ name: "管理人员", value: 2 },
|
||||
{ name: "临时人员", value: 3 }
|
||||
]);
|
||||
const alarmTypeList = ref(["报警", "预警"]);
|
||||
const dateTime:any = ref(null);
|
||||
const calendarVal:any = ref(new Date());
|
||||
let pageNo = ref(1 as any);
|
||||
let moreScroll = ref(true as any);
|
||||
const refScrollbar = ref(null as any); // 绑定到滚动的盒子上
|
||||
@ -106,27 +94,16 @@ const searchForm = ref({
|
||||
});
|
||||
|
||||
const partyMemberList = ref({} as any);
|
||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||
// console.log(tab, event)
|
||||
// console.log('tab',tab.index)
|
||||
// console.log('activeName',activeName.value)
|
||||
// if(activeName.value === 'first') console.log('1')
|
||||
// if(activeName.value === 'second') console.log('2')
|
||||
// if(activeName.value === 'third') console.log('3')
|
||||
activeIndex.value = tab.index;
|
||||
console.log("activeIndex", activeIndex.value);
|
||||
};
|
||||
//获取企业列表
|
||||
const getCompanyList = async () => {
|
||||
let data = {
|
||||
const topStatisticData = ref({} as any)
|
||||
// 获取顶部数据
|
||||
const getDelayEventTypeFn = async () => {
|
||||
let requestData: any = {
|
||||
projectSn: store.sn,
|
||||
enterpriseName: "",
|
||||
userEnterpriseId: store.userInfo?.userEnterpriseId
|
||||
auditType: 2
|
||||
};
|
||||
const res: any = await getCompanyDataList(data);
|
||||
if (res.code == 200) {
|
||||
enterpriseListData.value = res.result;
|
||||
}
|
||||
const res: any = await getDelayEventTypeApi(requestData);
|
||||
console.log("获取天气顶部统计数据", res);
|
||||
topStatisticData.value = res.result;
|
||||
};
|
||||
//获取数据
|
||||
const getMemberCountList = async (tip: any) => {
|
||||
@ -166,8 +143,9 @@ const getMemberCountList = async (tip: any) => {
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
await getCompanyList();
|
||||
await getDelayEventTypeFn();
|
||||
await getMemberCountList("search");
|
||||
dateTime.value = moment(new Date()).format("YYYY-MM")
|
||||
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
||||
// console.log("滚动容器", e);
|
||||
const scrollTop = e.target.scrollTop;
|
||||
@ -289,7 +267,7 @@ onMounted(async () => {
|
||||
color: white;
|
||||
background-color: #143a85;
|
||||
}
|
||||
.el-calendar-table td.is-today {
|
||||
.el-calendar-table td.is-today,.el-calendar-table td.is-selected {
|
||||
color: white;
|
||||
background-color: #143a85;
|
||||
}
|
||||
@ -297,7 +275,7 @@ onMounted(async () => {
|
||||
.el-calendar-table__row {
|
||||
.prev,
|
||||
.current,
|
||||
.next {
|
||||
.next{
|
||||
border-color: #35538c;
|
||||
color: white;
|
||||
.el-calendar-day {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user