中水北方需求
This commit is contained in:
parent
0eacffa460
commit
47db9192bd
@ -4,9 +4,9 @@ NODE_ENV = 'development'
|
||||
# 本地环境接口地址(/api/index.ts文件中使用)
|
||||
# 后端本地
|
||||
# VITE_API_URL = 'http://192.168.34.155:28890' #彭杰鞍钢本地
|
||||
VITE_API_URL = 'http://192.168.34.155:19111'
|
||||
# VITE_API_URL = 'http://192.168.34.155:19111'
|
||||
# VITE_API_URL = 'http://192.168.34.221:9111' #雄哥本地
|
||||
# VITE_API_URL = 'http://192.168.34.221:19112' #雄哥本地
|
||||
VITE_API_URL = 'http://192.168.34.221:19112' #雄哥本地
|
||||
# VITE_API_URL = 'http://192.168.34.221:28890' #雄哥本地
|
||||
# VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程
|
||||
# VITE_API_URL = 'http://192.168.34.221:28889'
|
||||
|
||||
@ -68,3 +68,13 @@ export const getComapnyWorkTotalListApi = (params: {}) => {
|
||||
export const getUfaceDevListApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/ufaceDev/list`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
// 获取闸机分组列表
|
||||
export const getUfaceDevGroupListApi = (params: {}) => {
|
||||
return http.get(BASEURL + `/xmgl/ufaceDevGroup/list`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
// 获取人员分布
|
||||
export const getPresentByRegionApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/workerAttendance/getPresentByRegion`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
BIN
src/assets/images/larborManagement/xd-bg.png
Normal file
BIN
src/assets/images/larborManagement/xd-bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
BIN
src/assets/images/larborManagement/xd-ic.png
Normal file
BIN
src/assets/images/larborManagement/xd-ic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 263 B |
@ -85,14 +85,15 @@
|
||||
:index="item.modulePath"
|
||||
:class="{
|
||||
subMenu: true,
|
||||
active: activeTab === item.modulePath,
|
||||
zsbf: COMPANY === 'zsbf'
|
||||
active: activeTab === item.modulePath
|
||||
}"
|
||||
>
|
||||
<!-- zsbf: COMPANY === 'zsbf' -->
|
||||
<span @click="navigateTo(item, 1)">{{ item.moduleName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div :class="{ subMenuList: true, zsbf: COMPANY === 'zsbf' }" v-if="itemList != null && itemList.length >= 1">
|
||||
<div :class="{ subMenuList: true }" v-if="itemList != null && itemList.length >= 1">
|
||||
<!-- , zsbf: COMPANY === 'zsbf' -->
|
||||
<el-scrollbar class="scrollItem">
|
||||
<div class="subMenuItem">
|
||||
<div
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="political-outlook" v-if="postData.type == 1">
|
||||
<memberCountList ref="historyAlarmList" :tip="postData.tip"></memberCountList>
|
||||
<memberCountList ref="historyAlarmList" :tip="postData.tip" :regionIdForUface="postData.regionIdForUface"></memberCountList>
|
||||
</div>
|
||||
<div class="political-outlook" v-if="postData.type == 2">
|
||||
<MemberAllShow ref="memberAllShow" :tip="postData.tip"></MemberAllShow>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<div class="LeftTopBox">
|
||||
<div class="leftData">
|
||||
<template v-if="COMPANY !== 'zsbf'">
|
||||
<div class="numberPeople" @click="openDialogData('实时')">
|
||||
<div class="text">
|
||||
<i>实时人数</i>
|
||||
@ -15,12 +16,73 @@
|
||||
<i>{{ attendancePerson }}</i>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<div class="numberPeople" @click="openDialogData('总')">
|
||||
<div class="text"><i>总人数</i></div>
|
||||
<div class="num">
|
||||
<i>{{ toaltPerson }}</i>
|
||||
</div>
|
||||
</div>
|
||||
<template v-if="COMPANY === 'zsbf'">
|
||||
<el-scrollbar style="height: 60%">
|
||||
<div
|
||||
class="sd-item"
|
||||
:class="index == 0 ? 'mt' : ''"
|
||||
@click="openDialogData('实时', item.id)"
|
||||
v-for="(item, index) in regionList"
|
||||
:key="item.id"
|
||||
>
|
||||
<div class="sd-item-top">
|
||||
<img src="@/assets/images/larborManagement/xd-ic.png" alt="" />
|
||||
<span>{{ item.regionName }}</span>
|
||||
</div>
|
||||
<div class="sd-item-bottom">
|
||||
<span class="title">洞内实时人数:</span>
|
||||
<span class="num">{{ item.present }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="sd-item mt" @click="openDialogData('实时')">
|
||||
<div class="sd-item-top">
|
||||
<img src="@/assets/images/larborManagement/xd-ic.png" alt="" />
|
||||
<span>拉林隧道进口</span>
|
||||
</div>
|
||||
<div class="sd-item-bottom">
|
||||
<span class="title">洞内实时人数:</span>
|
||||
<span class="num">100</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sd-item" @click="openDialogData('实时')">
|
||||
<div class="sd-item-top">
|
||||
<img src="@/assets/images/larborManagement/xd-ic.png" alt="" />
|
||||
<span>拉林隧洞出口</span>
|
||||
</div>
|
||||
<div class="sd-item-bottom">
|
||||
<span class="title">洞内实时人数:</span>
|
||||
<span class="num">100</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sd-item" @click="openDialogData('实时')">
|
||||
<div class="sd-item-top">
|
||||
<img src="@/assets/images/larborManagement/xd-ic.png" alt="" />
|
||||
<span>纳金隧洞进口</span>
|
||||
</div>
|
||||
<div class="sd-item-bottom">
|
||||
<span class="title">洞内实时人数:</span>
|
||||
<span class="num">100</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sd-item" @click="openDialogData('实时')">
|
||||
<div class="sd-item-top">
|
||||
<img src="@/assets/images/larborManagement/xd-ic.png" alt="" />
|
||||
<span>纳金隧洞出口</span>
|
||||
</div>
|
||||
<div class="sd-item-bottom">
|
||||
<span class="title">洞内实时人数:</span>
|
||||
<span class="num">100</span>
|
||||
</div>
|
||||
</div> -->
|
||||
</el-scrollbar>
|
||||
</template>
|
||||
</div>
|
||||
<div class="rightEcharts">
|
||||
<!-- 今日作业人员趋势 -->
|
||||
@ -75,6 +137,17 @@
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<el-select
|
||||
v-model="searchForm.groupId"
|
||||
placeholder="请选择闸机分组"
|
||||
size="small"
|
||||
clearable
|
||||
@change="handleChangeUfaceDevGroup"
|
||||
>
|
||||
<el-option v-for="item in ufaceDevGroupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<el-select v-model="searchForm.devSn" placeholder="请选择闸机" size="small" clearable>
|
||||
<el-option v-for="item in ufaceDevList" :key="item.devSn" :label="item.devName" :value="item.devSn"></el-option>
|
||||
@ -192,7 +265,7 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import Card from "@/components/card.vue";
|
||||
|
||||
import { COMPANY } from "@/config/config";
|
||||
import * as echarts from "echarts";
|
||||
import { onMounted, reactive, ref, nextTick } from "vue";
|
||||
import noDataImage from "@/assets/images/vehicleManagement/car.png";
|
||||
@ -203,7 +276,9 @@ import {
|
||||
getDepartDataList,
|
||||
getTeamDataList,
|
||||
getCompanyDataList,
|
||||
getUfaceDevListApi
|
||||
getUfaceDevListApi,
|
||||
getUfaceDevGroupListApi,
|
||||
getPresentByRegionApi
|
||||
} from "@/api/modules/labor";
|
||||
import { GlobalStore } from "@/stores";
|
||||
const BASEURL = import.meta.env.VITE_API_URL;
|
||||
@ -229,6 +304,9 @@ const searchForm = reactive({
|
||||
});
|
||||
const rangeTime = ref([]);
|
||||
const ufaceDevList = ref([]);
|
||||
const allUfaceDevList = ref([]);
|
||||
const ufaceDevGroupList = ref([]);
|
||||
const regionList = ref([]);
|
||||
|
||||
let xData = ref([]);
|
||||
let yData = ref([]);
|
||||
@ -412,17 +490,48 @@ const option = reactive({
|
||||
});
|
||||
|
||||
// 打开弹窗
|
||||
const openDialogData = (tip: any) => {
|
||||
emits("openDialog", { type: 1, tip });
|
||||
const openDialogData = (tip: any, regionIdForUface = "") => {
|
||||
emits("openDialog", { type: 1, tip, regionIdForUface });
|
||||
};
|
||||
const openDialogHistoryData = (tip: any) => {
|
||||
emits("openDialog", { type: 2, tip });
|
||||
};
|
||||
|
||||
// 获取区域人员分布
|
||||
const getPresentByRegion = async () => {
|
||||
const res = await getPresentByRegionApi({ projectSn: store.sn });
|
||||
if (res.code == 200) {
|
||||
regionList.value = res.result || [];
|
||||
}
|
||||
console.log("人员分布", res);
|
||||
};
|
||||
|
||||
// 获取闸机分组列表
|
||||
const getUfaceDevGroupList = async () => {
|
||||
const res = await getUfaceDevGroupListApi({ projectSn: store.sn });
|
||||
if (res.code == 200) {
|
||||
console.log("闸机分组列表", res);
|
||||
ufaceDevGroupList.value = res.result;
|
||||
}
|
||||
};
|
||||
|
||||
// 获取闸机分组列表
|
||||
const handleChangeUfaceDevGroup = () => {
|
||||
searchForm.devSn = "";
|
||||
const list = ufaceDevGroupList.value.find(item => item.id == searchForm.groupId)?.ufaceDevList;
|
||||
console.log("list", list);
|
||||
ufaceDevList.value = list || [];
|
||||
if (searchForm.groupId == "") {
|
||||
ufaceDevList.value = allUfaceDevList.value;
|
||||
}
|
||||
// getUfaceDevList();
|
||||
};
|
||||
|
||||
// 获取闸机列表
|
||||
const getUfaceDevList = async () => {
|
||||
const res = await getUfaceDevListApi({ projectSn: store.sn });
|
||||
if (res.code == 200) {
|
||||
allUfaceDevList.value = res.result;
|
||||
ufaceDevList.value = res.result;
|
||||
}
|
||||
};
|
||||
@ -561,6 +670,7 @@ const reset = () => {
|
||||
searchForm.startTime = null;
|
||||
searchForm.endTime = null;
|
||||
searchForm.devSn = "";
|
||||
searchForm.groupId = "";
|
||||
rangeTime.value = [];
|
||||
getCrewRealTimeData();
|
||||
};
|
||||
@ -575,6 +685,8 @@ defineExpose({
|
||||
});
|
||||
onMounted(async () => {
|
||||
getUfaceDevList();
|
||||
getPresentByRegion();
|
||||
getUfaceDevGroupList();
|
||||
getPersonList();
|
||||
getQueryTodayList();
|
||||
getCrewRealTimeData();
|
||||
@ -590,6 +702,7 @@ onMounted(async () => {
|
||||
.leftData {
|
||||
float: left;
|
||||
width: 15%;
|
||||
height: 100%;
|
||||
.numberPeople {
|
||||
margin: auto;
|
||||
width: 100%;
|
||||
@ -681,14 +794,14 @@ onMounted(async () => {
|
||||
}
|
||||
.selBox {
|
||||
width: 100%;
|
||||
height: 10%;
|
||||
height: 13%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0 24px;
|
||||
gap: 4px;
|
||||
.search-item {
|
||||
@include flex;
|
||||
max-width: 14%;
|
||||
max-width: 20%;
|
||||
// margin-right: 20px;
|
||||
span {
|
||||
color: white;
|
||||
@ -697,7 +810,7 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
.listBox {
|
||||
height: 78%;
|
||||
height: 75%;
|
||||
margin-bottom: 16px;
|
||||
.listStyle {
|
||||
display: flex;
|
||||
@ -874,4 +987,52 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
.sd-item {
|
||||
width: 210px;
|
||||
height: 65px;
|
||||
margin-bottom: 18px;
|
||||
background: url("@/assets/images/larborManagement/xd-bg.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
padding: 6px 18px;
|
||||
box-sizing: border-box;
|
||||
&.mt {
|
||||
margin-top: 24px;
|
||||
}
|
||||
// background: rgba(39, 88, 192, 0.06);
|
||||
.sd-item-top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-right: 12px;
|
||||
}
|
||||
span {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
color: #ffffff;
|
||||
line-height: 20px;
|
||||
}
|
||||
}
|
||||
.sd-item-bottom {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 8px;
|
||||
margin-left: 28px;
|
||||
.title {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
color: #a8abb2;
|
||||
margin-right: 30px;
|
||||
}
|
||||
.num {
|
||||
font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
|
||||
font-weight: 400;
|
||||
font-size: 20px;
|
||||
color: #65d7f9;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -100,7 +100,7 @@ import { ref, onMounted } from "vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
||||
const store = GlobalStore();
|
||||
const props = defineProps(["tip"]);
|
||||
const props = defineProps(["tip", "regionIdForUface"]);
|
||||
const BASEURL = import.meta.env.VITE_API_URL;
|
||||
const onlineWorkList = ref([
|
||||
{ name: "在职", value: 1 },
|
||||
@ -148,7 +148,8 @@ const getMemberCountList = async (tip:any) => {
|
||||
idCard: searchForm.value.idCard, //身份证号
|
||||
workerName: searchForm.value.name, //姓名
|
||||
pageNo: tip == 'search'?1:pageNo.value,
|
||||
pageSize: 100
|
||||
pageSize: 100,
|
||||
regionIdForUface: props.regionIdForUface
|
||||
}
|
||||
if(props.tip == '实时'){
|
||||
requestData.presence = 1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user