From 689e10d3b3414f5e865b84d43d5ca88251b3d979 Mon Sep 17 00:00:00 2001 From: Ironsp <1522278303@qq.com> Date: Mon, 31 Aug 2026 16:17:28 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E5=88=86=E5=B1=82=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components.d.ts | 6 + src/components/home/construction.vue | 81 ++++ src/components/home/overview.vue | 105 +++++ src/components/home/progress.vue | 161 +++++++ src/components/home/projectList.vue | 189 ++++++++ src/components/home/status.vue | 169 ++++++++ src/components/home/warning.vue | 120 ++++++ src/pages/home/index.vue | 621 +-------------------------- 8 files changed, 837 insertions(+), 615 deletions(-) create mode 100644 src/components/home/construction.vue create mode 100644 src/components/home/overview.vue create mode 100644 src/components/home/progress.vue create mode 100644 src/components/home/projectList.vue create mode 100644 src/components/home/status.vue create mode 100644 src/components/home/warning.vue diff --git a/src/components.d.ts b/src/components.d.ts index 8d6aed8..d1690b6 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -10,7 +10,13 @@ declare module 'vue' { AppFooter: typeof import('./components/AppFooter.vue')['default'] AppLogos: typeof import('./components/AppLogos.vue')['default'] HiCounter: typeof import('./components/HiCounter.vue')['default'] + HomeConstruction: typeof import('./components/home/construction.vue')['default'] HomeHomeNav: typeof import('./components/home/homeNav.vue')['default'] + HomeOverview: typeof import('./components/home/overview.vue')['default'] + HomeProgress: typeof import('./components/home/progress.vue')['default'] + HomeProjectList: typeof import('./components/home/projectList.vue')['default'] + HomeStatus: typeof import('./components/home/status.vue')['default'] + HomeWarning: typeof import('./components/home/warning.vue')['default'] InputEntry: typeof import('./components/InputEntry.vue')['default'] } } diff --git a/src/components/home/construction.vue b/src/components/home/construction.vue new file mode 100644 index 0000000..c7a790b --- /dev/null +++ b/src/components/home/construction.vue @@ -0,0 +1,81 @@ + + + diff --git a/src/components/home/overview.vue b/src/components/home/overview.vue new file mode 100644 index 0000000..534f759 --- /dev/null +++ b/src/components/home/overview.vue @@ -0,0 +1,105 @@ + + + diff --git a/src/components/home/progress.vue b/src/components/home/progress.vue new file mode 100644 index 0000000..9317859 --- /dev/null +++ b/src/components/home/progress.vue @@ -0,0 +1,161 @@ + + + diff --git a/src/components/home/projectList.vue b/src/components/home/projectList.vue new file mode 100644 index 0000000..4a2e3ca --- /dev/null +++ b/src/components/home/projectList.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/components/home/status.vue b/src/components/home/status.vue new file mode 100644 index 0000000..add7397 --- /dev/null +++ b/src/components/home/status.vue @@ -0,0 +1,169 @@ + + + diff --git a/src/components/home/warning.vue b/src/components/home/warning.vue new file mode 100644 index 0000000..765b77c --- /dev/null +++ b/src/components/home/warning.vue @@ -0,0 +1,120 @@ + + + diff --git a/src/pages/home/index.vue b/src/pages/home/index.vue index 1e42007..45466a7 100644 --- a/src/pages/home/index.vue +++ b/src/pages/home/index.vue @@ -12,311 +12,21 @@ definePage({ - - - - - 今日作业概览 - - - 2025年8月11日 - - - - - - 实时作业状态(台) - - - 22 - - - - - 累计作业面积(m²) - - - 1268 - - - - - 累计作业时长(小时) - - - 8.5 - - - - + - - - - - 实时作业状态 - - - - - - - - 徐工XS65H #01 - - - G1XG2584-B01 - - - - 作业中 - - - - - - 振动频率 - - - 8939HZ - - - - - 振幅 - - - 8939mm - - - - - 行驶速度 - - - 3km/h - - - - - 钢轮温度 - - - 8939°C - - - - - - - - - - - - - - 项目列表 - - - 查看全部 - - - - - - - - - G6高速改扩建项目 - - - K1+200-K1+800 - - - - 作业中 - - - - - - 作业时长 - - - 8h - - - - - 压实面积 - - - 28.5m² - - - - - 碾压遍数 - - - 10遍 - - - - - - - - - - - + + - - - - - 项目作业进度 - - - K1+200-K1+800 - - - - - - - 25% - - - jobs - - - - - - 压实合格率 - - - 95.65% - - - - - 完成进度 - - - 66% - - - - - 总面积 - - - 1164m² - - - - - 已压实面积 - - - 664m² - - - - - 未压实面积 - - - 500m² - - - - - - - - - - - - 当前施工段 - - - - - - - - K12+300 — K125+800 - - - 压实遍数要求:≥6遍 - - - - - - - - - - - 异常警告 - - - 查看全部 - - - - - - - - 钢轮温度过高 - - - 徐工XS65H #01 钢轮温度达90°C,超过國值85°C - - - - 10分钟前 - - - - - - - RTK信号弱 - - - 三一SSZ600AC #002 RTK定位精度下降, 请注意 - - - - 10分钟前 - - - - + + + @@ -334,83 +44,6 @@ definePage({ padding-top: 88px; } -/* 卡片基础样式 */ -.card { - background-color: #ffffff; - border-radius: 12px; - margin-bottom: 12px; - overflow: hidden; -} - -.card-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 12px 16px; - border-bottom: 1px solid #f5f5f5; -} - -.card-title { - font-size: 15px; - font-weight: bold; - color: #333333; -} - -.card-date, -.card-sub, -.card-link { - font-size: 12px; - color: #999999; -} - -.card-link { - color: #4685FD; -} - -.card-body { - padding: 12px 16px; -} - -/* 今日作业概览 */ -.overview-card { - margin-top: 12px; - background: linear-gradient(135deg, #4685FD 0%, #6BA3FF 100%); -} - -.overview-card .card-header { - border-bottom: none; - padding-bottom: 0; -} - -.overview-card .card-title, -.overview-card .card-date { - color: #ffffff; -} - -.overview-stats { - display: flex; - justify-content: space-around; - padding: 16px; -} - -.stat-item { - display: flex; - flex-direction: column; - align-items: center; -} - -.stat-label { - font-size: 12px; - color: rgba(255, 255, 255, 0.8); - margin-bottom: 8px; -} - -.stat-value { - font-size: 28px; - font-weight: bold; - color: #ffffff; -} - /* 双列布局 */ .two-column { display: flex; @@ -423,246 +56,4 @@ definePage({ display: flex; flex-direction: column; } - -/* 状态信息 */ -.status-info, -.project-info, -.construction-info { - display: flex; - align-items: center; - margin-bottom: 12px; -} - -.avatar { - width: 48px; - height: 48px; - border-radius: 8px; - background-color: #f0f0f0; - margin-right: 12px; -} - -.info { - flex: 1; - display: flex; - flex-direction: column; -} - -.name { - font-size: 14px; - font-weight: bold; - color: #333333; - margin-bottom: 4px; -} - -.sub { - font-size: 12px; - color: #999999; -} - -.status-tag { - font-size: 12px; - color: #52c41a; - padding: 2px 8px; - background-color: #f6ffed; - border-radius: 4px; -} - -/* 参数 */ -.status-params, -.project-params { - display: flex; - flex-wrap: wrap; - gap: 12px; - margin-bottom: 12px; -} - -.param { - display: flex; - flex-direction: column; -} - -.param-label { - font-size: 12px; - color: #999999; - margin-bottom: 4px; -} - -.param-value { - font-size: 14px; - font-weight: bold; - color: #333333; -} - -/* 按钮 */ -.card-footer { - display: flex; - justify-content: center; -} - -.btn-primary { - background-color: #4685FD; - color: #ffffff; - border: none; - border-radius: 20px; - padding: 8px 24px; - font-size: 14px; -} - -.project-actions { - display: flex; - gap: 8px; -} - -.btn-action { - flex: 1; - border: none; - border-radius: 4px; - padding: 8px 0; - font-size: 12px; - color: #ffffff; -} - -.btn-start { - background-color: #4685FD; -} - -.btn-pause { - background-color: #faad14; -} - -.btn-end { - background-color: #ff4d4f; -} - -/* 进度 */ -.progress-content { - display: flex; - align-items: center; - gap: 16px; -} - -.progress-circle { - width: 80px; - height: 80px; - border-radius: 50%; - background: conic-gradient(#4685FD 0% 25%, #f0f0f0 25% 100%); - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - position: relative; -} - -.progress-circle::before { - content: ''; - position: absolute; - width: 60px; - height: 60px; - border-radius: 50%; - background-color: #ffffff; -} - -.progress-percent { - font-size: 18px; - font-weight: bold; - color: #4685FD; - z-index: 1; -} - -.progress-label { - font-size: 10px; - color: #999999; - z-index: 1; -} - -.progress-details { - flex: 1; - display: flex; - flex-direction: column; - gap: 8px; -} - -.progress-item { - display: flex; - justify-content: space-between; -} - -.progress-name { - font-size: 12px; - color: #666666; -} - -.progress-value { - font-size: 12px; - font-weight: bold; - color: #333333; -} - -/* 施工段 */ -.icon-placeholder { - width: 48px; - height: 48px; - border-radius: 8px; - background-color: #e6f7ff; - margin-right: 12px; -} - -.segment { - font-size: 16px; - font-weight: bold; - color: #333333; - margin-bottom: 4px; -} - -.requirement { - font-size: 12px; - color: #999999; -} - -/* 异常警告 */ -.warning-item { - display: flex; - align-items: center; - padding: 12px 0; - border-bottom: 1px solid #f5f5f5; -} - -.warning-item:last-child { - border-bottom: none; -} - -.warning-icon { - width: 36px; - height: 36px; - border-radius: 50%; - background-color: #fff2e8; - margin-right: 12px; -} - -.warning-rtk { - background-color: #e6f7ff; -} - -.warning-info { - flex: 1; - display: flex; - flex-direction: column; -} - -.warning-title { - font-size: 14px; - font-weight: bold; - color: #333333; - margin-bottom: 4px; -} - -.warning-desc { - font-size: 12px; - color: #999999; -} - -.warning-time { - font-size: 12px; - color: #cccccc; -}