feat 搭建架构骨架

This commit is contained in:
Ironsp
2026-09-24 09:09:47 +08:00
parent dd9f6b77a4
commit 7a2efa3fea
180 changed files with 18967 additions and 9 deletions

View File

@@ -0,0 +1,146 @@
<script setup lang="ts">
import { useSiteStore } from '@/stores/modules/site'
const siteStore = useSiteStore()
const quickLinks = [
{ label: '首页', path: '/' },
{ label: '案例中心', path: '/cases' },
{ label: '需求提报', path: '/demand' },
{ label: '下载 APP', path: '/' },
{ label: '帮助中心', path: '/profile/help' },
]
const coreBusiness = [
'互联网软件开发',
'硬件电路开发',
'物联网软硬一体化全案',
'PCB 制版 & SMT 贴片生产',
'元器件集采与整机装配',
]
</script>
<template>
<footer class="app-footer">
<div class="app-footer__inner container">
<div class="app-footer__about">
<div class="app-footer__brand">
<!-- TODO(蓝湖): 替换 logo 切图 -->
<img src="@/assets/vue.svg" class="app-footer__logo" alt="虫子智造 logo">
<span class="app-footer__name">虫子智造</span>
</div>
<p class="app-footer__desc">
研发智造一体化自营平台,打通研发‑仿真‑设计‑PCB‑SMT‑整机装配‑售后迭代全链路,为科技企业、硬件厂商、创客团队提供软硬一体化定制与量产落地服务。平台自营不开放第三方服务商入驻,对项目质量全权兜底。
</p>
<p class="app-footer__legal">
©2026 虫子智造 研发智造一体化平台 版权所有|自营研发生产平台,所有项目源码、图纸受平台知识产权保护,禁止盗用、复制、二次分发
</p>
<p class="app-footer__legal">
{{ siteStore.siteInfo.icp }} | {{ siteStore.siteInfo.police }}
</p>
</div>
<div class="app-footer__col">
<h4 class="app-footer__title">
快速导航
</h4>
<RouterLink
v-for="link in quickLinks"
:key="link.label"
:to="link.path"
class="app-footer__link"
>
{{ link.label }}
</RouterLink>
</div>
<div class="app-footer__col">
<h4 class="app-footer__title">
核心业务
</h4>
<span
v-for="item in coreBusiness"
:key="item"
class="app-footer__link"
>{{ item }}</span>
</div>
<div class="app-footer__col">
<h4 class="app-footer__title">
联系我们
</h4>
<span class="app-footer__contact">商务合作:{{ siteStore.siteInfo.businessEmail }}</span>
<span class="app-footer__contact">技术支持:{{ siteStore.siteInfo.supportEmail }}</span>
<span class="app-footer__contact">客服热线:{{ siteStore.siteInfo.hotline }}</span>
<span class="app-footer__contact">工作时间:{{ siteStore.siteInfo.workTime }}</span>
</div>
</div>
</footer>
</template>
<style lang="less" scoped>
.app-footer {
background: @heading-color;
color: @text-color-secondary;
&__inner {
.flex(row, space-between, flex-start);
gap: @spacing-xl;
padding-top: @spacing-xxl;
padding-bottom: @spacing-xxl;
}
&__about {
max-width: 480px;
}
&__brand {
.flex(row, flex-start);
gap: @spacing-sm;
margin-bottom: @spacing-base;
}
&__logo {
width: 28px;
height: 28px;
}
&__name {
font-size: @font-size-lg;
font-weight: 600;
color: @white;
}
&__desc,
&__legal {
margin-top: @spacing-sm;
font-size: @font-size-sm;
line-height: 1.6;
}
&__col {
.flex(column, flex-start);
gap: @spacing-sm;
}
&__title {
margin-bottom: @spacing-sm;
font-size: @font-size-base;
color: @white;
}
&__link {
font-size: @font-size-sm;
cursor: pointer;
transition: color 0.2s;
&:hover {
color: @primary-color;
}
}
&__contact {
font-size: @font-size-sm;
}
}
</style>