Merge branch 'shenzhen-dev' of http://139.9.66.234:18023/yjlHub/zhgdlarge into shenzhen-dev
This commit is contained in:
commit
0e4e286388
@ -3,9 +3,9 @@ NODE_ENV = 'development'
|
|||||||
|
|
||||||
# 本地环境接口地址(/api/index.ts文件中使用)
|
# 本地环境接口地址(/api/index.ts文件中使用)
|
||||||
# 后端本地
|
# 后端本地
|
||||||
# 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:9111' #雄哥本地
|
||||||
VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程
|
# VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程
|
||||||
# VITE_API_URL = 'http://192.168.34.221:28889'
|
# VITE_API_URL = 'http://192.168.34.221:28889'
|
||||||
# VITE_API_URL = 'http://121.196.214.246/api'
|
# VITE_API_URL = 'http://121.196.214.246/api'
|
||||||
# VITE_API_URL = 'http://jxj.zhgdyun.com:100'
|
# VITE_API_URL = 'http://jxj.zhgdyun.com:100'
|
||||||
|
|||||||
@ -22,13 +22,13 @@ NODE_ENV = "production"
|
|||||||
# VITE_API_URL = 'http://182.90.224.237:15551'
|
# VITE_API_URL = 'http://182.90.224.237:15551'
|
||||||
# agjt
|
# agjt
|
||||||
# VITE_API_URL = 'http://42.180.188.17:9809' #生产环境
|
# VITE_API_URL = 'http://42.180.188.17:9809' #生产环境
|
||||||
# VITE_API_URL = 'http://42.180.188.17:11211' #测试环境
|
VITE_API_URL = 'http://42.180.188.17:11211' #测试环境
|
||||||
# 苏立信/重庆市南岸区
|
# 苏立信/重庆市南岸区
|
||||||
# VITE_API_URL = 'http://101.43.164.214:11111'
|
# VITE_API_URL = 'http://101.43.164.214:11111'
|
||||||
# 中科安信
|
# 中科安信
|
||||||
# VITE_API_URL = 'http://8.136.222.164:8808'
|
# VITE_API_URL = 'http://8.136.222.164:8808'
|
||||||
# 中科佳成
|
# 中科佳成
|
||||||
VITE_API_URL = 'http://1.13.185.209:8089'
|
# VITE_API_URL = 'http://1.13.185.209:8089'
|
||||||
# 打包
|
# 打包
|
||||||
VITE_ULD_API_URL = 'http://jxj.zhgdyun.com:8012/onlinePreview?url='
|
VITE_ULD_API_URL = 'http://jxj.zhgdyun.com:8012/onlinePreview?url='
|
||||||
|
|
||||||
|
|||||||
@ -20,8 +20,9 @@
|
|||||||
ref="upload"
|
ref="upload"
|
||||||
class="upload-demo"
|
class="upload-demo"
|
||||||
:action="BASEURL + '/upload/image'"
|
:action="BASEURL + '/upload/image'"
|
||||||
:on-success="file => handleSuccess(file, index)"
|
:on-success="(file: any) => handleSuccess(file, index)"
|
||||||
:beforeUpload="handleBeforeUploadVideo"
|
:beforeUpload="handleBeforeUploadVideo"
|
||||||
|
:on-error="handleError"
|
||||||
name="files"
|
name="files"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
>
|
>
|
||||||
@ -46,6 +47,7 @@ import { onMounted, reactive, ref } from "vue";
|
|||||||
import { UploadFilled } from "@element-plus/icons-vue";
|
import { UploadFilled } from "@element-plus/icons-vue";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import type { UploadInstance } from "element-plus";
|
import type { UploadInstance } from "element-plus";
|
||||||
|
import { showFullScreenLoading, tryHideFullScreenLoading } from "@/config/serviceLoading";
|
||||||
import { configWeekVideoSaveApi, configWeekVideoListApi } from "@/api/modules/agjtCommandApi";
|
import { configWeekVideoSaveApi, configWeekVideoListApi } from "@/api/modules/agjtCommandApi";
|
||||||
import { GlobalStore } from "@/stores";
|
import { GlobalStore } from "@/stores";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
@ -139,6 +141,7 @@ function handleBeforeUploadVideo(file: any) {
|
|||||||
console.log(file, "上传之前");
|
console.log(file, "上传之前");
|
||||||
let fileType = file.type.split("/")[0];
|
let fileType = file.type.split("/")[0];
|
||||||
if (fileType == "video") {
|
if (fileType == "video") {
|
||||||
|
showFullScreenLoading();
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
@ -153,11 +156,17 @@ function handleBeforeUploadVideo(file: any) {
|
|||||||
function handleSuccess(file: any, index: number) {
|
function handleSuccess(file: any, index: number) {
|
||||||
if (file.code == 200 || file.status == "SUCCESS") {
|
if (file.code == 200 || file.status == "SUCCESS") {
|
||||||
console.log(file, "上传成功");
|
console.log(file, "上传成功");
|
||||||
|
tryHideFullScreenLoading();
|
||||||
let url = file.data[0].imageUrl;
|
let url = file.data[0].imageUrl;
|
||||||
// this.imgUrl = url;
|
// this.imgUrl = url;
|
||||||
configWeekVideoEditFn(true, url, index);
|
configWeekVideoEditFn(true, url, index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 视频上传成功
|
||||||
|
function handleError() {
|
||||||
|
tryHideFullScreenLoading();
|
||||||
|
}
|
||||||
|
|
||||||
const closeDialog = () => {
|
const closeDialog = () => {
|
||||||
dialogInfo.showDialog = false;
|
dialogInfo.showDialog = false;
|
||||||
dialogInfo.postData = {};
|
dialogInfo.postData = {};
|
||||||
|
|||||||
@ -28,10 +28,10 @@ export const BASE_IMAGE_URL = import.meta.env.VITE_BASE_IMAGE_URL;
|
|||||||
// export const COMPANY: string = "zsbf"; //中水北方
|
// export const COMPANY: string = "zsbf"; //中水北方
|
||||||
// export const COMPANY: string = "as"; //鞍山项目
|
// export const COMPANY: string = "as"; //鞍山项目
|
||||||
// export const COMPANY: string = "agjt"; //鞍钢集团
|
// export const COMPANY: string = "agjt"; //鞍钢集团
|
||||||
export const COMPANY: string = "agjtLive"; //鞍钢集团现场大屏 现场大屏所有接口暂时写死projectSn,部署时需根据环境来切换相应的projectSn
|
// export const COMPANY: string = "agjtLive"; //鞍钢集团现场大屏
|
||||||
// export const COMPANY: string = "agjtCommand"; //鞍钢集团指挥部大屏
|
// export const COMPANY: string = "agjtCommand"; //鞍钢集团指挥部大屏
|
||||||
// export const COMPANY: string = "agjtProjectKanban"; //鞍钢集团项目看板大屏
|
// export const COMPANY: string = "agjtProjectKanban"; //鞍钢集团项目看板大屏
|
||||||
// export const COMPANY: string = "agjtOverviewScreen"; //鞍钢集团项目总览
|
export const COMPANY: string = "agjtOverviewScreen"; //鞍钢集团项目总览
|
||||||
// export const COMPANY: string = "zkjc"; //中科佳成项目
|
// export const COMPANY: string = "zkjc"; //中科佳成项目
|
||||||
// export const COMPANY: string = "cqna"; //重庆南岸项目
|
// export const COMPANY: string = "cqna"; //重庆南岸项目
|
||||||
// export const COMPANY: string = "slx"; //苏立信项目
|
// export const COMPANY: string = "slx"; //苏立信项目
|
||||||
|
|||||||
@ -26,8 +26,8 @@ export const staticRouter: RouteRecordRaw[] = [
|
|||||||
name: "大屏",
|
name: "大屏",
|
||||||
// component: () => import("@/views/sevenLargeScreen/indexL.vue"), //七参数标准版
|
// component: () => import("@/views/sevenLargeScreen/indexL.vue"), //七参数标准版
|
||||||
// component: () => import("@/views/commandScreen/indexCommand.vue"), //指挥部大屏
|
// component: () => import("@/views/commandScreen/indexCommand.vue"), //指挥部大屏
|
||||||
component: () => import("@/views/agjtLiveScreen/indexLive.vue"), //鞍钢现场大屏 现场大屏所有接口暂时写死projectSn,部署时需根据环境来切换相应的projectSn
|
// component: () => import("@/views/agjtLiveScreen/indexLive.vue"), //鞍钢现场大屏
|
||||||
// component: () => import("@/views/overviewScreen/indexCommand.vue"), //总览大屏
|
component: () => import("@/views/overviewScreen/indexCommand.vue"), //总览大屏
|
||||||
// component: () => import("@/views/agjtProjectKanban/indexL.vue"), //鞍钢集团项目看板大屏
|
// component: () => import("@/views/agjtProjectKanban/indexL.vue"), //鞍钢集团项目看板大屏
|
||||||
// component: () => import("@/views/sevenLargeScreen/indexL_syhy.vue"), // 只有一级路由(盘锦、嘉兴、鄱湖美湾医疗项目需切换至该首页)
|
// component: () => import("@/views/sevenLargeScreen/indexL_syhy.vue"), // 只有一级路由(盘锦、嘉兴、鄱湖美湾医疗项目需切换至该首页)
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
@ -204,7 +204,7 @@ const drawTwoEchart = () => {
|
|||||||
title: {
|
title: {
|
||||||
text: stateInfo.dataDetail.num,
|
text: stateInfo.dataDetail.num,
|
||||||
subtext: stateInfo.dataDetail.name,
|
subtext: stateInfo.dataDetail.name,
|
||||||
x: "29%",
|
x: "24%",
|
||||||
y: "40%",
|
y: "40%",
|
||||||
textAlign: "center",
|
textAlign: "center",
|
||||||
textStyle: {
|
textStyle: {
|
||||||
@ -272,7 +272,8 @@ const drawTwoEchart = () => {
|
|||||||
if (data == "无") return;
|
if (data == "无") return;
|
||||||
let value = dataList.value[i].value;
|
let value = dataList.value[i].value;
|
||||||
let percentage = dataList.value[i].percentage + "%";
|
let percentage = dataList.value[i].percentage + "%";
|
||||||
return "{name| " + data + "} {gap| }" + `{value|${value}} {gap| } {value1|${percentage}}`;
|
const newData = data.length > 10 ? data.substr(0, 10) + "..." : data;
|
||||||
|
return "{name| " + newData + "} {gap| }" + `{value|${value}} {gap| } {value1|${percentage}}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -285,7 +286,7 @@ const drawTwoEchart = () => {
|
|||||||
name: "",
|
name: "",
|
||||||
type: "pie",
|
type: "pie",
|
||||||
radius: [100, 95],
|
radius: [100, 95],
|
||||||
center: ["30%", "50%"],
|
center: ["25%", "50%"],
|
||||||
hoverAnimation: false,
|
hoverAnimation: false,
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: "none" // 内层饼图也设置 tooltip.trigger 为 'none'
|
trigger: "none" // 内层饼图也设置 tooltip.trigger 为 'none'
|
||||||
@ -426,7 +427,7 @@ const drawTwoEchart = () => {
|
|||||||
name: "",
|
name: "",
|
||||||
type: "pie",
|
type: "pie",
|
||||||
radius: [60, 80],
|
radius: [60, 80],
|
||||||
center: ["30%", "50%"],
|
center: ["25%", "50%"],
|
||||||
hoverAnimation: true,
|
hoverAnimation: true,
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
borderWidth: 3,
|
borderWidth: 3,
|
||||||
@ -449,7 +450,7 @@ const drawTwoEchart = () => {
|
|||||||
{
|
{
|
||||||
type: "pie",
|
type: "pie",
|
||||||
radius: ["52", "55"],
|
radius: ["52", "55"],
|
||||||
center: ["30%", "50%"],
|
center: ["25%", "50%"],
|
||||||
label: {
|
label: {
|
||||||
show: false
|
show: false
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,16 +1,22 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="leftTop">
|
<div class="leftTop">
|
||||||
<Card title="安全质量隐患报告">
|
<Card title="安全隐患报告">
|
||||||
<div class="box-content">
|
<div class="box-content">
|
||||||
<el-scrollbar class="list-box" ref="refScrollbar">
|
<el-scrollbar class="list-box" ref="refScrollbar">
|
||||||
<div v-for="item in list" class="listStyle" :key="item.id">
|
<div v-for="item in list" class="listStyle" :key="item.id">
|
||||||
<div>{{ item.dangerItemContent }}</div>
|
<div>{{ item.dangerItemContent }}</div>
|
||||||
<div>
|
<div style="display: flex">
|
||||||
<span>整改结果:</span>
|
<div style="width: 30%">
|
||||||
<span v-if="item.overTime" style="color: #e25f64">已逾期</span>
|
<span>整改结果:</span>
|
||||||
<span v-else :style="{ color: item.status ? statusNameFilter(item.status).color : '' }">{{
|
<span :style="{ color: item.status ? statusNameFilter(item.status).color : '' }">{{
|
||||||
item.status ? statusNameFilter(item.status).name : ""
|
item.status ? statusNameFilter(item.status).name : ""
|
||||||
}}</span>
|
}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="text-ellipsis">
|
||||||
|
<span>责任单位:</span>
|
||||||
|
<span>{{ item.enterpriseName || "" }}</span>
|
||||||
|
</div>
|
||||||
|
<span v-if="item.overTime" class="period">已逾期</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
@ -117,14 +123,16 @@ onMounted(async () => {
|
|||||||
box-shadow: 0px 3px 4px 0px rgba(17, 141, 255, 0.5), inset 0px 0px 10px 0px #118dff;
|
box-shadow: 0px 3px 4px 0px rgba(17, 141, 255, 0.5), inset 0px 0px 10px 0px #118dff;
|
||||||
border-radius: 0px 0px 0px 0px;
|
border-radius: 0px 0px 0px 0px;
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
opacity: 0.7;
|
// opacity: 0.7;
|
||||||
|
// opacity: 0.9;
|
||||||
border-image: linear-gradient(359deg, rgba(17, 141, 255, 1), rgba(17, 141, 255, 0)) 1 1;
|
border-image: linear-gradient(359deg, rgba(17, 141, 255, 1), rgba(17, 141, 255, 0)) 1 1;
|
||||||
padding: 9px 13px;
|
padding: 9px 13px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
position: relative;
|
||||||
> div:nth-child(1) {
|
> div:nth-child(1) {
|
||||||
font-family: ABeeZee, ABeeZee;
|
font-family: ABeeZee, ABeeZee;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 16px;
|
font-size: 14px;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
@ -134,7 +142,7 @@ onMounted(async () => {
|
|||||||
> div:nth-child(2) {
|
> div:nth-child(2) {
|
||||||
font-family: ABeeZee, ABeeZee;
|
font-family: ABeeZee, ABeeZee;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 13px;
|
font-size: 11px;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
@ -143,12 +151,15 @@ onMounted(async () => {
|
|||||||
> div:nth-child(3) {
|
> div:nth-child(3) {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
// justify-content: space-between;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
|
> div:not(:last-child) {
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
> div:nth-child(1) {
|
> div:nth-child(1) {
|
||||||
font-family: ABeeZee, ABeeZee;
|
font-family: ABeeZee, ABeeZee;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 13px;
|
font-size: 11px;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
@ -159,7 +170,7 @@ onMounted(async () => {
|
|||||||
> div:not(:nth-child(1)) {
|
> div:not(:nth-child(1)) {
|
||||||
font-family: ABeeZee, ABeeZee;
|
font-family: ABeeZee, ABeeZee;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 13px;
|
font-size: 11px;
|
||||||
color: #8893a1;
|
color: #8893a1;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
@ -187,4 +198,19 @@ onMounted(async () => {
|
|||||||
::v-deep .h-card .content {
|
::v-deep .h-card .content {
|
||||||
height: 80%;
|
height: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-ellipsis {
|
||||||
|
color: #fff;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
-o-text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.period {
|
||||||
|
color: #e25f64;
|
||||||
|
margin-left: 6px;
|
||||||
|
position: absolute;
|
||||||
|
top: 8px;
|
||||||
|
right: 10px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<el-carousel-item v-for="item in enterpriseInfo.dataList" :key="item.enterpriseId" style="width: 100%; height: 100%">
|
<el-carousel-item v-for="item in enterpriseInfo.dataList" :key="item.enterpriseId" style="width: 100%; height: 100%">
|
||||||
<div class="box-content">
|
<div class="box-content">
|
||||||
<div class="top-content">
|
<div class="top-content">
|
||||||
<div class="top-content-left">{{ item.enterpriseName }}</div>
|
<div class="top-content-left text-ellipsis">{{ item.enterpriseName }}</div>
|
||||||
<div class="top-content-right" style="text-align: right">
|
<div class="top-content-right" style="text-align: right">
|
||||||
<div class="line1" style="display: flex; justify-content: flex-end">
|
<div class="line1" style="display: flex; justify-content: flex-end">
|
||||||
<span style="margin-left: 15px">事故报警总数</span>
|
<span style="margin-left: 15px">事故报警总数</span>
|
||||||
@ -75,7 +75,8 @@ const getEnterpriseInfoList = async (showLoading: boolean) => {
|
|||||||
projectSn: store.sn,
|
projectSn: store.sn,
|
||||||
enterpriseName: "",
|
enterpriseName: "",
|
||||||
enterpriseTypeId: "",
|
enterpriseTypeId: "",
|
||||||
userEnterpriseId: ""
|
userEnterpriseId: "",
|
||||||
|
isCountMainEnterprise: 1
|
||||||
},
|
},
|
||||||
showLoading
|
showLoading
|
||||||
);
|
);
|
||||||
@ -106,6 +107,15 @@ onMounted(async () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.text-ellipsis {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #fff;
|
||||||
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
-o-text-overflow: ellipsis;
|
||||||
|
}
|
||||||
.leftTop {
|
.leftTop {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@ -235,12 +245,12 @@ onMounted(async () => {
|
|||||||
.el-carousel__arrow--left {
|
.el-carousel__arrow--left {
|
||||||
// top: 70px;
|
// top: 70px;
|
||||||
left: -8px;
|
left: -8px;
|
||||||
font-size: 15px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
.el-carousel__arrow--right {
|
.el-carousel__arrow--right {
|
||||||
// top: 70px;
|
// top: 70px;
|
||||||
right: -8px;
|
right: -8px;
|
||||||
font-size: 15px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
<div class="contentTop contentMiddle">
|
<div class="contentTop contentMiddle">
|
||||||
<div class="ctHead" @click="onEchartsSafeTab(1)">
|
<div class="ctHead" @click="onEchartsSafeTab(1)">
|
||||||
<div>
|
<div>
|
||||||
质量重大隐患超期未整改<text>{{ overdueMajorDangerCount }}</text
|
安全重大隐患超期未整改<text>{{ overdueMajorDangerCount }}</text
|
||||||
>个,占比<text>{{ overdueMajorDangerRate }}%</text>
|
>个,占比<text>{{ overdueMajorDangerRate }}%</text>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -199,7 +199,7 @@ const randerInfo = reactive({
|
|||||||
titleInfo: {
|
titleInfo: {
|
||||||
titleLeft: "未来三天事故风险概率预测",
|
titleLeft: "未来三天事故风险概率预测",
|
||||||
titleRight: "查看各企业应急事故风险概率预测",
|
titleRight: "查看各企业应急事故风险概率预测",
|
||||||
percentage: 80
|
percentage: 0
|
||||||
},
|
},
|
||||||
workerFlag: true,
|
workerFlag: true,
|
||||||
workerList: [] as any[]
|
workerList: [] as any[]
|
||||||
@ -257,7 +257,7 @@ const openDialogData = async () => {
|
|||||||
titleInfo: {
|
titleInfo: {
|
||||||
titleLeft: "未来三天事故风险概率预测",
|
titleLeft: "未来三天事故风险概率预测",
|
||||||
// titleRight: "查看各企业应急事故风险概率预测",
|
// titleRight: "查看各企业应急事故风险概率预测",
|
||||||
percentage: 80
|
percentage: item.area
|
||||||
},
|
},
|
||||||
workerFlag: true,
|
workerFlag: true,
|
||||||
workerList: [
|
workerList: [
|
||||||
@ -296,7 +296,14 @@ const getRiskTrendByProject = async (showLoading: boolean, val: number) => {
|
|||||||
res.result.monthlySafetyScoreRate,
|
res.result.monthlySafetyScoreRate,
|
||||||
res.result.unclosedHiddenDangersRate
|
res.result.unclosedHiddenDangersRate
|
||||||
];
|
];
|
||||||
randerInfo.workerList = randerInfo.dataList[0].value;
|
randerInfo.workerList = [
|
||||||
|
res.result.severeWeatherRate,
|
||||||
|
res.result.totalPersonnelRiskRate,
|
||||||
|
res.result.totalSpecialOperationsRiskRate,
|
||||||
|
res.result.monthlySafetyScoreRate,
|
||||||
|
res.result.unclosedHiddenDangersRate
|
||||||
|
];
|
||||||
|
randerInfo.titleInfo.percentage = res.result.area;
|
||||||
}
|
}
|
||||||
activeIfo.activeIndex = val;
|
activeIfo.activeIndex = val;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -185,7 +185,7 @@ const randerInfo = reactive({
|
|||||||
titleInfo: {
|
titleInfo: {
|
||||||
titleLeft: "未来三天人员风险概率预测",
|
titleLeft: "未来三天人员风险概率预测",
|
||||||
titleRight: "查看各企业人员风险概率预测",
|
titleRight: "查看各企业人员风险概率预测",
|
||||||
percentage: 1
|
percentage: 0
|
||||||
},
|
},
|
||||||
workerFlag: true,
|
workerFlag: true,
|
||||||
workerList: [] as any[]
|
workerList: [] as any[]
|
||||||
@ -229,7 +229,7 @@ const openDialogData = async () => {
|
|||||||
titleInfo: {
|
titleInfo: {
|
||||||
titleLeft: "未来三天人员风险概率预测",
|
titleLeft: "未来三天人员风险概率预测",
|
||||||
// titleRight: "查看各企业应急事故风险概率预测",
|
// titleRight: "查看各企业应急事故风险概率预测",
|
||||||
percentage: 80
|
percentage: item.area
|
||||||
},
|
},
|
||||||
workerFlag: true,
|
workerFlag: true,
|
||||||
workerList: [item.age, item.total, item.safe, item.workerType, item.security, item.exam]
|
workerList: [item.age, item.total, item.safe, item.workerType, item.security, item.exam]
|
||||||
@ -520,6 +520,7 @@ const getWorkerRiskByProject = async (showLoading: boolean, val: number) => {
|
|||||||
res.result.security,
|
res.result.security,
|
||||||
res.result.exam
|
res.result.exam
|
||||||
];
|
];
|
||||||
|
randerInfo.titleInfo.percentage = res.result.area;
|
||||||
}
|
}
|
||||||
activeIndex.value = val;
|
activeIndex.value = val;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -223,9 +223,9 @@ const openDialogData = async () => {
|
|||||||
res.result.forEach((item: any, index: number) => {
|
res.result.forEach((item: any, index: number) => {
|
||||||
resultList.push({
|
resultList.push({
|
||||||
id: `list${index}`,
|
id: `list${index}`,
|
||||||
radius: "70%",
|
radius: "60%",
|
||||||
isLegend: "top",
|
isLegend: "top",
|
||||||
radarCenter: ["50%", "60%"],
|
radarCenter: ["50%", "55%"],
|
||||||
dataList: [
|
dataList: [
|
||||||
{
|
{
|
||||||
value: [item.security, item.safe, item.levelRisk, item.limitTime],
|
value: [item.security, item.safe, item.levelRisk, item.limitTime],
|
||||||
@ -242,7 +242,7 @@ const openDialogData = async () => {
|
|||||||
titleInfo: {
|
titleInfo: {
|
||||||
titleLeft: "未来三天安全隐患风险概率预测",
|
titleLeft: "未来三天安全隐患风险概率预测",
|
||||||
// titleRight: "查看各企业应急事故风险概率预测",
|
// titleRight: "查看各企业应急事故风险概率预测",
|
||||||
percentage: 80
|
percentage: item.area
|
||||||
},
|
},
|
||||||
workerFlag: true,
|
workerFlag: true,
|
||||||
workerList: [item.security, item.safe, item.levelRisk, item.limitTime]
|
workerList: [item.security, item.safe, item.levelRisk, item.limitTime]
|
||||||
@ -299,7 +299,7 @@ const randerInfo = reactive({
|
|||||||
titleInfo: {
|
titleInfo: {
|
||||||
titleLeft: "未来三天安全隐患风险概率预测",
|
titleLeft: "未来三天安全隐患风险概率预测",
|
||||||
titleRight: "查看各企业安全隐患风险概率预测",
|
titleRight: "查看各企业安全隐患风险概率预测",
|
||||||
percentage: 80
|
percentage: 0
|
||||||
},
|
},
|
||||||
workerFlag: true,
|
workerFlag: true,
|
||||||
workerList: [] as any[]
|
workerList: [] as any[]
|
||||||
@ -329,7 +329,7 @@ const randerInfo2 = reactive({
|
|||||||
titleInfo: {
|
titleInfo: {
|
||||||
titleLeft: "未来三天特殊作业风险概率预测",
|
titleLeft: "未来三天特殊作业风险概率预测",
|
||||||
// titleRight: "查看各企业特殊作业风险概率预测",
|
// titleRight: "查看各企业特殊作业风险概率预测",
|
||||||
percentage: 80
|
percentage: 0
|
||||||
},
|
},
|
||||||
workerFlag: true,
|
workerFlag: true,
|
||||||
workerList: [] as any[]
|
workerList: [] as any[]
|
||||||
@ -365,6 +365,7 @@ const getSafetyRiskByProject = async (showLoading: boolean, val: number) => {
|
|||||||
console.log("隐患风险预测趋势", res.result);
|
console.log("隐患风险预测趋势", res.result);
|
||||||
randerInfo.dataList[0].value = [res.result.security, res.result.safe, res.result.levelRisk, res.result.limitTime];
|
randerInfo.dataList[0].value = [res.result.security, res.result.safe, res.result.levelRisk, res.result.limitTime];
|
||||||
randerInfo.workerList = [res.result.security, res.result.safe, res.result.levelRisk, res.result.limitTime];
|
randerInfo.workerList = [res.result.security, res.result.safe, res.result.levelRisk, res.result.limitTime];
|
||||||
|
randerInfo.titleInfo.percentage = res.result.area;
|
||||||
}
|
}
|
||||||
activeInfo.activeIndex = val;
|
activeInfo.activeIndex = val;
|
||||||
};
|
};
|
||||||
@ -401,6 +402,7 @@ const getSpecialTrend = async (showLoading: boolean, val: number, isRight?: bool
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
randerInfo2.workerList = randerInfo2.dataList[0].value;
|
randerInfo2.workerList = randerInfo2.dataList[0].value;
|
||||||
|
randerInfo2.titleInfo.percentage = res.result.area;
|
||||||
}
|
}
|
||||||
activeInfo.activeIndex2 = val;
|
activeInfo.activeIndex2 = val;
|
||||||
if (isRight) {
|
if (isRight) {
|
||||||
|
|||||||
@ -180,10 +180,10 @@ onMounted(async () => {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
font-size: 11px;
|
font-size: 8px;
|
||||||
|
|
||||||
.numberCard {
|
.numberCard {
|
||||||
font-size: 12px;
|
font-size: 11px;
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
margin-left: 3px;
|
margin-left: 3px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|||||||
@ -127,8 +127,8 @@ const tableTabInfo = reactive({
|
|||||||
tableTabActive: "1"
|
tableTabActive: "1"
|
||||||
});
|
});
|
||||||
const onClickTab = (item: any) => {
|
const onClickTab = (item: any) => {
|
||||||
tableTabInfo.tableTabActive = item.enumType;
|
|
||||||
majorInfo.value.enumType = item.enumType;
|
majorInfo.value.enumType = item.enumType;
|
||||||
|
tableTabInfo.tableTabActive = item.enumType;
|
||||||
};
|
};
|
||||||
|
|
||||||
const closeDialog = () => {
|
const closeDialog = () => {
|
||||||
|
|||||||
@ -237,7 +237,7 @@ const getMemberCountList = async (tip: any) => {
|
|||||||
idCard: searchForm.value.idCard, //身份证号
|
idCard: searchForm.value.idCard, //身份证号
|
||||||
workerName: searchForm.value.name, //姓名
|
workerName: searchForm.value.name, //姓名
|
||||||
pageNo: tip == "search" ? 1 : pageNo.value,
|
pageNo: tip == "search" ? 1 : pageNo.value,
|
||||||
pageSize: 100
|
pageSize: 10
|
||||||
};
|
};
|
||||||
if (props.tip == "实时") {
|
if (props.tip == "实时") {
|
||||||
requestData.presence = 1;
|
requestData.presence = 1;
|
||||||
@ -841,7 +841,6 @@ function drawEchart3() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getStatsByEnterprise = async () => {
|
const getStatsByEnterprise = async () => {
|
||||||
|
|
||||||
const res: any = await getStatsByEnterpriseApi({
|
const res: any = await getStatsByEnterpriseApi({
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 99999,
|
pageSize: 99999,
|
||||||
@ -949,6 +948,8 @@ const onSupervise = async (row: any) => {
|
|||||||
watch(
|
watch(
|
||||||
() => props.majorInfo,
|
() => props.majorInfo,
|
||||||
async newVal => {
|
async newVal => {
|
||||||
|
pageNo.value = 1;
|
||||||
|
moreScroll.value = true;
|
||||||
await getStatsByEnterprise();
|
await getStatsByEnterprise();
|
||||||
await getCountQualityInspectionRecordRegion();
|
await getCountQualityInspectionRecordRegion();
|
||||||
await getStatsDangerType();
|
await getStatsDangerType();
|
||||||
@ -972,7 +973,8 @@ onMounted(async () => {
|
|||||||
// 向上加载更多
|
// 向上加载更多
|
||||||
if (scrollTop >= scrollHeight - clientHeight - 1) {
|
if (scrollTop >= scrollHeight - clientHeight - 1) {
|
||||||
if (moreScroll.value) {
|
if (moreScroll.value) {
|
||||||
getMemberCountList("more");
|
// getMemberCountList("more");
|
||||||
|
getXzSecurityQualitylnspectionRecordlist("more");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -176,14 +176,14 @@ function getImageNormalityEchart() {
|
|||||||
textAlign: "center",
|
textAlign: "center",
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#fff",
|
color: "#fff",
|
||||||
fontSize: 38,
|
fontSize: 32,
|
||||||
fontWeight: "normal",
|
fontWeight: "normal",
|
||||||
// align: "center",
|
// align: "center",
|
||||||
fontFamily: "ABeeZee, ABeeZee"
|
fontFamily: "ABeeZee, ABeeZee"
|
||||||
},
|
},
|
||||||
subtextStyle: {
|
subtextStyle: {
|
||||||
color: "#9BB7D4",
|
color: "#9BB7D4",
|
||||||
fontSize: 16,
|
fontSize: 14,
|
||||||
fontWeight: "normal",
|
fontWeight: "normal",
|
||||||
fontFamily: "ABeeZee, ABeeZee"
|
fontFamily: "ABeeZee, ABeeZee"
|
||||||
// align: "center"
|
// align: "center"
|
||||||
@ -294,14 +294,14 @@ function getVideoNormalityEchart() {
|
|||||||
textAlign: "center",
|
textAlign: "center",
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#fff",
|
color: "#fff",
|
||||||
fontSize: 38,
|
fontSize: 32,
|
||||||
fontWeight: "normal",
|
fontWeight: "normal",
|
||||||
// align: "center",
|
// align: "center",
|
||||||
fontFamily: "ABeeZee, ABeeZee"
|
fontFamily: "ABeeZee, ABeeZee"
|
||||||
},
|
},
|
||||||
subtextStyle: {
|
subtextStyle: {
|
||||||
color: "#9BB7D4",
|
color: "#9BB7D4",
|
||||||
fontSize: 16,
|
fontSize: 14,
|
||||||
fontWeight: "normal",
|
fontWeight: "normal",
|
||||||
fontFamily: "ABeeZee, ABeeZee"
|
fontFamily: "ABeeZee, ABeeZee"
|
||||||
// align: "center"
|
// align: "center"
|
||||||
|
|||||||
@ -339,7 +339,7 @@ function drawBar2() {
|
|||||||
title: {
|
title: {
|
||||||
text: stateInfo.dataDetail.num,
|
text: stateInfo.dataDetail.num,
|
||||||
subtext: stateInfo.dataDetail.name,
|
subtext: stateInfo.dataDetail.name,
|
||||||
x: "29%",
|
x: "24%",
|
||||||
y: "40%",
|
y: "40%",
|
||||||
textAlign: "center",
|
textAlign: "center",
|
||||||
textStyle: {
|
textStyle: {
|
||||||
@ -407,7 +407,8 @@ function drawBar2() {
|
|||||||
if (data == "无") return;
|
if (data == "无") return;
|
||||||
let value = dataList.value[i].value;
|
let value = dataList.value[i].value;
|
||||||
let percentage = dataList.value[i].percentage + "%";
|
let percentage = dataList.value[i].percentage + "%";
|
||||||
return "{name| " + data + "} {gap| }" + `{value|${value}} {gap| } {value1|${percentage}}`;
|
const newData = data.length > 10 ? data.substr(0, 10) + "..." : data;
|
||||||
|
return "{name| " + newData + "} {gap| }" + `{value|${value}} {gap| } {value1|${percentage}}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -420,7 +421,7 @@ function drawBar2() {
|
|||||||
name: "",
|
name: "",
|
||||||
type: "pie",
|
type: "pie",
|
||||||
radius: [100, 95],
|
radius: [100, 95],
|
||||||
center: ["30%", "50%"],
|
center: ["25%", "50%"],
|
||||||
hoverAnimation: false,
|
hoverAnimation: false,
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: "none" // 内层饼图也设置 tooltip.trigger 为 'none'
|
trigger: "none" // 内层饼图也设置 tooltip.trigger 为 'none'
|
||||||
@ -561,7 +562,7 @@ function drawBar2() {
|
|||||||
name: "",
|
name: "",
|
||||||
type: "pie",
|
type: "pie",
|
||||||
radius: [60, 80],
|
radius: [60, 80],
|
||||||
center: ["30%", "50%"],
|
center: ["25%", "50%"],
|
||||||
hoverAnimation: true,
|
hoverAnimation: true,
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
borderWidth: 3,
|
borderWidth: 3,
|
||||||
@ -584,7 +585,7 @@ function drawBar2() {
|
|||||||
{
|
{
|
||||||
type: "pie",
|
type: "pie",
|
||||||
radius: ["52", "55"],
|
radius: ["52", "55"],
|
||||||
center: ["30%", "50%"],
|
center: ["25%", "50%"],
|
||||||
label: {
|
label: {
|
||||||
show: false
|
show: false
|
||||||
},
|
},
|
||||||
|
|||||||
@ -44,7 +44,12 @@
|
|||||||
<el-carousel @change="onChange" indicator-position="none" style="width: 100%; height: 100%">
|
<el-carousel @change="onChange" indicator-position="none" style="width: 100%; height: 100%">
|
||||||
<el-carousel-item v-for="item in enterpriseInfo.dataList" :key="item.enterpriseId" style="width: 100%; height: 100%">
|
<el-carousel-item v-for="item in enterpriseInfo.dataList" :key="item.enterpriseId" style="width: 100%; height: 100%">
|
||||||
<div class="enterprise-info">
|
<div class="enterprise-info">
|
||||||
<div>{{ item.enterpriseName }}</div>
|
<!-- <el-tooltip class="text-ellipsis" effect="dark" content="Top Left prompts info" placement="top-start">
|
||||||
|
<div style="text-ellipsis">{{ item.enterpriseName }}</div>
|
||||||
|
</el-tooltip> -->
|
||||||
|
<div class="text-ellipsis">
|
||||||
|
{{ item.enterpriseName }}
|
||||||
|
</div>
|
||||||
<div class="line1" style="display: flex">
|
<div class="line1" style="display: flex">
|
||||||
<span style="margin-left: 15px">事故报警总数</span>
|
<span style="margin-left: 15px">事故报警总数</span>
|
||||||
<div class="numberCard" v-for="(ele, i) in `${enterpriseInfo.dataInfo.emergencyNum}`" :key="i">
|
<div class="numberCard" v-for="(ele, i) in `${enterpriseInfo.dataInfo.emergencyNum}`" :key="i">
|
||||||
@ -666,8 +671,8 @@ function getManAnalysisEchart() {
|
|||||||
},
|
},
|
||||||
// color: ["#2BA5FF", "#F97766", "#1EF1FF", "#1EF1FF"],
|
// color: ["#2BA5FF", "#F97766", "#1EF1FF", "#1EF1FF"],
|
||||||
grid: {
|
grid: {
|
||||||
left: "6%",
|
left: "8%",
|
||||||
right: "6%",
|
right: "8%",
|
||||||
top: "15%",
|
top: "15%",
|
||||||
bottom: "5%",
|
bottom: "5%",
|
||||||
containLabel: true
|
containLabel: true
|
||||||
@ -713,31 +718,31 @@ function getManAnalysisEchart() {
|
|||||||
}
|
}
|
||||||
// type: 'value'
|
// type: 'value'
|
||||||
},
|
},
|
||||||
// dataZoom: [
|
dataZoom: [
|
||||||
// {
|
{
|
||||||
// id: "dataZoomX",
|
id: "dataZoomX",
|
||||||
// type: "inside",
|
type: "inside",
|
||||||
// xAxisIndex: [0],
|
xAxisIndex: [0],
|
||||||
// brushSelect: false,
|
brushSelect: false,
|
||||||
// zoomOnMouseWheel: false,
|
zoomOnMouseWheel: false,
|
||||||
// moveOnMouseWheel: true, // 开启滚轮平移
|
moveOnMouseWheel: true, // 开启滚轮平移
|
||||||
// moveOnMouseMove: true, // 鼠标移动能触发数据窗口平移
|
moveOnMouseMove: true, // 鼠标移动能触发数据窗口平移
|
||||||
// preventDefaultMouseMove: false,
|
preventDefaultMouseMove: false,
|
||||||
// // start:100,
|
// start:100,
|
||||||
// startValue: riskList.value.length - 1,
|
startValue: workerRegionInfo.dateList.length - 1,
|
||||||
// endValue: riskList.value.length - 6,
|
endValue: workerRegionInfo.dateList.length - 4,
|
||||||
// // 滚动条高度
|
// 滚动条高度
|
||||||
// width: 8,
|
width: 8,
|
||||||
// // 滚动条显示位置
|
// 滚动条显示位置
|
||||||
// // height: "80%",
|
// height: "80%",
|
||||||
// // 距离右边
|
// 距离右边
|
||||||
// right: 3,
|
right: 3,
|
||||||
// // 控制手柄的尺寸
|
// 控制手柄的尺寸
|
||||||
// handleSize: 0,
|
handleSize: 0,
|
||||||
// filterMode: "empty"
|
filterMode: "empty"
|
||||||
// // top: "top",
|
// top: "top",
|
||||||
// }
|
}
|
||||||
// ],
|
],
|
||||||
series: workerRegionInfo.workerRegionList.map((item: any) => {
|
series: workerRegionInfo.workerRegionList.map((item: any) => {
|
||||||
const color1 = Math.floor(Math.random() * 256);
|
const color1 = Math.floor(Math.random() * 256);
|
||||||
const color2 = Math.floor(Math.random() * 256);
|
const color2 = Math.floor(Math.random() * 256);
|
||||||
@ -884,7 +889,8 @@ const getEnterpriseInfoList = async (showLoading: boolean) => {
|
|||||||
projectSn: store.sn,
|
projectSn: store.sn,
|
||||||
enterpriseName: "",
|
enterpriseName: "",
|
||||||
enterpriseTypeId: "",
|
enterpriseTypeId: "",
|
||||||
userEnterpriseId: ""
|
userEnterpriseId: "",
|
||||||
|
isCountMainEnterprise: 1
|
||||||
},
|
},
|
||||||
showLoading
|
showLoading
|
||||||
);
|
);
|
||||||
@ -945,6 +951,15 @@ onMounted(async () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.text-ellipsis {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #fff;
|
||||||
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
-o-text-overflow: ellipsis;
|
||||||
|
}
|
||||||
.manAnalysis-box {
|
.manAnalysis-box {
|
||||||
height: 32%;
|
height: 32%;
|
||||||
margin-top: 1%;
|
margin-top: 1%;
|
||||||
@ -1136,13 +1151,14 @@ onMounted(async () => {
|
|||||||
|
|
||||||
.el-carousel__arrow--left {
|
.el-carousel__arrow--left {
|
||||||
// top: 70px;
|
// top: 70px;
|
||||||
left: -8px;
|
left: -12px;
|
||||||
font-size: 15px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-carousel__arrow--right {
|
.el-carousel__arrow--right {
|
||||||
// top: 70px;
|
// top: 70px;
|
||||||
right: -8px;
|
right: -12px;
|
||||||
font-size: 15px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user