diff --git a/frontend/components.d.ts b/frontend/components.d.ts
index f3d4178..7409d23 100644
--- a/frontend/components.d.ts
+++ b/frontend/components.d.ts
@@ -22,7 +22,9 @@ declare module 'vue' {
ElEmpty: typeof import('element-plus/es')['ElEmpty']
ElIcon: typeof import('element-plus/es')['ElIcon']
ElInput: typeof import('element-plus/es')['ElInput']
+ ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination']
+ ElSelect: typeof import('element-plus/es')['ElSelect']
ElTag: typeof import('element-plus/es')['ElTag']
HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
diff --git a/frontend/public/default.png b/frontend/public/default.png
new file mode 100644
index 0000000..d4e4af0
Binary files /dev/null and b/frontend/public/default.png differ
diff --git a/frontend/src/api/search.ts b/frontend/src/api/search.ts
new file mode 100644
index 0000000..00408b6
--- /dev/null
+++ b/frontend/src/api/search.ts
@@ -0,0 +1,16 @@
+//进行接口API的统一管理
+import { request } from "./axios";
+
+export class search {
+ /**
+ * @description 首页搜索数据
+ * @param {string} keyword - 关键字
+ * @param {string} type - 类型
+ * @param {number} page - 页码
+ * @param {number} limit - 每页条数
+ * @return {Promise} 返回请求结果
+ */
+ static async getArticleDetail(keyword: string, type: string, page: number = 1, limit: number = 10) {
+ return request("/index/search/apiSearch", { keyword, type, page, limit }, "get");
+ }
+}
diff --git a/frontend/src/assets/less/global.less b/frontend/src/assets/less/global.less
index 7e59938..fd37282 100644
--- a/frontend/src/assets/less/global.less
+++ b/frontend/src/assets/less/global.less
@@ -5,6 +5,8 @@
:root {
--white:#fff;
--primary-color: #409eff;
+ --primary-hover-color: #3c4ccf;
+ --primary-light-bg: #e7f3ff;
--success-color: #67c23a;
--warning-color: #e6a23c;
--danger-color: #f56c6c;
@@ -21,6 +23,7 @@
--background-color: #f5f5f5;
--background-color-page: #f0f2f5;
+ --background-color-hover: #f7f8fd;
}
// 全局重置样式
diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts
index 6c8bd06..b7b4e19 100644
--- a/frontend/src/router/index.ts
+++ b/frontend/src/router/index.ts
@@ -47,6 +47,11 @@ const router = createRouter({
name: "downloadGames",
component: () => import("@/views/downloadGames/index.vue"),
},
+ {
+ path: "/search",
+ name: "search",
+ component: () => import("@/views/components/search.vue"),
+ },
],
});
diff --git a/frontend/src/views/components/ResourceList.vue b/frontend/src/views/components/ResourceList.vue
index 2250620..872e957 100644
--- a/frontend/src/views/components/ResourceList.vue
+++ b/frontend/src/views/components/ResourceList.vue
@@ -81,7 +81,11 @@
@@ -537,6 +544,11 @@ onMounted(() => {
justify-content: space-between;
margin: 30px 0;
+ .prev,
+ .next {
+ width: 50%;
+ }
+
a {
color: #333;
}
diff --git a/frontend/src/views/components/detail_resource.vue b/frontend/src/views/components/detail_resource.vue
index b49200c..5848dbc 100644
--- a/frontend/src/views/components/detail_resource.vue
+++ b/frontend/src/views/components/detail_resource.vue
@@ -5,6 +5,7 @@ import { ElMessage } from "element-plus";
import Header from "@/views/components/header.vue";
import Footer from "@/views/components/footer.vue";
import { resource as resourceApi } from "@/api/resource";
+import defaultImage from "@/assets/imgs/default.png";
const route = useRoute();
const router = useRouter(); // 新增:引入useRouter
@@ -27,7 +28,9 @@ const pageInfo = computed(() => ({
// 获取图片地址
const getImageUrl = (imagePath: string) => {
- if (!imagePath) return "/src/assets/imgs/default.png";
+ if (!imagePath) {
+ return defaultImage;
+ }
return import.meta.env.VITE_API_DOMAIN + imagePath;
};
@@ -158,14 +161,12 @@ const fetchResourceDetail = async () => {
try {
const response: any = await resourceApi.getResourceDetail(resourceId.value);
-
- console.log("获取资源详情响应:", response);
- if (response?.data?.code === 0 && response?.data?.data) {
- resourceData.value = response.data.data.resource;
+ if (response.data.code === 0) {
+ resourceData.value = response.data.data;
+ console.log(resourceData.value);
prevResource.value = response.data.data.prev_resource;
nextResource.value = response.data.data.next_resource;
relatedResources.value = response.data.data.related_resources || [];
- console.log("资源数据加载完成:", resourceData.value?.title);
} else {
console.error("API响应格式错误:", response);
ElMessage.error("获取资源详情失败:数据格式错误");
@@ -196,8 +197,6 @@ watch(
);
onMounted(() => {
- // 移除原有的fetchResourceDetail调用,由watch接管
- // 页面加载时滚动到顶部
window.scrollTo(0, 0);
});
@@ -217,9 +216,7 @@ onMounted(() => {