diff --git a/src/assets/common/device_info_bg.png b/src/assets/common/device_info_bg.png new file mode 100644 index 0000000..c36927c Binary files /dev/null and b/src/assets/common/device_info_bg.png differ diff --git a/src/assets/fonts/DouyinSansBold.otf b/src/assets/fonts/DouyinSansBold.otf new file mode 100644 index 0000000..d63f58d Binary files /dev/null and b/src/assets/fonts/DouyinSansBold.otf differ diff --git a/src/assets/home/car_device_icon.png b/src/assets/home/car_device_icon.png new file mode 100644 index 0000000..dcd454d Binary files /dev/null and b/src/assets/home/car_device_icon.png differ diff --git a/src/assets/home/excavator_device_icon.png b/src/assets/home/excavator_device_icon.png new file mode 100644 index 0000000..c0556c2 Binary files /dev/null and b/src/assets/home/excavator_device_icon.png differ diff --git a/src/assets/home/pole_device_icon.png b/src/assets/home/pole_device_icon.png new file mode 100644 index 0000000..625a715 Binary files /dev/null and b/src/assets/home/pole_device_icon.png differ diff --git a/src/assets/home/realTime_monitor_bg.png b/src/assets/home/realTime_monitor_bg.png new file mode 100644 index 0000000..22dc977 Binary files /dev/null and b/src/assets/home/realTime_monitor_bg.png differ diff --git a/src/assets/poleMonitor/poleMonitor_main_bg.png b/src/assets/poleMonitor/poleMonitor_main_bg.png new file mode 100644 index 0000000..e1b73e9 Binary files /dev/null and b/src/assets/poleMonitor/poleMonitor_main_bg.png differ diff --git a/src/components/Charts/poleMonitorChart copy.vue b/src/components/Charts/poleMonitorChart copy.vue new file mode 100644 index 0000000..0f98df9 --- /dev/null +++ b/src/components/Charts/poleMonitorChart copy.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/components/Charts/poleMonitorChart.vue b/src/components/Charts/poleMonitorChart.vue index 0f98df9..8460607 100644 --- a/src/components/Charts/poleMonitorChart.vue +++ b/src/components/Charts/poleMonitorChart.vue @@ -1,28 +1,4 @@ - - - - + diff --git a/src/components/Charts/vehicleMonitorChart.vue b/src/components/Charts/vehicleMonitorChart.vue index 8fc0253..74c4724 100644 --- a/src/components/Charts/vehicleMonitorChart.vue +++ b/src/components/Charts/vehicleMonitorChart.vue @@ -1,65 +1,212 @@ - - - + + diff --git a/src/components/CustomTable/src/baseTable.scss b/src/components/CustomTable/src/baseTable.scss index d5ac457..2736162 100644 --- a/src/components/CustomTable/src/baseTable.scss +++ b/src/components/CustomTable/src/baseTable.scss @@ -82,12 +82,12 @@ .el-table__header > thead { color: #9fb5d7; - background-color: #104284 !important; + background-color: #0841A0 !important; tr { - background-color: #104284 !important; + background-color: #0841A0 !important; } th { - background-color: #104284 !important; + background-color: #0841A0 !important; } } } @@ -127,12 +127,12 @@ .el-table__header > thead { color: #9fb5d7; - background-color: #104284 !important; + background-color: #0841A0 !important; tr { - background-color: #104284 !important; + background-color: #0841A0 !important; } th { - background-color: #104284 !important; + background-color: #0841A0 !important; } } } diff --git a/src/styles/common.scss b/src/styles/common.scss index cbd93ef..b0f06b4 100644 --- a/src/styles/common.scss +++ b/src/styles/common.scss @@ -31,10 +31,9 @@ // 标题字体 .fg-title { - font-family: "DingTalk JinBuTi"; // 自定义字体名称 + font-family: "DouyinSansBold"; // 自定义字体名称 // 字体样式(根据需求调整) font-size: 16px; - font-weight: 700; // 加粗 color: #96e6ff; // 初始字体颜色, 浅蓝色 // 背景渐变和裁剪 background: linear-gradient(to bottom, #ffffff, #96e6ff); @@ -42,6 +41,12 @@ background-clip: text; -webkit-text-fill-color: transparent; } +// 特殊标记1 +.fg-mark1 { + font-family: "DingTalk JinBuTi"; // 自定义字体名称 + // 字体样式(根据需求调整) + color: #1cecf5; // 初始字体颜色, 浅蓝色 +} // 标题图标 .fg-icon { width: 17px; @@ -65,6 +70,10 @@ @apply fg-button; background: #009dff; } +.fg-button-primary1 { + @apply fg-button; + background: #22bacb; +} // 弹窗 .fg-dialog { @@ -74,6 +83,8 @@ background-position: center; background-repeat: no-repeat; padding: 0 !important; + width: 816px; + height: 640px; &.fg-dialog2 { width: 1202px; height: 602px; @@ -84,7 +95,7 @@ background-color: transparent; background-image: url("@/assets/common/dialog_head_bg.png"); background-repeat: no-repeat; - + .fg-dialog-header-close { width: 50px; height: 50px; @@ -92,7 +103,7 @@ right: -17px; top: -17px; z-index: 999999 !important; - + cursor: pointer; background-image: url("@/assets/common/dialog_close_icon.png"); background-size: 100% 100%; background-position: center; diff --git a/src/styles/element-plus.scss b/src/styles/element-plus.scss index 6757ddc..0fc9036 100644 --- a/src/styles/element-plus.scss +++ b/src/styles/element-plus.scss @@ -159,6 +159,9 @@ height: 32px; } } +.el-progress-bar__outer{ + background: rgba(255,255,255,0.3); +} /* 修改下拉菜单背景色 */ .el-select-dropdown { diff --git a/src/styles/fonts.scss b/src/styles/fonts.scss index 3de71d5..f124e52 100644 --- a/src/styles/fonts.scss +++ b/src/styles/fonts.scss @@ -1,9 +1,14 @@ // src/assets/fonts.scss @font-face { - font-family: "DingTalk JinBuTi"; // 自定义字体名称 + font-family: "DingTalk JinBuTi"; // 自定义字体名称1 src: url("@/assets/fonts/DingTalk JinBuTi.ttf") format("truetype"); font-weight: normal; font-style: normal; } - +@font-face { + font-family: "DouyinSansBold"; // 自定义字体名称2 + src: url("@/assets/fonts/DouyinSansBold.otf") format("truetype"); + font-weight: normal; + font-style: normal; +} diff --git a/src/views/dashboard/DataOverview.scss b/src/views/dashboard/DataOverview.scss index 8902ce1..245a0e7 100644 --- a/src/views/dashboard/DataOverview.scss +++ b/src/views/dashboard/DataOverview.scss @@ -1,6 +1,6 @@ .data-overview-wrap { padding-top: 30px; - height: 849px; + height: 852px; color: white; font-family: "Arial", sans-serif; .grid-container { @@ -37,29 +37,28 @@ } } - .onTime-monitor-box { - // background: red; + .realTime-monitor-box { + display: flex; + flex: 1; + align-items: center; + flex-direction: column; margin: 0 24px; + background: url("@/assets/home/realTime_monitor_bg.png") no-repeat center; + background-size: contain; } - - .monitor-images { + width: 948px; display: flex; - box-sizing: border-box; gap: 16px; padding: 20px 16px; flex-wrap: wrap; .monitor-images-item { width: calc(50% - 8px); - // background-color: red; height: 349px; border: 1px dashed #ccc; - } - .monitor-images-left, - .monitor-images-right { - // flex: 1; - // position: relative; + position: relative; + img { width: 100%; // height: 100%; @@ -81,53 +80,34 @@ } } - - - + .device-info-box { + background: linear-gradient(180deg, rgba(7, 16, 19, 0) 0%, #081417 100%); .device-info { - .total-device { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 15px; - - .device-icon { - width: 80px; - height: 90px; - background: url("@/assets/common/deviceTotal.png") no-repeat center; - background-size: 100%; - } - - .device-count { - margin-left: 15px; - - .count-number { - font-size: 24px; - font-weight: bold; + .total-device { + .device-total-icon { + width: 80px; + height: 90px; + background: url("@/assets/common/deviceTotal.png") no-repeat center; + background-size: 100%; } } - } - - .device-list { - box-sizing: border-box; - display: grid; - // grid-template-columns: repeat(3, 1fr); - padding: 0 16px 20px; - gap: 10px; - .device-card { + .device-list { box-sizing: border-box; - // background: rgba(74, 126, 191, 0.1); - background-image: url("@/assets/common/deviceCardBg.png"); - background-size: 100% 100%; - background-position: center; - background-repeat: no-repeat; - padding: 16px; - // border-radius: 4px; + display: grid; + padding: 24px 16px 24px; + gap: 16px; - .status-bar { - margin-top: 5px; + .device-card { + box-sizing: border-box; + width: 399px; + height: 195px; + background-image: url("@/assets/common/device_info_bg.png"); + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; + padding: 16px; } } } diff --git a/src/views/dashboard/DataOverview.vue b/src/views/dashboard/DataOverview.vue index 1f23057..e4ebabe 100644 --- a/src/views/dashboard/DataOverview.vue +++ b/src/views/dashboard/DataOverview.vue @@ -5,11 +5,13 @@ import TotalChart from "@/components/Charts/totalChart.vue"; import PoleMonitorChart from "@/components/Charts/poleMonitorChart.vue"; import VehicleMonitorChart from "@/components/Charts/vehicleMonitorChart.vue"; import HomeSubTitle from "@/components/HeaderBar/homeSubTitle.vue"; -// import HomeSubTitle from "@/components/HomeSubTitle.vue"; import BarChart from "./components/BarChart.vue"; import PieChart from "./components/PieChart.vue"; import PieChartSmall from "./components/PieChartSmall.vue"; import DeviceStatus from "./components/DeviceStatus.vue"; +import car_device_icon from "@/assets/home/car_device_icon.png"; +import pole_device_icon from "@/assets/home/pole_device_icon.png"; +import excavator_device_icon from "@/assets/home/excavator_device_icon.png"; import { getDataOverviewApi, getDeviceInfowApi, @@ -44,9 +46,7 @@ const searchForm = reactive({ pole: "1", }); const deviceTotal = ref(0); -const carDevice = ref({}); -const poleDevice = ref({}); -const excavatorDevice = ref({}); + const carFaultTotal = ref([]); const poleFaultTotal = ref([]); const imageFault = ref([]); @@ -54,6 +54,31 @@ const activeBtn = ref("month"); const isAlarmOpen = ref(false); //详情弹窗 const currentRow = ref>({}); // 当前选中行 const currFileList = ref[]>([]); // 详情的文件列表 +const deviceInfo = reactive({ + list: [ + { + name: "车体检测设备", + bindVal: { + total: 0, + }, + icon: car_device_icon, + }, + { + name: "撑杆检测设备", + bindVal: { + total: 0, + }, + icon: pole_device_icon, + }, + { + name: "钩机检测设备", + bindVal: { + total: 0, + }, + icon: excavator_device_icon, + }, + ], +}); const websocketStore = useWebSocketStore(); // 监听 messages 的变化 @@ -94,10 +119,23 @@ const getDeviceInfo = async () => { if (isSuccessApi(res)) { const { data } = res; deviceTotal.value = data.deviceTotal; - carDevice.value = data.appearance; - poleDevice.value = data.pole; - excavatorDevice.value = data.excavator; - // deviceStatus.value = data + deviceInfo.list = [ + { + name: "车体检测设备", + bindVal: data?.appearance, + icon: car_device_icon, + }, + { + name: "撑杆检测设备", + bindVal: data?.pole, + icon: pole_device_icon, + }, + { + name: "钩机检测设备", + bindVal: data?.excavator, + icon: excavator_device_icon, + }, + ]; } } catch (error) { console.error("获取设备信息出错:", error); @@ -170,7 +208,7 @@ onMounted(() => {
- + diff --git a/src/views/dashboard/components/RealVideoModal.vue b/src/views/dashboard/components/RealVideoModal.vue index 28dfa49..ebbb9d3 100644 --- a/src/views/dashboard/components/RealVideoModal.vue +++ b/src/views/dashboard/components/RealVideoModal.vue @@ -1,127 +1,102 @@ \ No newline at end of file + diff --git a/src/views/dashboard/components/VehiclModal.vue b/src/views/dashboard/components/VehiclModal.vue index 68aabb7..5a2d935 100644 --- a/src/views/dashboard/components/VehiclModal.vue +++ b/src/views/dashboard/components/VehiclModal.vue @@ -1,5 +1,5 @@