Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	src/views/BI/components/rightico.vue
pull/3/head
fangjiakai 2024-02-28 08:42:37 +08:00
commit abd9830dfd
21 changed files with 178 additions and 150 deletions

2
.env
View File

@ -1,7 +1,5 @@
VITE_BASE_URL=http://192.168.0.42:8099/ VITE_BASE_URL=http://192.168.0.42:8099/
VITE_PROXY=/api/ VITE_PROXY=/api/
VITE_PROXY_QAAQ=/qaaq_api/
VITE_QAAQ_URL=https://gateway.qhdsafety.com/
VITE_FILE_URL=https://file.zcloudchina.com/YTHFile VITE_FILE_URL=https://file.zcloudchina.com/YTHFile
VITE_TEMPLATE_URL=https://qaaq.qhdsafety.com/file/ VITE_TEMPLATE_URL=https://qaaq.qhdsafety.com/file/
VITE_ON_LINE_WEB_SOCKET_URL=wss://qaaq.qhdsafety.com/zxwebsocket/ VITE_ON_LINE_WEB_SOCKET_URL=wss://qaaq.qhdsafety.com/zxwebsocket/

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" /> <link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
<title>管理平台</title> <title>危化安全生产管理平台</title>
</head> </head>
<body> <body>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="header"> <div class="header">
<div class="left"> <div class="left">
<div class="logo">管理平台</div> <div class="logo" />
<div class="menu"> <div class="menu">
<ul> <ul>
<li @click="router.push({ path: '/large_screen_data_display' })"> <li @click="router.push({ path: '/large_screen_data_display' })">
@ -185,14 +185,11 @@ fnSpecialOperationsWarnAmount();
width: max-content; width: max-content;
.logo { .logo {
background-image: url("/src/assets/images/public/logo.png");
width: 500px; width: 500px;
height: var(--el-header-height); height: 69px;
line-height: var(--el-header-height); background-repeat: no-repeat;
padding-left: 20px; background-size: 100% 100%;
color: #fff;
font-size: 20px;
font-weight: 700;
font-family: cursive;
} }
.menu { .menu {
@ -221,6 +218,7 @@ fnSpecialOperationsWarnAmount();
background-size: 100% 100%; background-size: 100% 100%;
border: 1px solid #2870bb; border: 1px solid #2870bb;
} }
.title { .title {
padding-left: 3px; padding-left: 3px;
font-size: 14px; font-size: 14px;

View File

@ -130,4 +130,3 @@ export const setCustomInsuranceCoverageSave = (params) =>
post("/hiddenstandardCustom/saveBaoBaoType", params); // 清单管理设置包保责任类型提交 post("/hiddenstandardCustom/saveBaoBaoType", params); // 清单管理设置包保责任类型提交
export const getCustomCheckListOtherHiddenList = (params) => export const getCustomCheckListOtherHiddenList = (params) =>
post("/customHidden/getCheckHidden", params); // 隐患清单检查情况检查记录查看其它隐患列表 post("/customHidden/getCheckHidden", params); // 隐患清单检查情况检查记录查看其它隐患列表
export const getCorpinfo = (params) => post("/corpinfo/goEdit", params); // 获取企业信息

View File

@ -9,14 +9,23 @@
<div class="option"> <div class="option">
<img :src="item.check ? item.imgSelect : item.img" alt="" /> <img :src="item.check ? item.imgSelect : item.img" alt="" />
<div class="title">{{ item.title }}</div> <div class="title">{{ item.title }}</div>
</div> <div class="child_container">
<div :class="['child_container', { active: item.check }]"> <transition
<div :class="['child_options', item.type]"> enter-active-class="animate__animated animate__bounceIn"
leave-active-class="animate__animated animate__bounceOut"
mode="out-in"
>
<div
v-show="item.check"
:class="['child_options', item.type, { active: item.check }]"
>
<div <div
v-for="(item1, index1) in item.list" v-for="(item1, index1) in item.list"
:key="item1.title" :key="item1.title"
class="child_option" class="child_option"
@click.stop="fnBottomChildOptionsListChange(index, item1, index1)" @click.stop="
fnBottomChildOptionsListChange(index, item1, index1)
"
> >
<img :src="item1.check ? item1.imgSelect : item1.img" alt="" /> <img :src="item1.check ? item1.imgSelect : item1.img" alt="" />
<div class="tit" :class="item1.check ? 'active' : ''"> <div class="tit" :class="item1.check ? 'active' : ''">
@ -24,10 +33,13 @@
</div> </div>
</div> </div>
</div> </div>
</transition>
</div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { reactive, markRaw } from "vue"; import { reactive, markRaw } from "vue";
import Personnel from "@/views/BI/components/personnel.vue"; import Personnel from "@/views/BI/components/personnel.vue";
@ -346,27 +358,20 @@ const data = reactive({
bottomOptionsList, bottomOptionsList,
}); });
const fnBottomOptionsListChange = (item, index) => { const fnBottomOptionsListChange = (item, index) => {
const currentItem = data.bottomOptionsList[index];
// ai // ai
if (index === 4) { if (index === 4) {
data.bottomOptionsList[index].action( if (currentItem.action) currentItem.action(!currentItem.check, item.type);
!data.bottomOptionsList[index].check,
item.type
);
} }
for (let i = 0; i < data.bottomOptionsList.length; i++) { for (let i = 0; i < data.bottomOptionsList.length; i++) {
if (index === i) { if (index === i) {
data.bottomOptionsList[index].check = currentItem.check = !currentItem.check;
!data.bottomOptionsList[index].check;
continue; continue;
} }
data.bottomOptionsList[i].check = false; data.bottomOptionsList[i].check = false;
} }
leftCurrentComponent.value = data.bottomOptionsList[index].check leftCurrentComponent.value = currentItem.check ? item.components[0] : "";
? item.components[0] rightCurrentComponent.value = currentItem.check ? item.components[1] : "";
: "";
rightCurrentComponent.value = data.bottomOptionsList[index].check
? item.components[1]
: "";
rightOption.value = index !== 4; rightOption.value = index !== 4;
}; };
const fnBottomChildOptionsListChange = (index, item1, index1) => { const fnBottomChildOptionsListChange = (index, item1, index1) => {
@ -402,6 +407,7 @@ const fnBottomChildOptionsListChange = (index, item1, index1) => {
} }
}; };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container { .container {
width: 100%; width: 100%;
@ -445,22 +451,13 @@ const fnBottomChildOptionsListChange = (index, item1, index1) => {
} }
.child_container { .child_container {
position: relative;
width: 80px;
height: 95px;
left: 0;
top: -95px;
display: none;
&.active {
display: block;
}
.child_options {
position: absolute; position: absolute;
left: 50%; left: 50%;
top: -120px; top: -100px;
transform: translateX(-50%); transform: translateX(-50%);
.child_options {
position: relative;
background-image: linear-gradient( background-image: linear-gradient(
to right, to right,
rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 0%,
@ -477,8 +474,11 @@ const fnBottomChildOptionsListChange = (index, item1, index1) => {
1; 1;
border-left: none; border-left: none;
border-right: none; border-right: none;
display: none;
&.active {
display: flex; display: flex;
animation: 0.5s all; }
.child_option { .child_option {
text-align: center; text-align: center;
@ -495,7 +495,7 @@ const fnBottomChildOptionsListChange = (index, item1, index1) => {
} }
&.workSafely { &.workSafely {
left: 100%; left: 20%;
} }
} }
} }

View File

@ -168,7 +168,6 @@ const tabIndex = ref(0);
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -223,7 +222,6 @@ const tabIndex = ref(0);
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -283,7 +281,6 @@ const tabIndex = ref(0);
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -327,9 +324,9 @@ const tabIndex = ref(0);
.td { .td {
flex: 1; flex: 1;
text-align: left; text-align: left;
font-size: 14px; font-size: 12px;
color: #fff; color: #fff;
padding: 10px 10px; padding: 6px 10px;
&:nth-child(1) { &:nth-child(1) {
flex-basis: 25%; flex-basis: 25%;
} }

View File

@ -109,7 +109,6 @@ onMounted(() => {
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -174,7 +173,6 @@ onMounted(() => {
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -200,7 +198,6 @@ onMounted(() => {
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -224,9 +221,9 @@ onMounted(() => {
.td { .td {
flex: 1; flex: 1;
text-align: center; text-align: center;
font-size: 14px; font-size: 12px;
color: #fff; color: #fff;
padding: 10px 10px; padding: 6px 10px;
&:nth-child(1) { &:nth-child(1) {
flex-basis: 20px; flex-basis: 20px;

View File

@ -23,8 +23,8 @@
v-for="(item, index) in data.block2OptionsList" v-for="(item, index) in data.block2OptionsList"
:key="index" :key="index"
class="list" class="list"
@click="fnAlarmTypeClick(item)"
> >
<div @click="fnAlarmTypeClick(item)">
<div class="name">{{ item.label }}</div> <div class="name">{{ item.label }}</div>
<div class="num"> <div class="num">
<count-up :end-val="item.total"></count-up> <count-up :end-val="item.total"></count-up>
@ -32,7 +32,6 @@
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="block3"> <div class="block3">
<layout-title title="人员定位情况" /> <layout-title title="人员定位情况" />
<div class="option"> <div class="option">
@ -214,7 +213,6 @@ getPositionData();
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -224,7 +222,7 @@ getPositionData();
1; 1;
border-top: none; border-top: none;
display: flex; display: flex;
justify-content: space-around;
padding: 20px 0; padding: 20px 0;
text-align: center; text-align: center;
@ -269,7 +267,6 @@ getPositionData();
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -313,7 +310,6 @@ getPositionData();
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -357,9 +353,9 @@ getPositionData();
.td { .td {
flex: 1; flex: 1;
text-align: left; text-align: left;
font-size: 14px; font-size: 12px;
color: #fff; color: #fff;
padding: 10px 10px; padding: 6px 10px;
&:nth-child(1) { &:nth-child(1) {
flex-basis: 30%; flex-basis: 30%;
} }

View File

@ -17,8 +17,17 @@
<script setup> <script setup>
import { reactive } from "vue"; import { reactive } from "vue";
import { flyTo, reduction } from "../js/map"; import { flyTo, reduction } from "../js/map";
import { useFullscreen } from "@vueuse/core"; import { useFullscreen,useVModel } from "@vueuse/core";
const props = defineProps({
isPureMap: {
type: Boolean,
required: true,
default: false,
},
});
const emits = defineEmits(["update:isPureMap"]);
const isPureMap = useVModel(props, "isPureMap", emits);
const { isFullscreen, toggle } = useFullscreen(); const { isFullscreen, toggle } = useFullscreen();
const data = reactive({ const data = reactive({
rightOptionsList: [ rightOptionsList: [
@ -46,23 +55,18 @@ const data = reactive({
label: "返回中心点", label: "返回中心点",
action: flyTo, action: flyTo,
}, },
{
img: new URL("/src/assets/images/map/rico3.png", import.meta.url).href,
checkImg: new URL("/src/assets/images/map/rico3_on.png", import.meta.url)
.href,
check: false,
label: "切换视角",
},
{ {
img: new URL("/src/assets/images/map/rico4.png", import.meta.url).href, img: new URL("/src/assets/images/map/rico4.png", import.meta.url).href,
checkImg: new URL("/src/assets/images/map/rico4_on.png", import.meta.url) checkImg: new URL("/src/assets/images/map/rico4_on.png", import.meta.url)
.href, .href,
check: false, check: false,
label: "纯净地图", label: "纯净地图",
action: () => (isPureMap.value = !isPureMap.value),
}, },
], ],
}); });
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.right_options { .right_options {
width: 40px; width: 40px;

View File

@ -144,7 +144,6 @@ getCameraAlarmTypeData();
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -199,7 +198,6 @@ getCameraAlarmTypeData();
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -225,7 +223,6 @@ getCameraAlarmTypeData();
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,

View File

@ -126,7 +126,6 @@ const formatWork = (work) => {
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -181,7 +180,6 @@ const formatWork = (work) => {
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -207,7 +205,6 @@ const formatWork = (work) => {
rgba(0, 0, 0, 0), rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.8) rgba(0, 0, 0, 0.8)
); );
border-radius: 10px;
border: 1px solid; border: 1px solid;
border-image: linear-gradient( border-image: linear-gradient(
to bottom, to bottom,
@ -230,10 +227,10 @@ const formatWork = (work) => {
.td { .td {
flex: 1; flex: 1;
text-align: center; text-align: left;
font-size: 14px; font-size: 12px;
color: #fff; color: #fff;
padding: 10px 10px; padding: 6px 10px;
&:nth-child(1) { &:nth-child(1) {
flex-basis: 20px; flex-basis: 20px;

View File

@ -13,16 +13,26 @@
<div class="title" /> <div class="title" />
</div> </div>
</transition> </transition>
<div v-if="leftCurrentComponent" class="left_container">
<transition <transition
enter-active-class="animate__animated animate__fadeInLeft" enter-active-class="animate__animated animate__fadeInLeft"
leave-active-class="animate__animated animate__fadeOutLeft" leave-active-class="animate__animated animate__fadeOutLeft"
mode="out-in" mode="out-in"
>
<div
v-if="leftCurrentComponent && !isPureMap"
:key="Math.random()"
class="left_container"
> >
<component :is="leftCurrentComponent" /> <component :is="leftCurrentComponent" />
</transition>
</div> </div>
<div class="mid-container"> </transition>
<div class="mid-external-container">
<transition
enter-active-class="animate__animated animate__fadeInDown"
leave-active-class="animate__animated animate__fadeOutDown"
mode="out-in"
>
<div v-show="!isPureMap" class="mid-container">
<bottom-options <bottom-options
v-model:left-current-component="leftCurrentComponent" v-model:left-current-component="leftCurrentComponent"
v-model:right-current-component="rightCurrentComponent" v-model:right-current-component="rightCurrentComponent"
@ -30,20 +40,35 @@
v-model:is-historical-trajectory="isHistoricalTrajectory" v-model:is-historical-trajectory="isHistoricalTrajectory"
/> />
</div> </div>
</transition>
</div>
<transition <transition
enter-active-class="animate__animated animate__fadeInRight" enter-active-class="animate__animated animate__fadeInRight"
leave-active-class="animate__animated animate__fadeOutRight" leave-active-class="animate__animated animate__fadeOutRight"
mode="out-in" mode="out-in"
> >
<div v-if="rightCurrentComponent" class="right_container"> <div
v-if="rightCurrentComponent && !isPureMap"
:key="Math.random()"
class="right_container"
>
<component :is="rightCurrentComponent" /> <component :is="rightCurrentComponent" />
</div> </div>
</transition> </transition>
<div v-show="right_option" class="right_ico"> <div v-show="right_option" class="right_ico">
<right-ico></right-ico> <right-ico v-model:is-pure-map="isPureMap" />
</div> </div>
<historical-trajectory-options v-if="isHistoricalTrajectory" />
<transition
enter-active-class="animate__animated animate__fadeInDown"
leave-active-class="animate__animated animate__fadeOutDown"
mode="out-in"
>
<historical-trajectory-options
v-if="isHistoricalTrajectory && !isPureMap"
/>
</transition>
</div> </div>
</template> </template>
@ -64,9 +89,9 @@ const transitionKey = ref(0);
const leftCurrentComponent = ref(""); const leftCurrentComponent = ref("");
const rightCurrentComponent = ref(""); const rightCurrentComponent = ref("");
const isHistoricalTrajectory = ref(false); const isHistoricalTrajectory = ref(false);
const isPureMap = ref(false);
const userStore = useUserStore(); const userStore = useUserStore();
const CORPINFO_ID = userStore.getUserInfo.CORPINFO_ID; const CORPINFO_ID = userStore.getUserInfo.CORPINFO_ID;
onMounted(async () => { onMounted(async () => {
autofit.init({ autofit.init({
dh: document.querySelector(".map_bg").offsetHeight, dh: document.querySelector(".map_bg").offsetHeight,
@ -85,6 +110,7 @@ onBeforeUnmount(() => {
autofit.off(); autofit.off();
}); });
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
#bi_container { #bi_container {
width: 100%; width: 100%;
@ -161,6 +187,7 @@ onBeforeUnmount(() => {
left: 20px; left: 20px;
top: 100px; top: 100px;
} }
.right_container { .right_container {
width: 435px; width: 435px;
position: absolute; position: absolute;
@ -168,15 +195,18 @@ onBeforeUnmount(() => {
top: 100px; top: 100px;
} }
.mid-external-container {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
.mid-container { .mid-container {
width: 934px; width: 934px;
height: 88px; height: 88px;
background-image: url("/src/assets/images/map/bottombg.png"); background-image: url("/src/assets/images/map/bottombg.png");
background-repeat: no-repeat; background-repeat: no-repeat;
position: fixed; }
bottom: 0;
left: 50%;
transform: translateX(-50%);
} }
.right_ico { .right_ico {

View File

@ -125,7 +125,7 @@ function echarts2(id, data) {
type: "bar", type: "bar",
barWidth: 20, barWidth: 20,
tooltip: { tooltip: {
show: false, show: true,
}, },
itemStyle: { itemStyle: {
color: "#1492FF", color: "#1492FF",

View File

@ -185,7 +185,6 @@
<el-table-column <el-table-column
v-if="data.WHETHER_HAZARDS === 1" v-if="data.WHETHER_HAZARDS === 1"
label="是否包保责任人任务" label="是否包保责任人任务"
width="90"
> >
<template #default="{ row }"> <template #default="{ row }">
<span v-if="row.BAO_BAO_TYPE !== '1'"> </span> <span v-if="row.BAO_BAO_TYPE !== '1'"> </span>
@ -234,13 +233,11 @@ import {
layoutFnGetInventoryType, layoutFnGetInventoryType,
layoutFnGetTroubleshootingCycle, layoutFnGetTroubleshootingCycle,
} from "@/assets/js/data_dictionary.js"; } from "@/assets/js/data_dictionary.js";
import { import { getRiskStandardStatusList } from "@/request/hazard_investigation.js";
getCorpinfo,
getRiskStandardStatusList,
} from "@/request/hazard_investigation.js";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { reactive } from "vue"; import { reactive } from "vue";
import { getEnterpriseInfo } from "@/request/enterprise_management.js";
const data = reactive({ const data = reactive({
WHETHER_HAZARDS: "", WHETHER_HAZARDS: "",
@ -251,11 +248,11 @@ const { list, pagination, searchForm, fnGetData, fnResetPagination } =
const troubleshootingCycleList = await layoutFnGetTroubleshootingCycle(); const troubleshootingCycleList = await layoutFnGetTroubleshootingCycle();
const inventoryLevelList = await layoutFnGetInventoryLevel(); const inventoryLevelList = await layoutFnGetInventoryLevel();
const inventoryTypeList = await layoutFnGetInventoryType(); const inventoryTypeList = await layoutFnGetInventoryType();
const fnGetCorpinfo = async () => { const fnGetCorpInfo = async () => {
const resData = await getCorpinfo(); const resData = await getEnterpriseInfo();
data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS; data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS;
}; };
fnGetCorpinfo(); fnGetCorpInfo();
const fnGetDataTransfer = () => { const fnGetDataTransfer = () => {
fnGetData({ fnGetData({
DEPTIDS: searchForm.value.DEPTIDS?.join(","), DEPTIDS: searchForm.value.DEPTIDS?.join(","),

View File

@ -197,7 +197,6 @@ import {
layoutFnGetTroubleshootingType, layoutFnGetTroubleshootingType,
} from "@/assets/js/data_dictionary.js"; } from "@/assets/js/data_dictionary.js";
import { import {
getCorpinfo,
getDeleteCustomList, getDeleteCustomList,
getDeleteInventoryManagementList, getDeleteInventoryManagementList,
setCustomBatchDelete, setCustomBatchDelete,
@ -207,6 +206,7 @@ import {
} from "@/request/hazard_investigation.js"; } from "@/request/hazard_investigation.js";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { reactive } from "vue"; import { reactive } from "vue";
import { getEnterpriseInfo } from "@/request/enterprise_management.js";
const tabName = defineProps({ const tabName = defineProps({
name: { name: {
@ -228,11 +228,11 @@ const buttonJurisdiction = await useButtonJurisdiction("stoplistmanager");
const inventoryTypeList = await layoutFnGetInventoryType(); const inventoryTypeList = await layoutFnGetInventoryType();
const troubleshootingTypeList = await layoutFnGetTroubleshootingType(); const troubleshootingTypeList = await layoutFnGetTroubleshootingType();
const inventoryLevelList = await layoutFnGetInventoryLevel(); const inventoryLevelList = await layoutFnGetInventoryLevel();
const fnGetCorpinfo = async () => { const fnGetCorpInfo = async () => {
const resData = await getCorpinfo(); const resData = await getEnterpriseInfo();
data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS; data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS;
}; };
fnGetCorpinfo(); fnGetCorpInfo();
const fnGetDataTransfer = () => { const fnGetDataTransfer = () => {
fnGetData({ fnGetData({
DEPTIDS: searchForm.value.DEPTIDS?.join(","), DEPTIDS: searchForm.value.DEPTIDS?.join(","),

View File

@ -346,7 +346,6 @@ import {
} from "@/assets/js/data_dictionary.js"; } from "@/assets/js/data_dictionary.js";
import { useUserStore } from "@/pinia/user.js"; import { useUserStore } from "@/pinia/user.js";
import { import {
getCorpinfo,
getCustomList, getCustomList,
getInventoryManagementList, getInventoryManagementList,
getInventoryManagementRouteView, getInventoryManagementRouteView,
@ -364,6 +363,7 @@ import ListQrCode from "./list_qr_code.vue";
import InspectionRoute from "./inspection_route.vue"; import InspectionRoute from "./inspection_route.vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import ImportCustom from "./import_custom.vue"; import ImportCustom from "./import_custom.vue";
import { getEnterpriseInfo } from "@/request/enterprise_management.js";
const tabName = defineProps({ const tabName = defineProps({
name: { name: {
@ -415,11 +415,11 @@ const data = reactive({
}, },
WHETHER_HAZARDS: "", WHETHER_HAZARDS: "",
}); });
const fnGetCorpinfo = async () => { const fnGetCorpInfo = async () => {
const resData = await getCorpinfo(); const resData = await getEnterpriseInfo();
data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS; data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS;
}; };
fnGetCorpinfo(); fnGetCorpInfo();
const fnGetDataTransfer = () => { const fnGetDataTransfer = () => {
fnGetData({ fnGetData({
DEPTIDS: searchForm.value.DEPTIDS?.join(","), DEPTIDS: searchForm.value.DEPTIDS?.join(","),

View File

@ -1,7 +1,13 @@
<template> <template>
<div class="situation"> <div class="situation">
<div class="title">双重预防建设情况</div> <div class="title">双重预防建设情况</div>
<div class="map"></div> <div class="carousel">
<el-carousel arrow="always">
<el-carousel-item v-for="item in fourImgs" :key="item.IMGFILES_ID">
<img :src="item.url" alt="" />
</el-carousel-item>
</el-carousel>
</div>
<div class="statistics"> <div class="statistics">
<div class="item"> <div class="item">
<div> <div>
@ -43,6 +49,8 @@
import { ref } from "vue"; import { ref } from "vue";
import { getHiddenCount } from "@/request/large_screen_data_display.js"; import { getHiddenCount } from "@/request/large_screen_data_display.js";
import CountTo from "vue-countup-v3"; import CountTo from "vue-countup-v3";
import { getEnterpriseInfo } from "@/request/enterprise_management.js";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const info = ref({ const info = ref({
all: 0, all: 0,
@ -50,20 +58,23 @@ const info = ref({
yzg: 0, yzg: 0,
yys: 0, yys: 0,
}); });
const fourImgs = ref([]);
const fnGetData = async () => { const fnGetData = async () => {
const resData = await getHiddenCount(); const hiddenCountData = await getHiddenCount();
for (let i = 0; i < resData.all.length; i++) { for (let i = 0; i < hiddenCountData.all.length; i++) {
info.value.all += Number(resData.all[i]); info.value.all += Number(hiddenCountData.all[i]);
} }
for (let i = 0; i < resData.wzg.length; i++) { for (let i = 0; i < hiddenCountData.wzg.length; i++) {
info.value.wzg += Number(resData.wzg[i]); info.value.wzg += Number(hiddenCountData.wzg[i]);
} }
for (let i = 0; i < resData.yzg.length; i++) { for (let i = 0; i < hiddenCountData.yzg.length; i++) {
info.value.yzg += Number(resData.yzg[i]); info.value.yzg += Number(hiddenCountData.yzg[i]);
} }
for (let i = 0; i < resData.yys.length; i++) { for (let i = 0; i < hiddenCountData.yys.length; i++) {
info.value.yys += Number(resData.yys[i]); info.value.yys += Number(hiddenCountData.yys[i]);
} }
const enterpriseInfoData = await getEnterpriseInfo();
fourImgs.value = addingPrefixToFile(enterpriseInfoData.fourImgs);
}; };
fnGetData(); fnGetData();
</script> </script>
@ -88,8 +99,21 @@ fnGetData();
left: 0; left: 0;
} }
.map { .carousel {
flex: 1; flex: 1;
margin: 20px;
img {
width: 100%;
height: 100%;
}
:deep {
.el-carousel {
height: 100%;
.el-carousel__container {
height: 100%;
}
}
}
} }
.statistics { .statistics {

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="login"> <div class="login">
<div class="main"> <div class="main">
<div class="title">管理平台</div> <div class="title">危化安全生产管理平台</div>
<div class="form"> <div class="form">
<el-form <el-form
ref="formRef" ref="formRef"

View File

@ -61,7 +61,7 @@
{{ serialNumber(pagination, $index) }} {{ serialNumber(pagination, $index) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="CREATOR" label="添加人" /> <el-table-column prop="CREATOR_NAME" label="添加人" />
<el-table-column label="单位名称"> <el-table-column label="单位名称">
<template #default="{ row }"> <template #default="{ row }">
{{ {{

View File

@ -66,12 +66,6 @@ export default ({ mode }) => {
ws: true, ws: true,
rewrite: (path) => path.replace(/^\/api/, ""), rewrite: (path) => path.replace(/^\/api/, ""),
}, },
[loadEnv(mode, process.cwd()).VITE_PROXY_QAAQ]: {
target: loadEnv(mode, process.cwd()).VITE_QAAQ_URL,
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(/^\/qaaq_api/, ""),
},
}, },
}, },
resolve: { resolve: {