diff --git a/example/pages/tab/index.js b/example/pages/tab/index.js
index 72b43370..bac65181 100644
--- a/example/pages/tab/index.js
+++ b/example/pages/tab/index.js
@@ -1,6 +1,7 @@
-const { Tab, extend } = require('../../dist/index');
+const interval = 50;
+let moduleId = 1;
-Page(extend({}, Tab, {
+Page({
data: {
tab1: {
list: [{
@@ -43,7 +44,7 @@ Page(extend({}, Tab, {
}],
selectedId: '1',
scroll: true,
- height: 45
+ height: 80
},
tab3: {
list: [{
@@ -66,17 +67,9 @@ Page(extend({}, Tab, {
title: '商品6'
}],
selectedId: '1',
+ height: 45,
scroll: true,
- height: 45
+ fixed: true
}
- },
-
- handleZanTabChange(e) {
- var componentId = e.componentId;
- var selectedId = e.selectedId;
-
- this.setData({
- [`${componentId}.selectedId`]: selectedId
- });
}
-}));
+});
diff --git a/example/pages/tab/index.json b/example/pages/tab/index.json
index d80c56be..d9d50cff 100644
--- a/example/pages/tab/index.json
+++ b/example/pages/tab/index.json
@@ -1,3 +1,6 @@
{
- "navigationBarTitleText": "Tab 标签"
+ "navigationBarTitleText": "Tab 标签",
+ "usingComponents": {
+ "zan-tab": "../../dist/tab/index"
+ }
}
diff --git a/example/pages/tab/index.wxml b/example/pages/tab/index.wxml
index be56fa45..6872f9fd 100644
--- a/example/pages/tab/index.wxml
+++ b/example/pages/tab/index.wxml
@@ -5,18 +5,26 @@
TAB
-
+
-
+
-
+
diff --git a/example/pages/tab/index.wxss b/example/pages/tab/index.wxss
new file mode 100644
index 00000000..8f1853cb
--- /dev/null
+++ b/example/pages/tab/index.wxss
@@ -0,0 +1,3 @@
+.doc-title {
+ margin-top: 50px;
+}
\ No newline at end of file
diff --git a/packages/tab/README.md b/packages/tab/README.md
index 9131b2e3..005cd509 100644
--- a/packages/tab/README.md
+++ b/packages/tab/README.md
@@ -1,37 +1,46 @@
## Tab 标签
### 使用指南
-在 app.wxss 中引入组件库所有样式
-```css
-@import "path/to/zanui-weapp/dist/index.wxss";
-```
-
-在需要使用的页面里引入组件库模板和脚本
-```html
-
-```
-```js
-const { extend, Tab } = require('path/to/zanui-weapp/dist/index');
-
-// 在 Page 中混入 Tab 里面声明的方法
-Page(extend({}, Tab, {
- // ...
-}));
+在 index.json 中引入组件
+```json
+{
+ "usingComponents": {
+ "zan-tab": "path/to/zanui-weapp/dist/icon/index"
+ }
+}
+// 在 Page 中声明 Tab 依赖的展示数据
+Page({
+ data: {
+ list: [{
+ id: 'xxx',
+ title: 'xxx'
+ }],
+ selectedId: 'xxx',
+ ...
+ }
+})
```
### 代码演示
-在模板中使用 zan-tab 模板,并传入相应数据
+可以在任意位置上使用 zan-tab 标签。传入对应的数据即可。
```html
-
+
```
| 参数 | 说明 | 类型 | 默认值 | 必须 |
|-----------|-----------|-----------|-------------|-------------|
-| tab | tab 配置对象 | Object | - | |
| tab.scroll | 是否开启 tab 左右滑动模式 | Boolean | - | |
| tab.list | 可选项列表 | Array | - | |
| tab.selectedId | 选中id | - | - | |
| tab.height | tab高度 | Number | - | |
+| tab.fixed | 是否固定位置 | Boolean | - | |
| componentId | 用于区分页面多个 tab 组件 | String | - | |
@@ -57,12 +66,10 @@ tab 组件中,tab.list 数据格式如下
}]
```
-当 tab 被点击时,可以在页面中注册 handleZanTabChange 方法来监听
+可以监听 bindtabchange 事件回调,在页面注册回调函数
```js
-Page(extend({}, Tab, {
- handleZanTabChange({ componentId, selectedId }) {
- // componentId 即为在模板中传入的 componentId
- // 用于在一个页面上使用多个 tab 时,进行区分
+Page({
+ customCallback(selectedId) {
// selectId 表示被选中 tab 项的 id
}
}));
diff --git a/packages/tab/index.js b/packages/tab/index.js
index ff3c474e..03083149 100644
--- a/packages/tab/index.js
+++ b/packages/tab/index.js
@@ -1,19 +1,58 @@
-const { extractComponentId } = require('../common/helper');
+Component({
+ externalClasses: 'class',
-var Tab = {
- _handleZanTabChange(e) {
- const componentId = extractComponentId(e);
- const dataset = e.currentTarget.dataset;
- const selectedId = dataset.itemId;
- const data = { componentId, selectedId };
+ properties: {
+ scroll: {
+ type: Boolean,
+ value: false
+ },
+ fixed: {
+ type: Boolean,
+ value: false
+ },
+ height: {
+ type: Number,
+ value: 0
+ },
+ list: {
+ type: Array,
+ value: []
+ },
+ selectedId: {
+ type: [String, Number],
+ value: '',
+ observer(newVal) {
+ this.setData({
+ currentTab: newVal
+ });
+ }
+ },
+ componentId: {
+ type: String,
+ default: ''
+ }
+ },
- console.info('[zan:tab:change]', data);
- if (this.handleZanTabChange) {
- this.handleZanTabChange(data);
- } else {
- console.warn('页面缺少 handleZanTabChange 回调函数');
+ data: {
+ currentTab: ''
+ },
+
+ attached() {
+ this.setData({
+ currentTab: this.data.selectedId
+ });
+ },
+
+ methods: {
+ _handleZanTabChange(e) {
+ const selectedId = e.currentTarget.dataset.itemId;
+
+ this.setData({
+ currentTab: selectedId
+ });
+
+ console.info('[zan:tab:change] selectedId:', selectedId);
+ this.triggerEvent('tabchange', selectedId);
}
}
-};
-
-module.exports = Tab;
+})
diff --git a/packages/tab/index.json b/packages/tab/index.json
new file mode 100644
index 00000000..32640e0d
--- /dev/null
+++ b/packages/tab/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/packages/tab/index.wxml b/packages/tab/index.wxml
index 6ece0e42..60474ed1 100644
--- a/packages/tab/index.wxml
+++ b/packages/tab/index.wxml
@@ -1,37 +1,47 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- {{ item.title }}
+
+ {{ item.title }}
+