diff --git a/app/components/news/new.vue b/app/components/news/new.vue index e1ebd5d..db43330 100644 --- a/app/components/news/new.vue +++ b/app/components/news/new.vue @@ -41,7 +41,7 @@ const props = withDefaults(defineProps(), { }) // API基础地址 -const API_BASE_URL = 'http://192.168.2.26:4101' +const API_BASE_URL = 'http://192.168.2.77:4101' // 内部文章数据(当没有外部传入时使用) const internalArticleData = ref({ @@ -354,10 +354,10 @@ const loadCSSFiles = () => {
-
diff --git a/app/composables/useArticleApi.ts b/app/composables/useArticleApi.ts index b864998..b91dc14 100644 --- a/app/composables/useArticleApi.ts +++ b/app/composables/useArticleApi.ts @@ -1,30 +1,30 @@ // 文章API服务 export interface Article { - id: string - title: string - brief: string | null - content: string | null - createTime: string - code: string | null - status: string | null + id: string + title: string + brief: string | null + content: string | null + createTime: string + code: string | null + status: string | null } export interface ArticleListResponse { - msg: string - code: number - data: Article[] + msg: string + code: number + data: Article[] } export interface ArticleListParams { - code?: string // 文章类型:solution、developKnowledge、industryTrend - orderByColumn?: string - isAsc?: string - pageNum?: number - pageSize?: number + code?: string // 文章类型:solution、developKnowledge、industryTrend + orderByColumn?: string + isAsc?: string + pageNum?: number + pageSize?: number } // API基础地址 -const API_BASE_URL = 'http://192.168.2.26:4101' +const API_BASE_URL = 'http://192.168.2.77:4101' /** * 获取文章列表 @@ -32,35 +32,35 @@ const API_BASE_URL = 'http://192.168.2.26:4101' * @returns Promise */ export const fetchArticleList = async (params: ArticleListParams = {}): Promise => { - try { - // 构建查询参数 - const queryParams = new URLSearchParams() - - if (params.code) queryParams.append('code', params.code) - if (params.orderByColumn) queryParams.append('orderByColumn', params.orderByColumn) - if (params.isAsc) queryParams.append('isAsc', params.isAsc) - if (params.pageNum) queryParams.append('pageNum', params.pageNum.toString()) - if (params.pageSize) queryParams.append('pageSize', params.pageSize.toString()) + try { + // 构建查询参数 + const queryParams = new URLSearchParams() - const url = `${API_BASE_URL}/app/owArticle/list?${queryParams.toString()}` - - const response = await fetch(url, { - method: 'GET', - headers: { - 'Content-Type': 'application/json', - }, - }) + if (params.code) queryParams.append('code', params.code) + if (params.orderByColumn) queryParams.append('orderByColumn', params.orderByColumn) + if (params.isAsc) queryParams.append('isAsc', params.isAsc) + if (params.pageNum) queryParams.append('pageNum', params.pageNum.toString()) + if (params.pageSize) queryParams.append('pageSize', params.pageSize.toString()) - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`) + const url = `${API_BASE_URL}/app/owArticle/list?${queryParams.toString()}` + + const response = await fetch(url, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + }, + }) + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`) + } + + const result: ArticleListResponse = await response.json() + return result + } catch (error) { + console.error('获取文章列表失败:', error) + throw error } - - const result: ArticleListResponse = await response.json() - return result - } catch (error) { - console.error('获取文章列表失败:', error) - throw error - } } /** @@ -70,46 +70,46 @@ export const fetchArticleList = async (params: ArticleListParams = {}): Promise< * @returns Promise> */ export const fetchRecommendedArticles = async ( - types: string[] = ['solution', 'developKnowledge', 'industryTrend'], - pageSize: number = 5 + types: string[] = ['solution', 'developKnowledge', 'industryTrend'], + pageSize: number = 5 ): Promise> => { - try { - const result: Record = {} - - // 并发获取各类型文章 - const promises = types.map(async (type) => { - const response = await fetchArticleList({ - code: type, - orderByColumn: 'createTime', - isAsc: 'descending', - pageNum: 1, - pageSize: pageSize - }) - return { type, articles: response.data } - }) + try { + const result: Record = {} - const responses = await Promise.all(promises) - - // 整理结果 - responses.forEach(({ type, articles }) => { - result[type] = articles - }) + // 并发获取各类型文章 + const promises = types.map(async (type) => { + const response = await fetchArticleList({ + code: type, + orderByColumn: 'createTime', + isAsc: 'descending', + pageNum: 1, + pageSize: pageSize + }) + return {type, articles: response.data} + }) - return result - } catch (error) { - console.error('获取推荐文章失败:', error) - throw error - } + const responses = await Promise.all(promises) + + // 整理结果 + responses.forEach(({type, articles}) => { + result[type] = articles + }) + + return result + } catch (error) { + console.error('获取推荐文章失败:', error) + throw error + } } /** * 文章类型映射 */ export const ARTICLE_TYPE_MAP: Record = { - 'solution': '解决方案', - 'developKnowledge': '开发知识', - 'industryTrend': '行业动态', - 'aboutUs': '关于我们' + 'solution': '解决方案', + 'developKnowledge': '开发知识', + 'industryTrend': '行业动态', + 'aboutUs': '关于我们' } /** @@ -118,7 +118,7 @@ export const ARTICLE_TYPE_MAP: Record = { * @returns 中文名称 */ export const getArticleTypeName = (code: string): string => { - return ARTICLE_TYPE_MAP[code] || '未知类型' + return ARTICLE_TYPE_MAP[code] || '未知类型' } /** @@ -126,37 +126,37 @@ export const getArticleTypeName = (code: string): string => { * @returns 文章API相关方法 */ export const useArticleApi = () => { - /** - * 获取文章列表 - * @param params 查询参数 - * @returns Promise - */ - const getArticles = async (params: ArticleListParams = {}): Promise => { - try { - const response = await fetchArticleList(params) - return response.data || [] - } catch (error) { - console.error('获取文章列表失败:', error) - return [] + /** + * 获取文章列表 + * @param params 查询参数 + * @returns Promise + */ + const getArticles = async (params: ArticleListParams = {}): Promise => { + try { + const response = await fetchArticleList(params) + return response.data || [] + } catch (error) { + console.error('获取文章列表失败:', error) + return [] + } } - } - /** - * 获取推荐文章(按类型分组) - * @param types 文章类型数组 - * @param pageSize 每页数量 - * @returns Promise> - */ - const getRecommendedArticles = async ( - types: string[] = ['solution', 'developKnowledge', 'industryTrend'], - pageSize: number = 5 - ): Promise> => { - return await fetchRecommendedArticles(types, pageSize) - } + /** + * 获取推荐文章(按类型分组) + * @param types 文章类型数组 + * @param pageSize 每页数量 + * @returns Promise> + */ + const getRecommendedArticles = async ( + types: string[] = ['solution', 'developKnowledge', 'industryTrend'], + pageSize: number = 5 + ): Promise> => { + return await fetchRecommendedArticles(types, pageSize) + } - return { - getArticles, - getRecommendedArticles, - getArticleTypeName - } + return { + getArticles, + getRecommendedArticles, + getArticleTypeName + } } diff --git a/app/pages/article/[id].vue b/app/pages/article/[id].vue index 73a2a15..373266a 100644 --- a/app/pages/article/[id].vue +++ b/app/pages/article/[id].vue @@ -29,7 +29,7 @@ const loading = ref(true) const error = ref('') // API基础地址 -const API_BASE_URL = 'http://192.168.2.26:4101' +const API_BASE_URL = 'http://192.168.2.77:4101' // 获取文章详情 const fetchArticle = async (id: string) => { @@ -98,7 +98,7 @@ watch(() => route.params.id, (newId) => {