diff --git a/src/components/YlTable/Index.vue b/src/components/YlTable/Index.vue index 84549f2..425eef4 100644 --- a/src/components/YlTable/Index.vue +++ b/src/components/YlTable/Index.vue @@ -1,65 +1,63 @@ - - - - - + + + + + diff --git a/src/components/YlTable/types/table.d.ts b/src/components/YlTable/types/table.d.ts new file mode 100644 index 0000000..aaa4bfd --- /dev/null +++ b/src/components/YlTable/types/table.d.ts @@ -0,0 +1,6 @@ +type TablePropsType = { + prop: string; + label: string; + width?: string; +}; + \ No newline at end of file diff --git a/src/hooks/request/recommend.ts b/src/hooks/request/recommend.ts new file mode 100644 index 0000000..6cf0454 --- /dev/null +++ b/src/hooks/request/recommend.ts @@ -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) { + const code = ref(); + const message = ref(); + const data = ref(); + + request({ + 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 + }; +} diff --git a/src/hooks/request/types/recommend.d.ts b/src/hooks/request/types/recommend.d.ts new file mode 100644 index 0000000..fd4d330 --- /dev/null +++ b/src/hooks/request/types/recommend.d.ts @@ -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; +} diff --git a/src/hooks/request/types/response.d.ts b/src/hooks/request/types/response.d.ts new file mode 100644 index 0000000..eafb4f4 --- /dev/null +++ b/src/hooks/request/types/response.d.ts @@ -0,0 +1,9 @@ +import { HomeRecommend } from "./recommend"; + +export interface CDMResponse{ + code: number; + data: T; + message: string; +} + +type HomeRecommendResponse = CDMResponse; \ No newline at end of file diff --git a/src/views/Home/Index.vue b/src/views/Home/Index.vue index c1491df..364135a 100644 --- a/src/views/Home/Index.vue +++ b/src/views/Home/Index.vue @@ -9,6 +9,7 @@ import appBridge from '@/assets/js/appBridge'; import ImageSlider from './components/ImageSlider/Index.vue'; import SearchBar from '@/components/Search/Index.vue'; import Navigation from '@/components/Navigation/Index.vue'; +import HomeRecommend from './components/HomeRecommend/Index.vue'; import MineTask from '@/views/Home/components/MineTask/Index.vue'; import router from '@/router'; @@ -66,7 +67,8 @@ function handleSearchClick() { - + + @@ -90,4 +92,8 @@ function handleSearchClick() { overflow: hidden; border-radius: theme.$card-radius; } + +.home_recommend { + margin: theme.$gap 0; +} diff --git a/src/views/Home/components/HomeRecommend/Index.vue b/src/views/Home/components/HomeRecommend/Index.vue new file mode 100644 index 0000000..7cdb827 --- /dev/null +++ b/src/views/Home/components/HomeRecommend/Index.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/views/Survey/Index.vue b/src/views/Survey/Index.vue index ddef300..f67ffd9 100644 --- a/src/views/Survey/Index.vue +++ b/src/views/Survey/Index.vue @@ -1,95 +1,96 @@ - - - - - + + + + +