diff --git a/build/bin/build-entry.js b/build/bin/build-entry.js
index 2fc6e1d92..2419df433 100644
--- a/build/bin/build-entry.js
+++ b/build/bin/build-entry.js
@@ -8,8 +8,8 @@ var OUTPUT_PATH = path.join(__dirname, '../../src/index.js');
var IMPORT_TEMPLATE = 'import {{name}} from \'../packages/{{package}}/index.js\';';
var ISNTALL_COMPONENT_TEMPLATE = ' Vue.component({{name}}.name, {{name}});';
var MAIN_TEMPLATE = `{{include}}
-// zenui
-import '../packages/zenui/src/index.pcss';
+// zanui
+import '../packages/zanui/src/index.pcss';
const install = function(Vue) {
if (install.installed) return;
diff --git a/build/webpack.config.js b/build/webpack.config.js
index b74416529..b5d758f6a 100644
--- a/build/webpack.config.js
+++ b/build/webpack.config.js
@@ -40,7 +40,8 @@ module.exports = {
alias: {
'vue$': 'vue/dist/vue.runtime.common.js',
'oxygen': path.join(__dirname, '..'),
- 'src': path.join(__dirname, '../src')
+ 'src': path.join(__dirname, '../src'),
+ 'packages': path.join(__dirname, '../packages')
}
},
module: {
diff --git a/components.json b/components.json
index 2a8c24a1b..fa7c0daea 100644
--- a/components.json
+++ b/components.json
@@ -4,5 +4,6 @@
"field": "./packages/field/index.js",
"radio": "./packages/radio/index.js",
"cell": "./packages/cell/index.js",
- "icon": "./packages/icon/index.js"
+ "icon": "./packages/icon/index.js",
+ "cell-group": "./packages/cell-group/index.js"
}
diff --git a/docs/examples/cell.md b/docs/examples/cell.md
index 036fd737e..58b3f5ab8 100644
--- a/docs/examples/cell.md
+++ b/docs/examples/cell.md
@@ -1,8 +1,8 @@
@@ -12,10 +12,61 @@
:::demo 样例代码
```html
-
+
-
+
+```
+:::
+
+### 标题带描述信息
+
+:::demo 传入`label`属性,属性值为描述信息的值。
+```html
+
+
+
+
+```
+:::
+
+### 带图标
+
+:::demo 传入`icon`属性
+```html
+
+
+
+
+```
+:::
+
+### 可点击的链接
+
+:::demo 传入`url`属性,传入`isLink`属性则会在右侧显示箭头。
+```html
+
+
+
+
+```
+:::
+
+### 高级用法
+
+如以上用法不能满足你的需求,可以使用对应的`slot`来自定义显示的内容。
+
+:::demo 包含三个`slot`,默认`slot`,`icon`和`title`的`slot`。
+```html
+
+
+
+ 起码运动馆
+
+
+
+
+
```
:::
@@ -26,7 +77,9 @@
| icon | 左侧图标 | string | '' | '' |
| title | 左侧标题 | string | '' | '' |
| value | 右侧内容 | string | '' | '' |
-| isLink | 是否为链接,链接会在右侧出现箭头 | string | '' | '' |
+| isLink | 是否为链接,链接会在右侧出现箭头 | boolean | '' | '' |
+| url | 跳转链接 | string | '' | '' |
+| label | 描述信息,显示在标题下方 | string | '' | '' |
### Slot
diff --git a/package.json b/package.json
index 5b4a0e712..1c17dd150 100644
--- a/package.json
+++ b/package.json
@@ -77,7 +77,6 @@
"markdown-it": "^6.1.1",
"markdown-it-anchor": "^2.5.0",
"markdown-it-container": "^2.0.0",
- "node-sass": "^3.10.1",
"pixrem": "^3.0.0",
"postcss": "^5.1.2",
"postcss-calc": "^5.0.0",
diff --git a/packages/button/index.pcss b/packages/button/index.pcss
deleted file mode 100644
index 6dd330220..000000000
--- a/packages/button/index.pcss
+++ /dev/null
@@ -1 +0,0 @@
-@import "./src/button.pcss";
diff --git a/packages/cell-group/index.js b/packages/cell-group/index.js
new file mode 100644
index 000000000..ccbfd514e
--- /dev/null
+++ b/packages/cell-group/index.js
@@ -0,0 +1,3 @@
+import CellGroup from '../cell/src/cell-group';
+
+export default CellGroup;
diff --git a/packages/cell/src/cell-group.vue b/packages/cell/src/cell-group.vue
new file mode 100644
index 000000000..6b9bcee43
--- /dev/null
+++ b/packages/cell/src/cell-group.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/packages/cell/src/cell.vue b/packages/cell/src/cell.vue
index 1df1d260e..a1e2e519e 100644
--- a/packages/cell/src/cell.vue
+++ b/packages/cell/src/cell.vue
@@ -6,9 +6,10 @@
+
-
+
@@ -26,34 +27,8 @@ export default {
title: String,
value: String,
url: String,
+ label: String,
isLink: Boolean
}
};
-
-
diff --git a/packages/switch/index.pcss b/packages/switch/index.pcss
deleted file mode 100644
index 617bc489f..000000000
--- a/packages/switch/index.pcss
+++ /dev/null
@@ -1 +0,0 @@
-@import "./src/switch.pcss";
diff --git a/packages/zenui/README.md b/packages/zanui/README.md
similarity index 100%
rename from packages/zenui/README.md
rename to packages/zanui/README.md
diff --git a/packages/zenui/package.json b/packages/zanui/package.json
similarity index 100%
rename from packages/zenui/package.json
rename to packages/zanui/package.json
diff --git a/packages/button/src/button.pcss b/packages/zanui/src/button.pcss
similarity index 96%
rename from packages/button/src/button.pcss
rename to packages/zanui/src/button.pcss
index 44471eb30..5b15a3308 100644
--- a/packages/button/src/button.pcss
+++ b/packages/zanui/src/button.pcss
@@ -1,4 +1,4 @@
-@import "../../zenui/src/common/var.pcss";
+@import "./common/var.pcss";
@component-namespace o2 {
@component button {
diff --git a/packages/zanui/src/cell.pcss b/packages/zanui/src/cell.pcss
new file mode 100644
index 000000000..8e923d2ee
--- /dev/null
+++ b/packages/zanui/src/cell.pcss
@@ -0,0 +1,63 @@
+@import "./common/var.pcss";
+@import "./mixins/border_retina.pcss";
+
+@component-namespace o2 {
+ @component cell-group {
+ padding-left: 10px;
+ position: relative;
+
+ &::after {
+ @mixin border-retina (top, bottom);
+ }
+ }
+
+ @component cell {
+ display: block;
+ overflow: hidden;
+ position: relative;
+ padding: 10px 10px 10px 0;
+ line-height: 22px;
+ background-color: $c-white;
+ color: #333;
+ font-size: 14px;
+ text-decoration: none;
+
+ &::after {
+ @mixin border-retina (bottom);
+ }
+
+ &:last-child {
+ &::after {
+ border-bottom: 0;
+ }
+ }
+
+ @descendent title {
+ float: left;
+ }
+
+ @descendent label {
+ display: block;
+ font-size: 12px;
+ line-height: 1.2;
+ color: #666;
+ }
+
+ @descendent value {
+ float: right;
+
+ @when link {
+ margin-right: 20px;
+ }
+ }
+
+ .zui-icon-arrow {
+ position: absolute;
+ top: 50%;
+ right: 10px;
+ transform: translateY(-50%);
+ color: #999;
+ font-size: 12px;
+ }
+ }
+}
diff --git a/packages/zenui/src/common/var.pcss b/packages/zanui/src/common/var.pcss
similarity index 100%
rename from packages/zenui/src/common/var.pcss
rename to packages/zanui/src/common/var.pcss
diff --git a/packages/zenui/src/icon.pcss b/packages/zanui/src/icon.pcss
similarity index 100%
rename from packages/zenui/src/icon.pcss
rename to packages/zanui/src/icon.pcss
diff --git a/packages/zanui/src/index.pcss b/packages/zanui/src/index.pcss
new file mode 100644
index 000000000..d734655e7
--- /dev/null
+++ b/packages/zanui/src/index.pcss
@@ -0,0 +1,7 @@
+/**
+ css组件库入口,组装成css组件库
+ */
+@import './button.pcss';
+@import './cell.pcss';
+@import './icon.pcss';
+@import './switch.pcss';
diff --git a/packages/zanui/src/mixins/border_retina.pcss b/packages/zanui/src/mixins/border_retina.pcss
new file mode 100644
index 000000000..404c323e5
--- /dev/null
+++ b/packages/zanui/src/mixins/border_retina.pcss
@@ -0,0 +1,20 @@
+$border-poses: top, right, bottom, left;
+
+@define-mixin border-retina $poses: $border-poses, $border-retina-color: #e5e5e5 {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ box-sizing: border-box;
+ width: 200%;
+ height: 200%;
+ transform: scale(.5);
+ transform-origin: left top;
+ -webkit-perspective: 1000;
+ -webkit-backface-visibility: hidden;
+ pointer-events: none;
+
+ @each $pos in $poses {
+ border-$(pos): 1px solid $border-retina-color;
+ }
+}
\ No newline at end of file
diff --git a/packages/switch/src/switch.pcss b/packages/zanui/src/switch.pcss
similarity index 100%
rename from packages/switch/src/switch.pcss
rename to packages/zanui/src/switch.pcss
diff --git a/packages/zenui/src/index.pcss b/packages/zenui/src/index.pcss
deleted file mode 100644
index 6ef6a9441..000000000
--- a/packages/zenui/src/index.pcss
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- css组件库 入口,从各个地方拿css文件,组装成css组件库
- */
-@import '../../button/index.pcss';
-@import '../../switch/index.pcss';
-@import './icon.pcss';
diff --git a/src/index.js b/src/index.js
index e314f26fa..3ffa774fd 100644
--- a/src/index.js
+++ b/src/index.js
@@ -4,8 +4,9 @@ import Field from '../packages/field/index.js';
import Radio from '../packages/radio/index.js';
import Cell from '../packages/cell/index.js';
import Icon from '../packages/icon/index.js';
-// zenui
-import '../packages/zenui/src/index.pcss';
+import CellGroup from '../packages/cell-group/index.js';
+// zanui
+import '../packages/zanui/src/index.pcss';
const install = function(Vue) {
if (install.installed) return;
@@ -16,6 +17,7 @@ const install = function(Vue) {
Vue.component(Radio.name, Radio);
Vue.component(Cell.name, Cell);
Vue.component(Icon.name, Icon);
+ Vue.component(CellGroup.name, CellGroup);
};
// auto install
@@ -31,5 +33,6 @@ module.exports = {
Field,
Radio,
Cell,
- Icon
+ Icon,
+ CellGroup
};