feat: 新增首页推荐组件及相关功能优化
- 新增首页推荐组件 HomeRecommend,用于展示趋势数据 - 新增推荐相关 API 接口 recommend.ts 及类型定义 - 优化 YlTable 组件,添加类型定义文件,支持 emptyText 和 width 属性 - 修改 Home 页面,添加首页推荐组件的展示 - 优化 Survey 页面代码结构,修复加载逻辑 - 添加响应类型定义,规范 API 返回数据格式
This commit is contained in:
35
src/hooks/request/recommend.ts
Normal file
35
src/hooks/request/recommend.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import request from '@/utils/request';
|
||||
import type { HomeRecommendResponse } from './types/response';
|
||||
import { ref } from 'vue';
|
||||
import type { AxiosResponse } from 'axios';
|
||||
|
||||
type RecommendParams = {
|
||||
page: string;
|
||||
per_page: string;
|
||||
sort: string;
|
||||
};
|
||||
/**
|
||||
* 首页推荐内容
|
||||
* @param params 可选参数
|
||||
* @returns 推荐结果
|
||||
*/
|
||||
export function recommend(params: Partial<RecommendParams>) {
|
||||
const code = ref();
|
||||
const message = ref();
|
||||
const data = ref<HomeRecommendResponse['data']>();
|
||||
|
||||
request<HomeRecommendResponse>({
|
||||
url: `/console/survey/trend/list`,
|
||||
params
|
||||
}).then((res) => {
|
||||
code.value = res.data.code;
|
||||
message.value = res.data.message;
|
||||
data.value = res.data.data;
|
||||
});
|
||||
|
||||
return {
|
||||
code,
|
||||
message,
|
||||
data
|
||||
};
|
||||
}
|
||||
38
src/hooks/request/types/recommend.d.ts
vendored
Normal file
38
src/hooks/request/types/recommend.d.ts
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
export interface HomeRecommend {
|
||||
meta: Meta;
|
||||
surveyTrendDataVOS: SurveyTrendDataVO[];
|
||||
// [property: string]: any;
|
||||
}
|
||||
|
||||
export interface Meta {
|
||||
currentPage: number;
|
||||
from: number;
|
||||
lastPage: number;
|
||||
perPage: number;
|
||||
total: number;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
export interface SurveyTrendDataVO {
|
||||
/**
|
||||
* 声量增长环比
|
||||
*/
|
||||
growthRingRatio: number | number;
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
id: number;
|
||||
/**
|
||||
* 排名
|
||||
*/
|
||||
rank: number;
|
||||
/**
|
||||
* 销量增长环比
|
||||
*/
|
||||
salesGrowthRingRatio: number;
|
||||
/**
|
||||
* 趋势名称
|
||||
*/
|
||||
trendName: string;
|
||||
[property: string]: any;
|
||||
}
|
||||
9
src/hooks/request/types/response.d.ts
vendored
Normal file
9
src/hooks/request/types/response.d.ts
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
import { HomeRecommend } from "./recommend";
|
||||
|
||||
export interface CDMResponse<T>{
|
||||
code: number;
|
||||
data: T;
|
||||
message: string;
|
||||
}
|
||||
|
||||
type HomeRecommendResponse = CDMResponse<HomeRecommend>;
|
||||
Reference in New Issue
Block a user