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 @@ + + {{name}} + + + + + + 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 @@ + + {{name}} + + + + + + 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