feat(router): 更新路由结构并优化页面组件

- 移除经营范围按钮,精简导航栏
- 实现文章标题链接功能,提升用户体验
- 添加商品详情页面包屑导航,支持分类跳转
- 引入配送管理相关页面(区域、接单台、配送员、派单)
- 替换控制台布局为站点头部和底部组件
- 重构商品分类页面,集成CMS导航功能
- 新增文章详情页面,支持多种访问方式
- 删除已迁移的创建应用和空应用页面
- 优化样式和组件导入,提升代码质量
This commit is contained in:
2026-01-29 16:21:22 +08:00
parent 26c236041f
commit 682e264a6f
22 changed files with 1309 additions and 881 deletions

View File

@@ -86,7 +86,9 @@
<a-list-item-meta :description="resolveArticleOverview(item)">
<template #title>
<span class="article-title">{{ resolveArticleTitle(item) }}</span>
<NuxtLink class="article-title" :to="resolveArticleLink(item)">
{{ resolveArticleTitle(item) }}
</NuxtLink>
</template>
</a-list-item-meta>
@@ -251,6 +253,22 @@ function resolveArticleTitle(a: CmsArticle) {
return String(a.title || a.code || '未命名文章').trim()
}
function resolveArticleLink(a: CmsArticle) {
const articleId = typeof a.articleId === 'number' && Number.isFinite(a.articleId) ? a.articleId : NaN
const code = String(a.code || '').trim()
return {
path: '/article-item',
query: {
id: Number.isFinite(articleId) ? String(articleId) : undefined,
code: !Number.isFinite(articleId) && code ? code : undefined,
navId: Number.isFinite(navigationId.value) ? String(navigationId.value) : undefined,
page: String(page.value),
limit: String(limit.value),
q: keywords.value || undefined
}
}
}
function resolveArticleImage(a: CmsArticle) {
const img = String(a.image || '').trim()
return img || ''
@@ -350,6 +368,7 @@ useHead(() => ({
font-size: 18px;
font-weight: 800;
color: rgba(0, 0, 0, 0.88);
text-decoration: none;
}
.article-meta {