From 4d0e3d66449cef91b20169caa50029aa35f554d1 Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 9 Mar 2019 11:04:58 +0800 Subject: [PATCH] [new feature] CellGroup: add title prop (#2928) --- packages/cell-group/index.less | 7 +++++++ packages/cell-group/index.tsx | 15 +++++++++++++- packages/cell/demo/index.vue | 19 ++++++++++++++++++ packages/cell/en-US.md | 12 +++++++++++ .../cell/test/__snapshots__/demo.spec.js.snap | 20 +++++++++++++++++++ packages/cell/zh-CN.md | 14 +++++++++++++ 6 files changed, 86 insertions(+), 1 deletion(-) diff --git a/packages/cell-group/index.less b/packages/cell-group/index.less index 8ba9add1c..b8fd2983d 100644 --- a/packages/cell-group/index.less +++ b/packages/cell-group/index.less @@ -2,4 +2,11 @@ .van-cell-group { background-color: @white; + + &__title { + font-size: 14px; + padding: 15px 15px 5px; + color: @gray-dark; + line-height: 16px; + } } diff --git a/packages/cell-group/index.tsx b/packages/cell-group/index.tsx index 8c6b104e8..8360c90b8 100644 --- a/packages/cell-group/index.tsx +++ b/packages/cell-group/index.tsx @@ -6,6 +6,7 @@ import { CreateElement, RenderContext } from 'vue/types'; import { DefaultSlots } from '../utils/use/sfc'; export type CellGroupProps = { + title?: string; border: boolean }; @@ -17,7 +18,7 @@ function CellGroup( slots: DefaultSlots, ctx: RenderContext ) { - return ( + const Group = (
); + + if (props.title) { + return ( +
+
{props.title}
+ {Group} +
+ ); + } + + return Group; } CellGroup.props = { + title: String, border: { type: Boolean, default: true diff --git a/packages/cell/demo/index.vue b/packages/cell/demo/index.vue index f71f62d8e..4faf1fa3b 100644 --- a/packages/cell/demo/index.vue +++ b/packages/cell/demo/index.vue @@ -71,6 +71,21 @@ /> + + + + + + + + + ``` +#### Group Title + +```html + + + + + + +``` + #### Advanced Usage ```html @@ -83,6 +94,7 @@ Vue.use(Cell).use(CellGroup); | Attribute | Description | Type | Default | |------|------|------|------| +| title | Group title | `String` | - | | border | Whether to show outer border | `Boolean` | `true` | ### Cell API diff --git a/packages/cell/test/__snapshots__/demo.spec.js.snap b/packages/cell/test/__snapshots__/demo.spec.js.snap index 84b28c49a..9d86050ab 100644 --- a/packages/cell/test/__snapshots__/demo.spec.js.snap +++ b/packages/cell/test/__snapshots__/demo.spec.js.snap @@ -66,6 +66,26 @@ exports[`renders demo correctly 1`] = `
+
+
+
分组 1
+
+
+
单元格
+
内容
+
+
+
+
+
分组 2
+
+
+
单元格
+
内容
+
+
+
+
diff --git a/packages/cell/zh-CN.md b/packages/cell/zh-CN.md index 5c348ac45..792c2d1e0 100644 --- a/packages/cell/zh-CN.md +++ b/packages/cell/zh-CN.md @@ -64,6 +64,19 @@ Vue.use(Cell).use(CellGroup); ``` +#### 分组标题 + +通过`CellGroup`的`title`属性可以指定分组标题 + +```html + + + + + + +``` + #### 高级用法 如以上用法不能满足你的需求,可以使用对应的`slot`来自定义显示的内容 @@ -85,6 +98,7 @@ Vue.use(Cell).use(CellGroup); | 参数 | 说明 | 类型 | 默认值 | 版本 | |------|------|------|------|------| +| title | 分组标题 | `String` | `-` | 1.6.9 | | border | 是否显示外边框 | `Boolean` | `true` | - | ### Cell API