Merge branch 'shenzhen-dev' into cjw-dev

This commit is contained in:
Vce 2024-03-25 20:24:48 +08:00
commit 3a2a5be782
10 changed files with 190 additions and 172 deletions

View File

@ -5,6 +5,7 @@ NODE_ENV = "production"
# 注切换部署环境时需更改src\routers\modules\staticRouter里的路径 改src\config\config.ts里的项目标识
# VITE_API_URL = "http://139.9.66.234:6688"
# VITE_API_URL = "http://jxj.zhgdyun.com:6688"
# VITE_API_URL = 'http://jxj.zhgdyun.com:100'
# 沈阳合盈线上
# VITE_API_URL = "http://101.43.164.214:45022"
# 嘉兴王江泾公用码头

View File

@ -107,15 +107,12 @@ onMounted(async () => {
});
onBeforeUnmount(() => {
if (oWebControl.value === undefined) {
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
oWebControl.JS_Disconnect();
}
});
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
oWebControl.JS_Disconnect();
const initPlugin = () => {
oWebControl = new WebControl({
@ -295,7 +292,6 @@ const previewVideo = (data: string | null) => {
};
</script>
<style lang="scss" scoped>
.main {
border-radius: 8px;

View File

@ -1,5 +1,5 @@
<template>
<ScaleBox :width="1920" :height="1080" bgc="transparent" :delay="100" :isFlat="false">
<ScaleBox :width="1920" :height="1080" bgc="transparent" :delay="100" :isFlat="false" @scaleChange="scaleChange">
<div class="largeScreen" ref="dataScreenRef">
<div class="header">
<!-- <div class="hearderIcon"><img src="@/assets/images/jxjLogo.png" alt="" /></div> -->
@ -108,6 +108,10 @@ let nowDate = ref("2023.11.16" as any);
let projectPassDay = ref(0 as any);
//
const projectTimeInfo = ref({} as any);
const scaleValue = ref(1);
const scaleChange = (data:any) => {
scaleValue.value = data;
}
const getProjectInfo = async () => {
getNowDate();
const res: any = await getTaskTimeDetail({ projectSn: store.sn });
@ -519,7 +523,6 @@ function jumpBgd() {
height: 100%;
background: url("@/assets/images/bigImg.gif") no-repeat;
background-size: 100% 100%;
.header {
width: 100%;
height: 12%;

View File

@ -107,14 +107,12 @@ onMounted(async () => {
});
onBeforeUnmount(() => {
if (oWebControl.value === undefined) {
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
oWebControl.JS_Disconnect();
}
oWebControl.JS_Disconnect();
});
const initPlugin = () => {

View File

@ -107,14 +107,12 @@ onMounted(async () => {
});
onBeforeUnmount(() => {
if (oWebControl.value === undefined) {
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
oWebControl.JS_Disconnect();
}
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
oWebControl.JS_Disconnect();
});
const initPlugin = () => {

View File

@ -46,14 +46,13 @@ const deviceStatusOptions = ref([
{ label: "心跳", value: 2 },
]) as any;
let list = ref([]);
let list = ref([] as any);
const refScrollbar = ref(null as any); //
const ScrollbarTop = ref(0);
let moreScroll = ref(true as any);
let pageNo = ref(1 as any);
let pageSize = ref(20 as any);
let pageSize = ref(30 as any);
//
const getSmokeAlarmRecordList = async () => {
@ -96,7 +95,6 @@ onMounted(() => {
getMoreSmokeRecordList();
}
}
ScrollbarTop.value = scrollTop;
});
getSmokeAlarmRecordList();
});
@ -124,7 +122,7 @@ onMounted(() => {
padding: 2%;
position: relative;
.list-content {
height: 95%;
height: 100%;
width: 100%;
// background: url("@/assets/images/cardImg.png") no-repeat;
// background-size: 100% 100%;
@ -148,7 +146,7 @@ onMounted(() => {
}
}
.list-box {
height: 100%;
height: 92%;
.list-style:nth-child(even) {
background: rgba(39, 88, 192, 0.06);
}

View File

@ -149,14 +149,12 @@ onMounted(async () => {
});
onBeforeUnmount(() => {
if (oWebControl.value === undefined) {
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
oWebControl.JS_Disconnect();
}
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
oWebControl.JS_Disconnect();
});
const initPlugin = () => {

View File

@ -23,7 +23,7 @@ const store = GlobalStore();
const realCountTotal = ref({} as any);
//
const getMemberCareList = async () => {
const res: any = await getEntryAndExitCountApi({ projectSn: store.sn, isOpen: 1 });
const res: any = await getEntryAndExitCountApi({ projectSn: store.sn });
console.log("获取出入场车辆统计", res);
if (res.success) {
realCountTotal.value = res.result;

View File

@ -17,40 +17,41 @@
<div>进出场图片</div>
<div>全景图照片</div>
</div>
<div class="listBox">
<div v-for="(item, index) in vehicleData" class="listStyle" :key="item.id">
<div>{{ index + 1 }}</div>
<div>{{ item.carNumber }}</div>
<div>{{ item.passTime }}</div>
<div>{{ item.type==1?'出':'进' }}</div>
<div>{{ item.location }}</div>
<div>{{ item.carColor }}</div>
<div>{{ item.carType ? carTypeList[item.carType-1].name:''}}</div>
<div class="list-img">
<el-image
fit="contain"
class="el-img"
:src="item.imageUrl"
:preview-src-list="[item.imageUrl]"
>
</el-image>
<el-scrollbar class="listBox" ref="refScrollbar">
<template v-if="vehicleData.length > 0">
<div v-for="(item, index) in vehicleData" class="listStyle" :key="item.id">
<div>{{ index + 1 }}</div>
<div>{{ item.carNumber }}</div>
<div>{{ item.passTime }}</div>
<div>{{ item.type == 1 ? "出" : "进" }}</div>
<div>{{ item.location }}</div>
<div>{{ item.carColor }}</div>
<div>{{ item.carType ? carTypeList[item.carType - 1].name : "" }}</div>
<div class="list-img">
<el-image
fit="contain"
class="el-img"
:src="BASEURL + '/image/' + item.imageUrl"
:preview-src-list="[BASEURL + '/image/' + item.imageUrl]"
>
</el-image>
</div>
<div class="list-img">
<el-image
fit="contain"
class="el-img"
:src="BASEURL + '/image/' + item.panoramaUrl"
:preview-src-list="[BASEURL + '/image/' + item.panoramaUrl]"
>
</el-image>
</div>
</div>
<div class="list-img">
<el-image
fit="contain"
class="el-img"
:src="item.panoramaUrl"
:preview-src-list="[item.panoramaUrl]"
>
</el-image>
</div>
</div>
</template>
<div class="notoDta" v-if="vehicleData.length == 0">
<img src="@/assets/images/noData.png" alt="" />
<p>暂无数据</p>
</div>
</div>
</el-scrollbar>
</div>
</div>
</template>
@ -61,41 +62,71 @@ import { getEntryAndExitListApi } from "@/api/modules/vehicle";
import { GlobalStore } from "@/stores";
const store = GlobalStore();
const BASEURL = import.meta.env.VITE_API_URL;
const carTypeList = ref([{
value: '1',
name: '白名单',
},{
value: '2',
name: '黑名单',
},{
value: '3',
name: '临时车',
}])
const pageNo = ref(1 as any);
const pageSize = ref(10 as any);
const moreScroll = ref(true as any);
const refScrollbar = ref(null as any); //
const carTypeList = ref([
{
value: "1",
name: "白名单"
},
{
value: "2",
name: "黑名单"
},
{
value: "3",
name: "临时车"
}
]);
const vehicleData = ref([] as any);
//
const checked = ref(1);
const getDateData = (type: any) => {
checked.value = type;
getVehicleList();
}
const getVehicleList = async () => {
pageNo.value = 1;
moreScroll.value = true;
refScrollbar.value.wrapRef.scrollTop = 0; //
getVehicleList("search");
};
const getVehicleList = async (tip: any) => {
const res: any = await getEntryAndExitListApi({
projectSn: store.sn,
type: checked.value
timeType: checked.value,
pageNo: pageNo.value,
pageSize: pageSize.value
});
if (res.result) {
vehicleData.value = res.result.records
if(vehicleData.value && vehicleData.value.length > 0){
vehicleData.value.map((item:any) => {
item.imageUrl = BASEURL + '/' + item.imageUrl
item.panoramaUrl = BASEURL + '/' + item.panoramaUrl
})
if (tip == "more") {
vehicleData.value = vehicleData.value.concat(res.result.records);
} else {
vehicleData.value = res.result.records;
}
if (res.result.pages == pageNo.value) {
moreScroll.value = false;
} else {
pageNo.value = pageNo.value + 1;
}
}
};
onMounted(async () => {
await getVehicleList();
// console.log("", refScrollbar.value);
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
const scrollTop = e.target.scrollTop;
const scrollHeight = e.target.scrollHeight;
const clientHeight = e.target.clientHeight;
// console.log("", scrollTop, scrollHeight, clientHeight);
//
if (scrollTop >= scrollHeight - clientHeight) {
// console.log("");
if (moreScroll.value) {
getVehicleList("more");
}
}
});
await getVehicleList("search");
});
</script>
@ -105,41 +136,41 @@ onMounted(async () => {
height: 100%;
position: relative;
.select-right {
width: 20%;
display: flex;
position: absolute;
z-index: 10;
color: #fff;
font-size: 10px;
text-align: center;
line-height: 20px;
left: 21%;
top: 2.7%;
.selected {
height: 5%;
background: url("@/assets/images/dustNoise/rightImg2.png") no-repeat;
background-size: 100% 100%;
cursor: pointer;
}
.day {
padding: 0 6%;
margin-right: 5%;
z-index: 99;
}
.week {
padding: 0 6%;
margin-right: 5%;
z-index: 99;
}
.month {
padding: 0 6%;
z-index: 99;
}
.active {
background: url("@/assets/images/dustNoise/rightImg.png") no-repeat;
background-size: 100% 100%;
}
width: 20%;
display: flex;
position: absolute;
z-index: 10;
color: #fff;
font-size: 10px;
text-align: center;
line-height: 20px;
left: 21%;
top: 2.7%;
.selected {
height: 5%;
background: url("@/assets/images/dustNoise/rightImg2.png") no-repeat;
background-size: 100% 100%;
cursor: pointer;
}
.day {
padding: 0 6%;
margin-right: 5%;
z-index: 99;
}
.week {
padding: 0 6%;
margin-right: 5%;
z-index: 99;
}
.month {
padding: 0 6%;
z-index: 99;
}
.active {
background: url("@/assets/images/dustNoise/rightImg.png") no-repeat;
background-size: 100% 100%;
}
}
.title {
height: 10%;
line-height: 35px;
@ -178,24 +209,17 @@ onMounted(async () => {
}
}
.listBox {
height: 300px;
overflow-y: scroll;
height: 80%;
.listStyle {
display: flex;
justify-content: space-around;
color: #fff;
height: 10%;
line-height: 25px;
font-size: calc(100vw * 12 / 1920);
.list-img {
.el-img {
width: 35%;
img {
display: flex;
align-items: center;
width: 100%;
height: 100%;
}
width: 50px;
height: 25px;
}
}
div {
@ -210,19 +234,19 @@ onMounted(async () => {
}
}
.notoDta {
top: 45%;
width: 20%;
left: 39%;
position: absolute;
img {
width: 40%;
margin: 5% 30%;
}
p {
color: #fff;
font-size: calc(100vw * 14 / 1920);
margin: -6% 37%;
text-align: center;
}
top: 45%;
width: 20%;
left: 39%;
position: absolute;
img {
width: 40%;
margin: 5% 30%;
}
p {
color: #fff;
font-size: calc(100vw * 14 / 1920);
margin: -6% 37%;
text-align: center;
}
}
</style>

View File

@ -4,7 +4,15 @@
<div class="videoListBig">
<Card title="监控设备列表">
<el-scrollbar style="height: 100%">
<el-tree ref="treeRef" default-expand-all icon="ArrowRight" :data="shipinList" node-key="name" :props="defaultProps" @node-click="checkVideo">
<el-tree
ref="treeRef"
default-expand-all
icon="ArrowRight"
:data="shipinList"
node-key="name"
:props="defaultProps"
@node-click="checkVideo"
>
</el-tree>
<!-- <div class="decivList">
<div
@ -40,14 +48,11 @@
</div>
<!-- 播放海康 -->
<div ref="playWndBox" style="width: 90%; height: 100%; margin: 0 5% 2% 5%">
<div
id="playWnd"
class="playWnd"
:style="{
<div id="playWnd" class="playWnd" style="width: 100%; height: 100%"></div>
<!-- :style="{
height: playWndHeight + 'px',
width: playWndWidth + 'px'
}"
></div>
}" -->
</div>
</Card>
</div>
@ -112,7 +117,7 @@ let objData = ref({
//
const checkVideo = async (item: any) => {
//
if(item.serialNumber){
if (item.serialNumber) {
ysyParams.value = item;
cameraIndexCode.value = item.serialNumber;
if (videoType.value !== 1) {
@ -171,7 +176,6 @@ onMounted(async () => {
window.addEventListener("resize", e => {
if (oWebControl.value == undefined) {
// console.log("wwwww", e);
oWebControl.JS_Resize(tagDomObj?.clientWidth, tagDomObj?.clientHeight);
// oWebControl.JS_Resize(playWndHeight.value, playWndWidth.value);
// setWndCover();
@ -184,14 +188,12 @@ onMounted(async () => {
});
onBeforeUnmount(() => {
if (oWebControl.value === undefined) {
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
oWebControl.JS_Disconnect();
}
//
oWebControl.JS_HideWnd();
//
oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
oWebControl.JS_Disconnect();
});
const initPlugin = () => {
@ -481,12 +483,12 @@ const previewVideo = (data: string | null) => {
.el-tree {
background-color: transparent;
}
.el-tree>.el-tree-node:focus > .el-tree-node__content {
.el-tree > .el-tree-node:focus > .el-tree-node__content {
// background-color: #141E2B;
background: url("@/assets/images/dustNoise/listImg.png") no-repeat;
background-size: 100% 100%;
}
.el-tree>.el-tree-node>.el-tree-node__content {
.el-tree > .el-tree-node > .el-tree-node__content {
// background-color: #141E2B;
background: url("@/assets/images/dustNoise/listImg.png") no-repeat;
background-size: 100% 100%;
@ -499,20 +501,20 @@ const previewVideo = (data: string | null) => {
.el-tree-node__children .el-tree-node {
margin-top: 3%;
}
.el-tree>.el-tree-node>.el-tree-node__content:hover {
.el-tree > .el-tree-node > .el-tree-node__content:hover {
// background-color: #141E2B;
background: url("@/assets/images/dustNoise/listImg.png") no-repeat;
background-size: 100% 100%;
}
.el-tree-node__label{
.el-tree-node__label {
color: white;
font-size: 16px;
margin-bottom: 1px;
}
.el-tree>.el-tree-node>.el-tree-node__content>.el-tree-node__label {
.el-tree > .el-tree-node > .el-tree-node__content > .el-tree-node__label {
margin-left: 8%;
}
.el-tree>.el-tree-node>.el-tree-node__content>.el-tree-node__expand-icon {
.el-tree > .el-tree-node > .el-tree-node__content > .el-tree-node__expand-icon {
color: white;
font-size: 16px;
position: absolute;