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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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