diff --git a/dist/button/index.js b/dist/button/index.js
index 4fdf261..f0e9b3e 100644
--- a/dist/button/index.js
+++ b/dist/button/index.js
@@ -7,6 +7,10 @@ Component({
type: String,
value: '',
},
+ inline: {
+ type: Boolean,
+ value: false
+ },
// default, large, small
size: {
type: String,
@@ -59,6 +63,18 @@ Component({
if (this.data.disabled) return false;
this.triggerEvent('click');
+ },
+ bindgetuserinfo({ detail = {} } = {}) {
+ this.triggerEvent('getuserinfo', detail);
+ },
+ bindcontact({ detail = {} } = {}) {
+ this.triggerEvent('contact', detail);
+ },
+ bindgetphonenumber({ detail = {} } = {}) {
+ this.triggerEvent('getphonenumber', detail);
+ },
+ binderror({ detail = {} } = {}) {
+ this.triggerEvent('error', detail);
}
}
});
diff --git a/dist/button/index.wxml b/dist/button/index.wxml
index c0c6c63..e154eee 100644
--- a/dist/button/index.wxml
+++ b/dist/button/index.wxml
@@ -1,5 +1,6 @@
\ No newline at end of file
diff --git a/dist/button/index.wxss b/dist/button/index.wxss
index 7535be8..550bc81 100644
--- a/dist/button/index.wxss
+++ b/dist/button/index.wxss
@@ -1 +1 @@
-.i-btn{text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;white-space:nowrap;user-select:none;font-size:14px;border-radius:2px;border:0!important;position:relative;text-decoration:none;height:44px;line-height:44px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);color:#fff!important;background:#f7f7f7!important;color:#495060!important;margin:10px}.i-btn-long{border-radius:0;margin:0;box-shadow:none}.i-btn-large{height:48px;line-height:48px}.i-btn-small{height:40px;line-height:40px}.i-btn-primary{color:#fff!important;background:#2d8cf0!important}.i-btn-ghost{color:#fff!important;background:#fff!important;color:#495060!important}.i-btn-success{color:#fff!important;background:#19be6b!important}.i-btn-warning{color:#fff!important;background:#f90!important}.i-btn-error{color:#fff!important;background:#ed3f14!important}.i-btn-info{color:#fff!important;background:#2db7f5!important}.i-btn-circle{border-radius:44px}.i-btn-large.i-btn-circle{border-radius:48px}.i-btn-small.i-btn-circle{border-radius:40px}.i-btn-loading{opacity:.6}.i-btn-loading-inner{display:inline-block;margin-right:12px;vertical-align:middle;width:14px;height:14px;background:0 0;border-radius:50%;border:2px solid #fff;border-color:#fff #fff #fff transparent;animation:btn-spin .6s linear;animation-iteration-count:infinite}.i-btn-disabled{color:#bbbec4!important;background:#f7f7f7!important}@keyframes btn-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
\ No newline at end of file
+.i-btn{text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;white-space:nowrap;user-select:none;font-size:14px;border-radius:2px;border:0!important;position:relative;text-decoration:none;height:44px;line-height:44px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);color:#fff!important;background:#f7f7f7!important;color:#495060!important;margin:10px}.i-btn-hover{opacity:.9}.i-btn-long{border-radius:0;margin:0;box-shadow:none}.i-btn-large{height:48px;line-height:48px}.i-btn-small{height:40px;line-height:40px}.i-btn-primary{color:#fff!important;background:#2d8cf0!important}.i-btn-ghost{color:#fff!important;background:#fff!important;color:#495060!important}.i-btn-success{color:#fff!important;background:#19be6b!important}.i-btn-warning{color:#fff!important;background:#f90!important}.i-btn-error{color:#fff!important;background:#ed3f14!important}.i-btn-info{color:#fff!important;background:#2db7f5!important}.i-btn-circle{border-radius:44px}.i-btn-large.i-btn-circle{border-radius:48px}.i-btn-small.i-btn-circle{border-radius:40px}.i-btn-loading{opacity:.6}.i-btn-loading-inner{display:inline-block;margin-right:12px;vertical-align:middle;width:14px;height:14px;background:0 0;border-radius:50%;border:2px solid #fff;border-color:#fff #fff #fff transparent;animation:btn-spin .6s linear;animation-iteration-count:infinite}.i-btn-disabled{color:#bbbec4!important;background:#f7f7f7!important}.i-btn-inline{display:inline-block}@keyframes btn-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
\ No newline at end of file
diff --git a/dist/collapse-item/index.js b/dist/collapse-item/index.js
new file mode 100644
index 0000000..bc415c1
--- /dev/null
+++ b/dist/collapse-item/index.js
@@ -0,0 +1,46 @@
+Component({
+ externalClasses: ['i-class-content', 'i-class-title', 'i-class'],
+
+ relations: {
+ '../collapse/index': {
+ type: 'parent',
+ linked: function (target) {
+ const options = {
+ accordion: target.data.accordion
+ }
+ if (target.data.name === this.data.name) {
+ options.showContent = 'i-collapse-item-show-content';
+ }
+ this.setData(options);
+ }
+ }
+ },
+
+ properties: {
+ title: String,
+ name: String
+ },
+
+ data: {
+ showContent: '',
+ accordion: false
+ },
+
+ options: {
+ multipleSlots: true
+ },
+
+ methods: {
+ trigger(e) {
+ const data = this.data;
+ if (data.accordion) {
+ this.triggerEvent('collapse', {name: data.name}, {composed: true, bubbles: true});
+ } else {
+ this.setData({
+ showContent: data.showContent ? '' : 'i-collapse-item-show-content'
+ });
+ }
+ },
+ }
+});
+
diff --git a/dist/collapse-item/index.json b/dist/collapse-item/index.json
new file mode 100644
index 0000000..54575da
--- /dev/null
+++ b/dist/collapse-item/index.json
@@ -0,0 +1,7 @@
+
+{
+ "component": true,
+ "usingComponents": {
+ "i-icon": "../icon/index"
+ }
+}
diff --git a/dist/collapse-item/index.wxml b/dist/collapse-item/index.wxml
new file mode 100644
index 0000000..ba22b0a
--- /dev/null
+++ b/dist/collapse-item/index.wxml
@@ -0,0 +1,9 @@
+
+
+
+ {{title}}
+
+
+
+
+
\ No newline at end of file
diff --git a/dist/collapse-item/index.wxss b/dist/collapse-item/index.wxss
new file mode 100644
index 0000000..d44c032
--- /dev/null
+++ b/dist/collapse-item/index.wxss
@@ -0,0 +1 @@
+.i-collapse-item{padding:2px 8px;border-top:1px solid #dddee1}.i-collapse-item-title{vertical-align:middle}.i-collapse-item-title-wrap{padding:2px 0 0}.i-collapse-item-content{padding:6px;display:none}.i-collapse-item-show-content{display:block}.i-collapse-item-arrow{transition:transform .2s ease-in-out}.i-collapse-item-arrow-show{transition:transform .2s ease-in-out;transform:rotate(90deg)}
\ No newline at end of file
diff --git a/dist/collapse/index.js b/dist/collapse/index.js
new file mode 100644
index 0000000..acc1455
--- /dev/null
+++ b/dist/collapse/index.js
@@ -0,0 +1,31 @@
+Component({
+ externalClasses: ['i-class'],
+
+ relations: {
+ '../collapse-item/index': {
+ type: 'child'
+ }
+ },
+ properties: {
+ name: String,
+ accordion: Boolean
+ },
+ methods: {
+ clickfn(e) {
+ const params = e.detail;
+ const allList = this.getRelationNodes('../collapse-item/index');
+ allList.forEach((item) => {
+ if (params.name === item.data.name) {
+ item.setData({
+ showContent: 'i-collapse-item-show-content'
+ });
+ } else {
+ item.setData({
+ showContent: ''
+ });
+ }
+ });
+ },
+ }
+});
+
diff --git a/dist/collapse/index.json b/dist/collapse/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/dist/collapse/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/dist/collapse/index.wxml b/dist/collapse/index.wxml
new file mode 100644
index 0000000..0f379f7
--- /dev/null
+++ b/dist/collapse/index.wxml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dist/collapse/index.wxss b/dist/collapse/index.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/dist/count-down/index.js b/dist/count-down/index.js
new file mode 100644
index 0000000..f1da533
--- /dev/null
+++ b/dist/count-down/index.js
@@ -0,0 +1,90 @@
+Component({
+ properties: {
+ target: Number,
+ showDay: Boolean,
+ callback: String,
+ format: Array,
+ clearTimer: Boolean
+ },
+ externalClasses: ['countdown-class'],
+ data: {
+ time: '',
+ resultFormat: [],
+ changeFormat: false
+ },
+ ready() {
+ this.getFormat();
+
+ },
+ methods: {
+ getFormat() {
+ const data = this.data;
+ const len = data.format.length;
+
+ if (!data.showDay) data.resultFormat.push('');
+
+ if (len >= 3) {
+ for (let i = 0; i < len; i++) {
+ if (data.resultFormat.length >= 4) break;
+ if (data.format[i]) {
+ data.resultFormat.push(data.format[i].toString());
+ }
+ }
+
+ if (data.resultFormat.length >= 4) data.changeFormat = true;
+ }
+
+ this.getLastTime();
+ },
+ init() {
+ const self = this;
+ setTimeout(function () {
+ self.getLastTime.call(self);
+ }, 1000);
+ },
+ getLastTime() {
+ const data = this.data;
+ const gapTime = Math.ceil((data.target - new Date().getTime()) / 1000);
+ let result = '';
+ let time = '00:00:00';
+ let day = '00';
+ const format = data.resultFormat;
+
+ if (gapTime > 0) {
+ day = this.formatNum(parseInt(gapTime / 86400));
+ let lastTime = gapTime % 86400;
+ const hour = this.formatNum(parseInt(lastTime / 3600));
+ lastTime = lastTime % 3600;
+ const minute = this.formatNum(parseInt(lastTime / 60));
+ const second = this.formatNum(lastTime % 60);
+
+ if (data.changeFormat) time = `${hour}${format[1]}${minute}${format[2]}${second}${format[3]}`;
+ else time = `${hour}:${minute}:${second}`;
+
+ if (!data.clearTimer) this.init.call(this);
+ } else {
+ this.endfn();
+ }
+
+ if (data.showDay) {
+ if (data.changeFormat) {
+ result = `${day}${format[0]} ${time}`;
+ } else {
+ result = `${day}d ${time}`;
+ }
+ } else {
+ result = time;
+ }
+ this.setData({
+ time: result
+ });
+
+ },
+ formatNum(num) {
+ return num > 9 ? num : `0${num}`;
+ },
+ endfn() {
+ this.triggerEvent('callback', {});
+ }
+ }
+});
diff --git a/dist/count-down/index.json b/dist/count-down/index.json
new file mode 100644
index 0000000..74f1315
--- /dev/null
+++ b/dist/count-down/index.json
@@ -0,0 +1,4 @@
+
+{
+ "component": true
+}
diff --git a/dist/count-down/index.wxml b/dist/count-down/index.wxml
new file mode 100644
index 0000000..e4bec57
--- /dev/null
+++ b/dist/count-down/index.wxml
@@ -0,0 +1,4 @@
+
+ {{time}}
+
+
diff --git a/dist/count-down/index.wxss b/dist/count-down/index.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/dist/divider/index.js b/dist/divider/index.js
new file mode 100644
index 0000000..6b0e448
--- /dev/null
+++ b/dist/divider/index.js
@@ -0,0 +1,25 @@
+Component({
+ externalClasses: ['i-class'],
+ properties: {
+ content: {
+ type: String,
+ value: ''
+ },
+ height : {
+ type: Number,
+ value: 48
+ },
+ color : {
+ type : String,
+ value : '#80848f'
+ },
+ lineColor : {
+ type : String,
+ value : '#e9eaec'
+ },
+ size : {
+ type: String,
+ value: 12
+ }
+ }
+});
diff --git a/dist/divider/index.json b/dist/divider/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/dist/divider/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/dist/divider/index.wxml b/dist/divider/index.wxml
new file mode 100644
index 0000000..b7111d3
--- /dev/null
+++ b/dist/divider/index.wxml
@@ -0,0 +1,19 @@
+
+
+ {{content}}
+
+
+
+
+
+
+
+ module.exports = {
+ getStyle : function(color,size,height){
+ var color = 'color:' + color +';';
+ var size = 'font-size:' + size + 'px;';
+ var height = 'height:' + height+'px;'
+ return color + size + height;
+ }
+ }
+
diff --git a/dist/divider/index.wxss b/dist/divider/index.wxss
new file mode 100644
index 0000000..98827ab
--- /dev/null
+++ b/dist/divider/index.wxss
@@ -0,0 +1 @@
+.i-divider{width:100%;text-align:center;font-size:12px;position:relative;display:flex;align-items:center;justify-content:center}.i-divider-line{position:absolute;left:0;width:100%;height:1rpx;background-color:#f7f7f7;top:50%}.i-divider-content{background:#fff;position:relative;z-index:1;display:inline-block;padding:0 10px}
\ No newline at end of file
diff --git a/dist/drawer/index.wxss b/dist/drawer/index.wxss
index ca3697a..2824713 100644
--- a/dist/drawer/index.wxss
+++ b/dist/drawer/index.wxss
@@ -1 +1 @@
-.i-drawer{visibility:hidden}.i-drawer-show{visibility:visible}.i-drawer-show .i-drawer-mask{display:block}.i-drawer-show .i-drawer-container{opacity:1}.i-drawer-show.i-drawer-left .i-drawer-container,.i-drawer-show.i-drawer-right .i-drawer-container{transform:translate3d(0,-50%,0)}.i-drawer-mask{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:6;background:rgba(0,0,0,.6)}.i-drawer-container{position:fixed;left:50%;top:50%;transform:translate3d(-50%,-50%,0);transform-origin:center;transition:all .4s ease;z-index:7;opacity:0}.i-drawer-left .i-drawer-container{left:0;top:50%;transform:translate3d(-100%,-50%,0)}.i-drawer-right .i-drawer-container{right:0;top:50%;left:auto;transform:translate3d(100%,-50%,0)}
\ No newline at end of file
+.i-drawer{visibility:hidden}.i-drawer-show{visibility:visible}.i-drawer-show .i-drawer-mask{display:block;opacity:1}.i-drawer-show .i-drawer-container{opacity:1}.i-drawer-show.i-drawer-left .i-drawer-container,.i-drawer-show.i-drawer-right .i-drawer-container{transform:translate3d(0,-50%,0)}.i-drawer-mask{opacity:0;position:fixed;top:0;left:0;right:0;bottom:0;z-index:6;background:rgba(0,0,0,.6);transition:all .3s ease-in-out}.i-drawer-container{position:fixed;left:50%;top:50%;transform:translate3d(-50%,-50%,0);transform-origin:center;transition:all .3s ease-in-out;z-index:7;opacity:0}.i-drawer-left .i-drawer-container{left:0;top:50%;transform:translate3d(-100%,-50%,0)}.i-drawer-right .i-drawer-container{right:0;top:50%;left:auto;transform:translate3d(100%,-50%,0)}
\ No newline at end of file
diff --git a/dist/grid-label/index.wxml b/dist/grid-label/index.wxml
index 9d958e1..7ab5a8a 100644
--- a/dist/grid-label/index.wxml
+++ b/dist/grid-label/index.wxml
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dist/icon/index.js b/dist/icon/index.js
index ebbe541..eb43ab9 100644
--- a/dist/icon/index.js
+++ b/dist/icon/index.js
@@ -6,6 +6,10 @@ Component({
type: String,
value: ''
},
+ custom: {
+ type: String,
+ value: ''
+ },
size: {
type: Number,
value: 14
diff --git a/dist/icon/index.wxml b/dist/icon/index.wxml
index 1019b8f..d689bc5 100644
--- a/dist/icon/index.wxml
+++ b/dist/icon/index.wxml
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dist/index-item/index.js b/dist/index-item/index.js
new file mode 100644
index 0000000..ed818df
--- /dev/null
+++ b/dist/index-item/index.js
@@ -0,0 +1,32 @@
+Component({
+ externalClasses: ['i-class'],
+ properties : {
+ name : {
+ type : String,
+ value : ''
+ }
+ },
+ relations : {
+ '../index/index' : {
+ type : 'parent'
+ }
+ },
+ data : {
+ top : 0,
+ height : 0,
+ currentName : ''
+ },
+ methods: {
+ updateDataChange() {
+ const className = '.i-index-item';
+ const query = wx.createSelectorQuery().in(this);
+ query.select( className ).boundingClientRect((res)=>{
+ this.setData({
+ top : res.top,
+ height : res.height,
+ currentName : this.data.name
+ })
+ }).exec()
+ }
+ }
+})
\ No newline at end of file
diff --git a/dist/index-item/index.json b/dist/index-item/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/dist/index-item/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/dist/index-item/index.wxml b/dist/index-item/index.wxml
new file mode 100644
index 0000000..8986c8d
--- /dev/null
+++ b/dist/index-item/index.wxml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+ module.exports = {
+
+ }
+
diff --git a/dist/index-item/index.wxss b/dist/index-item/index.wxss
new file mode 100644
index 0000000..aeecf8d
--- /dev/null
+++ b/dist/index-item/index.wxss
@@ -0,0 +1 @@
+.i-index-item-header{height:30px;line-height:30px;background:#eee;font-size:14px;padding-left:10px;width:100%;box-sizing:border-box}.i-index-item-content{font-size:14px}
\ No newline at end of file
diff --git a/dist/index/index.js b/dist/index/index.js
new file mode 100644
index 0000000..c556f19
--- /dev/null
+++ b/dist/index/index.js
@@ -0,0 +1,158 @@
+Component({
+ externalClasses: ['i-class'],
+ properties : {
+ height : {
+ type : String,
+ value : '300'
+ },
+ itemHeight : {
+ type : Number,
+ value : 18
+ }
+ },
+ relations : {
+ '../index-item/index' : {
+ type : 'child',
+ linked(){
+ this._updateDataChange();
+ },
+ linkChanged () {
+ this._updateDataChange();
+ },
+ unlinked () {
+ this._updateDataChange();
+ }
+ }
+ },
+ data : {
+ scrollTop : 0,
+ fixedData : [],
+ current : 0,
+ timer : null,
+ startTop : 0,
+ itemLength : 0,
+ currentName : '',
+ isTouches : false
+ },
+ methods : {
+ loop(){},
+ _updateDataChange( ){
+ const indexItems = this.getRelationNodes('../index-item/index');
+ const len = indexItems.length;
+ const fixedData = this.data.fixedData;
+ /*
+ * 使用函数节流限制重复去设置数组内容进而限制多次重复渲染
+ * 暂时没有研究微信在渲染的时候是否会进行函数节流
+ */
+ if (len > 0) {
+
+ if( this.data.timer ){
+ clearTimeout( this.data.timer )
+ this.setData({
+ timer : null
+ })
+ }
+
+ this.data.timer = setTimeout(()=>{
+ const data = [];
+ indexItems.forEach((item) => {
+ if( item.data.name && fixedData.indexOf( item.data.name ) === -1 ){
+ data.push(item.data.name);
+ item.updateDataChange();
+ }
+ })
+ this.setData({
+ fixedData : data,
+ itemLength : indexItems.length
+ })
+ //组件加载完成之后重新设置顶部高度
+ this.setTouchStartVal();
+ },0);
+ this.setData({
+ timer : this.data.timer
+ })
+
+ }
+ },
+ handlerScroll(event){
+ const detail = event.detail;
+ const scrollTop = detail.scrollTop;
+ const indexItems = this.getRelationNodes('../index-item/index');
+ indexItems.forEach((item,index)=>{
+ let data = item.data;
+ let offset = data.top + data.height;
+ if( scrollTop < offset && scrollTop >= data.top ){
+ this.setData({
+ current : index,
+ currentName : data.currentName
+ })
+ }
+ })
+ },
+ getCurrentItem(index){
+ const indexItems = this.getRelationNodes('../index-item/index');
+ let result = {};
+ result = indexItems[index].data;
+ result.total = indexItems.length;
+ return result;
+ },
+ triggerCallback(options){
+ this.triggerEvent('change',options)
+ },
+ handlerFixedTap(event){
+ const eindex = event.currentTarget.dataset.index;
+ const item = this.getCurrentItem(eindex);
+ this.setData({
+ scrollTop : item.top,
+ currentName : item.currentName,
+ isTouches : true
+ })
+ this.triggerCallback({
+ index : eindex,
+ current : item.currentName
+ })
+ },
+ handlerTouchMove(event){
+ const data = this.data;
+ const touches = event.touches[0] || {};
+ const pageY = touches.pageY;
+ const rest = pageY - data.startTop;
+ let index = Math.ceil( rest/data.itemHeight );
+ index = index >= data.itemLength ? data.itemLength -1 : index;
+ const movePosition = this.getCurrentItem(index);
+
+ /*
+ * 当touch选中的元素和当前currentName不相等的时候才震动一下
+ * 微信震动事件
+ */
+ if( movePosition.name !== this.data.currentName ){
+ wx.vibrateShort();
+ }
+
+ this.setData({
+ scrollTop : movePosition.top,
+ currentName : movePosition.name,
+ isTouches : true
+ })
+
+ this.triggerCallback({
+ index : index,
+ current : movePosition.name
+ })
+ },
+ handlerTouchEnd(){
+ this.setData({
+ isTouches : false
+ })
+ },
+ setTouchStartVal(){
+ const className = '.i-index-fixed';
+ const query = wx.createSelectorQuery().in(this);
+ query.select( className ).boundingClientRect((res)=>{
+ this.setData({
+ startTop : res.top
+ })
+ }).exec()
+ }
+ }
+})
\ No newline at end of file
diff --git a/dist/index/index.json b/dist/index/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/dist/index/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/dist/index/index.wxml b/dist/index/index.wxml
new file mode 100644
index 0000000..f83d847
--- /dev/null
+++ b/dist/index/index.wxml
@@ -0,0 +1,38 @@
+
+
+
+
+
+ {{item}}
+
+
+ {{currentName}}
+
+
+
+ module.exports = {
+ setScrollStyle : function(height){
+ var units = ['%','px','rem','rpx','em','rem'];
+ var hasUnits = false;
+ for( var i = 0; i < units.length;i++ ){
+ var u = units[i];
+ if( height.indexOf( u ) > -1 ){
+ hasUnits = true;
+ break;
+ }
+ }
+ return 'height:'+ ( hasUnits ? height : height+'px' );
+ }
+ }
+
diff --git a/dist/index/index.wxss b/dist/index/index.wxss
new file mode 100644
index 0000000..c0887c1
--- /dev/null
+++ b/dist/index/index.wxss
@@ -0,0 +1 @@
+.i-index{width:100%;height:100%}.i-index-line{position:absolute;left:0;width:100%;height:1rpx;background-color:#f7f7f7;top:50%}.i-index-content{background:#fff;position:relative;z-index:1;display:inline-block;padding:0 10px}.i-index-fixed{position:fixed;right:0;top:50%;z-index:10;padding-left:10px;transform:translateY(-50%)}.i-index-fixed-item{display:block;height:18px;line-height:18px;padding:0 5px;text-align:center;color:#2d8cf0;font-size:12px;border-radius:50%}.i-index-fixed-item-current{background:#2d8cf0;color:#fff}.i-index-tooltip{position:fixed;left:50%;top:50%;transform:translate3d(-50%,-50%,0);background:rgba(0,0,0,.7);color:#fff;font-size:24px;border-radius:50%;width:80px;height:80px;line-height:80px;text-align:center}
\ No newline at end of file
diff --git a/dist/load-more/index.js b/dist/load-more/index.js
new file mode 100644
index 0000000..d0cd46c
--- /dev/null
+++ b/dist/load-more/index.js
@@ -0,0 +1,14 @@
+Component({
+ externalClasses: ['i-class'],
+
+ properties: {
+ loading: {
+ type: Boolean,
+ value: true
+ },
+ tip: {
+ type: String,
+ value: ''
+ }
+ },
+});
diff --git a/dist/load-more/index.json b/dist/load-more/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/dist/load-more/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/dist/load-more/index.wxml b/dist/load-more/index.wxml
new file mode 100644
index 0000000..66571af
--- /dev/null
+++ b/dist/load-more/index.wxml
@@ -0,0 +1,8 @@
+
+
+
+ {{ tip }}
+ 正在加载
+
+
+
\ No newline at end of file
diff --git a/dist/load-more/index.wxss b/dist/load-more/index.wxss
new file mode 100644
index 0000000..ffe4026
--- /dev/null
+++ b/dist/load-more/index.wxss
@@ -0,0 +1 @@
+.i-load-more{width:65%;margin:1.5em auto;line-height:1.6em;font-size:14px;text-align:center}.i-load-more-loading{display:inline-block;margin-right:12px;vertical-align:middle;width:14px;height:14px;background:0 0;border-radius:50%;border:2px solid #e9eaec;border-color:#e9eaec #e9eaec #e9eaec #2d8cf0;animation:btn-spin .6s linear;animation-iteration-count:infinite}.i-load-more-tip{display:inline-block;vertical-align:middle;color:#495060}.i-load-more-line{border-top:1px solid #dddee1;display:flex;border-top:0}.i-load-more-line::before{position:relative;top:-1px;-webkit-box-flex:1;-webkit-flex:1;flex:1;content:'';border-top:1px solid #dddee1}.i-load-more-line::after{position:relative;top:-1px;-webkit-box-flex:1;-webkit-flex:1;flex:1;content:'';border-top:1px solid #dddee1}.i-load-more-line .i-load-more-tip{position:relative;top:-.9em;padding:0 .55em}.i-load-more-empty{width:4px;height:4px;border-radius:50%;background-color:#e5e5e5;display:inline-block;position:relative;vertical-align:0;top:-.16em}@keyframes btn-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
\ No newline at end of file
diff --git a/dist/notice-bar/index.js b/dist/notice-bar/index.js
index 3deaa81..7043dbd 100644
--- a/dist/notice-bar/index.js
+++ b/dist/notice-bar/index.js
@@ -17,6 +17,21 @@ Component({
loop: {
type: Boolean,
value: false
+ },
+ // 背景颜色
+ backgroundcolor: {
+ type: String,
+ value: '#fefcec'
+ },
+ // 字体及图标颜色
+ color: {
+ type: String,
+ value: '#f76a24'
+ },
+ // 滚动速度
+ speed: {
+ type: Number,
+ value: 1000
}
},
@@ -41,7 +56,7 @@ Component({
initAnimation() {
wx.createSelectorQuery().in(this).select('.i-noticebar-content-wrap').boundingClientRect((wrapRect) => {
wx.createSelectorQuery().in(this).select('.i-noticebar-content').boundingClientRect((rect) => {
- const duration = rect.width / 40 * 1000;
+ const duration = rect.width / 40 * this.data.speed;
const animation = wx.createAnimation({
duration: duration,
timingFunction: "linear",
diff --git a/dist/notice-bar/index.wxml b/dist/notice-bar/index.wxml
index 41b3135..5de1e11 100644
--- a/dist/notice-bar/index.wxml
+++ b/dist/notice-bar/index.wxml
@@ -1,9 +1,9 @@
-
-
+
+
-
+
diff --git a/dist/sticky-item/index.js b/dist/sticky-item/index.js
new file mode 100644
index 0000000..4fc3dbe
--- /dev/null
+++ b/dist/sticky-item/index.js
@@ -0,0 +1,40 @@
+Component({
+ externalClasses: ['i-class'],
+ options: {
+ multipleSlots: true
+ },
+ relations : {
+ '../sticky/index' : {
+ type : 'parent'
+ }
+ },
+ data : {
+ top : 0,
+ height : 0,
+ isFixed : false,
+ index : -1,
+ },
+ methods: {
+ updateScrollTopChange(scrollTop){
+ const data = this.data;
+ const top = data.top;
+ const height = data.height;
+ this.setData({
+ isFixed : ( scrollTop >= top && scrollTop < top + height ) ? true : false
+ })
+ },
+ updateDataChange(index) {
+ const className = '.i-sticky-item';
+ const query = wx.createSelectorQuery().in(this);
+ query.select( className ).boundingClientRect((res)=>{
+ if( res ){
+ this.setData({
+ top : res.top,
+ height : res.height,
+ index : index
+ })
+ }
+ }).exec()
+ }
+ }
+})
\ No newline at end of file
diff --git a/dist/sticky-item/index.json b/dist/sticky-item/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/dist/sticky-item/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/dist/sticky-item/index.wxml b/dist/sticky-item/index.wxml
new file mode 100644
index 0000000..613a5c0
--- /dev/null
+++ b/dist/sticky-item/index.wxml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
diff --git a/dist/sticky-item/index.wxss b/dist/sticky-item/index.wxss
new file mode 100644
index 0000000..7328f0f
--- /dev/null
+++ b/dist/sticky-item/index.wxss
@@ -0,0 +1 @@
+.i-sticky-item-header{background:#eee;font-size:14px;width:100%;height:32px;line-height:32px}.i-sticky-item-content{font-size:14px}.i-sticky-title{width:100%;padding:0 15px;box-sizing:border-box;background:#eee}.i-sticky-fixed .i-sticky-title{position:fixed;top:0}
\ No newline at end of file
diff --git a/dist/sticky/index.js b/dist/sticky/index.js
new file mode 100644
index 0000000..546aa4c
--- /dev/null
+++ b/dist/sticky/index.js
@@ -0,0 +1,63 @@
+Component({
+ externalClasses: ['i-class'],
+ properties : {
+ scrollTop : {
+ type : Number,
+ observer(val){
+ this._updateScrollTopChange();
+ }
+ }
+ },
+ relations : {
+ '../sticky-item/index' : {
+ type : 'child',
+ linked(){
+ this._updateDataChange();
+ },
+ linkChanged () {
+ this._updateDataChange();
+ },
+ unlinked () {
+ this._updateDataChange();
+ }
+ }
+ },
+ data : {
+ timer : null,
+ itemLength : 0,
+ },
+ methods : {
+ _updateScrollTopChange(){
+ const stickies = this.getRelationNodes('../sticky-item/index');
+ if( stickies.length > 0 ){
+ stickies.forEach((item) => {
+ if( item ){
+ item.updateScrollTopChange( this.data.scrollTop );
+ }
+ })
+ }
+ },
+ _updateDataChange( ){
+ const stickies = this.getRelationNodes('../sticky-item/index');
+ if( stickies.length > 0 ){
+ if( this.data.timer ){
+ clearTimeout( this.data.timer )
+ this.setData({
+ timer : null
+ })
+ }
+ this.data.timer = setTimeout(()=>{
+ stickies.forEach((item,index) => {
+ if( item ){
+ item.updateDataChange(index);
+ }
+ })
+ },0)
+ this.setData({
+ timer : this.data.timer
+ })
+ }
+ }
+ }
+
+})
\ No newline at end of file
diff --git a/dist/sticky/index.json b/dist/sticky/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/dist/sticky/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/dist/sticky/index.wxml b/dist/sticky/index.wxml
new file mode 100644
index 0000000..aee0c63
--- /dev/null
+++ b/dist/sticky/index.wxml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/dist/sticky/index.wxss b/dist/sticky/index.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/dist/swipeout/index.js b/dist/swipeout/index.js
new file mode 100644
index 0000000..b23748c
--- /dev/null
+++ b/dist/swipeout/index.js
@@ -0,0 +1,161 @@
+ /*
+* touch事件判断方式
+* https://github.com/madrobby/zepto/blob/master/src/touch.js#files
+*/
+function swipeDirection(x1, x2, y1, y2) {
+ return Math.abs(x1 - x2) >=
+ Math.abs(y1 - y2) ? (x1 - x2 > 0 ? 'Left' : 'Right') : (y1 - y2 > 0 ? 'Up' : 'Down')
+}
+
+Component({
+ externalClasses: ['i-class'],
+ properties: {
+ actions: {
+ value: [],
+ type: Array,
+ observer : '_updateButtonSize'
+ },
+ unclosable : {
+ value : false,
+ type : Boolean
+ },
+ toggle : {
+ value : false,
+ type : Boolean,
+ observer : 'closeButtonGroup'
+ },
+ operateWidth : {
+ type : Number,
+ value : 160
+ }
+ },
+ options: {
+ // 在组件定义时的选项中启用多slot支持
+ multipleSlots: true
+ },
+ data : {
+ //touch start position
+ tStart : {
+ pageX : 0,
+ pageY : 0
+ },
+ //限制滑动距离
+ limitMove : 0,
+ //element move position
+ position : {
+ pageX : 0,
+ pageY : 0
+ }
+ },
+ methods : {
+ //阻止事件冒泡
+ loop(){},
+ _updateButtonSize(){
+ const actions = this.data.actions;
+ if( actions.length > 0 ){
+ const query = wx.createSelectorQuery().in(this);
+ let limitMovePosition = 0;
+ actions.forEach(item => {
+ limitMovePosition += item.width || 0;
+ });
+ this.data.limitMove = limitMovePosition;
+ /*
+ * 动态获取每个传进值的按钮尺寸不能正确获取,在安卓上少了6px
+ * 暂时实现需要在actions里面传递宽度
+ * 需要后期调研
+ */
+ //query.selectAll('.i-swipeout-button-right-item').boundingClientRect((rects)=>{
+ // if( rects ){
+ // console.log(rects,1111111)
+ // rects.forEach(item => {
+ // limitMovePosition += item.width;
+ // });
+ // this.data.limitMove = limitMovePosition;
+ // console.log(limitMovePosition,111111111)
+ // }
+ // }).exec()
+ }else{
+ this.data.limitMove = this.data.operateWidth;
+
+ }
+ },
+ handlerTouchstart(event){
+ const touches = event.touches ? event.touches[0] : {};
+ const tStart = this.data.tStart;
+ if( touches ){
+ for( let i in tStart ){
+ if( touches[i] ){
+ tStart[i] = touches[i];
+ }
+ }
+ }
+ },
+ swipper(touches){
+ const data = this.data;
+ const start = data.tStart;
+ const spacing = {
+ pageX : touches.pageX - start.pageX,
+ pageY : touches.pageY - start.pageY
+ }
+ if( data.limitMove < Math.abs( spacing.pageX ) ){
+ spacing.pageX = -data.limitMove;
+
+ }
+ this.setData({
+ 'position' : spacing
+ })
+ },
+ handlerTouchmove(event){
+ const start = this.data.tStart;
+ const touches = event.touches ? event.touches[0] : {};
+ if( touches ){
+ const direction = swipeDirection( start.pageX,touches.pageX,start.pageY,touches.pageY );
+ if( direction === 'Left' ){
+ this.swipper( touches );
+ }
+ }
+ },
+ handlerTouchend(event){
+ const start = this.data.tStart;
+ const touches = event.changedTouches ? event.changedTouches[0] : {};
+ if( touches ){
+ const direction = swipeDirection( start.pageX,touches.pageX,start.pageY,touches.pageY );
+ const spacing = {
+ pageX : touches.pageX - start.pageX,
+ pageY : touches.pageY - start.pageY
+ }
+ if( Math.abs( spacing.pageX ) >= 40 && direction === "Left" ){
+ spacing.pageX = spacing.pageX < 0 ? - this.data.limitMove : this.data.limitMove;
+ }else{
+ spacing.pageX = 0;
+ }
+ this.setData({
+ 'position' : spacing
+ })
+ }
+ },
+ handlerButton(event){
+ if( !this.data.unclosable ){
+ this.closeButtonGroup();
+ }
+ const dataset = event.currentTarget.dataset;
+ this.triggerEvent('change',{
+ index : dataset.index
+ })
+ },
+ closeButtonGroup(){
+ this.setData({
+ 'position' : {pageX : 0,pageY : 0}
+ })
+ },
+ //控制自定义组件
+ handlerParentButton(event){
+ if( !this.data.unclosable ){
+ this.closeButtonGroup();
+ }
+ }
+ },
+ ready(){
+ this._updateButtonSize();
+ }
+});
diff --git a/dist/swipeout/index.json b/dist/swipeout/index.json
new file mode 100644
index 0000000..c63f9a6
--- /dev/null
+++ b/dist/swipeout/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "i-cell": "../cell/index",
+ "i-icon": "../icon/index"
+ }
+}
\ No newline at end of file
diff --git a/dist/swipeout/index.wxml b/dist/swipeout/index.wxml
new file mode 100644
index 0000000..f588015
--- /dev/null
+++ b/dist/swipeout/index.wxml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+ module.exports = {
+ setStyle : function( item ){
+ var defaults = '#f7f7f7';
+ return 'background:' + ( item.background ? item.background : defaults ) +';' + 'color:'+ item.color;
+ },
+ setPosition : function( position ){
+ return 'transform:translate(' + position.pageX + 'px,0);';
+ }
+ }
+
\ No newline at end of file
diff --git a/dist/swipeout/index.wxss b/dist/swipeout/index.wxss
new file mode 100644
index 0000000..597cffc
--- /dev/null
+++ b/dist/swipeout/index.wxss
@@ -0,0 +1 @@
+.i-swipeout-wrap{border-bottom:#dddee1 solid 1px;background:#fff;position:relative;overflow:hidden}.i-swipeout-item{width:100%;padding:15px 20px;box-sizing:border-box;transition:transform .2s ease;font-size:14px}.i-swipeout-content{white-space:nowrap;overflow:hidden}.i-swipeout-button-right-group{position:absolute;right:-100%;top:0;height:100%;z-index:1;width:100%}.i-swipeout-button-right-item{height:100%;float:left;white-space:nowrap;box-sizing:border-box;display:flex;align-items:center;justify-content:center}
\ No newline at end of file
diff --git a/dist/tab-bar-item/index.js b/dist/tab-bar-item/index.js
index bc6193b..0c24c1a 100644
--- a/dist/tab-bar-item/index.js
+++ b/dist/tab-bar-item/index.js
@@ -16,6 +16,14 @@ Component({
type: String,
value: ''
},
+ img: {
+ type: String,
+ value: ''
+ },
+ currentImg: {
+ type: String,
+ value: ''
+ },
key: {
type: String,
value: ''
diff --git a/dist/tab-bar-item/index.wxml b/dist/tab-bar-item/index.wxml
index a3a5a13..7153909 100644
--- a/dist/tab-bar-item/index.wxml
+++ b/dist/tab-bar-item/index.wxml
@@ -1,7 +1,8 @@
-
-
+
+
+
{{ title }}
{{ title }}
diff --git a/dist/tab-bar-item/index.wxss b/dist/tab-bar-item/index.wxss
index 83f44bb..0f8a9c8 100644
--- a/dist/tab-bar-item/index.wxss
+++ b/dist/tab-bar-item/index.wxss
@@ -1 +1 @@
-.i-tab-bar-item{flex:1;display:flex;width:100%;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;text-align:center}.i-tab-bar-item-icon{display:flex;-webkit-box-pack:center;justify-content:center;box-sizing:border-box;color:#80848f}.i-tab-bar-item-icon-current{color:#2d8cf0}.i-tab-bar-item-title{font-size:10px;margin:3px 0 0;line-height:1;text-align:center;box-sizing:border-box;color:#80848f}.i-tab-bar-item-title-current{color:#2d8cf0}
\ No newline at end of file
+.i-tab-bar-item{flex:1;display:flex;width:100%;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;text-align:center}.i-tab-bar-item-icon{display:flex;-webkit-box-pack:center;justify-content:center;box-sizing:border-box;color:#80848f}.i-tab-bar-item-icon-current{color:#2d8cf0}.i-tab-bar-item-img{display:flex;-webkit-box-pack:center;justify-content:center;box-sizing:border-box;width:22px;height:22px}.i-tab-bar-item-title{font-size:10px;margin:3px 0 0;line-height:1;text-align:center;box-sizing:border-box;color:#80848f}.i-tab-bar-item-title-current{color:#2d8cf0}.i-tab-bar-item-img{display:flex;-webkit-box-pack:center;justify-content:center;box-sizing:border-box;color:#80848f}
\ No newline at end of file
diff --git a/dist/tab-bar/index.js b/dist/tab-bar/index.js
index 2f78f51..ca02fe4 100644
--- a/dist/tab-bar/index.js
+++ b/dist/tab-bar/index.js
@@ -32,20 +32,35 @@ Component({
}
},
+ data: {
+ list: []
+ },
+
methods: {
changeCurrent (val = this.data.current) {
let items = this.getRelationNodes('../tab-bar-item/index');
const len = items.length;
if (len > 0) {
+ const list = [];
items.forEach(item => {
item.changeCurrent(item.data.key === val);
item.changeCurrentColor(this.data.color);
+ list.push({
+ key: item.data.key
+ });
+ });
+ this.setData({
+ list: list
});
}
},
emitEvent (key) {
this.triggerEvent('change', { key });
+ },
+ handleClickItem (e) {
+ const key = e.currentTarget.dataset.key;
+ this.emitEvent(key);
}
}
});
diff --git a/dist/tab-bar/index.wxml b/dist/tab-bar/index.wxml
index 46d9029..9dbfbea 100644
--- a/dist/tab-bar/index.wxml
+++ b/dist/tab-bar/index.wxml
@@ -1 +1,6 @@
-
\ No newline at end of file
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dist/tab-bar/index.wxss b/dist/tab-bar/index.wxss
index 2592721..5c6fd9c 100644
--- a/dist/tab-bar/index.wxss
+++ b/dist/tab-bar/index.wxss
@@ -1 +1 @@
-.i-tab-bar{display:flex;width:100%;height:50px;box-sizing:border-box;position:relative;justify-content:space-around;align-items:center;-webkit-box-align:center;background:#fff}.i-tab-bar::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e9eaec;border-top-width:1px}.i-tab-bar-fixed{position:fixed;bottom:0;z-index:2}
\ No newline at end of file
+.i-tab-bar{display:flex;width:100%;height:50px;box-sizing:border-box;position:relative;justify-content:space-around;align-items:center;-webkit-box-align:center;background:#fff}.i-tab-bar::after{content:'';position:absolute;top:0;left:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #e9eaec;border-top-width:1px}.i-tab-bar-fixed{position:fixed;bottom:0;z-index:2}.i-tab-bar-list{position:absolute;top:0;bottom:0;left:0;right:0}.i-tab-bar-layer{display:block;float:left;height:100%}
\ No newline at end of file
diff --git a/examples/app.json b/examples/app.json
index c5c5a4a..58948ef 100644
--- a/examples/app.json
+++ b/examples/app.json
@@ -30,7 +30,14 @@
"pages/tab-bar/index",
"pages/tabs/index",
"pages/tag/index",
- "pages/toast/index"
+ "pages/toast/index",
+ "pages/swipeout/index",
+ "pages/count-down/index",
+ "pages/divider/index",
+ "pages/index-list/index",
+ "pages/collapse/index",
+ "pages/sticky/index",
+ "pages/load-more/index"
],
"window": {
"navigationBarBackgroundColor": "#FAFAFA",
diff --git a/examples/pages/button/index.wxml b/examples/pages/button/index.wxml
index 6035455..021c60d 100644
--- a/examples/pages/button/index.wxml
+++ b/examples/pages/button/index.wxml
@@ -1,5 +1,9 @@
+行内按钮
+行内按钮
+行内按钮
+
默认按钮
联通两边按钮
Primary
diff --git a/examples/pages/card/index.wxml b/examples/pages/card/index.wxml
index efb31f1..80ff624 100644
--- a/examples/pages/card/index.wxml
+++ b/examples/pages/card/index.wxml
@@ -3,8 +3,15 @@
内容不错
尾部内容
+
通栏
内容不错
尾部内容
-
\ No newline at end of file
+
+
+自定义图片样式
+
+ 内容不错
+ 尾部内容
+
diff --git a/examples/pages/card/index.wxss b/examples/pages/card/index.wxss
index e69de29..f021c17 100644
--- a/examples/pages/card/index.wxss
+++ b/examples/pages/card/index.wxss
@@ -0,0 +1,3 @@
+.card-demo image {
+ border-radius: 50%;
+}
diff --git a/examples/pages/collapse/index.js b/examples/pages/collapse/index.js
new file mode 100644
index 0000000..3f3429c
--- /dev/null
+++ b/examples/pages/collapse/index.js
@@ -0,0 +1,6 @@
+Page({
+ data: {
+ name: 'name1'
+ }
+});
+
diff --git a/examples/pages/collapse/index.json b/examples/pages/collapse/index.json
new file mode 100644
index 0000000..71bfebf
--- /dev/null
+++ b/examples/pages/collapse/index.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "折叠面板",
+ "usingComponents": {
+ "i-collapse": "../../dist/collapse/index",
+ "i-collapse-item": "../../dist/collapse-item/index"
+ }
+}
diff --git a/examples/pages/collapse/index.wxml b/examples/pages/collapse/index.wxml
new file mode 100644
index 0000000..9f25797
--- /dev/null
+++ b/examples/pages/collapse/index.wxml
@@ -0,0 +1,80 @@
+
+ 折叠面板
+
+
+
+ 史蒂夫·乔布斯(Steve Jobs),1955年2月24日生于美国加利福尼亚州旧金山,美国发明家、企业家、美国苹果公司联合创办人。
+
+
+
+
+ 斯蒂夫·盖瑞·沃兹尼亚克(Stephen Gary
+ Wozniak),美国电脑工程师,曾与史蒂夫·乔布斯合伙创立苹果电脑(今之苹果公司)。斯蒂夫·盖瑞·沃兹尼亚克曾就读于美国科罗拉多大学,后转学入美国著名高等学府加州大学伯克利分校(UC
+ Berkeley)并获得电机工程及计算机(EECS)本科学位(1987年)。
+
+
+
+
+ 乔纳森·伊夫是一位工业设计师,现任Apple公司设计师兼资深副总裁,英国爵士。他曾参与设计了iPod,iMac,iPhone,iPad等众多苹果产品。除了乔布斯,他是对苹果那些著名的产品最有影响力的人。
+
+
+
+
+
+
+ 折叠面板 - 手风琴模式
+
+
+
+ 史蒂夫·乔布斯(Steve Jobs),1955年2月24日生于美国加利福尼亚州旧金山,美国发明家、企业家、美国苹果公司联合创办人。
+
+
+
+
+ 斯蒂夫·盖瑞·沃兹尼亚克(Stephen Gary
+ Wozniak),美国电脑工程师,曾与史蒂夫·乔布斯合伙创立苹果电脑(今之苹果公司)。斯蒂夫·盖瑞·沃兹尼亚克曾就读于美国科罗拉多大学,后转学入美国著名高等学府加州大学伯克利分校(UC
+ Berkeley)并获得电机工程及计算机(EECS)本科学位(1987年)。
+
+
+
+
+ 乔纳森·伊夫是一位工业设计师,现任Apple公司设计师兼资深副总裁,英国爵士。他曾参与设计了iPod,iMac,iPhone,iPad等众多苹果产品。除了乔布斯,他是对苹果那些著名的产品最有影响力的人。
+
+
+
+
+
+
+ 修改样式
+
+
+
+ 史蒂夫·乔布斯(Steve Jobs),1955年2月24日生于美国加利福尼亚州旧金山,美国发明家、企业家、美国苹果公司联合创办人。
+
+
+
+
+ 斯蒂夫·盖瑞·沃兹尼亚克(Stephen Gary
+ Wozniak),美国电脑工程师,曾与史蒂夫·乔布斯合伙创立苹果电脑(今之苹果公司)。斯蒂夫·盖瑞·沃兹尼亚克曾就读于美国科罗拉多大学,后转学入美国著名高等学府加州大学伯克利分校(UC
+ Berkeley)并获得电机工程及计算机(EECS)本科学位(1987年)。
+
+
+
+
+ 乔纳森·伊夫是一位工业设计师,现任Apple公司设计师兼资深副总裁,英国爵士。他曾参与设计了iPod,iMac,iPhone,iPad等众多苹果产品。除了乔布斯,他是对苹果那些著名的产品最有影响力的人。
+
+
+
+
diff --git a/examples/pages/collapse/index.wxss b/examples/pages/collapse/index.wxss
new file mode 100644
index 0000000..006068c
--- /dev/null
+++ b/examples/pages/collapse/index.wxss
@@ -0,0 +1,22 @@
+
+.caption-wrap{
+ margin-bottom: 30px;
+}
+
+.caption-title{
+ font-weight: bold;
+ padding:20px 10px;
+}
+
+.collapse-item-title{
+ font-size: 12px;
+ color: #737373;
+ font-weight: bold;
+}
+
+.collapse-item-content{
+ font-size: 14px;
+ color: #444444;
+}
+
+
diff --git a/examples/pages/count-down/index.js b/examples/pages/count-down/index.js
new file mode 100644
index 0000000..f2a94ab
--- /dev/null
+++ b/examples/pages/count-down/index.js
@@ -0,0 +1,27 @@
+Page({
+ data: {
+ targetTime: 0,
+ targetTime1: 0,
+ myFormat: ['时', '分', '秒'],
+ myFormat1: ['天', '时', '分', '秒'],
+ status: '进行中...',
+ clearTimer: false
+ },
+ onLoad() {
+ this.setData({
+ targetTime: new Date().getTime() + 6430000,
+ targetTime1: new Date().getTime() + 86430000,
+ targetTime2: new Date().getTime() + 10000
+ });
+ },
+ onUnload() {
+ this.setData({
+ clearTimer: true
+ });
+ },
+ myLinsterner(e) {
+ this.setData({
+ status: '结束'
+ });
+ }
+});
diff --git a/examples/pages/count-down/index.json b/examples/pages/count-down/index.json
new file mode 100644
index 0000000..d0399c8
--- /dev/null
+++ b/examples/pages/count-down/index.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "倒计时",
+ "usingComponents": {
+ "i-count-down": "../../dist/count-down/index"
+ }
+}
+
diff --git a/examples/pages/count-down/index.wxml b/examples/pages/count-down/index.wxml
new file mode 100644
index 0000000..ce3efa7
--- /dev/null
+++ b/examples/pages/count-down/index.wxml
@@ -0,0 +1,57 @@
+
+ 倒计时:
+
+
+
+
+ 显示天的倒计时:
+
+
+
+
+
+ 自定义格式倒计时:
+
+
+
+
+ 自定义格式倒计时:
+
+
+
+
+ 执行回调的倒计时:
+
+ 倒计时状态:{{status}}
+
+
+
+
+ 修改倒计时样式:
+
+
+
diff --git a/examples/pages/count-down/index.wxss b/examples/pages/count-down/index.wxss
new file mode 100644
index 0000000..a87ec5d
--- /dev/null
+++ b/examples/pages/count-down/index.wxss
@@ -0,0 +1,13 @@
+.view-wrap{
+ padding: 10px 20px;
+}
+
+.type-title{
+ padding: 10px 0;
+}
+
+.big{
+ font-size: 20px;
+ color: #3399FF;
+ font-weight: bold;
+}
diff --git a/examples/pages/divider/index.js b/examples/pages/divider/index.js
new file mode 100644
index 0000000..19c72ec
--- /dev/null
+++ b/examples/pages/divider/index.js
@@ -0,0 +1,3 @@
+Page({
+
+});
\ No newline at end of file
diff --git a/examples/pages/divider/index.json b/examples/pages/divider/index.json
new file mode 100644
index 0000000..b35d4c3
--- /dev/null
+++ b/examples/pages/divider/index.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "Divider 分隔符",
+ "usingComponents": {
+ "i-divider": "../../dist/divider/index"
+ }
+}
diff --git a/examples/pages/divider/index.wxml b/examples/pages/divider/index.wxml
new file mode 100644
index 0000000..197dd60
--- /dev/null
+++ b/examples/pages/divider/index.wxml
@@ -0,0 +1,26 @@
+
+ 基本用法
+ 注: 如果同时存在slot和传递内容两个参数只有传递参数content生效
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 自定义内容
+
+ 加载已经完成,没有其他数据
+
+
+ 加载已经完成,没有其他数据
+
+
diff --git a/examples/pages/divider/index.wxss b/examples/pages/divider/index.wxss
new file mode 100644
index 0000000..ebe2d66
--- /dev/null
+++ b/examples/pages/divider/index.wxss
@@ -0,0 +1,18 @@
+.i-divider-demo,page{
+ width:100%;
+ height:100%;
+ background:#fff;
+}
+.i-divider-mart{
+
+}
+.one-tag{
+ font-size:14px;
+ margin:30px 20px 0 20px;
+}
+.i-divider-demo-des{
+ padding:0 20px;
+ margin-top:5px;
+ font-size:12px;
+ color:#ff9900;
+}
\ No newline at end of file
diff --git a/examples/pages/icon/index.wxml b/examples/pages/icon/index.wxml
index 58fc895..6f4e1b6 100644
--- a/examples/pages/icon/index.wxml
+++ b/examples/pages/icon/index.wxml
@@ -1,5 +1,5 @@
-
+
{{ item }}
diff --git a/examples/pages/index-list/city.js b/examples/pages/index-list/city.js
new file mode 100644
index 0000000..7d7d1fa
--- /dev/null
+++ b/examples/pages/index-list/city.js
@@ -0,0 +1,955 @@
+export const cities = [
+ {"label":"北京Beijing010","name":"北京","pinyin":"Beijing","zip":"010"},
+ {"label":"重庆Chongqing023","name":"重庆","pinyin":"Chongqing","zip":"023"},
+ {"label":"上海Shanghai021","name":"上海","pinyin":"Shanghai","zip":"021"},
+ {"label":"天津Tianjin022","name":"天津","pinyin":"Tianjin","zip":"022"},
+ {"label":"长春Changchun0431","name":"长春","pinyin":"Changchun","zip":"0431"},
+ {"label":"长沙Changsha0731","name":"长沙","pinyin":"Changsha","zip":"0731"},
+ {"label":"常州Changzhou0519","name":"常州","pinyin":"Changzhou","zip":"0519"},
+ {"label":"成都Chengdu028","name":"成都","pinyin":"Chengdu","zip":"028"},
+ {"label":"大连Dalian0411","name":"大连","pinyin":"Dalian","zip":"0411"},
+ {"label":"东莞Dongguan0769","name":"东莞","pinyin":"Dongguan","zip":"0769"},
+ {"label":"佛山Foshan0757","name":"佛山","pinyin":"Foshan","zip":"0757"},
+ {"label":"福州Fuzhou0591","name":"福州","pinyin":"Fuzhou","zip":"0591"},
+ {"label":"广州Guangzhou020","name":"广州","pinyin":"Guangzhou","zip":"020"},
+ {"label":"贵阳Guiyang0851","name":"贵阳","pinyin":"Guiyang","zip":"0851"},
+ {"label":"哈尔滨Haerbin0451","name":"哈尔滨","pinyin":"Haerbin","zip":"0451"},
+ {"label":"海口Haikou0898","name":"海口","pinyin":"Haikou","zip":"0898"},
+ {"label":"邯郸Handan0310","name":"邯郸","pinyin":"Handan","zip":"0310"},
+ {"label":"杭州Hangzhou0571","name":"杭州","pinyin":"Hangzhou","zip":"0571"},
+ {"label":"合肥Hefei0551","name":"合肥","pinyin":"Hefei","zip":"0551"},
+ {"label":"惠州Huizhou0752","name":"惠州","pinyin":"Huizhou","zip":"0752"},
+ {"label":"焦作Jiaozuo0391","name":"焦作","pinyin":"Jiaozuo","zip":"0391"},
+ {"label":"嘉兴Jiaxing0573","name":"嘉兴","pinyin":"Jiaxing","zip":"0573"},
+ {"label":"吉林Jilin0423","name":"吉林","pinyin":"Jilin","zip":"0423"},
+ {"label":"济南Jinan0531","name":"济南","pinyin":"Jinan","zip":"0531"},
+ {"label":"昆明Kunming0871","name":"昆明","pinyin":"Kunming","zip":"0871"},
+ {"label":"兰州Lanzhou0931","name":"兰州","pinyin":"Lanzhou","zip":"0931"},
+ {"label":"柳州Liuzhou0772","name":"柳州","pinyin":"Liuzhou","zip":"0772"},
+ {"label":"洛阳Luoyang0379","name":"洛阳","pinyin":"Luoyang","zip":"0379"},
+ {"label":"南昌Nanchang0791","name":"南昌","pinyin":"Nanchang","zip":"0791"},
+ {"label":"南京Nanjing025","name":"南京","pinyin":"Nanjing","zip":"025"},
+ {"label":"南宁Nanning0771","name":"南宁","pinyin":"Nanning","zip":"0771"},
+ {"label":"南通Nantong0513","name":"南通","pinyin":"Nantong","zip":"0513"},
+ {"label":"宁波Ningbo0574","name":"宁波","pinyin":"Ningbo","zip":"0574"},
+ {"label":"青岛Qingdao0532","name":"青岛","pinyin":"Qingdao","zip":"0532"},
+ {"label":"泉州Quanzhou0595","name":"泉州","pinyin":"Quanzhou","zip":"0595"},
+ {"label":"沈阳Shenyang024","name":"沈阳","pinyin":"Shenyang","zip":"024"},
+ {"label":"深圳Shenzhen0755","name":"深圳","pinyin":"Shenzhen","zip":"0755"},
+ {"label":"石家庄Shijiazhuang0311","name":"石家庄","pinyin":"Shijiazhuang","zip":"0311"},
+ {"label":"苏州Suzhou0512","name":"苏州","pinyin":"Suzhou","zip":"0512"},
+ {"label":"台州Taizhou0576","name":"台州","pinyin":"Taizhou","zip":"0576"},
+ {"label":"唐山Tangshan0315","name":"唐山","pinyin":"Tangshan","zip":"0315"},
+ {"label":"潍坊Weifang0536","name":"潍坊","pinyin":"Weifang","zip":"0536"},
+ {"label":"威海Weihai0631","name":"威海","pinyin":"Weihai","zip":"0631"},
+ {"label":"武汉Wuhan027","name":"武汉","pinyin":"Wuhan","zip":"027"},
+ {"label":"无锡Wuxi0510","name":"无锡","pinyin":"Wuxi","zip":"0510"},
+ {"label":"厦门Xiamen0592","name":"厦门","pinyin":"Xiamen","zip":"0592"},
+ {"label":"西安Xian029","name":"西安","pinyin":"Xian","zip":"029"},
+ {"label":"许昌Xuchang0374","name":"许昌","pinyin":"Xuchang","zip":"0374"},
+ {"label":"徐州Xuzhou0516","name":"徐州","pinyin":"Xuzhou","zip":"0516"},
+ {"label":"扬州Yangzhou0514","name":"扬州","pinyin":"Yangzhou","zip":"0514"},
+ {"label":"烟台Yantai0535","name":"烟台","pinyin":"Yantai","zip":"0535"},
+ {"label":"漳州Zhangzhou0596","name":"漳州","pinyin":"Zhangzhou","zip":"0596"},
+ {"label":"郑州Zhengzhou0371","name":"郑州","pinyin":"Zhengzhou","zip":"0371"},
+ {"label":"中山Zhongshan0760","name":"中山","pinyin":"Zhongshan","zip":"0760"},
+ {"label":"珠海Zhuhai0756","name":"珠海","pinyin":"Zhuhai","zip":"0756"},
+ {"label":"阿坝Aba0837","name":"阿坝","pinyin":"Aba","zip":"0837"},
+ {"label":"阿克苏Akesu0997","name":"阿克苏","pinyin":"Akesu","zip":"0997"},
+ {"label":"阿拉善盟Alashanmeng0483","name":"阿拉善盟","pinyin":"Alashanmeng","zip":"0483"},
+ {"label":"阿勒泰Aletai0906","name":"阿勒泰","pinyin":"Aletai","zip":"0906"},
+ {"label":"阿里Ali0897","name":"阿里","pinyin":"Ali","zip":"0897"},
+ {"label":"安康Ankang0915","name":"安康","pinyin":"Ankang","zip":"0915"},
+ {"label":"安庆Anqing0556","name":"安庆","pinyin":"Anqing","zip":"0556"},
+ {"label":"鞍山Anshan0412","name":"鞍山","pinyin":"Anshan","zip":"0412"},
+ {"label":"安顺Anshun0853","name":"安顺","pinyin":"Anshun","zip":"0853"},
+ {"label":"安阳Anyang0372","name":"安阳","pinyin":"Anyang","zip":"0372"},
+ {"label":"白城Baicheng0436","name":"白城","pinyin":"Baicheng","zip":"0436"},
+ {"label":"百色Baise0776","name":"百色","pinyin":"Baise","zip":"0776"},
+ {"label":"白山Baishan0439","name":"白山","pinyin":"Baishan","zip":"0439"},
+ {"label":"白银Baiyin0943","name":"白银","pinyin":"Baiyin","zip":"0943"},
+ {"label":"蚌埠Bangbu0552","name":"蚌埠","pinyin":"Bangbu","zip":"0552"},
+ {"label":"保定Baoding0312","name":"保定","pinyin":"Baoding","zip":"0312"},
+ {"label":"宝鸡Baoji0917","name":"宝鸡","pinyin":"Baoji","zip":"0917"},
+ {"label":"保山Baoshan0875","name":"保山","pinyin":"Baoshan","zip":"0875"},
+ {"label":"包头Baotou0472","name":"包头","pinyin":"Baotou","zip":"0472"},
+ {"label":"巴彦淖尔Bayannaoer0478","name":"巴彦淖尔","pinyin":"Bayannaoer","zip":"0478"},
+ {"label":"巴音郭楞Bayinguoleng0996","name":"巴音郭楞","pinyin":"Bayinguoleng","zip":"0996"},
+ {"label":"巴中Bazhong0827","name":"巴中","pinyin":"Bazhong","zip":"0827"},
+ {"label":"北海Beihai0779","name":"北海","pinyin":"Beihai","zip":"0779"},
+ {"label":"本溪Benxi0414","name":"本溪","pinyin":"Benxi","zip":"0414"},
+ {"label":"毕节Bijie0857","name":"毕节","pinyin":"Bijie","zip":"0857"},
+ {"label":"滨州Binzhou0543","name":"滨州","pinyin":"Binzhou","zip":"0543"},
+ {"label":"博尔塔拉Boertala0909","name":"博尔塔拉","pinyin":"Boertala","zip":"0909"},
+ {"label":"亳州Bozhou0558","name":"亳州","pinyin":"Bozhou","zip":"0558"},
+ {"label":"沧州Cangzhou0317","name":"沧州","pinyin":"Cangzhou","zip":"0317"},
+ {"label":"常德Changde0736","name":"常德","pinyin":"Changde","zip":"0736"},
+ {"label":"昌都Changdu0895","name":"昌都","pinyin":"Changdu","zip":"0895"},
+ {"label":"昌吉Changji0997","name":"昌吉","pinyin":"Changji","zip":"0997"},
+ {"label":"长治Changzhi0355","name":"长治","pinyin":"Changzhi","zip":"0355"},
+ {"label":"巢湖Chaohu0565","name":"巢湖","pinyin":"Chaohu","zip":"0565"},
+ {"label":"朝阳Chaoyang0421","name":"朝阳","pinyin":"Chaoyang","zip":"0421"},
+ {"label":"潮州Chaozhou0768","name":"潮州","pinyin":"Chaozhou","zip":"0768"},
+ {"label":"承德Chengde0314","name":"承德","pinyin":"Chengde","zip":"0314"},
+ {"label":"郴州Chenzhou0735","name":"郴州","pinyin":"Chenzhou","zip":"0735"},
+ {"label":"赤峰Chifeng0476","name":"赤峰","pinyin":"Chifeng","zip":"0476"},
+ {"label":"池州Chizhou0566","name":"池州","pinyin":"Chizhou","zip":"0566"},
+ {"label":"崇左Chongzuo0771","name":"崇左","pinyin":"Chongzuo","zip":"0771"},
+ {"label":"楚雄Chuxiong0875","name":"楚雄","pinyin":"Chuxiong","zip":"0875"},
+ {"label":"滁州Chuzhou0550","name":"滁州","pinyin":"Chuzhou","zip":"0550"},
+ {"label":"大理Dali0872","name":"大理","pinyin":"Dali","zip":"0872"},
+ {"label":"丹东Dandong0415","name":"丹东","pinyin":"Dandong","zip":"0415"},
+ {"label":"大庆Daqing0459","name":"大庆","pinyin":"Daqing","zip":"0459"},
+ {"label":"大同Datong0352","name":"大同","pinyin":"Datong","zip":"0352"},
+ {"label":"大兴安岭Daxinganling0457","name":"大兴安岭","pinyin":"Daxinganling","zip":"0457"},
+ {"label":"达州Dazhou0818","name":"达州","pinyin":"Dazhou","zip":"0818"},
+ {"label":"德宏Dehong0692","name":"德宏","pinyin":"Dehong","zip":"0692"},
+ {"label":"德阳Deyang0838","name":"德阳","pinyin":"Deyang","zip":"0838"},
+ {"label":"德州Dezhou0534","name":"德州","pinyin":"Dezhou","zip":"0534"},
+ {"label":"定西Dingxi0932","name":"定西","pinyin":"Dingxi","zip":"0932"},
+ {"label":"迪庆Diqing0887","name":"迪庆","pinyin":"Diqing","zip":"0887"},
+ {"label":"东营Dongying0546","name":"东营","pinyin":"Dongying","zip":"0546"},
+ {"label":"鄂尔多斯Eerduosi0477","name":"鄂尔多斯","pinyin":"Eerduosi","zip":"0477"},
+ {"label":"恩施Enshi0718","name":"恩施","pinyin":"Enshi","zip":"0718"},
+ {"label":"鄂州Ezhou0711","name":"鄂州","pinyin":"Ezhou","zip":"0711"},
+ {"label":"防城港Fangchenggang0770","name":"防城港","pinyin":"Fangchenggang","zip":"0770"},
+ {"label":"抚顺Fushun0413","name":"抚顺","pinyin":"Fushun","zip":"0413"},
+ {"label":"阜新Fuxin0418","name":"阜新","pinyin":"Fuxin","zip":"0418"},
+ {"label":"阜阳Fuyang0558","name":"阜阳","pinyin":"Fuyang","zip":"0558"},
+ {"label":"抚州Fuzhou0794","name":"抚州","pinyin":"Fuzhou","zip":"0794"},
+ {"label":"甘南Gannan0941","name":"甘南","pinyin":"Gannan","zip":"0941"},
+ {"label":"赣州Ganzhou0797","name":"赣州","pinyin":"Ganzhou","zip":"0797"},
+ {"label":"甘孜Ganzi0836","name":"甘孜","pinyin":"Ganzi","zip":"0836"},
+ {"label":"广安Guangan0826","name":"广安","pinyin":"Guangan","zip":"0826"},
+ {"label":"广元Guangyuan0839","name":"广元","pinyin":"Guangyuan","zip":"0839"},
+ {"label":"贵港Guigang0775","name":"贵港","pinyin":"Guigang","zip":"0775"},
+ {"label":"桂林Guilin0773","name":"桂林","pinyin":"Guilin","zip":"0773"},
+ {"label":"果洛Guoluo0975","name":"果洛","pinyin":"Guoluo","zip":"0975"},
+ {"label":"固原Guyuan0954","name":"固原","pinyin":"Guyuan","zip":"0954"},
+ {"label":"海北Haibei0970","name":"海北","pinyin":"Haibei","zip":"0970"},
+ {"label":"海东Haidong0972","name":"海东","pinyin":"Haidong","zip":"0972"},
+ {"label":"海南Hainan0974","name":"海南","pinyin":"Hainan","zip":"0974"},
+ {"label":"海西Haixi0977","name":"海西","pinyin":"Haixi","zip":"0977"},
+ {"label":"哈密Hami0902","name":"哈密","pinyin":"Hami","zip":"0902"},
+ {"label":"汉中Hanzhong0916","name":"汉中","pinyin":"Hanzhong","zip":"0916"},
+ {"label":"鹤壁Hebi0392","name":"鹤壁","pinyin":"Hebi","zip":"0392"},
+ {"label":"河池Hechi0778","name":"河池","pinyin":"Hechi","zip":"0778"},
+ {"label":"鹤岗Hegang0468","name":"鹤岗","pinyin":"Hegang","zip":"0468"},
+ {"label":"黑河Heihe0456","name":"黑河","pinyin":"Heihe","zip":"0456"},
+ {"label":"衡水Hengshui0318","name":"衡水","pinyin":"Hengshui","zip":"0318"},
+ {"label":"衡阳Hengyang0734","name":"衡阳","pinyin":"Hengyang","zip":"0734"},
+ {"label":"和田地Hetiandi0903","name":"和田地","pinyin":"Hetiandi","zip":"0903"},
+ {"label":"河源Heyuan0762","name":"河源","pinyin":"Heyuan","zip":"0762"},
+ {"label":"菏泽Heze0530","name":"菏泽","pinyin":"Heze","zip":"0530"},
+ {"label":"贺州Hezhou0774","name":"贺州","pinyin":"Hezhou","zip":"0774"},
+ {"label":"红河Honghe0873","name":"红河","pinyin":"Honghe","zip":"0873"},
+ {"label":"淮安Huaian0517","name":"淮安","pinyin":"Huaian","zip":"0517"},
+ {"label":"淮北Huaibei0561","name":"淮北","pinyin":"Huaibei","zip":"0561"},
+ {"label":"怀化Huaihua0745","name":"怀化","pinyin":"Huaihua","zip":"0745"},
+ {"label":"淮南Huainan0554","name":"淮南","pinyin":"Huainan","zip":"0554"},
+ {"label":"黄冈Huanggang0713","name":"黄冈","pinyin":"Huanggang","zip":"0713"},
+ {"label":"黄南Huangnan0973","name":"黄南","pinyin":"Huangnan","zip":"0973"},
+ {"label":"黄山Huangshan0559","name":"黄山","pinyin":"Huangshan","zip":"0559"},
+ {"label":"黄石Huangshi0714","name":"黄石","pinyin":"Huangshi","zip":"0714"},
+ {"label":"呼和浩特Huhehaote0471","name":"呼和浩特","pinyin":"Huhehaote","zip":"0471"},
+ {"label":"葫芦岛Huludao0429","name":"葫芦岛","pinyin":"Huludao","zip":"0429"},
+ {"label":"呼伦贝尔Hulunbeier0470","name":"呼伦贝尔","pinyin":"Hulunbeier","zip":"0470"},
+ {"label":"湖州Huzhou0572","name":"湖州","pinyin":"Huzhou","zip":"0572"},
+ {"label":"佳木斯Jiamusi0454","name":"佳木斯","pinyin":"Jiamusi","zip":"0454"},
+ {"label":"江门Jiangmen0750","name":"江门","pinyin":"Jiangmen","zip":"0750"},
+ {"label":"吉安Jian0796","name":"吉安","pinyin":"Jian","zip":"0796"},
+ {"label":"嘉峪关Jiayuguan0937","name":"嘉峪关","pinyin":"Jiayuguan","zip":"0937"},
+ {"label":"揭阳Jieyang0663","name":"揭阳","pinyin":"Jieyang","zip":"0663"},
+ {"label":"金昌Jinchang0935","name":"金昌","pinyin":"Jinchang","zip":"0935"},
+ {"label":"晋城Jincheng0356","name":"晋城","pinyin":"Jincheng","zip":"0356"},
+ {"label":"景德镇Jingdezhen0798","name":"景德镇","pinyin":"Jingdezhen","zip":"0798"},
+ {"label":"荆门Jingmen0724","name":"荆门","pinyin":"Jingmen","zip":"0724"},
+ {"label":"荆州Jingzhou0716","name":"荆州","pinyin":"Jingzhou","zip":"0716"},
+ {"label":"金华Jinhua0579","name":"金华","pinyin":"Jinhua","zip":"0579"},
+ {"label":"济宁Jining0537","name":"济宁","pinyin":"Jining","zip":"0537"},
+ {"label":"晋中Jinzhong0354","name":"晋中","pinyin":"Jinzhong","zip":"0354"},
+ {"label":"锦州Jinzhou0416","name":"锦州","pinyin":"Jinzhou","zip":"0416"},
+ {"label":"九江Jiujiang0792","name":"九江","pinyin":"Jiujiang","zip":"0792"},
+ {"label":"酒泉Jiuquan0937","name":"酒泉","pinyin":"Jiuquan","zip":"0937"},
+ {"label":"鸡西Jixi0467","name":"鸡西","pinyin":"Jixi","zip":"0467"},
+ {"label":"开封Kaifeng0378","name":"开封","pinyin":"Kaifeng","zip":"0378"},
+ {"label":"喀什地Kashidi0998","name":"喀什地","pinyin":"Kashidi","zip":"0998"},
+ {"label":"克拉玛依Kelamayi0990","name":"克拉玛依","pinyin":"Kelamayi","zip":"0990"},
+ {"label":"克孜勒Kezile0908","name":"克孜勒","pinyin":"Kezile","zip":"0908"},
+ {"label":"来宾Laibin0772","name":"来宾","pinyin":"Laibin","zip":"0772"},
+ {"label":"莱芜Laiwu0634","name":"莱芜","pinyin":"Laiwu","zip":"0634"},
+ {"label":"廊坊Langfang0316","name":"廊坊","pinyin":"Langfang","zip":"0316"},
+ {"label":"拉萨Lasa0891","name":"拉萨","pinyin":"Lasa","zip":"0891"},
+ {"label":"乐山Leshan0833","name":"乐山","pinyin":"Leshan","zip":"0833"},
+ {"label":"凉山Liangshan0834","name":"凉山","pinyin":"Liangshan","zip":"0834"},
+ {"label":"连云港Lianyungang0518","name":"连云港","pinyin":"Lianyungang","zip":"0518"},
+ {"label":"聊城Liaocheng0635","name":"聊城","pinyin":"Liaocheng","zip":"0635"},
+ {"label":"辽阳Liaoyang0419","name":"辽阳","pinyin":"Liaoyang","zip":"0419"},
+ {"label":"辽源Liaoyuan0437","name":"辽源","pinyin":"Liaoyuan","zip":"0437"},
+ {"label":"丽江Lijiang0888","name":"丽江","pinyin":"Lijiang","zip":"0888"},
+ {"label":"临沧Lincang0883","name":"临沧","pinyin":"Lincang","zip":"0883"},
+ {"label":"临汾Linfen0357","name":"临汾","pinyin":"Linfen","zip":"0357"},
+ {"label":"临夏Linxia0930","name":"临夏","pinyin":"Linxia","zip":"0930"},
+ {"label":"临沂Linyi0539","name":"临沂","pinyin":"Linyi","zip":"0539"},
+ {"label":"林芝Linzhi0894","name":"林芝","pinyin":"Linzhi","zip":"0894"},
+ {"label":"丽水Lishui0578","name":"丽水","pinyin":"Lishui","zip":"0578"},
+ {"label":"六安Liuan0564","name":"六安","pinyin":"Liuan","zip":"0564"},
+ {"label":"六盘水Liupanshui0858","name":"六盘水","pinyin":"Liupanshui","zip":"0858"},
+ {"label":"陇南Longnan0939","name":"陇南","pinyin":"Longnan","zip":"0939"},
+ {"label":"龙岩Longyan0597","name":"龙岩","pinyin":"Longyan","zip":"0597"},
+ {"label":"娄底Loudi0738","name":"娄底","pinyin":"Loudi","zip":"0738"},
+ {"label":"漯河Luohe0395","name":"漯河","pinyin":"Luohe","zip":"0395"},
+ {"label":"泸州Luzhou0830","name":"泸州","pinyin":"Luzhou","zip":"0830"},
+ {"label":"吕梁Lvliang0358","name":"吕梁","pinyin":"Lvliang","zip":"0358"},
+ {"label":"马鞍山Maanshan0555","name":"马鞍山","pinyin":"Maanshan","zip":"0555"},
+ {"label":"茂名Maoming0668","name":"茂名","pinyin":"Maoming","zip":"0668"},
+ {"label":"眉山Meishan028","name":"眉山","pinyin":"Meishan","zip":"028"},
+ {"label":"梅州Meizhou0753","name":"梅州","pinyin":"Meizhou","zip":"0753"},
+ {"label":"绵阳Mianyang0816","name":"绵阳","pinyin":"Mianyang","zip":"0816"},
+ {"label":"牡丹江Mudanjiang0453","name":"牡丹江","pinyin":"Mudanjiang","zip":"0453"},
+ {"label":"南充Nanchong0817","name":"南充","pinyin":"Nanchong","zip":"0817"},
+ {"label":"南平Nanping0599","name":"南平","pinyin":"Nanping","zip":"0599"},
+ {"label":"南阳Nanyang0377","name":"南阳","pinyin":"Nanyang","zip":"0377"},
+ {"label":"那曲Naqu0896","name":"那曲","pinyin":"Naqu","zip":"0896"},
+ {"label":"内江Neijiang0832","name":"内江","pinyin":"Neijiang","zip":"0832"},
+ {"label":"宁德Ningde0593","name":"宁德","pinyin":"Ningde","zip":"0593"},
+ {"label":"怒江Nujiang0886","name":"怒江","pinyin":"Nujiang","zip":"0886"},
+ {"label":"盘锦Panjin0427","name":"盘锦","pinyin":"Panjin","zip":"0427"},
+ {"label":"攀枝花Panzhihua0812","name":"攀枝花","pinyin":"Panzhihua","zip":"0812"},
+ {"label":"平顶山Pingdingshan0375","name":"平顶山","pinyin":"Pingdingshan","zip":"0375"},
+ {"label":"平凉Pingliang0933","name":"平凉","pinyin":"Pingliang","zip":"0933"},
+ {"label":"萍乡Pingxiang0799","name":"萍乡","pinyin":"Pingxiang","zip":"0799"},
+ {"label":"普洱Puer0879","name":"普洱","pinyin":"Puer","zip":"0879"},
+ {"label":"莆田Putian0594","name":"莆田","pinyin":"Putian","zip":"0594"},
+ {"label":"濮阳Puyang0393","name":"濮阳","pinyin":"Puyang","zip":"0393"},
+ {"label":"黔东Qiandong0855","name":"黔东","pinyin":"Qiandong","zip":"0855"},
+ {"label":"黔南Qiannan0854","name":"黔南","pinyin":"Qiannan","zip":"0854"},
+ {"label":"黔西南Qianxinan0859","name":"黔西南","pinyin":"Qianxinan","zip":"0859"},
+ {"label":"庆阳Qingyang0934","name":"庆阳","pinyin":"Qingyang","zip":"0934"},
+ {"label":"清远Qingyuan0763","name":"清远","pinyin":"Qingyuan","zip":"0763"},
+ {"label":"秦皇岛Qinhuangdao0335","name":"秦皇岛","pinyin":"Qinhuangdao","zip":"0335"},
+ {"label":"钦州Qinzhou0777","name":"钦州","pinyin":"Qinzhou","zip":"0777"},
+ {"label":"齐齐哈尔Qiqihaer0452","name":"齐齐哈尔","pinyin":"Qiqihaer","zip":"0452"},
+ {"label":"七台河Qitaihe0464","name":"七台河","pinyin":"Qitaihe","zip":"0464"},
+ {"label":"曲靖Qujing0874","name":"曲靖","pinyin":"Qujing","zip":"0874"},
+ {"label":"衢州Quzhou0570","name":"衢州","pinyin":"Quzhou","zip":"0570"},
+ {"label":"日喀则Rikaze0892","name":"日喀则","pinyin":"Rikaze","zip":"0892"},
+ {"label":"日照Rizhao0633","name":"日照","pinyin":"Rizhao","zip":"0633"},
+ {"label":"三门峡Sanmenxia0398","name":"三门峡","pinyin":"Sanmenxia","zip":"0398"},
+ {"label":"三明Sanming0598","name":"三明","pinyin":"Sanming","zip":"0598"},
+ {"label":"三亚Sanya0899","name":"三亚","pinyin":"Sanya","zip":"0899"},
+ {"label":"商洛Shangluo0914","name":"商洛","pinyin":"Shangluo","zip":"0914"},
+ {"label":"商丘Shangqiu0370","name":"商丘","pinyin":"Shangqiu","zip":"0370"},
+ {"label":"上饶Shangrao0793","name":"上饶","pinyin":"Shangrao","zip":"0793"},
+ {"label":"山南Shannan0893","name":"山南","pinyin":"Shannan","zip":"0893"},
+ {"label":"汕头Shantou0754","name":"汕头","pinyin":"Shantou","zip":"0754"},
+ {"label":"汕尾Shanwei0660","name":"汕尾","pinyin":"Shanwei","zip":"0660"},
+ {"label":"韶关Shaoguan0751","name":"韶关","pinyin":"Shaoguan","zip":"0751"},
+ {"label":"绍兴Shaoxing0575","name":"绍兴","pinyin":"Shaoxing","zip":"0575"},
+ {"label":"邵阳Shaoyang0739","name":"邵阳","pinyin":"Shaoyang","zip":"0739"},
+ {"label":"十堰Shiyan0719","name":"十堰","pinyin":"Shiyan","zip":"0719"},
+ {"label":"石嘴山Shizuishan0952","name":"石嘴山","pinyin":"Shizuishan","zip":"0952"},
+ {"label":"双鸭山Shuangyashan0469","name":"双鸭山","pinyin":"Shuangyashan","zip":"0469"},
+ {"label":"朔州Shuozhou0349","name":"朔州","pinyin":"Shuozhou","zip":"0349"},
+ {"label":"四平Siping0434","name":"四平","pinyin":"Siping","zip":"0434"},
+ {"label":"松原Songyuan0438","name":"松原","pinyin":"Songyuan","zip":"0438"},
+ {"label":"绥化Suihua0455","name":"绥化","pinyin":"Suihua","zip":"0455"},
+ {"label":"遂宁Suining0825","name":"遂宁","pinyin":"Suining","zip":"0825"},
+ {"label":"随州Suizhou0722","name":"随州","pinyin":"Suizhou","zip":"0722"},
+ {"label":"宿迁Suqian0527","name":"宿迁","pinyin":"Suqian","zip":"0527"},
+ {"label":"宿州Suzhou0557","name":"宿州","pinyin":"Suzhou","zip":"0557"},
+ {"label":"塔城地Tachengdi0901","name":"塔城地","pinyin":"Tachengdi","zip":"0901"},
+ {"label":"泰安Taian0538","name":"泰安","pinyin":"Taian","zip":"0538"},
+ {"label":"太原Taiyuan0351","name":"太原","pinyin":"Taiyuan","zip":"0351"},
+ {"label":"泰州Taizhou0523","name":"泰州","pinyin":"Taizhou","zip":"0523"},
+ {"label":"天水Tianshui0938","name":"天水","pinyin":"Tianshui","zip":"0938"},
+ {"label":"铁岭Tieling0410","name":"铁岭","pinyin":"Tieling","zip":"0410"},
+ {"label":"铜川Tongchuan0919","name":"铜川","pinyin":"Tongchuan","zip":"0919"},
+ {"label":"通化Tonghua0435","name":"通化","pinyin":"Tonghua","zip":"0435"},
+ {"label":"通辽Tongliao0475","name":"通辽","pinyin":"Tongliao","zip":"0475"},
+ {"label":"铜陵Tongling0562","name":"铜陵","pinyin":"Tongling","zip":"0562"},
+ {"label":"铜仁Tongren0856","name":"铜仁","pinyin":"Tongren","zip":"0856"},
+ {"label":"吐鲁番Tulufan0995","name":"吐鲁番","pinyin":"Tulufan","zip":"0995"},
+ {"label":"渭南Weinan0913","name":"渭南","pinyin":"Weinan","zip":"0913"},
+ {"label":"文山Wenshan0876","name":"文山","pinyin":"Wenshan","zip":"0876"},
+ {"label":"温州Wenzhou0577","name":"温州","pinyin":"Wenzhou","zip":"0577"},
+ {"label":"乌海Wuhai0473","name":"乌海","pinyin":"Wuhai","zip":"0473"},
+ {"label":"芜湖Wuhu0553","name":"芜湖","pinyin":"Wuhu","zip":"0553"},
+ {"label":"乌兰察布Wulanchabu0474","name":"乌兰察布","pinyin":"Wulanchabu","zip":"0474"},
+ {"label":"乌鲁木齐Wulumuqi0991","name":"乌鲁木齐","pinyin":"Wulumuqi","zip":"0991"},
+ {"label":"武威Wuwei0935","name":"武威","pinyin":"Wuwei","zip":"0935"},
+ {"label":"吴忠Wuzhong0953","name":"吴忠","pinyin":"Wuzhong","zip":"0953"},
+ {"label":"梧州Wuzhou0774","name":"梧州","pinyin":"Wuzhou","zip":"0774"},
+ {"label":"襄樊Xiangfan0710","name":"襄樊","pinyin":"Xiangfan","zip":"0710"},
+ {"label":"湘潭Xiangtan0732","name":"湘潭","pinyin":"Xiangtan","zip":"0732"},
+ {"label":"湘西Xiangxi0743","name":"湘西","pinyin":"Xiangxi","zip":"0743"},
+ {"label":"咸宁Xianning0715","name":"咸宁","pinyin":"Xianning","zip":"0715"},
+ {"label":"咸阳Xianyang029","name":"咸阳","pinyin":"Xianyang","zip":"029"},
+ {"label":"孝感Xiaogan0712","name":"孝感","pinyin":"Xiaogan","zip":"0712"},
+ {"label":"锡林郭勒盟Xilinguolemeng0479","name":"锡林郭勒盟","pinyin":"Xilinguolemeng","zip":"0479"},
+ {"label":"兴安盟Xinganmeng0482","name":"兴安盟","pinyin":"Xinganmeng","zip":"0482"},
+ {"label":"邢台Xingtai0319","name":"邢台","pinyin":"Xingtai","zip":"0319"},
+ {"label":"西宁Xining0971","name":"西宁","pinyin":"Xining","zip":"0971"},
+ {"label":"新乡Xinxiang0373","name":"新乡","pinyin":"Xinxiang","zip":"0373"},
+ {"label":"信阳Xinyang0376","name":"信阳","pinyin":"Xinyang","zip":"0376"},
+ {"label":"新余Xinyu0790","name":"新余","pinyin":"Xinyu","zip":"0790"},
+ {"label":"忻州Xinzhou0350","name":"忻州","pinyin":"Xinzhou","zip":"0350"},
+ {"label":"西双版纳Xishuangbanna0691","name":"西双版纳","pinyin":"Xishuangbanna","zip":"0691"},
+ {"label":"宣城Xuancheng0563","name":"宣城","pinyin":"Xuancheng","zip":"0563"},
+ {"label":"雅安Yaan0835","name":"雅安","pinyin":"Yaan","zip":"0835"},
+ {"label":"延安Yanan0911","name":"延安","pinyin":"Yanan","zip":"0911"},
+ {"label":"延边Yanbian0433","name":"延边","pinyin":"Yanbian","zip":"0433"},
+ {"label":"盐城Yancheng0515","name":"盐城","pinyin":"Yancheng","zip":"0515"},
+ {"label":"阳江Yangjiang0662","name":"阳江","pinyin":"Yangjiang","zip":"0662"},
+ {"label":"阳泉Yangquan0353","name":"阳泉","pinyin":"Yangquan","zip":"0353"},
+ {"label":"宜宾Yibin0831","name":"宜宾","pinyin":"Yibin","zip":"0831"},
+ {"label":"宜昌Yichang0717","name":"宜昌","pinyin":"Yichang","zip":"0717"},
+ {"label":"伊春Yichun0458","name":"伊春","pinyin":"Yichun","zip":"0458"},
+ {"label":"宜春Yichun0795","name":"宜春","pinyin":"Yichun","zip":"0795"},
+ {"label":"伊犁哈萨克Yilihasake0999","name":"伊犁哈萨克","pinyin":"Yilihasake","zip":"0999"},
+ {"label":"银川Yinchuan0951","name":"银川","pinyin":"Yinchuan","zip":"0951"},
+ {"label":"营口Yingkou0417","name":"营口","pinyin":"Yingkou","zip":"0417"},
+ {"label":"鹰潭Yingtan0701","name":"鹰潭","pinyin":"Yingtan","zip":"0701"},
+ {"label":"益阳Yiyang0737","name":"益阳","pinyin":"Yiyang","zip":"0737"},
+ {"label":"永州Yongzhou0746","name":"永州","pinyin":"Yongzhou","zip":"0746"},
+ {"label":"岳阳Yueyang0730","name":"岳阳","pinyin":"Yueyang","zip":"0730"},
+ {"label":"玉林Yulin0775","name":"玉林","pinyin":"Yulin","zip":"0775"},
+ {"label":"榆林Yulin0912","name":"榆林","pinyin":"Yulin","zip":"0912"},
+ {"label":"运城Yuncheng0359","name":"运城","pinyin":"Yuncheng","zip":"0359"},
+ {"label":"云浮Yunfu0766","name":"云浮","pinyin":"Yunfu","zip":"0766"},
+ {"label":"玉树Yushu0976","name":"玉树","pinyin":"Yushu","zip":"0976"},
+ {"label":"玉溪Yuxi0877","name":"玉溪","pinyin":"Yuxi","zip":"0877"},
+ {"label":"枣庄Zaozhuang0623","name":"枣庄","pinyin":"Zaozhuang","zip":"0623"},
+ {"label":"张家界Zhangjiajie0744","name":"张家界","pinyin":"Zhangjiajie","zip":"0744"},
+ {"label":"张家口Zhangjiakou0313","name":"张家口","pinyin":"Zhangjiakou","zip":"0313"},
+ {"label":"张掖Zhangye0936","name":"张掖","pinyin":"Zhangye","zip":"0936"},
+ {"label":"湛江Zhanjiang0759","name":"湛江","pinyin":"Zhanjiang","zip":"0759"},
+ {"label":"肇庆Zhaoqing0758","name":"肇庆","pinyin":"Zhaoqing","zip":"0758"},
+ {"label":"昭通Zhaotong0870","name":"昭通","pinyin":"Zhaotong","zip":"0870"},
+ {"label":"镇江Zhenjiang0511","name":"镇江","pinyin":"Zhenjiang","zip":"0511"},
+ {"label":"中卫Zhongwei0955","name":"中卫","pinyin":"Zhongwei","zip":"0955"},
+ {"label":"周口Zhoukou0394","name":"周口","pinyin":"Zhoukou","zip":"0394"},
+ {"label":"舟山Zhoushan0580","name":"舟山","pinyin":"Zhoushan","zip":"0580"},
+ {"label":"驻马店Zhumadian0396","name":"驻马店","pinyin":"Zhumadian","zip":"0396"},
+ {"label":"株洲Zhuzhou0731","name":"株洲","pinyin":"Zhuzhou","zip":"0731"},
+ {"label":"淄博Zibo0533","name":"淄博","pinyin":"Zibo","zip":"0533"},
+ {"label":"自贡Zigong0813","name":"自贡","pinyin":"Zigong","zip":"0813"},
+ {"label":"资阳Ziyang028","name":"资阳","pinyin":"Ziyang","zip":"028"},
+ {"label":"遵义Zunyi0852","name":"遵义","pinyin":"Zunyi","zip":"0852"},
+ {"label":"阿城Acheng0451","name":"阿城","pinyin":"Acheng","zip":"0451"},
+ {"label":"安福Anfu0796","name":"安福","pinyin":"Anfu","zip":"0796"},
+ {"label":"安吉Anji0572","name":"安吉","pinyin":"Anji","zip":"0572"},
+ {"label":"安宁Anning0871","name":"安宁","pinyin":"Anning","zip":"0871"},
+ {"label":"安丘Anqiu0536","name":"安丘","pinyin":"Anqiu","zip":"0536"},
+ {"label":"安溪Anxi0595","name":"安溪","pinyin":"Anxi","zip":"0595"},
+ {"label":"安义Anyi0791","name":"安义","pinyin":"Anyi","zip":"0791"},
+ {"label":"安远Anyuan0797","name":"安远","pinyin":"Anyuan","zip":"0797"},
+ {"label":"宝应Baoying0514","name":"宝应","pinyin":"Baoying","zip":"0514"},
+ {"label":"巴彦Bayan0451","name":"巴彦","pinyin":"Bayan","zip":"0451"},
+ {"label":"滨海Binhai0515","name":"滨海","pinyin":"Binhai","zip":"0515"},
+ {"label":"宾县Binxian0451","name":"宾县","pinyin":"Binxian","zip":"0451"},
+ {"label":"宾阳Binyang0771","name":"宾阳","pinyin":"Binyang","zip":"0771"},
+ {"label":"璧山Bishan023","name":"璧山","pinyin":"Bishan","zip":"023"},
+ {"label":"博爱Boai0391","name":"博爱","pinyin":"Boai","zip":"0391"},
+ {"label":"博罗Boluo0752","name":"博罗","pinyin":"Boluo","zip":"0752"},
+ {"label":"博兴Boxing0543","name":"博兴","pinyin":"Boxing","zip":"0543"},
+ {"label":"苍南Cangnan0577","name":"苍南","pinyin":"Cangnan","zip":"0577"},
+ {"label":"苍山Cangshan0539","name":"苍山","pinyin":"Cangshan","zip":"0539"},
+ {"label":"曹县Caoxian0530","name":"曹县","pinyin":"Caoxian","zip":"0530"},
+ {"label":"长岛Changdao0535","name":"长岛","pinyin":"Changdao","zip":"0535"},
+ {"label":"长丰Changfeng0551","name":"长丰","pinyin":"Changfeng","zip":"0551"},
+ {"label":"长海Changhai0411","name":"长海","pinyin":"Changhai","zip":"0411"},
+ {"label":"长乐Changle0591","name":"长乐","pinyin":"Changle","zip":"0591"},
+ {"label":"昌乐Changle0536","name":"昌乐","pinyin":"Changle","zip":"0536"},
+ {"label":"常山Changshan0570","name":"常山","pinyin":"Changshan","zip":"0570"},
+ {"label":"常熟Changshu0512","name":"常熟","pinyin":"Changshu","zip":"0512"},
+ {"label":"长泰Changtai0596","name":"长泰","pinyin":"Changtai","zip":"0596"},
+ {"label":"长汀Changting0597","name":"长汀","pinyin":"Changting","zip":"0597"},
+ {"label":"长兴Changxing0572","name":"长兴","pinyin":"Changxing","zip":"0572"},
+ {"label":"昌邑Changyi0536","name":"昌邑","pinyin":"Changyi","zip":"0536"},
+ {"label":"潮安Chaoan0768","name":"潮安","pinyin":"Chaoan","zip":"0768"},
+ {"label":"呈贡Chenggong0871","name":"呈贡","pinyin":"Chenggong","zip":"0871"},
+ {"label":"城口Chengkou023","name":"城口","pinyin":"Chengkou","zip":"023"},
+ {"label":"成武Chengwu0530","name":"成武","pinyin":"Chengwu","zip":"0530"},
+ {"label":"茌平Chiping0635","name":"茌平","pinyin":"Chiping","zip":"0635"},
+ {"label":"崇仁Chongren0794","name":"崇仁","pinyin":"Chongren","zip":"0794"},
+ {"label":"崇义Chongyi0797","name":"崇义","pinyin":"Chongyi","zip":"0797"},
+ {"label":"崇州Chongzhou028","name":"崇州","pinyin":"Chongzhou","zip":"028"},
+ {"label":"淳安Chunan0571","name":"淳安","pinyin":"Chunan","zip":"0571"},
+ {"label":"慈溪Cixi0574","name":"慈溪","pinyin":"Cixi","zip":"0574"},
+ {"label":"从化Conghua020","name":"从化","pinyin":"Conghua","zip":"020"},
+ {"label":"枞阳Congyang0556","name":"枞阳","pinyin":"Congyang","zip":"0556"},
+ {"label":"大丰Dafeng0515","name":"大丰","pinyin":"Dafeng","zip":"0515"},
+ {"label":"岱山Daishan0580","name":"岱山","pinyin":"Daishan","zip":"0580"},
+ {"label":"砀山Dangshan0557","name":"砀山","pinyin":"Dangshan","zip":"0557"},
+ {"label":"当涂Dangtu0555","name":"当涂","pinyin":"Dangtu","zip":"0555"},
+ {"label":"单县Danxian0530","name":"单县","pinyin":"Danxian","zip":"0530"},
+ {"label":"丹阳Danyang0511","name":"丹阳","pinyin":"Danyang","zip":"0511"},
+ {"label":"大埔Dapu0753","name":"大埔","pinyin":"Dapu","zip":"0753"},
+ {"label":"大田Datian0598","name":"大田","pinyin":"Datian","zip":"0598"},
+ {"label":"大邑Dayi028","name":"大邑","pinyin":"Dayi","zip":"028"},
+ {"label":"大余Dayu0797","name":"大余","pinyin":"Dayu","zip":"0797"},
+ {"label":"大足Dazu023","name":"大足","pinyin":"Dazu","zip":"023"},
+ {"label":"德安Dean0792","name":"德安","pinyin":"Dean","zip":"0792"},
+ {"label":"德化Dehua0595","name":"德化","pinyin":"Dehua","zip":"0595"},
+ {"label":"德惠Dehui0431","name":"德惠","pinyin":"Dehui","zip":"0431"},
+ {"label":"登封Dengfeng0371","name":"登封","pinyin":"Dengfeng","zip":"0371"},
+ {"label":"德清Deqing0572","name":"德清","pinyin":"Deqing","zip":"0572"},
+ {"label":"德庆Deqing0758","name":"德庆","pinyin":"Deqing","zip":"0758"},
+ {"label":"德兴Dexing0793","name":"德兴","pinyin":"Dexing","zip":"0793"},
+ {"label":"电白Dianbai0668","name":"电白","pinyin":"Dianbai","zip":"0668"},
+ {"label":"垫江Dianjiang023","name":"垫江","pinyin":"Dianjiang","zip":"023"},
+ {"label":"定南Dingnan0797","name":"定南","pinyin":"Dingnan","zip":"0797"},
+ {"label":"定陶Dingtao0530","name":"定陶","pinyin":"Dingtao","zip":"0530"},
+ {"label":"定远Dingyuan0550","name":"定远","pinyin":"Dingyuan","zip":"0550"},
+ {"label":"东阿Donga0635","name":"东阿","pinyin":"Donga","zip":"0635"},
+ {"label":"东海Donghai0518","name":"东海","pinyin":"Donghai","zip":"0518"},
+ {"label":"东明Dongming0530","name":"东明","pinyin":"Dongming","zip":"0530"},
+ {"label":"东平Dongping0538","name":"东平","pinyin":"Dongping","zip":"0538"},
+ {"label":"东山Dongshan0596","name":"东山","pinyin":"Dongshan","zip":"0596"},
+ {"label":"东台Dongtai0515","name":"东台","pinyin":"Dongtai","zip":"0515"},
+ {"label":"洞头Dongtou0577","name":"洞头","pinyin":"Dongtou","zip":"0577"},
+ {"label":"东乡Dongxiang0794","name":"东乡","pinyin":"Dongxiang","zip":"0794"},
+ {"label":"东阳Dongyang0579","name":"东阳","pinyin":"Dongyang","zip":"0579"},
+ {"label":"东源Dongyuan0762","name":"东源","pinyin":"Dongyuan","zip":"0762"},
+ {"label":"东至Dongzhi0566","name":"东至","pinyin":"Dongzhi","zip":"0566"},
+ {"label":"都昌Duchang0792","name":"都昌","pinyin":"Duchang","zip":"0792"},
+ {"label":"都江堰Dujiangyan028","name":"都江堰","pinyin":"Dujiangyan","zip":"028"},
+ {"label":"恩平Enping0750","name":"恩平","pinyin":"Enping","zip":"0750"},
+ {"label":"法库Faku024","name":"法库","pinyin":"Faku","zip":"024"},
+ {"label":"繁昌Fanchang0553","name":"繁昌","pinyin":"Fanchang","zip":"0553"},
+ {"label":"方正Fangzheng0451","name":"方正","pinyin":"Fangzheng","zip":"0451"},
+ {"label":"肥城Feicheng0538","name":"肥城","pinyin":"Feicheng","zip":"0538"},
+ {"label":"肥东Feidong0551","name":"肥东","pinyin":"Feidong","zip":"0551"},
+ {"label":"肥西Feixi0551","name":"肥西","pinyin":"Feixi","zip":"0551"},
+ {"label":"费县Feixian0539","name":"费县","pinyin":"Feixian","zip":"0539"},
+ {"label":"丰城Fengcheng0795","name":"丰城","pinyin":"Fengcheng","zip":"0795"},
+ {"label":"丰都Fengdu023","name":"丰都","pinyin":"Fengdu","zip":"023"},
+ {"label":"奉化Fenghua0574","name":"奉化","pinyin":"Fenghua","zip":"0574"},
+ {"label":"奉节Fengjie023","name":"奉节","pinyin":"Fengjie","zip":"023"},
+ {"label":"封开Fengkai0758","name":"封开","pinyin":"Fengkai","zip":"0758"},
+ {"label":"丰顺Fengshun0753","name":"丰顺","pinyin":"Fengshun","zip":"0753"},
+ {"label":"凤台Fengtai0554","name":"凤台","pinyin":"Fengtai","zip":"0554"},
+ {"label":"丰县Fengxian0516","name":"丰县","pinyin":"Fengxian","zip":"0516"},
+ {"label":"奉新Fengxin0795","name":"奉新","pinyin":"Fengxin","zip":"0795"},
+ {"label":"凤阳Fengyang0550","name":"凤阳","pinyin":"Fengyang","zip":"0550"},
+ {"label":"分宜Fenyi0790","name":"分宜","pinyin":"Fenyi","zip":"0790"},
+ {"label":"佛冈Fogang0763","name":"佛冈","pinyin":"Fogang","zip":"0763"},
+ {"label":"福安Fuan0593","name":"福安","pinyin":"Fuan","zip":"0593"},
+ {"label":"福鼎Fuding0593","name":"福鼎","pinyin":"Fuding","zip":"0593"},
+ {"label":"浮梁Fuliang0798","name":"浮梁","pinyin":"Fuliang","zip":"0798"},
+ {"label":"富民Fumin0871","name":"富民","pinyin":"Fumin","zip":"0871"},
+ {"label":"阜南Funan0558","name":"阜南","pinyin":"Funan","zip":"0558"},
+ {"label":"阜宁Funing0515","name":"阜宁","pinyin":"Funing","zip":"0515"},
+ {"label":"福清Fuqing0591","name":"福清","pinyin":"Fuqing","zip":"0591"},
+ {"label":"富阳Fuyang0571","name":"富阳","pinyin":"Fuyang","zip":"0571"},
+ {"label":"赣县Ganxian0797","name":"赣县","pinyin":"Ganxian","zip":"0797"},
+ {"label":"赣榆Ganyu0518","name":"赣榆","pinyin":"Ganyu","zip":"0518"},
+ {"label":"高安Gaoan0795","name":"高安","pinyin":"Gaoan","zip":"0795"},
+ {"label":"藁城Gaocheng0311","name":"藁城","pinyin":"Gaocheng","zip":"0311"},
+ {"label":"高淳Gaochun025","name":"高淳","pinyin":"Gaochun","zip":"025"},
+ {"label":"皋兰Gaolan0931","name":"皋兰","pinyin":"Gaolan","zip":"0931"},
+ {"label":"高陵Gaoling029","name":"高陵","pinyin":"Gaoling","zip":"029"},
+ {"label":"高密Gaomi0536","name":"高密","pinyin":"Gaomi","zip":"0536"},
+ {"label":"高青Gaoqing0533","name":"高青","pinyin":"Gaoqing","zip":"0533"},
+ {"label":"高唐Gaotang0635","name":"高唐","pinyin":"Gaotang","zip":"0635"},
+ {"label":"高要Gaoyao0758","name":"高要","pinyin":"Gaoyao","zip":"0758"},
+ {"label":"高邑Gaoyi0311","name":"高邑","pinyin":"Gaoyi","zip":"0311"},
+ {"label":"高邮Gaoyou0514","name":"高邮","pinyin":"Gaoyou","zip":"0514"},
+ {"label":"高州Gaozhou0668","name":"高州","pinyin":"Gaozhou","zip":"0668"},
+ {"label":"巩义Gongyi0371","name":"巩义","pinyin":"Gongyi","zip":"0371"},
+ {"label":"广昌Guangchang0794","name":"广昌","pinyin":"Guangchang","zip":"0794"},
+ {"label":"广德Guangde0563","name":"广德","pinyin":"Guangde","zip":"0563"},
+ {"label":"广丰Guangfeng0793","name":"广丰","pinyin":"Guangfeng","zip":"0793"},
+ {"label":"广宁Guangning0758","name":"广宁","pinyin":"Guangning","zip":"0758"},
+ {"label":"广饶Guangrao0546","name":"广饶","pinyin":"Guangrao","zip":"0546"},
+ {"label":"光泽Guangze0599","name":"光泽","pinyin":"Guangze","zip":"0599"},
+ {"label":"灌南Guannan0518","name":"灌南","pinyin":"Guannan","zip":"0518"},
+ {"label":"冠县Guanxian0635","name":"冠县","pinyin":"Guanxian","zip":"0635"},
+ {"label":"灌云Guanyun0518","name":"灌云","pinyin":"Guanyun","zip":"0518"},
+ {"label":"贵溪Guixi0701","name":"贵溪","pinyin":"Guixi","zip":"0701"},
+ {"label":"古田Gutian0593","name":"古田","pinyin":"Gutian","zip":"0593"},
+ {"label":"固镇Guzhen0552","name":"固镇","pinyin":"Guzhen","zip":"0552"},
+ {"label":"海安Haian0513","name":"海安","pinyin":"Haian","zip":"0513"},
+ {"label":"海丰Haifeng0660","name":"海丰","pinyin":"Haifeng","zip":"0660"},
+ {"label":"海门Haimen0513","name":"海门","pinyin":"Haimen","zip":"0513"},
+ {"label":"海宁Haining0573","name":"海宁","pinyin":"Haining","zip":"0573"},
+ {"label":"海盐Haiyan0573","name":"海盐","pinyin":"Haiyan","zip":"0573"},
+ {"label":"海阳Haiyang0535","name":"海阳","pinyin":"Haiyang","zip":"0535"},
+ {"label":"含山Hanshan0565","name":"含山","pinyin":"Hanshan","zip":"0565"},
+ {"label":"合川Hechuan023","name":"合川","pinyin":"Hechuan","zip":"023"},
+ {"label":"横峰Hengfeng0793","name":"横峰","pinyin":"Hengfeng","zip":"0793"},
+ {"label":"横县Hengxian0771","name":"横县","pinyin":"Hengxian","zip":"0771"},
+ {"label":"和平Heping0762","name":"和平","pinyin":"Heping","zip":"0762"},
+ {"label":"鹤山Heshan0750","name":"鹤山","pinyin":"Heshan","zip":"0750"},
+ {"label":"和县Hexian0565","name":"和县","pinyin":"Hexian","zip":"0565"},
+ {"label":"洪泽Hongze0517","name":"洪泽","pinyin":"Hongze","zip":"0517"},
+ {"label":"华安Huaan0596","name":"华安","pinyin":"Huaan","zip":"0596"},
+ {"label":"桦甸Huadian0423","name":"桦甸","pinyin":"Huadian","zip":"0423"},
+ {"label":"怀集Huaiji0758","name":"怀集","pinyin":"Huaiji","zip":"0758"},
+ {"label":"怀宁Huaining0556","name":"怀宁","pinyin":"Huaining","zip":"0556"},
+ {"label":"怀远Huaiyuan0552","name":"怀远","pinyin":"Huaiyuan","zip":"0552"},
+ {"label":"桓台Huantai0533","name":"桓台","pinyin":"Huantai","zip":"0533"},
+ {"label":"化州Huazhou0668","name":"化州","pinyin":"Huazhou","zip":"0668"},
+ {"label":"惠安Huian0595","name":"惠安","pinyin":"Huian","zip":"0595"},
+ {"label":"会昌Huichang0797","name":"会昌","pinyin":"Huichang","zip":"0797"},
+ {"label":"惠东Huidong0752","name":"惠东","pinyin":"Huidong","zip":"0752"},
+ {"label":"惠来Huilai0663","name":"惠来","pinyin":"Huilai","zip":"0663"},
+ {"label":"惠民Huimin0543","name":"惠民","pinyin":"Huimin","zip":"0543"},
+ {"label":"湖口Hukou0792","name":"湖口","pinyin":"Hukou","zip":"0792"},
+ {"label":"呼兰Hulan0451","name":"呼兰","pinyin":"Hulan","zip":"0451"},
+ {"label":"霍邱Huoqiu0564","name":"霍邱","pinyin":"Huoqiu","zip":"0564"},
+ {"label":"霍山Huoshan0564","name":"霍山","pinyin":"Huoshan","zip":"0564"},
+ {"label":"户县Huxian029","name":"户县","pinyin":"Huxian","zip":"029"},
+ {"label":"建德Jiande0571","name":"建德","pinyin":"Jiande","zip":"0571"},
+ {"label":"江都Jiangdu0514","name":"江都","pinyin":"Jiangdu","zip":"0514"},
+ {"label":"江津Jiangjin023","name":"江津","pinyin":"Jiangjin","zip":"023"},
+ {"label":"将乐Jiangle0598","name":"将乐","pinyin":"Jiangle","zip":"0598"},
+ {"label":"江山Jiangshan0570","name":"江山","pinyin":"Jiangshan","zip":"0570"},
+ {"label":"姜堰Jiangyan0523","name":"姜堰","pinyin":"Jiangyan","zip":"0523"},
+ {"label":"江阴Jiangyin0510","name":"江阴","pinyin":"Jiangyin","zip":"0510"},
+ {"label":"建湖Jianhu0515","name":"建湖","pinyin":"Jianhu","zip":"0515"},
+ {"label":"建宁Jianning0598","name":"建宁","pinyin":"Jianning","zip":"0598"},
+ {"label":"建瓯Jianou0599","name":"建瓯","pinyin":"Jianou","zip":"0599"},
+ {"label":"建阳Jianyang0599","name":"建阳","pinyin":"Jianyang","zip":"0599"},
+ {"label":"吉安Jian0796","name":"吉安","pinyin":"Jian","zip":"0796"},
+ {"label":"蛟河Jiaohe0423","name":"蛟河","pinyin":"Jiaohe","zip":"0423"},
+ {"label":"蕉岭Jiaoling0753","name":"蕉岭","pinyin":"Jiaoling","zip":"0753"},
+ {"label":"胶南Jiaonan0532","name":"胶南","pinyin":"Jiaonan","zip":"0532"},
+ {"label":"胶州Jiaozhou0532","name":"胶州","pinyin":"Jiaozhou","zip":"0532"},
+ {"label":"嘉善Jiashan0573","name":"嘉善","pinyin":"Jiashan","zip":"0573"},
+ {"label":"嘉祥Jiaxiang0537","name":"嘉祥","pinyin":"Jiaxiang","zip":"0537"},
+ {"label":"揭东Jiedong0663","name":"揭东","pinyin":"Jiedong","zip":"0663"},
+ {"label":"界首Jieshou0558","name":"界首","pinyin":"Jieshou","zip":"0558"},
+ {"label":"揭西Jiexi0663","name":"揭西","pinyin":"Jiexi","zip":"0663"},
+ {"label":"即墨Jimo0532","name":"即墨","pinyin":"Jimo","zip":"0532"},
+ {"label":"靖安Jingan0795","name":"靖安","pinyin":"Jingan","zip":"0795"},
+ {"label":"旌德Jingde0563","name":"旌德","pinyin":"Jingde","zip":"0563"},
+ {"label":"井冈山Jinggangshan0796","name":"井冈山","pinyin":"Jinggangshan","zip":"0796"},
+ {"label":"靖江Jingjiang0523","name":"靖江","pinyin":"Jingjiang","zip":"0523"},
+ {"label":"景宁Jingning0578","name":"景宁","pinyin":"Jingning","zip":"0578"},
+ {"label":"泾县Jingxian0563","name":"泾县","pinyin":"Jingxian","zip":"0563"},
+ {"label":"井陉Jingxing0311","name":"井陉","pinyin":"Jingxing","zip":"0311"},
+ {"label":"金湖Jinhu0517","name":"金湖","pinyin":"Jinhu","zip":"0517"},
+ {"label":"晋江Jinjiang0595","name":"晋江","pinyin":"Jinjiang","zip":"0595"},
+ {"label":"金门Jinmen0595","name":"金门","pinyin":"Jinmen","zip":"0595"},
+ {"label":"晋宁Jinning0871","name":"晋宁","pinyin":"Jinning","zip":"0871"},
+ {"label":"金坛Jintan0519","name":"金坛","pinyin":"Jintan","zip":"0519"},
+ {"label":"金堂Jintang028","name":"金堂","pinyin":"Jintang","zip":"028"},
+ {"label":"进贤Jinxian0791","name":"进贤","pinyin":"Jinxian","zip":"0791"},
+ {"label":"金溪Jinxi0794","name":"金溪","pinyin":"Jinxi","zip":"0794"},
+ {"label":"金乡Jinxiang0537","name":"金乡","pinyin":"Jinxiang","zip":"0537"},
+ {"label":"缙云Jinyun0578","name":"缙云","pinyin":"Jinyun","zip":"0578"},
+ {"label":"金寨Jinzhai0564","name":"金寨","pinyin":"Jinzhai","zip":"0564"},
+ {"label":"晋州Jinzhou0311","name":"晋州","pinyin":"Jinzhou","zip":"0311"},
+ {"label":"吉水Jishui0796","name":"吉水","pinyin":"Jishui","zip":"0796"},
+ {"label":"九江Jiujiang0792","name":"九江","pinyin":"Jiujiang","zip":"0792"},
+ {"label":"九台Jiutai0431","name":"九台","pinyin":"Jiutai","zip":"0431"},
+ {"label":"绩溪Jixi0563","name":"绩溪","pinyin":"Jixi","zip":"0563"},
+ {"label":"济阳Jiyang0531","name":"济阳","pinyin":"Jiyang","zip":"0531"},
+ {"label":"济源Jiyuan0391","name":"济源","pinyin":"Jiyuan","zip":"0391"},
+ {"label":"鄄城Juancheng0530","name":"鄄城","pinyin":"Juancheng","zip":"0530"},
+ {"label":"莒南Junan0539","name":"莒南","pinyin":"Junan","zip":"0539"},
+ {"label":"句容Jurong0511","name":"句容","pinyin":"Jurong","zip":"0511"},
+ {"label":"莒县Juxian0633","name":"莒县","pinyin":"Juxian","zip":"0633"},
+ {"label":"巨野Juye0530","name":"巨野","pinyin":"Juye","zip":"0530"},
+ {"label":"开化Kaihua0570","name":"开化","pinyin":"Kaihua","zip":"0570"},
+ {"label":"开平Kaiping0750","name":"开平","pinyin":"Kaiping","zip":"0750"},
+ {"label":"开县Kaixian023","name":"开县","pinyin":"Kaixian","zip":"023"},
+ {"label":"开阳Kaiyang0851","name":"开阳","pinyin":"Kaiyang","zip":"0851"},
+ {"label":"康平Kangping024","name":"康平","pinyin":"Kangping","zip":"024"},
+ {"label":"垦利Kenli0546","name":"垦利","pinyin":"Kenli","zip":"0546"},
+ {"label":"昆山Kunshan0512","name":"昆山","pinyin":"Kunshan","zip":"0512"},
+ {"label":"来安Laian0550","name":"来安","pinyin":"Laian","zip":"0550"},
+ {"label":"莱西Laixi0532","name":"莱西","pinyin":"Laixi","zip":"0532"},
+ {"label":"莱阳Laiyang0535","name":"莱阳","pinyin":"Laiyang","zip":"0535"},
+ {"label":"莱州Laizhou0535","name":"莱州","pinyin":"Laizhou","zip":"0535"},
+ {"label":"郎溪Langxi0563","name":"郎溪","pinyin":"Langxi","zip":"0563"},
+ {"label":"蓝田Lantian029","name":"蓝田","pinyin":"Lantian","zip":"029"},
+ {"label":"兰溪Lanxi0579","name":"兰溪","pinyin":"Lanxi","zip":"0579"},
+ {"label":"乐安Lean0794","name":"乐安","pinyin":"Lean","zip":"0794"},
+ {"label":"乐昌Lechang0751","name":"乐昌","pinyin":"Lechang","zip":"0751"},
+ {"label":"雷州Leizhou0759","name":"雷州","pinyin":"Leizhou","zip":"0759"},
+ {"label":"乐陵Leling0534","name":"乐陵","pinyin":"Leling","zip":"0534"},
+ {"label":"乐平Leping0798","name":"乐平","pinyin":"Leping","zip":"0798"},
+ {"label":"乐清Leqing0577","name":"乐清","pinyin":"Leqing","zip":"0577"},
+ {"label":"乐亭Leting0315","name":"乐亭","pinyin":"Leting","zip":"0315"},
+ {"label":"连城Liancheng0597","name":"连城","pinyin":"Liancheng","zip":"0597"},
+ {"label":"梁平Liangping023","name":"梁平","pinyin":"Liangping","zip":"023"},
+ {"label":"梁山Liangshan0537","name":"梁山","pinyin":"Liangshan","zip":"0537"},
+ {"label":"莲花Lianhua0799","name":"莲花","pinyin":"Lianhua","zip":"0799"},
+ {"label":"连江Lianjiang0591","name":"连江","pinyin":"Lianjiang","zip":"0591"},
+ {"label":"廉江Lianjiang0759","name":"廉江","pinyin":"Lianjiang","zip":"0759"},
+ {"label":"连南Liannan0763","name":"连南","pinyin":"Liannan","zip":"0763"},
+ {"label":"连平Lianping0762","name":"连平","pinyin":"Lianping","zip":"0762"},
+ {"label":"连山Lianshan0763","name":"连山","pinyin":"Lianshan","zip":"0763"},
+ {"label":"涟水Lianshui0517","name":"涟水","pinyin":"Lianshui","zip":"0517"},
+ {"label":"连州Lianzhou0763","name":"连州","pinyin":"Lianzhou","zip":"0763"},
+ {"label":"辽中Liaozhong024","name":"辽中","pinyin":"Liaozhong","zip":"024"},
+ {"label":"黎川Lichuan0794","name":"黎川","pinyin":"Lichuan","zip":"0794"},
+ {"label":"利津Lijin0546","name":"利津","pinyin":"Lijin","zip":"0546"},
+ {"label":"临安Linan0571","name":"临安","pinyin":"Linan","zip":"0571"},
+ {"label":"灵璧Lingbi0557","name":"灵璧","pinyin":"Lingbi","zip":"0557"},
+ {"label":"灵寿Lingshou0311","name":"灵寿","pinyin":"Lingshou","zip":"0311"},
+ {"label":"陵县Lingxian0534","name":"陵县","pinyin":"Lingxian","zip":"0534"},
+ {"label":"临海Linhai0576","name":"临海","pinyin":"Linhai","zip":"0576"},
+ {"label":"临清Linqing0635","name":"临清","pinyin":"Linqing","zip":"0635"},
+ {"label":"临泉Linquan0558","name":"临泉","pinyin":"Linquan","zip":"0558"},
+ {"label":"临朐Linqu0536","name":"临朐","pinyin":"Linqu","zip":"0536"},
+ {"label":"临沭Linshu0539","name":"临沭","pinyin":"Linshu","zip":"0539"},
+ {"label":"临邑Linyi0534","name":"临邑","pinyin":"Linyi","zip":"0534"},
+ {"label":"溧水Lishui025","name":"溧水","pinyin":"Lishui","zip":"025"},
+ {"label":"柳城Liucheng0772","name":"柳城","pinyin":"Liucheng","zip":"0772"},
+ {"label":"柳江Liujiang0772","name":"柳江","pinyin":"Liujiang","zip":"0772"},
+ {"label":"浏阳Liuyang0731","name":"浏阳","pinyin":"Liuyang","zip":"0731"},
+ {"label":"利辛Lixin0558","name":"利辛","pinyin":"Lixin","zip":"0558"},
+ {"label":"溧阳Liyang0519","name":"溧阳","pinyin":"Liyang","zip":"0519"},
+ {"label":"隆安Longan0771","name":"隆安","pinyin":"Longan","zip":"0771"},
+ {"label":"龙川Longchuan0762","name":"龙川","pinyin":"Longchuan","zip":"0762"},
+ {"label":"龙海Longhai0596","name":"龙海","pinyin":"Longhai","zip":"0596"},
+ {"label":"龙口Longkou0535","name":"龙口","pinyin":"Longkou","zip":"0535"},
+ {"label":"龙门Longmen0752","name":"龙门","pinyin":"Longmen","zip":"0752"},
+ {"label":"龙南Longnan0797","name":"龙南","pinyin":"Longnan","zip":"0797"},
+ {"label":"龙泉Longquan0578","name":"龙泉","pinyin":"Longquan","zip":"0578"},
+ {"label":"龙游Longyou0570","name":"龙游","pinyin":"Longyou","zip":"0570"},
+ {"label":"栾城Luancheng0311","name":"栾城","pinyin":"Luancheng","zip":"0311"},
+ {"label":"栾川Luanchuan0379","name":"栾川","pinyin":"Luanchuan","zip":"0379"},
+ {"label":"滦南Luannan0315","name":"滦南","pinyin":"Luannan","zip":"0315"},
+ {"label":"滦县Luanxian0315","name":"滦县","pinyin":"Luanxian","zip":"0315"},
+ {"label":"陆丰Lufeng0660","name":"陆丰","pinyin":"Lufeng","zip":"0660"},
+ {"label":"陆河Luhe0660","name":"陆河","pinyin":"Luhe","zip":"0660"},
+ {"label":"庐江Lujiang0565","name":"庐江","pinyin":"Lujiang","zip":"0565"},
+ {"label":"罗定Luoding0766","name":"罗定","pinyin":"Luoding","zip":"0766"},
+ {"label":"洛宁Luoning0379","name":"洛宁","pinyin":"Luoning","zip":"0379"},
+ {"label":"罗源Luoyuan0591","name":"罗源","pinyin":"Luoyuan","zip":"0591"},
+ {"label":"鹿泉Luquan0311","name":"鹿泉","pinyin":"Luquan","zip":"0311"},
+ {"label":"禄劝Luquan0871","name":"禄劝","pinyin":"Luquan","zip":"0871"},
+ {"label":"芦溪Luxi0799","name":"芦溪","pinyin":"Luxi","zip":"0799"},
+ {"label":"鹿寨Luzhai0772","name":"鹿寨","pinyin":"Luzhai","zip":"0772"},
+ {"label":"马山Mashan0771","name":"马山","pinyin":"Mashan","zip":"0771"},
+ {"label":"梅县Meixian0753","name":"梅县","pinyin":"Meixian","zip":"0753"},
+ {"label":"蒙城Mengcheng0558","name":"蒙城","pinyin":"Mengcheng","zip":"0558"},
+ {"label":"孟津Mengjin0379","name":"孟津","pinyin":"Mengjin","zip":"0379"},
+ {"label":"蒙阴Mengyin0539","name":"蒙阴","pinyin":"Mengyin","zip":"0539"},
+ {"label":"孟州Mengzhou0391","name":"孟州","pinyin":"Mengzhou","zip":"0391"},
+ {"label":"明光Mingguang0550","name":"明光","pinyin":"Mingguang","zip":"0550"},
+ {"label":"明溪Mingxi0598","name":"明溪","pinyin":"Mingxi","zip":"0598"},
+ {"label":"闽侯Minhou0591","name":"闽侯","pinyin":"Minhou","zip":"0591"},
+ {"label":"闽清Minqing0591","name":"闽清","pinyin":"Minqing","zip":"0591"},
+ {"label":"木兰Mulan0451","name":"木兰","pinyin":"Mulan","zip":"0451"},
+ {"label":"南安Nanan0595","name":"南安","pinyin":"Nanan","zip":"0595"},
+ {"label":"南澳Nanao0754","name":"南澳","pinyin":"Nanao","zip":"0754"},
+ {"label":"南城Nancheng0794","name":"南城","pinyin":"Nancheng","zip":"0794"},
+ {"label":"南川Nanchuan023","name":"南川","pinyin":"Nanchuan","zip":"023"},
+ {"label":"南丰Nanfeng0794","name":"南丰","pinyin":"Nanfeng","zip":"0794"},
+ {"label":"南靖Nanjing0596","name":"南靖","pinyin":"Nanjing","zip":"0596"},
+ {"label":"南康Nankang0797","name":"南康","pinyin":"Nankang","zip":"0797"},
+ {"label":"南陵Nanling0553","name":"南陵","pinyin":"Nanling","zip":"0553"},
+ {"label":"南雄Nanxiong0751","name":"南雄","pinyin":"Nanxiong","zip":"0751"},
+ {"label":"宁都Ningdu0797","name":"宁都","pinyin":"Ningdu","zip":"0797"},
+ {"label":"宁国Ningguo0563","name":"宁国","pinyin":"Ningguo","zip":"0563"},
+ {"label":"宁海Ninghai0574","name":"宁海","pinyin":"Ninghai","zip":"0574"},
+ {"label":"宁化Ninghua0598","name":"宁化","pinyin":"Ninghua","zip":"0598"},
+ {"label":"宁津Ningjin0534","name":"宁津","pinyin":"Ningjin","zip":"0534"},
+ {"label":"宁乡Ningxiang0731","name":"宁乡","pinyin":"Ningxiang","zip":"0731"},
+ {"label":"宁阳Ningyang0538","name":"宁阳","pinyin":"Ningyang","zip":"0538"},
+ {"label":"农安Nongan0431","name":"农安","pinyin":"Nongan","zip":"0431"},
+ {"label":"磐安Panan0579","name":"磐安","pinyin":"Panan","zip":"0579"},
+ {"label":"磐石Panshi0423","name":"磐石","pinyin":"Panshi","zip":"0423"},
+ {"label":"沛县Peixian0516","name":"沛县","pinyin":"Peixian","zip":"0516"},
+ {"label":"蓬莱Penglai0535","name":"蓬莱","pinyin":"Penglai","zip":"0535"},
+ {"label":"彭水Pengshui023","name":"彭水","pinyin":"Pengshui","zip":"023"},
+ {"label":"彭泽Pengze0792","name":"彭泽","pinyin":"Pengze","zip":"0792"},
+ {"label":"彭州Pengzhou028","name":"彭州","pinyin":"Pengzhou","zip":"028"},
+ {"label":"平度Pingdu0532","name":"平度","pinyin":"Pingdu","zip":"0532"},
+ {"label":"平和Pinghe0596","name":"平和","pinyin":"Pinghe","zip":"0596"},
+ {"label":"平湖Pinghu0573","name":"平湖","pinyin":"Pinghu","zip":"0573"},
+ {"label":"屏南Pingnan0593","name":"屏南","pinyin":"Pingnan","zip":"0593"},
+ {"label":"平山Pingshan0311","name":"平山","pinyin":"Pingshan","zip":"0311"},
+ {"label":"平潭Pingtan0591","name":"平潭","pinyin":"Pingtan","zip":"0591"},
+ {"label":"平阳Pingyang0577","name":"平阳","pinyin":"Pingyang","zip":"0577"},
+ {"label":"平阴Pingyin0531","name":"平阴","pinyin":"Pingyin","zip":"0531"},
+ {"label":"平邑Pingyi0539","name":"平邑","pinyin":"Pingyi","zip":"0539"},
+ {"label":"平原Pingyuan0534","name":"平原","pinyin":"Pingyuan","zip":"0534"},
+ {"label":"平远Pingyuan0753","name":"平远","pinyin":"Pingyuan","zip":"0753"},
+ {"label":"郫县Pixian028","name":"郫县","pinyin":"Pixian","zip":"028"},
+ {"label":"邳州Pizhou0516","name":"邳州","pinyin":"Pizhou","zip":"0516"},
+ {"label":"鄱阳Poyang0793","name":"鄱阳","pinyin":"Poyang","zip":"0793"},
+ {"label":"浦城Pucheng0599","name":"浦城","pinyin":"Pucheng","zip":"0599"},
+ {"label":"浦江Pujiang0579","name":"浦江","pinyin":"Pujiang","zip":"0579"},
+ {"label":"蒲江Pujiang028","name":"蒲江","pinyin":"Pujiang","zip":"028"},
+ {"label":"普兰店Pulandian0411","name":"普兰店","pinyin":"Pulandian","zip":"0411"},
+ {"label":"普宁Puning0663","name":"普宁","pinyin":"Puning","zip":"0663"},
+ {"label":"迁安Qianan0315","name":"迁安","pinyin":"Qianan","zip":"0315"},
+ {"label":"潜山Qianshan0556","name":"潜山","pinyin":"Qianshan","zip":"0556"},
+ {"label":"铅山Qianshan0793","name":"铅山","pinyin":"Qianshan","zip":"0793"},
+ {"label":"迁西Qianxi0315","name":"迁西","pinyin":"Qianxi","zip":"0315"},
+ {"label":"启东Qidong0513","name":"启东","pinyin":"Qidong","zip":"0513"},
+ {"label":"齐河Qihe0534","name":"齐河","pinyin":"Qihe","zip":"0534"},
+ {"label":"綦江Qijiang023","name":"綦江","pinyin":"Qijiang","zip":"023"},
+ {"label":"祁门Qimen0559","name":"祁门","pinyin":"Qimen","zip":"0559"},
+ {"label":"清流Qingliu0598","name":"清流","pinyin":"Qingliu","zip":"0598"},
+ {"label":"青田Qingtian0578","name":"青田","pinyin":"Qingtian","zip":"0578"},
+ {"label":"清新Qingxin0763","name":"清新","pinyin":"Qingxin","zip":"0763"},
+ {"label":"青阳Qingyang0566","name":"青阳","pinyin":"Qingyang","zip":"0566"},
+ {"label":"庆元Qingyuan0578","name":"庆元","pinyin":"Qingyuan","zip":"0578"},
+ {"label":"庆云Qingyun0534","name":"庆云","pinyin":"Qingyun","zip":"0534"},
+ {"label":"清镇Qingzhen0851","name":"清镇","pinyin":"Qingzhen","zip":"0851"},
+ {"label":"青州Qingzhou0536","name":"青州","pinyin":"Qingzhou","zip":"0536"},
+ {"label":"沁阳Qinyang0391","name":"沁阳","pinyin":"Qinyang","zip":"0391"},
+ {"label":"邛崃Qionglai028","name":"邛崃","pinyin":"Qionglai","zip":"028"},
+ {"label":"栖霞Qixia0535","name":"栖霞","pinyin":"Qixia","zip":"0535"},
+ {"label":"全椒Quanjiao0550","name":"全椒","pinyin":"Quanjiao","zip":"0550"},
+ {"label":"全南Quannan0797","name":"全南","pinyin":"Quannan","zip":"0797"},
+ {"label":"曲阜Qufu0537","name":"曲阜","pinyin":"Qufu","zip":"0537"},
+ {"label":"曲江Qujiang0751","name":"曲江","pinyin":"Qujiang","zip":"0751"},
+ {"label":"饶平Raoping0768","name":"饶平","pinyin":"Raoping","zip":"0768"},
+ {"label":"仁化Renhua0751","name":"仁化","pinyin":"Renhua","zip":"0751"},
+ {"label":"融安Rongan0772","name":"融安","pinyin":"Rongan","zip":"0772"},
+ {"label":"荣昌Rongchang023","name":"荣昌","pinyin":"Rongchang","zip":"023"},
+ {"label":"荣成Rongcheng0631","name":"荣成","pinyin":"Rongcheng","zip":"0631"},
+ {"label":"融水Rongshui0772","name":"融水","pinyin":"Rongshui","zip":"0772"},
+ {"label":"如东Rudong0513","name":"如东","pinyin":"Rudong","zip":"0513"},
+ {"label":"如皋Rugao0513","name":"如皋","pinyin":"Rugao","zip":"0513"},
+ {"label":"瑞安Ruian0577","name":"瑞安","pinyin":"Ruian","zip":"0577"},
+ {"label":"瑞昌Ruichang0792","name":"瑞昌","pinyin":"Ruichang","zip":"0792"},
+ {"label":"瑞金Ruijin0797","name":"瑞金","pinyin":"Ruijin","zip":"0797"},
+ {"label":"乳山Rushan0631","name":"乳山","pinyin":"Rushan","zip":"0631"},
+ {"label":"汝阳Ruyang0379","name":"汝阳","pinyin":"Ruyang","zip":"0379"},
+ {"label":"乳源Ruyuan0751","name":"乳源","pinyin":"Ruyuan","zip":"0751"},
+ {"label":"三江Sanjiang0772","name":"三江","pinyin":"Sanjiang","zip":"0772"},
+ {"label":"三门Sanmen0576","name":"三门","pinyin":"Sanmen","zip":"0576"},
+ {"label":"诏安Saoan0596","name":"诏安","pinyin":"Saoan","zip":"0596"},
+ {"label":"上高Shanggao0795","name":"上高","pinyin":"Shanggao","zip":"0795"},
+ {"label":"上杭Shanghang0597","name":"上杭","pinyin":"Shanghang","zip":"0597"},
+ {"label":"商河Shanghe0531","name":"商河","pinyin":"Shanghe","zip":"0531"},
+ {"label":"上栗Shangli0799","name":"上栗","pinyin":"Shangli","zip":"0799"},
+ {"label":"上林Shanglin0771","name":"上林","pinyin":"Shanglin","zip":"0771"},
+ {"label":"上饶Shangrao0793","name":"上饶","pinyin":"Shangrao","zip":"0793"},
+ {"label":"上犹Shangyou0797","name":"上犹","pinyin":"Shangyou","zip":"0797"},
+ {"label":"上虞Shangyu0575","name":"上虞","pinyin":"Shangyu","zip":"0575"},
+ {"label":"尚志Shangzhi0451","name":"尚志","pinyin":"Shangzhi","zip":"0451"},
+ {"label":"邵武Shaowu0599","name":"邵武","pinyin":"Shaowu","zip":"0599"},
+ {"label":"绍兴Shaoxing0575","name":"绍兴","pinyin":"Shaoxing","zip":"0575"},
+ {"label":"沙县Shaxian0598","name":"沙县","pinyin":"Shaxian","zip":"0598"},
+ {"label":"嵊泗Shengsi0580","name":"嵊泗","pinyin":"Shengsi","zip":"0580"},
+ {"label":"嵊州Shengzhou0575","name":"嵊州","pinyin":"Shengzhou","zip":"0575"},
+ {"label":"莘县Shenxian0635","name":"莘县","pinyin":"Shenxian","zip":"0635"},
+ {"label":"深泽Shenze0311","name":"深泽","pinyin":"Shenze","zip":"0311"},
+ {"label":"歙县Shexian0559","name":"歙县","pinyin":"Shexian","zip":"0559"},
+ {"label":"射阳Sheyang0515","name":"射阳","pinyin":"Sheyang","zip":"0515"},
+ {"label":"石城Shicheng0797","name":"石城","pinyin":"Shicheng","zip":"0797"},
+ {"label":"石林Shilin0871","name":"石林","pinyin":"Shilin","zip":"0871"},
+ {"label":"石狮Shishi0595","name":"石狮","pinyin":"Shishi","zip":"0595"},
+ {"label":"石台Shitai0566","name":"石台","pinyin":"Shitai","zip":"0566"},
+ {"label":"始兴Shixing0751","name":"始兴","pinyin":"Shixing","zip":"0751"},
+ {"label":"石柱Shizhu023","name":"石柱","pinyin":"Shizhu","zip":"023"},
+ {"label":"寿光Shouguang0536","name":"寿光","pinyin":"Shouguang","zip":"0536"},
+ {"label":"寿宁Shouning0593","name":"寿宁","pinyin":"Shouning","zip":"0593"},
+ {"label":"寿县Shouxian0564","name":"寿县","pinyin":"Shouxian","zip":"0564"},
+ {"label":"双城Shuangcheng0451","name":"双城","pinyin":"Shuangcheng","zip":"0451"},
+ {"label":"双流Shuangliu028","name":"双流","pinyin":"Shuangliu","zip":"028"},
+ {"label":"舒城Shucheng0564","name":"舒城","pinyin":"Shucheng","zip":"0564"},
+ {"label":"舒兰Shulan0423","name":"舒兰","pinyin":"Shulan","zip":"0423"},
+ {"label":"顺昌Shunchang0599","name":"顺昌","pinyin":"Shunchang","zip":"0599"},
+ {"label":"沭阳Shuyang0527","name":"沭阳","pinyin":"Shuyang","zip":"0527"},
+ {"label":"泗洪Sihong0527","name":"泗洪","pinyin":"Sihong","zip":"0527"},
+ {"label":"四会Sihui0758","name":"四会","pinyin":"Sihui","zip":"0758"},
+ {"label":"泗水Sishui0537","name":"泗水","pinyin":"Sishui","zip":"0537"},
+ {"label":"泗县Sixian0557","name":"泗县","pinyin":"Sixian","zip":"0557"},
+ {"label":"泗阳Siyang0527","name":"泗阳","pinyin":"Siyang","zip":"0527"},
+ {"label":"嵩明Songming0871","name":"嵩明","pinyin":"Songming","zip":"0871"},
+ {"label":"松溪Songxi0599","name":"松溪","pinyin":"Songxi","zip":"0599"},
+ {"label":"嵩县Songxian0379","name":"嵩县","pinyin":"Songxian","zip":"0379"},
+ {"label":"松阳Songyang0578","name":"松阳","pinyin":"Songyang","zip":"0578"},
+ {"label":"遂昌Suichang0578","name":"遂昌","pinyin":"Suichang","zip":"0578"},
+ {"label":"遂川Suichuan0796","name":"遂川","pinyin":"Suichuan","zip":"0796"},
+ {"label":"睢宁Suining0516","name":"睢宁","pinyin":"Suining","zip":"0516"},
+ {"label":"濉溪Suixi0561","name":"濉溪","pinyin":"Suixi","zip":"0561"},
+ {"label":"遂溪Suixi0759","name":"遂溪","pinyin":"Suixi","zip":"0759"},
+ {"label":"宿松Susong0556","name":"宿松","pinyin":"Susong","zip":"0556"},
+ {"label":"宿豫Suyu0527","name":"宿豫","pinyin":"Suyu","zip":"0527"},
+ {"label":"太仓Taicang0512","name":"太仓","pinyin":"Taicang","zip":"0512"},
+ {"label":"太和Taihe0558","name":"太和","pinyin":"Taihe","zip":"0558"},
+ {"label":"泰和Taihe0796","name":"泰和","pinyin":"Taihe","zip":"0796"},
+ {"label":"太湖Taihu0556","name":"太湖","pinyin":"Taihu","zip":"0556"},
+ {"label":"泰宁Taining0598","name":"泰宁","pinyin":"Taining","zip":"0598"},
+ {"label":"台山Taishan0750","name":"台山","pinyin":"Taishan","zip":"0750"},
+ {"label":"泰顺Taishun0577","name":"泰顺","pinyin":"Taishun","zip":"0577"},
+ {"label":"泰兴Taixing0523","name":"泰兴","pinyin":"Taixing","zip":"0523"},
+ {"label":"郯城Tancheng0539","name":"郯城","pinyin":"Tancheng","zip":"0539"},
+ {"label":"唐海Tanghai0315","name":"唐海","pinyin":"Tanghai","zip":"0315"},
+ {"label":"滕州Tengzhou0623","name":"滕州","pinyin":"Tengzhou","zip":"0623"},
+ {"label":"天长Tianchang0550","name":"天长","pinyin":"Tianchang","zip":"0550"},
+ {"label":"天台Tiantai0576","name":"天台","pinyin":"Tiantai","zip":"0576"},
+ {"label":"桐城Tongcheng0556","name":"桐城","pinyin":"Tongcheng","zip":"0556"},
+ {"label":"铜鼓Tonggu0795","name":"铜鼓","pinyin":"Tonggu","zip":"0795"},
+ {"label":"通河Tonghe0451","name":"通河","pinyin":"Tonghe","zip":"0451"},
+ {"label":"铜梁Tongliang023","name":"铜梁","pinyin":"Tongliang","zip":"023"},
+ {"label":"铜陵Tongling0562","name":"铜陵","pinyin":"Tongling","zip":"0562"},
+ {"label":"桐庐Tonglu0571","name":"桐庐","pinyin":"Tonglu","zip":"0571"},
+ {"label":"潼南Tongnan023","name":"潼南","pinyin":"Tongnan","zip":"023"},
+ {"label":"铜山Tongshan0516","name":"铜山","pinyin":"Tongshan","zip":"0516"},
+ {"label":"桐乡Tongxiang0573","name":"桐乡","pinyin":"Tongxiang","zip":"0573"},
+ {"label":"通州Tongzhou0513","name":"通州","pinyin":"Tongzhou","zip":"0513"},
+ {"label":"瓦房店Wafangdian0411","name":"瓦房店","pinyin":"Wafangdian","zip":"0411"},
+ {"label":"万安Wanan0796","name":"万安","pinyin":"Wanan","zip":"0796"},
+ {"label":"望城Wangcheng0731","name":"望城","pinyin":"Wangcheng","zip":"0731"},
+ {"label":"望江Wangjiang0556","name":"望江","pinyin":"Wangjiang","zip":"0556"},
+ {"label":"万年Wannian0793","name":"万年","pinyin":"Wannian","zip":"0793"},
+ {"label":"万载Wanzai0795","name":"万载","pinyin":"Wanzai","zip":"0795"},
+ {"label":"微山Weishan0537","name":"微山","pinyin":"Weishan","zip":"0537"},
+ {"label":"文成Wencheng0577","name":"文成","pinyin":"Wencheng","zip":"0577"},
+ {"label":"文登Wendeng0631","name":"文登","pinyin":"Wendeng","zip":"0631"},
+ {"label":"翁源Wengyuan0751","name":"翁源","pinyin":"Wengyuan","zip":"0751"},
+ {"label":"温岭Wenling0576","name":"温岭","pinyin":"Wenling","zip":"0576"},
+ {"label":"汶上Wenshang0537","name":"汶上","pinyin":"Wenshang","zip":"0537"},
+ {"label":"温县Wenxian0391","name":"温县","pinyin":"Wenxian","zip":"0391"},
+ {"label":"涡阳Woyang0558","name":"涡阳","pinyin":"Woyang","zip":"0558"},
+ {"label":"五常Wuchang0451","name":"五常","pinyin":"Wuchang","zip":"0451"},
+ {"label":"武城Wucheng0534","name":"武城","pinyin":"Wucheng","zip":"0534"},
+ {"label":"吴川Wuchuan0759","name":"吴川","pinyin":"Wuchuan","zip":"0759"},
+ {"label":"无棣Wudi0543","name":"无棣","pinyin":"Wudi","zip":"0543"},
+ {"label":"五河Wuhe0552","name":"五河","pinyin":"Wuhe","zip":"0552"},
+ {"label":"芜湖Wuhu0553","name":"芜湖","pinyin":"Wuhu","zip":"0553"},
+ {"label":"五华Wuhua0753","name":"五华","pinyin":"Wuhua","zip":"0753"},
+ {"label":"无极Wuji0311","name":"无极","pinyin":"Wuji","zip":"0311"},
+ {"label":"吴江Wujiang0512","name":"吴江","pinyin":"Wujiang","zip":"0512"},
+ {"label":"五莲Wulian0633","name":"五莲","pinyin":"Wulian","zip":"0633"},
+ {"label":"武隆Wulong023","name":"武隆","pinyin":"Wulong","zip":"023"},
+ {"label":"武鸣Wuming0771","name":"武鸣","pinyin":"Wuming","zip":"0771"},
+ {"label":"武宁Wuning0792","name":"武宁","pinyin":"Wuning","zip":"0792"},
+ {"label":"武平Wuping0597","name":"武平","pinyin":"Wuping","zip":"0597"},
+ {"label":"巫山Wushan023","name":"巫山","pinyin":"Wushan","zip":"023"},
+ {"label":"无为Wuwei0565","name":"无为","pinyin":"Wuwei","zip":"0565"},
+ {"label":"巫溪Wuxi023","name":"巫溪","pinyin":"Wuxi","zip":"023"},
+ {"label":"武义Wuyi0579","name":"武义","pinyin":"Wuyi","zip":"0579"},
+ {"label":"武夷山Wuyishan0599","name":"武夷山","pinyin":"Wuyishan","zip":"0599"},
+ {"label":"婺源Wuyuan0793","name":"婺源","pinyin":"Wuyuan","zip":"0793"},
+ {"label":"武陟Wuzhi0391","name":"武陟","pinyin":"Wuzhi","zip":"0391"},
+ {"label":"峡江Xiajiang0796","name":"峡江","pinyin":"Xiajiang","zip":"0796"},
+ {"label":"夏津Xiajin0534","name":"夏津","pinyin":"Xiajin","zip":"0534"},
+ {"label":"象山Xiangshan0574","name":"象山","pinyin":"Xiangshan","zip":"0574"},
+ {"label":"响水Xiangshui0515","name":"响水","pinyin":"Xiangshui","zip":"0515"},
+ {"label":"仙居Xianju0576","name":"仙居","pinyin":"Xianju","zip":"0576"},
+ {"label":"仙游Xianyou0594","name":"仙游","pinyin":"Xianyou","zip":"0594"},
+ {"label":"萧县Xiaoxian0557","name":"萧县","pinyin":"Xiaoxian","zip":"0557"},
+ {"label":"霞浦Xiapu0593","name":"霞浦","pinyin":"Xiapu","zip":"0593"},
+ {"label":"息烽Xifeng0851","name":"息烽","pinyin":"Xifeng","zip":"0851"},
+ {"label":"新安Xinan0379","name":"新安","pinyin":"Xinan","zip":"0379"},
+ {"label":"新昌Xinchang0575","name":"新昌","pinyin":"Xinchang","zip":"0575"},
+ {"label":"信丰Xinfeng0797","name":"信丰","pinyin":"Xinfeng","zip":"0797"},
+ {"label":"新丰Xinfeng0751","name":"新丰","pinyin":"Xinfeng","zip":"0751"},
+ {"label":"新干Xingan0796","name":"新干","pinyin":"Xingan","zip":"0796"},
+ {"label":"兴国Xingguo0797","name":"兴国","pinyin":"Xingguo","zip":"0797"},
+ {"label":"兴化Xinghua0523","name":"兴化","pinyin":"Xinghua","zip":"0523"},
+ {"label":"兴宁Xingning0753","name":"兴宁","pinyin":"Xingning","zip":"0753"},
+ {"label":"行唐Xingtang0311","name":"行唐","pinyin":"Xingtang","zip":"0311"},
+ {"label":"荥阳Xingyang0371","name":"荥阳","pinyin":"Xingyang","zip":"0371"},
+ {"label":"星子Xingzi0792","name":"星子","pinyin":"Xingzi","zip":"0792"},
+ {"label":"辛集Xinji0311","name":"辛集","pinyin":"Xinji","zip":"0311"},
+ {"label":"新建Xinjian0791","name":"新建","pinyin":"Xinjian","zip":"0791"},
+ {"label":"新津Xinjin028","name":"新津","pinyin":"Xinjin","zip":"028"},
+ {"label":"新乐Xinle0311","name":"新乐","pinyin":"Xinle","zip":"0311"},
+ {"label":"新民Xinmin024","name":"新民","pinyin":"Xinmin","zip":"024"},
+ {"label":"新密Xinmi0371","name":"新密","pinyin":"Xinmi","zip":"0371"},
+ {"label":"新泰Xintai0538","name":"新泰","pinyin":"Xintai","zip":"0538"},
+ {"label":"新兴Xinxing0766","name":"新兴","pinyin":"Xinxing","zip":"0766"},
+ {"label":"新沂Xinyi0516","name":"新沂","pinyin":"Xinyi","zip":"0516"},
+ {"label":"信宜Xinyi0668","name":"信宜","pinyin":"Xinyi","zip":"0668"},
+ {"label":"新郑Xinzheng0371","name":"新郑","pinyin":"Xinzheng","zip":"0371"},
+ {"label":"休宁Xiuning0559","name":"休宁","pinyin":"Xiuning","zip":"0559"},
+ {"label":"秀山Xiushan023","name":"秀山","pinyin":"Xiushan","zip":"023"},
+ {"label":"修水Xiushui0792","name":"修水","pinyin":"Xiushui","zip":"0792"},
+ {"label":"修文Xiuwen0851","name":"修文","pinyin":"Xiuwen","zip":"0851"},
+ {"label":"修武Xiuwu0391","name":"修武","pinyin":"Xiuwu","zip":"0391"},
+ {"label":"寻甸Xundian0871","name":"寻甸","pinyin":"Xundian","zip":"0871"},
+ {"label":"寻乌Xunwu0797","name":"寻乌","pinyin":"Xunwu","zip":"0797"},
+ {"label":"徐闻Xuwen0759","name":"徐闻","pinyin":"Xuwen","zip":"0759"},
+ {"label":"盱眙Xuyi0517","name":"盱眙","pinyin":"Xuyi","zip":"0517"},
+ {"label":"阳春Yangchun0662","name":"阳春","pinyin":"Yangchun","zip":"0662"},
+ {"label":"阳东Yangdong0662","name":"阳东","pinyin":"Yangdong","zip":"0662"},
+ {"label":"阳谷Yanggu0635","name":"阳谷","pinyin":"Yanggu","zip":"0635"},
+ {"label":"阳山Yangshan0763","name":"阳山","pinyin":"Yangshan","zip":"0763"},
+ {"label":"阳信Yangxin0543","name":"阳信","pinyin":"Yangxin","zip":"0543"},
+ {"label":"阳西Yangxi0662","name":"阳西","pinyin":"Yangxi","zip":"0662"},
+ {"label":"扬中Yangzhong0511","name":"扬中","pinyin":"Yangzhong","zip":"0511"},
+ {"label":"偃师Yanshi0379","name":"偃师","pinyin":"Yanshi","zip":"0379"},
+ {"label":"延寿Yanshou0451","name":"延寿","pinyin":"Yanshou","zip":"0451"},
+ {"label":"兖州Yanzhou0537","name":"兖州","pinyin":"Yanzhou","zip":"0537"},
+ {"label":"伊川Yichuan0379","name":"伊川","pinyin":"Yichuan","zip":"0379"},
+ {"label":"宜丰Yifeng0795","name":"宜丰","pinyin":"Yifeng","zip":"0795"},
+ {"label":"宜黄Yihuang0794","name":"宜黄","pinyin":"Yihuang","zip":"0794"},
+ {"label":"依兰Yilan0451","name":"依兰","pinyin":"Yilan","zip":"0451"},
+ {"label":"宜良Yiliang0871","name":"宜良","pinyin":"Yiliang","zip":"0871"},
+ {"label":"沂南Yinan0539","name":"沂南","pinyin":"Yinan","zip":"0539"},
+ {"label":"英德Yingde0763","name":"英德","pinyin":"Yingde","zip":"0763"},
+ {"label":"颍上Yingshang0558","name":"颍上","pinyin":"Yingshang","zip":"0558"},
+ {"label":"沂水Yishui0539","name":"沂水","pinyin":"Yishui","zip":"0539"},
+ {"label":"义乌Yiwu0579","name":"义乌","pinyin":"Yiwu","zip":"0579"},
+ {"label":"黟县Yixian0559","name":"黟县","pinyin":"Yixian","zip":"0559"},
+ {"label":"宜兴Yixing0510","name":"宜兴","pinyin":"Yixing","zip":"0510"},
+ {"label":"弋阳Yiyang0793","name":"弋阳","pinyin":"Yiyang","zip":"0793"},
+ {"label":"宜阳Yiyang0379","name":"宜阳","pinyin":"Yiyang","zip":"0379"},
+ {"label":"沂源Yiyuan0533","name":"沂源","pinyin":"Yiyuan","zip":"0533"},
+ {"label":"仪征Yizheng0514","name":"仪征","pinyin":"Yizheng","zip":"0514"},
+ {"label":"永安Yongan0598","name":"永安","pinyin":"Yongan","zip":"0598"},
+ {"label":"永川Yongchuan023","name":"永川","pinyin":"Yongchuan","zip":"023"},
+ {"label":"永春Yongchun0595","name":"永春","pinyin":"Yongchun","zip":"0595"},
+ {"label":"永登Yongdeng0931","name":"永登","pinyin":"Yongdeng","zip":"0931"},
+ {"label":"永定Yongding0597","name":"永定","pinyin":"Yongding","zip":"0597"},
+ {"label":"永丰Yongfeng0796","name":"永丰","pinyin":"Yongfeng","zip":"0796"},
+ {"label":"永吉Yongji0423","name":"永吉","pinyin":"Yongji","zip":"0423"},
+ {"label":"永嘉Yongjia0577","name":"永嘉","pinyin":"Yongjia","zip":"0577"},
+ {"label":"永康Yongkang0579","name":"永康","pinyin":"Yongkang","zip":"0579"},
+ {"label":"邕宁Yongning0771","name":"邕宁","pinyin":"Yongning","zip":"0771"},
+ {"label":"永泰Yongtai0591","name":"永泰","pinyin":"Yongtai","zip":"0591"},
+ {"label":"永新Yongxin0796","name":"永新","pinyin":"Yongxin","zip":"0796"},
+ {"label":"永修Yongxiu0792","name":"永修","pinyin":"Yongxiu","zip":"0792"},
+ {"label":"尤溪Youxi0598","name":"尤溪","pinyin":"Youxi","zip":"0598"},
+ {"label":"酉阳Youyang023","name":"酉阳","pinyin":"Youyang","zip":"023"},
+ {"label":"元氏Yuanshi0311","name":"元氏","pinyin":"Yuanshi","zip":"0311"},
+ {"label":"禹城Yucheng0534","name":"禹城","pinyin":"Yucheng","zip":"0534"},
+ {"label":"于都Yudu0797","name":"于都","pinyin":"Yudu","zip":"0797"},
+ {"label":"岳西Yuexi0556","name":"岳西","pinyin":"Yuexi","zip":"0556"},
+ {"label":"余干Yugan0793","name":"余干","pinyin":"Yugan","zip":"0793"},
+ {"label":"玉环Yuhuan0576","name":"玉环","pinyin":"Yuhuan","zip":"0576"},
+ {"label":"余江Yujiang0701","name":"余江","pinyin":"Yujiang","zip":"0701"},
+ {"label":"郁南Yunan0766","name":"郁南","pinyin":"Yunan","zip":"0766"},
+ {"label":"云安Yunan0766","name":"云安","pinyin":"Yunan","zip":"0766"},
+ {"label":"郓城Yuncheng0530","name":"郓城","pinyin":"Yuncheng","zip":"0530"},
+ {"label":"云和Yunhe0578","name":"云和","pinyin":"Yunhe","zip":"0578"},
+ {"label":"云霄Yunxiao0596","name":"云霄","pinyin":"Yunxiao","zip":"0596"},
+ {"label":"云阳Yunyang023","name":"云阳","pinyin":"Yunyang","zip":"023"},
+ {"label":"玉山Yushan0793","name":"玉山","pinyin":"Yushan","zip":"0793"},
+ {"label":"榆树Yushu0431","name":"榆树","pinyin":"Yushu","zip":"0431"},
+ {"label":"鱼台Yutai0537","name":"鱼台","pinyin":"Yutai","zip":"0537"},
+ {"label":"玉田Yutian0315","name":"玉田","pinyin":"Yutian","zip":"0315"},
+ {"label":"余姚Yuyao0574","name":"余姚","pinyin":"Yuyao","zip":"0574"},
+ {"label":"榆中Yuzhong0931","name":"榆中","pinyin":"Yuzhong","zip":"0931"},
+ {"label":"赞皇Zanhuang0311","name":"赞皇","pinyin":"Zanhuang","zip":"0311"},
+ {"label":"增城Zengcheng020","name":"增城","pinyin":"Zengcheng","zip":"020"},
+ {"label":"张家港Zhangjiagang0512","name":"张家港","pinyin":"Zhangjiagang","zip":"0512"},
+ {"label":"漳平Zhangping0597","name":"漳平","pinyin":"Zhangping","zip":"0597"},
+ {"label":"漳浦Zhangpu0596","name":"漳浦","pinyin":"Zhangpu","zip":"0596"},
+ {"label":"章丘Zhangqiu0531","name":"章丘","pinyin":"Zhangqiu","zip":"0531"},
+ {"label":"樟树Zhangshu0795","name":"樟树","pinyin":"Zhangshu","zip":"0795"},
+ {"label":"沾化Zhanhua0543","name":"沾化","pinyin":"Zhanhua","zip":"0543"},
+ {"label":"赵县Zhaoxian0311","name":"赵县","pinyin":"Zhaoxian","zip":"0311"},
+ {"label":"招远Zhaoyuan0535","name":"招远","pinyin":"Zhaoyuan","zip":"0535"},
+ {"label":"正定Zhengding0311","name":"正定","pinyin":"Zhengding","zip":"0311"},
+ {"label":"政和Zhenghe0599","name":"政和","pinyin":"Zhenghe","zip":"0599"},
+ {"label":"柘荣Zherong0593","name":"柘荣","pinyin":"Zherong","zip":"0593"},
+ {"label":"中牟Zhongmou0371","name":"中牟","pinyin":"Zhongmou","zip":"0371"},
+ {"label":"忠县Zhongxian023","name":"忠县","pinyin":"Zhongxian","zip":"023"},
+ {"label":"周宁Zhouning0593","name":"周宁","pinyin":"Zhouning","zip":"0593"},
+ {"label":"周至Zhouzhi029","name":"周至","pinyin":"Zhouzhi","zip":"029"},
+ {"label":"庄河Zhuanghe0411","name":"庄河","pinyin":"Zhuanghe","zip":"0411"},
+ {"label":"诸城Zhucheng0536","name":"诸城","pinyin":"Zhucheng","zip":"0536"},
+ {"label":"诸暨Zhuji0575","name":"诸暨","pinyin":"Zhuji","zip":"0575"},
+ {"label":"紫金Zijin0762","name":"紫金","pinyin":"Zijin","zip":"0762"},
+ {"label":"资溪Zixi0794","name":"资溪","pinyin":"Zixi","zip":"0794"},
+ {"label":"邹城Zoucheng0537","name":"邹城","pinyin":"Zoucheng","zip":"0537"},
+ {"label":"邹平Zouping0543","name":"邹平","pinyin":"Zouping","zip":"0543"},
+ {"label":"遵化Zunhua0315","name":"遵化","pinyin":"Zunhua","zip":"0315"}
+ ];
\ No newline at end of file
diff --git a/examples/pages/index-list/index.js b/examples/pages/index-list/index.js
new file mode 100644
index 0000000..3dd5773
--- /dev/null
+++ b/examples/pages/index-list/index.js
@@ -0,0 +1,31 @@
+import { cities } from './city';
+Page({
+ data : {
+ cities : []
+ },
+ onChange(event){
+ console.log(event.detail,'click right menu callback data')
+ },
+ onReady(){
+ let storeCity = new Array(26);
+ const words = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
+ words.forEach((item,index)=>{
+ storeCity[index] = {
+ key : item,
+ list : []
+ }
+ })
+ cities.forEach((item)=>{
+ let firstName = item.pinyin.substring(0,1);
+ let index = words.indexOf( firstName );
+ storeCity[index].list.push({
+ name : item.name,
+ key : firstName
+ });
+ })
+ this.data.cities = storeCity;
+ this.setData({
+ cities : this.data.cities
+ })
+ }
+});
\ No newline at end of file
diff --git a/examples/pages/index-list/index.json b/examples/pages/index-list/index.json
new file mode 100644
index 0000000..78ecd93
--- /dev/null
+++ b/examples/pages/index-list/index.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "index 索引选择器",
+ "usingComponents": {
+ "i-index": "../../dist/index/index",
+ "i-index-item": "../../dist/index-item/index"
+ }
+}
diff --git a/examples/pages/index-list/index.wxml b/examples/pages/index-list/index.wxml
new file mode 100644
index 0000000..6318cdd
--- /dev/null
+++ b/examples/pages/index-list/index.wxml
@@ -0,0 +1,19 @@
+
+
+
+
+ {{it.name}}
+
+
+
+
+
diff --git a/examples/pages/index-list/index.wxss b/examples/pages/index-list/index.wxss
new file mode 100644
index 0000000..1df2eef
--- /dev/null
+++ b/examples/pages/index-list/index.wxss
@@ -0,0 +1,9 @@
+.i-index-demo,page{
+ width:100%;
+ height:100%;
+}
+.i-index-demo-item{
+ padding:10px;
+ border-bottom:#ddd solid 1rpx;
+ font-size:14px;
+}
\ No newline at end of file
diff --git a/examples/pages/index/index.wxml b/examples/pages/index/index.wxml
index 9810a49..86b9464 100644
--- a/examples/pages/index/index.wxml
+++ b/examples/pages/index/index.wxml
@@ -25,15 +25,18 @@
+
+
-
+
+
@@ -43,6 +46,10 @@
+
+
+
+
@@ -54,4 +61,7 @@
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/examples/pages/list/index.wxml b/examples/pages/list/index.wxml
index c2c717e..b75bb06 100644
--- a/examples/pages/list/index.wxml
+++ b/examples/pages/list/index.wxml
@@ -29,14 +29,14 @@
-
+
-
+
@@ -46,4 +46,4 @@
-
\ No newline at end of file
+
diff --git a/examples/pages/load-more/index.js b/examples/pages/load-more/index.js
new file mode 100644
index 0000000..1b5d4ac
--- /dev/null
+++ b/examples/pages/load-more/index.js
@@ -0,0 +1,3 @@
+Page({
+
+});
diff --git a/examples/pages/load-more/index.json b/examples/pages/load-more/index.json
new file mode 100644
index 0000000..1616ef9
--- /dev/null
+++ b/examples/pages/load-more/index.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "LoadMore 页底提示",
+ "usingComponents": {
+ "i-load-more": "../../dist/load-more/index"
+ }
+}
diff --git a/examples/pages/load-more/index.wxml b/examples/pages/load-more/index.wxml
new file mode 100644
index 0000000..8532c3b
--- /dev/null
+++ b/examples/pages/load-more/index.wxml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/examples/pages/load-more/index.wxss b/examples/pages/load-more/index.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/examples/pages/notice-bar/index.wxml b/examples/pages/notice-bar/index.wxml
index 8e783b4..1d90f27 100644
--- a/examples/pages/notice-bar/index.wxml
+++ b/examples/pages/notice-bar/index.wxml
@@ -3,6 +3,11 @@
2018年世界杯,将于6月14日至7月15日举行
+
+
+ 2018年世界杯,将于6月14日至7月15日举行
+
+
2018年世界杯,将于6月14日至7月15日举行
@@ -17,4 +22,7 @@
2018年世界杯,将于6月14日至7月15日举行;2018年世界杯,将于6月14日至7月15日举行;
+
+ 2018年世界杯,将于6月14日至7月15日举行;2018年世界杯,将于6月14日至7月15日举行;
+
diff --git a/examples/pages/sticky/index.js b/examples/pages/sticky/index.js
new file mode 100644
index 0000000..be60555
--- /dev/null
+++ b/examples/pages/sticky/index.js
@@ -0,0 +1,14 @@
+Page({
+ data : {
+ scrollTop : 0
+ },
+ onChange(event){
+ console.log(event.detail,'click right menu callback data')
+ },
+ //页面滚动执行方式
+ onPageScroll(event){
+ this.setData({
+ scrollTop : event.scrollTop
+ })
+ }
+});
\ No newline at end of file
diff --git a/examples/pages/sticky/index.json b/examples/pages/sticky/index.json
new file mode 100644
index 0000000..5aaf443
--- /dev/null
+++ b/examples/pages/sticky/index.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "Sticky 吸顶容器",
+ "usingComponents": {
+ "i-sticky": "../../dist/sticky/index",
+ "i-sticky-item": "../../dist/sticky-item/index"
+ }
+}
diff --git a/examples/pages/sticky/index.wxml b/examples/pages/sticky/index.wxml
new file mode 100644
index 0000000..ef8a8e1
--- /dev/null
+++ b/examples/pages/sticky/index.wxml
@@ -0,0 +1,80 @@
+
+ 注: 1.由于组件内部不能使用onPageScroll,导致不能监听scrollTop值只能通过用户用props传递。
+
+
+ 2.在微信开发客户端显示的时候会有bug。不停计算scrollTop值不能同步
+
+
+
+
+
+ 逻辑层
+
+
+ 注册程序
+ 场景值
+ 注册页面
+ 路由
+ 模块化
+ API
+
+
+
+
+ 视图层
+
+
+ 注册程序
+ 场景值
+ 注册页面
+ 路由
+ 模块化
+ API
+
+
+
+
+ 自定义组件
+
+
+ 注册程序
+ 场景值
+ 注册页面
+ 路由
+ 模块化
+ API
+ 注册程序
+ 场景值
+ 注册页面
+ 路由
+ 模块化
+ API
+
+
+
+
+ 插件
+
+
+ 注册程序
+ 场景值
+ 注册页面
+ 路由
+ 模块化
+ API
+ 注册程序
+ 场景值
+ 注册页面
+ 路由
+ 模块化
+ API
+ 注册程序
+ 场景值
+ 注册页面
+ 路由
+ 模块化
+ API
+
+
+
+
diff --git a/examples/pages/sticky/index.wxss b/examples/pages/sticky/index.wxss
new file mode 100644
index 0000000..8da2f5a
--- /dev/null
+++ b/examples/pages/sticky/index.wxss
@@ -0,0 +1,15 @@
+.i-sticky-demo,page{
+ width:100%;
+ height:100%;
+}
+.i-sticky-demo-item{
+ padding:10px;
+ border-bottom:#ddd solid 1rpx;
+ font-size:14px;
+}
+.i-sticky-demo-des{
+ padding:0 15px;
+ margin-bottom:10px;
+ font-size:12px;
+ color:#ff9900;
+}
\ No newline at end of file
diff --git a/examples/pages/swipeout/index.js b/examples/pages/swipeout/index.js
new file mode 100644
index 0000000..664039c
--- /dev/null
+++ b/examples/pages/swipeout/index.js
@@ -0,0 +1,68 @@
+const { $Message } = require('../../dist/base/index');
+
+Page({
+ data : {
+ visible2: false,
+ //小程序没有refs,所以只能用动态布尔值控制关闭
+ toggle : false,
+ toggle2 : false,
+ actions2: [
+ {
+ name: '删除',
+ color: '#ed3f14'
+ }
+ ],
+ actions : [
+ {
+ name : '喜欢',
+ color : '#fff',
+ fontsize : '20',
+ width : 100,
+ icon : 'like',
+ background : '#ed3f14'
+ },
+ {
+ name : '返回',
+ width : 100,
+ color : '#80848f',
+ fontsize : '20',
+ icon : 'undo'
+ }
+ ]
+ },
+ handleCancel2 () {
+ this.setData({
+ visible2: false,
+ toggle : this.data.toggle ? false : true
+ });
+ console.log( this.data.toggle,111111111 )
+ },
+ handleClickItem2 () {
+ const action = [...this.data.actions2];
+ action[0].loading = true;
+
+ this.setData({
+ actions2: action
+ });
+
+ setTimeout(() => {
+ action[0].loading = false;
+ this.setData({
+ visible2: false,
+ actions2: action,
+ toggle: this.data.toggle ? false : true
+ });
+
+ }, 2000);
+ },
+ handlerCloseButton(){
+ this.setData({
+ toggle2: this.data.toggle2 ? false : true
+ });
+ },
+ actionsTap(){
+ this.setData({
+ visible2: true
+ });
+ }
+});
\ No newline at end of file
diff --git a/examples/pages/swipeout/index.json b/examples/pages/swipeout/index.json
new file mode 100644
index 0000000..18a3145
--- /dev/null
+++ b/examples/pages/swipeout/index.json
@@ -0,0 +1,11 @@
+{
+ "navigationBarTitleText": "Swipeout 滑动菜单",
+ "usingComponents": {
+ "i-swipeout": "../../dist/swipeout/index",
+ "i-cell-group": "../../dist/cell-group/index",
+ "i-cell": "../../dist/cell/index",
+ "i-card" : "../../dist/card/index",
+ "i-icon" : "../../dist/icon/index",
+ "i-action-sheet": "../../dist/action-sheet/index"
+ }
+}
diff --git a/examples/pages/swipeout/index.wxml b/examples/pages/swipeout/index.wxml
new file mode 100644
index 0000000..a164ebf
--- /dev/null
+++ b/examples/pages/swipeout/index.wxml
@@ -0,0 +1,104 @@
+
+ 基础用法
+
+ 注: 1、设置uncloseable为true时点击按钮不能关闭,必须联合toggle2来实现
+ 2、如果传递action的话必须传递width来设置每个按钮的宽度
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 自定义右侧Button
+ 注: 右侧必须设置固定宽度。默认宽度160px
+
+
+
+
+
+
+ 点赞
+ 分享
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 和actionsheet联合使用
+
+
+ 确定吗?
+ 删除后无法恢复哦
+
+
+
+
+
+
+
+
+ 第七个小矮人
+ 乐观善良的7个小矮人原本过着简单快乐的生活,不料诅咒公主的巫婆利用小矮人进入.
+
+
+
+
+
+
+
+
+
+ 自定义样式
+
+
+
+
+
+
+ 第七个小矮人
+ 乐观善良的7个小矮人原本过着简单快乐的生活,不料诅咒公主的巫婆利用小矮人进入.
+
+
+
+
\ No newline at end of file
diff --git a/examples/pages/swipeout/index.wxss b/examples/pages/swipeout/index.wxss
new file mode 100644
index 0000000..8a51f1c
--- /dev/null
+++ b/examples/pages/swipeout/index.wxss
@@ -0,0 +1,55 @@
+.i-swipeout-demo-item{
+ border-bottom:#333 solid 1px;
+}
+.i-cell-padding{
+ padding:5px 0px!important;
+ font-size:14px;
+}
+.i-swipeout-demo-title{
+ height:30px;
+ padding:0 15px;
+ line-height:30px;
+ margin-top:20px;
+ margin-bottom:5px;
+}
+.i-swipeout-demo-des{
+ padding:0 15px;
+ margin-bottom:10px;
+ font-size:12px;
+ color:#ff9900;
+}
+/*左中右结构*/
+.i-swipeout-image{
+ float:left;
+ width:40px;
+ height:40px;
+ line-height:40px;
+ text-align:center;
+ border-radius:40px;
+ background: #2d8cf0;
+}
+.i-swipeout-des{
+ margin-left:50px;
+}
+.i-swipeout-des-detail{
+ font-size:12px;
+ word-break:break-all;
+ color:#80848f;
+}
+
+
+/*自定义按钮*/
+.i-swipeout-demo-button-group{
+ height:100%;
+ width:100%;
+}
+.i-swipeout-demo-button{
+ width:70px;
+ float:left;
+ display: flex;
+ height:100%;
+ justify-content: center;
+ background:#2d8cf0;
+ color:#fff;
+ align-items:center;
+}
\ No newline at end of file
diff --git a/examples/project.config.json b/examples/project.config.json
index db865f6..c302988 100644
--- a/examples/project.config.json
+++ b/examples/project.config.json
@@ -12,9 +12,8 @@
},
"compileType": "miniprogram",
"libVersion": "1.9.98",
- "appid": "wx78bf0b9dc6e371c7",
+ "appid": "wx307a52ca028d3c07",
"projectname": "iview-weapp",
- "isGameTourist": true,
"condition": {
"search": {
"current": -1,
diff --git a/src/button/index.js b/src/button/index.js
index 4fdf261..f0e9b3e 100644
--- a/src/button/index.js
+++ b/src/button/index.js
@@ -7,6 +7,10 @@ Component({
type: String,
value: '',
},
+ inline: {
+ type: Boolean,
+ value: false
+ },
// default, large, small
size: {
type: String,
@@ -59,6 +63,18 @@ Component({
if (this.data.disabled) return false;
this.triggerEvent('click');
+ },
+ bindgetuserinfo({ detail = {} } = {}) {
+ this.triggerEvent('getuserinfo', detail);
+ },
+ bindcontact({ detail = {} } = {}) {
+ this.triggerEvent('contact', detail);
+ },
+ bindgetphonenumber({ detail = {} } = {}) {
+ this.triggerEvent('getphonenumber', detail);
+ },
+ binderror({ detail = {} } = {}) {
+ this.triggerEvent('error', detail);
}
}
});
diff --git a/src/button/index.less b/src/button/index.less
index ec3d5d4..c1e3e2f 100644
--- a/src/button/index.less
+++ b/src/button/index.less
@@ -44,6 +44,10 @@
margin: 10px;
+ &-hover{
+ opacity: 0.9;
+ }
+
&-long{
border-radius: 0;
margin: 0;
@@ -116,6 +120,10 @@
color: @btn-disable-color !important;
background: @btn-disable-bg !important;
}
+
+ &-inline{
+ display: inline-block;
+ }
}
@keyframes btn-spin {
0% {
diff --git a/src/button/index.wxml b/src/button/index.wxml
index c0c6c63..e154eee 100644
--- a/src/button/index.wxml
+++ b/src/button/index.wxml
@@ -1,5 +1,6 @@
\ No newline at end of file
diff --git a/src/collapse-item/index.js b/src/collapse-item/index.js
new file mode 100644
index 0000000..bc415c1
--- /dev/null
+++ b/src/collapse-item/index.js
@@ -0,0 +1,46 @@
+Component({
+ externalClasses: ['i-class-content', 'i-class-title', 'i-class'],
+
+ relations: {
+ '../collapse/index': {
+ type: 'parent',
+ linked: function (target) {
+ const options = {
+ accordion: target.data.accordion
+ }
+ if (target.data.name === this.data.name) {
+ options.showContent = 'i-collapse-item-show-content';
+ }
+ this.setData(options);
+ }
+ }
+ },
+
+ properties: {
+ title: String,
+ name: String
+ },
+
+ data: {
+ showContent: '',
+ accordion: false
+ },
+
+ options: {
+ multipleSlots: true
+ },
+
+ methods: {
+ trigger(e) {
+ const data = this.data;
+ if (data.accordion) {
+ this.triggerEvent('collapse', {name: data.name}, {composed: true, bubbles: true});
+ } else {
+ this.setData({
+ showContent: data.showContent ? '' : 'i-collapse-item-show-content'
+ });
+ }
+ },
+ }
+});
+
diff --git a/src/collapse-item/index.json b/src/collapse-item/index.json
new file mode 100644
index 0000000..54575da
--- /dev/null
+++ b/src/collapse-item/index.json
@@ -0,0 +1,7 @@
+
+{
+ "component": true,
+ "usingComponents": {
+ "i-icon": "../icon/index"
+ }
+}
diff --git a/src/collapse-item/index.less b/src/collapse-item/index.less
new file mode 100644
index 0000000..467b424
--- /dev/null
+++ b/src/collapse-item/index.less
@@ -0,0 +1,32 @@
+@import "../styles/_base.less";
+@import "../styles/_mixins.less";
+
+.i-collapse-item {
+ padding: 2px 8px;
+ border-top: 1px solid @border-color-base;
+
+ &-title{
+ vertical-align: middle;
+ &-wrap{
+ padding: 2px 0 0;
+ }
+ }
+
+ &-content{
+ padding: 6px;
+ display: none;
+ }
+
+ &-show-content{
+ display: block;
+ }
+
+ &-arrow{
+ transition: transform @transition-time @ease-in-out;
+ &-show{
+ transition: transform @transition-time @ease-in-out;
+ transform: rotate(90deg);
+ }
+ }
+}
+
diff --git a/src/collapse-item/index.wxml b/src/collapse-item/index.wxml
new file mode 100644
index 0000000..ba22b0a
--- /dev/null
+++ b/src/collapse-item/index.wxml
@@ -0,0 +1,9 @@
+
+
+
+ {{title}}
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collapse/index.js b/src/collapse/index.js
new file mode 100644
index 0000000..acc1455
--- /dev/null
+++ b/src/collapse/index.js
@@ -0,0 +1,31 @@
+Component({
+ externalClasses: ['i-class'],
+
+ relations: {
+ '../collapse-item/index': {
+ type: 'child'
+ }
+ },
+ properties: {
+ name: String,
+ accordion: Boolean
+ },
+ methods: {
+ clickfn(e) {
+ const params = e.detail;
+ const allList = this.getRelationNodes('../collapse-item/index');
+ allList.forEach((item) => {
+ if (params.name === item.data.name) {
+ item.setData({
+ showContent: 'i-collapse-item-show-content'
+ });
+ } else {
+ item.setData({
+ showContent: ''
+ });
+ }
+ });
+ },
+ }
+});
+
diff --git a/src/collapse/index.json b/src/collapse/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/src/collapse/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/src/collapse/index.less b/src/collapse/index.less
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/collapse/index.less
@@ -0,0 +1 @@
+
diff --git a/src/collapse/index.wxml b/src/collapse/index.wxml
new file mode 100644
index 0000000..0f379f7
--- /dev/null
+++ b/src/collapse/index.wxml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/src/count-down/index.js b/src/count-down/index.js
new file mode 100644
index 0000000..f1da533
--- /dev/null
+++ b/src/count-down/index.js
@@ -0,0 +1,90 @@
+Component({
+ properties: {
+ target: Number,
+ showDay: Boolean,
+ callback: String,
+ format: Array,
+ clearTimer: Boolean
+ },
+ externalClasses: ['countdown-class'],
+ data: {
+ time: '',
+ resultFormat: [],
+ changeFormat: false
+ },
+ ready() {
+ this.getFormat();
+
+ },
+ methods: {
+ getFormat() {
+ const data = this.data;
+ const len = data.format.length;
+
+ if (!data.showDay) data.resultFormat.push('');
+
+ if (len >= 3) {
+ for (let i = 0; i < len; i++) {
+ if (data.resultFormat.length >= 4) break;
+ if (data.format[i]) {
+ data.resultFormat.push(data.format[i].toString());
+ }
+ }
+
+ if (data.resultFormat.length >= 4) data.changeFormat = true;
+ }
+
+ this.getLastTime();
+ },
+ init() {
+ const self = this;
+ setTimeout(function () {
+ self.getLastTime.call(self);
+ }, 1000);
+ },
+ getLastTime() {
+ const data = this.data;
+ const gapTime = Math.ceil((data.target - new Date().getTime()) / 1000);
+ let result = '';
+ let time = '00:00:00';
+ let day = '00';
+ const format = data.resultFormat;
+
+ if (gapTime > 0) {
+ day = this.formatNum(parseInt(gapTime / 86400));
+ let lastTime = gapTime % 86400;
+ const hour = this.formatNum(parseInt(lastTime / 3600));
+ lastTime = lastTime % 3600;
+ const minute = this.formatNum(parseInt(lastTime / 60));
+ const second = this.formatNum(lastTime % 60);
+
+ if (data.changeFormat) time = `${hour}${format[1]}${minute}${format[2]}${second}${format[3]}`;
+ else time = `${hour}:${minute}:${second}`;
+
+ if (!data.clearTimer) this.init.call(this);
+ } else {
+ this.endfn();
+ }
+
+ if (data.showDay) {
+ if (data.changeFormat) {
+ result = `${day}${format[0]} ${time}`;
+ } else {
+ result = `${day}d ${time}`;
+ }
+ } else {
+ result = time;
+ }
+ this.setData({
+ time: result
+ });
+
+ },
+ formatNum(num) {
+ return num > 9 ? num : `0${num}`;
+ },
+ endfn() {
+ this.triggerEvent('callback', {});
+ }
+ }
+});
diff --git a/src/count-down/index.json b/src/count-down/index.json
new file mode 100644
index 0000000..74f1315
--- /dev/null
+++ b/src/count-down/index.json
@@ -0,0 +1,4 @@
+
+{
+ "component": true
+}
diff --git a/src/count-down/index.less b/src/count-down/index.less
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/count-down/index.less
@@ -0,0 +1 @@
+
diff --git a/src/count-down/index.wxml b/src/count-down/index.wxml
new file mode 100644
index 0000000..e4bec57
--- /dev/null
+++ b/src/count-down/index.wxml
@@ -0,0 +1,4 @@
+
+ {{time}}
+
+
diff --git a/src/divider/index.js b/src/divider/index.js
new file mode 100644
index 0000000..6b0e448
--- /dev/null
+++ b/src/divider/index.js
@@ -0,0 +1,25 @@
+Component({
+ externalClasses: ['i-class'],
+ properties: {
+ content: {
+ type: String,
+ value: ''
+ },
+ height : {
+ type: Number,
+ value: 48
+ },
+ color : {
+ type : String,
+ value : '#80848f'
+ },
+ lineColor : {
+ type : String,
+ value : '#e9eaec'
+ },
+ size : {
+ type: String,
+ value: 12
+ }
+ }
+});
diff --git a/src/divider/index.json b/src/divider/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/src/divider/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/src/divider/index.less b/src/divider/index.less
new file mode 100644
index 0000000..13026c0
--- /dev/null
+++ b/src/divider/index.less
@@ -0,0 +1,27 @@
+@import "../styles/_base.less";
+@import "../styles/_mixins.less";
+
+.i-divider{
+ width: 100%;
+ text-align: center;
+ font-size: 12px;
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ &-line{
+ position: absolute;
+ left: 0;
+ width: 100%;
+ height: 1rpx;
+ background-color: @background-color-base;
+ top: 50%;
+ }
+ &-content{
+ background: #ffffff;
+ position: relative;
+ z-index: 1;
+ display: inline-block;
+ padding: 0 10px;
+ }
+}
\ No newline at end of file
diff --git a/src/divider/index.wxml b/src/divider/index.wxml
new file mode 100644
index 0000000..b7111d3
--- /dev/null
+++ b/src/divider/index.wxml
@@ -0,0 +1,19 @@
+
+
+ {{content}}
+
+
+
+
+
+
+
+ module.exports = {
+ getStyle : function(color,size,height){
+ var color = 'color:' + color +';';
+ var size = 'font-size:' + size + 'px;';
+ var height = 'height:' + height+'px;'
+ return color + size + height;
+ }
+ }
+
diff --git a/src/drawer/index.less b/src/drawer/index.less
index ceca160..4b46b68 100644
--- a/src/drawer/index.less
+++ b/src/drawer/index.less
@@ -9,6 +9,7 @@
visibility: visible;
& .@{drawer-prefix-cls}-mask {
display: block;
+ opacity: 1;
}
& .@{drawer-prefix-cls}-container {
opacity: 1;
@@ -21,7 +22,8 @@
}
}
&-mask {
- display: none;
+ //display: none;
+ opacity: 0;
position: fixed;
top: 0;
left: 0;
@@ -29,6 +31,7 @@
bottom: 0;
z-index: 6;
background: rgba(0, 0, 0, 0.6);
+ transition: all 0.3s ease-in-out;
}
&-container {
position: fixed;
@@ -36,7 +39,7 @@
top: 50%;
transform: translate3d(-50%, -50%, 0);
transform-origin: center;
- transition: all 0.4s ease;
+ transition: all 0.3s ease-in-out;
z-index: 7;
opacity: 0;
}
diff --git a/src/grid-label/index.wxml b/src/grid-label/index.wxml
index 9d958e1..7ab5a8a 100644
--- a/src/grid-label/index.wxml
+++ b/src/grid-label/index.wxml
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/icon/index.js b/src/icon/index.js
index ebbe541..eb43ab9 100644
--- a/src/icon/index.js
+++ b/src/icon/index.js
@@ -6,6 +6,10 @@ Component({
type: String,
value: ''
},
+ custom: {
+ type: String,
+ value: ''
+ },
size: {
type: Number,
value: 14
diff --git a/src/icon/index.wxml b/src/icon/index.wxml
index 1019b8f..d689bc5 100644
--- a/src/icon/index.wxml
+++ b/src/icon/index.wxml
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/index-item/index.js b/src/index-item/index.js
new file mode 100644
index 0000000..ed818df
--- /dev/null
+++ b/src/index-item/index.js
@@ -0,0 +1,32 @@
+Component({
+ externalClasses: ['i-class'],
+ properties : {
+ name : {
+ type : String,
+ value : ''
+ }
+ },
+ relations : {
+ '../index/index' : {
+ type : 'parent'
+ }
+ },
+ data : {
+ top : 0,
+ height : 0,
+ currentName : ''
+ },
+ methods: {
+ updateDataChange() {
+ const className = '.i-index-item';
+ const query = wx.createSelectorQuery().in(this);
+ query.select( className ).boundingClientRect((res)=>{
+ this.setData({
+ top : res.top,
+ height : res.height,
+ currentName : this.data.name
+ })
+ }).exec()
+ }
+ }
+})
\ No newline at end of file
diff --git a/src/index-item/index.json b/src/index-item/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/src/index-item/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/src/index-item/index.less b/src/index-item/index.less
new file mode 100644
index 0000000..d15cda8
--- /dev/null
+++ b/src/index-item/index.less
@@ -0,0 +1,17 @@
+@import "../styles/_base.less";
+@import "../styles/_mixins.less";
+
+.i-index{
+ &-item-header{
+ height: 30px;
+ line-height: 30px;
+ background: #eee;
+ font-size: 14px;
+ padding-left: 10px;
+ width: 100%;
+ box-sizing: border-box;
+ }
+ &-item-content{
+ font-size: 14px;
+ }
+}
\ No newline at end of file
diff --git a/src/index-item/index.wxml b/src/index-item/index.wxml
new file mode 100644
index 0000000..8986c8d
--- /dev/null
+++ b/src/index-item/index.wxml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+ module.exports = {
+
+ }
+
diff --git a/src/index/index.js b/src/index/index.js
new file mode 100644
index 0000000..c556f19
--- /dev/null
+++ b/src/index/index.js
@@ -0,0 +1,158 @@
+Component({
+ externalClasses: ['i-class'],
+ properties : {
+ height : {
+ type : String,
+ value : '300'
+ },
+ itemHeight : {
+ type : Number,
+ value : 18
+ }
+ },
+ relations : {
+ '../index-item/index' : {
+ type : 'child',
+ linked(){
+ this._updateDataChange();
+ },
+ linkChanged () {
+ this._updateDataChange();
+ },
+ unlinked () {
+ this._updateDataChange();
+ }
+ }
+ },
+ data : {
+ scrollTop : 0,
+ fixedData : [],
+ current : 0,
+ timer : null,
+ startTop : 0,
+ itemLength : 0,
+ currentName : '',
+ isTouches : false
+ },
+ methods : {
+ loop(){},
+ _updateDataChange( ){
+ const indexItems = this.getRelationNodes('../index-item/index');
+ const len = indexItems.length;
+ const fixedData = this.data.fixedData;
+ /*
+ * 使用函数节流限制重复去设置数组内容进而限制多次重复渲染
+ * 暂时没有研究微信在渲染的时候是否会进行函数节流
+ */
+ if (len > 0) {
+
+ if( this.data.timer ){
+ clearTimeout( this.data.timer )
+ this.setData({
+ timer : null
+ })
+ }
+
+ this.data.timer = setTimeout(()=>{
+ const data = [];
+ indexItems.forEach((item) => {
+ if( item.data.name && fixedData.indexOf( item.data.name ) === -1 ){
+ data.push(item.data.name);
+ item.updateDataChange();
+ }
+ })
+ this.setData({
+ fixedData : data,
+ itemLength : indexItems.length
+ })
+ //组件加载完成之后重新设置顶部高度
+ this.setTouchStartVal();
+ },0);
+ this.setData({
+ timer : this.data.timer
+ })
+
+ }
+ },
+ handlerScroll(event){
+ const detail = event.detail;
+ const scrollTop = detail.scrollTop;
+ const indexItems = this.getRelationNodes('../index-item/index');
+ indexItems.forEach((item,index)=>{
+ let data = item.data;
+ let offset = data.top + data.height;
+ if( scrollTop < offset && scrollTop >= data.top ){
+ this.setData({
+ current : index,
+ currentName : data.currentName
+ })
+ }
+ })
+ },
+ getCurrentItem(index){
+ const indexItems = this.getRelationNodes('../index-item/index');
+ let result = {};
+ result = indexItems[index].data;
+ result.total = indexItems.length;
+ return result;
+ },
+ triggerCallback(options){
+ this.triggerEvent('change',options)
+ },
+ handlerFixedTap(event){
+ const eindex = event.currentTarget.dataset.index;
+ const item = this.getCurrentItem(eindex);
+ this.setData({
+ scrollTop : item.top,
+ currentName : item.currentName,
+ isTouches : true
+ })
+ this.triggerCallback({
+ index : eindex,
+ current : item.currentName
+ })
+ },
+ handlerTouchMove(event){
+ const data = this.data;
+ const touches = event.touches[0] || {};
+ const pageY = touches.pageY;
+ const rest = pageY - data.startTop;
+ let index = Math.ceil( rest/data.itemHeight );
+ index = index >= data.itemLength ? data.itemLength -1 : index;
+ const movePosition = this.getCurrentItem(index);
+
+ /*
+ * 当touch选中的元素和当前currentName不相等的时候才震动一下
+ * 微信震动事件
+ */
+ if( movePosition.name !== this.data.currentName ){
+ wx.vibrateShort();
+ }
+
+ this.setData({
+ scrollTop : movePosition.top,
+ currentName : movePosition.name,
+ isTouches : true
+ })
+
+ this.triggerCallback({
+ index : index,
+ current : movePosition.name
+ })
+ },
+ handlerTouchEnd(){
+ this.setData({
+ isTouches : false
+ })
+ },
+ setTouchStartVal(){
+ const className = '.i-index-fixed';
+ const query = wx.createSelectorQuery().in(this);
+ query.select( className ).boundingClientRect((res)=>{
+ this.setData({
+ startTop : res.top
+ })
+ }).exec()
+ }
+ }
+})
\ No newline at end of file
diff --git a/src/index/index.json b/src/index/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/src/index/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/src/index/index.less b/src/index/index.less
new file mode 100644
index 0000000..6581f03
--- /dev/null
+++ b/src/index/index.less
@@ -0,0 +1,58 @@
+@import "../styles/_base.less";
+@import "../styles/_mixins.less";
+
+.i-index{
+ width: 100%;
+ height: 100%;
+ &-line{
+ position: absolute;
+ left: 0;
+ width: 100%;
+ height: 1rpx;
+ background-color: @background-color-base;
+ top: 50%;
+ }
+ &-content{
+ background: #ffffff;
+ position: relative;
+ z-index: 1;
+ display: inline-block;
+ padding: 0 10px;
+ }
+ &-fixed{
+ position: fixed;
+ right: 0;
+ top: 50%;
+ z-index: 10;
+ padding-left:10px;
+ transform: translateY(-50%);
+ }
+ &-fixed-item{
+ display: block;
+ height: 18px;
+ line-height: 18px;
+ padding: 0 5px;
+ text-align: center;
+ color: @primary-color;
+ font-size: 12px;
+ border-radius: 50%;
+ }
+ &-fixed-item-current{
+ background:@primary-color;
+ color: #fff;
+ }
+ &-tooltip{
+ position: fixed;
+ left: 50%;
+ top: 50%;
+ transform: translate3d(-50%,-50%,0);
+ background: rgba(0,0,0,.7);
+ color: #fff;
+ font-size: 24px;
+ border-radius: 50%;
+ width: 80px;
+ height: 80px;
+ line-height: 80px;
+ text-align: center;
+ }
+}
\ No newline at end of file
diff --git a/src/index/index.wxml b/src/index/index.wxml
new file mode 100644
index 0000000..f83d847
--- /dev/null
+++ b/src/index/index.wxml
@@ -0,0 +1,38 @@
+
+
+
+
+
+ {{item}}
+
+
+ {{currentName}}
+
+
+
+ module.exports = {
+ setScrollStyle : function(height){
+ var units = ['%','px','rem','rpx','em','rem'];
+ var hasUnits = false;
+ for( var i = 0; i < units.length;i++ ){
+ var u = units[i];
+ if( height.indexOf( u ) > -1 ){
+ hasUnits = true;
+ break;
+ }
+ }
+ return 'height:'+ ( hasUnits ? height : height+'px' );
+ }
+ }
+
diff --git a/src/load-more/index.js b/src/load-more/index.js
new file mode 100644
index 0000000..d0cd46c
--- /dev/null
+++ b/src/load-more/index.js
@@ -0,0 +1,14 @@
+Component({
+ externalClasses: ['i-class'],
+
+ properties: {
+ loading: {
+ type: Boolean,
+ value: true
+ },
+ tip: {
+ type: String,
+ value: ''
+ }
+ },
+});
diff --git a/src/load-more/index.json b/src/load-more/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/src/load-more/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/src/load-more/index.less b/src/load-more/index.less
new file mode 100644
index 0000000..ebf07c1
--- /dev/null
+++ b/src/load-more/index.less
@@ -0,0 +1,80 @@
+@import "../styles/_base.less";
+@import "../styles/_mixins.less";
+
+.i-load-more{
+ width: 65%;
+ margin: 1.5em auto;
+ line-height: 1.6em;
+ font-size: 14px;
+ text-align: center;
+
+ &-loading{
+ display: inline-block;
+ margin-right: 12px;
+ vertical-align: middle;
+ width: 14px;
+ height: 14px;
+ background: transparent;
+ border-radius: 50%;
+ border: 2px solid @border-color-split;
+ border-color: @border-color-split @border-color-split @border-color-split @primary-color;
+ animation: btn-spin 0.6s linear;
+ animation-iteration-count: infinite;
+ }
+
+ &-tip{
+ display: inline-block;
+ vertical-align: middle;
+ color: @text-color;
+ }
+
+ &-line{
+ border-top: 1px solid @border-color-base ;
+ //margin-top: 2.4em;
+ display: flex;
+ border-top: 0;
+ &::before{
+ position: relative;
+ top: -1px;
+ -webkit-box-flex: 1;
+ -webkit-flex: 1;
+ flex: 1;
+ content: '';
+ border-top: 1px solid @border-color-base;
+ }
+ &::after{
+ position: relative;
+ top: -1px;
+ -webkit-box-flex: 1;
+ -webkit-flex: 1;
+ flex: 1;
+ content: '';
+ border-top: 1px solid @border-color-base;
+ }
+ }
+ &-line &-tip{
+ position: relative;
+ top: -0.9em;
+ padding: 0 .55em;
+ }
+
+ &-empty{
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background-color: #E5E5E5;
+ display: inline-block;
+ position: relative;
+ vertical-align: 0;
+ top: -0.16em;
+ }
+}
+
+@keyframes btn-spin {
+ 0% {
+ transform: rotate(0);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
\ No newline at end of file
diff --git a/src/load-more/index.wxml b/src/load-more/index.wxml
new file mode 100644
index 0000000..66571af
--- /dev/null
+++ b/src/load-more/index.wxml
@@ -0,0 +1,8 @@
+
+
+
+ {{ tip }}
+ 正在加载
+
+
+
\ No newline at end of file
diff --git a/src/notice-bar/index.js b/src/notice-bar/index.js
index 3deaa81..7043dbd 100644
--- a/src/notice-bar/index.js
+++ b/src/notice-bar/index.js
@@ -17,6 +17,21 @@ Component({
loop: {
type: Boolean,
value: false
+ },
+ // 背景颜色
+ backgroundcolor: {
+ type: String,
+ value: '#fefcec'
+ },
+ // 字体及图标颜色
+ color: {
+ type: String,
+ value: '#f76a24'
+ },
+ // 滚动速度
+ speed: {
+ type: Number,
+ value: 1000
}
},
@@ -41,7 +56,7 @@ Component({
initAnimation() {
wx.createSelectorQuery().in(this).select('.i-noticebar-content-wrap').boundingClientRect((wrapRect) => {
wx.createSelectorQuery().in(this).select('.i-noticebar-content').boundingClientRect((rect) => {
- const duration = rect.width / 40 * 1000;
+ const duration = rect.width / 40 * this.data.speed;
const animation = wx.createAnimation({
duration: duration,
timingFunction: "linear",
diff --git a/src/notice-bar/index.wxml b/src/notice-bar/index.wxml
index 41b3135..5de1e11 100644
--- a/src/notice-bar/index.wxml
+++ b/src/notice-bar/index.wxml
@@ -1,9 +1,9 @@
-
-
+
+
-
+
diff --git a/src/sticky-item/index.js b/src/sticky-item/index.js
new file mode 100644
index 0000000..4fc3dbe
--- /dev/null
+++ b/src/sticky-item/index.js
@@ -0,0 +1,40 @@
+Component({
+ externalClasses: ['i-class'],
+ options: {
+ multipleSlots: true
+ },
+ relations : {
+ '../sticky/index' : {
+ type : 'parent'
+ }
+ },
+ data : {
+ top : 0,
+ height : 0,
+ isFixed : false,
+ index : -1,
+ },
+ methods: {
+ updateScrollTopChange(scrollTop){
+ const data = this.data;
+ const top = data.top;
+ const height = data.height;
+ this.setData({
+ isFixed : ( scrollTop >= top && scrollTop < top + height ) ? true : false
+ })
+ },
+ updateDataChange(index) {
+ const className = '.i-sticky-item';
+ const query = wx.createSelectorQuery().in(this);
+ query.select( className ).boundingClientRect((res)=>{
+ if( res ){
+ this.setData({
+ top : res.top,
+ height : res.height,
+ index : index
+ })
+ }
+ }).exec()
+ }
+ }
+})
\ No newline at end of file
diff --git a/src/sticky-item/index.json b/src/sticky-item/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/src/sticky-item/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/src/sticky-item/index.less b/src/sticky-item/index.less
new file mode 100644
index 0000000..d9c8d42
--- /dev/null
+++ b/src/sticky-item/index.less
@@ -0,0 +1,27 @@
+@import "../styles/_base.less";
+@import "../styles/_mixins.less";
+
+.i-sticky{
+ &-item-header{
+ background: #eee;
+ font-size: 14px;
+ width: 100%;
+ height: 32px;
+ line-height: 32px;
+ }
+ &-item-content{
+ font-size: 14px;
+ }
+ &-title{
+ width: 100%;
+ padding: 0 15px;
+ box-sizing: border-box;
+ background: #eee;
+ }
+ &-fixed{
+ .i-sticky-title{
+ position: fixed;
+ top: 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/sticky-item/index.wxml b/src/sticky-item/index.wxml
new file mode 100644
index 0000000..613a5c0
--- /dev/null
+++ b/src/sticky-item/index.wxml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
diff --git a/src/sticky/index.js b/src/sticky/index.js
new file mode 100644
index 0000000..546aa4c
--- /dev/null
+++ b/src/sticky/index.js
@@ -0,0 +1,63 @@
+Component({
+ externalClasses: ['i-class'],
+ properties : {
+ scrollTop : {
+ type : Number,
+ observer(val){
+ this._updateScrollTopChange();
+ }
+ }
+ },
+ relations : {
+ '../sticky-item/index' : {
+ type : 'child',
+ linked(){
+ this._updateDataChange();
+ },
+ linkChanged () {
+ this._updateDataChange();
+ },
+ unlinked () {
+ this._updateDataChange();
+ }
+ }
+ },
+ data : {
+ timer : null,
+ itemLength : 0,
+ },
+ methods : {
+ _updateScrollTopChange(){
+ const stickies = this.getRelationNodes('../sticky-item/index');
+ if( stickies.length > 0 ){
+ stickies.forEach((item) => {
+ if( item ){
+ item.updateScrollTopChange( this.data.scrollTop );
+ }
+ })
+ }
+ },
+ _updateDataChange( ){
+ const stickies = this.getRelationNodes('../sticky-item/index');
+ if( stickies.length > 0 ){
+ if( this.data.timer ){
+ clearTimeout( this.data.timer )
+ this.setData({
+ timer : null
+ })
+ }
+ this.data.timer = setTimeout(()=>{
+ stickies.forEach((item,index) => {
+ if( item ){
+ item.updateDataChange(index);
+ }
+ })
+ },0)
+ this.setData({
+ timer : this.data.timer
+ })
+ }
+ }
+ }
+
+})
\ No newline at end of file
diff --git a/src/sticky/index.json b/src/sticky/index.json
new file mode 100644
index 0000000..467ce29
--- /dev/null
+++ b/src/sticky/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
diff --git a/src/sticky/index.less b/src/sticky/index.less
new file mode 100644
index 0000000..e69de29
diff --git a/src/sticky/index.wxml b/src/sticky/index.wxml
new file mode 100644
index 0000000..aee0c63
--- /dev/null
+++ b/src/sticky/index.wxml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/src/swipeout/index.js b/src/swipeout/index.js
new file mode 100644
index 0000000..b23748c
--- /dev/null
+++ b/src/swipeout/index.js
@@ -0,0 +1,161 @@
+ /*
+* touch事件判断方式
+* https://github.com/madrobby/zepto/blob/master/src/touch.js#files
+*/
+function swipeDirection(x1, x2, y1, y2) {
+ return Math.abs(x1 - x2) >=
+ Math.abs(y1 - y2) ? (x1 - x2 > 0 ? 'Left' : 'Right') : (y1 - y2 > 0 ? 'Up' : 'Down')
+}
+
+Component({
+ externalClasses: ['i-class'],
+ properties: {
+ actions: {
+ value: [],
+ type: Array,
+ observer : '_updateButtonSize'
+ },
+ unclosable : {
+ value : false,
+ type : Boolean
+ },
+ toggle : {
+ value : false,
+ type : Boolean,
+ observer : 'closeButtonGroup'
+ },
+ operateWidth : {
+ type : Number,
+ value : 160
+ }
+ },
+ options: {
+ // 在组件定义时的选项中启用多slot支持
+ multipleSlots: true
+ },
+ data : {
+ //touch start position
+ tStart : {
+ pageX : 0,
+ pageY : 0
+ },
+ //限制滑动距离
+ limitMove : 0,
+ //element move position
+ position : {
+ pageX : 0,
+ pageY : 0
+ }
+ },
+ methods : {
+ //阻止事件冒泡
+ loop(){},
+ _updateButtonSize(){
+ const actions = this.data.actions;
+ if( actions.length > 0 ){
+ const query = wx.createSelectorQuery().in(this);
+ let limitMovePosition = 0;
+ actions.forEach(item => {
+ limitMovePosition += item.width || 0;
+ });
+ this.data.limitMove = limitMovePosition;
+ /*
+ * 动态获取每个传进值的按钮尺寸不能正确获取,在安卓上少了6px
+ * 暂时实现需要在actions里面传递宽度
+ * 需要后期调研
+ */
+ //query.selectAll('.i-swipeout-button-right-item').boundingClientRect((rects)=>{
+ // if( rects ){
+ // console.log(rects,1111111)
+ // rects.forEach(item => {
+ // limitMovePosition += item.width;
+ // });
+ // this.data.limitMove = limitMovePosition;
+ // console.log(limitMovePosition,111111111)
+ // }
+ // }).exec()
+ }else{
+ this.data.limitMove = this.data.operateWidth;
+
+ }
+ },
+ handlerTouchstart(event){
+ const touches = event.touches ? event.touches[0] : {};
+ const tStart = this.data.tStart;
+ if( touches ){
+ for( let i in tStart ){
+ if( touches[i] ){
+ tStart[i] = touches[i];
+ }
+ }
+ }
+ },
+ swipper(touches){
+ const data = this.data;
+ const start = data.tStart;
+ const spacing = {
+ pageX : touches.pageX - start.pageX,
+ pageY : touches.pageY - start.pageY
+ }
+ if( data.limitMove < Math.abs( spacing.pageX ) ){
+ spacing.pageX = -data.limitMove;
+
+ }
+ this.setData({
+ 'position' : spacing
+ })
+ },
+ handlerTouchmove(event){
+ const start = this.data.tStart;
+ const touches = event.touches ? event.touches[0] : {};
+ if( touches ){
+ const direction = swipeDirection( start.pageX,touches.pageX,start.pageY,touches.pageY );
+ if( direction === 'Left' ){
+ this.swipper( touches );
+ }
+ }
+ },
+ handlerTouchend(event){
+ const start = this.data.tStart;
+ const touches = event.changedTouches ? event.changedTouches[0] : {};
+ if( touches ){
+ const direction = swipeDirection( start.pageX,touches.pageX,start.pageY,touches.pageY );
+ const spacing = {
+ pageX : touches.pageX - start.pageX,
+ pageY : touches.pageY - start.pageY
+ }
+ if( Math.abs( spacing.pageX ) >= 40 && direction === "Left" ){
+ spacing.pageX = spacing.pageX < 0 ? - this.data.limitMove : this.data.limitMove;
+ }else{
+ spacing.pageX = 0;
+ }
+ this.setData({
+ 'position' : spacing
+ })
+ }
+ },
+ handlerButton(event){
+ if( !this.data.unclosable ){
+ this.closeButtonGroup();
+ }
+ const dataset = event.currentTarget.dataset;
+ this.triggerEvent('change',{
+ index : dataset.index
+ })
+ },
+ closeButtonGroup(){
+ this.setData({
+ 'position' : {pageX : 0,pageY : 0}
+ })
+ },
+ //控制自定义组件
+ handlerParentButton(event){
+ if( !this.data.unclosable ){
+ this.closeButtonGroup();
+ }
+ }
+ },
+ ready(){
+ this._updateButtonSize();
+ }
+});
diff --git a/src/swipeout/index.json b/src/swipeout/index.json
new file mode 100644
index 0000000..c63f9a6
--- /dev/null
+++ b/src/swipeout/index.json
@@ -0,0 +1,7 @@
+{
+ "component": true,
+ "usingComponents": {
+ "i-cell": "../cell/index",
+ "i-icon": "../icon/index"
+ }
+}
\ No newline at end of file
diff --git a/src/swipeout/index.less b/src/swipeout/index.less
new file mode 100644
index 0000000..91e09ae
--- /dev/null
+++ b/src/swipeout/index.less
@@ -0,0 +1,39 @@
+@import "../styles/_base.less";
+@import "../styles/_mixins.less";
+@switch-prefix-cls: ~"i-swipeout";
+.@{switch-prefix-cls} {
+ &-wrap{
+ border-bottom: @border-color-base solid 1px;
+ background: @tooltip-color;
+ position: relative;
+ overflow: hidden;
+ }
+ &-item{
+ width: 100%;
+ padding: 15px 20px;
+ box-sizing: border-box;
+ transition: transform .2s ease;
+ font-size: 14px;
+ }
+ &-content{
+ white-space: nowrap;
+ overflow: hidden;
+ }
+ &-button-right-group{
+ position: absolute;
+ right: -100%;
+ top:0;
+ height: 100%;
+ z-index: 1;
+ width: 100%;
+ }
+ &-button-right-item{
+ height: 100%;
+ float: left;
+ white-space: nowrap;
+ box-sizing: border-box;
+ display: flex;
+ align-items:center;
+ justify-content: center;
+ }
+}
diff --git a/src/swipeout/index.wxml b/src/swipeout/index.wxml
new file mode 100644
index 0000000..f588015
--- /dev/null
+++ b/src/swipeout/index.wxml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+ module.exports = {
+ setStyle : function( item ){
+ var defaults = '#f7f7f7';
+ return 'background:' + ( item.background ? item.background : defaults ) +';' + 'color:'+ item.color;
+ },
+ setPosition : function( position ){
+ return 'transform:translate(' + position.pageX + 'px,0);';
+ }
+ }
+
\ No newline at end of file
diff --git a/src/tab-bar-item/index.js b/src/tab-bar-item/index.js
index bc6193b..0c24c1a 100644
--- a/src/tab-bar-item/index.js
+++ b/src/tab-bar-item/index.js
@@ -16,6 +16,14 @@ Component({
type: String,
value: ''
},
+ img: {
+ type: String,
+ value: ''
+ },
+ currentImg: {
+ type: String,
+ value: ''
+ },
key: {
type: String,
value: ''
diff --git a/src/tab-bar-item/index.less b/src/tab-bar-item/index.less
index 4402d0d..756a9ef 100644
--- a/src/tab-bar-item/index.less
+++ b/src/tab-bar-item/index.less
@@ -24,6 +24,14 @@
color: @primary-color;
}
}
+ &-img{
+ display: flex;
+ -webkit-box-pack: center;
+ justify-content: center;
+ box-sizing: border-box;
+ width: 22px;
+ height: 22px;
+ }
&-title{
font-size: 10px;
@@ -36,4 +44,12 @@
color: @primary-color;
}
}
+
+ &-img{
+ display: flex;
+ -webkit-box-pack: center;
+ justify-content: center;
+ box-sizing: border-box;
+ color: @subsidiary-color;
+ }
}
\ No newline at end of file
diff --git a/src/tab-bar-item/index.wxml b/src/tab-bar-item/index.wxml
index a3a5a13..7153909 100644
--- a/src/tab-bar-item/index.wxml
+++ b/src/tab-bar-item/index.wxml
@@ -1,7 +1,8 @@
-
-
+
+
+
{{ title }}
{{ title }}
diff --git a/src/tab-bar/index.js b/src/tab-bar/index.js
index 2f78f51..ca02fe4 100644
--- a/src/tab-bar/index.js
+++ b/src/tab-bar/index.js
@@ -32,20 +32,35 @@ Component({
}
},
+ data: {
+ list: []
+ },
+
methods: {
changeCurrent (val = this.data.current) {
let items = this.getRelationNodes('../tab-bar-item/index');
const len = items.length;
if (len > 0) {
+ const list = [];
items.forEach(item => {
item.changeCurrent(item.data.key === val);
item.changeCurrentColor(this.data.color);
+ list.push({
+ key: item.data.key
+ });
+ });
+ this.setData({
+ list: list
});
}
},
emitEvent (key) {
this.triggerEvent('change', { key });
+ },
+ handleClickItem (e) {
+ const key = e.currentTarget.dataset.key;
+ this.emitEvent(key);
}
}
});
diff --git a/src/tab-bar/index.less b/src/tab-bar/index.less
index 3d520dd..64f0867 100644
--- a/src/tab-bar/index.less
+++ b/src/tab-bar/index.less
@@ -22,4 +22,17 @@
bottom: 0;
z-index: 2;
}
+ &-list{
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ }
+
+ &-layer{
+ display: block;
+ float: left;
+ height: 100%;
+ }
}
\ No newline at end of file
diff --git a/src/tab-bar/index.wxml b/src/tab-bar/index.wxml
index 46d9029..9dbfbea 100644
--- a/src/tab-bar/index.wxml
+++ b/src/tab-bar/index.wxml
@@ -1 +1,6 @@
-
\ No newline at end of file
+
+
+
+
+
+
\ No newline at end of file