fix:去除地图鼠标事件,增加节流库,修改消息中心,不同分辨率适配修改
This commit is contained in:
parent
a089404b02
commit
1f2662dc23
@ -54,6 +54,7 @@
|
|||||||
"js-beautify": "1.13.0",
|
"js-beautify": "1.13.0",
|
||||||
"js-cookie": "3.0.1",
|
"js-cookie": "3.0.1",
|
||||||
"jsencrypt": "3.0.0-rc.1",
|
"jsencrypt": "3.0.0-rc.1",
|
||||||
|
"lodash": "^4.17.21",
|
||||||
"nprogress": "0.2.0",
|
"nprogress": "0.2.0",
|
||||||
"ol": "^6.5.0",
|
"ol": "^6.5.0",
|
||||||
"openlayers": "^4.6.5",
|
"openlayers": "^4.6.5",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-10-14 10:46:23
|
* @Date: 2024-10-14 10:46:23
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-12-04 09:16:07
|
* @LastEditTime: 2024-12-09 15:13:56
|
||||||
* @FilePath: \znxjxt-ui\src\components\map\fssm-map.vue
|
* @FilePath: \znxjxt-ui\src\components\map\fssm-map.vue
|
||||||
* @Description: 公共地图
|
* @Description: 公共地图
|
||||||
-->
|
-->
|
||||||
@ -337,25 +337,25 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 鼠标移入事件
|
// 鼠标移入事件
|
||||||
map.on("pointermove", (e) => {
|
// map.on("pointermove", (e) => {
|
||||||
const feature = map.forEachFeatureAtPixel(
|
// const feature = map.forEachFeatureAtPixel(
|
||||||
map.getEventPixel(e.originalEvent),
|
// map.getEventPixel(e.originalEvent),
|
||||||
(mapFeature) => {
|
// (mapFeature) => {
|
||||||
return mapFeature;
|
// return mapFeature;
|
||||||
}
|
// }
|
||||||
);
|
// );
|
||||||
// 线、面要素不做鼠标移入样式修改
|
// // 线、面要素不做鼠标移入样式修改
|
||||||
if (feature) {
|
// if (feature) {
|
||||||
if (feature.getGeometry()?.getType() === "Point") {
|
// if (feature.getGeometry()?.getType() === "Point") {
|
||||||
map.getTargetElement().style.cursor = "pointer";
|
// map.getTargetElement().style.cursor = "pointer";
|
||||||
this.$emit("pointer-move", feature);
|
// this.$emit("pointer-move", feature);
|
||||||
} else {
|
// } else {
|
||||||
map.getTargetElement().style.cursor = "auto";
|
// map.getTargetElement().style.cursor = "auto";
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
map.getTargetElement().style.cursor = "auto";
|
// map.getTargetElement().style.cursor = "auto";
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
// 地图缩放级别事件
|
// 地图缩放级别事件
|
||||||
map.on("moveend", (e) => {
|
map.on("moveend", (e) => {
|
||||||
const zoom = map.getView().getZoom().toFixed(); //获取当前地图的缩放级别
|
const zoom = map.getView().getZoom().toFixed(); //获取当前地图的缩放级别
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-10-22 15:30:25
|
* @Date: 2024-10-22 15:30:25
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-12-06 15:47:24
|
* @LastEditTime: 2024-12-09 10:29:47
|
||||||
* @FilePath: \znxjxt-ui\src\views\big-screen\components\img-dialog.vue
|
* @FilePath: \znxjxt-ui\src\views\big-screen\components\img-dialog.vue
|
||||||
* @Description: 大屏查看图片弹窗
|
* @Description: 大屏查看图片弹窗
|
||||||
-->
|
-->
|
||||||
@ -192,6 +192,7 @@ import {
|
|||||||
getItemTypes,
|
getItemTypes,
|
||||||
getMediaIndex,
|
getMediaIndex,
|
||||||
} from "@/api/xj/screen/index";
|
} from "@/api/xj/screen/index";
|
||||||
|
import throttle from "lodash/throttle";
|
||||||
export default {
|
export default {
|
||||||
name: "ImgDialog",
|
name: "ImgDialog",
|
||||||
props: {
|
props: {
|
||||||
@ -316,7 +317,7 @@ export default {
|
|||||||
* @return {*}
|
* @return {*}
|
||||||
*/
|
*/
|
||||||
getSegmentList() {
|
getSegmentList() {
|
||||||
getSegment().then(({ code, data }) => {
|
getSegment({ routeId: "" }).then(({ code, data }) => {
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
this.roadTypeList = data;
|
this.roadTypeList = data;
|
||||||
}
|
}
|
||||||
@ -736,7 +737,7 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
window.addEventListener("keydown", this.handleKeydown);
|
window.addEventListener("keydown", throttle(this.handleKeydown, 100));
|
||||||
window.addEventListener("resize", this.updateRects);
|
window.addEventListener("resize", this.updateRects);
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
|
|||||||
@ -1,216 +0,0 @@
|
|||||||
<!--
|
|
||||||
* @Author: SunTao 328867980@qq.com
|
|
||||||
* @Date: 2024-12-06 16:21:07
|
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
|
||||||
* @LastEditTime: 2024-12-06 17:27:08
|
|
||||||
* @FilePath: \znxjxt-ui\src\views\big-screen\components\img-screen-dialog.vue
|
|
||||||
* @Description: 图片弹窗
|
|
||||||
-->
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div class="content">
|
|
||||||
<div class="left-list">
|
|
||||||
<div class="sidebar">
|
|
||||||
<infinite-loading
|
|
||||||
direction="top"
|
|
||||||
@infinite="infiniteHandlerTop"
|
|
||||||
></infinite-loading>
|
|
||||||
<img
|
|
||||||
v-for="(item, index) in defectData"
|
|
||||||
:key="`${item.id}-${index}`"
|
|
||||||
:src="item.url"
|
|
||||||
:alt="'Image ' + (index + 1)"
|
|
||||||
@click="showImage(index)"
|
|
||||||
:class="{ selected: currentIndex === index }"
|
|
||||||
/>
|
|
||||||
<infinite-loading
|
|
||||||
direction="bottom"
|
|
||||||
@infinite="infiniteHandler"
|
|
||||||
></infinite-loading>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import InfiniteLoading from "vue-infinite-loading";
|
|
||||||
import {
|
|
||||||
defeaseList,
|
|
||||||
getSegment,
|
|
||||||
getItemTypes,
|
|
||||||
getMediaIndex,
|
|
||||||
} from "@/api/xj/screen/index";
|
|
||||||
export default {
|
|
||||||
name: "ImgScreenDialog",
|
|
||||||
components: { InfiniteLoading },
|
|
||||||
props: {
|
|
||||||
bottomTipClick: {
|
|
||||||
type: String,
|
|
||||||
default: "",
|
|
||||||
},
|
|
||||||
imageItem: {
|
|
||||||
type: Object,
|
|
||||||
default: () => {},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
// 左侧图片数据
|
|
||||||
defectData: [],
|
|
||||||
// 当前展示的图片index
|
|
||||||
currentIndex: 0,
|
|
||||||
// 分页绑定
|
|
||||||
params: {
|
|
||||||
page: 1,
|
|
||||||
size: 10,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
// this.getList();
|
|
||||||
// this.infiniteHandler();
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
/**
|
|
||||||
* @description: 向上加载数据
|
|
||||||
* @param {*}
|
|
||||||
* @return {*}
|
|
||||||
*/
|
|
||||||
infiniteHandlerTop($state) {
|
|
||||||
if (this.params.page >= 2) {
|
|
||||||
const data = {
|
|
||||||
classType: this.bottomTipClick,
|
|
||||||
...this.imgForm,
|
|
||||||
...this.params,
|
|
||||||
};
|
|
||||||
defeaseList(data)
|
|
||||||
.then(({ code, data }) => {
|
|
||||||
if (code === 200) {
|
|
||||||
this.params.page -= 1;
|
|
||||||
this.defectData.unshift(...data.aim);
|
|
||||||
$state.loaded();
|
|
||||||
} else {
|
|
||||||
$state.complete();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
this.showImage(this.currentIndex);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @description: 向下加载更多图片
|
|
||||||
* @param {*}
|
|
||||||
* @return {*}
|
|
||||||
*/
|
|
||||||
infiniteHandler($state) {
|
|
||||||
const data = {
|
|
||||||
classType: this.bottomTipClick,
|
|
||||||
...this.imgForm,
|
|
||||||
...this.params,
|
|
||||||
};
|
|
||||||
defeaseList(data)
|
|
||||||
.then(({ code, data }) => {
|
|
||||||
if (code === 200) {
|
|
||||||
this.params.page += 1;
|
|
||||||
this.defectData.push(...data.aim);
|
|
||||||
$state.loaded();
|
|
||||||
} else {
|
|
||||||
$state.complete();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
this.showImage(this.currentIndex);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @description: 中间显示图片
|
|
||||||
* @param {*} index
|
|
||||||
* @return {*}
|
|
||||||
*/
|
|
||||||
showImage(index) {},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.content {
|
|
||||||
width: 100%;
|
|
||||||
// height: 54rem;
|
|
||||||
height: calc(100vh - 3rem);
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
background-color: #2e3a46;
|
|
||||||
}
|
|
||||||
|
|
||||||
.left-list {
|
|
||||||
width: 16rem;
|
|
||||||
height: 100%;
|
|
||||||
|
|
||||||
.img-top {
|
|
||||||
width: 100%;
|
|
||||||
height: 2.5rem;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
.img-top-div {
|
|
||||||
cursor: pointer;
|
|
||||||
width: 30%;
|
|
||||||
height: 90%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
border: 1px solid #00aaff;
|
|
||||||
border-radius: 4px;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.img-top-div-click {
|
|
||||||
background-color: rgb(69, 91, 140);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar {
|
|
||||||
width: 15.5rem;
|
|
||||||
height: calc(100% - 2.5rem);
|
|
||||||
// height: 815px;
|
|
||||||
background-color: #1f292e;
|
|
||||||
padding: 10px;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar::-webkit-scrollbar {
|
|
||||||
width: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar::-webkit-scrollbar-track {
|
|
||||||
background: #2e3a46;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar::-webkit-scrollbar-thumb {
|
|
||||||
background: #444c51;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar::-webkit-scrollbar-thumb:hover {
|
|
||||||
background: #00aaff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar img {
|
|
||||||
width: 100%;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
border-radius: 3px;
|
|
||||||
transition: transform 0.2s, border 0.2s;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar img.selected {
|
|
||||||
border: 3px solid #00aaff;
|
|
||||||
transform: scale(1.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-11-08 11:56:02
|
* @Date: 2024-11-08 11:56:02
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-12-06 16:23:54
|
* @LastEditTime: 2024-12-09 09:25:57
|
||||||
* @FilePath: \znxjxt-ui\src\views\big-screen\disease-components\traffic-log.vue
|
* @FilePath: \znxjxt-ui\src\views\big-screen\disease-components\traffic-log.vue
|
||||||
* @Description: 病害巡检-病害日志
|
* @Description: 病害巡检-病害日志
|
||||||
-->
|
-->
|
||||||
@ -146,11 +146,7 @@
|
|||||||
label="路段名称"
|
label="路段名称"
|
||||||
>
|
>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column show-overflow-tooltip prop="companyName" label="所属">
|
||||||
show-overflow-tooltip
|
|
||||||
prop="companyName"
|
|
||||||
label="所属"
|
|
||||||
>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="state" label="病害状态">
|
<el-table-column prop="state" label="病害状态">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@ -256,6 +252,7 @@ export default {
|
|||||||
this.getData();
|
this.getData();
|
||||||
this.getLineList();
|
this.getLineList();
|
||||||
this.getAllDefectType();
|
this.getAllDefectType();
|
||||||
|
this.getSegmentList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/**
|
/**
|
||||||
@ -277,12 +274,8 @@ export default {
|
|||||||
* @return {*}
|
* @return {*}
|
||||||
*/
|
*/
|
||||||
chengeLine(val) {
|
chengeLine(val) {
|
||||||
if (val) {
|
|
||||||
this.getSegmentList(val);
|
|
||||||
} else {
|
|
||||||
this.trafficForm.segmentId = "";
|
this.trafficForm.segmentId = "";
|
||||||
this.segmentList = [];
|
this.getSegmentList(val);
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-10-21 09:59:32
|
* @Date: 2024-10-21 09:59:32
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-12-05 17:30:29
|
* @LastEditTime: 2024-12-09 11:39:11
|
||||||
* @FilePath: \znxjxt-ui\src\views\big-screen\disease-components\traffic-safety.vue
|
* @FilePath: \znxjxt-ui\src\views\big-screen\disease-components\traffic-safety.vue
|
||||||
* @Description: 病害巡检大屏-今日巡查
|
* @Description: 病害巡检大屏-今日巡查
|
||||||
-->
|
-->
|
||||||
@ -650,7 +650,7 @@ export default {
|
|||||||
.right-sum {
|
.right-sum {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 4rem;
|
height: 45%;
|
||||||
display: flex;
|
display: flex;
|
||||||
padding-left: 1rem;
|
padding-left: 1rem;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@ -661,7 +661,6 @@ export default {
|
|||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
background-position: 100% 50%;
|
background-position: 100% 50%;
|
||||||
color: #aac6c7;
|
color: #aac6c7;
|
||||||
font-size: 0.9rem;
|
|
||||||
|
|
||||||
span {
|
span {
|
||||||
margin-right: 0.5rem;
|
margin-right: 0.5rem;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-10-17 11:34:00
|
* @Date: 2024-10-17 11:34:00
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-12-05 14:22:25
|
* @LastEditTime: 2024-12-09 10:52:43
|
||||||
* @FilePath: \znxjxt-ui\src\views\big-screen\index.vue
|
* @FilePath: \znxjxt-ui\src\views\big-screen\index.vue
|
||||||
* @Description: 大屏首页
|
* @Description: 大屏首页
|
||||||
-->
|
-->
|
||||||
@ -22,16 +22,36 @@
|
|||||||
<div class="header-time">
|
<div class="header-time">
|
||||||
<!-- 消息中心 -->
|
<!-- 消息中心 -->
|
||||||
<div class="header-news">
|
<div class="header-news">
|
||||||
<el-popover placement="bottom-end" width="400" popper-class="screen-message-popover" trigger="hover">
|
<el-popover
|
||||||
|
placement="bottom-end"
|
||||||
|
width="400"
|
||||||
|
popper-class="screen-message-popover"
|
||||||
|
trigger="hover"
|
||||||
|
>
|
||||||
<div class="screen-message-content">
|
<div class="screen-message-content">
|
||||||
<div class="message-content">
|
<div class="message-content">
|
||||||
<fssm-scroll style="max-height: 12rem;">
|
<fssm-scroll style="max-height: 12rem">
|
||||||
<div class="message-item" v-for="(item, index) in messageList" :key="`message-item-${index}`">
|
<div
|
||||||
<div class="item-top" @click="handleMessageItemClick(item.notificationType)">
|
class="message-item"
|
||||||
|
v-for="(item, index) in messageList"
|
||||||
|
:key="`message-item-${index}`"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="item-top"
|
||||||
|
@click="handleMessageItemClick(item.notificationType)"
|
||||||
|
>
|
||||||
<div class="index">
|
<div class="index">
|
||||||
<!-- <i v-if="item.title === '成功'" style="color: #67c23a" class="el-icon-success"></i> -->
|
<!-- <i v-if="item.title === '成功'" style="color: #67c23a" class="el-icon-success"></i> -->
|
||||||
<i v-if="item.notificationType === 'REMIND'" style="color: #e6a23c" class="el-icon-info"></i>
|
<i
|
||||||
<i v-if="item.notificationType === 'WARNING'" style="color: #909399" class="el-icon-warning"></i>
|
v-if="item.notificationType === 'REMIND'"
|
||||||
|
style="color: #e6a23c"
|
||||||
|
class="el-icon-info"
|
||||||
|
></i>
|
||||||
|
<i
|
||||||
|
v-if="item.notificationType === 'WARNING'"
|
||||||
|
style="color: #909399"
|
||||||
|
class="el-icon-warning"
|
||||||
|
></i>
|
||||||
<!-- <i v-if="item.title === '错误'" style="color: #f56c6c" class="el-icon-error"></i> -->
|
<!-- <i v-if="item.title === '错误'" style="color: #f56c6c" class="el-icon-error"></i> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="time">
|
<div class="time">
|
||||||
@ -48,7 +68,12 @@
|
|||||||
</fssm-scroll>
|
</fssm-scroll>
|
||||||
</div>
|
</div>
|
||||||
<div class="message-footer">
|
<div class="message-footer">
|
||||||
<el-button @click="handleMessageClick" icon="el-icon-d-arrow-right" type="text">查看更多</el-button>
|
<el-button
|
||||||
|
@click="handleMessageClick"
|
||||||
|
icon="el-icon-d-arrow-right"
|
||||||
|
type="text"
|
||||||
|
>查看更多</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<i slot="reference" class="el-icon-message-solid">
|
<i slot="reference" class="el-icon-message-solid">
|
||||||
@ -68,30 +93,58 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="screen-middle">
|
<div class="screen-middle">
|
||||||
<div class="screen-left">
|
<div class="screen-left">
|
||||||
<module-block v-for="(item, index) in leftModuleList" :key="`left-module-list-${index}`" :width="item.width"
|
<module-block
|
||||||
:height="item.height" :title="item.title" :class="item.class">
|
v-for="(item, index) in leftModuleList"
|
||||||
|
:key="`left-module-list-${index}`"
|
||||||
|
:width="item.width"
|
||||||
|
:height="item.height"
|
||||||
|
:title="item.title"
|
||||||
|
:class="item.class"
|
||||||
|
>
|
||||||
<template>
|
<template>
|
||||||
<component :select="item.select" :is="item.component" :bottomTipClick="bottomTipClick"></component>
|
<component
|
||||||
|
:select="item.select"
|
||||||
|
:is="item.component"
|
||||||
|
:bottomTipClick="bottomTipClick"
|
||||||
|
></component>
|
||||||
</template>
|
</template>
|
||||||
<template slot="operation" v-if="item.selectIsShow">
|
<template slot="operation" v-if="item.selectIsShow">
|
||||||
<el-radio-group class="screen-checkBox" v-model="item.select">
|
<el-radio-group class="screen-checkBox" v-model="item.select">
|
||||||
<el-radio-button v-for="(item, index) in selectTypeArr" :label="item.value"
|
<el-radio-button
|
||||||
:key="`left-screen-${index}`">{{ item.label }}</el-radio-button>
|
v-for="(item, index) in selectTypeArr"
|
||||||
|
:label="item.value"
|
||||||
|
:key="`left-screen-${index}`"
|
||||||
|
>{{ item.label }}</el-radio-button
|
||||||
|
>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</template>
|
</template>
|
||||||
</module-block>
|
</module-block>
|
||||||
</div>
|
</div>
|
||||||
<div class="screen-right">
|
<div class="screen-right">
|
||||||
<module-block v-for="(item, index) in rightModuleList" :key="`right-module-list-${index}`" :width="item.width"
|
<module-block
|
||||||
:height="item.height" :title="item.title" :class="item.class">
|
v-for="(item, index) in rightModuleList"
|
||||||
|
:key="`right-module-list-${index}`"
|
||||||
|
:width="item.width"
|
||||||
|
:height="item.height"
|
||||||
|
:title="item.title"
|
||||||
|
:class="item.class"
|
||||||
|
>
|
||||||
<template>
|
<template>
|
||||||
<component :select="item.select" :is="item.component" :bottomTipClick="bottomTipClick"
|
<component
|
||||||
@imagePoint="getimagePoint"></component>
|
:select="item.select"
|
||||||
|
:is="item.component"
|
||||||
|
:bottomTipClick="bottomTipClick"
|
||||||
|
@imagePoint="getimagePoint"
|
||||||
|
></component>
|
||||||
</template>
|
</template>
|
||||||
<template slot="operation" v-if="item.selectIsShow">
|
<template slot="operation" v-if="item.selectIsShow">
|
||||||
<el-radio-group class="screen-checkBox" v-model="item.select">
|
<el-radio-group class="screen-checkBox" v-model="item.select">
|
||||||
<el-radio-button v-for="(item, index) in selectTypeArr" :label="item.value"
|
<el-radio-button
|
||||||
:key="`right-screen-${index}`">{{ item.label }}</el-radio-button>
|
v-for="(item, index) in selectTypeArr"
|
||||||
|
:label="item.value"
|
||||||
|
:key="`right-screen-${index}`"
|
||||||
|
>{{ item.label }}</el-radio-button
|
||||||
|
>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</template>
|
</template>
|
||||||
</module-block>
|
</module-block>
|
||||||
@ -101,9 +154,12 @@
|
|||||||
<div class="road-checkBox" v-if="showIconList">
|
<div class="road-checkBox" v-if="showIconList">
|
||||||
<fssm-scroll class="road-scroll">
|
<fssm-scroll class="road-scroll">
|
||||||
<el-checkbox-group v-model="iconType" @change="handleChecked">
|
<el-checkbox-group v-model="iconType" @change="handleChecked">
|
||||||
<el-checkbox v-for="(item, index) in iconTypeList" :label="item.value" :key="`check-${index}`">{{
|
<el-checkbox
|
||||||
item.label
|
v-for="(item, index) in iconTypeList"
|
||||||
}}</el-checkbox>
|
:label="item.value"
|
||||||
|
:key="`check-${index}`"
|
||||||
|
>{{ item.label }}</el-checkbox
|
||||||
|
>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</fssm-scroll>
|
</fssm-scroll>
|
||||||
</div>
|
</div>
|
||||||
@ -115,22 +171,40 @@
|
|||||||
<!-- 图背景下选择框 -->
|
<!-- 图背景下选择框 -->
|
||||||
<div class="map-image-select">
|
<div class="map-image-select">
|
||||||
病害类型筛选:
|
病害类型筛选:
|
||||||
<el-cascader v-model="mapCareSelect" popper-class="screen-index-cascader" :options="dieaseOptions" :props="{
|
<el-cascader
|
||||||
|
v-model="mapCareSelect"
|
||||||
|
popper-class="screen-index-cascader"
|
||||||
|
:options="dieaseOptions"
|
||||||
|
:props="{
|
||||||
checkStrictly: true,
|
checkStrictly: true,
|
||||||
emitPath: true,
|
emitPath: true,
|
||||||
children: 'subTypes',
|
children: 'subTypes',
|
||||||
}" @change="getMapCare" clearable></el-cascader>
|
}"
|
||||||
|
@change="getMapCare"
|
||||||
|
clearable
|
||||||
|
></el-cascader>
|
||||||
</div>
|
</div>
|
||||||
<div class="map-care">
|
<div class="map-care">
|
||||||
<div class="map-care-div" :class="`map-care-div-${item.status}`" v-for="(item, index) in mapCareList"
|
<div
|
||||||
:key="`map-care-${index}`" :style="{ left: item.left, top: item.top }">
|
class="map-care-div"
|
||||||
|
:class="`map-care-div-${item.status}`"
|
||||||
|
v-for="(item, index) in mapCareList"
|
||||||
|
:key="`map-care-${index}`"
|
||||||
|
:style="{ left: item.left, top: item.top }"
|
||||||
|
>
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 地图 -->
|
<!-- 地图 -->
|
||||||
<fssm-map v-if="elementDiv !== 'OverviewScreen'" ref="roadMap" :showChange="true"
|
<fssm-map
|
||||||
:controlStyle="{ top: '10%', left: '26%' }" @feature-select="featureSelect" @map-zoom="getZoom"></fssm-map>
|
v-if="elementDiv !== 'OverviewScreen'"
|
||||||
|
ref="roadMap"
|
||||||
|
:showChange="true"
|
||||||
|
:controlStyle="{ top: '10%', left: '26%' }"
|
||||||
|
@feature-select="featureSelect"
|
||||||
|
@map-zoom="getZoom"
|
||||||
|
></fssm-map>
|
||||||
<!-- @map-moveend="mapMoveend" -->
|
<!-- @map-moveend="mapMoveend" -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -138,33 +212,72 @@
|
|||||||
<!-- 病害巡检4种类型按钮 -->
|
<!-- 病害巡检4种类型按钮 -->
|
||||||
<div class="footer-change-map">
|
<div class="footer-change-map">
|
||||||
<template v-if="elementDiv === 'DiseaseScreen'">
|
<template v-if="elementDiv === 'DiseaseScreen'">
|
||||||
<div class="change-map-div" :class="bottomTipClick === item.click ? 'change-map-click' : ''"
|
<div
|
||||||
v-for="(item, index) in changeMapBtn" :key="`btn-${index}`" @click="changeIconType(item.click)">
|
class="change-map-div"
|
||||||
|
:class="bottomTipClick === item.click ? 'change-map-click' : ''"
|
||||||
|
v-for="(item, index) in changeMapBtn"
|
||||||
|
:key="`btn-${index}`"
|
||||||
|
@click="changeIconType(item.click)"
|
||||||
|
>
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<!-- 切换3种导航栏按钮 -->
|
<!-- 切换3种导航栏按钮 -->
|
||||||
<div class="footer-change-vue">
|
<div class="footer-change-vue">
|
||||||
<div :class="elementDiv === item.component
|
<div
|
||||||
|
:class="
|
||||||
|
elementDiv === item.component
|
||||||
? `change-vue-click-${item.component}`
|
? `change-vue-click-${item.component}`
|
||||||
: `change-vue-${item.component}`
|
: `change-vue-${item.component}`
|
||||||
" v-for="(item, index) in elementList" :key="`footer-${index}`" @click="changeElement(item)"></div>
|
"
|
||||||
|
v-for="(item, index) in elementList"
|
||||||
|
:key="`footer-${index}`"
|
||||||
|
@click="changeElement(item)"
|
||||||
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 详情图片弹窗 -->
|
<!-- 详情图片弹窗 -->
|
||||||
<el-dialog :title="imgTitle" :visible.sync="imgVisible" width="95rem" append-to-body fullscreen
|
<el-dialog
|
||||||
:close-on-click-modal="false" destroy-on-close @close="imgCancel">
|
:title="imgTitle"
|
||||||
<img-dialog v-if="imgTitle === '查看'" :imageItem="imageItem" :bottomTipClick="bottomTipClick"></img-dialog>
|
:visible.sync="imgVisible"
|
||||||
|
width="95rem"
|
||||||
|
append-to-body
|
||||||
|
fullscreen
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
destroy-on-close
|
||||||
|
@close="imgCancel"
|
||||||
|
>
|
||||||
|
<img-dialog
|
||||||
|
v-if="imgTitle === '查看'"
|
||||||
|
:imageItem="imageItem"
|
||||||
|
:bottomTipClick="bottomTipClick"
|
||||||
|
></img-dialog>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 查看点位图片弹窗 -->
|
<!-- 查看点位图片弹窗 -->
|
||||||
<el-dialog title="查看点位" :visible.sync="showImageDialog" width="90rem" append-to-body :close-on-click-modal="false"
|
<el-dialog
|
||||||
destroy-on-close @close="screenImgCancel">
|
title="查看点位"
|
||||||
|
:visible.sync="showImageDialog"
|
||||||
|
width="90rem"
|
||||||
|
append-to-body
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
destroy-on-close
|
||||||
|
@close="screenImgCancel"
|
||||||
|
>
|
||||||
<div class="view-image-container" ref="imageContainer">
|
<div class="view-image-container" ref="imageContainer">
|
||||||
<img :src="screenImage.imageUrl" alt="Main Image" ref="mainImage" @load="updateScreenRects" />
|
<img
|
||||||
<div v-for="(rect, index) in screenRects" :key="index" class="rect-overlay" :style="getScreenRectStyle(rect)">
|
:src="screenImage.imageUrl"
|
||||||
</div>
|
alt="Main Image"
|
||||||
|
ref="mainImage"
|
||||||
|
@load="updateScreenRects"
|
||||||
|
/>
|
||||||
|
<div
|
||||||
|
v-for="(rect, index) in screenRects"
|
||||||
|
:key="index"
|
||||||
|
class="rect-overlay"
|
||||||
|
:style="getScreenRectStyle(rect)"
|
||||||
|
></div>
|
||||||
<div class="rect-image">
|
<div class="rect-image">
|
||||||
采集时间:
|
采集时间:
|
||||||
{{ screenImage.createTime }} 起始桩号:
|
{{ screenImage.createTime }} 起始桩号:
|
||||||
@ -174,7 +287,11 @@
|
|||||||
{{ screenImage.iconTypeName || "暂无数据" }}
|
{{ screenImage.iconTypeName || "暂无数据" }}
|
||||||
<span v-if="this.elementDiv === 'DiseaseScreen'">
|
<span v-if="this.elementDiv === 'DiseaseScreen'">
|
||||||
病害面积:{{ screenImage.targetArea }}平方米 病害长度:{{
|
病害面积:{{ screenImage.targetArea }}平方米 病害长度:{{
|
||||||
screenImage.targetLen * 1 <= 0 ? "暂无数据" : `${screenImage.targetLen}米` }} </span>
|
screenImage.targetLen * 1 <= 0
|
||||||
|
? "暂无数据"
|
||||||
|
: `${screenImage.targetLen}米`
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -439,14 +556,14 @@ export default {
|
|||||||
getNoticeList({ read: 1 }).then(({ code, rows, total }) => {
|
getNoticeList({ read: 1 }).then(({ code, rows, total }) => {
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
this.messageList = rows;
|
this.messageList = rows;
|
||||||
this.noticeNum = total
|
this.noticeNum = total;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}, 5000);
|
}, 5000);
|
||||||
getNoticeList({ read: 1 }).then(({ code, rows, total }) => {
|
getNoticeList({ read: 1 }).then(({ code, rows, total }) => {
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
this.messageList = rows;
|
this.messageList = rows;
|
||||||
this.noticeNum = total
|
this.noticeNum = total;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// this.messageList = [
|
// this.messageList = [
|
||||||
@ -704,7 +821,8 @@ export default {
|
|||||||
return new Style({
|
return new Style({
|
||||||
image: new Icon({
|
image: new Icon({
|
||||||
crossOrigin: "anonymous",
|
crossOrigin: "anonymous",
|
||||||
src: require(`@/assets/screen/index/${this.mapLogeList[
|
src: require(`@/assets/screen/index/${
|
||||||
|
this.mapLogeList[
|
||||||
feature.getProperties().features[0].get("data").iconType
|
feature.getProperties().features[0].get("data").iconType
|
||||||
]
|
]
|
||||||
}.png`),
|
}.png`),
|
||||||
@ -1458,7 +1576,8 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .baseLayerClass {
|
::v-deep .baseLayerClass {
|
||||||
filter: grayscale(200%) invert(200%) sepia(50%) hue-rotate(175deg) brightness(80%) saturate(550%);
|
filter: grayscale(200%) invert(200%) sepia(50%) hue-rotate(175deg)
|
||||||
|
brightness(80%) saturate(550%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1660,7 +1779,7 @@ export default {
|
|||||||
.view-image-container {
|
.view-image-container {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 80%;
|
height: 50rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-10-18 09:42:49
|
* @Date: 2024-10-18 09:42:49
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-12-05 17:13:16
|
* @LastEditTime: 2024-12-09 11:42:55
|
||||||
* @FilePath: \znxjxt-ui\src\views\big-screen\overview-components\today-inspection.vue
|
* @FilePath: \znxjxt-ui\src\views\big-screen\overview-components\today-inspection.vue
|
||||||
* @Description: 总览大屏-今日巡查
|
* @Description: 总览大屏-今日巡查
|
||||||
-->
|
-->
|
||||||
@ -658,41 +658,12 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// .right-rate {
|
|
||||||
// width: 100%;
|
|
||||||
// height: 45%;
|
|
||||||
// padding-left: 1rem;
|
|
||||||
// display: flex;
|
|
||||||
// justify-content: center;
|
|
||||||
// line-height: 3rem;
|
|
||||||
// background-image: url("~@/assets/screen/disease/right-rate.png");
|
|
||||||
// background-repeat: no-repeat;
|
|
||||||
// background-size: 100%;
|
|
||||||
// background-position: 100% 50%;
|
|
||||||
// color: #aac6c7;
|
|
||||||
|
|
||||||
// span {
|
|
||||||
// font-size: 1.2rem;
|
|
||||||
// font-weight: 800;
|
|
||||||
// font-family: "DouYu";
|
|
||||||
// margin-right: 0.5rem;
|
|
||||||
// background: linear-gradient(
|
|
||||||
// to bottom,
|
|
||||||
// #ffffff,
|
|
||||||
// #e9bc5c
|
|
||||||
// ); /*设置渐变的方向从左到右 颜色从ff0000到ffff00*/
|
|
||||||
// background-clip: text; /*将设置的背景颜色限制在文字中*/
|
|
||||||
// -webkit-text-fill-color: transparent; /*给文字设置成透明*/
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
.right-rate {
|
.right-rate {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 45%;
|
height: 45%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-family: "DouYu";
|
font-family: "DouYu";
|
||||||
font-size: 0.9rem;
|
|
||||||
|
|
||||||
.up {
|
.up {
|
||||||
color: #ff2e2e;
|
color: #ff2e2e;
|
||||||
|
|||||||
@ -109,7 +109,7 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding-left: 3.5rem;
|
padding-left: 13%;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
@ -216,4 +216,3 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-10-18 15:15:04
|
* @Date: 2024-10-18 15:15:04
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-11-19 09:54:43
|
* @LastEditTime: 2024-12-09 11:47:49
|
||||||
* @FilePath: \znxjxt-ui\src\views\big-screen\road-components\manage-maintain.vue
|
* @FilePath: \znxjxt-ui\src\views\big-screen\road-components\manage-maintain.vue
|
||||||
* @Description: 道路资产大屏-管养道路统计
|
* @Description: 道路资产大屏-管养道路统计
|
||||||
-->
|
-->
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-10-29 15:23:44
|
* @Date: 2024-10-29 15:23:44
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-11-18 17:45:39
|
* @LastEditTime: 2024-12-09 11:53:20
|
||||||
* @FilePath: \znxjxt-ui\src\views\index-components\road-index.vue
|
* @FilePath: \znxjxt-ui\src\views\index-components\road-index.vue
|
||||||
* @Description: 首页-公路资产
|
* @Description: 首页-公路资产
|
||||||
-->
|
-->
|
||||||
@ -329,7 +329,7 @@ export default {
|
|||||||
// width: 24%;
|
// width: 24%;
|
||||||
width: 28%;
|
width: 28%;
|
||||||
height: 40%;
|
height: 40%;
|
||||||
padding: 0 0.5rem 0 3.5rem;
|
padding: 0 0.5rem 0 7%;
|
||||||
margin: 0.4rem 0;
|
margin: 0.4rem 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-10-29 15:30:35
|
* @Date: 2024-10-29 15:30:35
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-12-04 09:56:31
|
* @LastEditTime: 2024-12-09 11:54:48
|
||||||
* @FilePath: \znxjxt-ui\src\views\index-components\traffic-index.vue
|
* @FilePath: \znxjxt-ui\src\views\index-components\traffic-index.vue
|
||||||
* @Description: 首页-路况评定
|
* @Description: 首页-路况评定
|
||||||
-->
|
-->
|
||||||
@ -19,7 +19,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="traffic-table">
|
<div class="traffic-table">
|
||||||
<el-table :data="trafficTableData" style="width: 100%" height="180">
|
<el-table :data="trafficTableData" style="width: 100%" height="95%">
|
||||||
<el-table-column type="index" label="序号"></el-table-column>
|
<el-table-column type="index" label="序号"></el-table-column>
|
||||||
<el-table-column prop="name" show-overflow-tooltip label="名称">
|
<el-table-column prop="name" show-overflow-tooltip label="名称">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-11-20 11:58:33
|
* @Date: 2024-11-20 11:58:33
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-12-05 15:03:52
|
* @LastEditTime: 2024-12-09 09:34:17
|
||||||
* @FilePath: \znxjxt-ui\src\views\xj\inspection-warn\warning-center\index.vue
|
* @FilePath: \znxjxt-ui\src\views\xj\inspection-warn\warning-center\index.vue
|
||||||
* @Description: 预警中心-信息中心
|
* @Description: 预警中心-信息中心
|
||||||
-->
|
-->
|
||||||
@ -10,41 +10,89 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<!-- 搜索表单 -->
|
<!-- 搜索表单 -->
|
||||||
<el-form :model="warnForm" ref="queryForm" size="small" :inline="true" label-width="5rem">
|
<el-form
|
||||||
|
:model="warnForm"
|
||||||
|
ref="queryForm"
|
||||||
|
size="small"
|
||||||
|
:inline="true"
|
||||||
|
label-width="5rem"
|
||||||
|
>
|
||||||
<!-- <el-form-item label="消息类型" prop="type">
|
<!-- <el-form-item label="消息类型" prop="type">
|
||||||
<el-select v-model="warnForm.type" placeholder="请选择消息类型" filterable clearable>
|
<el-select v-model="warnForm.type" placeholder="请选择消息类型" filterable clearable>
|
||||||
<el-option v-for="item in deviceList" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option v-for="item in deviceList" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="时间" prop="dateTime">
|
<el-form-item label="时间" prop="dateTime">
|
||||||
<el-date-picker v-model="dateTime" type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期"
|
<el-date-picker
|
||||||
format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable />
|
v-model="dateTime"
|
||||||
|
type="datetimerange"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="阅读状态" prop="read">
|
<el-form-item label="阅读状态" prop="read">
|
||||||
<el-select v-model="warnForm.read" placeholder="请选择阅读状态" clearable>
|
<el-select
|
||||||
<el-option v-for="item in readStatusList" :key="item.value" :label="item.label" :value="item.value" />
|
v-model="warnForm.read"
|
||||||
|
placeholder="请选择阅读状态"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in readStatusList"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button
|
||||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
type="primary"
|
||||||
|
icon="el-icon-search"
|
||||||
|
size="mini"
|
||||||
|
@click="handleQuery"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="el-icon-check" size="mini" @click="handleRead"
|
<el-button
|
||||||
v-hasPermi="['system:defect:add']">全部已读
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-check"
|
||||||
|
size="mini"
|
||||||
|
@click="handleRead"
|
||||||
|
v-hasPermi="['system:defect:add']"
|
||||||
|
>全部已读
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
|
<el-button
|
||||||
@click="handleDelete(null)" v-hasPermi="['system:defect:remove']">批量删除
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete(null)"
|
||||||
|
v-hasPermi="['system:defect:remove']"
|
||||||
|
>批量删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<!-- 导航栏 -->
|
<!-- 导航栏 -->
|
||||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||||
<el-tab-pane v-for="(item, index) in editableTabs" :key="`tabs-${index}`" :label="item.title" :name="item.code">
|
<el-tab-pane
|
||||||
|
v-for="(item, index) in editableTabs"
|
||||||
|
:key="`tabs-${index}`"
|
||||||
|
:label="item.title"
|
||||||
|
:name="item.code"
|
||||||
|
>
|
||||||
<!-- 标签页头 -->
|
<!-- 标签页头 -->
|
||||||
<span slot="label">
|
<span slot="label">
|
||||||
<!-- <i
|
<!-- <i
|
||||||
@ -52,35 +100,81 @@
|
|||||||
style="color: #67c23a"
|
style="color: #67c23a"
|
||||||
class="el-icon-success"
|
class="el-icon-success"
|
||||||
></i> -->
|
></i> -->
|
||||||
<i v-if="item.code === 'REMIND'" style="color: #e6a23c" class="el-icon-info"></i>
|
<i
|
||||||
<i v-if="item.code === 'WARNING'" style="color: #909399" class="el-icon-warning"></i>
|
v-if="item.code === 'REMIND'"
|
||||||
|
style="color: #e6a23c"
|
||||||
|
class="el-icon-info"
|
||||||
|
></i>
|
||||||
|
<i
|
||||||
|
v-if="item.code === 'WARNING'"
|
||||||
|
style="color: #909399"
|
||||||
|
class="el-icon-warning"
|
||||||
|
></i>
|
||||||
<!-- <i
|
<!-- <i
|
||||||
v-if="item.title === '错误'"
|
v-if="item.title === '错误'"
|
||||||
style="color: #f56c6c"
|
style="color: #f56c6c"
|
||||||
class="el-icon-error"
|
class="el-icon-error"
|
||||||
></i
|
></i
|
||||||
> -->
|
> -->
|
||||||
{{ item.title }}({{ item.count }})</span>
|
{{ item.title }}({{ item.count }})</span
|
||||||
|
>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<el-table ref="warningTable" :data="warningList" v-loading="loading" style="width: 100%"
|
<el-table
|
||||||
@current-change="handleTableChange" @selection-change="handleSelectionChange">
|
ref="warningTable"
|
||||||
|
:data="warningList"
|
||||||
|
v-loading="loading"
|
||||||
|
style="width: 100%"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
>
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
|
||||||
<el-table-column width="180" label="时间" align="center" prop="createdTime">
|
<el-table-column
|
||||||
|
width="180"
|
||||||
|
label="时间"
|
||||||
|
align="center"
|
||||||
|
prop="createdTime"
|
||||||
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span :class="`${scope.row.readStatus === 1 ? 'table-index' : ''}`">{{ scope.row.createdTime }}</span>
|
<span
|
||||||
|
@click="handleTableChange(scope.row)"
|
||||||
|
:class="`${scope.row.readStatus === 1 ? 'table-index' : ''}`"
|
||||||
|
>{{ scope.row.createdTime }}</span
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column show-overflow-tooltip label="消息标题" width="150" align="center" prop="title">
|
<el-table-column
|
||||||
|
show-overflow-tooltip
|
||||||
|
label="消息标题"
|
||||||
|
width="150"
|
||||||
|
align="center"
|
||||||
|
prop="title"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span @click="handleTableChange(scope.row)">{{
|
||||||
|
scope.row.title
|
||||||
|
}}</span>
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column show-overflow-tooltip label="消息内容" align="left" prop="content">
|
<el-table-column
|
||||||
|
show-overflow-tooltip
|
||||||
|
label="消息内容"
|
||||||
|
align="left"
|
||||||
|
prop="content"
|
||||||
|
>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<!-- 分页组件 -->
|
<!-- 分页组件 -->
|
||||||
<div class="pagination-part">
|
<div class="pagination-part">
|
||||||
<el-pagination background :current-page.sync="pagination.page" @current-change="handleCurrentChange"
|
<el-pagination
|
||||||
:page-sizes="[10, 20, 30, 40]" :page-size.sync="pagination.size" @size-change="handleSizeChange"
|
background
|
||||||
layout="total, sizes, prev, pager, next, jumper" :total="tableTotal">
|
:current-page.sync="pagination.page"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
:page-sizes="[10, 20, 30, 40]"
|
||||||
|
:page-size.sync="pagination.size"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="tableTotal"
|
||||||
|
>
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
@ -94,7 +188,7 @@ import {
|
|||||||
getWarningNav,
|
getWarningNav,
|
||||||
markNoticeRead,
|
markNoticeRead,
|
||||||
noticeReadAll,
|
noticeReadAll,
|
||||||
deleteNotice
|
deleteNotice,
|
||||||
} from "@/api/xj/inspection/center";
|
} from "@/api/xj/inspection/center";
|
||||||
export default {
|
export default {
|
||||||
name: "WarningCenter",
|
name: "WarningCenter",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* @Author: SunTao 328867980@qq.com
|
* @Author: SunTao 328867980@qq.com
|
||||||
* @Date: 2024-11-01 13:17:41
|
* @Date: 2024-11-01 13:17:41
|
||||||
* @LastEditors: SunTao 328867980@qq.com
|
* @LastEditors: SunTao 328867980@qq.com
|
||||||
* @LastEditTime: 2024-12-05 09:24:59
|
* @LastEditTime: 2024-12-09 10:33:28
|
||||||
* @FilePath: \znxjxt-ui\src\views\xj\inspection\confirmation-management\index.vue
|
* @FilePath: \znxjxt-ui\src\views\xj\inspection\confirmation-management\index.vue
|
||||||
* @Description: 巡检信息-病害确认
|
* @Description: 巡检信息-病害确认
|
||||||
-->
|
-->
|
||||||
@ -54,20 +54,6 @@
|
|||||||
clearable
|
clearable
|
||||||
></el-cascader>
|
></el-cascader>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="病害状态" prop="state">
|
|
||||||
<el-select
|
|
||||||
v-model="queryParams.state"
|
|
||||||
placeholder="请选择病害状态"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in defectStatus"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="上下行" prop="inspectDirection">
|
<el-form-item label="上下行" prop="inspectDirection">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.inspectDirection"
|
v-model="queryParams.inspectDirection"
|
||||||
@ -224,11 +210,6 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="病害类型" align="center" prop="defectTypeName">
|
<el-table-column label="病害类型" align="center" prop="defectTypeName">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="病害状态" align="center" prop="state">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ filterState(scope.row.state) }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="校验状态" align="center" prop="dataStatus">
|
<el-table-column label="校验状态" align="center" prop="dataStatus">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{
|
<span>{{
|
||||||
@ -319,7 +300,6 @@
|
|||||||
import {
|
import {
|
||||||
getDefectList,
|
getDefectList,
|
||||||
getSegment,
|
getSegment,
|
||||||
getDefectStatus,
|
|
||||||
listDefect,
|
listDefect,
|
||||||
mergeDefect,
|
mergeDefect,
|
||||||
} from "@/api/xj/confirmation";
|
} from "@/api/xj/confirmation";
|
||||||
@ -356,8 +336,6 @@ export default {
|
|||||||
tableDefect: [],
|
tableDefect: [],
|
||||||
// 路段下拉选项
|
// 路段下拉选项
|
||||||
segmentList: [],
|
segmentList: [],
|
||||||
// 病害状态下拉选项
|
|
||||||
defectStatus: [],
|
|
||||||
// 列表数据绑定
|
// 列表数据绑定
|
||||||
confirmationtList: [],
|
confirmationtList: [],
|
||||||
// 非多个禁用
|
// 非多个禁用
|
||||||
@ -386,7 +364,6 @@ export default {
|
|||||||
created() {
|
created() {
|
||||||
this.getTableDefect();
|
this.getTableDefect();
|
||||||
this.getSegmentList();
|
this.getSegmentList();
|
||||||
this.getDefectStatusList();
|
|
||||||
this.getTableList();
|
this.getTableList();
|
||||||
this.getTableDefect();
|
this.getTableDefect();
|
||||||
},
|
},
|
||||||
@ -409,26 +386,6 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
/* 查询病害状态下拉数据 */
|
|
||||||
getDefectStatusList() {
|
|
||||||
getDefectStatus().then(({ data, code }) => {
|
|
||||||
if (code === 200) {
|
|
||||||
this.defectStatus = data;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/* 过滤列表病害状态 */
|
|
||||||
filterState(value) {
|
|
||||||
let a = null;
|
|
||||||
[a] = this.defectStatus.filter((item) => {
|
|
||||||
return item.value === value;
|
|
||||||
});
|
|
||||||
if (a) {
|
|
||||||
return a.label;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/* 获取列表行数据 */
|
/* 获取列表行数据 */
|
||||||
getTableList() {
|
getTableList() {
|
||||||
// 处理日期范围
|
// 处理日期范围
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.segmentName"
|
v-model="queryParams.segmentName"
|
||||||
placeholder="请选择路段"
|
placeholder="请选择路段"
|
||||||
|
filterable
|
||||||
clearable
|
clearable
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.segmentName"
|
v-model="queryParams.segmentName"
|
||||||
placeholder="请选择道路名称"
|
placeholder="请选择道路名称"
|
||||||
|
filterable
|
||||||
clearable
|
clearable
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
|
|||||||
@ -94,9 +94,9 @@
|
|||||||
<el-table-column label="巡检终点" align="center" prop="stakeEnd" />
|
<el-table-column label="巡检终点" align="center" prop="stakeEnd" />
|
||||||
<el-table-column label="车牌号码" align="center" prop="plateNo">
|
<el-table-column label="车牌号码" align="center" prop="plateNo">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="病害数" align="defectCount" prop="plateNo">
|
<el-table-column label="病害数" align="center" prop="defectCount">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="新增病害数" align="newDefectCount" prop="plateNo">
|
<el-table-column label="新增病害数" align="center" prop="newDefectCount">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="任务id" align="center" prop="extId" />
|
<el-table-column label="任务id" align="center" prop="extId" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user