2025-07-18 13:14:28 +08:00

132 lines
3.1 KiB
Vue
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="bg-white rounded-lg relative mb-10">
<div class="grid grid-cols-1 md:grid-cols-2 gap-x-8 gap-y-6">
<div v-for="(module, index) in modules" :key="index" class="module-card">
<div class="flex items-start">
<div class="w-12 h-12 rounded-lg flex items-center justify-center"
:class="moduleColors[index % moduleColors.length]">
<component :is="module.icon" class="w-6 h-6 text-white" />
</div>
<div class="ml-4 flex-1">
<h3 class="text-lg font-semibold mb-2">{{ module.name }}</h3>
<ul class="space-y-2">
<li v-for="(feature, featureIndex) in module.features" :key="featureIndex" class="flex items-start">
<CheckCircleIcon class="w-5 h-5 text-green-500 mt-1 mr-2" />
<span>{{ feature }}</span>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
import {
CogIcon,
ArrowsRightLeftIcon,
DocumentIcon,
SpeakerXMarkIcon,
ComputerDesktopIcon,
ServerIcon,
LightBulbIcon,
WrenchIcon,
CheckCircleIcon
} from '@heroicons/vue/24/solid';
// 模块详情
const modules = [
{
name: 'src/application.py',
icon: CogIcon,
features: [
'应用主类,负责协调所有子系统',
'实现了单例模式,管理全局状态',
'处理事件调度和状态转换'
]
},
{
name: 'src/protocols/',
icon: ArrowsRightLeftIcon,
features: [
'通信协议的抽象接口和具体实现',
'WebSocket协议用于实时双向通信',
'MQTT协议用于物联网设备通信'
]
},
{
name: 'src/audio_codecs/',
icon: DocumentIcon,
features: [
'音频编解码器,处理音频数据压缩/解压缩',
'支持Opus编码格式'
]
},
{
name: 'src/audio_processing/',
icon: SpeakerXMarkIcon,
features: [
'语音活动检测:判断用户是否在说话',
'唤醒词检测:识别指定的唤醒词'
]
},
{
name: 'src/display/',
icon: ComputerDesktopIcon,
features: [
'用户界面抽象和实现',
'GUI界面基于PyQt5的图形界面',
'CLI界面命令行交互界面'
]
},
{
name: 'src/iot/',
icon: ServerIcon,
features: [
'IoT设备管理框架',
'设备抽象类和具体实现',
'支持智能家居设备控制'
]
},
{
name: 'src/iot/things/',
icon: LightBulbIcon,
features: [
'具体IoT设备的实现',
'音乐播放器、温度传感器',
'灯光控制、摄像头等'
]
},
{
name: 'src/utils/',
icon: WrenchIcon,
features: [
'各类工具函数和辅助类',
'日志管理、配置管理等'
]
}
];
const moduleColors = [
'bg-blue-600',
'bg-indigo-600',
'bg-purple-600',
'bg-pink-600',
'bg-red-600',
'bg-orange-600',
'bg-yellow-600',
'bg-green-600'
];
</script>
<style scoped>
.module-card {
transition: all 0.3s ease;
}
.module-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
</style>