diff --git a/components/banner/README.md b/components/banner/README.md new file mode 100644 index 0000000..4d9eb34 --- /dev/null +++ b/components/banner/README.md @@ -0,0 +1,136 @@ +# Banner 组件使用说明 + +这是一个通用的轮播图(Banner)组件,可以在应用的任何页面轻松集成。 + +## 特点 + +- 支持配置不同类型的banner(通过type_id参数) +- 自动从后端接口获取数据 +- 支持可选的指示器显示 +- 处理点击事件跳转到对应页面 +- 自动轮播图片 +- **支持通过插槽在轮播图上方添加自定义内容** +- **支持自定义轮播图高度** + +## 使用方法 + +### 1. 引入组件 + +项目已经在 `pages.json` 的 `easycom` 中配置了自动引入规则,因此您无需手动导入组件。 + +### 2. 在页面中使用 + +```vue + + + +``` + +### 3. 参数说明 + +| 参数名 | 类型 | 默认值 | 说明 | +| --- | --- | --- | --- | +| typeId | Number/String | 1 | banner类型ID,对应接口的type_id参数 | +| showIndicator | Boolean | false | 是否显示轮播图指示器 | +| height | Number/String | 300 | 轮播图高度,单位rpx | + +### 4. 插槽 + +组件提供了一个默认插槽,可以用来在轮播图上方添加自定义内容。插槽内容会被定位在轮播图的顶部,并且会保持在最上层。 + +示例: +```vue + + + + +``` + +### 5. 接口数据 + +组件通过调用 `api/getAdvert` 接口获取数据,传入 `type_id` 参数。 + +接口返回数据格式示例: +```json +{ + "status": 1, + "msg": "请求成功", + "data": [ + { + "imgurl": "https://example.com/image1.png", + "ttype": 1, + "coupon_id": 123, + "goods_id": 0 + }, + { + "imgurl": "https://example.com/image2.png", + "ttype": 2, + "coupon_id": 0, + "goods_id": 456 + } + ] +} +``` + +### 6. 点击跳转逻辑 + +根据返回数据中的 `ttype` 和 `goods_id` 属性,组件会自动处理点击跳转: + +- ttype=1: 跳转到"领券中心" +- ttype=2: 跳转到"一番赏"详情页 +- ttype=3: 跳转到"无限赏"详情页 +- ttype=4: 跳转到"连击赏"页面 + +## 示例 + +### 首页banner +```vue + +``` + +### 商城页banner带标题和自定义高度 +```vue + + 精选商品 + +``` + +### 活动页banner +```vue + +``` \ No newline at end of file diff --git a/components/banner/banner.vue b/components/banner/banner.vue new file mode 100644 index 0000000..35d1c5b --- /dev/null +++ b/components/banner/banner.vue @@ -0,0 +1,176 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index d3c92fa..1b8915d 100644 --- a/pages.json +++ b/pages.json @@ -4,7 +4,8 @@ "^collect-btn$": "@/components/collect-btn/collect-btn.vue", "^detail-toolbar$": "@/components/detail-toolbar/detail-toolbar.vue", "^detail-prize-log$": "@/components/detail-prize-log/detail-prize-log.vue", - "^detail-preview-popup$": "@/components/detail-preview-popup/detail-preview-popup.vue" + "^detail-preview-popup$": "@/components/detail-preview-popup/detail-preview-popup.vue", + "^banner$": "@/components/banner/banner.vue" }, "pages": [{ "path": "pages/shouye/index", diff --git a/pages/infinite/benefit.vue b/pages/infinite/benefit.vue index 6a59b8f..1eb8a9e 100644 --- a/pages/infinite/benefit.vue +++ b/pages/infinite/benefit.vue @@ -2,18 +2,17 @@ \ No newline at end of file diff --git a/pages/infinite/index.vue b/pages/infinite/index.vue index 0959777..6fb4d7b 100644 --- a/pages/infinite/index.vue +++ b/pages/infinite/index.vue @@ -2,13 +2,17 @@ \ No newline at end of file diff --git a/pages/sangdai/sangdai.vue b/pages/sangdai/sangdai.vue index f3e2b94..b5c917f 100644 --- a/pages/sangdai/sangdai.vue +++ b/pages/sangdai/sangdai.vue @@ -1,8 +1,12 @@