feat(home): 重构首页界面并移除文章相关页面

- 添加公司信息配置文件,包含项目名称、地址、经营范围等
- 实现404页面路由,显示页面建设中提示和导航按钮
- 在首页集成公司信息展示,包括经营范围和资质信息
- 移除文章列表页、文章详情页、栏目页和单页内容相关功能
- 更新Ant Design主题配色为绿色主色调
- 简化首页布局,突出业务板块和服务导向设计
- 删除部署方案和开通流程等临时页面内容
This commit is contained in:
2026-01-27 09:51:14 +08:00
parent 775841eed3
commit a83f2969d8
17 changed files with 423 additions and 1446 deletions

81
app/pages/products.vue Normal file
View File

@@ -0,0 +1,81 @@
<template>
<div class="mx-auto max-w-screen-xl px-4 py-12">
<a-typography-title :level="1" class="!mb-2">经营范围</a-typography-title>
<a-typography-paragraph class="!text-gray-600 !mb-8">
以下信息用于公示与参考最终以工商登记及相关许可文件/许可证件为准
</a-typography-paragraph>
<a-row :gutter="[24, 24]">
<a-col :xs="24" :lg="14">
<a-card title="一般项目(经营范围)">
<a-list size="small" :data-source="generalItems">
<template #renderItem="{ item }">
<a-list-item class="scope-item">{{ item }}</a-list-item>
</template>
</a-list>
</a-card>
<a-card class="mt-6" title="许可项目">
<a-list size="small" :data-source="licensedItems">
<template #renderItem="{ item }">
<a-list-item class="scope-item">{{ item }}</a-list-item>
</template>
</a-list>
</a-card>
</a-col>
<a-col :xs="24" :lg="10">
<a-card title="基本信息">
<a-descriptions bordered :column="1" size="small">
<a-descriptions-item label="项目名称">{{ COMPANY.projectName }}</a-descriptions-item>
<a-descriptions-item label="注册地址">{{ COMPANY.address }}</a-descriptions-item>
</a-descriptions>
<a-alert
class="mt-4"
show-icon
type="warning"
message="涉及许可项目的经营活动,请以主管部门批准文件/许可证件为准。"
/>
</a-card>
<a-card class="mt-6" title="快速入口">
<a-space direction="vertical" class="w-full">
<a-button type="primary" block @click="navigateTo('/contact')">合作咨询</a-button>
<a-button block @click="navigateTo('/')">返回首页</a-button>
</a-space>
</a-card>
</a-col>
</a-row>
</div>
</template>
<script setup lang="ts">
import { usePageSeo } from '@/composables/usePageSeo'
import { COMPANY } from '@/config/company'
usePageSeo({
title: '经营范围',
description: `${COMPANY.projectName} 经营范围公示:一般项目、许可项目及注册地址信息。`,
path: '/products'
})
function splitScope(text: string) {
return text
.split(/[;]+/g)
.map((s) => s.trim())
.filter(Boolean)
.map((s) => s.replace(/[。.]$/, '').trim())
}
const generalItems = computed(() => splitScope(COMPANY.scope.general))
const licensedItems = computed(() => splitScope(COMPANY.scope.licensed))
</script>
<style scoped>
.scope-item {
padding: 6px 0;
color: rgba(0, 0, 0, 0.75);
line-height: 1.6;
}
</style>