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 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+