diff --git a/packages/screen/src/assets/RiskWarning_img/二级标题栏bg1@2x.png b/packages/screen/src/assets/RiskWarning_img/二级标题栏bg1@2x.png
new file mode 100644
index 0000000..02defb9
Binary files /dev/null and b/packages/screen/src/assets/RiskWarning_img/二级标题栏bg1@2x.png differ
diff --git a/packages/screen/src/assets/RiskWarning_img/蓝色@2x (1).png b/packages/screen/src/assets/RiskWarning_img/蓝色@2x (1).png
new file mode 100644
index 0000000..2e20542
Binary files /dev/null and b/packages/screen/src/assets/RiskWarning_img/蓝色@2x (1).png differ
diff --git a/packages/screen/src/assets/RiskWarning_img/蓝色@2x1.png b/packages/screen/src/assets/RiskWarning_img/蓝色@2x1.png
new file mode 100644
index 0000000..39aad1e
Binary files /dev/null and b/packages/screen/src/assets/RiskWarning_img/蓝色@2x1.png differ
diff --git a/packages/screen/src/assets/RiskWarning_img/队伍icon1@2x.png b/packages/screen/src/assets/RiskWarning_img/队伍icon1@2x.png
new file mode 100644
index 0000000..5b21da9
Binary files /dev/null and b/packages/screen/src/assets/RiskWarning_img/队伍icon1@2x.png differ
diff --git a/packages/screen/src/assets/RiskWarning_img/队伍icon@2x.png b/packages/screen/src/assets/RiskWarning_img/队伍icon@2x.png
new file mode 100644
index 0000000..d1df310
Binary files /dev/null and b/packages/screen/src/assets/RiskWarning_img/队伍icon@2x.png differ
diff --git a/packages/screen/src/assets/RiskWarning_img/队伍icon定位@2x.png b/packages/screen/src/assets/RiskWarning_img/队伍icon定位@2x.png
new file mode 100644
index 0000000..78fc806
Binary files /dev/null and b/packages/screen/src/assets/RiskWarning_img/队伍icon定位@2x.png differ
diff --git a/packages/screen/src/assets/RiskWarning_img/隧洞icon定位@2x.png b/packages/screen/src/assets/RiskWarning_img/隧洞icon定位@2x.png
new file mode 100644
index 0000000..2463a38
Binary files /dev/null and b/packages/screen/src/assets/RiskWarning_img/隧洞icon定位@2x.png differ
diff --git a/packages/screen/src/assets/RiskWarning_img/项目@2x.png b/packages/screen/src/assets/RiskWarning_img/项目@2x.png
new file mode 100644
index 0000000..618b949
Binary files /dev/null and b/packages/screen/src/assets/RiskWarning_img/项目@2x.png differ
diff --git a/packages/screen/src/assets/css/flex.scss b/packages/screen/src/assets/css/flex.scss
index 2f085e8..412dcc6 100644
--- a/packages/screen/src/assets/css/flex.scss
+++ b/packages/screen/src/assets/css/flex.scss
@@ -87,7 +87,9 @@
.f3 {
flex: 3;
}
-
+.mt_5{
+ margin-top: 5px;
+}
.mt_10 {
margin-top: 10px;
}
diff --git a/packages/screen/src/views/RiskWarning/bottom.vue b/packages/screen/src/views/RiskWarning/bottom.vue
index e52882d..692fd1d 100644
--- a/packages/screen/src/views/RiskWarning/bottom.vue
+++ b/packages/screen/src/views/RiskWarning/bottom.vue
@@ -16,7 +16,7 @@
-
+
![]()
-
-
-
+
+
+
-
-
+
@@ -98,12 +107,14 @@ import tunnelIconIcon from "../../assets/RiskWarning_img/隧道icon@2x.png";
import slopeIconIcon from "../../assets/RiskWarning_img/边坡icon@2x.png";
import bridgeIconIcon from "../../assets/RiskWarning_img/桥梁icon@2x.png";
import roadIconIcon from "../../assets/RiskWarning_img/线路路段icon@2x.png";
+import teamIconIcon from "../../assets/RiskWarning_img/队伍icon@2x.png";
import warningIconIcon1 from "../../assets/RiskWarning_img/风险预警icon1@2x.png";
import tunnelIconIcon1 from "../../assets/RiskWarning_img/隧道icon1@2x.png";
import slopeIconIcon1 from "../../assets/RiskWarning_img/边坡icon1@2x.png";
import bridgeIconIcon1 from "../../assets/RiskWarning_img/桥梁icon1@2x.png";
import roadIconIcon1 from "../../assets/RiskWarning_img/线路路段icon1@2x.png";
+import teamIconIcon1 from "../../assets/RiskWarning_img/队伍icon1@2x.png";
const activeIndex = ref(0);
@@ -143,6 +154,13 @@ const menuItems = [
icon: roadIconIcon,
icon1: roadIconIcon1,
},
+ {
+ label: "队伍",
+ icon: "icon-team",
+ iconClass: "team",
+ icon: teamIconIcon,
+ icon1: teamIconIcon1,
+ },
];
// 筛选状态
@@ -205,15 +223,15 @@ const filteredData = computed(() => {
// el-table 样式
const headerCellStyle = () => ({
- background: "transparent",
+ background: "#17466F",
color: "rgba(255, 255, 255, 0.6)",
fontWeight: "normal",
borderBottom: "1px solid rgba(64, 169, 255, 0.2)",
- padding: "10px 8px",
+ padding: "5px 20px",
});
const cellStyle = () => ({
- background: "transparent",
+ background: "#142E49",
color: "rgba(255, 255, 255, 0.9)",
borderBottom: "1px solid rgba(64, 169, 255, 0.1)",
padding: "5px 5px",
@@ -232,7 +250,12 @@ const scrollStep = 1; // 每次滚动像素
// 检查是否有筛选条件
const hasFilter = computed(() => {
- return filters.value.red || filters.value.blue || filters.value.orange || filters.value.yellow;
+ return (
+ filters.value.red ||
+ filters.value.blue ||
+ filters.value.orange ||
+ filters.value.yellow
+ );
});
// 开始自动滚动
@@ -242,7 +265,9 @@ const startAutoScroll = () => {
}
if (!isScrolling.value || hasFilter.value) return;
- const tableBody = document.querySelector('.weather-warning-panel .el-table__body-wrapper .el-scrollbar__wrap');
+ const tableBody = document.querySelector(
+ ".weather-warning-panel .el-table__body-wrapper .el-scrollbar__wrap",
+ );
if (!tableBody) return;
scrollTimer.value = setInterval(() => {
@@ -267,7 +292,9 @@ const stopAutoScroll = () => {
// 重置滚动到顶部
const resetScrollToTop = () => {
- const tableBody = document.querySelector('.weather-warning-panel .el-table__body-wrapper .el-scrollbar__wrap');
+ const tableBody = document.querySelector(
+ ".weather-warning-panel .el-table__body-wrapper .el-scrollbar__wrap",
+ );
if (tableBody) {
tableBody.scrollTop = 0;
}
@@ -305,20 +332,24 @@ onMounted(() => {
nextTick(() => {
startAutoScroll();
// 添加鼠标事件监听
- const tableContainer = document.querySelector('.weather-warning-panel .table-container');
+ const tableContainer = document.querySelector(
+ ".weather-warning-panel .table-container",
+ );
if (tableContainer) {
- tableContainer.addEventListener('mouseenter', handleMouseEnter);
- tableContainer.addEventListener('mouseleave', handleMouseLeave);
+ tableContainer.addEventListener("mouseenter", handleMouseEnter);
+ tableContainer.addEventListener("mouseleave", handleMouseLeave);
}
});
});
onUnmounted(() => {
stopAutoScroll();
- const tableContainer = document.querySelector('.weather-warning-panel .table-container');
+ const tableContainer = document.querySelector(
+ ".weather-warning-panel .table-container",
+ );
if (tableContainer) {
- tableContainer.removeEventListener('mouseenter', handleMouseEnter);
- tableContainer.removeEventListener('mouseleave', handleMouseLeave);
+ tableContainer.removeEventListener("mouseenter", handleMouseEnter);
+ tableContainer.removeEventListener("mouseleave", handleMouseLeave);
}
});
@@ -334,27 +365,30 @@ onUnmounted(() => {
position: relative;
width: 100%;
height: 100%;
- padding: vw(10);
box-sizing: border-box;
display: flex;
- // 小屏幕适配
@media (max-width: 1366px) {
- padding: 8px;
+ padding: vw(8);
}
@media (max-width: 1024px) {
- padding: 6px;
+ padding: vw(6);
}
}
.nav-menu {
width: vw(50);
- min-width: 40px;
+ min-width: vw(40);
+ height: 100%;
display: flex;
flex-direction: column;
justify-content: end;
align-items: center;
gap: vw(5);
+ z-index: 2;
+ position: absolute;
+ bottom: 0;
+ left: 0;
.nav-item {
display: flex;
@@ -378,12 +412,12 @@ onUnmounted(() => {
.nav-icon-box {
width: vw(50);
height: vw(50);
- min-width: 36px;
- min-height: 36px;
+ min-width: vw(36);
+ min-height: vw(36);
margin-bottom: vw(5);
background: rgba(64, 169, 255, 0.1);
border: 1px solid rgba(64, 169, 255, 0.3);
- border-radius: 8px;
+ border-radius: vw(8);
display: flex;
align-items: center;
justify-content: center;
@@ -391,8 +425,8 @@ onUnmounted(() => {
img {
width: vw(50);
height: vw(50);
- min-width: 32px;
- min-height: 32px;
+ min-width: vw(32);
+ min-height: vw(32);
}
i {
@@ -440,57 +474,48 @@ onUnmounted(() => {
// 气象预警监测包装器
.weather-warning-wrapper {
- flex: 1;
display: flex;
flex-direction: column;
justify-content: flex-end;
- width: 90%;
+ width: 92%;
+ height: 50%;
+ position: absolute;
+ z-index: 2;
+ right: 0px;
+ bottom: 0px;
}
// 气象预警监测面板样式
.weather-warning-panel {
- height: 50%;
- background: rgba(64, 169, 255, 0.1);
- border: 1px solid rgba(64, 169, 255, 0.3);
- border-radius: 8px;
- padding: vw(15);
+ // border-radius: vw(8);
display: flex;
flex-direction: column;
- position: relative;
+ height: 100%;
+
.clear-icon {
position: absolute;
top: vw(-50);
right: 0px;
width: vw(40) !important;
height: vw(40) !important;
- min-width: 28px;
- min-height: 28px;
+ min-width: vw(28);
+ min-height: vw(28);
}
.panel-header {
display: flex;
justify-content: space-between;
align-items: center;
- margin-bottom: vw(15);
+ background-image: url("../../assets/RiskWarning_img/二级标题栏bg1@2x.png");
+ background-size: 100% 100%;
+ background-position: left top;
+ padding: vw(15);
.header-title {
font-size: vw(18);
- font-weight: bold;
- color: #40a9ff;
+ font-weight: 500;
+ color: #fff;
position: relative;
- padding-left: vw(12);
-
- &::before {
- content: "";
- position: absolute;
- left: 0;
- top: 50%;
- transform: translateY(-50%);
- width: vw(4);
- height: vw(16);
- background: linear-gradient(180deg, #40a9ff 0%, #1890ff 100%);
- border-radius: 2px;
- }
}
.filter-tags {
@@ -506,8 +531,8 @@ onUnmounted(() => {
input {
width: vw(14);
height: vw(14);
- min-width: 12px;
- min-height: 12px;
+ min-width: vw(12);
+ min-height: vw(12);
accent-color: #40a9ff;
}
@@ -536,6 +561,7 @@ onUnmounted(() => {
}
.table-container {
+ background: rgb(20, 46, 74, 0.95);
flex: 1;
overflow: hidden;
@@ -566,10 +592,28 @@ onUnmounted(() => {
.el-table__header-wrapper {
background: transparent;
+
+ th.el-table__cell {
+ background: transparent;
+ font-size: vw(14);
+ color: rgba(255, 255, 255, 0.6);
+ padding: vw(10) vw(8);
+ }
}
.el-table__body-wrapper {
background: transparent;
+
+ td.el-table__cell {
+ background: transparent;
+ font-size: vw(12);
+ color: rgba(255, 255, 255, 0.9);
+ padding: vw(5) vw(5);
+ }
+
+ &::-webkit-scrollbar {
+ display: none !important;
+ }
}
tr {
@@ -579,33 +623,17 @@ onUnmounted(() => {
background: rgba(64, 169, 255, 0.05) !important;
}
}
-
- th.el-table__cell {
- background: transparent;
- }
-
- td.el-table__cell {
- background: transparent;
- }
}
.warning-level {
- // display: inline-flex;
- // align-items: center;
- // gap: 5px;
- // padding: 4px 10px;
- // border-radius: 4px;
- // font-size: 12px;
- // width: 15px;
- // height: 15px;
display: flex;
align-items: center;
justify-content: center;
img {
width: vw(15);
height: vw(15);
- min-width: 10px;
- min-height: 10px;
+ min-width: vw(10);
+ min-height: vw(10);
}
// .level-icon {
diff --git a/packages/screen/src/views/RiskWarning/component/ChongqingMap.vue b/packages/screen/src/views/RiskWarning/component/ChongqingMap.vue
index e5bf689..4bdcd27 100644
--- a/packages/screen/src/views/RiskWarning/component/ChongqingMap.vue
+++ b/packages/screen/src/views/RiskWarning/component/ChongqingMap.vue
@@ -13,128 +13,382 @@
+
+
\ No newline at end of file
+
+// 区县高亮样式
+:deep(.leaflet-interactive) {
+ transition: all 0.3s;
+ cursor: pointer;
+}
+
diff --git a/packages/screen/src/views/RiskWarning/component/aiWarningResultDialog.vue b/packages/screen/src/views/RiskWarning/component/aiWarningResultDialog.vue
index 019880a..6879686 100644
--- a/packages/screen/src/views/RiskWarning/component/aiWarningResultDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/aiWarningResultDialog.vue
@@ -160,7 +160,8 @@ watch(
}
.ai-dialog {
- width: 1000px;
+ width: 80vw;
+ max-width: 1000px;
background: linear-gradient(135deg, rgba(20, 50, 90, 0.95) 0%, rgba(10, 30, 60, 0.98) 100%);
border: 1px solid rgba(64, 169, 255, 0.3);
border-radius: 12px;
diff --git a/packages/screen/src/views/RiskWarning/component/clearanceSituationDialog.vue b/packages/screen/src/views/RiskWarning/component/clearanceSituationDialog.vue
index fcce624..9f0affe 100644
--- a/packages/screen/src/views/RiskWarning/component/clearanceSituationDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/clearanceSituationDialog.vue
@@ -51,16 +51,14 @@
import { ref, computed, watch } from "vue";
import { Close } from "@element-plus/icons-vue";
+import { regionOptions, typeOptions, controlMeasureOptions } from "./index.js";
const props = defineProps({
visible: {
@@ -140,27 +139,26 @@ const filterForm = ref({
});
// 行政区域选项
-const regionOptions = ref([
- { label: "巫溪县", value: "巫溪县" },
- { label: "万州区", value: "万州区" },
- { label: "沙坪坝区", value: "沙坪坝区" },
- { label: "渝中区", value: "渝中区" },
-]);
+// 已从 index.js 导入
// 类型选项
-const typeOptions = ref([
- { label: "边坡坍塌", value: "边坡坍塌" },
- { label: "路面塌陷", value: "路面塌陷" },
- { label: "桥梁损坏", value: "桥梁损坏" },
- { label: "隧道事故", value: "隧道事故" },
-]);
+// 已从 index.js 导入
// 管控措施选项
-const controlMeasureOptions = ref([
- { label: "全幅封闭", value: "全幅封闭" },
- { label: "半幅封闭", value: "半幅封闭" },
- { label: "正常通行", value: "正常通行" },
- { label: "限制通行", value: "限制通行" },
+// 已从 index.js 导入
+
+// 表格列配置
+const tableColumns = ref([
+ { label: "序号", width: "50px" },
+ { label: "行政区域", width: "80px" },
+ { label: "线路编号", width: "80px" },
+ { label: "起止桩号", width: "100px" },
+ { label: "路况位置", width: "100px" },
+ { label: "发生时间", width: "140px" },
+ { label: "线路编号", width: "80px" },
+ { label: "类型", width: "80px" },
+ { label: "管控措施", width: "100px" },
+ { label: "操作", flex: "1" },
]);
// 表格数据
@@ -314,7 +312,8 @@ watch(
}
.clearance-dialog {
- width: 1000px;
+ width: 80vw;
+ max-width: 1000px;
background: linear-gradient(135deg, rgba(20, 50, 90, 0.95) 0%, rgba(10, 30, 60, 0.98) 100%);
border: 1px solid rgba(64, 169, 255, 0.3);
border-radius: 12px;
@@ -365,7 +364,8 @@ watch(
.filter-row {
display: flex;
- gap: 24px;
+ gap: 12px;
+ flex-wrap: wrap;
}
.filter-item {
diff --git a/packages/screen/src/views/RiskWarning/component/confirmDialog.vue b/packages/screen/src/views/RiskWarning/component/confirmDialog.vue
index 7aad61b..f10fcc6 100644
--- a/packages/screen/src/views/RiskWarning/component/confirmDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/confirmDialog.vue
@@ -88,12 +88,30 @@ const handleOverlayClick = () => {
}
.confirm-dialog {
- width: 360px;
+ width: 80vw;
+ max-width: 400px;
background: linear-gradient(135deg, rgba(20, 50, 90, 0.95) 0%, rgba(10, 30, 60, 0.98) 100%);
border: 1px solid rgba(64, 169, 255, 0.3);
border-radius: 8px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
overflow: hidden;
+ animation: dialogSlideIn 0.3s ease-out;
+
+ @media (max-width: 768px) {
+ width: 90vw;
+ max-width: 90vw;
+ }
+}
+
+@keyframes dialogSlideIn {
+ from {
+ opacity: 0;
+ transform: scale(0.8) translateY(-50px);
+ }
+ to {
+ opacity: 1;
+ transform: scale(1) translateY(0);
+ }
}
// 标题栏
@@ -109,18 +127,23 @@ const handleOverlayClick = () => {
font-size: 16px;
font-weight: 600;
color: #fff;
+ flex: 1;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.close-btn {
- width: 24px;
- height: 24px;
+ width: 19px;
+ height: 19px;
display: flex;
align-items: center;
justify-content: center;
color: rgba(255, 255, 255, 0.6);
cursor: pointer;
- font-size: 16px;
+ font-size: 13px;
transition: color 0.3s;
+ flex-shrink: 0;
&:hover {
color: #fff;
@@ -132,12 +155,16 @@ const handleOverlayClick = () => {
.dialog-content {
padding: 24px 20px;
text-align: center;
+ max-height: 40vh;
+ overflow-y: auto;
.confirm-message {
- font-size: 14px;
+ font-size: 16px;
color: rgba(255, 255, 255, 0.9);
line-height: 1.6;
margin: 0;
+ word-wrap: break-word;
+ word-break: break-all;
}
}
@@ -147,16 +174,20 @@ const handleOverlayClick = () => {
justify-content: center;
gap: 16px;
padding: 0 20px 20px;
+ flex-wrap: wrap;
.btn-cancel {
min-width: 80px;
- height: 32px;
+ height: 26px;
+ padding: 0 16px;
background-color: transparent;
border: 1px solid rgba(64, 169, 255, 0.4);
color: rgba(255, 255, 255, 0.8);
- font-size: 13px;
+ font-size: 10px;
border-radius: 4px;
transition: all 0.3s;
+ flex: 1;
+ min-flex: 64px;
&:hover {
background-color: rgba(64, 169, 255, 0.1);
@@ -167,13 +198,16 @@ const handleOverlayClick = () => {
.btn-confirm {
min-width: 80px;
- height: 32px;
+ height: 26px;
+ padding: 0 16px;
background: linear-gradient(135deg, #40a9ff 0%, #1890ff 100%);
border: none;
color: #fff;
- font-size: 13px;
+ font-size: 10px;
border-radius: 4px;
transition: all 0.3s;
+ flex: 1;
+ min-flex: 64px;
&:hover {
background: linear-gradient(135deg, #69c0ff 0%, #40a9ff 100%);
diff --git a/packages/screen/src/views/RiskWarning/component/controlSituationDialog.vue b/packages/screen/src/views/RiskWarning/component/controlSituationDialog.vue
index 03e9888..47f8cc8 100644
--- a/packages/screen/src/views/RiskWarning/component/controlSituationDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/controlSituationDialog.vue
@@ -40,12 +40,14 @@
import { ref, computed, watch } from "vue";
import { Close } from "@element-plus/icons-vue";
+import { regionOptions, riskLevelOptions } from "./index.js";
const props = defineProps({
visible: {
@@ -118,19 +121,19 @@ const filterForm = ref({
});
// 行政区域选项
-const regionOptions = ref([
- { label: "沙坪坝区", value: "沙坪坝区" },
- { label: "万州区", value: "万州区" },
- { label: "渝中区", value: "渝中区" },
- { label: "江北区", value: "江北区" },
-]);
+// 已从 index.js 导入
// 风险等级选项
-const riskLevelOptions = ref([
- { label: "Ⅰ级", value: "Ⅰ级" },
- { label: "Ⅱ级", value: "Ⅱ级" },
- { label: "Ⅲ级", value: "Ⅲ级" },
- { label: "Ⅳ级", value: "Ⅳ级" },
+// 已从 index.js 导入
+
+// 表格列配置
+const tableColumns = ref([
+ { label: "序号", width: "60px" },
+ { label: "行政区域", width: "100px" },
+ { label: "驻地名称", width: "200px" },
+ { label: "所属项目", width: "200px" },
+ { label: "驻地人数", width: "80px" },
+ { label: "驻地风险等级", flex: "1" },
]);
// 表格数据
@@ -267,7 +270,8 @@ watch(
}
.control-dialog {
- width: 900px;
+ width: 80vw;
+ max-width: 900px;
background: linear-gradient(135deg, rgba(20, 50, 90, 0.95) 0%, rgba(10, 30, 60, 0.98) 100%);
border: 1px solid rgba(64, 169, 255, 0.3);
border-radius: 12px;
@@ -318,7 +322,8 @@ watch(
.filter-row {
display: flex;
- gap: 24px;
+ gap: 12px;
+ flex-wrap: wrap;
}
.filter-item {
diff --git a/packages/screen/src/views/RiskWarning/component/dispatchDetailDialog.vue b/packages/screen/src/views/RiskWarning/component/dispatchDetailDialog.vue
index 7827e23..d97f269 100644
--- a/packages/screen/src/views/RiskWarning/component/dispatchDetailDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/dispatchDetailDialog.vue
@@ -40,13 +40,14 @@
import { ref, computed, watch } from "vue";
import { Close } from "@element-plus/icons-vue";
+import { regionOptions, typeOptions } from "./index.js";
const props = defineProps({
visible: {
@@ -110,19 +112,20 @@ const filterForm = ref({
});
// 行政区域选项
-const regionOptions = ref([
- { label: "柏梓镇", value: "柏梓镇" },
- { label: "万州区", value: "万州区" },
- { label: "沙坪坝区", value: "沙坪坝区" },
- { label: "渝中区", value: "渝中区" },
-]);
+// 已从 index.js 导入
// 类型选项
-const typeOptions = ref([
- { label: "交通主管部门", value: "交通主管部门" },
- { label: "公路机构", value: "公路机构" },
- { label: "养护站", value: "养护站" },
- { label: "护路员", value: "护路员" },
+// 已从 index.js 导入
+
+// 表格列配置
+const tableColumns = ref([
+ { label: "序号", width: "50px" },
+ { label: "区县/镇街", width: "100px" },
+ { label: "姓名", width: "80px" },
+ { label: "电话", width: "120px" },
+ { label: "类型", width: "100px" },
+ { label: "角色", width: "140px" },
+ { label: "调度时间", flex: "1" },
]);
// 表格数据
@@ -252,7 +255,8 @@ watch(
}
.dispatch-detail-dialog {
- width: 900px;
+ width: 80vw;
+ max-width: 900px;
background: linear-gradient(135deg, rgba(20, 50, 90, 0.95) 0%, rgba(10, 30, 60, 0.98) 100%);
border: 1px solid rgba(64, 169, 255, 0.3);
border-radius: 12px;
@@ -303,7 +307,8 @@ watch(
.filter-row {
display: flex;
- gap: 24px;
+ gap: 12px;
+ flex-wrap: wrap;
}
.filter-item {
diff --git a/packages/screen/src/views/RiskWarning/component/dispatchDistrictDialog.vue b/packages/screen/src/views/RiskWarning/component/dispatchDistrictDialog.vue
index f1d67d7..8dc2180 100644
--- a/packages/screen/src/views/RiskWarning/component/dispatchDistrictDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/dispatchDistrictDialog.vue
@@ -29,10 +29,14 @@
import { ref, computed, watch } from "vue";
import { Close } from "@element-plus/icons-vue";
+import { regionOptions } from "./index.js";
const props = defineProps({
visible: {
@@ -94,11 +99,14 @@ const filterForm = ref({
});
// 行政区域选项
-const regionOptions = ref([
- { label: "重庆市", value: "重庆市" },
- { label: "万州区", value: "万州区" },
- { label: "沙坪坝区", value: "沙坪坝区" },
- { label: "渝中区", value: "渝中区" },
+// 已从 index.js 导入
+
+// 表格列配置
+const tableColumns = ref([
+ { label: "序号", width: "60px" },
+ { label: "行政区域", width: "120px" },
+ { label: "调度数", width: "100px" },
+ { label: "最近调度时间", flex: "1" },
]);
// 表格数据
@@ -221,7 +229,8 @@ watch(
}
.dispatch-dialog {
- width: 700px;
+ width: 80vw;
+ max-width: 700px;
background: linear-gradient(135deg, rgba(20, 50, 90, 0.95) 0%, rgba(10, 30, 60, 0.98) 100%);
border: 1px solid rgba(64, 169, 255, 0.3);
border-radius: 12px;
@@ -272,7 +281,8 @@ watch(
.filter-row {
display: flex;
- gap: 24px;
+ gap: 12px;
+ flex-wrap: wrap;
}
.filter-item {
diff --git a/packages/screen/src/views/RiskWarning/component/eventDetailDialog.vue b/packages/screen/src/views/RiskWarning/component/eventDetailDialog.vue
index 603eed9..66f8d54 100644
--- a/packages/screen/src/views/RiskWarning/component/eventDetailDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/eventDetailDialog.vue
@@ -243,7 +243,8 @@ watch(
}
.event-dialog {
- width: 700px;
+ width: 80vw;
+ max-width: 700px;
max-height: 85vh;
overflow-y: auto;
background: linear-gradient(135deg, rgba(20, 50, 90, 0.95) 0%, rgba(10, 30, 60, 0.98) 100%);
diff --git a/packages/screen/src/views/RiskWarning/component/impactPointDetailDialog.vue b/packages/screen/src/views/RiskWarning/component/impactPointDetailDialog.vue
index b36ab5d..f650f74 100644
--- a/packages/screen/src/views/RiskWarning/component/impactPointDetailDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/impactPointDetailDialog.vue
@@ -234,7 +234,8 @@ watch(
}
.impact-detail-dialog {
- width: 650px;
+ width: 80vw;
+ max-width: 650px;
max-height: 90vh;
overflow-y: auto;
background: linear-gradient(135deg, rgba(20, 50, 90, 0.95) 0%, rgba(10, 30, 60, 0.98) 100%);
diff --git a/packages/screen/src/views/RiskWarning/component/impactPointDialog.vue b/packages/screen/src/views/RiskWarning/component/impactPointDialog.vue
index 062842c..8bd8e67 100644
--- a/packages/screen/src/views/RiskWarning/component/impactPointDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/impactPointDialog.vue
@@ -8,32 +8,59 @@
+
+
+
+
-
-
-
-
-
+
-
-
-
+
-
-
-
-
+
@@ -47,16 +74,14 @@
import { ref, computed, watch } from "vue";
import { Close, ArrowLeft, ArrowRight } from "@element-plus/icons-vue";
+import { pointTypeOptions, pointLevelOptions, regionOptionsWithAll } from "./index.js";
const props = defineProps({
visible: {
@@ -148,6 +174,20 @@ const filterForm = ref({
region: "",
});
+// 表格列配置
+const tableColumns = ref([
+ { label: "序号", width: "50px" },
+ { label: "行政区域", width: "80px" },
+ { label: "影响点类型", width: "80px" },
+ { label: "影响点位置", width: "180px" },
+ { label: "影响点等级", width: "90px" },
+ { label: "交通主管部门负责人", width: "130px" },
+ { label: "公路机构责任人", width: "110px" },
+ { label: "养护站负责人", width: "110px" },
+ { label: "护路员", width: "100px" },
+ { label: "操作", width: "60px" },
+]);
+
// 表格数据
const tableData = ref([
{
@@ -273,6 +313,11 @@ watch(
diff --git a/packages/screen/src/views/RiskWarning/component/riskPointDetailDialog.vue b/packages/screen/src/views/RiskWarning/component/riskPointDetailDialog.vue
index 8230fa0..1cd7ce1 100644
--- a/packages/screen/src/views/RiskWarning/component/riskPointDetailDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/riskPointDetailDialog.vue
@@ -93,9 +93,14 @@
.section-header {
- height: 50px;
+ height: 6.6667vw;
display: flex;
justify-content: space-between;
align-items: center;
@@ -35,20 +35,51 @@ defineProps({
.header-left {
display: flex;
align-items: center;
- gap: 8px;
-
+ gap: 1.0667vw;
+ font-size: 1.3333vw;
.title {
- margin-left: 35px;
- font-size: 14px;
- font-weight: bold;
- color: #fff;
- }
+ margin-left: 2.667vw;
+ font-weight: bold;
+ color: #fff;
+ font-size: 1vw;
+ }
}
.header-right {
display: flex;
align-items: center;
- gap: 8px;
+ gap: 1.0667vw;
+ }
+
+ @media (max-width: 768px) {
+ height: 10.6667vw;
+
+ .header-left {
+ gap: 2.1333vw;
+
+ .title {
+ margin-left: 8vw;
+ font-size: 1vw;
+ font-weight: bold;
+ color: #fff;
+ }
+ }
+
+ .header-right {
+ gap: 2.1333vw;
+ }
+ }
+}
+
+// 插槽内容自适应
+::v-deep(.header-left .title),
+::v-deep(.header-left > span),
+::v-deep(.header-left > div) {
+ font-weight: bold;
+ color: #fff;
+
+ @media (max-width: 768px) {
+ font-size: 4vw;
}
}
diff --git a/packages/screen/src/views/RiskWarning/component/tongnanInfoDialog.vue b/packages/screen/src/views/RiskWarning/component/tongnanInfoDialog.vue
index 18e69d9..aed149b 100644
--- a/packages/screen/src/views/RiskWarning/component/tongnanInfoDialog.vue
+++ b/packages/screen/src/views/RiskWarning/component/tongnanInfoDialog.vue
@@ -12,13 +12,14 @@