修复本地环境
This commit is contained in:
parent
dd6ee001f1
commit
5c21f20126
@ -1,2 +1,8 @@
|
||||
# API 基础地址
|
||||
# 应用名称
|
||||
VITE_APP_NAME=Yunzer
|
||||
|
||||
# 通用配置
|
||||
VITE_APP_VERSION=1.0.0
|
||||
|
||||
# 接口地址
|
||||
VITE_API_DOMAIN=http://localhost:8000
|
||||
Binary file not shown.
Binary file not shown.
@ -1,16 +1,16 @@
|
||||
import { createRouter, createWebHistory } from "vue-router";
|
||||
import { createRouter, createWebHashHistory } from "vue-router";
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
history: createWebHashHistory(),
|
||||
routes: [
|
||||
{
|
||||
path: "/",
|
||||
redirect: "/index",
|
||||
name: "index",
|
||||
component: () => import("@/views/index/index.vue"),
|
||||
},
|
||||
{
|
||||
path: "/index",
|
||||
name: "index",
|
||||
component: () => import("@/views/index/index.vue"),
|
||||
redirect: "/",
|
||||
},
|
||||
{
|
||||
path: "/siteInformation",
|
||||
|
||||
@ -4,13 +4,12 @@ import { useRoute, useRouter } from "vue-router";
|
||||
import { ElMessage } from "element-plus";
|
||||
import Header from "@/views/components/header.vue";
|
||||
import Footer from "@/views/components/footer.vue";
|
||||
import { siteInformation } from "@/api/siteInformation";
|
||||
import { technicalArticles } from "@/api/technicalArticles";
|
||||
import { article } from "@/api/article";
|
||||
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const articleId = ref(route.query.id as string);
|
||||
const article = ref<any>(null);
|
||||
const articleData = ref<any>(null);
|
||||
const loading = ref(true);
|
||||
|
||||
// 获取图片地址
|
||||
@ -41,25 +40,11 @@ const fetchArticleDetail = async () => {
|
||||
|
||||
loading.value = true;
|
||||
try {
|
||||
// 根据来源页面调用不同的API
|
||||
const source = route.query.source as string;
|
||||
let response: any;
|
||||
|
||||
if (source === 'siteInformation') {
|
||||
response = await siteInformation.getSiteInformationDetail(articleId.value);
|
||||
} else if (source === 'technicalArticles') {
|
||||
response = await technicalArticles.getTechnicalArticlesDetail(articleId.value);
|
||||
} else {
|
||||
// 默认尝试两个API
|
||||
try {
|
||||
response = await siteInformation.getSiteInformationDetail(articleId.value);
|
||||
} catch {
|
||||
response = await technicalArticles.getTechnicalArticlesDetail(articleId.value);
|
||||
}
|
||||
}
|
||||
// 使用article API获取文章详情
|
||||
const response: any = await article.getArticleDetail(articleId.value);
|
||||
|
||||
if (response.data?.data) {
|
||||
article.value = response.data.data;
|
||||
articleData.value = response.data.data;
|
||||
} else {
|
||||
ElMessage.warning(response.data?.msg || "获取文章详情失败");
|
||||
router.push("/");
|
||||
@ -108,41 +93,41 @@ onMounted(() => {
|
||||
<div v-else class="article-content">
|
||||
<!-- 文章标题 -->
|
||||
<div class="article-header">
|
||||
<h1 class="article-title">{{ article.title }}</h1>
|
||||
<h1 class="article-title">{{ articleData.title }}</h1>
|
||||
<div class="article-meta">
|
||||
<span class="article-date">
|
||||
<i class="fas fa-calendar"></i>
|
||||
{{ formatDate(article.publishdate || article.created_at) }}
|
||||
{{ formatDate(articleData.publishdate || articleData.created_at) }}
|
||||
</span>
|
||||
<span class="article-views" v-if="article.view">
|
||||
<span class="article-views" v-if="articleData.view">
|
||||
<i class="fas fa-eye"></i>
|
||||
{{ article.view }} 阅读
|
||||
{{ articleData.view }} 阅读
|
||||
</span>
|
||||
<span class="article-likes" v-if="article.likes">
|
||||
<span class="article-likes" v-if="articleData.likes">
|
||||
<i class="fas fa-heart"></i>
|
||||
{{ article.likes }} 点赞
|
||||
{{ articleData.likes }} 点赞
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 文章图片 -->
|
||||
<div class="article-image" v-if="article.image">
|
||||
<img :src="getImageUrl(article.image)" :alt="article.title" />
|
||||
<div class="article-image" v-if="articleData.image">
|
||||
<img :src="getImageUrl(articleData.image)" :alt="articleData.title" />
|
||||
</div>
|
||||
|
||||
<!-- 文章正文 -->
|
||||
<div class="article-body">
|
||||
<div
|
||||
class="article-text"
|
||||
v-html="article.content"
|
||||
v-html="articleData.content"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<!-- 文章标签 -->
|
||||
<div class="article-tags" v-if="article.tags && article.tags.length">
|
||||
<div class="article-tags" v-if="articleData.tags && articleData.tags.length">
|
||||
<span class="tag-label">标签:</span>
|
||||
<el-tag
|
||||
v-for="tag in article.tags"
|
||||
v-for="tag in articleData.tags"
|
||||
:key="tag"
|
||||
size="small"
|
||||
class="article-tag"
|
||||
|
||||
@ -113,7 +113,7 @@ const fetchResourceDetail = async () => {
|
||||
loading.value = true;
|
||||
try {
|
||||
// 由于所有资源都来自downloadGames页面,统一使用downloadGames API
|
||||
const response = await resourceApi.getResourceDetail(resourceId.value);
|
||||
const response:any = await resourceApi.getResourceDetail(resourceId.value);
|
||||
|
||||
if (response.data?.data) {
|
||||
resourceData.value = response.data.data;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user