feat: 开源项目门户站首版(iotLCM / 秀杰 DTU / XiuAdmin 三项目,注册表驱动)

This commit is contained in:
技小云
2026-11-04 11:08:47 +08:00
committed by MiFaZhan
commit fe63dacae2
27 changed files with 3786 additions and 0 deletions
+111
View File
@@ -0,0 +1,111 @@
<script setup lang="ts">
import type { Project } from '../../../data/projects'
defineProps<{ project: Project }>()
</script>
<template>
<a :href="project.page" class="project-card">
<div class="project-card-head">
<h3>{{ project.name }}</h3>
<span class="project-status" :data-status="project.status">{{ project.status }}</span>
</div>
<p class="project-tagline">{{ project.tagline }}</p>
<p class="project-summary">{{ project.summary }}</p>
<ul class="project-tech">
<li v-for="t in project.tech" :key="t">{{ t }}</li>
</ul>
<div class="project-foot">
<span class="project-license">{{ project.license }}</span>
<span class="project-link">查看详情 →</span>
</div>
</a>
</template>
<style scoped>
.project-card {
display: block;
padding: 20px 22px;
border: 1px solid var(--vp-c-divider);
border-radius: 12px;
background: var(--vp-c-bg-soft);
color: var(--vp-c-text-1);
transition: border-color 0.2s, transform 0.2s;
}
.project-card:hover {
border-color: var(--vp-c-brand-1);
transform: translateY(-2px);
}
.project-card-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.project-card h3 {
margin: 0;
font-size: 20px;
border: none;
padding: 0;
}
.project-status {
flex: none;
font-size: 12px;
padding: 2px 10px;
border-radius: 999px;
border: 1px solid var(--vp-c-divider);
color: var(--vp-c-text-2);
}
.project-status[data-status='已发布'] {
border-color: var(--vp-c-brand-1);
color: var(--vp-c-brand-1);
}
.project-tagline {
margin: 8px 0 0;
font-weight: 600;
color: var(--vp-c-text-1);
}
.project-summary {
margin: 8px 0 0;
font-size: 14px;
line-height: 1.7;
color: var(--vp-c-text-2);
}
.project-tech {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin: 14px 0 0;
padding: 0;
list-style: none;
}
.project-tech li {
font-size: 12px;
padding: 2px 8px;
border-radius: 6px;
background: var(--vp-c-default-soft);
color: var(--vp-c-text-2);
}
.project-foot {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 16px;
font-size: 13px;
color: var(--vp-c-text-3);
}
.project-link {
color: var(--vp-c-brand-1);
}
</style>