=i.startTime&&!i.hasStarted&&(i.hasStarted=!0,i.onStart&&i.onStart());var l=(t-i.startTime)/c;if(l=Math.max(0,Math.min(l,1)),l=i.easing(l),i.onFrame)i.onFrame(l);else for(var u in s){var h=(0,s[u])(l),f=void 0;if("points"===u){f=[];for(var p=Math.max(a.points.length,o.points.length),g=0;g=i.endTime&&!i.hasEnded&&(i.hasEnded=!0,i.onEnd&&i.onEnd()),1===l&&(this.anims.splice(e,1),e--)}}}this.canvas.map(function(t){return t.draw(),t}),this.time=r.now()},t}();t.exports=a},function(t,e,i){function n(t){for(var e=[],i=0,n=t.length;iu.x?n.x:u.x,c=u.y+p/2):"xy"===r&&(i.isPolar?(o=i.center.x,c=i.center.y):(o=(u.x+h.x)/2,c=(u.y+h.y)/2));var d=a.getScaledMatrix(g,[o,c],r);g.isClip=!0,g.endState={matrix:d},g.set("canvas",t.get("canvas")),t.attr("clip",g);a.doAnimation(g,g.endState,e,function(){t.attr("clip",null),g.remove(!0)})}function r(t,e,i){for(var n,r,o,s=t.get("children"),c=0,l=s.length;cs.max)&&(e=!1)}}),e&&c.push(t)}),t.set("filteredData",c)}}},function(t,e,i){var n=i(94),r=i(0);t.exports={updateLinearScale:function(t,e,i){var a=this.chart,o=n.getColDef(a,t);a.scale(t,r.mix({},o,{min:e,max:i,nice:!1}))},updateCatScale:function(t,e,i,a,o,s){var c=this.chart,l=n.getColDef(c,t);c.scale(t,r.mix({},l,{values:e,ticks:i,scale:function(t){"timeCat"===this.type&&(t=this._toTimeStamp(t));var e,i,n,r=this.rangeMin(),c=this.rangeMax(),l=c-r,u=a.indexOf(t);if(u>=0&&u0?-.1:r-.1)-l,n=u/o;else if(u>=0&&u>s)i=(e=c<1?1.1:c+.1)+l,n=(u-s-1)/(a.length-1-s);else{var h=this.translate(t);n=1===this.values.length?h:h/(this.values.length-1),e=r,i=c}return e+n*(i-e)},getTicks:function(){var t=this,e=this.ticks,i=[];return r.each(e,function(e){var n;if(r.isObject(e))n=e;else{var a=t.scale(e);a=a>=0&&a<=1?a:NaN,n={text:r.isString(e)?e:t.getText(e),value:a,tickValue:e}}i.push(n)}),i}}))}}},function(t,e,i){var n=i(0),r=i(94),a=["touchstart","touchmove","touchend","touchStart","touchMove","touchEnd"];t.exports={_handleMove:function(t){if("swipe"===t.type&&t.deltaTime>350)return null;var e,i,n=this.currentDeltaX,r=this.currentDeltaY,o=this.lastPoint;if(-1!==a.indexOf(t.type)){var s=t.touches[0];e=s.x-o.x,i=s.y-o.y,this.lastPoint=s}else null!==n&&null!==r&&(e=t.deltaX-n,i=t.deltaY-r,this.currentDeltaX=t.deltaX,this.currentDeltaY=t.deltaY);if(Math.abs(e)>0||Math.abs(i)>0){var c=this._timestamp,l=+new Date;l-c>16&&(this._doMove(e,i),this._timestamp=l)}},_doMove:function(t,e){var i=this,a=i.mode,o=i.chart,s=i.limitRange,c=o.get("coord"),l=c.start,u=c.end,h=o.get("data");if(n.directionEnabled(a,"x")&&0!==t){var f=o.getXScale(),p=f.field;s[p]||(s[p]=r.getLimitRange(h,f));var g=u.x-l.x;f.isCategory?i._handleCatScale(f,t,g):f.isLinear&&i._handleLinearScale(f,t,g,"x");var d=r.getColDef(o,p);i.xRange=r.getFieldRange(d,s[p],f.type)}if(n.directionEnabled(a,"y")&&0!==e){var v=l.y-u.y,y=o.getYScales();n.each(y,function(t){var n=t.field;s[n]||(s[n]=r.getLimitRange(h,t)),t.isLinear&&i._handleLinearScale(t,e,v,"y")});var m=r.getColDef(o,y[0].field);i.yRange=r.getFieldRange(m,s[y[0].field],y[0].type)}o.repaint()},_handleLinearScale:function(t,e,i,r){var a=t.field,o=t.min,s=t.max,c=this.limitRange;if(o!==c[a].min||s!==c[a].max){var l=e/i*(s-o),u="x"===r?s-l:s+l,h="x"===r?o-l:o+l;c[a]&&!n.isNil(c[a].min)&&h<=c[a].min&&(u=s-o+(h=c[a].min)),c[a]&&!n.isNil(c[a].max)&&u>=c[a].max&&(h=(u=c[a].max)-(s-o)),this.updateLinearScale(a,h,u)}},_handleCatScale:function(t,e,i){var n=t.type,r=t.field,a=t.values,o=t.ticks,s=this.limitRange[r],c=s.length-1,l=a.length,u=i/(l*(this.speed||1)),h=s.indexOf(a[0]),f=s.indexOf(a[l-1]),p=h,g=f,d=Math.abs(e/i),v=this.step||Math.max(1,parseInt(d*l));if(this._panCumulativeDelta+=e,p=this._panCumulativeDelta>u?Math.max(0,p-v):this._panCumulativeDelta<-u?Math.min(c-l+1,p+v):p,g=Math.min(c,p+l-1),p===h&&g===f)return null;var y=s.slice(p,g+1),m=null;if("timeCat"===n){var x=o.length>2?o[1]-o[0]:864e5;if(this._panCumulativeDelta>u)for(var _=o[0]-x;_>=y[0];_-=x)o.unshift(_);else if(this._panCumulativeDelta<-u)for(var S=o[o.length-1]+x;S<=y[y.length-1];S+=x)o.push(S);m=o}this.updateCatScale(r,y,m,s,p,g),this._panCumulativeDelta=p!==h?0:this._panCumulativeDelta}}},function(t,e,i){var n=i(0);t.exports={_bindPress:function(){var t=this.chart,e=this.hammer,i=this.el,r=this.pressThreshold,a=this.pressTime,o=t.get("tooltipController");o&&o.enable&&(t.set("_closeTooltip",!0),e?(e.get("press").set({threshold:r,time:a}),e.on("press",n.wrapBehavior(this,"_handlePress"))):n.addEventListener(i,"press",n.wrapBehavior(this,"_handlePress")))},reset:function(){var t=this.chart,e=t.get("tooltipController");e&&(this.pressed=!1,!e.cfg.alwaysShow&&t.hideTooltip(),t.set("_closeTooltip",!0))},_handlePress:function(t){this.pressed=!0;var e=t.center||t.touches[0];this.chart.set("_closeTooltip",!1),this.chart.showTooltip(e)}}},,,function(t,e,i){var n=i(41);i(95),i(83),i(88),i(104),i(105),i(132);var r=i(114),a=i(117),o=i(118),s=i(119),c=i(135),l=i(136);n.Animate=i(92),n.Chart.plugins.register([r,o,a,s,c,l]),i(137),n.Interaction=i(40),t.exports=n},function(t,e,i){t.exports={Text:i(112),Line:i(110),Arc:i(108),Rect:i(111),Html:i(109),Tag:i(113),Point:i(133),RegionFilter:i(134)}},function(t,e,i){function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var r=i(0),a=i(12),o=function(t){function e(){return t.apply(this,arguments)||this}n(e,t);var i=e.prototype;return i._initDefaultCfg=function(){this.type="point",this.position=null,this.offsetX=0,this.offsetY=0,this.style={fill:"#1890FF",r:3,lineWidth:1,stroke:"#fff"}},i.render=function(t,e){var i=this.parsePoint(t,this.position);if(!i)return null;var n=e.addShape("Circle",{className:"guide-point",attrs:r.mix({x:i.x+this.offsetX,y:i.y+this.offsetY},this.style)});return this.element=n,n},e}(a);a.Point=o,t.exports=o},function(t,e,i){function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var r=i(0),a=i(12),o=i(2).Rect,s=function(t){function e(){return t.apply(this,arguments)||this}n(e,t);var i=e.prototype;return i._initDefaultCfg=function(){this.type="regionFilter",this.start=[],this.end=[],this.color=null,this.style=null},i.render=function(t){var e=this.parsePoint(t,this.start),i=this.parsePoint(t,this.end);if(e&&i){var n=new o({attrs:{x:Math.min(e.x,i.x),y:Math.min(e.y,i.y),width:Math.abs(i.x-e.x),height:Math.abs(i.y-e.y)}});this.clip=n;var a=this.chart,s=this.color,c=this.style||{},l=[];a.get("geoms").map(function(t){var e=t.get("container"),i=e.get("children"),a=e.addGroup({zIndex:10,className:"guide-region-filter"});return i.map(function(t){if(t.get("isShape")){var e=t.get("type"),i=r.mix({},t.get("attrs"),c);s&&(i.fill||i.fillStyle)&&(i.fill=i.fillStyle=s),s&&(i.stroke||i.strokeStyle)&&(i.stroke=i.strokeStyle=s);var n={attrs:i};"custom"!==e&&"Custom"!==e||(n.createPath=t.get("createPath"),n.calculateBox=t.get("calculateBox")),a.addShape(e,n)}return t}),a.attr("clip",n),e.sort(),l.push(a),t}),this.element=l}},i.remove=function(){var t=this.element;r.each(t,function(t){t&&t.remove(!0)}),this.clip&&this.clip.remove(!0)},e}(a);a.RegionFilter=s,t.exports=s},function(t,e,i){var n=i(94),r=i(0),a={mode:"x",xStyle:{backgroundColor:"rgba(202, 215, 239, .2)",fillerColor:"rgba(202, 215, 239, .5)",size:4,lineCap:"round",offsetX:0,offsetY:8},yStyle:{backgroundColor:"rgba(202, 215, 239, .2)",fillerColor:"rgba(202, 215, 239, .5)",size:4,lineCap:"round",offsetX:8,offsetY:0}};t.exports={init:function(t){t.set("_limitRange",{}),t.scrollBar=function(t){!0===t?t=a:r.isObject(t)&&(t=r.deepMix({},a,t)),this.set("_scrollBarCfg",t)}},clear:function(t){t.set("_limitRange",{})},changeData:function(t){t.set("_limitRange",{})},clearInner:function(t){var e=t.get("_horizontalBar"),i=t.get("_verticalBar");e&&e.remove(!0),i&&i.remove(!0),t.set("_horizontalBar",null),t.set("_verticalBar",null)},afterGeomDraw:function(t){var e=t.get("_scrollBarCfg");if(e){var i=t.get("data"),a=t.get("plotRange"),o=t.get("backPlot"),s=t.get("canvas").get("height"),c=t.get("_limitRange"),l=e.mode;if(r.directionEnabled(l,"x")){var u=e.xStyle,h=u.offsetX,f=u.offsetY,p=u.lineCap,g=u.backgroundColor,d=u.fillerColor,v=u.size,y=t.getXScale(),m=c[y.field];m||(m=n.getLimitRange(i,y),c[y.field]=m);var x=n.getFieldRange(y,m,y.type),_=t.get("_horizontalBar"),S=s-v/2+f;_?_.get("children")[1].attr({x1:Math.max(a.bl.x+a.width*x[0]+h,a.bl.x),x2:Math.min(a.bl.x+a.width*x[1]+h,a.br.x)}):((_=o.addGroup({className:"horizontalBar"})).addShape("line",{attrs:{x1:a.bl.x+h,y1:S,x2:a.br.x+h,y2:S,lineWidth:v,stroke:g,lineCap:p}}),_.addShape("line",{attrs:{x1:Math.max(a.bl.x+a.width*x[0]+h,a.bl.x),y1:S,x2:Math.min(a.bl.x+a.width*x[1]+h,a.br.x),y2:S,lineWidth:v,stroke:d,lineCap:p}}),t.set("_horizontalBar",_))}if(r.directionEnabled(l,"y")){var b=e.yStyle,C=b.offsetX,P=b.offsetY,w=b.lineCap,M=b.backgroundColor,T=b.fillerColor,A=b.size,D=t.getYScales()[0],k=c[D.field];k||(k=n.getLimitRange(i,D),c[D.field]=k);var I=n.getFieldRange(D,k,D.type),O=t.get("_verticalBar"),E=A/2+C;O?O.get("children")[1].attr({y1:Math.max(a.tl.y+a.height*I[0]+P,a.tl.y),y2:Math.min(a.tl.y+a.height*I[1]+P,a.bl.y)}):((O=o.addGroup({className:"verticalBar"})).addShape("line",{attrs:{x1:E,y1:a.tl.y+P,x2:E,y2:a.bl.y+P,lineWidth:A,stroke:M,lineCap:w}}),O.addShape("line",{attrs:{x1:E,y1:Math.max(a.tl.y+a.height*I[0]+P,a.tl.y),x2:E,y2:Math.min(a.tl.y+a.height*I[1]+P,a.bl.y),lineWidth:A,stroke:T,lineCap:w}}),t.set("_verticalBar",O))}}}}},function(t,e,i){function n(t,e,i){return{x:t.x+i*Math.cos(e),y:t.y+i*Math.sin(e)}}function r(t,e){return ek&&e.splice(k,e.length-k),e.sort(function(t,e){return t.y-e.y});var i=t._antiCollision(e);b=b.concat(i)})}this.drawnLabels=b},e.bindEvents=function(){var t=this.pieLabelCfg.triggerOn||"touchstart",e=o.wrapBehavior(this,"_handleEvent");o.addEventListener(this.canvasDom,t,e)},e.unBindEvents=function(){var t=this.pieLabelCfg.triggerOn||"touchstart",e=o.getWrapBehavior(this,"_handleEvent");o.removeEventListener(this.canvasDom,t,e)},e.clear=function(){this.labelGroup&&this.labelGroup.clear(),this.halo&&this.halo.remove(!0),this.lastSelectedData=null,this.drawnLabels=[],this.unBindEvents()},e._drawLabel=function(t){var e=this.pieLabelCfg,i=this.chart.get("width"),n=e.sidePadding,r=t.y,a=t.textGroup,o=a.get("children"),s={textAlign:"left"===t._side?"left":"right",x:"left"===t._side?n:i-n};return o.forEach(function(t){t.attr(s),t.attr("y",r+t.get("offsetY"))}),a},e._drawLabelLine=function(t,e){var i=this.chart,n=this.pieLabelCfg,r=this.labelGroup,a=i.get("width"),s=n.sidePadding,c=n.adjustOffset,l=n.lineStyle,u=n.anchorStyle,h=n.skipOverlapLabels,f=t._anchor,p=t._inflection,g=t.fill,d=t.y,v={x:"left"===t._side?s:a-s,y:d},y=[f,p,v];if(!h&&p.y!==d)if(p.ym.x)&&(y=[f,_,v])}else y=[f,{x:p.x,y:d},v];r.addShape("Polyline",{attrs:o.mix({points:y,lineWidth:1,stroke:g},l)}),r.addShape("Circle",{attrs:o.mix({x:f.x,y:f.y,r:2,fill:g},u)})},e._antiCollision=function(t){var e,i=this,n=i.chart,r=i.pieLabelCfg,a=n.get("coord"),o=n.get("height"),s=a.center,c=a.circleRadius,l=r.inflectionOffset,u=r.lineHeight,h=s.y-c-l-u,f=!0,p=o,g=0,d=Number.MIN_VALUE,v=0,y=t.map(function(t){var e=t.y;e>g&&(g=e),e=v&&(v=i),{size:u,targets:[e-h]}});g-h>p&&(p=g-h);for(;f;)for(!function(t){t.forEach(function(t){var e=(Math.min.apply(d,t.targets)+Math.max.apply(d,t.targets))/2;t.pos=Math.min(Math.max(d,e-t.size/2),p-t.size)})}(y),f=!1,e=y.length;e--;)if(e>0){var m=y[e-1],x=y[e];m.pos+m.size>x.pos&&(m.size+=x.size,m.targets=m.targets.concat(x.targets),m.pos+m.size>p&&(m.pos=p-m.size),y.splice(e,1),f=!0)}e=0,y.forEach(function(i){var n=h;i.targets.forEach(function(){t[e].y=i.pos+n+u/2,n+=u,e++})});var _=[];return t.forEach(function(t){var e=i._drawLabel(t);i.labelGroup.add(e),i._drawLabelLine(t,v),_.push(e)}),_},e._handleEvent=function(t){for(var e,i=this,n=i.chart,r=i.drawnLabels,a=i.pieLabelCfg,s=a.onClick,c=a.activeShape,l=o.createEvent(t,n),u=l.x,h=l.y,f=0,p=r.length;f=d.minX&&u<=d.maxX&&h>=d.minY&&h<=d.maxY){e=g;break}}var v=n.getSnapRecords({x:u,y:h});e?l.data=e.get("data"):v.length&&(l.data=v[0]._origin),s&&s(l),l.data&&c&&this._activeShape(l.data)},e._getSelectedShapeByData=function(t){var e=null,i=this.chart.get("geoms")[0],n=i.get("container").get("children");return o.each(n,function(n){if(n.get("isShape")&&n.get("className")===i.get("type")){var r=n.get("origin")._origin;if(o.isObjectValueEqual(r,t))return e=n,!1}}),e},e._activeShape=function(t){var e=this.chart,i=this.lastSelectedData,n=this.pieLabelCfg;if(t!==i){this.lastSelectedData=t;var r=n.activeStyle,a=this._getSelectedShapeByData(t)._attrs.attrs,s=a.x,c=a.y,l=a.startAngle,u=a.endAngle,h=a.r,f=a.fill,p=e.get("frontPlot");this.halo&&this.halo.remove(!0);var g=p.addShape("sector",{attrs:o.mix({x:s,y:c,r:h+r.offset+r.appendRadius,r0:h+r.offset,fill:f,startAngle:l,endAngle:u},r)});this.halo=g,e.get("canvas").draw()}},t}();t.exports={init:function(t){var e=t.get("frontPlot").addGroup({className:"pie-label",zIndex:0}),i=new l({chart:t,labelGroup:e});t.set("pieLabelController",i),t.pieLabel=function(t){return t=o.deepMix({},c,t),i.pieLabelCfg=t,this}},afterGeomDraw:function(t){var e=t.get("pieLabelController");e.pieLabelCfg&&(e.renderLabels(),e.bindEvents())},clearInner:function(t){var e=t.get("pieLabelController");e.pieLabelCfg&&e.clear()}}},function(t,e,i){t.exports={Interaction:i(40),PieSelect:i(139),IntervalSelect:i(140),Swipe:i(141),Pan:i(142),Pinch:i(143)}},function(t,e,i){var n;!function(r,a,o,s){"use strict";function c(t,e,i){return setTimeout(p(t,i),e)}function l(t,e,i){return!!Array.isArray(t)&&(u(t,i[e],i),!0)}function u(t,e,i){var n;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==s)for(n=0;n\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",a=r.console&&(r.console.warn||r.console.log);return a&&a.call(r.console,n,i),t.apply(this,arguments)}}function f(t,e,i){var n,r=e.prototype;(n=t.prototype=Object.create(r)).constructor=t,n._super=r,i&>(n,i)}function p(t,e){return function(){return t.apply(e,arguments)}}function g(t,e){return typeof t==yt?t.apply(e?e[0]||s:s,e):t}function d(t,e){return t===s?e:t}function v(t,e,i){u(_(e),function(e){t.addEventListener(e,i,!1)})}function y(t,e,i){u(_(e),function(e){t.removeEventListener(e,i,!1)})}function m(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function x(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function S(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]}):n.sort()),n}function P(t,e){for(var i,n,r=e[0].toUpperCase()+e.slice(1),a=0;a1&&!i.firstMultiple?i.firstMultiple=E(e):1===r&&(i.firstMultiple=!1);var a=i.firstInput,o=i.firstMultiple,s=o?o.center:a.center,c=e.center=Y(n);e.timeStamp=_t(),e.deltaTime=e.timeStamp-a.timeStamp,e.angle=R(s,c),e.distance=F(s,c),I(i,e),e.offsetDirection=N(e.deltaX,e.deltaY);var l=B(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=l.x,e.overallVelocityY=l.y,e.overallVelocity=xt(l.x)>xt(l.y)?l.x:l.y,e.scale=o?X(o.pointers,n):1,e.rotation=o?L(o.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,O(i,e);var u=t.element;m(e.srcEvent.target,u)&&(u=e.srcEvent.target),e.target=u}function I(t,e){var i=e.center,n=t.offsetDelta||{},r=t.prevDelta||{},a=t.prevInput||{};e.eventType!==Dt&&a.eventType!==It||(r=t.prevDelta={x:a.deltaX||0,y:a.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=r.x+(i.x-n.x),e.deltaY=r.y+(i.y-n.y)}function O(t,e){var i,n,r,a,o=t.lastInterval||e,c=e.timeStamp-o.timeStamp;if(e.eventType!=Ot&&(c>At||o.velocity===s)){var l=e.deltaX-o.deltaX,u=e.deltaY-o.deltaY,h=B(c,l,u);n=h.x,r=h.y,i=xt(h.x)>xt(h.y)?h.x:h.y,a=N(l,u),t.lastInterval=e}else i=o.velocity,n=o.velocityX,r=o.velocityY,a=o.direction;e.velocity=i,e.velocityX=n,e.velocityY=r,e.direction=a}function E(t){for(var e=[],i=0;i=xt(e)?t<0?Yt:Bt:e<0?Nt:Ft}function F(t,e,i){i||(i=zt);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return Math.sqrt(n*n+r*r)}function R(t,e,i){i||(i=zt);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return 180*Math.atan2(r,n)/Math.PI}function L(t,e){return R(e[1],e[0],jt)+R(t[1],t[0],jt)}function X(t,e){return F(e[0],e[1],jt)/F(t[0],t[1],jt)}function z(){this.evEl=Wt,this.evWin=Ht,this.pressed=!1,T.apply(this,arguments)}function j(){this.evEl=Ut,this.evWin=Zt,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function G(){this.evTarget=$t,this.evWin=Kt,this.started=!1,T.apply(this,arguments)}function W(t,e){var i=b(t.touches),n=b(t.changedTouches);return e&(It|Ot)&&(i=C(i.concat(n),"identifier",!0)),[i,n]}function H(){this.evTarget=te,this.targetIds={},T.apply(this,arguments)}function V(t,e){var i=b(t.touches),n=this.targetIds;if(e&(Dt|kt)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var r,a,o=b(t.changedTouches),s=[],c=this.target;if(a=i.filter(function(t){return m(t.target,c)}),e===Dt)for(r=0;r-1&&n.splice(t,1)},ee)}}function J(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,n=0;n-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,n=this.state;n=ge&&e(i.options.event+tt(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&r&e.direction},attrTest:function(t){return nt.prototype.attrTest.call(this,t)&&(this.state&fe||!(this.state&fe)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),f(at,nt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&fe)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),f(ot,Q,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ae]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distancee.time;if(this._input=t,!n||!i||t.eventType&(It|Ot)&&!r)this.reset();else if(t.eventType&Dt)this.reset(),this._timer=c(function(){this.state=de,this.tryEmit()},e.time,this);else if(t.eventType&It)return de;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===de&&(t&&t.eventType&It?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=_t(),this.manager.emit(this.options.event,this._input)))}}),f(st,nt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&fe)}}),f(ct,nt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Rt|Lt,pointers:1},getTouchAction:function(){return rt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Rt|Lt)?e=t.overallVelocity:i&Rt?e=t.overallVelocityX:i&Lt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&xt(e)>this.options.velocity&&t.eventType&It},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),f(lt,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[oe]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distance=e.x&&o<=e.x+e.width&&s>=e.y&&s<=e.height+e.y?i=t:u.push(t)})}else if("range"===c){var f=e.getSnapRecords({x:o,y:s});if(!f.length)return void this.reset();var p=f[0]._origin,g=this._selectShapesByData(p);i=g.selectedShape,u=g.unSelectedShapes}if(i)if(this.selectedShape=i,i.get("_selected")){if(!this.cancelable)return void this._setEventData(t);this.reset()}else this._selectShapes(i,u);else this.reset();this._setEventData(t)},i.end=function(t){this._setEventData(t)},e}(o);s.registerInteraction("interval-select",c),t.exports=c},function(t,e,i){function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}var a=i(0),o=i(40),s=i(19),c=i(125),l=i(127),u=i(126),h=function(t){function e(e,i){var n,o=r(r(n=t.call(this,e,i)||this)),s=o.hammer,h=o.threshold,f=o.velocity;return s&&s.get("swipe").set({direction:6,threshold:h,velocity:f}),i.registerPlugins([c,{changeData:function(){o.limitRange={}},clear:function(){o.limitRange={}}}]),o.mode="x",a.mix(o,u,l),n}n(e,t);var i=e.prototype;return i.getDefaultCfg=function(){var e=t.prototype.getDefaultCfg.call(this);return e=a.mix({},e,{startEvent:"touchstart",processEvent:"swipe",endEvent:"touchend",currentDeltaX:null,threshold:10,velocity:.3,limitRange:{},_timestamp:0,_panCumulativeDelta:0,speed:5})},i.process=function(t){this.currentDeltaX=0,this._handleMove(t)},i.end=function(){this.currentDeltaX=null,this._panCumulativeDelta=0},e}(o);s.registerInteraction("swipe",h),t.exports=h},function(t,e,i){function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}var a=i(0),o=i(40),s=i(19),c=i(125),l=i(127),u=i(128),h=i(126),f=function(t){function e(e,i){var n,o=r(r(n=t.call(this,e,i)||this)),s=o.hammer,f=o.panThreshold;return s&&s.get("pan").set({threshold:f}),i.registerPlugins([c,{changeData:function(){o.limitRange={}},clear:function(){o.limitRange={}}}]),a.mix(r(r(n)),h,l,u),n._bindPress(),n}n(e,t);var i=e.prototype;return i.getDefaultCfg=function(){var e=t.prototype.getDefaultCfg.call(this);return e=a.mix({},e,{startEvent:"panstart",processEvent:"panmove",endEvent:"panend",resetEvent:"touchend",mode:"x",panThreshold:10,pressThreshold:9,pressTime:251,currentDeltaX:null,currentDeltaY:null,limitRange:{},_timestamp:0,lastPoint:null,_panCumulativeDelta:0,speed:5}),(a.isWx||a.isMy)&&(e.startEvent="touchstart",e.processEvent="touchmove",e.endEvent="touchend"),e},i.start=function(t){this.pressed||(this.currentDeltaX=0,this.currentDeltaY=0,"touchstart"!==t.type&&"touchStart"!==t.type||(this.lastPoint=t.touches[0]),this._handleMove(t))},i.process=function(t){this.pressed||this._handleMove(t)},i.end=function(){this.pressed||(this.currentDeltaX=null,this.currentDeltaY=null,this.lastPoint=null,this._panCumulativeDelta=0)},e}(o);s.registerInteraction("pan",f),t.exports=f},function(t,e,i){function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}var a=i(0),o=i(94),s=i(40),c=i(19),l=i(125),u=i(128),h=i(126),f=function(t){function e(e,i){var n,o=r(r(n=t.call(this,e,i)||this));return o.hammer.get("pinch").set({enable:!0}),i.registerPlugins([l,{changeData:function(){o.limitRange={},o.originTicks=null},clear:function(){o.limitRange={},o.originTicks=null}}]),a.mix(o,u,h),o._bindPress(),n}n(e,t);var i=e.prototype;return i.getDefaultCfg=function(){var e=t.prototype.getDefaultCfg.call(this);return a.mix({},e,{startEvent:"pinchstart",processEvent:"pinch",endEvent:"pinchend",resetEvent:"touchend",pressThreshold:9,pressTime:251,mode:"x",currentPinchScaling:null,originValues:null,minScale:null,maxScale:null,limitRange:{},sensitivity:1,_pinchCumulativeDelta:0,_timestamp:0})},i.start=function(){this.pressed||(this.currentPinchScaling=1)},i.process=function(t){this.pressed||this._handlePinch(t)},i.end=function(t){this.pressed||(this._handlePinch(t),this.currentPinchScaling=null,this.pinchCumulativeDelta=0)},i._handlePinch=function(t){var e,i=1/this.currentPinchScaling*t.scale,n=t.target.getBoundingClientRect(),r={x:t.center.x-n.left,y:t.center.y-n.top},a=Math.abs(t.pointers[0].clientX-t.pointers[1].clientX),o=Math.abs(t.pointers[0].clientY-t.pointers[1].clientY),s=a/o;e=s>.3&&s<1.7?"xy":a>o?"x":"y";var c=this._timestamp,l=+new Date;l-c>16&&(this._doZoom(i,r,e),this._timestamp=l),this.currentPinchScaling=t.scale},i._doZoom=function(t,e,i){var n,r=this,s=r.mode,c=r.chart,l=r.limitRange;n="xy"===s&&void 0!==i?i:"xy";var u=c.get("data");if(a.directionEnabled(s,"x")&&a.directionEnabled(n,"x")){var h=c.getXScale(),f=h.field;l[f]||(l[f]=o.getLimitRange(u,h)),h.isCategory?r._zoomCatScale(h,t,e):h.isLinear&&r._zoomLinearScale(h,t,e,"x");var p=o.getColDef(c,f);this.xRange=o.getFieldRange(p,l[f],h.type)}if(a.directionEnabled(s,"y")&&a.directionEnabled(n,"y")){var g=c.getYScales();a.each(g,function(i){var n=i.field;l[n]||(l[n]=o.getLimitRange(u,i)),i.isLinear&&r._zoomLinearScale(i,t,e,"y")});var d=o.getColDef(c,g[0].field);this.yRange=o.getFieldRange(d,l[g[0].field],g[0].type)}c.repaint()},i._zoomLinearScale=function(t,e,i,n){var r=this.chart,a=t.min,o=t.max,s=t.field,c=o-a,l=this.limitRange,u=l[s].max-l[s].min,h=r.get("coord"),f=c*(e-1);if(this.minScale&&e<1){var p=u/this.minScale;f=Math.max(c-p,f)}if(this.maxScale&&e>=1){var g=u/this.maxScale;f=Math.min(c-g,f)}var d=h.invertPoint(i),v="x"===n?d.x:d.y,y=o-f*(1-v),m=a+f*v;this.updateLinearScale(s,m,y)},i._zoomCatScale=function(t,e,i){var n=this._pinchCumulativeDelta,r=this.sensitivity;n=e>1?n+1:n-1,this._pinchCumulativeDelta=n;var a=t.field,o=t.values,s=this.chart.get("coord");this.originTicks||(this.originTicks=t.ticks);var c=this.limitRange[a],l=c.length,u=this.minScale||1,h=this.maxScale||5,f=parseInt(l/h),p=parseInt(l/u),g=o.length;if(n>0&&g<=f)return null;if(n<0&&g>=p)return null;var d=l-1,v=o[0],y=o[g-1],m=c.indexOf(v),x=c.indexOf(y),_=(s.start.x+s.end.x)/2,S=i.x;if(Math.abs(n)>r){var b=Math.max(1,parseInt(g*Math.abs(e-1)));n<0?(S>=_?m<=0?x=Math.min(d,x+b):m=Math.max(0,m-b):S<_&&(x>=d?m=Math.max(0,m-b):x=Math.min(d,x+b)),this._pinchCumulativeDelta=0):n>0&&(S>=_?m=mm?x=Math.max(m,x-b):x),this._pinchCumulativeDelta=0);var C=c.slice(m,x+1);this.updateCatScale(a,C,this.originTicks,c,m,x)}},e}(s);c.registerInteraction("pinch",f),t.exports=f}])});
\ No newline at end of file
diff --git a/weapp/src/static/f2-canvas/lib/plugin/pie-label.js b/weapp/src/static/f2-canvas/lib/plugin/pie-label.js
new file mode 100644
index 00000000..2091d7f9
--- /dev/null
+++ b/weapp/src/static/f2-canvas/lib/plugin/pie-label.js
@@ -0,0 +1,545 @@
+var Util = require('../util/common');
+
+var _require = require('../graphic/'),
+ Group = _require.Group;
+
+var DEFAULT_CFG = {
+ anchorOffset: 5,
+ // 锚点的偏移量
+ inflectionOffset: 15,
+ // 拐点的偏移量
+ sidePadding: 20,
+ // 文本距离画布四边的距离
+ lineHeight: 32,
+ // 文本的行高
+ adjustOffset: 15,
+ // 发生调整时的偏移量
+ skipOverlapLabels: false,
+ // 是否不展示重叠的文本
+ triggerOn: 'touchstart',
+ // 点击行为触发的时间类型
+ activeShape: false,
+ // 当有图形被选中的时候,是否激活图形
+ activeStyle: {
+ offset: 1,
+ appendRadius: 8,
+ fillOpacity: 0.5
+ },
+ label1OffsetY: -1,
+ label2OffsetY: 1
+};
+
+function getEndPoint(center, angle, r) {
+ return {
+ x: center.x + r * Math.cos(angle),
+ y: center.y + r * Math.sin(angle)
+ };
+} // 计算中间角度
+
+
+function getMiddleAngle(startAngle, endAngle) {
+ if (endAngle < startAngle) {
+ endAngle += Math.PI * 2;
+ }
+
+ return (endAngle + startAngle) / 2;
+} // 判断两个矩形是否相交
+
+
+function isOverlap(label1, label2) {
+ var label1BBox = label1.getBBox();
+ var label2BBox = label2.getBBox();
+ return Math.max(label1BBox.minX, label2BBox.minX) <= Math.min(label1BBox.maxX, label2BBox.minX) && Math.max(label1BBox.minY, label2BBox.minY) <= Math.min(label1BBox.maxY, label2BBox.maxY);
+}
+
+var controller =
+/*#__PURE__*/
+function () {
+ function controller(cfg) {
+ Util.mix(this, cfg);
+ var chart = this.chart;
+ this.canvasDom = chart.get('canvas').get('el');
+ }
+
+ var _proto = controller.prototype;
+
+ _proto.renderLabels = function renderLabels() {
+ var self = this;
+ var chart = self.chart,
+ pieLabelCfg = self.pieLabelCfg,
+ labelGroup = self.labelGroup;
+ var halves = [[], // left
+ [] // right
+ ]; // 存储左右 labels
+
+ var geom = chart.get('geoms')[0];
+ var shapes = geom.get('container').get('children');
+ var anchorOffset = pieLabelCfg.anchorOffset,
+ inflectionOffset = pieLabelCfg.inflectionOffset,
+ label1 = pieLabelCfg.label1,
+ label2 = pieLabelCfg.label2,
+ lineHeight = pieLabelCfg.lineHeight,
+ skipOverlapLabels = pieLabelCfg.skipOverlapLabels,
+ label1OffsetY = pieLabelCfg.label1OffsetY,
+ label2OffsetY = pieLabelCfg.label2OffsetY;
+ var coord = chart.get('coord');
+ var center = coord.center,
+ radius = coord.circleRadius;
+ shapes.forEach(function (shape) {
+ var _shape$_attrs$attrs = shape._attrs.attrs,
+ startAngle = _shape$_attrs$attrs.startAngle,
+ endAngle = _shape$_attrs$attrs.endAngle;
+ var middleAngle = getMiddleAngle(startAngle, endAngle);
+ var anchorPoint = getEndPoint(center, middleAngle, radius + anchorOffset);
+ var inflectionPoint = getEndPoint(center, middleAngle, radius + inflectionOffset);
+ var origin = shape.get('origin');
+ var _origin = origin._origin,
+ color = origin.color;
+ var label = {
+ _anchor: anchorPoint,
+ _inflection: inflectionPoint,
+ _data: _origin,
+ x: inflectionPoint.x,
+ y: inflectionPoint.y,
+ r: radius + inflectionOffset,
+ fill: color
+ };
+ var textGroup = new Group({
+ context: chart.get('canvas').get('context'),
+ // 兼容 node、小程序环境
+ data: _origin // 存储原始数据
+
+ });
+ var textAttrs = {
+ x: 0,
+ y: 0,
+ fontSize: 12,
+ lineHeight: 12,
+ fill: '#808080'
+ };
+
+ if (Util.isFunction(label1)) {
+ textGroup.addShape('Text', {
+ attrs: Util.mix({
+ textBaseline: 'bottom'
+ }, textAttrs, label1(_origin, color)),
+ data: _origin,
+ // 存储原始数据
+ offsetY: label1OffsetY
+ });
+ }
+
+ if (Util.isFunction(label2)) {
+ textGroup.addShape('Text', {
+ attrs: Util.mix({
+ textBaseline: 'top'
+ }, textAttrs, label2(_origin, color)),
+ data: _origin,
+ // 存储原始数据
+ offsetY: label2OffsetY
+ });
+ }
+
+ label.textGroup = textGroup; // 判断文本的方向
+
+ if (anchorPoint.x < center.x) {
+ label._side = 'left';
+ halves[0].push(label);
+ } else {
+ label._side = 'right';
+ halves[1].push(label);
+ }
+ });
+ var drawnLabels = [];
+
+ if (skipOverlapLabels) {
+ var lastLabel; // 存储上一个 label 对象,用于检测文本是否重叠
+
+ var labels = halves[1].concat(halves[0]); // 顺时针
+
+ for (var i = 0, len = labels.length; i < len; i++) {
+ var label = labels[i];
+
+ var textGroup = self._drawLabel(label);
+
+ if (lastLabel) {
+ if (isOverlap(textGroup, lastLabel)) {
+ // 重叠了就不绘制
+ continue;
+ }
+ }
+
+ labelGroup.add(textGroup);
+
+ self._drawLabelLine(label);
+
+ lastLabel = textGroup;
+ drawnLabels.push(textGroup);
+ }
+ } else {
+ var height = chart.get('height');
+ var maxCountForOneSide = parseInt(height / lineHeight, 10);
+ halves.forEach(function (half) {
+ if (half.length > maxCountForOneSide) {
+ half.splice(maxCountForOneSide, half.length - maxCountForOneSide);
+ }
+
+ half.sort(function (a, b) {
+ return a.y - b.y;
+ });
+
+ var labels = self._antiCollision(half);
+
+ drawnLabels = drawnLabels.concat(labels);
+ });
+ }
+
+ this.drawnLabels = drawnLabels;
+ };
+
+ _proto.bindEvents = function bindEvents() {
+ var pieLabelCfg = this.pieLabelCfg;
+ var triggerOn = pieLabelCfg.triggerOn || 'touchstart';
+ var method = Util.wrapBehavior(this, '_handleEvent');
+ Util.addEventListener(this.canvasDom, triggerOn, method);
+ };
+
+ _proto.unBindEvents = function unBindEvents() {
+ var pieLabelCfg = this.pieLabelCfg;
+ var triggerOn = pieLabelCfg.triggerOn || 'touchstart';
+ var method = Util.getWrapBehavior(this, '_handleEvent');
+ Util.removeEventListener(this.canvasDom, triggerOn, method);
+ };
+
+ _proto.clear = function clear() {
+ this.labelGroup && this.labelGroup.clear();
+ this.halo && this.halo.remove(true);
+ this.lastSelectedData = null;
+ this.drawnLabels = [];
+ this.unBindEvents();
+ };
+
+ _proto._drawLabel = function _drawLabel(label) {
+ var pieLabelCfg = this.pieLabelCfg,
+ chart = this.chart;
+ var canvasWidth = chart.get('width');
+ var sidePadding = pieLabelCfg.sidePadding;
+ var y = label.y,
+ textGroup = label.textGroup;
+ var children = textGroup.get('children');
+ var textAttrs = {
+ textAlign: label._side === 'left' ? 'left' : 'right',
+ x: label._side === 'left' ? sidePadding : canvasWidth - sidePadding
+ };
+ children.forEach(function (child) {
+ child.attr(textAttrs);
+ child.attr('y', y + child.get('offsetY'));
+ });
+ return textGroup;
+ };
+
+ _proto._drawLabelLine = function _drawLabelLine(label, maxLabelWidth) {
+ var chart = this.chart,
+ pieLabelCfg = this.pieLabelCfg,
+ labelGroup = this.labelGroup;
+ var canvasWidth = chart.get('width');
+ var sidePadding = pieLabelCfg.sidePadding,
+ adjustOffset = pieLabelCfg.adjustOffset,
+ lineStyle = pieLabelCfg.lineStyle,
+ anchorStyle = pieLabelCfg.anchorStyle,
+ skipOverlapLabels = pieLabelCfg.skipOverlapLabels;
+ var _anchor = label._anchor,
+ _inflection = label._inflection,
+ fill = label.fill,
+ y = label.y;
+ var lastPoint = {
+ x: label._side === 'left' ? sidePadding : canvasWidth - sidePadding,
+ y: y
+ };
+ var points = [_anchor, _inflection, lastPoint];
+
+ if (!skipOverlapLabels && _inflection.y !== y) {
+ // 展示全部文本文本位置做过调整
+ if (_inflection.y < y) {
+ // 文本被调整下去了,则添加拐点连接线
+ var point1 = _inflection;
+ var point2 = {
+ x: label._side === 'left' ? lastPoint.x + maxLabelWidth + adjustOffset : lastPoint.x - maxLabelWidth - adjustOffset,
+ y: _inflection.y
+ };
+ var point3 = {
+ x: label._side === 'left' ? lastPoint.x + maxLabelWidth : lastPoint.x - maxLabelWidth,
+ y: lastPoint.y
+ };
+ points = [_anchor, point1, point2, point3, lastPoint];
+
+ if (label._side === 'right' && point2.x < point1.x || label._side === 'left' && point2.x > point1.x) {
+ points = [_anchor, point3, lastPoint];
+ }
+ } else {
+ points = [_anchor, {
+ x: _inflection.x,
+ y: y
+ }, lastPoint];
+ }
+ }
+
+ labelGroup.addShape('Polyline', {
+ attrs: Util.mix({
+ points: points,
+ lineWidth: 1,
+ stroke: fill
+ }, lineStyle)
+ }); // 绘制锚点
+
+ labelGroup.addShape('Circle', {
+ attrs: Util.mix({
+ x: _anchor.x,
+ y: _anchor.y,
+ r: 2,
+ fill: fill
+ }, anchorStyle)
+ });
+ };
+
+ _proto._antiCollision = function _antiCollision(half) {
+ var self = this;
+ var chart = self.chart,
+ pieLabelCfg = self.pieLabelCfg;
+ var coord = chart.get('coord');
+ var canvasHeight = chart.get('height');
+ var center = coord.center,
+ r = coord.circleRadius;
+ var inflectionOffset = pieLabelCfg.inflectionOffset,
+ lineHeight = pieLabelCfg.lineHeight;
+ var startY = center.y - r - inflectionOffset - lineHeight;
+ var overlapping = true;
+ var totalH = canvasHeight;
+ var i;
+ var maxY = 0;
+ var minY = Number.MIN_VALUE;
+ var maxLabelWidth = 0;
+ var boxes = half.map(function (label) {
+ var labelY = label.y;
+
+ if (labelY > maxY) {
+ maxY = labelY;
+ }
+
+ if (labelY < minY) {
+ minY = labelY;
+ }
+
+ var textGroup = label.textGroup;
+ var labelWidth = textGroup.getBBox().width;
+
+ if (labelWidth >= maxLabelWidth) {
+ maxLabelWidth = labelWidth;
+ }
+
+ return {
+ size: lineHeight,
+ targets: [labelY - startY]
+ };
+ });
+
+ if (maxY - startY > totalH) {
+ totalH = maxY - startY;
+ }
+
+ var iteratorBoxed = function iteratorBoxed(boxes) {
+ boxes.forEach(function (box) {
+ var target = (Math.min.apply(minY, box.targets) + Math.max.apply(minY, box.targets)) / 2;
+ box.pos = Math.min(Math.max(minY, target - box.size / 2), totalH - box.size);
+ });
+ };
+
+ while (overlapping) {
+ iteratorBoxed(boxes); // detect overlapping and join boxes
+
+ overlapping = false;
+ i = boxes.length;
+
+ while (i--) {
+ if (i > 0) {
+ var previousBox = boxes[i - 1];
+ var box = boxes[i];
+
+ if (previousBox.pos + previousBox.size > box.pos) {
+ // overlapping
+ previousBox.size += box.size;
+ previousBox.targets = previousBox.targets.concat(box.targets); // overflow, shift up
+
+ if (previousBox.pos + previousBox.size > totalH) {
+ previousBox.pos = totalH - previousBox.size;
+ }
+
+ boxes.splice(i, 1); // removing box
+
+ overlapping = true;
+ }
+ }
+ }
+ }
+
+ i = 0;
+ boxes.forEach(function (b) {
+ var posInCompositeBox = startY; // middle of the label
+
+ b.targets.forEach(function () {
+ half[i].y = b.pos + posInCompositeBox + lineHeight / 2;
+ posInCompositeBox += lineHeight;
+ i++;
+ });
+ });
+ var drawnLabels = [];
+ half.forEach(function (label) {
+ var textGroup = self._drawLabel(label);
+
+ var labelGroup = self.labelGroup;
+ labelGroup.add(textGroup);
+
+ self._drawLabelLine(label, maxLabelWidth);
+
+ drawnLabels.push(textGroup);
+ });
+ return drawnLabels;
+ };
+
+ _proto._handleEvent = function _handleEvent(ev) {
+ var self = this;
+ var chart = self.chart,
+ drawnLabels = self.drawnLabels,
+ pieLabelCfg = self.pieLabelCfg;
+ var onClick = pieLabelCfg.onClick,
+ activeShape = pieLabelCfg.activeShape;
+ var canvasEvent = Util.createEvent(ev, chart);
+ var x = canvasEvent.x,
+ y = canvasEvent.y; // 查找被点击的 label
+
+ var clickedShape;
+
+ for (var i = 0, len = drawnLabels.length; i < len; i++) {
+ var shape = drawnLabels[i];
+ var bbox = shape.getBBox(); // 通过最小包围盒来判断击中情况
+
+ if (x >= bbox.minX && x <= bbox.maxX && y >= bbox.minY && y <= bbox.maxY) {
+ clickedShape = shape;
+ break;
+ }
+ }
+
+ var pieData = chart.getSnapRecords({
+ x: x,
+ y: y
+ });
+
+ if (clickedShape) {
+ canvasEvent.data = clickedShape.get('data');
+ } else if (pieData.length) {
+ // 击中饼图扇形区域
+ canvasEvent.data = pieData[0]._origin;
+ }
+
+ onClick && onClick(canvasEvent);
+ canvasEvent.data && activeShape && this._activeShape(canvasEvent.data);
+ };
+
+ _proto._getSelectedShapeByData = function _getSelectedShapeByData(data) {
+ var selectedShape = null;
+ var chart = this.chart;
+ var geom = chart.get('geoms')[0];
+ var container = geom.get('container');
+ var children = container.get('children');
+ Util.each(children, function (child) {
+ if (child.get('isShape') && child.get('className') === geom.get('type')) {
+ // get geometry's shape
+ var shapeData = child.get('origin')._origin;
+
+ if (Util.isObjectValueEqual(shapeData, data)) {
+ selectedShape = child;
+ return false;
+ }
+ }
+ });
+ return selectedShape;
+ };
+
+ _proto._activeShape = function _activeShape(data) {
+ var chart = this.chart,
+ lastSelectedData = this.lastSelectedData,
+ pieLabelCfg = this.pieLabelCfg;
+
+ if (data === lastSelectedData) {
+ return;
+ }
+
+ this.lastSelectedData = data;
+ var activeStyle = pieLabelCfg.activeStyle;
+
+ var selectedShape = this._getSelectedShapeByData(data);
+
+ var _selectedShape$_attrs = selectedShape._attrs.attrs,
+ x = _selectedShape$_attrs.x,
+ y = _selectedShape$_attrs.y,
+ startAngle = _selectedShape$_attrs.startAngle,
+ endAngle = _selectedShape$_attrs.endAngle,
+ r = _selectedShape$_attrs.r,
+ fill = _selectedShape$_attrs.fill;
+ var frontPlot = chart.get('frontPlot');
+ this.halo && this.halo.remove(true);
+ var halo = frontPlot.addShape('sector', {
+ attrs: Util.mix({
+ x: x,
+ y: y,
+ r: r + activeStyle.offset + activeStyle.appendRadius,
+ r0: r + activeStyle.offset,
+ fill: fill,
+ startAngle: startAngle,
+ endAngle: endAngle
+ }, activeStyle)
+ });
+ this.halo = halo;
+ chart.get('canvas').draw();
+ };
+
+ return controller;
+}();
+
+module.exports = {
+ init: function init(chart) {
+ var frontPlot = chart.get('frontPlot');
+ var labelGroup = frontPlot.addGroup({
+ className: 'pie-label',
+ zIndex: 0
+ });
+ var pieLabelController = new controller({
+ chart: chart,
+ labelGroup: labelGroup
+ });
+ chart.set('pieLabelController', pieLabelController);
+
+ chart.pieLabel = function (cfg) {
+ cfg = Util.deepMix({}, DEFAULT_CFG, cfg);
+ pieLabelController.pieLabelCfg = cfg;
+ return this;
+ };
+ },
+ afterGeomDraw: function afterGeomDraw(chart) {
+ var controller = chart.get('pieLabelController');
+
+ if (controller.pieLabelCfg) {
+ // 用户配置了饼图文本
+ controller.renderLabels();
+ controller.bindEvents(); // 绑定事件
+ }
+ },
+ clearInner: function clearInner(chart) {
+ var controller = chart.get('pieLabelController');
+
+ if (controller.pieLabelCfg) {
+ // 用户配置了饼图文本
+ controller.clear();
+ }
+ }
+};
\ No newline at end of file
diff --git a/weapp/src/static/f2-canvas/lib/renderer.js b/weapp/src/static/f2-canvas/lib/renderer.js
new file mode 100644
index 00000000..5be7c84d
--- /dev/null
+++ b/weapp/src/static/f2-canvas/lib/renderer.js
@@ -0,0 +1,47 @@
+import EventEmitter from './EventEmitter.min.js'
+
+const CAPITALIZED_ATTRS_MAP = {
+ fontSize: 'FontSize',
+ opacity: 'GlobalAlpha',
+ lineDash: 'LineDash',
+ textAlign: 'TextAlign',
+};
+
+/**
+ * wxapp textAlign align 可选值为 left|center|right
+ * 标准canvas textAlign align 可选值为 left|center|right|start|end
+ */
+const TEXT_ALIGN_MAP = {
+ 'start': 'left',
+ 'end': 'right',
+};
+
+export default class Renderer extends EventEmitter {
+ constructor(wxCtx) {
+ super();
+ const self = this;
+ self.ctx = wxCtx;
+ self.style = {}; // just mock
+ self._initContext(wxCtx);
+ }
+
+ getContext(type) {
+ if (type === '2d') {
+ return this.ctx;
+ }
+ }
+
+ _initContext(wxCtx) {
+ Object.keys(CAPITALIZED_ATTRS_MAP).map(style => {
+ Object.defineProperty(wxCtx, style, {
+ set: value => {
+ if (style == "textAlign") {
+ value = TEXT_ALIGN_MAP[value] ? TEXT_ALIGN_MAP[value] : value;
+ }
+ const name = 'set' + CAPITALIZED_ATTRS_MAP[style];
+ wxCtx[name](value);
+ }
+ });
+ });
+ }
+}
diff --git a/weapp/src/static/fonts/icon.css b/weapp/src/static/fonts/icon.css
new file mode 100644
index 00000000..1ae3dee9
--- /dev/null
+++ b/weapp/src/static/fonts/icon.css
@@ -0,0 +1,1268 @@
+@font-face {font-family: "icon";
+ src: url('//at.alicdn.com/t/font_2275070_o0tmvnenbgn.eot?t=1608132367477'); /* IE9 */
+ src: url('//at.alicdn.com/t/font_2275070_o0tmvnenbgn.eot?t=1608132367477#iefix') format('embedded-opentype'), /* IE6-IE8 */
+ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
+ url('//at.alicdn.com/t/font_2275070_o0tmvnenbgn.woff?t=1608132367477') format('woff'),
+ url('//at.alicdn.com/t/font_2275070_o0tmvnenbgn.ttf?t=1608132367477') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
+ url('//at.alicdn.com/t/font_2275070_o0tmvnenbgn.svg?t=1608132367477#icon') format('svg'); /* iOS 4.1- */
+}
+
+.icon {
+ font-family: "icon" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-pingfen:before {
+ content: "\e7f8";
+}
+
+.icon-pingfen-yipingfen:before {
+ content: "\e7f9";
+}
+
+.icon-jianhao:before {
+ content: "\e603";
+}
+
+.icon-zhiyin:before {
+ content: "\e6fd";
+}
+
+.icon-zuo1:before {
+ content: "\e6fe";
+}
+
+.icon-zuo2:before {
+ content: "\e6ff";
+}
+
+.icon-caidan:before {
+ content: "\e700";
+}
+
+.icon-suo:before {
+ content: "\e701";
+}
+
+.icon-fangda:before {
+ content: "\e702";
+}
+
+.icon-xinfengyoujian:before {
+ content: "\e703";
+}
+
+.icon-dingwei1:before {
+ content: "\e704";
+}
+
+.icon-nan:before {
+ content: "\e705";
+}
+
+.icon-gengduo:before {
+ content: "\e706";
+}
+
+.icon-jinbi:before {
+ content: "\e707";
+}
+
+.icon-yinle:before {
+ content: "\e708";
+}
+
+.icon-dianying:before {
+ content: "\e709";
+}
+
+.icon-shezhi:before {
+ content: "\e70a";
+}
+
+.icon-zhiye:before {
+ content: "\e70b";
+}
+
+.icon-gongsiqiye:before {
+ content: "\e70c";
+}
+
+.icon-lingdang:before {
+ content: "\e70d";
+}
+
+.icon-yejibaobiao:before {
+ content: "\e70e";
+}
+
+.icon-haoyou:before {
+ content: "\e70f";
+}
+
+.icon-gengduoguanxi:before {
+ content: "\e710";
+}
+
+.icon-dingdan1:before {
+ content: "\e711";
+}
+
+.icon-shouji:before {
+ content: "\e712";
+}
+
+.icon-tupian:before {
+ content: "\e713";
+}
+
+.icon-fujian:before {
+ content: "\e714";
+}
+
+.icon-bofang:before {
+ content: "\e715";
+}
+
+.icon-zan:before {
+ content: "\e716";
+}
+
+.icon-bangzhu:before {
+ content: "\e717";
+}
+
+.icon-gongsiqiye1:before {
+ content: "\e718";
+}
+
+.icon-jinbi1:before {
+ content: "\e719";
+}
+
+.icon-luxiangji:before {
+ content: "\e71a";
+}
+
+.icon-ranking:before {
+ content: "\e71b";
+}
+
+.icon-shanchu2:before {
+ content: "\e71c";
+}
+
+.icon-shuaxin:before {
+ content: "\e71d";
+}
+
+.icon-you1:before {
+ content: "\e71e";
+}
+
+.icon-you2:before {
+ content: "\e71f";
+}
+
+.icon-you3:before {
+ content: "\e720";
+}
+
+.icon-shuaxin1:before {
+ content: "\e721";
+}
+
+.icon-baocun:before {
+ content: "\e722";
+}
+
+.icon-fenxiang:before {
+ content: "\e723";
+}
+
+.icon-suoxiao:before {
+ content: "\e724";
+}
+
+.icon-shenpi:before {
+ content: "\e725";
+}
+
+.icon-sousuo1:before {
+ content: "\e726";
+}
+
+.icon-bianji1:before {
+ content: "\e727";
+}
+
+.icon-fangda1:before {
+ content: "\e728";
+}
+
+.icon-xiaolian:before {
+ content: "\e729";
+}
+
+.icon-shoucang:before {
+ content: "\e72a";
+}
+
+.icon-shafa:before {
+ content: "\e72b";
+}
+
+.icon-fenlei:before {
+ content: "\e72c";
+}
+
+.icon-dianhua:before {
+ content: "\e72d";
+}
+
+.icon-zhiding:before {
+ content: "\e72e";
+}
+
+.icon-gengxinshijian:before {
+ content: "\e72f";
+}
+
+.icon-bofang1:before {
+ content: "\e730";
+}
+
+.icon-shijian1:before {
+ content: "\e731";
+}
+
+.icon-shijianfenlei:before {
+ content: "\e732";
+}
+
+.icon-dianshi:before {
+ content: "\e733";
+}
+
+.icon-shang1:before {
+ content: "\e734";
+}
+
+.icon-shang2:before {
+ content: "\e735";
+}
+
+.icon-shang3:before {
+ content: "\e736";
+}
+
+.icon-yunshangchuan:before {
+ content: "\e737";
+}
+
+.icon-VIP:before {
+ content: "\e738";
+}
+
+.icon-bofang2:before {
+ content: "\e739";
+}
+
+.icon-wode:before {
+ content: "\e73a";
+}
+
+.icon-qianbao:before {
+ content: "\e73b";
+}
+
+.icon-xiaoxi2:before {
+ content: "\e73c";
+}
+
+.icon-riqi:before {
+ content: "\e73d";
+}
+
+.icon-xuanzhongduihao:before {
+ content: "\e73e";
+}
+
+.icon-bianji2:before {
+ content: "\e73f";
+}
+
+.icon-duihao2:before {
+ content: "\e740";
+}
+
+.icon-maikefeng:before {
+ content: "\e741";
+}
+
+.icon-baiban:before {
+ content: "\e742";
+}
+
+.icon-bingzhuangtu:before {
+ content: "\e743";
+}
+
+.icon-bianji3:before {
+ content: "\e744";
+}
+
+.icon-biaoqian:before {
+ content: "\e745";
+}
+
+.icon-bangzhu1:before {
+ content: "\e746";
+}
+
+.icon-biaoqian1:before {
+ content: "\e747";
+}
+
+.icon-bofang3:before {
+ content: "\e748";
+}
+
+.icon-bukejian:before {
+ content: "\e749";
+}
+
+.icon-caozuo-dianzan:before {
+ content: "\e74a";
+}
+
+.icon-caozuo-bianji:before {
+ content: "\e74b";
+}
+
+.icon-caozuo-pinglun:before {
+ content: "\e74c";
+}
+
+.icon-caozuo-paixu-jiangxu:before {
+ content: "\e74d";
+}
+
+.icon-caozuo-tuichu:before {
+ content: "\e74e";
+}
+
+.icon-caozuo-shoucang-line:before {
+ content: "\e74f";
+}
+
+.icon-caozuo-shangchuan-download:before {
+ content: "\e750";
+}
+
+.icon-caozuo-shangchuan-upload:before {
+ content: "\e751";
+}
+
+.icon-cunchuqia:before {
+ content: "\e752";
+}
+
+.icon-caozuo-shuaxin:before {
+ content: "\e753";
+}
+
+.icon-cuowu:before {
+ content: "\e754";
+}
+
+.icon-danxuan-weixuan:before {
+ content: "\e755";
+}
+
+.icon-dakaiquanxian:before {
+ content: "\e756";
+}
+
+.icon-dijie:before {
+ content: "\e757";
+}
+
+.icon-dijie1:before {
+ content: "\e758";
+}
+
+.icon-dianzan:before {
+ content: "\e759";
+}
+
+.icon-dianhua1:before {
+ content: "\e75a";
+}
+
+.icon-dianhua2:before {
+ content: "\e75b";
+}
+
+.icon-dingdan2:before {
+ content: "\e75c";
+}
+
+.icon-duomeiti:before {
+ content: "\e75d";
+}
+
+.icon-duomeitiwenjian:before {
+ content: "\e75e";
+}
+
+.icon-duoxuan-weixuan:before {
+ content: "\e75f";
+}
+
+.icon-duoxuan-yixuan:before {
+ content: "\e760";
+}
+
+.icon-erweima:before {
+ content: "\e761";
+}
+
+.icon-fabu:before {
+ content: "\e762";
+}
+
+.icon-dingwei2:before {
+ content: "\e763";
+}
+
+.icon-faxian:before {
+ content: "\e764";
+}
+
+.icon-faxian1:before {
+ content: "\e765";
+}
+
+.icon-fanhui:before {
+ content: "\e766";
+}
+
+.icon-feiji:before {
+ content: "\e767";
+}
+
+.icon-fenxiang1:before {
+ content: "\e768";
+}
+
+.icon-fenxiang2:before {
+ content: "\e769";
+}
+
+.icon-fenzu:before {
+ content: "\e76a";
+}
+
+.icon-fuwuqi:before {
+ content: "\e76b";
+}
+
+.icon-fuhao-biaoqian:before {
+ content: "\e76c";
+}
+
+.icon-fuhao-lianjie:before {
+ content: "\e76d";
+}
+
+.icon-fuhao-shaixuan:before {
+ content: "\e76e";
+}
+
+.icon-fuhao-shouye:before {
+ content: "\e76f";
+}
+
+.icon-fuhao-tongzhi:before {
+ content: "\e770";
+}
+
+.icon-fuhao-weizhi:before {
+ content: "\e771";
+}
+
+.icon-fuhao-wenzitishi:before {
+ content: "\e772";
+}
+
+.icon-fuhao-xiangji:before {
+ content: "\e773";
+}
+
+.icon-fuhao-yingyong:before {
+ content: "\e774";
+}
+
+.icon-fuhao-yuyuechenggong:before {
+ content: "\e775";
+}
+
+.icon-fuhao-yuedu:before {
+ content: "\e776";
+}
+
+.icon-fuhao-zhuangtai-chenggong:before {
+ content: "\e777";
+}
+
+.icon-fuhao-zhuangtai-cuowu:before {
+ content: "\e778";
+}
+
+.icon-fuhao-zhuangtai-jinggao:before {
+ content: "\e779";
+}
+
+.icon-fuhao-zhuangtai-tishi:before {
+ content: "\e77a";
+}
+
+.icon-fuhao-zhuangtai-yiwen:before {
+ content: "\e77b";
+}
+
+.icon-fuhaolei-yemian:before {
+ content: "\e77c";
+}
+
+.icon-fujian1:before {
+ content: "\e77d";
+}
+
+.icon-gengduo1:before {
+ content: "\e77e";
+}
+
+.icon-fuhao-yuyue:before {
+ content: "\e77f";
+}
+
+.icon-gonggao:before {
+ content: "\e780";
+}
+
+.icon-guanbi2:before {
+ content: "\e781";
+}
+
+.icon-gouwuche:before {
+ content: "\e782";
+}
+
+.icon-guanzhu:before {
+ content: "\e783";
+}
+
+.icon-gongzhonghao:before {
+ content: "\e784";
+}
+
+.icon-guoji:before {
+ content: "\e785";
+}
+
+.icon-huiyuan:before {
+ content: "\e786";
+}
+
+.icon-huiyuandefuben:before {
+ content: "\e787";
+}
+
+.icon-jihuashu:before {
+ content: "\e788";
+}
+
+.icon-huoche:before {
+ content: "\e789";
+}
+
+.icon-jieshuketang:before {
+ content: "\e78a";
+}
+
+.icon-jinqian:before {
+ content: "\e78b";
+}
+
+.icon-kejian:before {
+ content: "\e78c";
+}
+
+.icon-kefu:before {
+ content: "\e78d";
+}
+
+.icon-kehu:before {
+ content: "\e78e";
+}
+
+.icon-jingbao:before {
+ content: "\e78f";
+}
+
+.icon-lianxiren:before {
+ content: "\e790";
+}
+
+.icon-lixian:before {
+ content: "\e791";
+}
+
+.icon-lixianbaobiao:before {
+ content: "\e792";
+}
+
+.icon-liulan:before {
+ content: "\e793";
+}
+
+.icon-luyin:before {
+ content: "\e794";
+}
+
+.icon-luxiang:before {
+ content: "\e795";
+}
+
+.icon-lunchuan:before {
+ content: "\e796";
+}
+
+.icon-luzhi:before {
+ content: "\e797";
+}
+
+.icon-mima:before {
+ content: "\e798";
+}
+
+.icon-maikefeng1:before {
+ content: "\e799";
+}
+
+.icon-pifu:before {
+ content: "\e79a";
+}
+
+.icon-piao:before {
+ content: "\e79b";
+}
+
+.icon-pinglun1:before {
+ content: "\e79c";
+}
+
+.icon-pingmugongxiang:before {
+ content: "\e79d";
+}
+
+.icon-qidong:before {
+ content: "\e79e";
+}
+
+.icon-qianbao1:before {
+ content: "\e79f";
+}
+
+.icon-quanxianguanli:before {
+ content: "\e7a0";
+}
+
+.icon-qunzu:before {
+ content: "\e7a1";
+}
+
+.icon-renwu-mingpian:before {
+ content: "\e7a2";
+}
+
+.icon-renwu-tuandui:before {
+ content: "\e7a3";
+}
+
+.icon-renwu-ren:before {
+ content: "\e7a4";
+}
+
+.icon-renwu-zengjia:before {
+ content: "\e7a5";
+}
+
+.icon-saoma:before {
+ content: "\e7a6";
+}
+
+.icon-renwuchaxun:before {
+ content: "\e7a7";
+}
+
+.icon-rili1:before {
+ content: "\e7a8";
+}
+
+.icon-shanchu3:before {
+ content: "\e7a9";
+}
+
+.icon-shanchu4:before {
+ content: "\e7aa";
+}
+
+.icon-shangpin:before {
+ content: "\e7ab";
+}
+
+.icon-shanchudefuben:before {
+ content: "\e7ac";
+}
+
+.icon-shangwu:before {
+ content: "\e7ad";
+}
+
+.icon-shanchudefuben1:before {
+ content: "\e7ae";
+}
+
+.icon-shangyiye:before {
+ content: "\e7af";
+}
+
+.icon-shanchuwendang:before {
+ content: "\e7b0";
+}
+
+.icon-shezhi1:before {
+ content: "\e7b1";
+}
+
+.icon-shijianxuanzeqi:before {
+ content: "\e7b2";
+}
+
+.icon-shenhe:before {
+ content: "\e7b3";
+}
+
+.icon-shengxu:before {
+ content: "\e7b4";
+}
+
+.icon-shishi:before {
+ content: "\e7b5";
+}
+
+.icon-shiwu-gouwuche:before {
+ content: "\e7b6";
+}
+
+.icon-shiwu-shouji:before {
+ content: "\e7b7";
+}
+
+.icon-shiwu-maikefeng:before {
+ content: "\e7b8";
+}
+
+.icon-shiwu-shu:before {
+ content: "\e7b9";
+}
+
+.icon-shiwu-shoujidefuben:before {
+ content: "\e7ba";
+}
+
+.icon-shiwu-huabi:before {
+ content: "\e7bb";
+}
+
+.icon-shiwu-xianshiqi:before {
+ content: "\e7bc";
+}
+
+.icon-shiwu-hanglixiang:before {
+ content: "\e7bd";
+}
+
+.icon-shipin:before {
+ content: "\e7be";
+}
+
+.icon-shipindefuben:before {
+ content: "\e7bf";
+}
+
+.icon-shoucang1:before {
+ content: "\e7c0";
+}
+
+.icon-shouquan:before {
+ content: "\e7c1";
+}
+
+.icon-lanqiu:before {
+ content: "\e6c2";
+}
+
+.icon-shuaxin2:before {
+ content: "\e7c2";
+}
+
+.icon-shijian:before {
+ content: "\e6c3";
+}
+
+.icon-shezhidefuben:before {
+ content: "\e7c3";
+}
+
+.icon-shuji:before {
+ content: "\e6c4";
+}
+
+.icon-shoucangdefuben:before {
+ content: "\e7c4";
+}
+
+.icon-shuji1:before {
+ content: "\e6c5";
+}
+
+.icon-sousuo2:before {
+ content: "\e7c5";
+}
+
+.icon-jiahao:before {
+ content: "\e6c6";
+}
+
+.icon-sousuodefuben:before {
+ content: "\e7c6";
+}
+
+.icon-shoucangshuji:before {
+ content: "\e6c7";
+}
+
+.icon-tishi1:before {
+ content: "\e7c7";
+}
+
+.icon-tianjia:before {
+ content: "\e6c8";
+}
+
+.icon-tianjia2:before {
+ content: "\e7c8";
+}
+
+.icon-yinliang:before {
+ content: "\e6c9";
+}
+
+.icon-tianjiahaoyou:before {
+ content: "\e7c9";
+}
+
+.icon-yinliang1:before {
+ content: "\e6ca";
+}
+
+.icon-tianjiadefuben:before {
+ content: "\e7ca";
+}
+
+.icon-xia:before {
+ content: "\e6cb";
+}
+
+.icon-tupian1:before {
+ content: "\e7cb";
+}
+
+.icon-shujishuaxin:before {
+ content: "\e6cc";
+}
+
+.icon-wancheng:before {
+ content: "\e7cc";
+}
+
+.icon-yinliang2:before {
+ content: "\e6cd";
+}
+
+.icon-tuichu1:before {
+ content: "\e7cd";
+}
+
+.icon-duihao:before {
+ content: "\e6ce";
+}
+
+.icon-weikaishi:before {
+ content: "\e7ce";
+}
+
+.icon-zhengban:before {
+ content: "\e6cf";
+}
+
+.icon-wendang:before {
+ content: "\e7cf";
+}
+
+.icon-duihao1:before {
+ content: "\e6d0";
+}
+
+.icon-wenjian:before {
+ content: "\e7d0";
+}
+
+.icon-xia1:before {
+ content: "\e6d1";
+}
+
+.icon-tongguo:before {
+ content: "\e7d1";
+}
+
+.icon-you:before {
+ content: "\e6d2";
+}
+
+.icon-wenjianjia:before {
+ content: "\e7d2";
+}
+
+.icon-shang:before {
+ content: "\e6d3";
+}
+
+.icon-xiazai:before {
+ content: "\e7d3";
+}
+
+.icon-cuo:before {
+ content: "\e6d4";
+}
+
+.icon-wuliu:before {
+ content: "\e7d4";
+}
+
+.icon-bianji:before {
+ content: "\e6d5";
+}
+
+.icon-xiangji1:before {
+ content: "\e7d5";
+}
+
+.icon-xihuan:before {
+ content: "\e6d6";
+}
+
+.icon-wode1:before {
+ content: "\e7d6";
+}
+
+.icon-weixihuan:before {
+ content: "\e6d7";
+}
+
+.icon-xiaozu:before {
+ content: "\e7d7";
+}
+
+.icon-tianjia1:before {
+ content: "\e6d8";
+}
+
+.icon-hanglixiang:before {
+ content: "\e7d8";
+}
+
+.icon-dingwei:before {
+ content: "\e6d9";
+}
+
+.icon-xinxi:before {
+ content: "\e7d9";
+}
+
+.icon-sousuo:before {
+ content: "\e6da";
+}
+
+.icon-hanglixiang1:before {
+ content: "\e7da";
+}
+
+.icon-che:before {
+ content: "\e6db";
+}
+
+.icon-xiugai:before {
+ content: "\e7db";
+}
+
+.icon-shanchu:before {
+ content: "\e6dc";
+}
+
+.icon-xiaoxi3:before {
+ content: "\e7dc";
+}
+
+.icon-wode_xuanzhong:before {
+ content: "\e6dd";
+}
+
+.icon-yangshengqi:before {
+ content: "\e7dd";
+}
+
+.icon-xuanzhongdingdan:before {
+ content: "\e6de";
+}
+
+.icon-xuesheng:before {
+ content: "\e7de";
+}
+
+.icon-wode_weixuanzhong:before {
+ content: "\e6df";
+}
+
+.icon-yishoucang:before {
+ content: "\e7df";
+}
+
+.icon-tixing:before {
+ content: "\e6e0";
+}
+
+.icon-yinhangqia:before {
+ content: "\e7e0";
+}
+
+.icon-tishi:before {
+ content: "\e6e1";
+}
+
+.icon-yitianjia:before {
+ content: "\e7e1";
+}
+
+.icon-rili:before {
+ content: "\e6e2";
+}
+
+.icon-yonghu:before {
+ content: "\e7e2";
+}
+
+.icon-xiangji:before {
+ content: "\e6e3";
+}
+
+.icon-yingyong:before {
+ content: "\e7e3";
+}
+
+.icon-tixing1:before {
+ content: "\e6e4";
+}
+
+.icon-yonghuguanli:before {
+ content: "\e7e4";
+}
+
+.icon-tixing2:before {
+ content: "\e6e5";
+}
+
+.icon-youjian:before {
+ content: "\e7e5";
+}
+
+.icon-shandong:before {
+ content: "\e6e6";
+}
+
+.icon-youxiang:before {
+ content: "\e7e6";
+}
+
+.icon-guanbi:before {
+ content: "\e6e7";
+}
+
+.icon-yonghuBI:before {
+ content: "\e7e7";
+}
+
+.icon-xiaoxi:before {
+ content: "\e6e8";
+}
+
+.icon-youfanye:before {
+ content: "\e7e8";
+}
+
+.icon-pinglun:before {
+ content: "\e6e9";
+}
+
+.icon-yuyin:before {
+ content: "\e7e9";
+}
+
+.icon-xiaoxi1:before {
+ content: "\e6ea";
+}
+
+.icon-zanting:before {
+ content: "\e7ea";
+}
+
+.icon-guanbi1:before {
+ content: "\e6eb";
+}
+
+.icon-zhexiantu:before {
+ content: "\e7eb";
+}
+
+.icon-shanchu1:before {
+ content: "\e6ec";
+}
+
+.icon-zan1:before {
+ content: "\e7ec";
+}
+
+.icon-dingdan:before {
+ content: "\e6ed";
+}
+
+.icon-zhengjian:before {
+ content: "\e7ed";
+}
+
+.icon-xia2:before {
+ content: "\e6ee";
+}
+
+.icon-zhuye:before {
+ content: "\e7ee";
+}
+
+.icon-xia3:before {
+ content: "\e6ef";
+}
+
+.icon-zhixiang-you:before {
+ content: "\e7ef";
+}
+
+.icon-xia4:before {
+ content: "\e6f0";
+}
+
+.icon-zhuyedefuben:before {
+ content: "\e7f0";
+}
+
+.icon-tuichu:before {
+ content: "\e6f1";
+}
+
+.icon-zhuzhuangtu:before {
+ content: "\e7f1";
+}
+
+.icon-faxian-yanjing:before {
+ content: "\e6f2";
+}
+
+.icon-ziyuanguanli:before {
+ content: "\e7f2";
+}
+
+.icon-nv:before {
+ content: "\e6f3";
+}
+
+.icon-zixun:before {
+ content: "\e7f3";
+}
+
+.icon-liwu:before {
+ content: "\e6f4";
+}
+
+.icon-zhengque:before {
+ content: "\e7f4";
+}
+
+.icon-xin:before {
+ content: "\e6f5";
+}
+
+.icon-zuguanli:before {
+ content: "\e7f5";
+}
+
+.icon-shaixuan:before {
+ content: "\e6f6";
+}
+
+.icon-zuixiaohua:before {
+ content: "\e7f6";
+}
+
+.icon-huo:before {
+ content: "\e6f7";
+}
+
+.icon-zuofanye:before {
+ content: "\e7f7";
+}
+
+.icon-shouye:before {
+ content: "\e6f8";
+}
+
+.icon-guanbi-yanjing:before {
+ content: "\e6f9";
+}
+
+.icon-gongzuozheng:before {
+ content: "\e6fa";
+}
+
+.icon-rili-xuanzhong:before {
+ content: "\e6fb";
+}
+
+.icon-zuo:before {
+ content: "\e6fc";
+}
diff --git a/weapp/src/static/fonts/icon.js b/weapp/src/static/fonts/icon.js
new file mode 100644
index 00000000..cf3f9ca8
--- /dev/null
+++ b/weapp/src/static/fonts/icon.js
@@ -0,0 +1,315 @@
+export default {
+ 'pingfen': 59384,
+ 'pingfen-yipingfen': 59385,
+ 'jianhao': 58883,
+ 'zhiyin': 59133,
+ 'zuo1': 59134,
+ 'zuo2': 59135,
+ 'caidan': 59136,
+ 'suo': 59137,
+ 'fangda': 59138,
+ 'xinfengyoujian': 59139,
+ 'dingwei1': 59140,
+ 'nan': 59141,
+ 'gengduo': 59142,
+ 'jinbi': 59143,
+ 'yinle': 59144,
+ 'dianying': 59145,
+ 'shezhi': 59146,
+ 'zhiye': 59147,
+ 'gongsiqiye': 59148,
+ 'lingdang': 59149,
+ 'yejibaobiao': 59150,
+ 'haoyou': 59151,
+ 'gengduoguanxi': 59152,
+ 'dingdan1': 59153,
+ 'shouji': 59154,
+ 'tupian': 59155,
+ 'fujian': 59156,
+ 'bofang': 59157,
+ 'zan': 59158,
+ 'bangzhu': 59159,
+ 'gongsiqiye1': 59160,
+ 'jinbi1': 59161,
+ 'luxiangji': 59162,
+ 'ranking': 59163,
+ 'shanchu2': 59164,
+ 'shuaxin': 59165,
+ 'you1': 59166,
+ 'you2': 59167,
+ 'you3': 59168,
+ 'shuaxin1': 59169,
+ 'baocun': 59170,
+ 'fenxiang': 59171,
+ 'suoxiao': 59172,
+ 'shenpi': 59173,
+ 'sousuo1': 59174,
+ 'bianji1': 59175,
+ 'fangda1': 59176,
+ 'xiaolian': 59177,
+ 'shoucang': 59178,
+ 'shafa': 59179,
+ 'fenlei': 59180,
+ 'dianhua': 59181,
+ 'zhiding': 59182,
+ 'gengxinshijian': 59183,
+ 'bofang1': 59184,
+ 'shijian1': 59185,
+ 'shijianfenlei': 59186,
+ 'dianshi': 59187,
+ 'shang1': 59188,
+ 'shang2': 59189,
+ 'shang3': 59190,
+ 'yunshangchuan': 59191,
+ 'VIP': 59192,
+ 'bofang2': 59193,
+ 'wode': 59194,
+ 'qianbao': 59195,
+ 'xiaoxi2': 59196,
+ 'riqi': 59197,
+ 'xuanzhongduihao': 59198,
+ 'bianji2': 59199,
+ 'duihao2': 59200,
+ 'maikefeng': 59201,
+ 'baiban': 59202,
+ 'bingzhuangtu': 59203,
+ 'bianji3': 59204,
+ 'biaoqian': 59205,
+ 'bangzhu1': 59206,
+ 'biaoqian1': 59207,
+ 'bofang3': 59208,
+ 'bukejian': 59209,
+ 'caozuo-dianzan': 59210,
+ 'caozuo-bianji': 59211,
+ 'caozuo-pinglun': 59212,
+ 'caozuo-paixu-jiangxu': 59213,
+ 'caozuo-tuichu': 59214,
+ 'caozuo-shoucang-line': 59215,
+ 'caozuo-shangchuan-download': 59216,
+ 'caozuo-shangchuan-upload': 59217,
+ 'cunchuqia': 59218,
+ 'caozuo-shuaxin': 59219,
+ 'cuowu': 59220,
+ 'danxuan-weixuan': 59221,
+ 'dakaiquanxian': 59222,
+ 'dijie': 59223,
+ 'dijie1': 59224,
+ 'dianzan': 59225,
+ 'dianhua1': 59226,
+ 'dianhua2': 59227,
+ 'dingdan2': 59228,
+ 'duomeiti': 59229,
+ 'duomeitiwenjian': 59230,
+ 'duoxuan-weixuan': 59231,
+ 'duoxuan-yixuan': 59232,
+ 'erweima': 59233,
+ 'fabu': 59234,
+ 'dingwei2': 59235,
+ 'faxian': 59236,
+ 'faxian1': 59237,
+ 'fanhui': 59238,
+ 'feiji': 59239,
+ 'fenxiang1': 59240,
+ 'fenxiang2': 59241,
+ 'fenzu': 59242,
+ 'fuwuqi': 59243,
+ 'fuhao-biaoqian': 59244,
+ 'fuhao-lianjie': 59245,
+ 'fuhao-shaixuan': 59246,
+ 'fuhao-shouye': 59247,
+ 'fuhao-tongzhi': 59248,
+ 'fuhao-weizhi': 59249,
+ 'fuhao-wenzitishi': 59250,
+ 'fuhao-xiangji': 59251,
+ 'fuhao-yingyong': 59252,
+ 'fuhao-yuyuechenggong': 59253,
+ 'fuhao-yuedu': 59254,
+ 'fuhao-zhuangtai-chenggong': 59255,
+ 'fuhao-zhuangtai-cuowu': 59256,
+ 'fuhao-zhuangtai-jinggao': 59257,
+ 'fuhao-zhuangtai-tishi': 59258,
+ 'fuhao-zhuangtai-yiwen': 59259,
+ 'fuhaolei-yemian': 59260,
+ 'fujian1': 59261,
+ 'gengduo1': 59262,
+ 'fuhao-yuyue': 59263,
+ 'gonggao': 59264,
+ 'guanbi2': 59265,
+ 'gouwuche': 59266,
+ 'guanzhu': 59267,
+ 'gongzhonghao': 59268,
+ 'guoji': 59269,
+ 'huiyuan': 59270,
+ 'huiyuandefuben': 59271,
+ 'jihuashu': 59272,
+ 'huoche': 59273,
+ 'jieshuketang': 59274,
+ 'jinqian': 59275,
+ 'kejian': 59276,
+ 'kefu': 59277,
+ 'kehu': 59278,
+ 'jingbao': 59279,
+ 'lianxiren': 59280,
+ 'lixian': 59281,
+ 'lixianbaobiao': 59282,
+ 'liulan': 59283,
+ 'luyin': 59284,
+ 'luxiang': 59285,
+ 'lunchuan': 59286,
+ 'luzhi': 59287,
+ 'mima': 59288,
+ 'maikefeng1': 59289,
+ 'pifu': 59290,
+ 'piao': 59291,
+ 'pinglun1': 59292,
+ 'pingmugongxiang': 59293,
+ 'qidong': 59294,
+ 'qianbao1': 59295,
+ 'quanxianguanli': 59296,
+ 'qunzu': 59297,
+ 'renwu-mingpian': 59298,
+ 'renwu-tuandui': 59299,
+ 'renwu-ren': 59300,
+ 'renwu-zengjia': 59301,
+ 'saoma': 59302,
+ 'renwuchaxun': 59303,
+ 'rili1': 59304,
+ 'shanchu3': 59305,
+ 'shanchu4': 59306,
+ 'shangpin': 59307,
+ 'shanchudefuben': 59308,
+ 'shangwu': 59309,
+ 'shanchudefuben1': 59310,
+ 'shangyiye': 59311,
+ 'shanchuwendang': 59312,
+ 'shezhi1': 59313,
+ 'shijianxuanzeqi': 59314,
+ 'shenhe': 59315,
+ 'shengxu': 59316,
+ 'shishi': 59317,
+ 'shiwu-gouwuche': 59318,
+ 'shiwu-shouji': 59319,
+ 'shiwu-maikefeng': 59320,
+ 'shiwu-shu': 59321,
+ 'shiwu-shoujidefuben': 59322,
+ 'shiwu-huabi': 59323,
+ 'shiwu-xianshiqi': 59324,
+ 'shiwu-hanglixiang': 59325,
+ 'shipin': 59326,
+ 'shipindefuben': 59327,
+ 'shoucang1': 59328,
+ 'shouquan': 59329,
+ 'lanqiu': 59074,
+ 'shuaxin2': 59330,
+ 'shijian': 59075,
+ 'shezhidefuben': 59331,
+ 'shuji': 59076,
+ 'shoucangdefuben': 59332,
+ 'shuji1': 59077,
+ 'sousuo2': 59333,
+ 'jiahao': 59078,
+ 'sousuodefuben': 59334,
+ 'shoucangshuji': 59079,
+ 'tishi1': 59335,
+ 'tianjia': 59080,
+ 'tianjia2': 59336,
+ 'yinliang': 59081,
+ 'tianjiahaoyou': 59337,
+ 'yinliang1': 59082,
+ 'tianjiadefuben': 59338,
+ 'xia': 59083,
+ 'tupian1': 59339,
+ 'shujishuaxin': 59084,
+ 'wancheng': 59340,
+ 'yinliang2': 59085,
+ 'tuichu1': 59341,
+ 'duihao': 59086,
+ 'weikaishi': 59342,
+ 'zhengban': 59087,
+ 'wendang': 59343,
+ 'duihao1': 59088,
+ 'wenjian': 59344,
+ 'xia1': 59089,
+ 'tongguo': 59345,
+ 'you': 59090,
+ 'wenjianjia': 59346,
+ 'shang': 59091,
+ 'xiazai': 59347,
+ 'cuo': 59092,
+ 'wuliu': 59348,
+ 'bianji': 59093,
+ 'xiangji1': 59349,
+ 'xihuan': 59094,
+ 'wode1': 59350,
+ 'weixihuan': 59095,
+ 'xiaozu': 59351,
+ 'tianjia1': 59096,
+ 'hanglixiang': 59352,
+ 'dingwei': 59097,
+ 'xinxi': 59353,
+ 'sousuo': 59098,
+ 'hanglixiang1': 59354,
+ 'che': 59099,
+ 'xiugai': 59355,
+ 'shanchu': 59100,
+ 'xiaoxi3': 59356,
+ 'wode_xuanzhong': 59101,
+ 'yangshengqi': 59357,
+ 'xuanzhongdingdan': 59102,
+ 'xuesheng': 59358,
+ 'wode_weixuanzhong': 59103,
+ 'yishoucang': 59359,
+ 'tixing': 59104,
+ 'yinhangqia': 59360,
+ 'tishi': 59105,
+ 'yitianjia': 59361,
+ 'rili': 59106,
+ 'yonghu': 59362,
+ 'xiangji': 59107,
+ 'yingyong': 59363,
+ 'tixing1': 59108,
+ 'yonghuguanli': 59364,
+ 'tixing2': 59109,
+ 'youjian': 59365,
+ 'shandong': 59110,
+ 'youxiang': 59366,
+ 'guanbi': 59111,
+ 'yonghuBI': 59367,
+ 'xiaoxi': 59112,
+ 'youfanye': 59368,
+ 'pinglun': 59113,
+ 'yuyin': 59369,
+ 'xiaoxi1': 59114,
+ 'zanting': 59370,
+ 'guanbi1': 59115,
+ 'zhexiantu': 59371,
+ 'shanchu1': 59116,
+ 'zan1': 59372,
+ 'dingdan': 59117,
+ 'zhengjian': 59373,
+ 'xia2': 59118,
+ 'zhuye': 59374,
+ 'xia3': 59119,
+ 'zhixiang-you': 59375,
+ 'xia4': 59120,
+ 'zhuyedefuben': 59376,
+ 'tuichu': 59121,
+ 'zhuzhuangtu': 59377,
+ 'faxian-yanjing': 59122,
+ 'ziyuanguanli': 59378,
+ 'nv': 59123,
+ 'zixun': 59379,
+ 'liwu': 59124,
+ 'zhengque': 59380,
+ 'xin': 59125,
+ 'zuguanli': 59381,
+ 'shaixuan': 59126,
+ 'zuixiaohua': 59382,
+ 'huo': 59127,
+ 'zuofanye': 59383,
+ 'shouye': 59128,
+ 'guanbi-yanjing': 59129,
+ 'gongzuozheng': 59130,
+ 'rili-xuanzhong': 59131,
+ 'zuo': 59132
+}
\ No newline at end of file
diff --git a/weapp/src/static/img/date.png b/weapp/src/static/img/date.png
new file mode 100644
index 00000000..74e957af
Binary files /dev/null and b/weapp/src/static/img/date.png differ
diff --git a/weapp/src/static/img/icon_reload.png b/weapp/src/static/img/icon_reload.png
new file mode 100644
index 00000000..a53201ef
Binary files /dev/null and b/weapp/src/static/img/icon_reload.png differ
diff --git a/weapp/src/static/img/login/bg.png b/weapp/src/static/img/login/bg.png
new file mode 100644
index 00000000..eca105b8
Binary files /dev/null and b/weapp/src/static/img/login/bg.png differ
diff --git a/weapp/src/static/img/login_bg.svg b/weapp/src/static/img/login_bg.svg
new file mode 100644
index 00000000..b95ed24f
--- /dev/null
+++ b/weapp/src/static/img/login_bg.svg
@@ -0,0 +1,34 @@
+
+
\ No newline at end of file
diff --git a/weapp/src/static/img/logo.png b/weapp/src/static/img/logo.png
new file mode 100644
index 00000000..a4345c27
Binary files /dev/null and b/weapp/src/static/img/logo.png differ
diff --git a/weapp/src/static/img/my-logo.png b/weapp/src/static/img/my-logo.png
new file mode 100644
index 00000000..eef1034e
Binary files /dev/null and b/weapp/src/static/img/my-logo.png differ
diff --git a/weapp/src/static/img/no-data.png b/weapp/src/static/img/no-data.png
new file mode 100644
index 00000000..93cd27e9
Binary files /dev/null and b/weapp/src/static/img/no-data.png differ
diff --git a/weapp/src/static/img/tabbar/shouye-active.png b/weapp/src/static/img/tabbar/shouye-active.png
new file mode 100644
index 00000000..ffad3ff8
Binary files /dev/null and b/weapp/src/static/img/tabbar/shouye-active.png differ
diff --git a/weapp/src/static/img/tabbar/shouye.png b/weapp/src/static/img/tabbar/shouye.png
new file mode 100644
index 00000000..35efae98
Binary files /dev/null and b/weapp/src/static/img/tabbar/shouye.png differ
diff --git a/weapp/src/static/img/tabbar/wode-active.png b/weapp/src/static/img/tabbar/wode-active.png
new file mode 100644
index 00000000..d51ee6ec
Binary files /dev/null and b/weapp/src/static/img/tabbar/wode-active.png differ
diff --git a/weapp/src/static/img/tabbar/wode.png b/weapp/src/static/img/tabbar/wode.png
new file mode 100644
index 00000000..292c7460
Binary files /dev/null and b/weapp/src/static/img/tabbar/wode.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/check.png b/weapp/src/static/img/waterEnvTreat/check.png
new file mode 100644
index 00000000..8fe0d065
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/check.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/icon_guanwang.png b/weapp/src/static/img/waterEnvTreat/icon_guanwang.png
new file mode 100644
index 00000000..84cb86aa
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/icon_guanwang.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/icon_guanwang_active.png b/weapp/src/static/img/waterEnvTreat/icon_guanwang_active.png
new file mode 100644
index 00000000..b5a4366c
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/icon_guanwang_active.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/icon_monitor.png b/weapp/src/static/img/waterEnvTreat/icon_monitor.png
new file mode 100644
index 00000000..465570f7
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/icon_monitor.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/icon_monitor_active.png b/weapp/src/static/img/waterEnvTreat/icon_monitor_active.png
new file mode 100644
index 00000000..f9eaee4c
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/icon_monitor_active.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/icon_paishui.png b/weapp/src/static/img/waterEnvTreat/icon_paishui.png
new file mode 100644
index 00000000..3958ffcc
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/icon_paishui.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/icon_paishui_active.png b/weapp/src/static/img/waterEnvTreat/icon_paishui_active.png
new file mode 100644
index 00000000..f540e05b
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/icon_paishui_active.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/icon_shuili.png b/weapp/src/static/img/waterEnvTreat/icon_shuili.png
new file mode 100644
index 00000000..16599c1a
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/icon_shuili.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/icon_shuili_active.png b/weapp/src/static/img/waterEnvTreat/icon_shuili_active.png
new file mode 100644
index 00000000..f20da778
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/icon_shuili_active.png differ
diff --git a/weapp/src/static/img/waterEnvTreat/uncheck.png b/weapp/src/static/img/waterEnvTreat/uncheck.png
new file mode 100644
index 00000000..8a32043e
Binary files /dev/null and b/weapp/src/static/img/waterEnvTreat/uncheck.png differ
diff --git a/weapp/src/store/globalState.js b/weapp/src/store/globalState.js
new file mode 100644
index 00000000..6738a652
--- /dev/null
+++ b/weapp/src/store/globalState.js
@@ -0,0 +1,13 @@
+import deepMerge from 'deepmerge';
+
+/* 全局状态 */
+const state = {};
+
+export const setState = (key,value)=>{
+ state[key] = value;
+};
+
+export const getState = (key) =>{
+ let res = typeof state[key] === 'Object' ? deepMerge({}, state[key]) : state[key];
+ return state[key]? res:undefined;
+};
\ No newline at end of file
diff --git a/weapp/src/styles/mixins.scss b/weapp/src/styles/mixins.scss
new file mode 100644
index 00000000..bf84b63f
--- /dev/null
+++ b/weapp/src/styles/mixins.scss
@@ -0,0 +1,18 @@
+@mixin text-ellipsis() {
+ /*postcss-pxtransform rn eject enable*/
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ /*postcss-pxtransform rn eject disable*/
+ }
+
+@mixin lamp-clamp($line) {
+ /*postcss-pxtransform rn eject enable*/
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: $line;
+ /* autoprefixer: ignore next */
+ -webkit-box-orient: vertical;
+ /*postcss-pxtransform rn eject disable*/
+}
\ No newline at end of file
diff --git a/weapp/src/styles/theme.scss b/weapp/src/styles/theme.scss
new file mode 100644
index 00000000..b66989d9
--- /dev/null
+++ b/weapp/src/styles/theme.scss
@@ -0,0 +1,87 @@
+// Custom Theme
+$color-brand: #2579C7;
+$color-brand-light: #5ebfff;
+$color-brand-dark: #2088cc;
+// end Custom Theme
+
+@import './mixins.scss';
+@import 'node_modules/taro-ui/dist/style/mixins/libs/hairline';
+@import 'node_modules/taro-ui/dist/style/mixins/libs/tint';
+
+$primary-color: $color-brand;
+$primary-color-light: $color-brand-light;
+$primary-color-lighter: lighten($color-brand-light, 20%);
+$primary-color-dark: $color-brand-dark;
+$primary-color-darker: darken($color-brand-light, 20%);
+
+$price-color: #f2270c;
+$color-page-bg: #f0f2f5;
+$under-line-color: #c4d8e7;
+
+$color-border-grey: #ccc !default;
+$border-default: 1px solid $color-border-grey;
+$disabled-color: #ddd;
+
+$shadow-color: rgba(40, 170, 255, 0.1);
+//$shadow-color: $primary-color;
+
+$black: #000;
+$white: #fff;
+$orange-color: #fd8814;
+$red-color: #f23030;
+$golden-color: #ab956d;
+$silver-grey-color: #ccc;
+$light-grey-color: #ededed;
+$ice-blue-color: #53c7ca; //冰蓝
+
+$text-color: #333;
+$text-color-light: #56585c;
+$text-color-lighter: #999;
+
+$level-default: $text-color-light;
+$level-normal: #07c160;
+$level-primary: $primary-color;
+$level-warn: #ffc300;
+$level-danger: #fa5151;
+$level-info: $ice-blue-color;
+
+$placeholder: #ccc;
+
+%page {
+ display: flex;
+ flex-direction: column;
+ background-color: $color-page-bg;
+ min-height: 100vh;
+ color: $text-color;
+ box-sizing: border-box;
+ width: 100%;
+}
+
+%flex {
+ display: flex;
+ box-sizing: border-box;
+}
+
+%flex-1 {
+ display: flex;
+ flex: 1;
+ box-sizing: border-box;
+}
+
+%flex-row {
+ display: flex;
+ box-sizing: border-box;
+ flex-direction: row;
+}
+
+%flex-column {
+ @extend %flex;
+ flex-direction: column;
+}
+
+%flex-center {
+ display: flex;
+ box-sizing: border-box;
+ justify-content: center;
+ align-items: center;
+}
\ No newline at end of file
diff --git a/weapp/src/utils/appUpdate.js b/weapp/src/utils/appUpdate.js
new file mode 100644
index 00000000..b667581d
--- /dev/null
+++ b/weapp/src/utils/appUpdate.js
@@ -0,0 +1,32 @@
+import Taro from '@tarojs/taro';
+
+export default function appUpdate() {
+ const updateManager = Taro.getUpdateManager();
+
+ updateManager.onCheckForUpdate(function (res) {
+ // 请求完新版本信息的回调
+ console.log('是否有更新:', res.hasUpdate);
+ });
+
+ updateManager.onUpdateReady(function () {
+ Taro.showModal({
+ title: '更新提示',
+ content: '新版本已经准备好,是否重启应用?',
+ success(res) {
+ if (res.confirm) {
+ // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
+ updateManager.applyUpdate();
+ }
+ }
+ });
+ });
+
+ updateManager.onUpdateFailed(function () {
+ // 新版本下载失败
+ Taro.showToast({
+ title: '新版本下载失败',
+ icon: 'none',
+ duration: 1000
+ });
+ });
+}
diff --git a/weapp/src/utils/auth-code.js b/weapp/src/utils/auth-code.js
new file mode 100644
index 00000000..a2efe687
--- /dev/null
+++ b/weapp/src/utils/auth-code.js
@@ -0,0 +1,81 @@
+'use strict';
+
+const AuthorizationCode = {
+ // 项目管理
+ ProjectManage: '001',
+ AddProject: '001001',
+ EditProject: '001002',
+ DelProject: '001003',
+ StartProject: '001004',
+ StopProject: '001005',
+ RestartProject: '001006',
+ ChangeProjectMsg: '001007',
+ ExportProjectMsg: '001008',
+ CheckProjectDetail: '001009',
+ ManageAllProject: '001010', // 获取全部项目
+
+ // 进度及计划
+ PlanManage: '002',
+ AddPlan: '002001',
+ EditPlan: '002002',
+
+ // 变更记录
+ ChangeRecord: '003',
+ AddChangeRecord: '003001',
+ DelChangeRecord: '003002',
+ EditChangeRecord: '003003',
+ DownChangeRocordFile: '003004',
+
+ // 到货延期
+ ArrivalDelay: '004',
+ AddArrivalDelay: '004001',
+ DelArrivalDelay: '004002',
+ EditArrivalDelay: '004003',
+ DownArrivalDelayFile: '004004',
+
+ // 项目文档中心
+ ProjectDocument: '005',
+ AddPDFolder: '005001',
+ EditPDFolder: '005002',
+ DelPDFolder: '005003',
+ UploadPDFile: '005004',
+ DownPDFile: '005005',
+ DelPDFile: '005006',
+
+ // 项目验收
+ ProjectAcceptance: '006',
+ SubmitPA: '006001',
+ AcceptancePASubmit: '006002',
+ CheckPADetail: '006003',
+
+ // 施工日志
+ ConstructionLog: '007',
+ AddCL: '007001',
+ EditCL: '007002',
+ DelCL: '007003',
+ ExportCl: '007004',
+ DetailCL: '007005',
+ CLAcceptance: '007006',
+
+ // 系统文档中心
+ SystemDocument: '008',
+ DownSDFile: '008001',
+
+ // 部门人员
+ DepartmentUser: '009',
+ AddDepart: '009001',
+ EditDepart: '009002',
+ DelDepart: '009003',
+ AddRole: '009004',
+ EditRole: '009005',
+ DelRole: '009006',
+ AddUser: '009007',
+ EditUser: '009008',
+ DelUser: '009009',
+
+ // 系统权限
+ SystemPower: '010',
+ EditSP: '010001'
+};
+
+module.exports = AuthorizationCode;
diff --git a/weapp/src/utils/chart/barChart.js b/weapp/src/utils/chart/barChart.js
new file mode 100644
index 00000000..cc52b79c
--- /dev/null
+++ b/weapp/src/utils/chart/barChart.js
@@ -0,0 +1,260 @@
+import complateF2 from './complateF2';
+
+const F2 = complateF2();
+
+export function barChart({ data, config = {} }) {
+ return (canvas, width, height) => {
+ const type = config.type ? config.type : null;
+ const typeColor = config.typeColor ? config.typeColor : 'type';
+ const xAxis = config.xAxis ? config.xAxis : 'kind';
+ const yAxis = config.yAxis ? config.yAxis : 'value';
+ const flag = config.flag ? config.flag : null;
+ const padding = config.padding ? config.padding : [25, 0, 20, 0];
+ const timeValue = config.timeValue || null //甘特图时间格式数据处理标识 { x: 'stageName', y: ['startTime', 'overTime'] }
+
+ const chart = new F2.Chart({
+ el: canvas,
+ width,
+ height,
+ // padding,
+ });
+ const dataCfg = {};
+ if (config.tickCountX) {
+ dataCfg[xAxis] = {
+ tickCount: config.tickCountX
+ }
+ }
+ if (config.tickCountY) {
+ dataCfg[yAxis] = {
+ tickCount: config.tickCountY
+ }
+ }
+
+
+ //柱状图90颠倒-> 甘特图
+ if (config.transposed) {
+ chart.coord({
+ transposed: true
+ });
+ }
+
+ if (!data.length) {
+ chart.guide().text({
+ position: ['50%', '50%'],
+ content: '暂无数据',
+ offsetY: -10,
+ style: {
+ fontSize: 12,
+ textAlign: 'center',
+ textBaseLine: 'middle',
+ },
+ });
+ }
+ //甘特图
+ if (type === 'gantt') {
+ if (timeValue) {
+ /**
+ * 处理时间格式
+ * 1.时间格式转时间戳
+ * 2.y轴lable展示处理
+ * 3.tooltip时间格式
+ */
+ if (data.length) {
+ const minData = data.filter(item => item[timeValue.y[0]]).map(item => item[timeValue.y[0]]).sort() || []
+ const fistData = minData.length && new Date(minData[0]).getTime()
+
+ data.forEach((obj) => {
+ obj.x = obj[timeValue.x];
+ obj.y = [obj[timeValue.y[0]] ? new Date(obj[timeValue.y[0]]).getTime() - fistData : null, obj[timeValue.y[1]] ? new Date(obj[timeValue.y[1]]).getTime() - fistData : null];
+ });
+ chart.axis('y', {
+ label: (e, index, total) => {
+ const cfg = {
+ textAlign: 'center'
+ };
+ let time = e;
+ if (index === 0) {
+ time = new Date(Number(e) + Number(fistData));
+ cfg.textAlign = 'start';
+ } else if (index > 0 && index === total - 1) {
+ time = new Date(Number(e) + Number(fistData));
+ cfg.textAlign = 'end';
+ } else {
+ time = new Date(Number(e) + Number(fistData))
+ }
+ cfg.text = `${time.getFullYear()}-${time.getMonth() + 1}-${time.getDate()}`
+ return cfg
+ }
+ })
+ }
+ }
+ chart.tooltip({
+ showItemMarker: false,
+ onShow: function onShow(ev) {
+ const items = ev.items;
+ items[0].name = '时间';
+ const value = timeValue ? [items[0].origin[timeValue.y[0]], items[0].origin[timeValue.y[1]]] : items[0].origin[yAxis];
+ items[0].value = value[0] + ' 至 ' + value[1];
+ }
+ });
+ } else if (type === 'tipShowX') {
+ chart.tooltip({
+ onShow: function onShow(ev) {
+ const items = ev.items;
+ items[0].name = items[0].origin[xAxis];
+ }
+ });
+ }
+ chart.legend(false)
+ chart.source(data, dataCfg);
+
+ if (config.colors) {
+ chart.interval().position(`${xAxis}*${yAxis}`).color(xAxis, config.colors)
+ } else {
+ chart.interval().position(`${xAxis}*${yAxis}`);
+ }
+ chart.render();
+ return chart;
+ };
+}
+
+//时间甘特图
+export function ganttBarChart({ data, config = {} }) {
+ return (canvas, width, height) => {
+ const type = config.type ? config.type : null;
+ const xAxis = config.xAxis ? config.xAxis : 'kind';
+ const yAxis = config.yAxis ? config.yAxis : 'value';
+
+ const chart = new F2.Chart({
+ el: canvas,
+ width,
+ height,
+ // padding,
+ });
+ const dataCfg = {};
+ if (config.tickCountX) {
+ dataCfg[xAxis] = {
+ tickCount: config.tickCountX
+ }
+ }
+ if (config.tickCountY) {
+ dataCfg[yAxis] = {
+ tickCount: config.tickCountY
+ }
+ }
+ const min = Math.min([].concat.apply([], data.map(val => val[yAxis].map(t => new Date(t).getTime()))));
+ console.log(min);
+
+ data.forEach(val => {
+ val[yAxis] = val[yAxis].map(t => {
+
+ })
+ })
+ chart.source(data, dataCfg);
+
+ chart.coord({
+ transposed: true
+ });
+
+ chart.tooltip({
+ showItemMarker: false,
+ onShow: function onShow(ev) {
+ const items = ev.items;
+ items[0].name = '时间';
+ const value = items[0].origin[yAxis];
+ items[0].value = value[0] + ' 至 ' + value[1];
+ }
+ });
+
+
+ if (config.colors) {
+ chart.interval().position(`${xAxis}*${yAxis}`).color(xAxis, config.colors)
+ } else {
+ chart.interval().position(`${xAxis}*${yAxis}`);
+ }
+ chart.render();
+ return chart;
+ };
+}
+export function groupBarChart({ data, config = {} }) {
+ // data = [{
+ // kind: '第一部',
+ // value: 38,
+ // typeColor: '2018年10月'
+ // }, {
+ // kind: '第二部',
+ // value: 92,
+ // typeColor: '2018年10月'
+ // }, {
+ // kind: '第一部',
+ // value: 18,
+ // typeColor: '2018年11月'
+ // }, {
+ // kind: '第二部',
+ // value: 22,
+ // typeColor: '2018年11月'
+ // }];
+ return (canvas, width, height) => {
+ const type = config.type ? config.type : null;
+ const typeColor = config.typeColor ? config.typeColor : 'type';
+ const xAxis = config.xAxis ? config.xAxis : 'kind';
+ const yAxis = config.yAxis ? config.yAxis : 'value';
+ const flag = config.flag ? config.flag : null;
+ const padding = config.padding ? config.padding : [25, 0, 20, 0];
+
+ const chart = new F2.Chart({
+ el: canvas,
+ width,
+ height,
+ padding: padding,
+ });
+
+ chart.source(data);
+
+ let label = {};
+ if (flag && flag == 'caseArea') {
+ label = {
+ rotate: Math.PI / 2,
+ textAlign: 'start',
+ textBaseline: 'middle',
+ };
+ }
+ chart.axis(xAxis, {
+ label,
+ });
+ chart.legend({
+ offsetY: -15,
+ });
+ chart.tooltip({
+ custom: true, // 自定义 tooltip 内容框
+ onChange: function onChange(obj) {
+ const legend = chart.get('legendController').legends.top[0];
+ const tooltipItems = obj.items;
+ const legendItems = legend.items;
+ const map = [];
+ for (const legendItem of legendItems) {
+ legendItem.value = '0';
+ }
+ for (const legendItem of legendItems) {
+ for (const tooltipItem of tooltipItems) {
+ if (legendItem.name == tooltipItem.name) {
+ legendItem.value = tooltipItem.value;
+ }
+ }
+ }
+ legend.setItems(legendItems);
+ },
+ onHide: function onHide() {
+ const legend = chart.get('legendController').legends.top[0];
+ legend.setItems(chart.getLegendItems().country);
+ },
+ });
+ chart.interval().position(`${xAxis}*${yAxis}`).color(typeColor).adjust({
+ type: 'dodge',
+ marginRatio: 0.05, // 设置分组间柱子的间距
+ });
+
+ chart.render();
+ return chart;
+ };
+}
\ No newline at end of file
diff --git a/weapp/src/utils/chart/complateF2.js b/weapp/src/utils/chart/complateF2.js
new file mode 100644
index 00000000..07e38075
--- /dev/null
+++ b/weapp/src/utils/chart/complateF2.js
@@ -0,0 +1,30 @@
+import F2 from '../../static/f2-canvas/lib/f2';
+
+export default function complateF2() {
+ F2.Util.addEventListener = function (source, type, listener) {
+ source.addListener(type, listener);
+ };
+
+ F2.Util.removeEventListener = function (source, type, listener) {
+ source.removeListener(type, listener);
+ };
+
+ F2.Util.createEvent = function (event, chart) {
+ const type = event.type;
+ let x = 0;
+ let y = 0;
+ const touches = event.touches;
+ if (touches && touches.length > 0) {
+ x = touches[0].x;
+ y = touches[0].y;
+ }
+
+ return {
+ type,
+ chart,
+ x,
+ y
+ };
+ };
+ return F2;
+}
\ No newline at end of file
diff --git a/weapp/src/utils/chart/index.js b/weapp/src/utils/chart/index.js
new file mode 100644
index 00000000..2e85c8b6
--- /dev/null
+++ b/weapp/src/utils/chart/index.js
@@ -0,0 +1,13 @@
+import { barChart,ganttBarChart } from "./barChart";
+import { lineChart } from "./lineChart";
+import { pieChart,homePanelChart } from "./pieChart";
+import { radarChart } from "./radarChart";
+
+export default {
+ barChart,
+ lineChart,
+ pieChart,
+ homePanelChart,
+ radarChart,
+ ganttBarChart
+}
\ No newline at end of file
diff --git a/weapp/src/utils/chart/lineChart.js b/weapp/src/utils/chart/lineChart.js
new file mode 100644
index 00000000..f4e14a28
--- /dev/null
+++ b/weapp/src/utils/chart/lineChart.js
@@ -0,0 +1,101 @@
+// import F2 from '../../static/f2-canvas/lib/f2';
+import complateF2 from './complateF2';
+
+const F2 = complateF2();
+
+
+export function lineChart(source) {
+ const { data, config } = source;
+ return (canvas, width, height) => {
+ // data = [
+ // {
+ // value: 10,
+ // time: "1",
+ // type: "案发数"
+ // },
+ // ];
+ const xAxis = config && config.xAxis ? config.xAxis : 'time';
+ const yAxis = config && config.yAxis ? config.yAxis : 'value';
+ const flag = config && config.flag ? config.flag : null;
+ const unit = config && config.unit ? config.unit : '';
+ const padding = config && config.padding ? config.padding : [10, 10, 30, 30];
+
+ const chart = new F2.Chart({
+ el: canvas,
+ width,
+ height,
+ padding,
+ });
+ chart.source(data, {
+ time: {
+ type: 'timeCat',
+ },
+ });
+
+ chart.axis(xAxis, {
+ label: (text, index, total) => {
+ const cfg = {};
+ // 第一个点左对齐,最后一个点右对齐,其余居中,只有一个点时左对齐
+ // if (flag != 'cityCation') {
+ // if (index === 0) {
+ // cfg.textAlign = 'start';
+ // } else if (index > 0 && index === total - 1) {
+ // cfg.textAlign = 'end';
+ // }
+ // }
+
+ if (flag == 'pccsMonth') {
+ cfg.text = parseInt(text.substring(8)); // cfg.text 支持文本格式化处理
+ } else if (flag == 'cityCation' || flag == 'airRateMonth') {
+ cfg.text = text.substring(2) + '月';
+ }
+ return cfg;
+ },
+ });
+
+ // chart.axis(yAxis, {
+ // label: (text, index, total) => {
+ // const cfg = {};
+ // cfg.text = '';
+ // return cfg;
+ // }
+ // })
+
+ chart.tooltip({
+ onChange(obj) {
+ // obj: { x, y, title, items }
+ const item = obj.items[0];
+ const items = obj.items;
+ if (flag == 'airRateMonth') {
+ item.name =
+ item.origin.year +
+ item.origin.month.substring(2) +
+ '月-' +
+ '优良天数';
+ item.value = ' ' + item.value + '天';
+ } else {
+ for (const i of items) {
+ i.value += unit;
+ }
+ }
+ },
+ });
+ chart.legend('type', {
+ position: 'bottom',
+ align: 'center',
+ // offsetY: 20
+ });
+
+ const axis = `${xAxis}*${yAxis}`;
+ if (config && config.type == 'map') {
+ chart.line().position(axis);
+ chart.area().position(axis);
+ } else if (config && config.type == 'contrast') {
+ chart.line().position(axis).color('type');
+ } else {
+ chart.line().position(axis);
+ }
+ chart.render();
+ return chart;
+ };
+}
diff --git a/weapp/src/utils/chart/pieChart.js b/weapp/src/utils/chart/pieChart.js
new file mode 100644
index 00000000..efe8072a
--- /dev/null
+++ b/weapp/src/utils/chart/pieChart.js
@@ -0,0 +1,204 @@
+
+import complateF2 from './complateF2';
+
+const F2 = complateF2();
+
+export function pieChart({data, config}) {
+ // data = [
+ // {
+ // value: 10,
+ // memo: "第一类",
+ // const: "const"
+ // },
+ // {
+ // value: 30,
+ // memo: "第二类",
+ // const: "const"
+ // },
+ // {
+ // value: 60,
+ // memo: "第三类",
+ // const: "const"
+ // }
+ // ];
+ return (canvas, width, height)=>{
+ if (!config) {
+ config = {};
+ }
+ const padding =
+ config && config.padding ? config.padding : [30, 0, 20, 0];
+ const unit = config && config.unit ? config.unit : '';
+ const innerRadius =
+ config && config.innerRadius ? config.innerRadius : 0;
+ let colors = config && config.colors ? config.colors : null;
+ const flag = config && config.flag ? config.flag : null;
+ const chart = new F2.Chart({
+ el: canvas,
+ width,
+ height,
+ padding: padding,
+ });
+
+ if (config && config.content) {
+ chart.guide().text({
+ position: ['50%', '50%'],
+ content: config.content.value,
+ offsetY: 10,
+ style: {
+ fontSize: config.content.fontSize_val || 20,
+ fill: '#000',
+ fontWeight: '700',
+ textAlign: 'center',
+ textBaseLine: 'middle',
+ },
+ });
+ chart.guide().text({
+ position: ['50%', '50%'],
+ content: config.content.lable,
+ offsetY: -10,
+ style: {
+ fontSize: config.content.fontSize_lab || 12,
+ textAlign: 'center',
+ textBaseLine: 'middle',
+ },
+ });
+ }
+
+ //数据全为零
+ if (config && config.zero) {
+ for (const i in data) {
+ data[i].value = 1;
+ }
+ }
+
+ chart.source(data);
+ chart.axis(false);
+ chart.legend('memo', {
+ position: 'bottom',
+ align: 'center',
+ clickable: config.clickDisable ? false : true,
+ });
+
+ if (config && config.zero) {
+ colors = ['#bbb'];
+ chart.tooltip({
+ onChange(obj) {
+ const item = obj.items[0];
+ if (item.name.length > 18) {
+ item.name = item.name.substring(0, 16) + '... ';
+ }
+ item.value = '0';
+ },
+ });
+ } else {
+ chart.tooltip({
+ onChange(obj) {
+ // obj: { x, y, title, items }
+ const item = obj.items[0];
+ if (item.name.length > 18) {
+ item.name = item.name.substring(0, 16) + '... ';
+ }
+ const ratio = item.origin.ratio?`(${item.origin.ratio}%)`:''
+ item.value += `${unit} ${ratio}`;
+ },
+ });
+
+ // chart.legend(false);
+ if (flag != 'pccsTypeDistribute') {
+ chart.pieLabel({
+ anchorOffset: 5, // 锚点的偏移量
+ sidePadding: 0, // 文本距离画布左右两边的距离
+ skipOverlapLabels: false, // 是否不展示重叠的文本
+ label1(data, color) {
+ return {
+ text: `${data.value} ${unit}`, // 文本内容
+ fill: color, // 文本颜色
+ };
+ },
+ });
+ }
+ }
+ chart.interaction('pie-select');
+ chart.coord('polar', {
+ transposed: true,
+ innerRadius: innerRadius,
+ radius: 0.75,
+ // startAngle,
+ // endAngle
+ });
+ chart
+ .interval()
+ .position('const*value')
+ .color('memo', colors)
+ .adjust('stack');
+ chart.render();
+ return chart;
+ };
+}
+//仪表盘
+export function homePanelChart({data, config}) {
+ return (canvas, width, height)=>{
+ const padding = config && config.padding ? config.padding : [0, 0, 0, 0];
+ // const unit = config && config.unit ? config.unit : '';
+ const innerRadius = config && config.innerRadius ? config.innerRadius : 0;
+ const chart = new F2.Chart({
+ el: canvas,
+ width,
+ height,
+ padding: padding,
+ });
+
+ if (config && config.content) {
+ chart.guide().text({
+ position: ['50%', '55%'],
+ content: config.content.value,
+ offsetY: -15,
+ style: {
+ fontSize: config.content.fontSize_val || 18,
+ fill: config.content.color,
+ fontWeight: 'bolder',
+ textAlign: 'center',
+ textBaseLine: 'middle',
+ },
+ });
+ chart.guide().text({
+ position: ['50%', '55%'],
+ content: config.content.lable,
+ offsetY: 20,
+ style: {
+ fontSize: config.content.fontSize_lab || 12,
+ fill: config.content.color,
+ textAlign: 'center',
+ textBaseLine: 'middle',
+ },
+ });
+ }
+ const startAngle = (6 * Math.PI) / 8;
+ const endAngle = (18 * Math.PI) / 8;
+ chart.source(data);
+ chart.axis(false);
+ chart.tooltip(false);
+ chart.legend(false);
+ // chart.interaction('pie-select');
+ chart.coord('polar', {
+ transposed: true,
+ innerRadius: innerRadius,
+ radius: 1,
+ startAngle,
+ endAngle,
+ });
+ let pieColor = '#ffffff';
+ let pieBg = 'rgba(255,255,255,0.3)';
+ if (config.content.color && config.content.color != '#fff') {
+ pieColor = '#111';
+ pieBg = 'rgba(0,0,0,0.3)';
+ }
+ chart
+ .interval()
+ .position('const*value')
+ .color('memo', [pieColor, pieBg])
+ .adjust('stack');
+ chart.render();
+ };
+
+}
\ No newline at end of file
diff --git a/weapp/src/utils/chart/radarChart.js b/weapp/src/utils/chart/radarChart.js
new file mode 100644
index 00000000..1bcd5629
--- /dev/null
+++ b/weapp/src/utils/chart/radarChart.js
@@ -0,0 +1,74 @@
+//雷达图啦
+import complateF2 from "./complateF2";
+const F2 = complateF2()
+
+export function radarChart(canvas, width, height, data) {
+ // data = [{
+ // item: 'CODMn',
+ // value: 6.5
+ // }, {
+ // item: 'DO',
+ // value: 9.5
+ // }, {
+ // item: 'NH4',
+ // value: 9
+ // }, {
+ // item: 'TOC',
+ // value: 6
+ // }, {
+ // item: 'PH',
+ // value: 6
+ // }];
+
+ let chart = new F2.Chart({
+ el: canvas,
+ width,
+ height,
+ padding: [40, 10, 10, 10]
+ });
+
+ chart.source(data, {
+ value: {
+ min: 0,
+ max: 10
+ }
+ });
+ chart.coord('polar');
+ chart.tooltip({
+ offsetY: -20,
+ onChange(obj){
+ obj.items[0].name = obj.items[0].title
+ }
+ });
+ chart.axis('value', {
+ grid: {
+ lineDash: null
+ },
+ label: null,
+ line: null
+ });
+ chart.legend('type', {
+ position: 'bottom',
+ align: 'center',
+ });
+
+ chart.area().position('item*value').color('#43CAF9').style({
+ fillOpacity: 0.2
+ }).animate({
+ appear: {
+ animation: 'groupWaveIn'
+ }
+ });
+ chart.line().position('item*value').color('#43CAF9').size(1).animate({
+ appear: {
+ animation: 'groupWaveIn'
+ }
+ });
+ chart.point().position('item*value').color('#43CAF9').animate({
+ appear: {
+ delay: 300
+ }
+ });
+ chart.render();
+ return chart;
+}
\ No newline at end of file
diff --git a/weapp/src/utils/color.js b/weapp/src/utils/color.js
new file mode 100644
index 00000000..f1d13f39
--- /dev/null
+++ b/weapp/src/utils/color.js
@@ -0,0 +1,88 @@
+/**
+ * color转rgb 获取颜色rgb值 用于计算
+ * @param {string} hexcolor
+ * @return {Array} rgb颜色值 数组
+ */
+const colorToRgb = hexcolor => {
+ let r
+ let g
+ let b
+ if (hexcolor.substr(0, 3) === 'rgb') {
+ const start = hexcolor.indexOf('(') + 1
+ const length = hexcolor.indexOf(')') - start
+ const rgb = hexcolor.substr(start, length).split(',')
+ r = parseInt(rgb[0])
+ g = parseInt(rgb[1])
+ b = parseInt(rgb[2])
+ } else {
+ hexcolor = hexcolor.substr(0, 1) === '#' ? hexcolor.substr(1) : hexcolor
+ if (hexcolor.length === 3) {
+ const rgb = hexcolor.split('')
+ hexcolor = `${rgb[0]}${rgb[0]}${rgb[1]}${rgb[1]}${rgb[2]}${rgb[2]}`
+ }
+ r = parseInt(hexcolor.substr(0, 2), 16)
+ g = parseInt(hexcolor.substr(2, 2), 16)
+ b = parseInt(hexcolor.substr(4, 2), 16)
+ }
+ return [r, g, b]
+ }
+
+ /**
+ * 颜色减淡
+ * @param {string} color hex颜色值
+ * @param {number} level 0-1
+ * @return {string} rgb颜色值
+ */
+ const colorLighten = (color, level = 1) => {
+ const rgb = colorToRgb(color)
+ for (let i = 0; i < 3; i++) {
+ rgb[i] = Math.floor((255 - rgb[i]) * level + rgb[i])
+ }
+ return `rgb(${rgb.join(',')})`
+ }
+
+ /**
+ * 颜色加深
+ * @param {string} color hex颜色值
+ * @param {number} level 0-1
+ * @return {string} rgb颜色值
+ */
+ const colorDark = (color, level = 1) => {
+ const rgb = colorToRgb(color)
+ for (let i = 0; i < 3; i++) {
+ rgb[i] = Math.floor(rgb[i] * (1 - level))
+ }
+ return `rgb(${rgb.join(',')})`
+ }
+
+ /**
+ * 计算出具有较高对比度的颜色是白色还是黑色
+ * @param {string} hexcolor hex颜色 或者rgb颜色
+ * 传入一个hex颜色值会自动对比用这个颜色做为背景,文字应该用白色还是黑色
+ */
+ const getContrastYIQ = hexcolor => {
+ let yiq
+ const [r, g, b] = colorToRgb(hexcolor)
+ yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000
+ return (yiq >= 128) ? 'black' : 'white'
+ }
+
+ /**
+ * 验证是否是合法的颜色值
+ * @param {string} color 颜色值
+ */
+ const isColorString = color => {
+ const re1 = /^#([0-9a-f]{6}|[0-9a-f]{3})$/i
+ const re2 = /^rgb\(([0-9]|[0-9][0-9]|25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9])\,([0-9]|[0-9][0-9]|25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9])\,([0-9]|[0-9][0-9]|25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9])\)$/i
+ const re3 = /^rgba\(([0-9]|[0-9][0-9]|25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9])\,([0-9]|[0-9][0-9]|25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9])\,([0-9]|[0-9][0-9]|25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9])\,(1|1.0|0.[0-9])\)$/i
+ return re2.test(color) || re1.test(color) || re3.test(color);
+ }
+
+ export {
+ colorToRgb,
+ colorLighten,
+ colorDark,
+ getContrastYIQ,
+ isColorString
+ }
+
\ No newline at end of file
diff --git a/weapp/src/utils/douglasPeucker.js b/weapp/src/utils/douglasPeucker.js
new file mode 100644
index 00000000..36888774
--- /dev/null
+++ b/weapp/src/utils/douglasPeucker.js
@@ -0,0 +1,70 @@
+
+
+const DouglasPeucker = {
+ getProcessPoints: function (points, tolerance) {
+ /// 获取处理后的点
+ /// 包含点的数组
+ /// 取样临界值
+ ///
+ if (!Array.isArray(points) || !points.length) { //当points不是数组或没有值时,直接返回一个空数组
+ return [];
+ }
+ if (points.length < 3) return points; //小于3个点时不抽稀,因为1个或2个点无法进行抽稀
+ let firstPoint = 0,
+ lastPoint = points.length - 1; //取开始点与结束点的下标
+ let pointIndexsToKeep = []; //保存需要点下标的数组
+ pointIndexsToKeep.push(firstPoint);
+ pointIndexsToKeep.push(lastPoint); //开始与结束不进行处理,直接保留
+ while (points[firstPoint] == points[lastPoint]) { //处理闭合情况,闭合时,强制断开
+ lastPoint--;
+ }
+ this.reduce(points, firstPoint, lastPoint, tolerance, pointIndexsToKeep); //抽稀
+ let resultPoints = []; //返回的点数组
+ pointIndexsToKeep.sort(function (a, b) { //排序,这个可排可不排
+ return a - b;
+ });
+ for (let i = 0; i < pointIndexsToKeep.length; i++) {
+ resultPoints.push(points[pointIndexsToKeep[i]]);
+ }
+ return resultPoints;
+ },
+ reduce: function (points, firstPoint, lastPoint, tolerance, pointIndexsToKeep) {
+ /// 抽稀处理
+ /// 待抽稀的数组
+ /// 起点
+ /// 终点
+ /// 取样临界值
+ /// 保留点下标的数组
+ let maxDis = 0,
+ idxFarthest = 0; //定义最大长度及最远点的下标
+ for (let i = firstPoint, dis; i < lastPoint; i++) {
+ dis = this.perpendicularDistance(points[firstPoint], points[lastPoint], points[i]); //获取当前点到起点与
+ if (dis > maxDis) { //保存最远距离
+ maxDis = dis;
+ idxFarthest = i;
+ }
+ }
+ if (maxDis > tolerance && idxFarthest != 0) { //如果最远距离大于临界值
+ pointIndexsToKeep.push(idxFarthest);
+ this.reduce(points, firstPoint, idxFarthest, tolerance, pointIndexsToKeep);
+ this.reduce(points, idxFarthest, lastPoint, tolerance, pointIndexsToKeep);
+ }
+ },
+ perpendicularDistance: function (beginPoint, endPoint, comparePoint) {
+ /// 计算给出的comparePoint到beginPoint与endPoint组成的直线的垂直距离
+ /// 起始点
+ /// 结束点
+ /// 比较点
+ ///
+ //Area = |(1/2)(x1y2 + x2y3 + x3y1 - x2y1 - x3y2 - x1y3)| *Area of triangle
+ //Base = v((x1-x2)2+(y1-y2)2) *Base of Triangle*
+ //Area = .5*Base*H *Solve for height
+ //Height = Area/.5/Base
+ let area = Math.abs(0.5 * (beginPoint.x * endPoint.y + endPoint.x * comparePoint.y + comparePoint.x * beginPoint.y -
+ endPoint.x * beginPoint.y - comparePoint.x * endPoint.y - beginPoint.x * comparePoint.y));
+ let bottom = Math.sqrt(Math.pow(beginPoint.x - endPoint.x, 2) + Math.pow(beginPoint.y - endPoint.y, 2));
+ let height = area / bottom * 2;
+ return height;
+ }
+};
+export default DouglasPeucker;
diff --git a/weapp/src/utils/formatTime.js b/weapp/src/utils/formatTime.js
new file mode 100644
index 00000000..50df5f2d
--- /dev/null
+++ b/weapp/src/utils/formatTime.js
@@ -0,0 +1,29 @@
+const formatTime = date => {
+ if (!date) {
+ date = new Date();
+ }
+ if(typeof date === 'string'){
+ date = new Date(date);
+ if(!date){
+ date = new Date(date.replace(/-/g, '/'));//兼容IOS new Date()
+ }
+ }
+ if(typeof date === 'number'){
+ date = new Date(date);
+ }
+ const year = date.getFullYear();
+ const month = date.getMonth() + 1;
+ const day = date.getDate();
+ const hour = date.getHours();
+ const minute = date.getMinutes();
+ const second = date.getSeconds();
+
+ return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':');
+};
+
+const formatNumber = n => {
+ n = n.toString();
+ return n[1] ? n : '0' + n;
+};
+
+export default formatTime;
diff --git a/weapp/src/utils/print_log_co_info.js b/weapp/src/utils/print_log_co_info.js
new file mode 100644
index 00000000..37fdd447
--- /dev/null
+++ b/weapp/src/utils/print_log_co_info.js
@@ -0,0 +1,25 @@
+const log = function(){
+/*
+ ██████
+ ███░░███
+ ░███ ░░░ ████████ ██████ ██████ █████ █████ ████ ████████
+ ███████ ░░███░░███ ███░░███ ███░░███ ██████████ ███░░ ░░███ ░███ ░░███░░███
+░░░███░ ░███ ░░░ ░███████ ░███████ ░░░░░░░░░░ ░░█████ ░███ ░███ ░███ ░███
+ ░███ ░███ ░███░░░ ░███░░░ ░░░░███ ░███ ░███ ░███ ░███
+ █████ █████ ░░██████ ░░██████ ██████ ░░████████ ████ █████
+ ░░░░░ ░░░░░ ░░░░░░ ░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░ ░░░░░
+
+
+*/
+};
+
+const print_log = ()=>{
+ let lines = new String(log);
+ lines = lines.substring(lines.indexOf('/*') + 3, lines.lastIndexOf('*/'));
+ const co = '\n ©2010-'+new Date().getFullYear()+ ' 飞尚科技';
+
+ console.log('%c ' + lines + co, 'color:#3af');
+
+};
+
+export default print_log;
\ No newline at end of file
diff --git a/weapp/src/utils/regexp.js b/weapp/src/utils/regexp.js
new file mode 100644
index 00000000..6c26f35a
--- /dev/null
+++ b/weapp/src/utils/regexp.js
@@ -0,0 +1,128 @@
+/* eslint-disable import/no-mutable-exports */
+// 常见的 正则表达式 校验
+// QQ号、手机号、Email、是否是数字、去掉前后空格、是否存在中文、邮编、身份证、URL、日期格式、IP
+export const myRegExp = {
+ // 检查字符串是否为合法QQ号码
+ isQQ: function (str) {
+ // 1 首位不能是0 ^[1-9]
+ // 2 必须是 [5, 11] 位的数字 \d{4, 9}
+ let reg = /^[1-9][0-9]{4,9}$/gim;
+ if (reg.test(str)) {
+ console.log('QQ号码格式输入正确');
+ return true;
+ } else {
+ console.log('请输入正确格式的QQ号码');
+ return false;
+ }
+ },
+ // 检查字符串是否为合法手机号码
+ isPhone: function (str) {
+ let reg = /1((((3[0-3,5-9])|(4[5,7,9])|(5[0-3,5-9])|(66)|(7[1-3,5-8])|(8[0-9])|(9[1,8,9]))[0-9]{8})|((34)[0-8]\d{7}))/;
+ if (reg.test(str)) {
+ console.log('手机号码格式输入正确');
+ return true;
+ } else {
+ console.log('请输入正确格式的手机号码');
+ return false;
+ }
+ },
+ // 检查字符串是否为合法Email地址
+ isEmail: function (str) {
+ let reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
+ if (reg.test(str)) {
+ console.log('Email格式输入正确');
+ return true;
+ } else {
+ console.log('请输入正确格式的Email');
+ return false;
+ }
+ },
+ // 检查字符串是否是数字
+ isNumber: function (str) {
+ let reg = /^\d+$/;
+ if (reg.test(str)) {
+ console.log(str + '是数字');
+ return true;
+ } else {
+ console.log(str + '不是数字');
+ return false;
+ }
+ },
+ // 去掉前后空格
+ trim: function (str) {
+ let reg = /^\s+|\s+$/g;
+ return str.replace(reg, '');
+ },
+ // 检查字符串是否存在中文
+ isChinese: function (str) {
+ let reg = /[\u4e00-\u9fa5]/gm;
+ if (reg.test(str)) {
+ console.log(str + ' 中存在中文');
+ return true;
+ } else {
+ console.log(str + ' 中不存在中文');
+ return false;
+ }
+ },
+ // 检查字符串是否为合法邮政编码
+ isPostcode: function (str) {
+ // 起始数字不能为0,然后是5个数字 [1-9]\d{5}
+ let reg = /^[1-9]\d{5}$/g;
+ if (reg.test(str)) {
+ console.log(str + ' 是合法的邮编格式');
+ return true;
+ } else {
+ console.log(str + ' 是不合法的邮编格式');
+ return false;
+ }
+ },
+ // 检查字符串是否为合法身份证号码
+ isIDcard: function (str) {
+ let reg = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
+ if (reg.test(str)) {
+ console.log(str + ' 是合法的身份证号码');
+ return true;
+ } else {
+ console.log(str + ' 是不合法的身份证号码');
+ return false;
+ }
+ },
+ // 检查字符串是否为合法URL
+ isURL: function (str) {
+ let reg = /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i;
+ if (reg.test(str)) {
+ console.log(str + ' 是合法的URL');
+ return true;
+ } else {
+ console.log(str + ' 是不合法的URL');
+ return false;
+ }
+ },
+ // 检查字符串是否为合法日期格式 yyyy-mm-dd
+ isDate: function (str) {
+ let reg = /^[1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9]$/;
+ if (reg.test(str)) {
+ console.log(str + ' 是合法的日期格式');
+ return true;
+ } else {
+ console.log(str + ' 是不合法的日期格式,yyyy-mm-dd');
+ return false;
+ }
+ },
+ // 检查字符串是否为合法IP地址
+ isIP: function (str) {
+ // 1.1.1.1 四段 [0 , 255]
+ // 第一段不能为0
+ // 每个段不能以0开头
+ //
+ // 本机IP: 58.50.120.18
+ let reg = /^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/gi;
+ if (reg.test(str)) {
+ console.log(str + ' 是合法的IP地址');
+ return true;
+ } else {
+ console.log(str + ' 是不合法的IP地址');
+ return false;
+ }
+ }
+};
\ No newline at end of file
diff --git a/weapp/src/utils/region.js b/weapp/src/utils/region.js
new file mode 100644
index 00000000..db0c9c97
--- /dev/null
+++ b/weapp/src/utils/region.js
@@ -0,0 +1,3 @@
+
+const RegionTree=[{"value":1,"label":"北京市","children":[{"value":2,"label":"东城区"},{"value":3,"label":"西城区"},{"value":4,"label":"朝阳区"},{"value":5,"label":"丰台区"},{"value":6,"label":"石景山区"},{"value":7,"label":"海淀区"},{"value":8,"label":"门头沟区"},{"value":9,"label":"房山区"},{"value":10,"label":"通州区"},{"value":11,"label":"顺义区"},{"value":12,"label":"昌平区"},{"value":13,"label":"大兴区"},{"value":14,"label":"怀柔区"},{"value":15,"label":"平谷区"},{"value":16,"label":"密云县"},{"value":17,"label":"延庆县"}]},{"value":18,"label":"天津市","children":[{"value":19,"label":"和平区"},{"value":20,"label":"河东区"},{"value":21,"label":"河西区"},{"value":22,"label":"南开区"},{"value":23,"label":"河北区"},{"value":24,"label":"红桥区"},{"value":25,"label":"东丽区"},{"value":26,"label":"西青区"},{"value":27,"label":"津南区"},{"value":28,"label":"北辰区"},{"value":29,"label":"武清区"},{"value":30,"label":"宝坻区"},{"value":31,"label":"滨海新区"},{"value":32,"label":"宁河县"},{"value":33,"label":"静海县"},{"value":34,"label":"蓟县"}]},{"value":35,"label":"河北省","children":[{"value":36,"label":"石家庄市","children":[{"value":37,"label":"长安区"},{"value":38,"label":"桥东区"},{"value":39,"label":"桥西区"},{"value":40,"label":"新华区"},{"value":41,"label":"井陉矿区"},{"value":42,"label":"裕华区"},{"value":55,"label":"辛集市"},{"value":56,"label":"藁城市"},{"value":57,"label":"晋州市"},{"value":58,"label":"新乐市"},{"value":59,"label":"鹿泉市"},{"value":49,"label":"深泽县"},{"value":50,"label":"赞皇县"},{"value":51,"label":"无极县"},{"value":52,"label":"平山县"},{"value":53,"label":"元氏县"},{"value":54,"label":"赵县"},{"value":43,"label":"井陉县"},{"value":44,"label":"正定县"},{"value":45,"label":"栾城县"},{"value":46,"label":"行唐县"},{"value":47,"label":"灵寿县"},{"value":48,"label":"高邑县"}]},{"value":60,"label":"唐山市","children":[{"value":61,"label":"路南区"},{"value":62,"label":"路北区"},{"value":63,"label":"古冶区"},{"value":64,"label":"开平区"},{"value":65,"label":"丰南区"},{"value":66,"label":"丰润区"},{"value":73,"label":"遵化市"},{"value":74,"label":"迁安市"},{"value":67,"label":"滦县"},{"value":68,"label":"滦南县"},{"value":69,"label":"乐亭县"},{"value":70,"label":"迁西县"},{"value":71,"label":"玉田县"},{"value":72,"label":"唐海县"}]},{"value":75,"label":"秦皇岛市","children":[{"value":76,"label":"海港区"},{"value":77,"label":"山海关区"},{"value":78,"label":"北戴河区"},{"value":79,"label":"青龙满族自治县"},{"value":80,"label":"昌黎县"},{"value":81,"label":"抚宁县"},{"value":82,"label":"卢龙县"}]},{"value":83,"label":"邯郸市","children":[{"value":84,"label":"邯山区"},{"value":85,"label":"丛台区"},{"value":86,"label":"复兴区"},{"value":87,"label":"峰峰矿区"},{"value":88,"label":"邯郸县"},{"value":89,"label":"临漳县"},{"value":102,"label":"武安市"},{"value":96,"label":"邱县"},{"value":97,"label":"鸡泽县"},{"value":98,"label":"广平县"},{"value":99,"label":"馆陶县"},{"value":100,"label":"魏县"},{"value":101,"label":"曲周县"},{"value":90,"label":"成安县"},{"value":91,"label":"大名县"},{"value":92,"label":"涉县"},{"value":93,"label":"磁县"},{"value":94,"label":"肥乡县"},{"value":95,"label":"永年县"}]},{"value":103,"label":"邢台市","children":[{"value":104,"label":"桥东区"},{"value":105,"label":"桥西区"},{"value":106,"label":"邢台县"},{"value":107,"label":"临城县"},{"value":108,"label":"内丘县"},{"value":109,"label":"柏乡县"},{"value":122,"label":"沙河市"},{"value":116,"label":"广宗县"},{"value":117,"label":"平乡县"},{"value":118,"label":"威县"},{"value":119,"label":"清河县"},{"value":120,"label":"临西县"},{"value":121,"label":"南宫市"},{"value":110,"label":"隆尧县"},{"value":111,"label":"任县"},{"value":112,"label":"南和县"},{"value":113,"label":"宁晋县"},{"value":114,"label":"巨鹿县"},{"value":115,"label":"新河县"}]},{"value":123,"label":"保定市","children":[{"value":124,"label":"新市区"},{"value":125,"label":"北市区"},{"value":126,"label":"南市区"},{"value":127,"label":"满城县"},{"value":128,"label":"清苑县"},{"value":129,"label":"涞水县"},{"value":148,"label":"高碑店市"},{"value":142,"label":"顺平县"},{"value":143,"label":"博野县"},{"value":144,"label":"雄县"},{"value":145,"label":"涿州市"},{"value":146,"label":"定州市"},{"value":147,"label":"安国市"},{"value":136,"label":"涞源县"},{"value":137,"label":"望都县"},{"value":138,"label":"安新县"},{"value":139,"label":"易县"},{"value":140,"label":"曲阳县"},{"value":141,"label":"蠡县"},{"value":130,"label":"阜平县"},{"value":131,"label":"徐水县"},{"value":132,"label":"定兴县"},{"value":133,"label":"唐县"},{"value":134,"label":"高阳县"},{"value":135,"label":"容城县"}]},{"value":149,"label":"张家口市","children":[{"value":150,"label":"桥东区"},{"value":151,"label":"桥西区"},{"value":152,"label":"宣化区"},{"value":153,"label":"下花园区"},{"value":154,"label":"宣化县"},{"value":155,"label":"张北县"},{"value":162,"label":"万全县"},{"value":163,"label":"怀来县"},{"value":164,"label":"涿鹿县"},{"value":165,"label":"赤城县"},{"value":166,"label":"崇礼县"},{"value":156,"label":"康保县"},{"value":157,"label":"沽源县"},{"value":158,"label":"尚义县"},{"value":159,"label":"蔚县"},{"value":160,"label":"阳原县"},{"value":161,"label":"怀安县"}]},{"value":167,"label":"承德市","children":[{"value":168,"label":"双桥区"},{"value":169,"label":"双滦区"},{"value":170,"label":"鹰手营子矿区"},{"value":171,"label":"承德县"},{"value":172,"label":"兴隆县"},{"value":173,"label":"平泉县"},{"value":174,"label":"滦平县"},{"value":175,"label":"隆化县"},{"value":176,"label":"丰宁满族自治县"},{"value":177,"label":"宽城满族自治县"},{"value":178,"label":"围场满族蒙古族自治县"}]},{"value":179,"label":"沧州市","children":[{"value":180,"label":"新华区"},{"value":181,"label":"运河区"},{"value":182,"label":"沧县"},{"value":183,"label":"青县"},{"value":184,"label":"东光县"},{"value":185,"label":"海兴县"},{"value":192,"label":"泊头市"},{"value":193,"label":"任丘市"},{"value":194,"label":"黄骅市"},{"value":195,"label":"河间市"},{"value":186,"label":"盐山县"},{"value":187,"label":"肃宁县"},{"value":188,"label":"南皮县"},{"value":189,"label":"吴桥县"},{"value":190,"label":"献县"},{"value":191,"label":"孟村回族自治县"}]},{"value":196,"label":"廊坊市","children":[{"value":197,"label":"安次区"},{"value":198,"label":"广阳区"},{"value":199,"label":"固安县"},{"value":200,"label":"永清县"},{"value":201,"label":"香河县"},{"value":202,"label":"大城县"},{"value":203,"label":"文安县"},{"value":204,"label":"大厂回族自治县"},{"value":205,"label":"霸州市"},{"value":206,"label":"三河市"}]},{"value":207,"label":"衡水市","children":[{"value":208,"label":"桃城区"},{"value":209,"label":"枣强县"},{"value":210,"label":"武邑县"},{"value":211,"label":"武强县"},{"value":212,"label":"饶阳县"},{"value":213,"label":"安平县"},{"value":214,"label":"故城县"},{"value":215,"label":"景县"},{"value":216,"label":"阜城县"},{"value":217,"label":"冀州市"},{"value":218,"label":"深州市"}]}]},{"value":219,"label":"山西省","children":[{"value":220,"label":"太原市","children":[{"value":221,"label":"小店区"},{"value":222,"label":"迎泽区"},{"value":223,"label":"杏花岭区"},{"value":224,"label":"尖草坪区"},{"value":225,"label":"万柏林区"},{"value":226,"label":"晋源区"},{"value":227,"label":"清徐县"},{"value":228,"label":"阳曲县"},{"value":229,"label":"娄烦县"},{"value":230,"label":"古交市"}]},{"value":231,"label":"大同市","children":[{"value":232,"label":"城区"},{"value":233,"label":"矿区"},{"value":234,"label":"南郊区"},{"value":235,"label":"新荣区"},{"value":236,"label":"阳高县"},{"value":237,"label":"天镇县"},{"value":238,"label":"广灵县"},{"value":239,"label":"灵丘县"},{"value":240,"label":"浑源县"},{"value":241,"label":"左云县"},{"value":242,"label":"大同县"}]},{"value":243,"label":"阳泉市","children":[{"value":244,"label":"城区"},{"value":245,"label":"矿区"},{"value":246,"label":"郊区"},{"value":247,"label":"平定县"},{"value":248,"label":"盂县"}]},{"value":249,"label":"长治市","children":[{"value":250,"label":"城区"},{"value":251,"label":"郊区"},{"value":252,"label":"长治县"},{"value":253,"label":"襄垣县"},{"value":254,"label":"屯留县"},{"value":255,"label":"平顺县"},{"value":262,"label":"潞城市"},{"value":256,"label":"黎城县"},{"value":257,"label":"壶关县"},{"value":258,"label":"长子县"},{"value":259,"label":"武乡县"},{"value":260,"label":"沁县"},{"value":261,"label":"沁源县"}]},{"value":263,"label":"晋城市","children":[{"value":264,"label":"城区"},{"value":265,"label":"沁水县"},{"value":266,"label":"阳城县"},{"value":267,"label":"陵川县"},{"value":268,"label":"泽州县"},{"value":269,"label":"高平市"}]},{"value":270,"label":"朔州市","children":[{"value":271,"label":"朔城区"},{"value":272,"label":"平鲁区"},{"value":273,"label":"山阴县"},{"value":274,"label":"应县"},{"value":275,"label":"右玉县"},{"value":276,"label":"怀仁县"}]},{"value":277,"label":"晋中市","children":[{"value":278,"label":"榆次区"},{"value":279,"label":"榆社县"},{"value":280,"label":"左权县"},{"value":281,"label":"和顺县"},{"value":282,"label":"昔阳县"},{"value":283,"label":"寿阳县"},{"value":284,"label":"太谷县"},{"value":285,"label":"祁县"},{"value":286,"label":"平遥县"},{"value":287,"label":"灵石县"},{"value":288,"label":"介休市"}]},{"value":289,"label":"运城市","children":[{"value":290,"label":"盐湖区"},{"value":291,"label":"临猗县"},{"value":292,"label":"万荣县"},{"value":293,"label":"闻喜县"},{"value":294,"label":"稷山县"},{"value":295,"label":"新绛县"},{"value":302,"label":"河津市"},{"value":296,"label":"绛县"},{"value":297,"label":"垣曲县"},{"value":298,"label":"夏县"},{"value":299,"label":"平陆县"},{"value":300,"label":"芮城县"},{"value":301,"label":"永济市"}]},{"value":303,"label":"忻州市","children":[{"value":304,"label":"忻府区"},{"value":305,"label":"定襄县"},{"value":306,"label":"五台县"},{"value":307,"label":"代县"},{"value":308,"label":"繁峙县"},{"value":309,"label":"宁武县"},{"value":316,"label":"偏关县"},{"value":317,"label":"原平市"},{"value":310,"label":"静乐县"},{"value":311,"label":"神池县"},{"value":312,"label":"五寨县"},{"value":313,"label":"岢岚县"},{"value":314,"label":"河曲县"},{"value":315,"label":"保德县"}]},{"value":318,"label":"临汾市","children":[{"value":319,"label":"尧都区"},{"value":320,"label":"曲沃县"},{"value":321,"label":"翼城县"},{"value":322,"label":"襄汾县"},{"value":323,"label":"洪洞县"},{"value":324,"label":"古县"},{"value":331,"label":"永和县"},{"value":332,"label":"蒲县"},{"value":333,"label":"汾西县"},{"value":334,"label":"侯马市"},{"value":335,"label":"霍州市"},{"value":325,"label":"安泽县"},{"value":326,"label":"浮山县"},{"value":327,"label":"吉县"},{"value":328,"label":"乡宁县"},{"value":329,"label":"大宁县"},{"value":330,"label":"隰县"}]},{"value":336,"label":"吕梁市","children":[{"value":337,"label":"离石区"},{"value":338,"label":"文水县"},{"value":339,"label":"交城县"},{"value":340,"label":"兴县"},{"value":341,"label":"临县"},{"value":342,"label":"柳林县"},{"value":349,"label":"汾阳市"},{"value":343,"label":"石楼县"},{"value":344,"label":"岚县"},{"value":345,"label":"方山县"},{"value":346,"label":"中阳县"},{"value":347,"label":"交口县"},{"value":348,"label":"孝义市"}]}]},{"value":350,"label":"内蒙古自治区","children":[{"value":351,"label":"呼和浩特市","children":[{"value":352,"label":"新城区"},{"value":353,"label":"回民区"},{"value":354,"label":"玉泉区"},{"value":355,"label":"赛罕区"},{"value":356,"label":"土默特左旗"},{"value":357,"label":"托克托县"},{"value":358,"label":"和林格尔县"},{"value":359,"label":"清水河县"},{"value":360,"label":"武川县"}]},{"value":361,"label":"包头市","children":[{"value":362,"label":"东河区"},{"value":363,"label":"昆都仑区"},{"value":364,"label":"青山区"},{"value":365,"label":"石拐区"},{"value":366,"label":"白云鄂博矿区"},{"value":367,"label":"九原区"},{"value":368,"label":"土默特右旗"},{"value":369,"label":"固阳县"},{"value":370,"label":"达尔罕茂明安联合旗"}]},{"value":371,"label":"乌海市","children":[{"value":372,"label":"海勃湾区"},{"value":373,"label":"海南区"},{"value":374,"label":"乌达区"}]},{"value":375,"label":"赤峰市","children":[{"value":376,"label":"红山区"},{"value":377,"label":"元宝山区"},{"value":378,"label":"松山区"},{"value":379,"label":"阿鲁科尔沁旗"},{"value":380,"label":"巴林左旗"},{"value":381,"label":"巴林右旗"},{"value":382,"label":"林西县"},{"value":383,"label":"克什克腾旗"},{"value":384,"label":"翁牛特旗"},{"value":385,"label":"喀喇沁旗"},{"value":386,"label":"宁城县"},{"value":387,"label":"敖汉旗"}]},{"value":388,"label":"通辽市","children":[{"value":392,"label":"开鲁县"},{"value":393,"label":"库伦旗"},{"value":394,"label":"奈曼旗"},{"value":395,"label":"扎鲁特旗"},{"value":396,"label":"霍林郭勒市"},{"value":389,"label":"科尔沁区"},{"value":390,"label":"科尔沁左翼中旗"},{"value":391,"label":"科尔沁左翼后旗"}]},{"value":397,"label":"鄂尔多斯市","children":[{"value":398,"label":"东胜区"},{"value":399,"label":"达拉特旗"},{"value":400,"label":"准格尔旗"},{"value":401,"label":"鄂托克前旗"},{"value":402,"label":"鄂托克旗"},{"value":403,"label":"杭锦旗"},{"value":404,"label":"乌审旗"},{"value":405,"label":"伊金霍洛旗"}]},{"value":406,"label":"呼伦贝尔市","children":[{"value":407,"label":"海拉尔区"},{"value":408,"label":"阿荣旗"},{"value":409,"label":"莫力达瓦达斡尔族自治旗"},{"value":410,"label":"鄂伦春自治旗"},{"value":411,"label":"鄂温克族自治旗"},{"value":412,"label":"陈巴尔虎旗"},{"value":419,"label":"根河市"},{"value":413,"label":"新巴尔虎左旗"},{"value":414,"label":"新巴尔虎右旗"},{"value":415,"label":"满洲里市"},{"value":416,"label":"牙克石市"},{"value":417,"label":"扎兰屯市"},{"value":418,"label":"额尔古纳市"}]},{"value":420,"label":"巴彦淖尔市","children":[{"value":421,"label":"临河区"},{"value":422,"label":"五原县"},{"value":423,"label":"磴口县"},{"value":424,"label":"乌拉特前旗"},{"value":425,"label":"乌拉特中旗"},{"value":426,"label":"乌拉特后旗"},{"value":427,"label":"杭锦后旗"}]},{"value":428,"label":"乌兰察布市","children":[{"value":429,"label":"集宁区"},{"value":430,"label":"卓资县"},{"value":431,"label":"化德县"},{"value":432,"label":"商都县"},{"value":433,"label":"兴和县"},{"value":434,"label":"凉城县"},{"value":435,"label":"察哈尔右翼前旗"},{"value":436,"label":"察哈尔右翼中旗"},{"value":437,"label":"察哈尔右翼后旗"},{"value":438,"label":"四子王旗"},{"value":439,"label":"丰镇市"}]},{"value":440,"label":"兴安盟","children":[{"value":441,"label":"乌兰浩特市"},{"value":442,"label":"阿尔山市"},{"value":443,"label":"科尔沁右翼前旗"},{"value":444,"label":"科尔沁右翼中旗"},{"value":445,"label":"扎赉特旗"},{"value":446,"label":"突泉县"}]},{"value":447,"label":"锡林郭勒盟","children":[{"value":448,"label":"二连浩特市"},{"value":449,"label":"锡林浩特市"},{"value":450,"label":"阿巴嘎旗"},{"value":451,"label":"苏尼特左旗"},{"value":452,"label":"苏尼特右旗"},{"value":453,"label":"东乌珠穆沁旗"},{"value":454,"label":"西乌珠穆沁旗"},{"value":455,"label":"太仆寺旗"},{"value":456,"label":"镶黄旗"},{"value":457,"label":"正镶白旗"},{"value":458,"label":"正蓝旗"},{"value":459,"label":"多伦县"}]},{"value":460,"label":"阿拉善盟","children":[{"value":461,"label":"阿拉善左旗"},{"value":462,"label":"阿拉善右旗"},{"value":463,"label":"额济纳旗"}]}]},{"value":464,"label":"辽宁省","children":[{"value":465,"label":"沈阳市","children":[{"value":466,"label":"和平区"},{"value":467,"label":"沈河区"},{"value":468,"label":"大东区"},{"value":469,"label":"皇姑区"},{"value":470,"label":"铁西区"},{"value":471,"label":"苏家屯区"},{"value":478,"label":"新民市"},{"value":472,"label":"东陵区"},{"value":473,"label":"沈北新区"},{"value":474,"label":"于洪区"},{"value":475,"label":"辽中县"},{"value":476,"label":"康平县"},{"value":477,"label":"法库县"}]},{"value":479,"label":"大连市","children":[{"value":480,"label":"中山区"},{"value":481,"label":"西岗区"},{"value":482,"label":"沙河口区"},{"value":483,"label":"甘井子区"},{"value":484,"label":"旅顺口区"},{"value":485,"label":"金州区"},{"value":486,"label":"长海县"},{"value":487,"label":"瓦房店市"},{"value":488,"label":"普兰店市"},{"value":489,"label":"庄河市"}]},{"value":490,"label":"鞍山市","children":[{"value":497,"label":"海城市"},{"value":491,"label":"铁东区"},{"value":492,"label":"铁西区"},{"value":493,"label":"立山区"},{"value":494,"label":"千山区"},{"value":495,"label":"台安县"},{"value":496,"label":"岫岩满族自治县"}]},{"value":498,"label":"抚顺市","children":[{"value":499,"label":"新抚区"},{"value":500,"label":"东洲区"},{"value":501,"label":"望花区"},{"value":502,"label":"顺城区"},{"value":503,"label":"抚顺县"},{"value":504,"label":"新宾满族自治县"},{"value":505,"label":"清原满族自治县"}]},{"value":506,"label":"本溪市","children":[{"value":507,"label":"平山区"},{"value":508,"label":"溪湖区"},{"value":509,"label":"明山区"},{"value":510,"label":"南芬区"},{"value":511,"label":"本溪满族自治县"},{"value":512,"label":"桓仁满族自治县"}]},{"value":513,"label":"丹东市","children":[{"value":514,"label":"元宝区"},{"value":515,"label":"振兴区"},{"value":516,"label":"振安区"},{"value":517,"label":"宽甸满族自治县"},{"value":518,"label":"东港市"},{"value":519,"label":"凤城市"}]},{"value":520,"label":"锦州市","children":[{"value":521,"label":"古塔区"},{"value":522,"label":"凌河区"},{"value":523,"label":"太和区"},{"value":524,"label":"黑山县"},{"value":525,"label":"义县"},{"value":526,"label":"凌海市"},{"value":527,"label":"北镇市"}]},{"value":528,"label":"营口市","children":[{"value":529,"label":"站前区"},{"value":530,"label":"西市区"},{"value":531,"label":"鲅鱼圈区"},{"value":532,"label":"老边区"},{"value":533,"label":"盖州市"},{"value":534,"label":"大石桥市"}]},{"value":535,"label":"阜新市","children":[{"value":536,"label":"海州区"},{"value":537,"label":"新邱区"},{"value":538,"label":"太平区"},{"value":539,"label":"清河门区"},{"value":540,"label":"细河区"},{"value":541,"label":"阜新蒙古族自治县"},{"value":542,"label":"彰武县"}]},{"value":543,"label":"辽阳市","children":[{"value":544,"label":"白塔区"},{"value":545,"label":"文圣区"},{"value":546,"label":"宏伟区"},{"value":547,"label":"弓长岭区"},{"value":548,"label":"太子河区"},{"value":549,"label":"辽阳县"},{"value":550,"label":"灯塔市"}]},{"value":551,"label":"盘锦市","children":[{"value":552,"label":"双台子区"},{"value":553,"label":"兴隆台区"},{"value":554,"label":"大洼县"},{"value":555,"label":"盘山县"}]},{"value":556,"label":"铁岭市","children":[{"value":557,"label":"银州区"},{"value":558,"label":"清河区"},{"value":559,"label":"铁岭县"},{"value":560,"label":"西丰县"},{"value":561,"label":"昌图县"},{"value":562,"label":"调兵山市"},{"value":563,"label":"开原市"}]},{"value":564,"label":"朝阳市","children":[{"value":568,"label":"建平县"},{"value":569,"label":"喀喇沁左翼蒙古族自治县"},{"value":570,"label":"北票市"},{"value":571,"label":"凌源市"},{"value":565,"label":"双塔区"},{"value":566,"label":"龙城区"},{"value":567,"label":"朝阳县"}]},{"value":572,"label":"葫芦岛市","children":[{"value":573,"label":"连山区"},{"value":574,"label":"龙港区"},{"value":575,"label":"南票区"},{"value":576,"label":"绥中县"},{"value":577,"label":"建昌县"},{"value":578,"label":"兴城市"}]}]},{"value":579,"label":"吉林省","children":[{"value":580,"label":"长春市","children":[{"value":581,"label":"南关区"},{"value":582,"label":"宽城区"},{"value":583,"label":"朝阳区"},{"value":584,"label":"二道区"},{"value":585,"label":"绿园区"},{"value":586,"label":"双阳区"},{"value":587,"label":"农安县"},{"value":588,"label":"九台市"},{"value":589,"label":"榆树市"},{"value":590,"label":"德惠市"}]},{"value":591,"label":"吉林市","children":[{"value":592,"label":"昌邑区"},{"value":593,"label":"龙潭区"},{"value":594,"label":"船营区"},{"value":595,"label":"丰满区"},{"value":596,"label":"永吉县"},{"value":597,"label":"蛟河市"},{"value":598,"label":"桦甸市"},{"value":599,"label":"舒兰市"},{"value":600,"label":"磐石市"}]},{"value":601,"label":"四平市","children":[{"value":602,"label":"铁西区"},{"value":603,"label":"铁东区"},{"value":604,"label":"梨树县"},{"value":605,"label":"伊通满族自治县"},{"value":606,"label":"公主岭市"},{"value":607,"label":"双辽市"}]},{"value":608,"label":"辽源市","children":[{"value":609,"label":"龙山区"},{"value":610,"label":"西安区"},{"value":611,"label":"东丰县"},{"value":612,"label":"东辽县"}]},{"value":613,"label":"通化市","children":[{"value":614,"label":"东昌区"},{"value":615,"label":"二道江区"},{"value":616,"label":"通化县"},{"value":617,"label":"辉南县"},{"value":618,"label":"柳河县"},{"value":619,"label":"梅河口市"},{"value":620,"label":"集安市"}]},{"value":621,"label":"白山市","children":[{"value":622,"label":"八道江区"},{"value":623,"label":"江源区"},{"value":624,"label":"抚松县"},{"value":625,"label":"靖宇县"},{"value":626,"label":"长白朝鲜族自治县"},{"value":627,"label":"临江市"}]},{"value":628,"label":"松原市","children":[{"value":629,"label":"宁江区"},{"value":630,"label":"前郭尔罗斯蒙古族自治县"},{"value":631,"label":"长岭县"},{"value":632,"label":"乾安县"},{"value":633,"label":"扶余县"}]},{"value":634,"label":"白城市","children":[{"value":635,"label":"洮北区"},{"value":636,"label":"镇赉县"},{"value":637,"label":"通榆县"},{"value":638,"label":"洮南市"},{"value":639,"label":"大安市"}]},{"value":640,"label":"延边朝鲜族自治州","children":[{"value":641,"label":"延吉市"},{"value":642,"label":"图们市"},{"value":643,"label":"敦化市"},{"value":644,"label":"珲春市"},{"value":645,"label":"龙井市"},{"value":646,"label":"和龙市"},{"value":647,"label":"汪清县"},{"value":648,"label":"安图县"}]}]},{"value":649,"label":"黑龙江省","children":[{"value":650,"label":"哈尔滨市","children":[{"value":651,"label":"道里区"},{"value":652,"label":"南岗区"},{"value":653,"label":"道外区"},{"value":654,"label":"平房区"},{"value":655,"label":"松北区"},{"value":656,"label":"香坊区"},{"value":663,"label":"木兰县"},{"value":664,"label":"通河县"},{"value":665,"label":"延寿县"},{"value":666,"label":"双城市"},{"value":667,"label":"尚志市"},{"value":668,"label":"五常市"},{"value":657,"label":"呼兰区"},{"value":658,"label":"阿城区"},{"value":659,"label":"依兰县"},{"value":660,"label":"方正县"},{"value":661,"label":"宾县"},{"value":662,"label":"巴彦县"}]},{"value":669,"label":"齐齐哈尔市","children":[{"value":670,"label":"龙沙区"},{"value":671,"label":"建华区"},{"value":672,"label":"铁锋区"},{"value":673,"label":"昂昂溪区"},{"value":674,"label":"富拉尔基区"},{"value":675,"label":"碾子山区"},{"value":682,"label":"克山县"},{"value":683,"label":"克东县"},{"value":684,"label":"拜泉县"},{"value":685,"label":"讷河市"},{"value":676,"label":"梅里斯达斡尔族区"},{"value":677,"label":"龙江县"},{"value":678,"label":"依安县"},{"value":679,"label":"泰来县"},{"value":680,"label":"甘南县"},{"value":681,"label":"富裕县"}]},{"value":686,"label":"鸡西市","children":[{"value":687,"label":"鸡冠区"},{"value":688,"label":"恒山区"},{"value":689,"label":"滴道区"},{"value":690,"label":"梨树区"},{"value":691,"label":"城子河区"},{"value":692,"label":"麻山区"},{"value":693,"label":"鸡东县"},{"value":694,"label":"虎林市"},{"value":695,"label":"密山市"}]},{"value":696,"label":"鹤岗市","children":[{"value":697,"label":"向阳区"},{"value":698,"label":"工农区"},{"value":699,"label":"南山区"},{"value":700,"label":"兴安区"},{"value":701,"label":"东山区"},{"value":702,"label":"兴山区"},{"value":703,"label":"萝北县"},{"value":704,"label":"绥滨县"}]},{"value":705,"label":"双鸭山市","children":[{"value":706,"label":"尖山区"},{"value":707,"label":"岭东区"},{"value":708,"label":"四方台区"},{"value":709,"label":"宝山区"},{"value":710,"label":"集贤县"},{"value":711,"label":"友谊县"},{"value":712,"label":"宝清县"},{"value":713,"label":"饶河县"}]},{"value":714,"label":"大庆市","children":[{"value":715,"label":"萨尔图区"},{"value":716,"label":"龙凤区"},{"value":717,"label":"让胡路区"},{"value":718,"label":"红岗区"},{"value":719,"label":"大同区"},{"value":720,"label":"肇州县"},{"value":721,"label":"肇源县"},{"value":722,"label":"林甸县"},{"value":723,"label":"杜尔伯特蒙古族自治县"}]},{"value":724,"label":"伊春市","children":[{"value":741,"label":"铁力市"},{"value":735,"label":"汤旺河区"},{"value":736,"label":"带岭区"},{"value":737,"label":"乌伊岭区"},{"value":738,"label":"红星区"},{"value":739,"label":"上甘岭区"},{"value":740,"label":"嘉荫县"},{"value":729,"label":"翠峦区"},{"value":730,"label":"新青区"},{"value":731,"label":"美溪区"},{"value":732,"label":"金山屯区"},{"value":733,"label":"五营区"},{"value":734,"label":"乌马河区"},{"value":725,"label":"伊春区"},{"value":726,"label":"南岔区"},{"value":727,"label":"友好区"},{"value":728,"label":"西林区"}]},{"value":742,"label":"佳木斯市","children":[{"value":743,"label":"向阳区"},{"value":744,"label":"前进区"},{"value":745,"label":"东风区"},{"value":746,"label":"郊区"},{"value":747,"label":"桦南县"},{"value":748,"label":"桦川县"},{"value":749,"label":"汤原县"},{"value":750,"label":"抚远县"},{"value":751,"label":"同江市"},{"value":752,"label":"富锦市"}]},{"value":753,"label":"七台河市","children":[{"value":754,"label":"新兴区"},{"value":755,"label":"桃山区"},{"value":756,"label":"茄子河区"},{"value":757,"label":"勃利县"}]},{"value":758,"label":"牡丹江市","children":[{"value":759,"label":"东安区"},{"value":760,"label":"阳明区"},{"value":761,"label":"爱民区"},{"value":762,"label":"西安区"},{"value":763,"label":"东宁县"},{"value":764,"label":"林口县"},{"value":765,"label":"绥芬河市"},{"value":766,"label":"海林市"},{"value":767,"label":"宁安市"},{"value":768,"label":"穆棱市"}]},{"value":769,"label":"黑河市","children":[{"value":770,"label":"爱辉区"},{"value":771,"label":"嫩江县"},{"value":772,"label":"逊克县"},{"value":773,"label":"孙吴县"},{"value":774,"label":"北安市"},{"value":775,"label":"五大连池市"}]},{"value":776,"label":"绥化市","children":[{"value":777,"label":"北林区"},{"value":778,"label":"望奎县"},{"value":779,"label":"兰西县"},{"value":780,"label":"青冈县"},{"value":781,"label":"庆安县"},{"value":782,"label":"明水县"},{"value":783,"label":"绥棱县"},{"value":784,"label":"安达市"},{"value":785,"label":"肇东市"},{"value":786,"label":"海伦市"}]},{"value":787,"label":"大兴安岭地区","children":[{"value":788,"label":"呼玛县"},{"value":789,"label":"塔河县"},{"value":790,"label":"漠河县"}]}]},{"value":791,"label":"上海市","children":[{"value":792,"label":"黄浦区"},{"value":793,"label":"徐汇区"},{"value":794,"label":"长宁区"},{"value":795,"label":"静安区"},{"value":796,"label":"普陀区"},{"value":797,"label":"闸北区"},{"value":798,"label":"虹口区"},{"value":799,"label":"杨浦区"},{"value":800,"label":"闵行区"},{"value":801,"label":"宝山区"},{"value":802,"label":"嘉定区"},{"value":803,"label":"浦东新区"},{"value":804,"label":"金山区"},{"value":805,"label":"松江区"},{"value":806,"label":"青浦区"},{"value":807,"label":"奉贤区"},{"value":808,"label":"崇明县"}]},{"value":809,"label":"江苏省","children":[{"value":810,"label":"南京市","children":[{"value":811,"label":"玄武区"},{"value":812,"label":"白下区"},{"value":813,"label":"秦淮区"},{"value":814,"label":"建邺区"},{"value":815,"label":"鼓楼区"},{"value":816,"label":"下关区"},{"value":823,"label":"高淳县"},{"value":817,"label":"浦口区"},{"value":818,"label":"栖霞区"},{"value":819,"label":"雨花台区"},{"value":820,"label":"江宁区"},{"value":821,"label":"六合区"},{"value":822,"label":"溧水县"}]},{"value":824,"label":"无锡市","children":[{"value":825,"label":"崇安区"},{"value":826,"label":"南长区"},{"value":827,"label":"北塘区"},{"value":828,"label":"锡山区"},{"value":829,"label":"惠山区"},{"value":830,"label":"滨湖区"},{"value":831,"label":"江阴市"},{"value":832,"label":"宜兴市"}]},{"value":833,"label":"徐州市","children":[{"value":834,"label":"鼓楼区"},{"value":835,"label":"云龙区"},{"value":836,"label":"贾汪区"},{"value":837,"label":"泉山区"},{"value":838,"label":"铜山区"},{"value":839,"label":"丰县"},{"value":840,"label":"沛县"},{"value":841,"label":"睢宁县"},{"value":842,"label":"新沂市"},{"value":843,"label":"邳州市"}]},{"value":844,"label":"常州市","children":[{"value":845,"label":"天宁区"},{"value":846,"label":"钟楼区"},{"value":847,"label":"戚墅堰区"},{"value":848,"label":"新北区"},{"value":849,"label":"武进区"},{"value":850,"label":"溧阳市"},{"value":851,"label":"金坛市"}]},{"value":852,"label":"苏州市","children":[{"value":853,"label":"沧浪区"},{"value":854,"label":"平江区"},{"value":855,"label":"金阊区"},{"value":856,"label":"虎丘区"},{"value":857,"label":"吴中区"},{"value":858,"label":"相城区"},{"value":859,"label":"常熟市"},{"value":860,"label":"张家港市"},{"value":861,"label":"昆山市"},{"value":862,"label":"吴江市"},{"value":863,"label":"太仓市"}]},{"value":864,"label":"南通市","children":[{"value":865,"label":"崇川区"},{"value":866,"label":"港闸区"},{"value":867,"label":"通州区"},{"value":868,"label":"海安县"},{"value":869,"label":"如东县"},{"value":870,"label":"启东市"},{"value":871,"label":"如皋市"},{"value":872,"label":"海门市"}]},{"value":873,"label":"连云港市","children":[{"value":874,"label":"连云区"},{"value":875,"label":"新浦区"},{"value":876,"label":"海州区"},{"value":877,"label":"赣榆县"},{"value":878,"label":"东海县"},{"value":879,"label":"灌云县"},{"value":880,"label":"灌南县"}]},{"value":881,"label":"淮安市","children":[{"value":882,"label":"清河区"},{"value":883,"label":"楚州区"},{"value":884,"label":"淮阴区"},{"value":885,"label":"清浦区"},{"value":886,"label":"涟水县"},{"value":887,"label":"洪泽县"},{"value":888,"label":"盱眙县"},{"value":889,"label":"金湖县"}]},{"value":890,"label":"盐城市","children":[{"value":891,"label":"亭湖区"},{"value":892,"label":"盐都区"},{"value":893,"label":"响水县"},{"value":894,"label":"滨海县"},{"value":895,"label":"阜宁县"},{"value":896,"label":"射阳县"},{"value":897,"label":"建湖县"},{"value":898,"label":"东台市"},{"value":899,"label":"大丰市"}]},{"value":900,"label":"扬州市","children":[{"value":901,"label":"广陵区"},{"value":902,"label":"邗江区"},{"value":903,"label":"江都区"},{"value":904,"label":"宝应县"},{"value":905,"label":"仪征市"},{"value":906,"label":"高邮市"}]},{"value":907,"label":"镇江市","children":[{"value":908,"label":"京口区"},{"value":909,"label":"润州区"},{"value":910,"label":"丹徒区"},{"value":911,"label":"丹阳市"},{"value":912,"label":"扬中市"},{"value":913,"label":"句容市"}]},{"value":914,"label":"泰州市","children":[{"value":915,"label":"海陵区"},{"value":916,"label":"高港区"},{"value":917,"label":"兴化市"},{"value":918,"label":"靖江市"},{"value":919,"label":"泰兴市"},{"value":920,"label":"姜堰市"}]},{"value":921,"label":"宿迁市","children":[{"value":922,"label":"宿城区"},{"value":923,"label":"宿豫区"},{"value":924,"label":"沭阳县"},{"value":925,"label":"泗阳县"},{"value":926,"label":"泗洪县"}]}]},{"value":927,"label":"浙江省","children":[{"value":928,"label":"杭州市","children":[{"value":929,"label":"上城区"},{"value":930,"label":"下城区"},{"value":931,"label":"江干区"},{"value":932,"label":"拱墅区"},{"value":933,"label":"西湖区"},{"value":934,"label":"滨江区"},{"value":941,"label":"临安市"},{"value":935,"label":"萧山区"},{"value":936,"label":"余杭区"},{"value":937,"label":"桐庐县"},{"value":938,"label":"淳安县"},{"value":939,"label":"建德市"},{"value":940,"label":"富阳市"}]},{"value":942,"label":"宁波市","children":[{"value":943,"label":"海曙区"},{"value":944,"label":"江东区"},{"value":945,"label":"江北区"},{"value":946,"label":"北仑区"},{"value":947,"label":"镇海区"},{"value":948,"label":"鄞州区"},{"value":949,"label":"象山县"},{"value":950,"label":"宁海县"},{"value":951,"label":"余姚市"},{"value":952,"label":"慈溪市"},{"value":953,"label":"奉化市"}]},{"value":954,"label":"温州市","children":[{"value":955,"label":"鹿城区"},{"value":956,"label":"龙湾区"},{"value":957,"label":"瓯海区"},{"value":958,"label":"洞头县"},{"value":959,"label":"永嘉县"},{"value":960,"label":"平阳县"},{"value":961,"label":"苍南县"},{"value":962,"label":"文成县"},{"value":963,"label":"泰顺县"},{"value":964,"label":"瑞安市"},{"value":965,"label":"乐清市"}]},{"value":966,"label":"嘉兴市","children":[{"value":967,"label":"南湖区"},{"value":968,"label":"秀洲区"},{"value":969,"label":"嘉善县"},{"value":970,"label":"海盐县"},{"value":971,"label":"海宁市"},{"value":972,"label":"平湖市"},{"value":973,"label":"桐乡市"}]},{"value":974,"label":"湖州市","children":[{"value":977,"label":"德清县"},{"value":978,"label":"长兴县"},{"value":979,"label":"安吉县"},{"value":975,"label":"吴兴区"},{"value":976,"label":"南浔区"}]},{"value":980,"label":"绍兴市","children":[{"value":981,"label":"越城区"},{"value":982,"label":"绍兴县"},{"value":983,"label":"新昌县"},{"value":984,"label":"诸暨市"},{"value":985,"label":"上虞市"},{"value":986,"label":"嵊州市"}]},{"value":987,"label":"金华市","children":[{"value":988,"label":"婺城区"},{"value":989,"label":"金东区"},{"value":990,"label":"武义县"},{"value":991,"label":"浦江县"},{"value":992,"label":"磐安县"},{"value":993,"label":"兰溪市"},{"value":994,"label":"义乌市"},{"value":995,"label":"东阳市"},{"value":996,"label":"永康市"}]},{"value":997,"label":"衢州市","children":[{"value":998,"label":"柯城区"},{"value":999,"label":"衢江区"},{"value":1000,"label":"常山县"},{"value":1001,"label":"开化县"},{"value":1002,"label":"龙游县"},{"value":1003,"label":"江山市"}]},{"value":1004,"label":"舟山市","children":[{"value":1005,"label":"定海区"},{"value":1006,"label":"普陀区"},{"value":1007,"label":"岱山县"},{"value":1008,"label":"嵊泗县"}]},{"value":1009,"label":"台州市","children":[{"value":1013,"label":"玉环县"},{"value":1014,"label":"三门县"},{"value":1015,"label":"天台县"},{"value":1016,"label":"仙居县"},{"value":1017,"label":"温岭市"},{"value":1018,"label":"临海市"},{"value":1010,"label":"椒江区"},{"value":1011,"label":"黄岩区"},{"value":1012,"label":"路桥区"}]},{"value":1019,"label":"丽水市","children":[{"value":1020,"label":"莲都区"},{"value":1021,"label":"青田县"},{"value":1022,"label":"缙云县"},{"value":1023,"label":"遂昌县"},{"value":1024,"label":"松阳县"},{"value":1025,"label":"云和县"},{"value":1026,"label":"庆元县"},{"value":1027,"label":"景宁畲族自治县"},{"value":1028,"label":"龙泉市"}]}]},{"value":1029,"label":"安徽省","children":[{"value":1030,"label":"合肥市","children":[{"value":1034,"label":"包河区"},{"value":1035,"label":"长丰县"},{"value":1036,"label":"肥东县"},{"value":1037,"label":"肥西县"},{"value":1038,"label":"庐江县"},{"value":1039,"label":"巢湖市"},{"value":1031,"label":"瑶海区"},{"value":1032,"label":"庐阳区"},{"value":1033,"label":"蜀山区"}]},{"value":1040,"label":"芜湖市","children":[{"value":1041,"label":"镜湖区"},{"value":1042,"label":"弋江区"},{"value":1043,"label":"鸠江区"},{"value":1044,"label":"三山区"},{"value":1045,"label":"芜湖县"},{"value":1046,"label":"繁昌县"},{"value":1047,"label":"南陵县"},{"value":1048,"label":"无为县"}]},{"value":1049,"label":"蚌埠市","children":[{"value":1050,"label":"龙子湖区"},{"value":1051,"label":"蚌山区"},{"value":1052,"label":"禹会区"},{"value":1053,"label":"淮上区"},{"value":1054,"label":"怀远县"},{"value":1055,"label":"五河县"},{"value":1056,"label":"固镇县"}]},{"value":1057,"label":"淮南市","children":[{"value":1058,"label":"大通区"},{"value":1059,"label":"田家庵区"},{"value":1060,"label":"谢家集区"},{"value":1061,"label":"八公山区"},{"value":1062,"label":"潘集区"},{"value":1063,"label":"凤台县"}]},{"value":1064,"label":"马鞍山市","children":[{"value":1065,"label":"金家庄区"},{"value":1066,"label":"花山区"},{"value":1067,"label":"雨山区"},{"value":1068,"label":"当涂县"},{"value":1069,"label":"含山县"},{"value":1070,"label":"和县"}]},{"value":1071,"label":"淮北市","children":[{"value":1072,"label":"杜集区"},{"value":1073,"label":"相山区"},{"value":1074,"label":"烈山区"},{"value":1075,"label":"濉溪县"}]},{"value":1076,"label":"铜陵市","children":[{"value":1077,"label":"铜官山区"},{"value":1078,"label":"狮子山区"},{"value":1079,"label":"郊区"},{"value":1080,"label":"铜陵县"}]},{"value":1081,"label":"安庆市","children":[{"value":1082,"label":"迎江区"},{"value":1083,"label":"大观区"},{"value":1084,"label":"宜秀区"},{"value":1085,"label":"怀宁县"},{"value":1086,"label":"枞阳县"},{"value":1087,"label":"潜山县"},{"value":1088,"label":"太湖县"},{"value":1089,"label":"宿松县"},{"value":1090,"label":"望江县"},{"value":1091,"label":"岳西县"},{"value":1092,"label":"桐城市"}]},{"value":1093,"label":"黄山市","children":[{"value":1094,"label":"屯溪区"},{"value":1095,"label":"黄山区"},{"value":1096,"label":"徽州区"},{"value":1097,"label":"歙县"},{"value":1098,"label":"休宁县"},{"value":1099,"label":"黟县"},{"value":1100,"label":"祁门县"}]},{"value":1101,"label":"滁州市","children":[{"value":1108,"label":"天长市"},{"value":1109,"label":"明光市"},{"value":1102,"label":"琅琊区"},{"value":1103,"label":"南谯区"},{"value":1104,"label":"来安县"},{"value":1105,"label":"全椒县"},{"value":1106,"label":"定远县"},{"value":1107,"label":"凤阳县"}]},{"value":1110,"label":"阜阳市","children":[{"value":1117,"label":"颍上县"},{"value":1118,"label":"界首市"},{"value":1111,"label":"颍州区"},{"value":1112,"label":"颍东区"},{"value":1113,"label":"颍泉区"},{"value":1114,"label":"临泉县"},{"value":1115,"label":"太和县"},{"value":1116,"label":"阜南县"}]},{"value":1119,"label":"宿州市","children":[{"value":1120,"label":"埇桥区"},{"value":1121,"label":"砀山县"},{"value":1122,"label":"萧县"},{"value":1123,"label":"灵璧县"},{"value":1124,"label":"泗县"}]},{"value":1125,"label":"六安市","children":[{"value":1126,"label":"金安区"},{"value":1127,"label":"裕安区"},{"value":1128,"label":"寿县"},{"value":1129,"label":"霍邱县"},{"value":1130,"label":"舒城县"},{"value":1131,"label":"金寨县"},{"value":1132,"label":"霍山县"}]},{"value":1133,"label":"亳州市","children":[{"value":1134,"label":"谯城区"},{"value":1135,"label":"涡阳县"},{"value":1136,"label":"蒙城县"},{"value":1137,"label":"利辛县"}]},{"value":1138,"label":"池州市","children":[{"value":1139,"label":"贵池区"},{"value":1140,"label":"东至县"},{"value":1141,"label":"石台县"},{"value":1142,"label":"青阳县"}]},{"value":1143,"label":"宣城市","children":[{"value":1147,"label":"泾县"},{"value":1148,"label":"绩溪县"},{"value":1149,"label":"旌德县"},{"value":1150,"label":"宁国市"},{"value":1144,"label":"宣州区"},{"value":1145,"label":"郎溪县"},{"value":1146,"label":"广德县"}]}]},{"value":1151,"label":"福建省","children":[{"value":1152,"label":"福州市","children":[{"value":1153,"label":"鼓楼区"},{"value":1154,"label":"台江区"},{"value":1155,"label":"仓山区"},{"value":1156,"label":"马尾区"},{"value":1157,"label":"晋安区"},{"value":1158,"label":"闽侯县"},{"value":1165,"label":"长乐市"},{"value":1159,"label":"连江县"},{"value":1160,"label":"罗源县"},{"value":1161,"label":"闽清县"},{"value":1162,"label":"永泰县"},{"value":1163,"label":"平潭县"},{"value":1164,"label":"福清市"}]},{"value":1166,"label":"厦门市","children":[{"value":1167,"label":"思明区"},{"value":1168,"label":"海沧区"},{"value":1169,"label":"湖里区"},{"value":1170,"label":"集美区"},{"value":1171,"label":"同安区"},{"value":1172,"label":"翔安区"}]},{"value":1173,"label":"莆田市","children":[{"value":1174,"label":"城厢区"},{"value":1175,"label":"涵江区"},{"value":1176,"label":"荔城区"},{"value":1177,"label":"秀屿区"},{"value":1178,"label":"仙游县"}]},{"value":1179,"label":"三明市","children":[{"value":1180,"label":"梅列区"},{"value":1181,"label":"三元区"},{"value":1182,"label":"明溪县"},{"value":1183,"label":"清流县"},{"value":1184,"label":"宁化县"},{"value":1185,"label":"大田县"},{"value":1186,"label":"尤溪县"},{"value":1187,"label":"沙县"},{"value":1188,"label":"将乐县"},{"value":1189,"label":"泰宁县"},{"value":1190,"label":"建宁县"},{"value":1191,"label":"永安市"}]},{"value":1192,"label":"泉州市","children":[{"value":1201,"label":"金门县"},{"value":1202,"label":"石狮市"},{"value":1203,"label":"晋江市"},{"value":1204,"label":"南安市"},{"value":1195,"label":"洛江区"},{"value":1196,"label":"泉港区"},{"value":1197,"label":"惠安县"},{"value":1198,"label":"安溪县"},{"value":1199,"label":"永春县"},{"value":1200,"label":"德化县"},{"value":1193,"label":"鲤城区"},{"value":1194,"label":"丰泽区"}]},{"value":1205,"label":"漳州市","children":[{"value":1211,"label":"长泰县"},{"value":1212,"label":"东山县"},{"value":1213,"label":"南靖县"},{"value":1214,"label":"平和县"},{"value":1215,"label":"华安县"},{"value":1216,"label":"龙海市"},{"value":1206,"label":"芗城区"},{"value":1207,"label":"龙文区"},{"value":1208,"label":"云霄县"},{"value":1209,"label":"漳浦县"},{"value":1210,"label":"诏安县"}]},{"value":1217,"label":"南平市","children":[{"value":1218,"label":"延平区"},{"value":1219,"label":"顺昌县"},{"value":1220,"label":"浦城县"},{"value":1221,"label":"光泽县"},{"value":1222,"label":"松溪县"},{"value":1223,"label":"政和县"},{"value":1224,"label":"邵武市"},{"value":1225,"label":"武夷山市"},{"value":1226,"label":"建瓯市"},{"value":1227,"label":"建阳市"}]},{"value":1228,"label":"龙岩市","children":[{"value":1229,"label":"新罗区"},{"value":1230,"label":"长汀县"},{"value":1231,"label":"永定县"},{"value":1232,"label":"上杭县"},{"value":1233,"label":"武平县"},{"value":1234,"label":"连城县"},{"value":1235,"label":"漳平市"}]},{"value":1236,"label":"宁德市","children":[{"value":1243,"label":"柘荣县"},{"value":1244,"label":"福安市"},{"value":1245,"label":"福鼎市"},{"value":1237,"label":"蕉城区"},{"value":1238,"label":"霞浦县"},{"value":1239,"label":"古田县"},{"value":1240,"label":"屏南县"},{"value":1241,"label":"寿宁县"},{"value":1242,"label":"周宁县"}]}]},{"value":1246,"label":"江西省","children":[{"value":1247,"label":"南昌市","children":[{"value":1248,"label":"东湖区"},{"value":1249,"label":"西湖区"},{"value":1250,"label":"青云谱区"},{"value":1251,"label":"湾里区"},{"value":1252,"label":"青山湖区"},{"value":1253,"label":"南昌县"},{"value":1254,"label":"新建县"},{"value":1255,"label":"安义县"},{"value":1256,"label":"进贤县"}]},{"value":1257,"label":"景德镇市","children":[{"value":1258,"label":"昌江区"},{"value":1259,"label":"珠山区"},{"value":1260,"label":"浮梁县"},{"value":1261,"label":"乐平市"}]},{"value":1262,"label":"萍乡市","children":[{"value":1263,"label":"安源区"},{"value":1264,"label":"湘东区"},{"value":1265,"label":"莲花县"},{"value":1266,"label":"上栗县"},{"value":1267,"label":"芦溪县"}]},{"value":1268,"label":"九江市","children":[{"value":1269,"label":"庐山区"},{"value":1270,"label":"浔阳区"},{"value":1271,"label":"九江县"},{"value":1272,"label":"武宁县"},{"value":1273,"label":"修水县"},{"value":1274,"label":"永修县"},{"value":1281,"label":"共青城市"},{"value":1275,"label":"德安县"},{"value":1276,"label":"星子县"},{"value":1277,"label":"都昌县"},{"value":1278,"label":"湖口县"},{"value":1279,"label":"彭泽县"},{"value":1280,"label":"瑞昌市"}]},{"value":1282,"label":"新余市","children":[{"value":1283,"label":"渝水区"},{"value":1284,"label":"分宜县"}]},{"value":1285,"label":"鹰潭市","children":[{"value":1286,"label":"月湖区"},{"value":1287,"label":"余江县"},{"value":1288,"label":"贵溪市"}]},{"value":1289,"label":"赣州市","children":[{"value":1290,"label":"章贡区"},{"value":1291,"label":"赣县"},{"value":1292,"label":"信丰县"},{"value":1293,"label":"大余县"},{"value":1294,"label":"上犹县"},{"value":1295,"label":"崇义县"},{"value":1302,"label":"兴国县"},{"value":1303,"label":"会昌县"},{"value":1304,"label":"寻乌县"},{"value":1305,"label":"石城县"},{"value":1306,"label":"瑞金市"},{"value":1307,"label":"南康市"},{"value":1296,"label":"安远县"},{"value":1297,"label":"龙南县"},{"value":1298,"label":"定南县"},{"value":1299,"label":"全南县"},{"value":1300,"label":"宁都县"},{"value":1301,"label":"于都县"}]},{"value":1308,"label":"吉安市","children":[{"value":1309,"label":"吉州区"},{"value":1310,"label":"青原区"},{"value":1311,"label":"吉安县"},{"value":1312,"label":"吉水县"},{"value":1313,"label":"峡江县"},{"value":1314,"label":"新干县"},{"value":1321,"label":"井冈山市"},{"value":1315,"label":"永丰县"},{"value":1316,"label":"泰和县"},{"value":1317,"label":"遂川县"},{"value":1318,"label":"万安县"},{"value":1319,"label":"安福县"},{"value":1320,"label":"永新县"}]},{"value":1322,"label":"宜春市","children":[{"value":1323,"label":"袁州区"},{"value":1324,"label":"奉新县"},{"value":1325,"label":"万载县"},{"value":1326,"label":"上高县"},{"value":1327,"label":"宜丰县"},{"value":1328,"label":"靖安县"},{"value":1329,"label":"铜鼓县"},{"value":1330,"label":"丰城市"},{"value":1331,"label":"樟树市"},{"value":1332,"label":"高安市"}]},{"value":1333,"label":"抚州市","children":[{"value":1334,"label":"临川区"},{"value":1335,"label":"南城县"},{"value":1336,"label":"黎川县"},{"value":1337,"label":"南丰县"},{"value":1338,"label":"崇仁县"},{"value":1339,"label":"乐安县"},{"value":1340,"label":"宜黄县"},{"value":1341,"label":"金溪县"},{"value":1342,"label":"资溪县"},{"value":1343,"label":"东乡县"},{"value":1344,"label":"广昌县"}]},{"value":1345,"label":"上饶市","children":[{"value":1346,"label":"信州区"},{"value":1347,"label":"上饶县"},{"value":1348,"label":"广丰县"},{"value":1349,"label":"玉山县"},{"value":1350,"label":"铅山县"},{"value":1351,"label":"横峰县"},{"value":1352,"label":"弋阳县"},{"value":1353,"label":"余干县"},{"value":1354,"label":"鄱阳县"},{"value":1355,"label":"万年县"},{"value":1356,"label":"婺源县"},{"value":1357,"label":"德兴市"}]}]},{"value":1358,"label":"山东省","children":[{"value":1359,"label":"济南市","children":[{"value":1360,"label":"历下区"},{"value":1361,"label":"市中区"},{"value":1362,"label":"槐荫区"},{"value":1363,"label":"天桥区"},{"value":1364,"label":"历城区"},{"value":1365,"label":"长清区"},{"value":1366,"label":"平阴县"},{"value":1367,"label":"济阳县"},{"value":1368,"label":"商河县"},{"value":1369,"label":"章丘市"}]},{"value":1370,"label":"青岛市","children":[{"value":1371,"label":"市南区"},{"value":1372,"label":"市北区"},{"value":1373,"label":"四方区"},{"value":1374,"label":"黄岛区"},{"value":1375,"label":"崂山区"},{"value":1376,"label":"李沧区"},{"value":1377,"label":"城阳区"},{"value":1378,"label":"胶州市"},{"value":1379,"label":"即墨市"},{"value":1380,"label":"平度市"},{"value":1381,"label":"胶南市"},{"value":1382,"label":"莱西市"}]},{"value":1383,"label":"淄博市","children":[{"value":1384,"label":"淄川区"},{"value":1385,"label":"张店区"},{"value":1386,"label":"博山区"},{"value":1387,"label":"临淄区"},{"value":1388,"label":"周村区"},{"value":1389,"label":"桓台县"},{"value":1390,"label":"高青县"},{"value":1391,"label":"沂源县"}]},{"value":1392,"label":"枣庄市","children":[{"value":1393,"label":"市中区"},{"value":1394,"label":"薛城区"},{"value":1395,"label":"峄城区"},{"value":1396,"label":"台儿庄区"},{"value":1397,"label":"山亭区"},{"value":1398,"label":"滕州市"}]},{"value":1399,"label":"东营市","children":[{"value":1400,"label":"东营区"},{"value":1401,"label":"河口区"},{"value":1402,"label":"垦利县"},{"value":1403,"label":"利津县"},{"value":1404,"label":"广饶县"}]},{"value":1405,"label":"烟台市","children":[{"value":1406,"label":"芝罘区"},{"value":1407,"label":"福山区"},{"value":1408,"label":"牟平区"},{"value":1409,"label":"莱山区"},{"value":1410,"label":"长岛县"},{"value":1411,"label":"龙口市"},{"value":1412,"label":"莱阳市"},{"value":1413,"label":"莱州市"},{"value":1414,"label":"蓬莱市"},{"value":1415,"label":"招远市"},{"value":1416,"label":"栖霞市"},{"value":1417,"label":"海阳市"}]},{"value":1418,"label":"潍坊市","children":[{"value":1419,"label":"潍城区"},{"value":1420,"label":"寒亭区"},{"value":1421,"label":"坊子区"},{"value":1422,"label":"奎文区"},{"value":1423,"label":"临朐县"},{"value":1424,"label":"昌乐县"},{"value":1425,"label":"青州市"},{"value":1426,"label":"诸城市"},{"value":1427,"label":"寿光市"},{"value":1428,"label":"安丘市"},{"value":1429,"label":"高密市"},{"value":1430,"label":"昌邑市"}]},{"value":1431,"label":"济宁市","children":[{"value":1432,"label":"市中区"},{"value":1433,"label":"任城区"},{"value":1434,"label":"微山县"},{"value":1435,"label":"鱼台县"},{"value":1436,"label":"金乡县"},{"value":1437,"label":"嘉祥县"},{"value":1438,"label":"汶上县"},{"value":1439,"label":"泗水县"},{"value":1440,"label":"梁山县"},{"value":1441,"label":"曲阜市"},{"value":1442,"label":"兖州市"},{"value":1443,"label":"邹城市"}]},{"value":1444,"label":"泰安市","children":[{"value":1445,"label":"泰山区"},{"value":1446,"label":"岱岳区"},{"value":1447,"label":"宁阳县"},{"value":1448,"label":"东平县"},{"value":1449,"label":"新泰市"},{"value":1450,"label":"肥城市"}]},{"value":1451,"label":"威海市","children":[{"value":1452,"label":"环翠区"},{"value":1453,"label":"文登市"},{"value":1454,"label":"荣成市"},{"value":1455,"label":"乳山市"}]},{"value":1456,"label":"日照市","children":[{"value":1457,"label":"东港区"},{"value":1458,"label":"岚山区"},{"value":1459,"label":"五莲县"},{"value":1460,"label":"莒县"}]},{"value":1461,"label":"莱芜市","children":[{"value":1462,"label":"莱城区"},{"value":1463,"label":"钢城区"}]},{"value":1464,"label":"临沂市","children":[{"value":1465,"label":"兰山区"},{"value":1466,"label":"罗庄区"},{"value":1467,"label":"河东区"},{"value":1468,"label":"沂南县"},{"value":1469,"label":"郯城县"},{"value":1470,"label":"沂水县"},{"value":1471,"label":"苍山县"},{"value":1472,"label":"费县"},{"value":1473,"label":"平邑县"},{"value":1474,"label":"莒南县"},{"value":1475,"label":"蒙阴县"},{"value":1476,"label":"临沭县"}]},{"value":1477,"label":"德州市","children":[{"value":1478,"label":"德城区"},{"value":1479,"label":"陵县"},{"value":1480,"label":"宁津县"},{"value":1481,"label":"庆云县"},{"value":1482,"label":"临邑县"},{"value":1483,"label":"齐河县"},{"value":1484,"label":"平原县"},{"value":1485,"label":"夏津县"},{"value":1486,"label":"武城县"},{"value":1487,"label":"乐陵市"},{"value":1488,"label":"禹城市"}]},{"value":1489,"label":"聊城市","children":[{"value":1490,"label":"东昌府区"},{"value":1491,"label":"阳谷县"},{"value":1492,"label":"莘县"},{"value":1493,"label":"茌平县"},{"value":1494,"label":"东阿县"},{"value":1495,"label":"冠县"},{"value":1496,"label":"高唐县"},{"value":1497,"label":"临清市"}]},{"value":1498,"label":"滨州市","children":[{"value":1499,"label":"滨城区"},{"value":1500,"label":"惠民县"},{"value":1501,"label":"阳信县"},{"value":1502,"label":"无棣县"},{"value":1503,"label":"沾化县"},{"value":1504,"label":"博兴县"},{"value":1505,"label":"邹平县"}]},{"value":1506,"label":"菏泽市","children":[{"value":1507,"label":"牡丹区"},{"value":1508,"label":"曹县"},{"value":1509,"label":"单县"},{"value":1510,"label":"成武县"},{"value":1511,"label":"巨野县"},{"value":1512,"label":"郓城县"},{"value":1513,"label":"鄄城县"},{"value":1514,"label":"定陶县"},{"value":1515,"label":"东明县"}]}]},{"value":1516,"label":"河南省","children":[{"value":1517,"label":"郑州市","children":[{"value":1518,"label":"中原区"},{"value":1519,"label":"二七区"},{"value":1520,"label":"管城回族区"},{"value":1521,"label":"金水区"},{"value":1522,"label":"上街区"},{"value":1523,"label":"惠济区"},{"value":1524,"label":"中牟县"},{"value":1525,"label":"巩义市"},{"value":1526,"label":"荥阳市"},{"value":1527,"label":"新密市"},{"value":1528,"label":"新郑市"},{"value":1529,"label":"登封市"}]},{"value":1530,"label":"开封市","children":[{"value":1538,"label":"尉氏县"},{"value":1539,"label":"开封县"},{"value":1540,"label":"兰考县"},{"value":1532,"label":"顺河回族区"},{"value":1533,"label":"鼓楼区"},{"value":1534,"label":"禹王台区"},{"value":1535,"label":"金明区"},{"value":1536,"label":"杞县"},{"value":1537,"label":"通许县"},{"value":1531,"label":"龙亭区"}]},{"value":1541,"label":"洛阳市","children":[{"value":1542,"label":"老城区"},{"value":1543,"label":"西工区"},{"value":1544,"label":"瀍河回族区"},{"value":1545,"label":"涧西区"},{"value":1546,"label":"吉利区"},{"value":1547,"label":"洛龙区"},{"value":1554,"label":"洛宁县"},{"value":1555,"label":"伊川县"},{"value":1556,"label":"偃师市"},{"value":1548,"label":"孟津县"},{"value":1549,"label":"新安县"},{"value":1550,"label":"栾川县"},{"value":1551,"label":"嵩县"},{"value":1552,"label":"汝阳县"},{"value":1553,"label":"宜阳县"}]},{"value":1557,"label":"平顶山市","children":[{"value":1558,"label":"新华区"},{"value":1559,"label":"卫东区"},{"value":1560,"label":"石龙区"},{"value":1561,"label":"湛河区"},{"value":1562,"label":"宝丰县"},{"value":1563,"label":"叶县"},{"value":1564,"label":"鲁山县"},{"value":1565,"label":"郏县"},{"value":1566,"label":"舞钢市"},{"value":1567,"label":"汝州市"}]},{"value":1568,"label":"安阳市","children":[{"value":1572,"label":"龙安区"},{"value":1573,"label":"安阳县"},{"value":1574,"label":"汤阴县"},{"value":1575,"label":"滑县"},{"value":1576,"label":"内黄县"},{"value":1577,"label":"林州市"},{"value":1569,"label":"文峰区"},{"value":1570,"label":"北关区"},{"value":1571,"label":"殷都区"}]},{"value":1578,"label":"鹤壁市","children":[{"value":1579,"label":"鹤山区"},{"value":1580,"label":"山城区"},{"value":1581,"label":"淇滨区"},{"value":1582,"label":"浚县"},{"value":1583,"label":"淇县"}]},{"value":1584,"label":"新乡市","children":[{"value":1585,"label":"红旗区"},{"value":1586,"label":"卫滨区"},{"value":1587,"label":"凤泉区"},{"value":1588,"label":"牧野区"},{"value":1589,"label":"新乡县"},{"value":1590,"label":"获嘉县"},{"value":1591,"label":"原阳县"},{"value":1592,"label":"延津县"},{"value":1593,"label":"封丘县"},{"value":1594,"label":"长垣县"},{"value":1595,"label":"卫辉市"},{"value":1596,"label":"辉县市"}]},{"value":1597,"label":"焦作市","children":[{"value":1598,"label":"解放区"},{"value":1599,"label":"中站区"},{"value":1600,"label":"马村区"},{"value":1601,"label":"山阳区"},{"value":1602,"label":"修武县"},{"value":1603,"label":"博爱县"},{"value":1604,"label":"武陟县"},{"value":1605,"label":"温县"},{"value":1606,"label":"沁阳市"},{"value":1607,"label":"孟州市"}]},{"value":1608,"label":"濮阳市","children":[{"value":1609,"label":"华龙区"},{"value":1610,"label":"清丰县"},{"value":1611,"label":"南乐县"},{"value":1612,"label":"范县"},{"value":1613,"label":"台前县"},{"value":1614,"label":"濮阳县"}]},{"value":1615,"label":"许昌市","children":[{"value":1616,"label":"魏都区"},{"value":1617,"label":"许昌县"},{"value":1618,"label":"鄢陵县"},{"value":1619,"label":"襄城县"},{"value":1620,"label":"禹州市"},{"value":1621,"label":"长葛市"}]},{"value":1622,"label":"漯河市","children":[{"value":1623,"label":"源汇区"},{"value":1624,"label":"郾城区"},{"value":1625,"label":"召陵区"},{"value":1626,"label":"舞阳县"},{"value":1627,"label":"临颍县"}]},{"value":1628,"label":"三门峡市","children":[{"value":1629,"label":"湖滨区"},{"value":1630,"label":"渑池县"},{"value":1631,"label":"陕县"},{"value":1632,"label":"卢氏县"},{"value":1633,"label":"义马市"},{"value":1634,"label":"灵宝市"}]},{"value":1635,"label":"南阳市","children":[{"value":1636,"label":"宛城区"},{"value":1637,"label":"卧龙区"},{"value":1638,"label":"南召县"},{"value":1639,"label":"方城县"},{"value":1640,"label":"西峡县"},{"value":1641,"label":"镇平县"},{"value":1648,"label":"邓州市"},{"value":1642,"label":"内乡县"},{"value":1643,"label":"淅川县"},{"value":1644,"label":"社旗县"},{"value":1645,"label":"唐河县"},{"value":1646,"label":"新野县"},{"value":1647,"label":"桐柏县"}]},{"value":1649,"label":"商丘市","children":[{"value":1650,"label":"梁园区"},{"value":1651,"label":"睢阳区"},{"value":1652,"label":"民权县"},{"value":1653,"label":"睢县"},{"value":1654,"label":"宁陵县"},{"value":1655,"label":"柘城县"},{"value":1656,"label":"虞城县"},{"value":1657,"label":"夏邑县"},{"value":1658,"label":"永城市"}]},{"value":1659,"label":"信阳市","children":[{"value":1660,"label":"浉河区"},{"value":1661,"label":"平桥区"},{"value":1662,"label":"罗山县"},{"value":1663,"label":"光山县"},{"value":1664,"label":"新县"},{"value":1665,"label":"商城县"},{"value":1666,"label":"固始县"},{"value":1667,"label":"潢川县"},{"value":1668,"label":"淮滨县"},{"value":1669,"label":"息县"}]},{"value":1670,"label":"周口市","children":[{"value":1671,"label":"川汇区"},{"value":1672,"label":"扶沟县"},{"value":1673,"label":"西华县"},{"value":1674,"label":"商水县"},{"value":1675,"label":"沈丘县"},{"value":1676,"label":"郸城县"},{"value":1677,"label":"淮阳县"},{"value":1678,"label":"太康县"},{"value":1679,"label":"鹿邑县"},{"value":1680,"label":"项城市"}]},{"value":1681,"label":"驻马店市","children":[{"value":1682,"label":"驿城区"},{"value":1683,"label":"西平县"},{"value":1684,"label":"上蔡县"},{"value":1685,"label":"平舆县"},{"value":1686,"label":"正阳县"},{"value":1687,"label":"确山县"},{"value":1688,"label":"泌阳县"},{"value":1689,"label":"汝南县"},{"value":1690,"label":"遂平县"},{"value":1691,"label":"新蔡县"}]},{"value":1692,"label":"济源市","children":[]}]},{"value":1693,"label":"湖北省","children":[{"value":1694,"label":"武汉市","children":[{"value":1695,"label":"江岸区"},{"value":1696,"label":"江汉区"},{"value":1697,"label":"硚口区"},{"value":1698,"label":"汉阳区"},{"value":1699,"label":"武昌区"},{"value":1700,"label":"青山区"},{"value":1707,"label":"新洲区"},{"value":1701,"label":"洪山区"},{"value":1702,"label":"东西湖区"},{"value":1703,"label":"汉南区"},{"value":1704,"label":"蔡甸区"},{"value":1705,"label":"江夏区"},{"value":1706,"label":"黄陂区"}]},{"value":1708,"label":"黄石市","children":[{"value":1709,"label":"黄石港区"},{"value":1710,"label":"西塞山区"},{"value":1711,"label":"下陆区"},{"value":1712,"label":"铁山区"},{"value":1713,"label":"阳新县"},{"value":1714,"label":"大冶市"}]},{"value":1715,"label":"十堰市","children":[{"value":1716,"label":"茅箭区"},{"value":1717,"label":"张湾区"},{"value":1718,"label":"郧县"},{"value":1719,"label":"郧西县"},{"value":1720,"label":"竹山县"},{"value":1721,"label":"竹溪县"},{"value":1722,"label":"房县"},{"value":1723,"label":"丹江口市"}]},{"value":1724,"label":"宜昌市","children":[{"value":1725,"label":"西陵区"},{"value":1726,"label":"伍家岗区"},{"value":1727,"label":"点军区"},{"value":1728,"label":"猇亭区"},{"value":1729,"label":"夷陵区"},{"value":1730,"label":"远安县"},{"value":1737,"label":"枝江市"},{"value":1731,"label":"兴山县"},{"value":1732,"label":"秭归县"},{"value":1733,"label":"长阳土家族自治县"},{"value":1734,"label":"五峰土家族自治县"},{"value":1735,"label":"宜都市"},{"value":1736,"label":"当阳市"}]},{"value":1738,"label":"襄阳市","children":[{"value":1739,"label":"襄城区"},{"value":1740,"label":"樊城区"},{"value":1741,"label":"襄州区"},{"value":1742,"label":"南漳县"},{"value":1743,"label":"谷城县"},{"value":1744,"label":"保康县"},{"value":1745,"label":"老河口市"},{"value":1746,"label":"枣阳市"},{"value":1747,"label":"宜城市"}]},{"value":1748,"label":"鄂州市","children":[{"value":1749,"label":"梁子湖区"},{"value":1750,"label":"华容区"},{"value":1751,"label":"鄂城区"}]},{"value":1752,"label":"荆门市","children":[{"value":1753,"label":"东宝区"},{"value":1754,"label":"掇刀区"},{"value":1755,"label":"京山县"},{"value":1756,"label":"沙洋县"},{"value":1757,"label":"钟祥市"}]},{"value":1758,"label":"孝感市","children":[{"value":1759,"label":"孝南区"},{"value":1760,"label":"孝昌县"},{"value":1761,"label":"大悟县"},{"value":1762,"label":"云梦县"},{"value":1763,"label":"应城市"},{"value":1764,"label":"安陆市"},{"value":1765,"label":"汉川市"}]},{"value":1766,"label":"荆州市","children":[{"value":1767,"label":"沙市区"},{"value":1768,"label":"荆州区"},{"value":1769,"label":"公安县"},{"value":1770,"label":"监利县"},{"value":1771,"label":"江陵县"},{"value":1772,"label":"石首市"},{"value":1773,"label":"洪湖市"},{"value":1774,"label":"松滋市"}]},{"value":1775,"label":"黄冈市","children":[{"value":1776,"label":"黄州区"},{"value":1777,"label":"团风县"},{"value":1778,"label":"红安县"},{"value":1779,"label":"罗田县"},{"value":1780,"label":"英山县"},{"value":1781,"label":"浠水县"},{"value":1782,"label":"蕲春县"},{"value":1783,"label":"黄梅县"},{"value":1784,"label":"麻城市"},{"value":1785,"label":"武穴市"}]},{"value":1786,"label":"咸宁市","children":[{"value":1787,"label":"咸安区"},{"value":1788,"label":"嘉鱼县"},{"value":1789,"label":"通城县"},{"value":1790,"label":"崇阳县"},{"value":1791,"label":"通山县"},{"value":1792,"label":"赤壁市"}]},{"value":1793,"label":"随州市","children":[{"value":1794,"label":"曾都区"},{"value":1795,"label":"随县"},{"value":1796,"label":"广水市"}]},{"value":1797,"label":"恩施土家族苗族自治州","children":[{"value":1800,"label":"建始县"},{"value":1801,"label":"巴东县"},{"value":1802,"label":"宣恩县"},{"value":1803,"label":"咸丰县"},{"value":1804,"label":"来凤县"},{"value":1805,"label":"鹤峰县"},{"value":1798,"label":"恩施市"},{"value":1799,"label":"利川市"}]},{"value":1806,"label":"仙桃市"},{"value":1807,"label":"潜江市"},{"value":1808,"label":"天门市"},{"value":1809,"label":"神农架林区"}]},{"value":1810,"label":"湖南省","children":[{"value":1811,"label":"长沙市","children":[{"value":1817,"label":"望城区"},{"value":1818,"label":"长沙县"},{"value":1819,"label":"宁乡县"},{"value":1820,"label":"浏阳市"},{"value":1812,"label":"芙蓉区"},{"value":1813,"label":"天心区"},{"value":1814,"label":"岳麓区"},{"value":1815,"label":"开福区"},{"value":1816,"label":"雨花区"}]},{"value":1821,"label":"株洲市","children":[{"value":1822,"label":"荷塘区"},{"value":1823,"label":"芦淞区"},{"value":1824,"label":"石峰区"},{"value":1825,"label":"天元区"},{"value":1826,"label":"株洲县"},{"value":1827,"label":"攸县"},{"value":1828,"label":"茶陵县"},{"value":1829,"label":"炎陵县"},{"value":1830,"label":"醴陵市"}]},{"value":1831,"label":"湘潭市","children":[{"value":1832,"label":"雨湖区"},{"value":1833,"label":"岳塘区"},{"value":1834,"label":"湘潭县"},{"value":1835,"label":"湘乡市"},{"value":1836,"label":"韶山市"},{"value":1837,"label":"衡阳市"},{"value":1844,"label":"衡南县"},{"value":1845,"label":"衡山县"},{"value":1846,"label":"衡东县"},{"value":1847,"label":"祁东县"},{"value":1848,"label":"耒阳市"},{"value":1849,"label":"常宁市"},{"value":1838,"label":"珠晖区"},{"value":1839,"label":"雁峰区"},{"value":1840,"label":"石鼓区"},{"value":1841,"label":"蒸湘区"},{"value":1842,"label":"南岳区"},{"value":1843,"label":"衡阳县"}]},{"value":1850,"label":"邵阳市","children":[{"value":1851,"label":"双清区"},{"value":1852,"label":"大祥区"},{"value":1853,"label":"北塔区"},{"value":1854,"label":"邵东县"},{"value":1855,"label":"新邵县"},{"value":1856,"label":"邵阳县"},{"value":1857,"label":"隆回县"},{"value":1858,"label":"洞口县"},{"value":1859,"label":"绥宁县"},{"value":1860,"label":"新宁县"},{"value":1861,"label":"城步苗族自治县"},{"value":1862,"label":"武冈市"}]},{"value":1863,"label":"岳阳市","children":[{"value":1864,"label":"岳阳楼区"},{"value":1865,"label":"云溪区"},{"value":1866,"label":"君山区"},{"value":1867,"label":"岳阳县"},{"value":1868,"label":"华容县"},{"value":1869,"label":"湘阴县"},{"value":1870,"label":"平江县"},{"value":1871,"label":"汨罗市"},{"value":1872,"label":"临湘市"}]},{"value":1873,"label":"常德市","children":[{"value":1877,"label":"汉寿县"},{"value":1878,"label":"澧县"},{"value":1879,"label":"临澧县"},{"value":1880,"label":"桃源县"},{"value":1881,"label":"石门县"},{"value":1882,"label":"津市市"},{"value":1874,"label":"武陵区"},{"value":1875,"label":"鼎城区"},{"value":1876,"label":"安乡县"}]},{"value":1883,"label":"张家界市","children":[{"value":1884,"label":"永定区"},{"value":1885,"label":"武陵源区"},{"value":1886,"label":"慈利县"},{"value":1887,"label":"桑植县"}]},{"value":1888,"label":"益阳市","children":[{"value":1889,"label":"资阳区"},{"value":1890,"label":"赫山区"},{"value":1891,"label":"南县"},{"value":1892,"label":"桃江县"},{"value":1893,"label":"安化县"},{"value":1894,"label":"沅江市"}]},{"value":1895,"label":"郴州市","children":[{"value":1905,"label":"安仁县"},{"value":1906,"label":"资兴市"},{"value":1899,"label":"宜章县"},{"value":1900,"label":"永兴县"},{"value":1901,"label":"嘉禾县"},{"value":1902,"label":"临武县"},{"value":1903,"label":"汝城县"},{"value":1904,"label":"桂东县"},{"value":1896,"label":"北湖区"},{"value":1897,"label":"苏仙区"},{"value":1898,"label":"桂阳县"}]},{"value":1907,"label":"永州市","children":[{"value":1908,"label":"零陵区"},{"value":1909,"label":"冷水滩区"},{"value":1910,"label":"祁阳县"},{"value":1911,"label":"东安县"},{"value":1912,"label":"双牌县"},{"value":1913,"label":"道县"},{"value":1914,"label":"江永县"},{"value":1915,"label":"宁远县"},{"value":1916,"label":"蓝山县"},{"value":1917,"label":"新田县"},{"value":1918,"label":"江华瑶族自治县"}]},{"value":1919,"label":"怀化市","children":[{"value":1920,"label":"鹤城区"},{"value":1921,"label":"中方县"},{"value":1922,"label":"沅陵县"},{"value":1923,"label":"辰溪县"},{"value":1924,"label":"溆浦县"},{"value":1925,"label":"会同县"},{"value":1926,"label":"麻阳苗族自治县"},{"value":1927,"label":"新晃侗族自治县"},{"value":1928,"label":"芷江侗族自治县"},{"value":1929,"label":"靖州苗族侗族自治县"},{"value":1930,"label":"通道侗族自治县"},{"value":1931,"label":"洪江市"}]},{"value":1932,"label":"娄底市","children":[{"value":1933,"label":"娄星区"},{"value":1934,"label":"双峰县"},{"value":1935,"label":"新化县"},{"value":1936,"label":"冷水江市"},{"value":1937,"label":"涟源市"}]},{"value":1938,"label":"湘西土家族苗族自治州","children":[{"value":1939,"label":"吉首市"},{"value":1940,"label":"泸溪县"},{"value":1941,"label":"凤凰县"},{"value":1942,"label":"花垣县"},{"value":1943,"label":"保靖县"},{"value":1944,"label":"古丈县"},{"value":1945,"label":"永顺县"},{"value":1946,"label":"龙山县"}]}]},{"value":1947,"label":"广东省","children":[{"value":1948,"label":"广州市","children":[{"value":1949,"label":"荔湾区"},{"value":1950,"label":"越秀区"},{"value":1951,"label":"海珠区"},{"value":1952,"label":"天河区"},{"value":1953,"label":"白云区"},{"value":1954,"label":"黄埔区"},{"value":1955,"label":"番禺区"},{"value":1956,"label":"花都区"},{"value":1957,"label":"南沙区"},{"value":1958,"label":"萝岗区"},{"value":1959,"label":"增城市"},{"value":1960,"label":"从化市"}]},{"value":1961,"label":"韶关市","children":[{"value":1962,"label":"武江区"},{"value":1963,"label":"浈江区"},{"value":1964,"label":"曲江区"},{"value":1965,"label":"始兴县"},{"value":1966,"label":"仁化县"},{"value":1967,"label":"翁源县"},{"value":1968,"label":"乳源瑶族自治县"},{"value":1969,"label":"新丰县"},{"value":1970,"label":"乐昌市"},{"value":1971,"label":"南雄市"}]},{"value":1972,"label":"深圳市","children":[{"value":1973,"label":"罗湖区"},{"value":1974,"label":"福田区"},{"value":1975,"label":"南山区"},{"value":1976,"label":"宝安区"},{"value":1977,"label":"龙岗区"},{"value":1978,"label":"盐田区"}]},{"value":1979,"label":"珠海市","children":[{"value":1980,"label":"香洲区"},{"value":1981,"label":"斗门区"},{"value":1982,"label":"金湾区"}]},{"value":1983,"label":"汕头市","children":[{"value":1984,"label":"龙湖区"},{"value":1985,"label":"金平区"},{"value":1986,"label":"濠江区"},{"value":1987,"label":"潮阳区"},{"value":1988,"label":"潮南区"},{"value":1989,"label":"澄海区"},{"value":1990,"label":"南澳县"}]},{"value":1991,"label":"佛山市","children":[{"value":1992,"label":"禅城区"},{"value":1993,"label":"南海区"},{"value":1994,"label":"顺德区"},{"value":1995,"label":"三水区"},{"value":1996,"label":"高明区"}]},{"value":1997,"label":"江门市","children":[{"value":2000,"label":"新会区"},{"value":2001,"label":"台山市"},{"value":2002,"label":"开平市"},{"value":2003,"label":"鹤山市"},{"value":2004,"label":"恩平市"},{"value":1998,"label":"蓬江区"},{"value":1999,"label":"江海区"}]},{"value":2005,"label":"湛江市","children":[{"value":2012,"label":"廉江市"},{"value":2013,"label":"雷州市"},{"value":2014,"label":"吴川市"},{"value":2006,"label":"赤坎区"},{"value":2007,"label":"霞山区"},{"value":2008,"label":"坡头区"},{"value":2009,"label":"麻章区"},{"value":2010,"label":"遂溪县"},{"value":2011,"label":"徐闻县"}]},{"value":2015,"label":"茂名市","children":[{"value":2016,"label":"茂南区"},{"value":2017,"label":"茂港区"},{"value":2018,"label":"电白县"},{"value":2019,"label":"高州市"},{"value":2020,"label":"化州市"},{"value":2021,"label":"信宜市"}]},{"value":2022,"label":"肇庆市","children":[{"value":2023,"label":"端州区"},{"value":2024,"label":"鼎湖区"},{"value":2025,"label":"广宁县"},{"value":2026,"label":"怀集县"},{"value":2027,"label":"封开县"},{"value":2028,"label":"德庆县"},{"value":2029,"label":"高要市"},{"value":2030,"label":"四会市"}]},{"value":2031,"label":"惠州市","children":[{"value":2032,"label":"惠城区"},{"value":2033,"label":"惠阳区"},{"value":2034,"label":"博罗县"},{"value":2035,"label":"惠东县"},{"value":2036,"label":"龙门县"}]},{"value":2037,"label":"梅州市","children":[{"value":2038,"label":"梅江区"},{"value":2039,"label":"梅县"},{"value":2040,"label":"大埔县"},{"value":2041,"label":"丰顺县"},{"value":2042,"label":"五华县"},{"value":2043,"label":"平远县"},{"value":2044,"label":"蕉岭县"},{"value":2045,"label":"兴宁市"}]},{"value":2046,"label":"汕尾市","children":[{"value":2047,"label":"城区"},{"value":2048,"label":"海丰县"},{"value":2049,"label":"陆河县"},{"value":2050,"label":"陆丰市"}]},{"value":2051,"label":"河源市","children":[{"value":2052,"label":"源城区"},{"value":2053,"label":"紫金县"},{"value":2054,"label":"龙川县"},{"value":2055,"label":"连平县"},{"value":2056,"label":"和平县"},{"value":2057,"label":"东源县"}]},{"value":2058,"label":"阳江市","children":[{"value":2059,"label":"江城区"},{"value":2060,"label":"阳西县"},{"value":2061,"label":"阳东县"},{"value":2062,"label":"阳春市"},{"value":2064,"label":"清城区"},{"value":2065,"label":"佛冈县"},{"value":2066,"label":"阳山县"},{"value":2067,"label":"连山壮族瑶族自治县"},{"value":2068,"label":"连南瑶族自治县"},{"value":2069,"label":"清新县"},{"value":2070,"label":"英德市"},{"value":2071,"label":"连州市"}]},{"value":2063,"label":"清远市"},{"value":2072,"label":"东莞市"},{"value":2073,"label":"中山市"},{"value":2074,"label":"潮州市","children":[{"value":2075,"label":"湘桥区"},{"value":2076,"label":"潮安县"},{"value":2077,"label":"饶平县"}]},{"value":2078,"label":"揭阳市","children":[{"value":2079,"label":"榕城区"},{"value":2080,"label":"揭东县"},{"value":2081,"label":"揭西县"},{"value":2082,"label":"惠来县"},{"value":2083,"label":"普宁市"}]},{"value":2084,"label":"云浮市","children":[{"value":2085,"label":"云城区"},{"value":2086,"label":"新兴县"},{"value":2087,"label":"郁南县"},{"value":2088,"label":"云安县"},{"value":2089,"label":"罗定市"}]}]},{"value":2090,"label":"广西壮族自治区","children":[{"value":2091,"label":"南宁市","children":[{"value":2092,"label":"兴宁区"},{"value":2093,"label":"青秀区"},{"value":2094,"label":"江南区"},{"value":2095,"label":"西乡塘区"},{"value":2096,"label":"良庆区"},{"value":2097,"label":"邕宁区"},{"value":2098,"label":"武鸣县"},{"value":2099,"label":"隆安县"},{"value":2100,"label":"马山县"},{"value":2101,"label":"上林县"},{"value":2102,"label":"宾阳县"},{"value":2103,"label":"横县"}]},{"value":2104,"label":"柳州市","children":[{"value":2105,"label":"城中区"},{"value":2106,"label":"鱼峰区"},{"value":2107,"label":"柳南区"},{"value":2108,"label":"柳北区"},{"value":2109,"label":"柳江县"},{"value":2110,"label":"柳城县"},{"value":2111,"label":"鹿寨县"},{"value":2112,"label":"融安县"},{"value":2113,"label":"融水苗族自治县"},{"value":2114,"label":"三江侗族自治县"}]},{"value":2115,"label":"桂林市","children":[{"value":2116,"label":"秀峰区"},{"value":2117,"label":"叠彩区"},{"value":2118,"label":"象山区"},{"value":2119,"label":"七星区"},{"value":2120,"label":"雁山区"},{"value":2121,"label":"阳朔县"},{"value":2128,"label":"龙胜各族自治县"},{"value":2129,"label":"资源县"},{"value":2130,"label":"平乐县"},{"value":2131,"label":"荔蒲县"},{"value":2132,"label":"恭城瑶族自治县"},{"value":2122,"label":"临桂县"},{"value":2123,"label":"灵川县"},{"value":2124,"label":"全州县"},{"value":2125,"label":"兴安县"},{"value":2126,"label":"永福县"},{"value":2127,"label":"灌阳县"}]},{"value":2133,"label":"梧州市","children":[{"value":2134,"label":"万秀区"},{"value":2135,"label":"蝶山区"},{"value":2136,"label":"长洲区"},{"value":2137,"label":"苍梧县"},{"value":2138,"label":"藤县"},{"value":2139,"label":"蒙山县"},{"value":2140,"label":"岑溪市"}]},{"value":2141,"label":"北海市","children":[{"value":2142,"label":"海城区"},{"value":2143,"label":"银海区"},{"value":2144,"label":"铁山港区"},{"value":2145,"label":"合浦县"}]},{"value":2146,"label":"防城港市","children":[{"value":2147,"label":"港口区"},{"value":2148,"label":"防城区"},{"value":2149,"label":"上思县"},{"value":2150,"label":"东兴市"}]},{"value":2151,"label":"钦州市","children":[{"value":2152,"label":"钦南区"},{"value":2153,"label":"钦北区"},{"value":2154,"label":"灵山县"},{"value":2155,"label":"浦北县"}]},{"value":2156,"label":"贵港市","children":[{"value":2157,"label":"港北区"},{"value":2158,"label":"港南区"},{"value":2159,"label":"覃塘区"},{"value":2160,"label":"平南县"},{"value":2161,"label":"桂平市"}]},{"value":2162,"label":"玉林市","children":[{"value":2163,"label":"玉州区"},{"value":2164,"label":"容县"},{"value":2165,"label":"陆川县"},{"value":2166,"label":"博白县"},{"value":2167,"label":"兴业县"},{"value":2168,"label":"北流市"}]},{"value":2169,"label":"百色市","children":[{"value":2170,"label":"右江区"},{"value":2171,"label":"田阳县"},{"value":2172,"label":"田东县"},{"value":2173,"label":"平果县"},{"value":2174,"label":"德保县"},{"value":2175,"label":"靖西县"},{"value":2176,"label":"那坡县"},{"value":2177,"label":"凌云县"},{"value":2178,"label":"乐业县"},{"value":2179,"label":"田林县"},{"value":2180,"label":"西林县"},{"value":2181,"label":"隆林各族自治县"}]},{"value":2182,"label":"贺州市","children":[{"value":2183,"label":"八步区"},{"value":2184,"label":"昭平县"},{"value":2185,"label":"钟山县"},{"value":2186,"label":"富川瑶族自治县"}]},{"value":2187,"label":"河池市","children":[{"value":2188,"label":"金城江区"},{"value":2189,"label":"南丹县"},{"value":2190,"label":"天峨县"},{"value":2191,"label":"凤山县"},{"value":2192,"label":"东兰县"},{"value":2193,"label":"罗城仫佬族自治县"},{"value":2194,"label":"环江毛南族自治县"},{"value":2195,"label":"巴马瑶族自治县"},{"value":2196,"label":"都安瑶族自治县"},{"value":2197,"label":"大化瑶族自治县"},{"value":2198,"label":"宜州市"}]},{"value":2199,"label":"来宾市","children":[{"value":2200,"label":"兴宾区"},{"value":2201,"label":"忻城县"},{"value":2202,"label":"象州县"},{"value":2203,"label":"武宣县"},{"value":2204,"label":"金秀瑶族自治县"},{"value":2205,"label":"合山市"}]},{"value":2206,"label":"崇左市","children":[{"value":2207,"label":"江洲区"},{"value":2208,"label":"扶绥县"},{"value":2209,"label":"宁明县"},{"value":2210,"label":"龙州县"},{"value":2211,"label":"大新县"},{"value":2212,"label":"天等县"},{"value":2213,"label":"凭祥市"}]}]},{"value":2214,"label":"海南省","children":[{"value":2215,"label":"海口市","children":[{"value":2216,"label":"秀英区"},{"value":2217,"label":"龙华区"},{"value":2218,"label":"琼山区"},{"value":2219,"label":"美兰区"}]},{"value":2220,"label":"三亚市"},{"value":2221,"label":"五指山市"},{"value":2222,"label":"琼海市"},{"value":2223,"label":"儋州市"},{"value":2224,"label":"文昌市"},{"value":2225,"label":"万宁市"},{"value":2226,"label":"东方市"},{"value":2227,"label":"定安县"},{"value":2228,"label":"屯昌县"},{"value":2229,"label":"澄迈县"},{"value":2230,"label":"临高县"},{"value":2231,"label":"白沙黎族自治县"},{"value":2232,"label":"昌江黎族自治县"},{"value":2233,"label":"乐东黎族自治县"},{"value":2234,"label":"陵水黎族自治县"},{"value":2235,"label":"保亭黎族苗族自治县"},{"value":2236,"label":"琼中黎族苗族自治县"},{"value":2237,"label":"西沙群岛"},{"value":2238,"label":"南沙群岛"},{"value":2239,"label":"中沙群岛的岛礁及其海域"}]},{"value":2240,"label":"重庆市","children":[{"value":2241,"label":"万州区"},{"value":2242,"label":"涪陵区"},{"value":2243,"label":"渝中区"},{"value":2244,"label":"大渡口区"},{"value":2245,"label":"江北区"},{"value":2246,"label":"沙坪坝区"},{"value":2247,"label":"九龙坡区"},{"value":2248,"label":"南岸区"},{"value":2249,"label":"北碚区"},{"value":2250,"label":"綦江区"},{"value":2251,"label":"大足区"},{"value":2252,"label":"渝北区"},{"value":2253,"label":"巴南区"},{"value":2254,"label":"黔江区"},{"value":2255,"label":"长寿区"},{"value":2256,"label":"江津区"},{"value":2257,"label":"合川区"},{"value":2258,"label":"永川区"},{"value":2259,"label":"南川区"},{"value":2260,"label":"潼南县"},{"value":2261,"label":"铜梁县"},{"value":2262,"label":"荣昌县"},{"value":2263,"label":"璧山县"},{"value":2264,"label":"梁平县"},{"value":2265,"label":"城口县"},{"value":2266,"label":"丰都县"},{"value":2267,"label":"垫江县"},{"value":2268,"label":"武隆县"},{"value":2269,"label":"忠县"},{"value":2270,"label":"开县"},{"value":2271,"label":"云阳县"},{"value":2272,"label":"奉节县"},{"value":2273,"label":"巫山县"},{"value":2274,"label":"巫溪县"},{"value":2275,"label":"石柱土家族自治县"},{"value":2276,"label":"秀山土家族苗族自治县"},{"value":2277,"label":"酉阳土家族苗族自治县"},{"value":2278,"label":"彭水苗族土家族自治县"}]},{"value":2279,"label":"四川省","children":[{"value":2280,"label":"成都市","children":[{"value":2281,"label":"锦江区"},{"value":2282,"label":"青羊区"},{"value":2283,"label":"金牛区"},{"value":2284,"label":"武侯区"},{"value":2285,"label":"成华区"},{"value":2286,"label":"龙泉驿区"},{"value":2299,"label":"崇州市"},{"value":2293,"label":"大邑县"},{"value":2294,"label":"蒲江县"},{"value":2295,"label":"新津县"},{"value":2296,"label":"都江堰市"},{"value":2297,"label":"彭州市"},{"value":2298,"label":"邛崃市"},{"value":2287,"label":"青白江区"},{"value":2288,"label":"新都区"},{"value":2289,"label":"温江区"},{"value":2290,"label":"金堂县"},{"value":2291,"label":"双流县"},{"value":2292,"label":"郫县"}]},{"value":2300,"label":"自贡市","children":[{"value":2301,"label":"自流井区"},{"value":2302,"label":"贡井区"},{"value":2303,"label":"大安区"},{"value":2304,"label":"沿滩区"},{"value":2305,"label":"荣县"},{"value":2306,"label":"富顺县"}]},{"value":2307,"label":"攀枝花市","children":[{"value":2308,"label":"东区"},{"value":2309,"label":"西区"},{"value":2310,"label":"仁和区"},{"value":2311,"label":"米易县"},{"value":2312,"label":"盐边县"}]},{"value":2313,"label":"泸州市","children":[{"value":2315,"label":"纳溪区"},{"value":2316,"label":"龙马潭区"},{"value":2317,"label":"泸县"},{"value":2318,"label":"合江县"},{"value":2319,"label":"叙永县"},{"value":2320,"label":"古蔺县"},{"value":2314,"label":"江阳区"}]},{"value":2321,"label":"德阳市","children":[{"value":2322,"label":"旌阳区"},{"value":2323,"label":"中江县"},{"value":2324,"label":"罗江县"},{"value":2325,"label":"广汉市"},{"value":2326,"label":"什邡市"},{"value":2327,"label":"绵竹市"}]},{"value":2328,"label":"绵阳市","children":[{"value":2329,"label":"涪城区"},{"value":2330,"label":"游仙区"},{"value":2331,"label":"三台县"},{"value":2332,"label":"盐亭县"},{"value":2333,"label":"安县"},{"value":2334,"label":"梓潼县"},{"value":2335,"label":"北川羌族自治县"},{"value":2336,"label":"平武县"},{"value":2337,"label":"江油市"}]},{"value":2338,"label":"广元市","children":[{"value":2339,"label":"利州区"},{"value":2340,"label":"元坝区"},{"value":2341,"label":"朝天区"},{"value":2342,"label":"旺苍县"},{"value":2343,"label":"青川县"},{"value":2344,"label":"剑阁县"},{"value":2345,"label":"苍溪县"}]},{"value":2346,"label":"遂宁市","children":[{"value":2347,"label":"船山区"},{"value":2348,"label":"安居区"},{"value":2349,"label":"蓬溪县"},{"value":2350,"label":"射洪县"},{"value":2351,"label":"大英县"}]},{"value":2352,"label":"内江市","children":[{"value":2353,"label":"市中区"},{"value":2354,"label":"东兴区"},{"value":2355,"label":"威远县"},{"value":2356,"label":"资中县"},{"value":2357,"label":"隆昌县"}]},{"value":2358,"label":"乐山市","children":[{"value":2359,"label":"市中区"},{"value":2360,"label":"沙湾区"},{"value":2361,"label":"五通桥区"},{"value":2362,"label":"金口河区"},{"value":2363,"label":"犍为县"},{"value":2364,"label":"井研县"},{"value":2365,"label":"夹江县"},{"value":2366,"label":"沐川县"},{"value":2367,"label":"峨边彝族自治县"},{"value":2368,"label":"马边彝族自治县"},{"value":2369,"label":"峨眉山市"}]},{"value":2370,"label":"南充市","children":[{"value":2371,"label":"顺庆区"},{"value":2372,"label":"高坪区"},{"value":2373,"label":"嘉陵区"},{"value":2374,"label":"南部县"},{"value":2375,"label":"营山县"},{"value":2376,"label":"蓬安县"},{"value":2377,"label":"仪陇县"},{"value":2378,"label":"西充县"},{"value":2379,"label":"阆中市"}]},{"value":2380,"label":"眉山市","children":[{"value":2381,"label":"东坡区"},{"value":2382,"label":"仁寿县"},{"value":2383,"label":"彭山县"},{"value":2384,"label":"洪雅县"},{"value":2385,"label":"丹棱县"},{"value":2386,"label":"青神县"}]},{"value":2387,"label":"宜宾市","children":[{"value":2393,"label":"高县"},{"value":2394,"label":"珙县"},{"value":2395,"label":"筠连县"},{"value":2396,"label":"兴文县"},{"value":2397,"label":"屏山县"},{"value":2388,"label":"翠屏区"},{"value":2389,"label":"南溪区"},{"value":2390,"label":"宜宾县"},{"value":2391,"label":"江安县"},{"value":2392,"label":"长宁县"}]},{"value":2398,"label":"广安市","children":[{"value":2399,"label":"广安区"},{"value":2400,"label":"岳池县"},{"value":2401,"label":"武胜县"},{"value":2402,"label":"邻水县"},{"value":2403,"label":"华蓥市"}]},{"value":2404,"label":"达州市","children":[{"value":2407,"label":"宣汉县"},{"value":2408,"label":"开江县"},{"value":2409,"label":"大竹县"},{"value":2410,"label":"渠县"},{"value":2411,"label":"万源市"},{"value":2405,"label":"通川区"},{"value":2406,"label":"达县"}]},{"value":2412,"label":"雅安市","children":[{"value":2420,"label":"宝兴县"},{"value":2414,"label":"名山县"},{"value":2415,"label":"荥经县"},{"value":2416,"label":"汉源县"},{"value":2417,"label":"石棉县"},{"value":2418,"label":"天全县"},{"value":2419,"label":"芦山县"},{"value":2413,"label":"雨城区"}]},{"value":2421,"label":"巴中市","children":[{"value":2422,"label":"巴州区"},{"value":2423,"label":"通江县"},{"value":2424,"label":"南江县"},{"value":2425,"label":"平昌县"}]},{"value":2426,"label":"资阳市","children":[{"value":2428,"label":"安岳县"},{"value":2429,"label":"乐至县"},{"value":2430,"label":"简阳市"},{"value":2427,"label":"雁江区"}]},{"value":2431,"label":"阿坝藏族羌族自治州","children":[{"value":2432,"label":"汶川县"},{"value":2433,"label":"理县"},{"value":2434,"label":"茂县"},{"value":2435,"label":"松潘县"},{"value":2436,"label":"九寨沟县"},{"value":2437,"label":"金川县"},{"value":2444,"label":"红原县"},{"value":2438,"label":"小金县"},{"value":2439,"label":"黑水县"},{"value":2440,"label":"马尔康县"},{"value":2441,"label":"壤塘县"},{"value":2442,"label":"阿坝县"},{"value":2443,"label":"若尔盖县"}]},{"value":2445,"label":"甘孜藏族自治州","children":[{"value":2446,"label":"康定县"},{"value":2447,"label":"泸定县"},{"value":2448,"label":"丹巴县"},{"value":2449,"label":"九龙县"},{"value":2450,"label":"雅江县"},{"value":2451,"label":"道孚县"},{"value":2458,"label":"色达县"},{"value":2459,"label":"理塘县"},{"value":2460,"label":"巴塘县"},{"value":2461,"label":"乡城县"},{"value":2462,"label":"稻城县"},{"value":2463,"label":"得荣县"},{"value":2452,"label":"炉霍县"},{"value":2453,"label":"甘孜县"},{"value":2454,"label":"新龙县"},{"value":2455,"label":"德格县"},{"value":2456,"label":"白玉县"},{"value":2457,"label":"石渠县"}]},{"value":2464,"label":"凉山彝族自治州","children":[{"value":2465,"label":"西昌市"},{"value":2466,"label":"木里藏族自治县"},{"value":2479,"label":"甘洛县"},{"value":2480,"label":"美姑县"},{"value":2481,"label":"雷波县"},{"value":2473,"label":"布拖县"},{"value":2474,"label":"金阳县"},{"value":2475,"label":"昭觉县"},{"value":2476,"label":"喜德县"},{"value":2477,"label":"冕宁县"},{"value":2478,"label":"越西县"},{"value":2467,"label":"盐源县"},{"value":2468,"label":"德昌县"},{"value":2469,"label":"会理县"},{"value":2470,"label":"会东县"},{"value":2471,"label":"宁南县"},{"value":2472,"label":"普格县"}]}]},{"value":2482,"label":"贵州省","children":[{"value":2483,"label":"贵阳市","children":[{"value":2484,"label":"南明区"},{"value":2485,"label":"云岩区"},{"value":2486,"label":"花溪区"},{"value":2487,"label":"乌当区"},{"value":2488,"label":"白云区"},{"value":2489,"label":"小河区"},{"value":2490,"label":"开阳县"},{"value":2491,"label":"息烽县"},{"value":2492,"label":"修文县"},{"value":2493,"label":"清镇市"}]},{"value":2494,"label":"六盘水市","children":[{"value":2495,"label":"钟山区"},{"value":2496,"label":"六枝特区"},{"value":2497,"label":"水城县"},{"value":2498,"label":"盘县"}]},{"value":2499,"label":"遵义市","children":[{"value":2500,"label":"红花岗区"},{"value":2501,"label":"汇川区"},{"value":2502,"label":"遵义县"},{"value":2503,"label":"桐梓县"},{"value":2504,"label":"绥阳县"},{"value":2505,"label":"正安县"},{"value":2512,"label":"赤水市"},{"value":2513,"label":"仁怀市"},{"value":2506,"label":"道真仡佬族苗族自治县"},{"value":2507,"label":"务川仡佬族苗族自治县"},{"value":2508,"label":"凤冈县"},{"value":2509,"label":"湄潭县"},{"value":2510,"label":"余庆县"},{"value":2511,"label":"习水县"}]},{"value":2514,"label":"安顺市","children":[{"value":2517,"label":"普定县"},{"value":2518,"label":"镇宁布依族苗族自治县"},{"value":2519,"label":"关岭布依族苗族自治县"},{"value":2520,"label":"紫云苗族布依族自治县"},{"value":2515,"label":"西秀区"},{"value":2516,"label":"平坝县"}]},{"value":2521,"label":"毕节市","children":[{"value":2522,"label":"七星关区"},{"value":2523,"label":"大方县"},{"value":2524,"label":"黔西县"},{"value":2525,"label":"金沙县"},{"value":2526,"label":"织金县"},{"value":2527,"label":"纳雍县"},{"value":2528,"label":"威宁彝族回族苗族自治县"},{"value":2529,"label":"赫章县"}]},{"value":2530,"label":"铜仁市","children":[{"value":2536,"label":"思南县"},{"value":2537,"label":"印江土家族苗族自治县"},{"value":2538,"label":"德江县"},{"value":2539,"label":"沿河土家族自治县"},{"value":2540,"label":"松桃苗族自治县"},{"value":2531,"label":"碧江区"},{"value":2532,"label":"万山区"},{"value":2533,"label":"江口县"},{"value":2534,"label":"玉屏侗族自治县"},{"value":2535,"label":"石阡县"}]},{"value":2541,"label":"黔西南布依族苗族自治州","children":[{"value":2542,"label":"兴义市"},{"value":2543,"label":"兴仁县"},{"value":2544,"label":"普安县"},{"value":2545,"label":"晴隆县"},{"value":2546,"label":"贞丰县"},{"value":2547,"label":"望谟县"},{"value":2548,"label":"册亨县"},{"value":2549,"label":"安龙县"}]},{"value":2550,"label":"黔东南苗族侗族自治州","children":[{"value":2551,"label":"凯里市"},{"value":2552,"label":"黄平县"},{"value":2553,"label":"施秉县"},{"value":2554,"label":"三穗县"},{"value":2555,"label":"镇远县"},{"value":2556,"label":"岑巩县"},{"value":2563,"label":"从江县"},{"value":2564,"label":"雷山县"},{"value":2565,"label":"麻江县"},{"value":2566,"label":"丹寨县"},{"value":2557,"label":"天柱县"},{"value":2558,"label":"锦屏县"},{"value":2559,"label":"剑河县"},{"value":2560,"label":"台江县"},{"value":2561,"label":"黎平县"},{"value":2562,"label":"榕江县"}]},{"value":2567,"label":"黔南布依族苗族自治州","children":[{"value":2568,"label":"都匀市"},{"value":2569,"label":"福泉市"},{"value":2570,"label":"荔波县"},{"value":2571,"label":"贵定县"},{"value":2572,"label":"瓮安县"},{"value":2573,"label":"独山县"},{"value":2574,"label":"平塘县"},{"value":2575,"label":"罗甸县"},{"value":2576,"label":"长顺县"},{"value":2577,"label":"龙里县"},{"value":2578,"label":"惠水县"},{"value":2579,"label":"三都水族自治县"}]}]},{"value":2580,"label":"云南省","children":[{"value":2581,"label":"昆明市","children":[{"value":2590,"label":"宜良县"},{"value":2591,"label":"石林彝族自治县"},{"value":2592,"label":"嵩明县"},{"value":2593,"label":"禄劝彝族苗族自治县"},{"value":2594,"label":"寻甸回族彝族自治县"},{"value":2595,"label":"安宁市"},{"value":2584,"label":"官渡区"},{"value":2585,"label":"西山区"},{"value":2586,"label":"东川区"},{"value":2587,"label":"呈贡区"},{"value":2588,"label":"晋宁县"},{"value":2589,"label":"富民县"},{"value":2582,"label":"五华区"},{"value":2583,"label":"盘龙区"}]},{"value":2596,"label":"曲靖市","children":[{"value":2604,"label":"沾益县"},{"value":2605,"label":"宣威市"},{"value":2598,"label":"马龙县"},{"value":2599,"label":"陆良县"},{"value":2600,"label":"师宗县"},{"value":2601,"label":"罗平县"},{"value":2602,"label":"富源县"},{"value":2603,"label":"会泽县"},{"value":2597,"label":"麒麟区"}]},{"value":2606,"label":"玉溪市","children":[{"value":2607,"label":"红塔区"},{"value":2608,"label":"江川县"},{"value":2609,"label":"澄江县"},{"value":2610,"label":"通海县"},{"value":2611,"label":"华宁县"},{"value":2612,"label":"易门县"},{"value":2613,"label":"峨山彝族自治县"},{"value":2614,"label":"新平彝族傣族自治县"},{"value":2615,"label":"元江哈尼族彝族傣族自治县"}]},{"value":2616,"label":"保山市","children":[{"value":2617,"label":"隆阳区"},{"value":2618,"label":"施甸县"},{"value":2619,"label":"腾冲县"},{"value":2620,"label":"龙陵县"},{"value":2621,"label":"昌宁县"}]},{"value":2622,"label":"昭通市","children":[{"value":2628,"label":"永善县"},{"value":2629,"label":"绥江县"},{"value":2630,"label":"镇雄县"},{"value":2631,"label":"彝良县"},{"value":2632,"label":"威信县"},{"value":2633,"label":"水富县"},{"value":2623,"label":"昭阳区"},{"value":2624,"label":"鲁甸县"},{"value":2625,"label":"巧家县"},{"value":2626,"label":"盐津县"},{"value":2627,"label":"大关县"}]},{"value":2634,"label":"丽江市","children":[{"value":2635,"label":"古城区"},{"value":2636,"label":"玉龙纳西族自治县"},{"value":2637,"label":"永胜县"},{"value":2638,"label":"华坪县"},{"value":2639,"label":"宁蒗彝族自治县"}]},{"value":2640,"label":"普洱市","children":[{"value":2641,"label":"思茅区"},{"value":2642,"label":"宁洱哈尼族彝族自治县"},{"value":2643,"label":"墨江哈尼族自治县"},{"value":2644,"label":"景东彝族自治县"},{"value":2645,"label":"景谷傣族彝族自治县"},{"value":2646,"label":"镇沅彝族哈尼族拉祜族自治县"},{"value":2647,"label":"江城哈尼族彝族自治县"},{"value":2648,"label":"孟连傣族拉祜族佤族自治县"},{"value":2649,"label":"澜沧拉祜族自治县"},{"value":2650,"label":"西盟佤族自治县"}]},{"value":2651,"label":"临沧市","children":[{"value":2652,"label":"临翔区"},{"value":2653,"label":"凤庆县"},{"value":2654,"label":"云县"},{"value":2655,"label":"永德县"},{"value":2656,"label":"镇康县"},{"value":2657,"label":"双江拉祜族佤族布朗族傣族自治县"},{"value":2658,"label":"耿马傣族佤族自治县"},{"value":2659,"label":"沧源佤族自治县"}]},{"value":2660,"label":"楚雄彝族自治州","children":[{"value":2667,"label":"永仁县"},{"value":2668,"label":"元谋县"},{"value":2669,"label":"武定县"},{"value":2670,"label":"禄丰县"},{"value":2661,"label":"楚雄市"},{"value":2662,"label":"双柏县"},{"value":2663,"label":"牟定县"},{"value":2664,"label":"南华县"},{"value":2665,"label":"姚安县"},{"value":2666,"label":"大姚县"}]},{"value":2671,"label":"红河哈尼族彝族自治州","children":[{"value":2672,"label":"个旧市"},{"value":2673,"label":"开远市"},{"value":2674,"label":"蒙自市"},{"value":2675,"label":"屏边苗族自治县"},{"value":2676,"label":"建水县"},{"value":2677,"label":"石屏县"},{"value":2684,"label":"河口瑶族自治县"},{"value":2678,"label":"弥勒县"},{"value":2679,"label":"泸西县"},{"value":2680,"label":"元阳县"},{"value":2681,"label":"红河县"},{"value":2682,"label":"金平苗族瑶族傣族自治县"},{"value":2683,"label":"绿春县"}]},{"value":2685,"label":"文山壮族苗族自治州","children":[{"value":2688,"label":"西畴县"},{"value":2689,"label":"麻栗坡县"},{"value":2690,"label":"马关县"},{"value":2691,"label":"丘北县"},{"value":2692,"label":"广南县"},{"value":2693,"label":"富宁县"},{"value":2686,"label":"文山市"},{"value":2687,"label":"砚山县"}]},{"value":2694,"label":"西双版纳傣族自治州","children":[{"value":2695,"label":"景洪市"},{"value":2696,"label":"勐海县"},{"value":2697,"label":"勐腊县"}]},{"value":2698,"label":"大理白族自治州","children":[{"value":2699,"label":"大理市"},{"value":2700,"label":"漾濞彝族自治县"},{"value":2701,"label":"祥云县"},{"value":2702,"label":"宾川县"},{"value":2703,"label":"弥渡县"},{"value":2704,"label":"南涧彝族自治县"},{"value":2705,"label":"巍山彝族回族自治县"},{"value":2706,"label":"永平县"},{"value":2707,"label":"云龙县"},{"value":2708,"label":"洱源县"},{"value":2709,"label":"剑川县"},{"value":2710,"label":"鹤庆县"}]},{"value":2711,"label":"德宏傣族景颇族自治州","children":[{"value":2712,"label":"瑞丽市"},{"value":2713,"label":"芒市"},{"value":2714,"label":"梁河县"},{"value":2715,"label":"盈江县"},{"value":2716,"label":"陇川县"}]},{"value":2717,"label":"怒江傈僳族自治州","children":[{"value":2720,"label":"贡山独龙族怒族自治县"},{"value":2721,"label":"兰坪白族普米族自治县"},{"value":2718,"label":"泸水县"},{"value":2719,"label":"福贡县"}]},{"value":2722,"label":"迪庆藏族自治州","children":[{"value":2723,"label":"香格里拉县"},{"value":2724,"label":"德钦县"},{"value":2725,"label":"维西傈僳族自治县"}]}]},{"value":2726,"label":"西藏自治区","children":[{"value":2727,"label":"拉萨市","children":[{"value":2728,"label":"城关区"},{"value":2735,"label":"墨竹工卡县"},{"value":2729,"label":"林周县"},{"value":2730,"label":"当雄县"},{"value":2731,"label":"尼木县"},{"value":2732,"label":"曲水县"},{"value":2733,"label":"堆龙德庆县"},{"value":2734,"label":"达孜县"}]},{"value":2736,"label":"昌都地区","children":[{"value":2744,"label":"左贡县"},{"value":2745,"label":"芒康县"},{"value":2746,"label":"洛隆县"},{"value":2747,"label":"边坝县"},{"value":2738,"label":"江达县"},{"value":2739,"label":"贡觉县"},{"value":2740,"label":"类乌齐县"},{"value":2741,"label":"丁青县"},{"value":2742,"label":"察雅县"},{"value":2743,"label":"八宿县"},{"value":2737,"label":"昌都县"}]},{"value":2748,"label":"山南地区","children":[{"value":2749,"label":"乃东县"},{"value":2756,"label":"洛扎县"},{"value":2757,"label":"加查县"},{"value":2758,"label":"隆子县"},{"value":2759,"label":"错那县"},{"value":2760,"label":"浪卡子县"},{"value":2750,"label":"扎囊县"},{"value":2751,"label":"贡嘎县"},{"value":2752,"label":"桑日县"},{"value":2753,"label":"琼结县"},{"value":2754,"label":"曲松县"},{"value":2755,"label":"措美县"}]},{"value":2761,"label":"日喀则地区","children":[{"value":2776,"label":"吉隆县"},{"value":2777,"label":"聂拉木县"},{"value":2778,"label":"萨嘎县"},{"value":2779,"label":"岗巴县"},{"value":2770,"label":"白朗县"},{"value":2771,"label":"仁布县"},{"value":2772,"label":"康马县"},{"value":2773,"label":"定结县"},{"value":2774,"label":"仲巴县"},{"value":2775,"label":"亚东县"},{"value":2764,"label":"江孜县"},{"value":2765,"label":"定日县"},{"value":2766,"label":"萨迦县"},{"value":2767,"label":"拉孜县"},{"value":2768,"label":"昂仁县"},{"value":2769,"label":"谢通门县"},{"value":2762,"label":"日喀则市"},{"value":2763,"label":"南木林县"}]},{"value":2780,"label":"那曲地区","children":[{"value":2781,"label":"那曲县"},{"value":2782,"label":"嘉黎县"},{"value":2783,"label":"比如县"},{"value":2784,"label":"聂荣县"},{"value":2785,"label":"安多县"},{"value":2786,"label":"申扎县"},{"value":2787,"label":"索县"},{"value":2788,"label":"班戈县"},{"value":2789,"label":"巴青县"},{"value":2790,"label":"尼玛县"}]},{"value":2791,"label":"阿里地区","children":[{"value":2792,"label":"普兰县"},{"value":2793,"label":"札达县"},{"value":2794,"label":"噶尔县"},{"value":2795,"label":"日土县"},{"value":2796,"label":"革吉县"},{"value":2797,"label":"改则县"},{"value":2798,"label":"措勤县"}]},{"value":2799,"label":"林芝地区","children":[{"value":2800,"label":"林芝县"},{"value":2801,"label":"工布江达县"},{"value":2802,"label":"米林县"},{"value":2803,"label":"墨脱县"},{"value":2804,"label":"波密县"},{"value":2805,"label":"察隅县"},{"value":2806,"label":"朗县"}]}]},{"value":2807,"label":"陕西省","children":[{"value":2808,"label":"西安市","children":[{"value":2809,"label":"新城区"},{"value":2810,"label":"碑林区"},{"value":2811,"label":"莲湖区"},{"value":2812,"label":"灞桥区"},{"value":2813,"label":"未央区"},{"value":2814,"label":"雁塔区"},{"value":2821,"label":"高陵县"},{"value":2815,"label":"阎良区"},{"value":2816,"label":"临潼区"},{"value":2817,"label":"长安区"},{"value":2818,"label":"蓝田县"},{"value":2819,"label":"周至县"},{"value":2820,"label":"户县"}]},{"value":2822,"label":"铜川市","children":[{"value":2823,"label":"王益区"},{"value":2824,"label":"印台区"},{"value":2825,"label":"耀州区"},{"value":2826,"label":"宜君县"}]},{"value":2827,"label":"宝鸡市","children":[{"value":2838,"label":"凤县"},{"value":2839,"label":"太白县"},{"value":2832,"label":"岐山县"},{"value":2833,"label":"扶风县"},{"value":2834,"label":"眉县"},{"value":2835,"label":"陇县"},{"value":2836,"label":"千阳县"},{"value":2837,"label":"麟游县"},{"value":2828,"label":"渭滨区"},{"value":2829,"label":"金台区"},{"value":2830,"label":"陈仓区"},{"value":2831,"label":"凤翔县"}]},{"value":2840,"label":"咸阳市","children":[{"value":2841,"label":"秦都区"},{"value":2842,"label":"杨陵区"},{"value":2843,"label":"渭城区"},{"value":2844,"label":"三原县"},{"value":2845,"label":"泾阳县"},{"value":2846,"label":"乾县"},{"value":2853,"label":"武功县"},{"value":2854,"label":"兴平市"},{"value":2847,"label":"礼泉县"},{"value":2848,"label":"永寿县"},{"value":2849,"label":"彬县"},{"value":2850,"label":"长武县"},{"value":2851,"label":"旬邑县"},{"value":2852,"label":"淳化县"}]},{"value":2855,"label":"渭南市","children":[{"value":2865,"label":"韩城市"},{"value":2866,"label":"华阴市"},{"value":2859,"label":"大荔县"},{"value":2860,"label":"合阳县"},{"value":2861,"label":"澄城县"},{"value":2862,"label":"蒲城县"},{"value":2863,"label":"白水县"},{"value":2864,"label":"富平县"},{"value":2856,"label":"临渭区"},{"value":2857,"label":"华县"},{"value":2858,"label":"潼关县"}]},{"value":2867,"label":"延安市","children":[{"value":2879,"label":"黄龙县"},{"value":2880,"label":"黄陵县"},{"value":2873,"label":"志丹县"},{"value":2874,"label":"吴起县"},{"value":2875,"label":"甘泉县"},{"value":2876,"label":"富县"},{"value":2877,"label":"洛川县"},{"value":2878,"label":"宜川县"},{"value":2868,"label":"宝塔区"},{"value":2869,"label":"延长县"},{"value":2870,"label":"延川县"},{"value":2871,"label":"子长县"},{"value":2872,"label":"安塞县"}]},{"value":2881,"label":"汉中市","children":[{"value":2882,"label":"汉台区"},{"value":2883,"label":"南郑县"},{"value":2884,"label":"城固县"},{"value":2885,"label":"洋县"},{"value":2886,"label":"西乡县"},{"value":2887,"label":"勉县"},{"value":2888,"label":"宁强县"},{"value":2889,"label":"略阳县"},{"value":2890,"label":"镇巴县"},{"value":2891,"label":"留坝县"},{"value":2892,"label":"佛坪县"}]},{"value":2893,"label":"榆林市","children":[{"value":2894,"label":"榆阳区"},{"value":2895,"label":"神木县"},{"value":2896,"label":"府谷县"},{"value":2897,"label":"横山县"},{"value":2898,"label":"靖边县"},{"value":2899,"label":"定边县"},{"value":2900,"label":"绥德县"},{"value":2901,"label":"米脂县"},{"value":2902,"label":"佳县"},{"value":2903,"label":"吴堡县"},{"value":2904,"label":"清涧县"},{"value":2905,"label":"子洲县"}]},{"value":2906,"label":"安康市","children":[{"value":2907,"label":"汉滨区"},{"value":2908,"label":"汉阴县"},{"value":2909,"label":"石泉县"},{"value":2910,"label":"宁陕县"},{"value":2911,"label":"紫阳县"},{"value":2912,"label":"岚皋县"},{"value":2913,"label":"平利县"},{"value":2914,"label":"镇坪县"},{"value":2915,"label":"旬阳县"},{"value":2916,"label":"白河县"}]},{"value":2917,"label":"商洛市","children":[{"value":2921,"label":"商南县"},{"value":2922,"label":"山阳县"},{"value":2923,"label":"镇安县"},{"value":2924,"label":"柞水县"},{"value":2918,"label":"商州区"},{"value":2919,"label":"洛南县"},{"value":2920,"label":"丹凤县"}]}]},{"value":2925,"label":"甘肃省","children":[{"value":2926,"label":"兰州市","children":[{"value":2933,"label":"皋兰县"},{"value":2934,"label":"榆中县"},{"value":2927,"label":"城关区"},{"value":2928,"label":"七里河区"},{"value":2929,"label":"西固区"},{"value":2930,"label":"安宁区"},{"value":2931,"label":"红古区"},{"value":2932,"label":"永登县"}]},{"value":2935,"label":"嘉峪关市","children":[{"value":2938,"label":"永昌县"},{"value":2936,"label":"金昌市"},{"value":2937,"label":"金川区"}]},{"value":2939,"label":"白银市","children":[{"value":2940,"label":"白银区"},{"value":2941,"label":"平川区"},{"value":2942,"label":"靖远县"},{"value":2943,"label":"会宁县"},{"value":2944,"label":"景泰县"}]},{"value":2945,"label":"天水市","children":[{"value":2947,"label":"麦积区"},{"value":2948,"label":"清水县"},{"value":2949,"label":"秦安县"},{"value":2950,"label":"甘谷县"},{"value":2951,"label":"武山县"},{"value":2952,"label":"张家川回族自治县"},{"value":2946,"label":"秦州区"}]},{"value":2953,"label":"武威市","children":[{"value":2954,"label":"凉州区"},{"value":2955,"label":"民勤县"},{"value":2956,"label":"古浪县"},{"value":2957,"label":"天祝藏族自治县"}]},{"value":2958,"label":"张掖市","children":[{"value":2959,"label":"甘州区"},{"value":2960,"label":"肃南裕固族自治县"},{"value":2961,"label":"民乐县"},{"value":2962,"label":"临泽县"},{"value":2963,"label":"高台县"},{"value":2964,"label":"山丹县"}]},{"value":2965,"label":"平凉市","children":[{"value":2966,"label":"崆峒区"},{"value":2967,"label":"泾川县"},{"value":2968,"label":"灵台县"},{"value":2969,"label":"崇信县"},{"value":2970,"label":"华亭县"},{"value":2971,"label":"庄浪县"},{"value":2972,"label":"静宁县"}]},{"value":2973,"label":"酒泉市","children":[{"value":2974,"label":"肃州区"},{"value":2975,"label":"金塔县"},{"value":2976,"label":"瓜州县"},{"value":2977,"label":"肃北蒙古族自治县"},{"value":2978,"label":"阿克塞哈萨克族自治县"},{"value":2979,"label":"玉门市"},{"value":2980,"label":"敦煌市"}]},{"value":2981,"label":"庆阳市","children":[{"value":2982,"label":"西峰区"},{"value":2983,"label":"庆城县"},{"value":2984,"label":"环县"},{"value":2985,"label":"华池县"},{"value":2986,"label":"合水县"},{"value":2987,"label":"正宁县"},{"value":2988,"label":"宁县"},{"value":2989,"label":"镇原县"}]},{"value":2990,"label":"定西市","children":[{"value":2991,"label":"安定区"},{"value":2992,"label":"通渭县"},{"value":2993,"label":"陇西县"},{"value":2994,"label":"渭源县"},{"value":2995,"label":"临洮县"},{"value":2996,"label":"漳县"},{"value":2997,"label":"岷县"}]},{"value":2998,"label":"陇南市","children":[{"value":3006,"label":"徽县"},{"value":3007,"label":"两当县"},{"value":3000,"label":"成县"},{"value":3001,"label":"文县"},{"value":3002,"label":"宕昌县"},{"value":3003,"label":"康县"},{"value":3004,"label":"西和县"},{"value":3005,"label":"礼县"},{"value":2999,"label":"武都区"}]},{"value":3008,"label":"临夏回族自治州","children":[{"value":3009,"label":"临夏市"},{"value":3010,"label":"临夏县"},{"value":3011,"label":"康乐县"},{"value":3012,"label":"永靖县"},{"value":3013,"label":"广河县"},{"value":3014,"label":"和政县"},{"value":3015,"label":"东乡族自治县"},{"value":3016,"label":"积石山保安族东乡族撒拉族自治县"}]},{"value":3017,"label":"甘南藏族自治州","children":[{"value":3024,"label":"碌曲县"},{"value":3025,"label":"夏河县"},{"value":3018,"label":"合作市"},{"value":3019,"label":"临潭县"},{"value":3020,"label":"卓尼县"},{"value":3021,"label":"舟曲县"},{"value":3022,"label":"迭部县"},{"value":3023,"label":"玛曲县"}]}]},{"value":3026,"label":"青海省","children":[{"value":3027,"label":"西宁市","children":[{"value":3028,"label":"城东区"},{"value":3029,"label":"城中区"},{"value":3030,"label":"城西区"},{"value":3031,"label":"城北区"},{"value":3032,"label":"大通回族土族自治县"},{"value":3033,"label":"湟中县"},{"value":3034,"label":"湟源县"}]},{"value":3035,"label":"海东地区","children":[{"value":3036,"label":"平安县"},{"value":3037,"label":"民和回族土族自治县"},{"value":3038,"label":"乐都县"},{"value":3039,"label":"互助土族自治县"},{"value":3040,"label":"化隆回族自治县"},{"value":3041,"label":"循化撒拉族自治县"}]},{"value":3042,"label":"海北藏族自治州","children":[{"value":3043,"label":"门源回族自治县"},{"value":3044,"label":"祁连县"},{"value":3045,"label":"海晏县"},{"value":3046,"label":"刚察县"}]},{"value":3047,"label":"黄南藏族自治州","children":[{"value":3048,"label":"同仁县"},{"value":3049,"label":"尖扎县"},{"value":3050,"label":"泽库县"},{"value":3051,"label":"河南蒙古族自治县"}]},{"value":3052,"label":"海南藏族自治州","children":[{"value":3053,"label":"共和县"},{"value":3054,"label":"同德县"},{"value":3055,"label":"贵德县"},{"value":3056,"label":"兴海县"},{"value":3057,"label":"贵南县"}]},{"value":3058,"label":"果洛藏族自治州","children":[{"value":3064,"label":"玛多县"},{"value":3059,"label":"玛沁县"},{"value":3060,"label":"班玛县"},{"value":3061,"label":"甘德县"},{"value":3062,"label":"达日县"},{"value":3063,"label":"久治县"}]},{"value":3065,"label":"玉树藏族自治州","children":[{"value":3066,"label":"玉树县"},{"value":3067,"label":"杂多县"},{"value":3068,"label":"称多县"},{"value":3069,"label":"治多县"},{"value":3070,"label":"囊谦县"},{"value":3071,"label":"曲麻莱县"}]},{"value":3072,"label":"海西蒙古族藏族自治州","children":[{"value":3074,"label":"德令哈市"},{"value":3075,"label":"乌兰县"},{"value":3076,"label":"都兰县"},{"value":3077,"label":"天峻县"},{"value":3073,"label":"格尔木市"}]}]},{"value":3078,"label":"宁夏回族自治区","children":[{"value":3079,"label":"银川市","children":[{"value":3081,"label":"西夏区"},{"value":3082,"label":"金凤区"},{"value":3083,"label":"永宁县"},{"value":3084,"label":"贺兰县"},{"value":3085,"label":"灵武市"},{"value":3080,"label":"兴庆区"}]},{"value":3086,"label":"石嘴山市","children":[{"value":3088,"label":"惠农区"},{"value":3089,"label":"平罗县"},{"value":3087,"label":"大武口区"}]},{"value":3090,"label":"吴忠市","children":[{"value":3091,"label":"利通区"},{"value":3092,"label":"红寺堡区"},{"value":3093,"label":"盐池县"},{"value":3094,"label":"同心县"},{"value":3095,"label":"青铜峡市"}]},{"value":3096,"label":"固原市","children":[{"value":3097,"label":"原州区"},{"value":3098,"label":"西吉县"},{"value":3099,"label":"隆德县"},{"value":3100,"label":"泾源县"},{"value":3101,"label":"彭阳县"}]},{"value":3102,"label":"中卫市","children":[{"value":3103,"label":"沙坡头区"},{"value":3104,"label":"中宁县"},{"value":3105,"label":"海原县"}]}]},{"value":3106,"label":"新疆维吾尔自治区","children":[{"value":3107,"label":"乌鲁木齐市","children":[{"value":3108,"label":"天山区"},{"value":3109,"label":"沙依巴克区"},{"value":3110,"label":"新市区"},{"value":3111,"label":"水磨沟区"},{"value":3112,"label":"头屯河区"},{"value":3113,"label":"达坂城区"},{"value":3114,"label":"米东区"},{"value":3115,"label":"乌鲁木齐县"}]},{"value":3116,"label":"克拉玛依市","children":[{"value":3117,"label":"独山子区"},{"value":3118,"label":"克拉玛依区"},{"value":3119,"label":"白碱滩区"},{"value":3120,"label":"乌尔禾区"}]},{"value":3121,"label":"吐鲁番地区","children":[{"value":3122,"label":"吐鲁番市"},{"value":3123,"label":"鄯善县"},{"value":3124,"label":"托克逊县"}]},{"value":3125,"label":"哈密地区","children":[{"value":3126,"label":"哈密市"},{"value":3127,"label":"巴里坤哈萨克自治县"},{"value":3128,"label":"伊吾县"}]},{"value":3129,"label":"昌吉回族自治州","children":[{"value":3130,"label":"昌吉市"},{"value":3131,"label":"阜康市"},{"value":3132,"label":"呼图壁县"},{"value":3133,"label":"玛纳斯县"},{"value":3134,"label":"奇台县"},{"value":3135,"label":"吉木萨尔县"},{"value":3136,"label":"木垒哈萨克自治县"}]},{"value":3137,"label":"博尔塔拉蒙古自治州","children":[{"value":3139,"label":"精河县"},{"value":3140,"label":"温泉县"},{"value":3138,"label":"博乐市"}]},{"value":3141,"label":"巴音郭楞蒙古自治州","children":[{"value":3142,"label":"库尔勒市"},{"value":3143,"label":"轮台县"},{"value":3144,"label":"尉犁县"},{"value":3145,"label":"若羌县"},{"value":3146,"label":"且末县"},{"value":3147,"label":"焉耆回族自治县"},{"value":3148,"label":"和静县"},{"value":3149,"label":"和硕县"},{"value":3150,"label":"博湖县"}]},{"value":3151,"label":"阿克苏地区","children":[{"value":3158,"label":"乌什县"},{"value":3159,"label":"阿瓦提县"},{"value":3160,"label":"柯坪县"},{"value":3152,"label":"阿克苏市"},{"value":3153,"label":"温宿县"},{"value":3154,"label":"库车县"},{"value":3155,"label":"沙雅县"},{"value":3156,"label":"新和县"},{"value":3157,"label":"拜城县"}]},{"value":3161,"label":"克孜勒苏柯尔克孜自治州","children":[{"value":3165,"label":"乌恰县"},{"value":3162,"label":"阿图什市"},{"value":3163,"label":"阿克陶县"},{"value":3164,"label":"阿合奇县"}]},{"value":3166,"label":"喀什地区","children":[{"value":3167,"label":"喀什市"},{"value":3168,"label":"疏附县"},{"value":3169,"label":"疏勒县"},{"value":3170,"label":"英吉沙县"},{"value":3171,"label":"泽普县"},{"value":3172,"label":"莎车县"},{"value":3173,"label":"叶城县"},{"value":3174,"label":"麦盖提县"},{"value":3175,"label":"岳普湖县"},{"value":3176,"label":"伽师县"},{"value":3177,"label":"巴楚县"},{"value":3178,"label":"塔什库尔干塔吉克自治县"}]},{"value":3179,"label":"和田地区","children":[{"value":3180,"label":"和田市"},{"value":3181,"label":"和田县"},{"value":3182,"label":"墨玉县"},{"value":3183,"label":"皮山县"},{"value":3184,"label":"洛浦县"},{"value":3185,"label":"策勒县"},{"value":3186,"label":"于田县"},{"value":3187,"label":"民丰县"}]},{"value":3188,"label":"伊犁哈萨克自治州","children":[{"value":3189,"label":"伊宁市"},{"value":3190,"label":"奎屯市"},{"value":3191,"label":"伊宁县"},{"value":3192,"label":"察布查尔锡伯自治县"},{"value":3193,"label":"霍城县"},{"value":3194,"label":"巩留县"},{"value":3195,"label":"新源县"},{"value":3196,"label":"昭苏县"},{"value":3197,"label":"特克斯县"},{"value":3198,"label":"尼勒克县"}]},{"value":3199,"label":"塔城地区","children":[{"value":3200,"label":"塔城市"},{"value":3201,"label":"乌苏市"},{"value":3202,"label":"额敏县"},{"value":3203,"label":"沙湾县"},{"value":3204,"label":"托里县"},{"value":3205,"label":"裕民县"},{"value":3206,"label":"和布克赛尔蒙古自治县"}]},{"value":3207,"label":"阿勒泰地区","children":[{"value":3214,"label":"吉木乃县"},{"value":3208,"label":"阿勒泰市"},{"value":3209,"label":"布尔津县"},{"value":3210,"label":"富蕴县"},{"value":3211,"label":"福海县"},{"value":3212,"label":"哈巴河县"},{"value":3213,"label":"青河县"}]},{"value":3215,"label":"石河子市"},{"value":3216,"label":"阿拉尔市"},{"value":3217,"label":"图木舒克市"},{"value":3218,"label":"五家渠市"}]},{"value":3219,"label":"台湾省","children":[{"value":3220,"label":"台北市"},{"value":3221,"label":"高雄市"},{"value":3222,"label":"基隆市"},{"value":3223,"label":"台中市"},{"value":3224,"label":"台南市"},{"value":3225,"label":"新竹市"},{"value":3226,"label":"嘉义市"},{"value":3227,"label":"台北县"},{"value":3228,"label":"宜兰县"},{"value":3229,"label":"桃园县"},{"value":3230,"label":"新竹县"},{"value":3231,"label":"苗栗县"},{"value":3232,"label":"台中县"},{"value":3233,"label":"彰化县"},{"value":3234,"label":"南投县"},{"value":3235,"label":"云林县"},{"value":3236,"label":"嘉义县"},{"value":3237,"label":"台南县"},{"value":3238,"label":"高雄县"},{"value":3239,"label":"屏东县"},{"value":3240,"label":"台东县"},{"value":3241,"label":"花莲县"},{"value":3242,"label":"澎湖县"}]},{"value":3243,"label":"香港特别行政区","children":[{"value":3244,"label":"香港岛","children":[{"value":3245,"label":"中西区"},{"value":3246,"label":"湾仔区"},{"value":3247,"label":"东区"},{"value":3248,"label":"南区"}]},{"value":3249,"label":"九龙","children":[{"value":3250,"label":"油尖旺区"},{"value":3251,"label":"深水埗区"},{"value":3252,"label":"九龙城区"},{"value":3253,"label":"黄大仙区"},{"value":3254,"label":"观塘区"}]},{"value":3255,"label":"新界","children":[{"value":3256,"label":"葵青区"},{"value":3257,"label":"荃湾区"},{"value":3258,"label":"屯门区"},{"value":3259,"label":"元朗区"},{"value":3260,"label":"北区"},{"value":3261,"label":"大埔区"},{"value":3262,"label":"沙田区"},{"value":3263,"label":"西贡区"},{"value":3264,"label":"离岛区"}]}]},{"value":3265,"label":"澳门特别行政区","children":[{"value":3266,"label":"花地玛堂区","children":[{"value":3267,"label":"青洲区"},{"value":3268,"label":"台山区"},{"value":3269,"label":"马场区"},{"value":3270,"label":"祐汉区"},{"value":3271,"label":"黑沙环区"},{"value":3272,"label":"黑沙环新填海区"},{"value":3273,"label":"望厦及水塘区"},{"value":3274,"label":"筷子基区"}]},{"value":3275,"label":"圣安多尼堂区","children":[{"value":3276,"label":"林茂塘区"},{"value":3277,"label":"高士德及雅廉访区"},{"value":3278,"label":"新桥区"},{"value":3279,"label":"沙梨头及大三巴区"}]},{"value":3280,"label":"大堂区","children":[{"value":3281,"label":"新口岸区"},{"value":3282,"label":"外港及南湾湖新填海区"},{"value":3283,"label":"中区"}]},{"value":3284,"label":"望德堂区","children":[{"value":3285,"label":"荷兰园区"},{"value":3286,"label":"东望洋区(松山区)"}]},{"value":3287,"label":"风顺堂区","children":[{"value":3288,"label":"下环区"},{"value":3289,"label":"南西湾及主教山区"}]},{"value":3290,"label":"嘉模堂区","children":[{"value":3291,"label":"海洋及小潭山区"},{"value":3292,"label":"氹仔中心区"},{"value":3293,"label":"大学及北安湾区"},{"value":3294,"label":"北安及大潭山区"},{"value":3295,"label":"氹仔旧城及马场区"},{"value":3296,"label":"澳门大学新校区"}]},{"value":3297,"label":"圣方济各堂区","children":[{"value":3298,"label":"路环市区"},{"value":3299,"label":"石排湾"},{"value":3300,"label":"九澳村"},{"value":3301,"label":"黑沙村"}]},{"value":3302,"label":"路氹城"},{"value":3303,"label":"澳门新城区"}]}]
+export default RegionTree;
\ No newline at end of file
diff --git a/weapp/src/utils/tool.js b/weapp/src/utils/tool.js
new file mode 100644
index 00000000..62b232ec
--- /dev/null
+++ b/weapp/src/utils/tool.js
@@ -0,0 +1,107 @@
+import Taro from '@tarojs/taro'
+
+export const sleep = async (longTime) => new Promise((resolve) => setTimeout(resolve, longTime))
+
+/**
+ * 函数防抖 (立即执行版)
+ * @param {function} fn 函数
+ * @param {number} delay 延迟执行毫秒数
+ */
+export const debounceStart = (fn, delay = 2000) => debounce(fn,delay,true);
+
+
+/**
+ * 函数防抖 (非立即执行版)
+ * @param {function} fn 函数
+ * @param {number} delay 延迟执行毫秒数
+ */
+export const debounceEnd = (fn, delay = 2000) => debounce(fn,delay,false);
+
+
+/**
+ * 函数防抖 (完全版)
+ * @param {function} fn 函数
+ * @param {number} delay 延迟执行毫秒数
+ * @param {boolean} immediate true 表立即执行,false 表非立即执行
+ */
+export const debounce = (fn, delay, immediate = false) => {
+ let timer = null;
+ let status = true;
+ if (!immediate) return function () {
+ let args = arguments;
+ if (timer) clearTimeout(timer);
+ timer = setTimeout(() => fn.apply(this, args), delay);
+ };
+ else return function () {
+ clearTimeout(timer);
+ if (status) {
+ status = false;
+ fn.call(this, arguments);
+ }
+ timer = setTimeout(() => status = true, delay);
+ };
+};
+
+
+/**
+ * 函数节流 延迟执行
+ * @param {function} fn 函数
+ * @param {number} delay 延迟执行毫秒数
+ */
+export const throttle = (fn, delay = 2000) => {
+ let timer = null;
+ return function () {
+ let args = arguments;
+ if (!timer) {
+ timer = setTimeout(() => {
+ timer = null;
+ fn.apply(this, args);
+ }, delay);
+ }
+
+ };
+};
+//防止多次重复点击 (函数节流)
+export const throttleClick = (fn, gapTime) => {
+ if (gapTime == null || gapTime == undefined) {
+ gapTime = 1500;
+ }
+ let _lastTime = null;
+ return function () {
+ let _nowTime = + new Date();
+ if (_nowTime - _lastTime > gapTime || !_lastTime) {
+ fn();
+ _lastTime = _nowTime;
+ }
+ };
+ };
+
+/**
+ * 显示一个轻提示
+ * @param {string | object} msg 显示内容
+ */
+export const toast = msg => {
+ Taro.showToast({
+ title: typeof msg === 'object' ? JSON.stringify(msg) : msg,
+ icon: 'none'
+ })
+}
+
+/**
+ * 执行定时时间后的异步任务
+ * @param {number} time 毫秒
+ */
+export const asyncTimeOut = time => {
+ let resolveFunc
+ let rejectFunc
+ const pro = new Promise((resolve, reject) => {
+ resolveFunc = resolve
+ rejectFunc = reject
+ })
+ const timer = setTimeout(() => resolveFunc({ code: 200, message: '倒计时结束', type: 'timeout' }), time)
+ pro.clear = () => {
+ clearTimeout(timer)
+ rejectFunc({ code: 500, message: '清除倒计时' })
+ }
+ return pro
+}
\ No newline at end of file