修改
This commit is contained in:
parent
c1738a8b33
commit
08134f2f82
@ -24,8 +24,8 @@ export const staticRouter: RouteRecordRaw[] = [
|
||||
{
|
||||
path: "/large",
|
||||
name: "大屏",
|
||||
component: () => import("@/views/sevenLargeScreen/indexL.vue"), //七参数标准版
|
||||
// component: () => import("@/views/commandScreen/indexCommand.vue"), //指挥部大屏
|
||||
// component: () => import("@/views/sevenLargeScreen/indexL.vue"), //七参数标准版
|
||||
component: () => import("@/views/commandScreen/indexCommand.vue"), //指挥部大屏
|
||||
// component: () => import("@/views/sevenLargeScreen/indexL_syhy.vue"), // 只有一级路由(盘锦、嘉兴、鄱湖美湾医疗项目需切换至该首页)
|
||||
children: [
|
||||
{
|
||||
|
||||
@ -4,7 +4,15 @@
|
||||
<!-- v-show="topDangerList.length > 0" -->
|
||||
<div class="top-statistics" v-show="topDangerList.length > 0">
|
||||
<el-scrollbar class="statistics-listBox" ref="refAlarmScrollbar">
|
||||
<div class="statistics-item" :style="{background: `url(${bgImgSet(index)}) no-repeat`,backgroundSize: '100% 100%'}" v-for="(item,index) in topDangerList" :key="index">
|
||||
<div
|
||||
class="statistics-item"
|
||||
:style="{
|
||||
background: `url(${bgImgSet(index)}) no-repeat`,
|
||||
backgroundSize: '100% 100%'
|
||||
}"
|
||||
v-for="(item, index) in topDangerList"
|
||||
:key="index"
|
||||
>
|
||||
<span class="title">{{ item.alarmTypeName }}</span>
|
||||
<span class="statistics-item-content">今日报警次数:{{ item.alarmNumToday }}</span>
|
||||
<span class="statistics-item-content">本月报警次数:{{ item.alarmNumMonth }}</span>
|
||||
@ -12,7 +20,7 @@
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div style="position: relative; height: 180px;" v-if="topDangerList.length == 0">
|
||||
<div style="position: relative; height: 180px" v-if="topDangerList.length == 0">
|
||||
<div class="notoDta">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
<p>暂无数据</p>
|
||||
@ -48,7 +56,7 @@
|
||||
<div>{{ item.alarmTypeName }}</div>
|
||||
<!-- <div>{{item.alarmType == 1?'烟感报警':item.alarmType == 2?'明火报警':item.alarmType == 3?'人员到底报警':item.alarmType == 4?'未带安全帽报警':item.alarmType == 5?'区域入侵报警':item.alarmType == 6?'越界入侵报警':'人员聚集报警'}}</div> -->
|
||||
<div>{{ item.createTime }}</div>
|
||||
<div style="color: #1FADC5;" @click="openDetailDialog(item)">查看详情</div>
|
||||
<div style="color: #1fadc5" @click="openDetailDialog(item)">查看详情</div>
|
||||
</div>
|
||||
<div class="notoDta" v-if="partyMemberList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
@ -65,7 +73,9 @@
|
||||
<div class="detail-text">
|
||||
<div class="text-box">
|
||||
<div class="type">告警类型</div>
|
||||
<div class="text">{{ detailData.alarmType ? getWarnName(detailData.alarmType) : "" }}</div>
|
||||
<div class="text">
|
||||
{{ detailData.alarmType ? getWarnName(detailData.alarmType) : "" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-box" style="margin-top: 5%">
|
||||
<div class="type">设备名称</div>
|
||||
@ -89,10 +99,10 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, onMounted, computed } from "vue";
|
||||
import { ref, onMounted } from "vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { getCompanyDataList, getMemberInfoList } from "@/api/modules/labor";
|
||||
import type { TabsPaneContext } from 'element-plus'
|
||||
import { getCompanyDataList } from "@/api/modules/labor";
|
||||
// import type { TabsPaneContext } from "element-plus";
|
||||
import { getAlarmTypeOption } from "@/api/modules/aIEarlyWarn";
|
||||
import noDataImage from "@/assets/images/vehicleManagement/car.png";
|
||||
import { getAlarmRecordApi, getAlarmTypeCountPageApi } from "@/api/modules/agjtCommandApi";
|
||||
@ -104,17 +114,18 @@ import bgImg5 from "@/assets/images/commandScreen/bg5.png";
|
||||
import bgImg6 from "@/assets/images/commandScreen/bg6.png";
|
||||
import bgImg7 from "@/assets/images/commandScreen/bg7.png";
|
||||
import bgImg8 from "@/assets/images/commandScreen/bg8.png";
|
||||
const bgImgList = ref([bgImg1,bgImg2,bgImg3,bgImg4,bgImg5,bgImg6,bgImg7,bgImg8])
|
||||
const bgImgList = ref([bgImg1, bgImg2, bgImg3, bgImg4, bgImg5, bgImg6, bgImg7, bgImg8]);
|
||||
const store = GlobalStore();
|
||||
// eslint-disable-next-line vue/require-prop-types, @typescript-eslint/no-unused-vars
|
||||
const props = defineProps(["tip"]);
|
||||
const BASEURL = import.meta.env.VITE_API_URL;
|
||||
let showDialog = ref(false as any);
|
||||
const enterpriseListData = ref([] as any);
|
||||
const topDangerList = ref([] as any)
|
||||
const topDangerList = ref([] as any);
|
||||
let pageNo = ref(1 as any);
|
||||
const alarmPageInfo = ref({
|
||||
pageNo: 1
|
||||
})
|
||||
});
|
||||
let moreAlarmScroll = ref(true as any);
|
||||
const refAlarmScrollbar = ref(null as any); // 绑定到滚动的盒子上
|
||||
let moreScroll = ref(true as any);
|
||||
@ -124,19 +135,19 @@ const partyMemberList = ref({} as any);
|
||||
let aiAlarmTypeEnum = ref([] as any);
|
||||
// 背景图设置
|
||||
const bgImgSet = (index: any) => {
|
||||
return bgImgList.value[index % bgImgList.value.length]
|
||||
}
|
||||
return bgImgList.value[index % bgImgList.value.length];
|
||||
};
|
||||
// 获取顶部数据
|
||||
const getQualityStatisticsNumDataFn = async (tip: any) => {
|
||||
let requestData: any = {
|
||||
sn: store.sn,
|
||||
type: 1,
|
||||
pageNo: tip == 'search'?1:alarmPageInfo.value.pageNo,
|
||||
pageSize: 100,
|
||||
}
|
||||
pageNo: tip == "search" ? 1 : alarmPageInfo.value.pageNo,
|
||||
pageSize: 100
|
||||
};
|
||||
const res: any = await getAlarmTypeCountPageApi(requestData);
|
||||
console.log("获取人员信息列表", res);
|
||||
if(tip == 'more'){
|
||||
if (tip == "more") {
|
||||
topDangerList.value = topDangerList.value.concat(res.result.alarmPage.records);
|
||||
} else {
|
||||
topDangerList.value = res.result.alarmPage.records;
|
||||
@ -149,7 +160,7 @@ const getQualityStatisticsNumDataFn = async (tip: any) => {
|
||||
};
|
||||
//获取告警类型枚举
|
||||
const getWarnTypeOption = async () => {
|
||||
const res: any = await getAlarmTypeOption({ projectSn: store.sn, });
|
||||
const res: any = await getAlarmTypeOption({ projectSn: store.sn });
|
||||
// console.log("获取告警类型", res.result);
|
||||
let warnType = res.result.map((item: any) => {
|
||||
return {
|
||||
@ -198,13 +209,13 @@ const getCompanyList = async () => {
|
||||
const getMemberCountList = async (tip: any) => {
|
||||
let requestData: any = {
|
||||
projectSn: store.sn,
|
||||
pageNo: tip == 'search'?1:pageNo.value,
|
||||
pageNo: tip == "search" ? 1 : pageNo.value,
|
||||
pageSize: 100,
|
||||
isPushed: 1,
|
||||
}
|
||||
isPushed: 1
|
||||
};
|
||||
const res: any = await getAlarmRecordApi(requestData);
|
||||
console.log("获取人员信息列表", res);
|
||||
if(tip == 'more'){
|
||||
if (tip == "more") {
|
||||
partyMemberList.value = partyMemberList.value.concat(res.result.records);
|
||||
} else {
|
||||
partyMemberList.value = res.result.records;
|
||||
@ -222,8 +233,8 @@ const getMemberCountList = async (tip:any) => {
|
||||
|
||||
onMounted(async () => {
|
||||
await getCompanyList();
|
||||
await getMemberCountList('search');
|
||||
await getQualityStatisticsNumDataFn('search');
|
||||
await getMemberCountList("search");
|
||||
await getQualityStatisticsNumDataFn("search");
|
||||
getWarnTypeOption();
|
||||
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
||||
// console.log("滚动容器", e);
|
||||
@ -414,6 +425,9 @@ onMounted(async () => {
|
||||
&-content:nth-child(4) {
|
||||
margin-top: 2%;
|
||||
}
|
||||
&-content:last-child {
|
||||
margin-bottom: 4%;
|
||||
}
|
||||
// &-content:nth-child(3){
|
||||
// margin-top: 8%;
|
||||
// }
|
||||
@ -528,7 +542,7 @@ onMounted(async () => {
|
||||
color: white;
|
||||
}
|
||||
.el-tabs__item.is-active {
|
||||
color: var(--el-color-primary)
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@ let agjtCommandList = ref([
|
||||
{
|
||||
moduleName: "指挥部大屏",
|
||||
modulePath: "/commandScreen"
|
||||
},
|
||||
}
|
||||
]);
|
||||
|
||||
const itemList = ref([]);
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
<template>
|
||||
<ScaleBox :width="1920" :height="1080" bgc="transparent" :delay="100" :isFlat="false">
|
||||
|
||||
<div class="loginBigImg">
|
||||
<div class="loginTitle">
|
||||
<div>数字化项目监管平台</div>
|
||||
@ -8,7 +7,13 @@
|
||||
</div>
|
||||
<div class="loginFrom">
|
||||
<div class="inutFrom">
|
||||
<el-form ref="loginFormRef" class="form" :model="loginForm" :rules="loginRules" size="large">
|
||||
<el-form
|
||||
ref="loginFormRef"
|
||||
class="form"
|
||||
:model="loginForm"
|
||||
:rules="loginRules"
|
||||
size="large"
|
||||
>
|
||||
<el-form-item prop="account" style="margin-bottom: 10%">
|
||||
<el-input v-model="loginForm.account" placeholder="请输入账号">
|
||||
<template #prefix>
|
||||
@ -35,13 +40,14 @@
|
||||
</div> -->
|
||||
</el-form>
|
||||
<div style="height: 45%">
|
||||
<el-button class="loginBtn" @click="login(loginFormRef)" :loading="loading">登录</el-button>
|
||||
<el-button class="loginBtn" @click="login(loginFormRef)" :loading="loading"
|
||||
>登录</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ScaleBox>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="logonPage">
|
||||
@ -73,7 +79,7 @@ type FormInstance = InstanceType<typeof ElForm>;
|
||||
const loginFormRef = ref<FormInstance>();
|
||||
const loginRules = reactive({
|
||||
account: [{ required: true, message: "请输入账号", trigger: "blur" }],
|
||||
password: [{ required: true, message: "请输入密码", trigger: "blur" }]
|
||||
password: [{ required: true, message: "请输入密码", trigger: "blur" }],
|
||||
});
|
||||
|
||||
const loading = ref(false);
|
||||
@ -107,7 +113,7 @@ const login = (formEl: FormInstance | undefined) => {
|
||||
if (![5, 10].includes(result.accountType)) {
|
||||
ElMessage({
|
||||
message: "账号类型不匹配",
|
||||
type: "warning"
|
||||
type: "warning",
|
||||
});
|
||||
return;
|
||||
}
|
||||
@ -138,8 +144,6 @@ const resetForm = (formEl: FormInstance | undefined) => {
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
|
||||
|
||||
// 监听enter事件(调用登录)
|
||||
document.onkeydown = (e: any) => {
|
||||
e = window.event || e;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user