diff --git a/packages/screen/package.json b/packages/screen/package.json
index e747cb4..2178584 100644
--- a/packages/screen/package.json
+++ b/packages/screen/package.json
@@ -19,6 +19,7 @@
"devDependencies": {
"@vitejs/plugin-vue": "^5.0.0",
"vite": "^5.0.0",
- "sass": "^1.70.0"
+ "sass": "^1.70.0",
+ "less": "^4.4.2"
}
}
diff --git a/packages/screen/src/router/index.js b/packages/screen/src/router/index.js
index f44bde4..91459f3 100644
--- a/packages/screen/src/router/index.js
+++ b/packages/screen/src/router/index.js
@@ -7,6 +7,11 @@ const routes = [
name: 'Home',
component: () => import('../views/Home.vue')
},
+ {
+ path: '/cockpit',
+ name: 'Cockpit',
+ component: () => import('../views/cockpit/index.vue')
+ },
{
path: '/test',
name: 'test',
diff --git a/packages/screen/src/views/cockpit/README.md b/packages/screen/src/views/cockpit/README.md
new file mode 100644
index 0000000..a52fdd0
--- /dev/null
+++ b/packages/screen/src/views/cockpit/README.md
@@ -0,0 +1,270 @@
+# 安全保通服务大屏 - 重构说明
+
+## 📦 重构概览
+
+本次重构将原来 567 行的单一组件拆分为模块化的组件架构,提高了代码的可维护性和可扩展性。
+
+## 🎯 主要改进
+
+### 1. **组件化架构**
+- ✅ 将单一大文件拆分为 7 个独立组件
+- ✅ 每个组件职责单一,易于维护
+- ✅ 组件可复用,便于扩展
+
+### 2. **布局方式优化**
+- ❌ **重构前**: 大量使用 `position: absolute` 和固定像素定位
+- ✅ **重构后**: 使用 CSS Grid 和 Flexbox 实现响应式布局
+- ✅ 更易调整和适配不同屏幕尺寸
+
+### 3. **数据驱动**
+- ❌ **重构前**: 数据硬编码在模板中
+- ✅ **重构后**: 使用 Vue 3 Composition API,数据驱动渲染
+- ✅ 便于后续接入真实 API 数据
+
+### 4. **样式管理**
+- ❌ **重构前**: 类名混乱 (`box_1`, `group_3` 等)
+- ✅ **重构后**: 语义化类名,易于理解
+- ✅ 样式模块化,避免全局污染
+
+## 📁 目录结构
+
+```
+cockpit/
+├── index.vue # 主入口文件
+├── components/ # 组件目录
+│ ├── CockpitLayout.vue # 主布局组件
+│ ├── PageHeader.vue # 页面头部
+│ ├── WeatherWarning.vue # 气象预警 (左上)
+│ ├── EmergencyResources.vue # 应急资源 (左下)
+│ ├── BlockEvent.vue # 阻断事件 (右上)
+│ ├── YearStatistics.vue # 往年统计 (右下)
+│ └── MapCenter.vue # 中间地图区域
+└── assets/ # 资源文件
+ └── img/ # 图片资源
+```
+
+## 🔧 组件说明
+
+### 1. CockpitLayout.vue (主布局)
+使用 CSS Grid 三列布局:
+```css
+grid-template-columns: 580px 1fr 580px;
+```
+- 左侧面板: 固定 580px
+- 中间地图: 自适应剩余空间
+- 右侧面板: 固定 580px
+
+### 2. PageHeader.vue (页面头部)
+- 居中显示标题 "安全保通服务"
+- 右侧应用按钮
+- 使用 Flexbox 布局
+
+### 3. WeatherWarning.vue (气象预警)
+**数据结构**:
+```javascript
+{
+ warningLevels: [
+ { id, name, count, color, icon }
+ ],
+ districts: [
+ { id, name, km, warning, warningColor }
+ ]
+}
+```
+
+**功能**:
+- 四级预警图标展示 (蓝/黄/橙/红)
+- 海拔800米以上气象情况
+- 区县预警列表
+
+### 4. EmergencyResources.vue (应急资源)
+**数据结构**:
+```javascript
+{
+ resources: [
+ { id, name, stations, supplies, equipment, equipmentClass, hasAlert }
+ ]
+}
+```
+
+**功能**:
+- 展示各区县应急资源数量
+- 服务站点、应急物资、应急设备统计
+- 异常状态图标提示
+
+### 5. BlockEvent.vue (阻断事件)
+**数据结构**:
+```javascript
+{
+ stats: [
+ { id, title, value }
+ ]
+}
+```
+
+**功能**:
+- 统计卡片展示 (2列网格布局)
+- 当前封闭交通、限速通行、抢通等数据
+
+### 6. YearStatistics.vue (往年统计)
+**功能**:
+- 冰雪事件趋势图 (当前使用静态图片)
+- 图表图例
+- 坐标轴标签
+
+**TODO**: 集成 ECharts 实现动态图表
+
+### 7. MapCenter.vue (中间地图)
+**功能**:
+- 顶部功能按钮 (服务站点/预警路段/气象预警)
+- 地图标记点
+- 底部菜单 (应急体系/重大事件处置等)
+- 中央功能菜单
+
+**TODO**: 集成实际地图 API (如高德地图/百度地图)
+
+## 🚀 使用方式
+
+### 1. 基础使用
+```vue
+
+
+
+
+
+```
+
+### 2. 修改数据
+每个组件都使用 `ref` 定义响应式数据,可以直接修改:
+
+```javascript
+// WeatherWarning.vue
+const districts = ref([
+ { id: 1, name: '万州区', km: 32, warning: '红色预警', warningColor: 'rgba(229, 37, 42, 1)' }
+])
+```
+
+### 3. 接入 API
+将静态数据改为 API 调用:
+
+```javascript
+import { ref, onMounted } from 'vue'
+import { fetchDistricts } from '@/api/weather'
+
+const districts = ref([])
+
+onMounted(async () => {
+ districts.value = await fetchDistricts()
+})
+```
+
+## 📊 后续优化建议
+
+### 1. 集成真实地图
+推荐使用:
+- 高德地图 API
+- 百度地图 API
+- Mapbox GL
+
+### 2. 集成图表库
+推荐使用:
+- **ECharts** (功能强大,配置灵活)
+- Chart.js
+- D3.js
+
+示例代码:
+```javascript
+import * as echarts from 'echarts'
+
+onMounted(() => {
+ const chart = echarts.init(chartRef.value)
+ chart.setOption({
+ xAxis: { data: xAxisYears.value },
+ yAxis: {},
+ series: [
+ { type: 'line', data: [1000, 2000, 3000, 4000, 5000] }
+ ]
+ })
+})
+```
+
+### 3. 添加响应式适配
+使用媒体查询或 `vw/vh` 单位适配不同屏幕:
+
+```css
+@media (max-width: 1920px) {
+ .cockpit-main {
+ grid-template-columns: 450px 1fr 450px;
+ }
+}
+```
+
+### 4. 添加数据刷新
+使用定时器或 WebSocket 实现实时数据更新:
+
+```javascript
+import { useIntervalFn } from '@vueuse/core'
+
+useIntervalFn(() => {
+ refreshData()
+}, 30000) // 每30秒刷新
+```
+
+### 5. 添加交互功能
+- 地图标记点击事件
+- 表格行点击查看详情
+- 图表数据筛选
+- 时间范围选择
+
+### 6. 性能优化
+- 使用虚拟滚动处理大量数据
+- 图片懒加载
+- 组件懒加载
+
+```javascript
+const MapCenter = defineAsyncComponent(() =>
+ import('./components/MapCenter.vue')
+)
+```
+
+## ⚠️ 注意事项
+
+1. **图片路径**: 确保所有图片资源存在于 `assets/img/` 目录中
+2. **字体文件**: 部分组件使用自定义字体,需要确保字体文件已引入
+3. **浏览器兼容**: Grid 布局需要现代浏览器支持 (IE11+ 需要 polyfill)
+
+## 🎨 布局对比
+
+### 重构前
+```
+├── 嵌套10层+ div
+├── position: absolute 定位超过50处
+├── 固定 margin/left/top 值
+└── 567行单文件
+```
+
+### 重构后
+```
+├── 语义化组件结构
+├── Grid + Flexbox 布局
+├── 响应式设计理念
+└── 7个模块化组件,平均每个约150行
+```
+
+## 📝 版本历史
+
+- **v2.0** (2025-01-XX) - 组件化重构,使用 Grid 布局
+- **v1.0** (之前) - 原始版本,单文件实现
+
+## 🤝 贡献指南
+
+1. 修改组件时保持单一职责原则
+2. 新增功能优先考虑组件复用
+3. 样式使用 scoped,避免全局污染
+4. 数据结构清晰,便于接入 API
+
+---
+
+如有问题或建议,请联系开发团队。
diff --git a/packages/screen/src/views/cockpit/assets/img/block-panel-bg.png b/packages/screen/src/views/cockpit/assets/img/block-panel-bg.png
new file mode 100644
index 0000000..c190e43
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/block-panel-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/block-stat-decoration.png b/packages/screen/src/views/cockpit/assets/img/block-stat-decoration.png
new file mode 100644
index 0000000..55c8f95
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/block-stat-decoration.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/block-stat-icon.png b/packages/screen/src/views/cockpit/assets/img/block-stat-icon.png
new file mode 100644
index 0000000..7ec98d3
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/block-stat-icon.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/block-stat-title-bg.png b/packages/screen/src/views/cockpit/assets/img/block-stat-title-bg.png
new file mode 100644
index 0000000..5d9c9a4
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/block-stat-title-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/cockpit-main-bg.png b/packages/screen/src/views/cockpit/assets/img/cockpit-main-bg.png
new file mode 100644
index 0000000..11abb6a
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/cockpit-main-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/common-panel-header-bg.png b/packages/screen/src/views/cockpit/assets/img/common-panel-header-bg.png
new file mode 100644
index 0000000..a4bb9c7
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/common-panel-header-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/common-table-row-bg-alt.png b/packages/screen/src/views/cockpit/assets/img/common-table-row-bg-alt.png
new file mode 100644
index 0000000..0b1c096
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/common-table-row-bg-alt.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/common-table-row-bg.png b/packages/screen/src/views/cockpit/assets/img/common-table-row-bg.png
new file mode 100644
index 0000000..bb78dfc
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/common-table-row-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/emergency-alert-icon.png b/packages/screen/src/views/cockpit/assets/img/emergency-alert-icon.png
new file mode 100644
index 0000000..90be316
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/emergency-alert-icon.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/emergency-panel-bg.png b/packages/screen/src/views/cockpit/assets/img/emergency-panel-bg.png
new file mode 100644
index 0000000..fc39769
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/emergency-panel-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/emergency-table-header-bg.png b/packages/screen/src/views/cockpit/assets/img/emergency-table-header-bg.png
new file mode 100644
index 0000000..2936a5a
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/emergency-table-header-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/header-bg.png b/packages/screen/src/views/cockpit/assets/img/header-bg.png
new file mode 100644
index 0000000..3020925
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/header-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/header-btn-app-bg.png b/packages/screen/src/views/cockpit/assets/img/header-btn-app-bg.png
new file mode 100644
index 0000000..e6195b1
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/header-btn-app-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/header-title-bg.png b/packages/screen/src/views/cockpit/assets/img/header-title-bg.png
new file mode 100644
index 0000000..ce857e7
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/header-title-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-btn-service.png b/packages/screen/src/views/cockpit/assets/img/map-btn-service.png
new file mode 100644
index 0000000..f9518cf
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-btn-service.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-btn-warning-road.png b/packages/screen/src/views/cockpit/assets/img/map-btn-warning-road.png
new file mode 100644
index 0000000..c586be9
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-btn-warning-road.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-btn-weather.png b/packages/screen/src/views/cockpit/assets/img/map-btn-weather.png
new file mode 100644
index 0000000..78a99d6
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-btn-weather.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-center-menu-bg.png b/packages/screen/src/views/cockpit/assets/img/map-center-menu-bg.png
new file mode 100644
index 0000000..e456315
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-center-menu-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-marker-alert.png b/packages/screen/src/views/cockpit/assets/img/map-marker-alert.png
new file mode 100644
index 0000000..dfe92b6
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-marker-alert.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-marker-service.png b/packages/screen/src/views/cockpit/assets/img/map-marker-service.png
new file mode 100644
index 0000000..a57a2ec
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-marker-service.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-marker-warning.png b/packages/screen/src/views/cockpit/assets/img/map-marker-warning.png
new file mode 100644
index 0000000..3416be4
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-marker-warning.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-menu-icon-construction.png b/packages/screen/src/views/cockpit/assets/img/map-menu-icon-construction.png
new file mode 100644
index 0000000..5e1eb70
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-menu-icon-construction.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-menu-icon-maintenance.png b/packages/screen/src/views/cockpit/assets/img/map-menu-icon-maintenance.png
new file mode 100644
index 0000000..b078911
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-menu-icon-maintenance.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-menu-icon-road-network.png b/packages/screen/src/views/cockpit/assets/img/map-menu-icon-road-network.png
new file mode 100644
index 0000000..e71c556
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-menu-icon-road-network.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-menu-icon-safety.png b/packages/screen/src/views/cockpit/assets/img/map-menu-icon-safety.png
new file mode 100644
index 0000000..0441159
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-menu-icon-safety.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/map-menu-item-highlight-bg.png b/packages/screen/src/views/cockpit/assets/img/map-menu-item-highlight-bg.png
new file mode 100644
index 0000000..c9190ec
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/map-menu-item-highlight-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/statistics-chart-area-bg.png b/packages/screen/src/views/cockpit/assets/img/statistics-chart-area-bg.png
new file mode 100644
index 0000000..0dd7fda
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/statistics-chart-area-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/statistics-chart-image.png b/packages/screen/src/views/cockpit/assets/img/statistics-chart-image.png
new file mode 100644
index 0000000..f0fa0ac
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/statistics-chart-image.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/statistics-panel-bg.png b/packages/screen/src/views/cockpit/assets/img/statistics-panel-bg.png
new file mode 100644
index 0000000..a466b0a
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/statistics-panel-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/weather-altitude-bar-bg.png b/packages/screen/src/views/cockpit/assets/img/weather-altitude-bar-bg.png
new file mode 100644
index 0000000..00480da
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/weather-altitude-bar-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/weather-altitude-icon.png b/packages/screen/src/views/cockpit/assets/img/weather-altitude-icon.png
new file mode 100644
index 0000000..10a7ab5
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/weather-altitude-icon.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/weather-badge-glow-bottom.png b/packages/screen/src/views/cockpit/assets/img/weather-badge-glow-bottom.png
new file mode 100644
index 0000000..a23287a
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/weather-badge-glow-bottom.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/weather-badge-glow-top.png b/packages/screen/src/views/cockpit/assets/img/weather-badge-glow-top.png
new file mode 100644
index 0000000..307c993
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/weather-badge-glow-top.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/weather-badge-hexagon.png b/packages/screen/src/views/cockpit/assets/img/weather-badge-hexagon.png
new file mode 100644
index 0000000..20c389c
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/weather-badge-hexagon.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/weather-panel-bg.png b/packages/screen/src/views/cockpit/assets/img/weather-panel-bg.png
new file mode 100644
index 0000000..5074f05
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/weather-panel-bg.png differ
diff --git a/packages/screen/src/views/cockpit/assets/img/weather-table-header-bg.png b/packages/screen/src/views/cockpit/assets/img/weather-table-header-bg.png
new file mode 100644
index 0000000..99977db
Binary files /dev/null and b/packages/screen/src/views/cockpit/assets/img/weather-table-header-bg.png differ
diff --git a/packages/screen/src/views/cockpit/components/BlockEvent.vue b/packages/screen/src/views/cockpit/components/BlockEvent.vue
new file mode 100644
index 0000000..510be3b
--- /dev/null
+++ b/packages/screen/src/views/cockpit/components/BlockEvent.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+

+
+
{{ stat.title }}
+
{{ stat.value }}
+
公里
+

+
+
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/cockpit/components/CockpitLayout.vue b/packages/screen/src/views/cockpit/components/CockpitLayout.vue
new file mode 100644
index 0000000..2c8bc20
--- /dev/null
+++ b/packages/screen/src/views/cockpit/components/CockpitLayout.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/cockpit/components/EmergencyResources.vue b/packages/screen/src/views/cockpit/components/EmergencyResources.vue
new file mode 100644
index 0000000..d44d6c2
--- /dev/null
+++ b/packages/screen/src/views/cockpit/components/EmergencyResources.vue
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+
+
+
+
{{ index + 1 }}
+
{{ resource.name }}
+
{{ resource.stations }}
+
{{ resource.supplies }}
+
+
{{ resource.equipment }}
+

+
+
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/cockpit/components/MapCenter.vue b/packages/screen/src/views/cockpit/components/MapCenter.vue
new file mode 100644
index 0000000..e2ac84c
--- /dev/null
+++ b/packages/screen/src/views/cockpit/components/MapCenter.vue
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/cockpit/components/PageHeader.vue b/packages/screen/src/views/cockpit/components/PageHeader.vue
new file mode 100644
index 0000000..89b0b7e
--- /dev/null
+++ b/packages/screen/src/views/cockpit/components/PageHeader.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/cockpit/components/WeatherWarning.vue b/packages/screen/src/views/cockpit/components/WeatherWarning.vue
new file mode 100644
index 0000000..4f9d0e7
--- /dev/null
+++ b/packages/screen/src/views/cockpit/components/WeatherWarning.vue
@@ -0,0 +1,320 @@
+
+
+
+
+
+
+
+
+
+
+
+

+
{{ level.count }}
+
+
+
+
+
+
+
+
{{ level.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ district.name }}
+
{{ district.km }}
+
+ {{ district.warning }}
+
+
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/cockpit/components/YearStatistics.vue b/packages/screen/src/views/cockpit/components/YearStatistics.vue
new file mode 100644
index 0000000..3342b8a
--- /dev/null
+++ b/packages/screen/src/views/cockpit/components/YearStatistics.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+
+
+ {{ value }}
+
+
+

+
+
+
+
+
+ {{ year }}
+
+
+
+
+
+
+
diff --git a/packages/screen/src/views/cockpit/index.vue b/packages/screen/src/views/cockpit/index.vue
new file mode 100644
index 0000000..ec64813
--- /dev/null
+++ b/packages/screen/src/views/cockpit/index.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 52f1797..9ed5a35 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -54,7 +54,7 @@ importers:
devDependencies:
'@vitejs/plugin-vue':
specifier: ^5.0.0
- version: 5.2.4(vite@5.4.20(sass@1.93.2)(terser@5.44.0))(vue@3.5.22)
+ version: 5.2.4(vite@5.4.20(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22)
sass:
specifier: ^1.70.0
version: 1.93.2
@@ -66,7 +66,7 @@ importers:
version: 0.26.0(@babel/parser@7.28.4)(rollup@4.52.4)(vue@3.5.22)
vite:
specifier: ^5.0.0
- version: 5.4.20(sass@1.93.2)(terser@5.44.0)
+ version: 5.4.20(less@4.4.2)(sass@1.93.2)(terser@5.44.0)
packages/screen:
dependencies:
@@ -91,13 +91,16 @@ importers:
devDependencies:
'@vitejs/plugin-vue':
specifier: ^5.0.0
- version: 5.2.4(vite@5.4.20(sass@1.93.2)(terser@5.44.0))(vue@3.5.22)
+ version: 5.2.4(vite@5.4.20(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22)
+ less:
+ specifier: ^4.4.2
+ version: 4.4.2
sass:
specifier: ^1.70.0
version: 1.93.2
vite:
specifier: ^5.0.0
- version: 5.4.20(sass@1.93.2)(terser@5.44.0)
+ version: 5.4.20(less@4.4.2)(sass@1.93.2)(terser@5.44.0)
packages/shared:
dependencies:
@@ -662,6 +665,9 @@ packages:
confbox@0.2.2:
resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
+ copy-anything@2.0.6:
+ resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==}
+
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
@@ -702,6 +708,10 @@ packages:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
+ errno@0.1.8:
+ resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
+ hasBin: true
+
es-define-property@1.0.1:
resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
engines: {node: '>= 0.4'}
@@ -784,6 +794,9 @@ packages:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'}
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
has-symbols@1.1.0:
resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
engines: {node: '>= 0.4'}
@@ -796,6 +809,15 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
+ iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+
+ image-size@0.5.5:
+ resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
immutable@5.1.4:
resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==}
@@ -819,9 +841,17 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
+ is-what@3.14.1:
+ resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==}
+
js-tokens@9.0.1:
resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
+ less@4.4.2:
+ resolution: {integrity: sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==}
+ engines: {node: '>=14'}
+ hasBin: true
+
local-pkg@0.4.3:
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
engines: {node: '>=14'}
@@ -850,6 +880,10 @@ packages:
magic-string@0.30.19:
resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
+ make-dir@2.1.0:
+ resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
+ engines: {node: '>=6'}
+
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
@@ -873,6 +907,11 @@ packages:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
+ mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
minimatch@9.0.5:
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -888,6 +927,11 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ needle@3.3.1:
+ resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==}
+ engines: {node: '>= 4.4.x'}
+ hasBin: true
+
node-addon-api@7.1.1:
resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
@@ -898,6 +942,10 @@ packages:
normalize-wheel-es@1.2.0:
resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
+ parse-node-version@1.0.1:
+ resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==}
+ engines: {node: '>= 0.10'}
+
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
@@ -915,6 +963,10 @@ packages:
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
engines: {node: '>=12'}
+ pify@4.0.1:
+ resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+ engines: {node: '>=6'}
+
pinia@2.3.1:
resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==}
peerDependencies:
@@ -937,6 +989,9 @@ packages:
proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ prr@1.0.1:
+ resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
+
quansync@0.2.11:
resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
@@ -971,14 +1026,24 @@ packages:
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
sass@1.93.2:
resolution: {integrity: sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==}
engines: {node: '>=14.0.0'}
hasBin: true
+ sax@1.4.1:
+ resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
+
scule@1.3.0:
resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
+ semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
@@ -1429,9 +1494,9 @@ snapshots:
dependencies:
vue: 3.5.22
- '@vitejs/plugin-vue@5.2.4(vite@5.4.20(sass@1.93.2)(terser@5.44.0))(vue@3.5.22)':
+ '@vitejs/plugin-vue@5.2.4(vite@5.4.20(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22)':
dependencies:
- vite: 5.4.20(sass@1.93.2)(terser@5.44.0)
+ vite: 5.4.20(less@4.4.2)(sass@1.93.2)(terser@5.44.0)
vue: 3.5.22
'@vue/compiler-core@3.5.22':
@@ -1588,6 +1653,10 @@ snapshots:
confbox@0.2.2: {}
+ copy-anything@2.0.6:
+ dependencies:
+ is-what: 3.14.1
+
csstype@3.1.3: {}
dayjs@1.11.18: {}
@@ -1634,6 +1703,11 @@ snapshots:
entities@4.5.0: {}
+ errno@0.1.8:
+ dependencies:
+ prr: 1.0.1
+ optional: true
+
es-define-property@1.0.1: {}
es-errors@1.3.0: {}
@@ -1740,6 +1814,9 @@ snapshots:
gopd@1.2.0: {}
+ graceful-fs@4.2.11:
+ optional: true
+
has-symbols@1.1.0: {}
has-tostringtag@1.0.2:
@@ -1750,6 +1827,14 @@ snapshots:
dependencies:
function-bind: 1.1.2
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+ optional: true
+
+ image-size@0.5.5:
+ optional: true
+
immutable@5.1.4: {}
is-binary-path@2.1.0:
@@ -1768,8 +1853,24 @@ snapshots:
is-number@7.0.0: {}
+ is-what@3.14.1: {}
+
js-tokens@9.0.1: {}
+ less@4.4.2:
+ dependencies:
+ copy-anything: 2.0.6
+ parse-node-version: 1.0.1
+ tslib: 2.3.0
+ optionalDependencies:
+ errno: 0.1.8
+ graceful-fs: 4.2.11
+ image-size: 0.5.5
+ make-dir: 2.1.0
+ mime: 1.6.0
+ needle: 3.3.1
+ source-map: 0.6.1
+
local-pkg@0.4.3: {}
local-pkg@0.5.1:
@@ -1797,6 +1898,12 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
+ make-dir@2.1.0:
+ dependencies:
+ pify: 4.0.1
+ semver: 5.7.2
+ optional: true
+
math-intrinsics@1.1.0: {}
memoize-one@6.0.0: {}
@@ -1814,6 +1921,9 @@ snapshots:
dependencies:
mime-db: 1.52.0
+ mime@1.6.0:
+ optional: true
+
minimatch@9.0.5:
dependencies:
brace-expansion: 2.0.2
@@ -1829,6 +1939,12 @@ snapshots:
nanoid@3.3.11: {}
+ needle@3.3.1:
+ dependencies:
+ iconv-lite: 0.6.3
+ sax: 1.4.1
+ optional: true
+
node-addon-api@7.1.1:
optional: true
@@ -1836,6 +1952,8 @@ snapshots:
normalize-wheel-es@1.2.0: {}
+ parse-node-version@1.0.1: {}
+
path-parse@1.0.7: {}
pathe@2.0.3: {}
@@ -1846,6 +1964,9 @@ snapshots:
picomatch@4.0.3: {}
+ pify@4.0.1:
+ optional: true
+
pinia@2.3.1(vue@3.5.22):
dependencies:
'@vue/devtools-api': 6.6.4
@@ -1874,6 +1995,9 @@ snapshots:
proxy-from-env@1.1.0: {}
+ prr@1.0.1:
+ optional: true
+
quansync@0.2.11: {}
queue-microtask@1.2.3: {}
@@ -1926,6 +2050,9 @@ snapshots:
dependencies:
queue-microtask: 1.2.3
+ safer-buffer@2.1.2:
+ optional: true
+
sass@1.93.2:
dependencies:
chokidar: 4.0.3
@@ -1934,8 +2061,14 @@ snapshots:
optionalDependencies:
'@parcel/watcher': 2.5.1
+ sax@1.4.1:
+ optional: true
+
scule@1.3.0: {}
+ semver@5.7.2:
+ optional: true
+
source-map-js@1.2.1: {}
source-map-support@0.5.21:
@@ -2034,13 +2167,14 @@ snapshots:
'@vue/shared': 3.5.22
vue: 3.5.22
- vite@5.4.20(sass@1.93.2)(terser@5.44.0):
+ vite@5.4.20(less@4.4.2)(sass@1.93.2)(terser@5.44.0):
dependencies:
esbuild: 0.21.5
postcss: 8.5.6
rollup: 4.52.4
optionalDependencies:
fsevents: 2.3.3
+ less: 4.4.2
sass: 1.93.2
terser: 5.44.0