Merge branch 'shenzhen-dev' into cjw-dev
This commit is contained in:
commit
3a2a5be782
@ -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"
|
||||
# 嘉兴王江泾公用码头
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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%;
|
||||
|
||||
@ -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 = () => {
|
||||
|
||||
@ -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 = () => {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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 = () => {
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user