commit 17cfa9da6de185b450723d6c06ee6ef45456e8b8 Author: Cc Date: Tue Apr 15 15:48:57 2025 +0800 初始化:售后代码同步 diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..115cc02 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,31 @@ +/* + * Eslint config file + * Documentation: https://eslint.org/docs/user-guide/configuring/ + * Install the Eslint extension before using this feature. + */ +module.exports = { + env: { + es6: true, + browser: true, + node: true, + }, + ecmaFeatures: { + modules: true, + }, + parserOptions: { + ecmaVersion: 2018, + sourceType: 'module', + }, + globals: { + wx: true, + App: true, + Page: true, + getCurrentPages: true, + getApp: true, + Component: true, + requirePlugin: true, + requireMiniProgram: true, + }, + // extends: 'eslint:recommended', + rules: {}, +} diff --git a/app.js b/app.js new file mode 100644 index 0000000..b4f78d7 --- /dev/null +++ b/app.js @@ -0,0 +1,57 @@ +// app.js + +App({ + checkUpdate(){ + wx.showLoading({ + title: '加载中..', + mask: true + }) + //微信小程序用户及时更新到最新版本 + const updateManager = wx.getUpdateManager() + updateManager.onCheckForUpdate(function (res) { + // 请求完新版本信息的回调 + console.log('是否有新版本: ', +res.hasUpdate) + if (!res.hasUpdate) { + wx.hideLoading() + } + }) + updateManager.onUpdateReady(function () { + wx.hideLoading() + wx.showModal({ + title: '更新提示', + content: '新版本已经准备好,是否重启应用?', + showCancel: false, + success: function (res) { + if (res.confirm) { + // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 + updateManager.applyUpdate() + } + } + }) + }) + updateManager.onUpdateFailed(function () { + wx.hideLoading(); + wx.showModal({ + title: '提示', + content: '检查到有新版本,但下载失败,请检查网络后重试', + showCancel: false + }) + }) + setTimeout(wx.hideLoading, 5000) + + }, + onLaunch() { + // this.checkUpdate() + // let token = wx.getStorageSync('token') + // if(!token){ + // wx.reLaunch({ + // url: './pages/login/index' + // }) + // } + }, + globalData: { + userInfo: null, + url: 'https://sh.lidinghb.com', + imgUrl: 'https://sh.lidinghb.com/support/shouhou/', + } +}) diff --git a/app.json b/app.json new file mode 100644 index 0000000..6b41ad0 --- /dev/null +++ b/app.json @@ -0,0 +1,34 @@ +{ + "pages": [ + "pages/index/index", + "pages/privacy/index", + "pages/aggrement/index", + "pages/register/index", + "pages/login/index", + "pages/userInfo/index", + "pages/customFlow/index", + "pages/maintenance/index", + "pages/mainprogress/index", + "pages/evaluate/index", + "pages/report/index", + "pages/logs/logs", + "pages/sign/index" + + ], + "window": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "Weixin", + "navigationBarBackgroundColor": "#ffffff" + }, + "componentFramework": "glass-easel", + "sitemapLocation": "sitemap.json", + "lazyCodeLoading": "requiredComponents", + "requiredPrivateInfos": [ + "getLocation" + ], + "permission": { + "scope.userLocation": { + "desc": "你的位置信息将用于工单的签到" + } + } +} \ No newline at end of file diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..64fb9b6 --- /dev/null +++ b/app.wxss @@ -0,0 +1,5 @@ +/**app.wxss**/ + +page{ + background-color: #F7F8FA; +} diff --git a/assets/1.png b/assets/1.png new file mode 100644 index 0000000..e285770 Binary files /dev/null and b/assets/1.png differ diff --git a/assets/2.png b/assets/2.png new file mode 100644 index 0000000..d2ff4d9 Binary files /dev/null and b/assets/2.png differ diff --git a/assets/3.png b/assets/3.png new file mode 100644 index 0000000..d2374ee Binary files /dev/null and b/assets/3.png differ diff --git a/assets/address.png b/assets/address.png new file mode 100644 index 0000000..41154da Binary files /dev/null and b/assets/address.png differ diff --git a/assets/center.png b/assets/center.png new file mode 100644 index 0000000..9306211 Binary files /dev/null and b/assets/center.png differ diff --git a/assets/head.png b/assets/head.png new file mode 100644 index 0000000..cc2bde6 Binary files /dev/null and b/assets/head.png differ diff --git a/assets/loac.png b/assets/loac.png new file mode 100644 index 0000000..15581dc Binary files /dev/null and b/assets/loac.png differ diff --git a/assets/location.png b/assets/location.png new file mode 100644 index 0000000..0babc96 Binary files /dev/null and b/assets/location.png differ diff --git a/assets/phone.png b/assets/phone.png new file mode 100644 index 0000000..86ce2b1 Binary files /dev/null and b/assets/phone.png differ diff --git a/assets/play.png b/assets/play.png new file mode 100644 index 0000000..b452da1 Binary files /dev/null and b/assets/play.png differ diff --git a/assets/user.png b/assets/user.png new file mode 100644 index 0000000..80d2ae2 Binary files /dev/null and b/assets/user.png differ diff --git a/assets/wx.png b/assets/wx.png new file mode 100644 index 0000000..9962923 Binary files /dev/null and b/assets/wx.png differ diff --git a/components/comImg/index.js b/components/comImg/index.js new file mode 100644 index 0000000..81b5e49 --- /dev/null +++ b/components/comImg/index.js @@ -0,0 +1,65 @@ +// components/comImg/index.js +Component({ + + /** + * 组件的属性列表 + */ + properties: { + src:String, + width:String, + height:String, + mode:String + }, + + /** + * 组件的初始数据 + */ + data: { + type:'video', + videoDefault:'', + videoSrc:'', + show:false, + + }, +attached(){ + + let index = this.data.src.lastIndexOf('.') + let type = this.data.src.substr(index+1,this.data.src.length) + let imageType =['png','jpg','jpeg'] + if(imageType.indexOf(type)!=-1){ + this.setData({ + type:'img', + }) + }else{ + this.setData({ + type:'video', + }) + + + + } + +}, + /** + * 组件的方法列表 + */ + methods: { + showData(){ + console.log(this.data.type) + if(this.data.type=='img'){ + wx.previewImage({ + urls: [this.data.src], + }) + }else{ + console.log('1') + wx.previewMedia({ + sources: [ + {url:this.data.src,type:'video'}], + }) + + } + + }, + + } +}) \ No newline at end of file diff --git a/components/comImg/index.json b/components/comImg/index.json new file mode 100644 index 0000000..bd59258 --- /dev/null +++ b/components/comImg/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + + } +} \ No newline at end of file diff --git a/components/comImg/index.wxml b/components/comImg/index.wxml new file mode 100644 index 0000000..59b0cf0 --- /dev/null +++ b/components/comImg/index.wxml @@ -0,0 +1,34 @@ + + + + + + + + + \ No newline at end of file diff --git a/components/comImg/index.wxss b/components/comImg/index.wxss new file mode 100644 index 0000000..b7cf441 --- /dev/null +++ b/components/comImg/index.wxss @@ -0,0 +1,12 @@ +/* components/comImg/index.wxss */ + +.overlay{ + position: fixed; + width: 100vw; + height: 65vh; + z-index: 9999; + top: 0; + bottom: 0; + left: 0; + right: 0; +} \ No newline at end of file diff --git a/components/maintenanceHome/index.js b/components/maintenanceHome/index.js new file mode 100644 index 0000000..5fc912c --- /dev/null +++ b/components/maintenanceHome/index.js @@ -0,0 +1,142 @@ +// components/report/index.js +var myRequest = require("../../utils/api.js"); +var utils = require("../../utils/util.js"); +Component({ + + /** + * 组件的属性列表 + */ + properties: { + + }, + + /** + * 组件的初始数据 + */ + data: { + user:{}, + list:[], + latitude: '', + longitude:'', + active:'all', + orderStatus:{ + 1:{ + label:'待接单', + type:'warning' + }, + 2:{ + label:'待签到', + type:'warning' + }, + 3:{ + label:'待反馈', + type:'warning' + }, + 4:{ + label:'待客户评价', + type:'warning' + }, + 5:{ + label:'待主管评价', + type:'warning' + }, + 6:{ + label:'待打款', + type:'warning' + }, + 7:{ + label:'已结算', + type:'success' + }, + + } + + }, + attached(){ + this.setData({ + user:wx.getStorageSync('userInfo') + }) + let that =this; + wx.getLocation({//调用API得到经纬度 + type: 'gcj02', + isHighAccuracy: true, + success: function (res) { + console.log(res) + that.setData({ + latitude: res.latitude, + longitude: res.longitude + }) + that.init() + } + + }) + + }, + /** + * 组件的方法列表 + */ + methods: { + init(){ + this.setData({ + user:wx.getStorageSync('userInfo') + }) + this.data.active=='all'? this.getList():this.getMylist() + }, + checkTab(e){ + console.log(e) + this.setData({ + active:e.target.dataset.val + }) + if(e.target.dataset.val=='all'){ + this.getList() + }else{ + this.getMylist() + } + }, + getList(){ + let that =this; + myRequest.myRequest( + 'deviceRepairOrder/supporter/list/unAccepted', + {}, + 'get' + ).then(res=>{ + let rows = res.rows + rows.forEach(item=>{ + let distance =utils.getDistances(item.device.latitude,item.device.longitude,that.data.latitude,that.data.longitude) + item.distance = distance.km + }) + this.setData({ + list:rows + }) + + }) + + + }, + getMylist(){ + let that =this; + myRequest.myRequest( + 'deviceRepairOrder/supporter/list/accepted', + {}, + 'get' + ).then(res=>{ + let rows = res.rows + rows.forEach(item=>{ + + let distance =utils.getDistances(item.device.latitude,item.device.longitude,that.data.latitude,that.data.longitude) + item.distance = distance.km + }) + this.setData({ + list:res.rows + }) + + }) + }, + clickItem(e){ + console.log(e) + wx.navigateTo({ + url: '../../pages/mainprogress/index?id='+e.currentTarget.dataset.item.orderId, + }) + } + } +}) \ No newline at end of file diff --git a/components/maintenanceHome/index.json b/components/maintenanceHome/index.json new file mode 100644 index 0000000..0d64b68 --- /dev/null +++ b/components/maintenanceHome/index.json @@ -0,0 +1,11 @@ +{ + "component": true, + "usingComponents": { + "com-img":"../comImg/index", + "van-empty": "@vant/weapp/empty/index", + "van-nav-bar": "@vant/weapp/nav-bar/index", + "van-icon": "@vant/weapp/icon/index", + "van-search": "@vant/weapp/search/index", + "van-tag": "@vant/weapp/tag/index" + } +} \ No newline at end of file diff --git a/components/maintenanceHome/index.wxml b/components/maintenanceHome/index.wxml new file mode 100644 index 0000000..31b0a42 --- /dev/null +++ b/components/maintenanceHome/index.wxml @@ -0,0 +1,74 @@ + + + + + + {{user.provinceName}}-{{user.cityName}}-{{user.areaName}} + + + + + + + + + + 维修知识 + 维修维修维修 + + + + 维修知识 + 维修知识库 + + + + 邀请好礼 + 邀请邀请邀请 + + + + + 接单大厅 + 我的任务 + + + + + + + + + + + {{item.distance}}km + + {{item.contactName}} + + {{orderStatus[item.orderStatus].label}} + + + {{item.repairScene.minPrice}}~{{item.repairScene.maxPrice}} + + + + + 故障问题:{{item.faultDesc}} + + + 故障图片: + + + + + + + + {{item.device.cityName}}{{item.device.townName}}{{item.device.community}} + + 立即抢单 + + + + + \ No newline at end of file diff --git a/components/maintenanceHome/index.wxss b/components/maintenanceHome/index.wxss new file mode 100644 index 0000000..1e48711 --- /dev/null +++ b/components/maintenanceHome/index.wxss @@ -0,0 +1,196 @@ +/* components/report/index.wxss */ + .van-icon { + color: #fff !important +} +.city{ + font-size: 30rpx !important; + margin-left: 15rpx !important; + font-weight: 500; +} +.mainTop{ + width: 100%; + padding-bottom: 20rpx; + background:linear-gradient(to bottom,#1989FA 30%,#F7F8FA 50%); + +} +.mainItem{ + display: flex; + justify-content: space-evenly; +} + +.topitem{ + color: #fff; + background-color: #F7BA4F; + flex-basis: 27%; + border-radius: 10rpx; + height: 220rpx; + box-shadow: 0 0 2rpx #F7F8FA; + text-align: center; +} +.top_title{ + font-size: 32rpx; + + font-weight: bold; + margin-top: 10rpx; +} +.top_info{ + font-size: 28rpx; + margin-top: 10rpx; +} +.topitem image{ + width: 70rpx; + margin-top: 25rpx; + + +} +.red{ + background-color: #FE595F; +} +.blue{ + background-color: #1989FA; +} +.switchTab{ + + + margin:20rpx 5%; + height: 85rpx; + display: flex; + +} +.tabItem{ + flex: 1; + position: relative; + text-align: center; + line-height: 85rpx; + background-color: #fff; +} +.active{ + + + color: #fff; + background: #1989FA; + +} + +.left{ + border-radius: 0rpx 30rpx 0rpx 30rpx; + +} +.right{ + border-radius: 30rpx 00rpx 30rpx 0rpx; + +} +.list{ + +margin:20rpx 5%; +margin-bottom: 100rpx; +} +.cell{ + width: 100%; + background-color: #fff; + border-radius: 20rpx; + padding:10rpx; + margin-bottom: 20rpx; + +} +.cel_tiltle{ + display: flex; + position: relative; +} +.title_box{ + width: 100rpx; + border-radius: 8rpx; + height: 40rpx; + + background-size: 100%; + color: #fff; + text-align: center; + font-size: 28rpx; +position: relative; + border :0 solid transparent; + border-top: 40rpx solid #1989FA; + border-right: 10rpx solid transparent; +} +.box_length{ + position: absolute; + top: -38rpx; + left:5rpx; + color: #fff; + font-size: 26rpx; + + +} +.title_right{ + position: absolute; + right: 40rpx; +} +.title_user{ + margin-left: 10rpx; + font-weight: 600; + +} + +.cell_detail{ + margin-top: -25rpx; + font-size: 26rpx; + padding:10rpx +} +.detail_info{ + font-size: 26rpx; +} +.cell_bottom{ + margin: 10rpx; +} +.cell_bottom{ + display: flex; + justify-content: space-between; +} +.gradOrder{ + background: #1989FA; + padding:12rpx 20rpx; + border-radius: 20rpx; + font-size: 28rpx; + color:#fff; +} +.cell_address{ + display: flex; + font-size: 26rpx; +} +.cell_img{ + margin-right: 10rpx; + +} +.cell_address image{ + width: 35rpx; + margin-top: 15rpx; +} +.cell_address view{ + margin: 15rpx; + + +} +.repairPrice{ + color: red; + font-weight: bold; +} +/* .left::after{ + content: ''; + position: absolute; + width: 15%; + height: 100%; + background-color: #fff; + right: 0; + border-bottom-left-radius: 20rpx; + border-top-left-radius: 20rpx; +} +.right::after{ + content: ''; + position: absolute; + width: 15%; + height: 100%; + background-color: #fff; + left: 0; + border-bottom-right-radius: 50%; +} */ +/* HTML:
This is a Tooltip with a gradient or solid coloration and with border radius
*/ + diff --git a/components/my/index.js b/components/my/index.js new file mode 100644 index 0000000..9cb3394 --- /dev/null +++ b/components/my/index.js @@ -0,0 +1,57 @@ +// components/repair/index.js +var myRequest = require("../../utils/api.js"); +const app = getApp() +Component({ + + /** + * 组件的属性列表 + */ + properties: { + + }, + + /** + * 组件的初始数据 + */ + + data: { + imageSrc:app.globalData.imgUrl+'head.png', + userName:'微信用户', + userType:'报修人' + + + }, + attached(){ + + this.init() + }, + /** + * 组件的方法列表 + */ + methods: { + init(){ + console.log(wx.getStorageSync('userInfo')) + let userInfo = wx.getStorageSync('userInfo') + let userName = userInfo.nickName||userInfo.phonenumber + let userType=userInfo.role=="customer"?'报修客户':'维修人员' + this.setData({ + userName, + userType + }) + }, + loginOut(){ + + myRequest.myRequest('logout',{ + + },'post').then(res=>{ + wx.clearStorage() + wx.reLaunch({ + url: '../../pages/login/index' + }) + + }) + + } + + } +}) \ No newline at end of file diff --git a/components/my/index.json b/components/my/index.json new file mode 100644 index 0000000..f599f79 --- /dev/null +++ b/components/my/index.json @@ -0,0 +1,9 @@ +{ + "usingComponents": { + "van-nav-bar": "@vant/weapp/nav-bar/index", + "van-icon": "@vant/weapp/icon/index", + "van-button": "@vant/weapp/button/index", + "van-cell": "@vant/weapp/cell/index", + "van-cell-group": "@vant/weapp/cell-group/index" + } +} \ No newline at end of file diff --git a/components/my/index.wxml b/components/my/index.wxml new file mode 100644 index 0000000..6e9eaa5 --- /dev/null +++ b/components/my/index.wxml @@ -0,0 +1,27 @@ + + + + + + + + {{userName}} + {{userType}} + + + + + + + + + + 退出登陆 + diff --git a/components/my/index.wxss b/components/my/index.wxss new file mode 100644 index 0000000..74bb013 --- /dev/null +++ b/components/my/index.wxss @@ -0,0 +1,34 @@ +/* components/my/index.wxss */ +.titleCss{ + color: #fff !important; +} +.userbg { + width: 100%; + height: 235rpx; + background-size: 100%; + padding: 20px 0 0 20px; + display: flex +} +.userInfo{ + width: 150rpx; + height: 150rpx; + background: #F1F1F1; + border-radius: 50%; + +} +.userAccont{ + color: #fff; + margin: 30rpx; + +} +.name{ + font-weight: 600; + font-size: 36rpx; +} +.type{ + font-size: 28rpx; +} +.btn{ + width: 90%; +margin: 20rpx auto; +} \ No newline at end of file diff --git a/components/navBar/index.js b/components/navBar/index.js new file mode 100644 index 0000000..880b502 --- /dev/null +++ b/components/navBar/index.js @@ -0,0 +1,28 @@ +// components/navBar/index.js +Component({ + + /** + * 组件的属性列表 + */ + properties: { + title:String, + leftArrow:Boolean + + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + onClickLeft(){ + wx.navigateBack() + } + } +}) \ No newline at end of file diff --git a/components/navBar/index.json b/components/navBar/index.json new file mode 100644 index 0000000..f3a4171 --- /dev/null +++ b/components/navBar/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-nav-bar": "@vant/weapp/nav-bar/index", + "van-icon": "@vant/weapp/icon/index" + } +} \ No newline at end of file diff --git a/components/navBar/index.wxml b/components/navBar/index.wxml new file mode 100644 index 0000000..0259505 --- /dev/null +++ b/components/navBar/index.wxml @@ -0,0 +1,13 @@ + + + + + + diff --git a/components/navBar/index.wxss b/components/navBar/index.wxss new file mode 100644 index 0000000..24ae4d5 --- /dev/null +++ b/components/navBar/index.wxss @@ -0,0 +1,10 @@ +/* components/navBar/index.wxss */ +.titleCss{ + color: #fff; +} + .van-nav-bar__arrow { + color: #fff !important; + } + .van-icon { + color: #fff !important + } \ No newline at end of file diff --git a/components/reportHome/index.js b/components/reportHome/index.js new file mode 100644 index 0000000..850c8d2 --- /dev/null +++ b/components/reportHome/index.js @@ -0,0 +1,109 @@ +// components/repair/index.js +var myRequest = require("../../utils/api.js"); +Component({ + + /** + * 组件的属性列表 + */ + properties: { + + }, + + /** + * 组件的初始数据 + */ + //工单状态(1待接单 2待签到 3待反馈 4待完工 5待结算 6已完成) + data: { + list: [], + // 是否显示加载更多的loading + showLoading: false, + isTriggered:false, + orderStatus: { + 1: { + label: '待接单', + type: 'warning' + }, + 2: { + label: '已接单', + type: 'warning' + }, + 3: { + label: '待维修', + type: 'warning' + }, + 4: { + label: '待评价', + type: 'warning' + }, + 5: { + label: '待结算', + type: 'warning' + }, + 6: { + label: '已完成', + type: 'success' + }, + } + + }, + attached() { + + this.getlist() + }, + + /** + * 组件的方法列表 + */ + methods: { + // 刷新函数 + refresh: function () { + // 请求数据 + this.getlist(); + }, + // 加载更多函数 + loadMore: function () { + // 判断是否正在加载 + if (this.data.showLoading ) { + return; + } + // 显示加载更多的loading + this.setData({ + showLoading: true + }); + // 请求数据 + this.getlist(); + + }, + + addReport() { + + wx.navigateTo({ + url: '../../pages/report/index', + }) + }, + itemDetail(e) { + console.log(e) + let data = e.currentTarget.dataset.item + wx.navigateTo({ + url: '../../pages/customFlow/index?orderId=' + data.orderId, + }) + }, + getlist() { + myRequest.myRequest('deviceRepairOrder/customer/list', { + createBy: wx.getStorageSync('userInfo').createBy, + isAsc: 'desc', + orderByColumn: 'createTime' + }, 'get').then(res => { + console.log('1111') + wx.stopPullDownRefresh(); + this.setData({ + list: res.rows, + isTriggered:false, + showLoading: false + }) + + }) + } + + } +}) \ No newline at end of file diff --git a/components/reportHome/index.json b/components/reportHome/index.json new file mode 100644 index 0000000..7b45ed4 --- /dev/null +++ b/components/reportHome/index.json @@ -0,0 +1,17 @@ +{ + "component": true, + "navigationStyle": "custom", + "enablePullDownRefresh": true, + "usingComponents": { + "com-img":"../comImg/index", + "van-empty": "@vant/weapp/empty/index", + "van-cell": "@vant/weapp/cell/index", + "van-cell-group": "@vant/weapp/cell-group/index", + "van-button": "@vant/weapp/button/index", + "van-nav-bar": "@vant/weapp/nav-bar/index", + "van-icon": "@vant/weapp/icon/index", + "van-steps": "@vant/weapp/steps/index", + "van-tag": "@vant/weapp/tag/index" + + } +} \ No newline at end of file diff --git a/components/reportHome/index.wxml b/components/reportHome/index.wxml new file mode 100644 index 0000000..1aa2a1e --- /dev/null +++ b/components/reportHome/index.wxml @@ -0,0 +1,44 @@ + + + + + + + 一键报修 + + + + + + + + {{orderStatus[item.orderStatus].label}} + 已完成 + + + + 问题描述:{{item.faultDesc}} + + + 故障图片: + + + + + + + + + + + + + 加载中... + + + + + + + + \ No newline at end of file diff --git a/components/reportHome/index.wxss b/components/reportHome/index.wxss new file mode 100644 index 0000000..9191fcf --- /dev/null +++ b/components/reportHome/index.wxss @@ -0,0 +1,51 @@ +/* components/repair/index.wxss */ +page{ + background-color: #F7F8FA; +} +.titleCss{ + color: #fff !important; +} +.viewList{ + padding: 20rpx 0; + position: fixed; + height: calc(100vh - 300rpx); +} +.tips{ + white-space: normal; + width: 120%; + -webkit-line-clamp: 2; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; +} +.emptyButton{ + width: 70%; + margin: 0 auto; +} +.repirtCell{ + width: 50rpx; + height: 50rpx; + margin-right: 10rpx; + margin-top: 10rpx; +} +.bottom-button { + width: 160px; + height: 40px; +} +.fab{ + right: 16px; + bottom: 100px; + position: fixed; + + width: 86rpx; + height: 86rpx; + line-height: normal; + + box-sizing: border-box; + background-color: #1989FA; + border-radius: 50%; + display: flex; + justify-content: center; + box-shadow: 0px 0px 10px #999 +} \ No newline at end of file diff --git a/miniprogram_npm/@vant/area-data/index.js b/miniprogram_npm/@vant/area-data/index.js new file mode 100644 index 0000000..8c8d56a --- /dev/null +++ b/miniprogram_npm/@vant/area-data/index.js @@ -0,0 +1,3958 @@ +module.exports = (function() { +var __MODS__ = {}; +var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; +var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; +var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; +var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; +__DEFINE__(1723527229112, function(require, module, exports) { + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + areaList: () => areaList, + useCascaderAreaData: () => useCascaderAreaData +}); +module.exports = __toCommonJS(src_exports); +var areaList = { + province_list: { + 11e4: "北京市", + 12e4: "天津市", + 13e4: "河北省", + 14e4: "山西省", + 15e4: "内蒙古自治区", + 21e4: "辽宁省", + 22e4: "吉林省", + 23e4: "黑龙江省", + 31e4: "上海市", + 32e4: "江苏省", + 33e4: "浙江省", + 34e4: "安徽省", + 35e4: "福建省", + 36e4: "江西省", + 37e4: "山东省", + 41e4: "河南省", + 42e4: "湖北省", + 43e4: "湖南省", + 44e4: "广东省", + 45e4: "广西壮族自治区", + 46e4: "海南省", + 5e5: "重庆市", + 51e4: "四川省", + 52e4: "贵州省", + 53e4: "云南省", + 54e4: "西藏自治区", + 61e4: "陕西省", + 62e4: "甘肃省", + 63e4: "青海省", + 64e4: "宁夏回族自治区", + 65e4: "新疆维吾尔自治区", + 71e4: "台湾省", + 81e4: "香港特别行政区", + 82e4: "澳门特别行政区" + }, + city_list: { + 110100: "北京市", + 120100: "天津市", + 130100: "石家庄市", + 130200: "唐山市", + 130300: "秦皇岛市", + 130400: "邯郸市", + 130500: "邢台市", + 130600: "保定市", + 130700: "张家口市", + 130800: "承德市", + 130900: "沧州市", + 131e3: "廊坊市", + 131100: "衡水市", + 140100: "太原市", + 140200: "大同市", + 140300: "阳泉市", + 140400: "长治市", + 140500: "晋城市", + 140600: "朔州市", + 140700: "晋中市", + 140800: "运城市", + 140900: "忻州市", + 141e3: "临汾市", + 141100: "吕梁市", + 150100: "呼和浩特市", + 150200: "包头市", + 150300: "乌海市", + 150400: "赤峰市", + 150500: "通辽市", + 150600: "鄂尔多斯市", + 150700: "呼伦贝尔市", + 150800: "巴彦淖尔市", + 150900: "乌兰察布市", + 152200: "兴安盟", + 152500: "锡林郭勒盟", + 152900: "阿拉善盟", + 210100: "沈阳市", + 210200: "大连市", + 210300: "鞍山市", + 210400: "抚顺市", + 210500: "本溪市", + 210600: "丹东市", + 210700: "锦州市", + 210800: "营口市", + 210900: "阜新市", + 211e3: "辽阳市", + 211100: "盘锦市", + 211200: "铁岭市", + 211300: "朝阳市", + 211400: "葫芦岛市", + 220100: "长春市", + 220200: "吉林市", + 220300: "四平市", + 220400: "辽源市", + 220500: "通化市", + 220600: "白山市", + 220700: "松原市", + 220800: "白城市", + 222400: "延边朝鲜族自治州", + 230100: "哈尔滨市", + 230200: "齐齐哈尔市", + 230300: "鸡西市", + 230400: "鹤岗市", + 230500: "双鸭山市", + 230600: "大庆市", + 230700: "伊春市", + 230800: "佳木斯市", + 230900: "七台河市", + 231e3: "牡丹江市", + 231100: "黑河市", + 231200: "绥化市", + 232700: "大兴安岭地区", + 310100: "上海市", + 320100: "南京市", + 320200: "无锡市", + 320300: "徐州市", + 320400: "常州市", + 320500: "苏州市", + 320600: "南通市", + 320700: "连云港市", + 320800: "淮安市", + 320900: "盐城市", + 321e3: "扬州市", + 321100: "镇江市", + 321200: "泰州市", + 321300: "宿迁市", + 330100: "杭州市", + 330200: "宁波市", + 330300: "温州市", + 330400: "嘉兴市", + 330500: "湖州市", + 330600: "绍兴市", + 330700: "金华市", + 330800: "衢州市", + 330900: "舟山市", + 331e3: "台州市", + 331100: "丽水市", + 340100: "合肥市", + 340200: "芜湖市", + 340300: "蚌埠市", + 340400: "淮南市", + 340500: "马鞍山市", + 340600: "淮北市", + 340700: "铜陵市", + 340800: "安庆市", + 341e3: "黄山市", + 341100: "滁州市", + 341200: "阜阳市", + 341300: "宿州市", + 341500: "六安市", + 341600: "亳州市", + 341700: "池州市", + 341800: "宣城市", + 350100: "福州市", + 350200: "厦门市", + 350300: "莆田市", + 350400: "三明市", + 350500: "泉州市", + 350600: "漳州市", + 350700: "南平市", + 350800: "龙岩市", + 350900: "宁德市", + 360100: "南昌市", + 360200: "景德镇市", + 360300: "萍乡市", + 360400: "九江市", + 360500: "新余市", + 360600: "鹰潭市", + 360700: "赣州市", + 360800: "吉安市", + 360900: "宜春市", + 361e3: "抚州市", + 361100: "上饶市", + 370100: "济南市", + 370200: "青岛市", + 370300: "淄博市", + 370400: "枣庄市", + 370500: "东营市", + 370600: "烟台市", + 370700: "潍坊市", + 370800: "济宁市", + 370900: "泰安市", + 371e3: "威海市", + 371100: "日照市", + 371300: "临沂市", + 371400: "德州市", + 371500: "聊城市", + 371600: "滨州市", + 371700: "菏泽市", + 410100: "郑州市", + 410200: "开封市", + 410300: "洛阳市", + 410400: "平顶山市", + 410500: "安阳市", + 410600: "鹤壁市", + 410700: "新乡市", + 410800: "焦作市", + 410900: "濮阳市", + 411e3: "许昌市", + 411100: "漯河市", + 411200: "三门峡市", + 411300: "南阳市", + 411400: "商丘市", + 411500: "信阳市", + 411600: "周口市", + 411700: "驻马店市", + 419e3: "省直辖县", + 420100: "武汉市", + 420200: "黄石市", + 420300: "十堰市", + 420500: "宜昌市", + 420600: "襄阳市", + 420700: "鄂州市", + 420800: "荆门市", + 420900: "孝感市", + 421e3: "荆州市", + 421100: "黄冈市", + 421200: "咸宁市", + 421300: "随州市", + 422800: "恩施土家族苗族自治州", + 429e3: "省直辖县", + 430100: "长沙市", + 430200: "株洲市", + 430300: "湘潭市", + 430400: "衡阳市", + 430500: "邵阳市", + 430600: "岳阳市", + 430700: "常德市", + 430800: "张家界市", + 430900: "益阳市", + 431e3: "郴州市", + 431100: "永州市", + 431200: "怀化市", + 431300: "娄底市", + 433100: "湘西土家族苗族自治州", + 440100: "广州市", + 440200: "韶关市", + 440300: "深圳市", + 440400: "珠海市", + 440500: "汕头市", + 440600: "佛山市", + 440700: "江门市", + 440800: "湛江市", + 440900: "茂名市", + 441200: "肇庆市", + 441300: "惠州市", + 441400: "梅州市", + 441500: "汕尾市", + 441600: "河源市", + 441700: "阳江市", + 441800: "清远市", + 441900: "东莞市", + 442e3: "中山市", + 445100: "潮州市", + 445200: "揭阳市", + 445300: "云浮市", + 450100: "南宁市", + 450200: "柳州市", + 450300: "桂林市", + 450400: "梧州市", + 450500: "北海市", + 450600: "防城港市", + 450700: "钦州市", + 450800: "贵港市", + 450900: "玉林市", + 451e3: "百色市", + 451100: "贺州市", + 451200: "河池市", + 451300: "来宾市", + 451400: "崇左市", + 460100: "海口市", + 460200: "三亚市", + 460300: "三沙市", + 460400: "儋州市", + 469e3: "省直辖县", + 500100: "重庆市", + 500200: "县", + 510100: "成都市", + 510300: "自贡市", + 510400: "攀枝花市", + 510500: "泸州市", + 510600: "德阳市", + 510700: "绵阳市", + 510800: "广元市", + 510900: "遂宁市", + 511e3: "内江市", + 511100: "乐山市", + 511300: "南充市", + 511400: "眉山市", + 511500: "宜宾市", + 511600: "广安市", + 511700: "达州市", + 511800: "雅安市", + 511900: "巴中市", + 512e3: "资阳市", + 513200: "阿坝藏族羌族自治州", + 513300: "甘孜藏族自治州", + 513400: "凉山彝族自治州", + 520100: "贵阳市", + 520200: "六盘水市", + 520300: "遵义市", + 520400: "安顺市", + 520500: "毕节市", + 520600: "铜仁市", + 522300: "黔西南布依族苗族自治州", + 522600: "黔东南苗族侗族自治州", + 522700: "黔南布依族苗族自治州", + 530100: "昆明市", + 530300: "曲靖市", + 530400: "玉溪市", + 530500: "保山市", + 530600: "昭通市", + 530700: "丽江市", + 530800: "普洱市", + 530900: "临沧市", + 532300: "楚雄彝族自治州", + 532500: "红河哈尼族彝族自治州", + 532600: "文山壮族苗族自治州", + 532800: "西双版纳傣族自治州", + 532900: "大理白族自治州", + 533100: "德宏傣族景颇族自治州", + 533300: "怒江傈僳族自治州", + 533400: "迪庆藏族自治州", + 540100: "拉萨市", + 540200: "日喀则市", + 540300: "昌都市", + 540400: "林芝市", + 540500: "山南市", + 540600: "那曲市", + 542500: "阿里地区", + 610100: "西安市", + 610200: "铜川市", + 610300: "宝鸡市", + 610400: "咸阳市", + 610500: "渭南市", + 610600: "延安市", + 610700: "汉中市", + 610800: "榆林市", + 610900: "安康市", + 611e3: "商洛市", + 620100: "兰州市", + 620200: "嘉峪关市", + 620300: "金昌市", + 620400: "白银市", + 620500: "天水市", + 620600: "武威市", + 620700: "张掖市", + 620800: "平凉市", + 620900: "酒泉市", + 621e3: "庆阳市", + 621100: "定西市", + 621200: "陇南市", + 622900: "临夏回族自治州", + 623e3: "甘南藏族自治州", + 630100: "西宁市", + 630200: "海东市", + 632200: "海北藏族自治州", + 632300: "黄南藏族自治州", + 632500: "海南藏族自治州", + 632600: "果洛藏族自治州", + 632700: "玉树藏族自治州", + 632800: "海西蒙古族藏族自治州", + 640100: "银川市", + 640200: "石嘴山市", + 640300: "吴忠市", + 640400: "固原市", + 640500: "中卫市", + 650100: "乌鲁木齐市", + 650200: "克拉玛依市", + 650400: "吐鲁番市", + 650500: "哈密市", + 652300: "昌吉回族自治州", + 652700: "博尔塔拉蒙古自治州", + 652800: "巴音郭楞蒙古自治州", + 652900: "阿克苏地区", + 653e3: "克孜勒苏柯尔克孜自治州", + 653100: "喀什地区", + 653200: "和田地区", + 654e3: "伊犁哈萨克自治州", + 654200: "塔城地区", + 654300: "阿勒泰地区", + 659e3: "自治区直辖县级行政区划", + 710100: "台北市", + 710200: "高雄市", + 710300: "台南市", + 710400: "台中市", + 710500: "金门县", + 710600: "南投县", + 710700: "基隆市", + 710800: "新竹市", + 710900: "嘉义市", + 711100: "新北市", + 711200: "宜兰县", + 711300: "新竹县", + 711400: "桃园市", + 711500: "苗栗县", + 711700: "彰化县", + 711900: "嘉义县", + 712100: "云林县", + 712400: "屏东县", + 712500: "台东县", + 712600: "花莲县", + 712700: "澎湖县", + 712800: "连江县", + 810100: "香港岛", + 810200: "九龙", + 810300: "新界", + 820100: "澳门半岛", + 820200: "离岛" + }, + county_list: { + 110101: "东城区", + 110102: "西城区", + 110105: "朝阳区", + 110106: "丰台区", + 110107: "石景山区", + 110108: "海淀区", + 110109: "门头沟区", + 110111: "房山区", + 110112: "通州区", + 110113: "顺义区", + 110114: "昌平区", + 110115: "大兴区", + 110116: "怀柔区", + 110117: "平谷区", + 110118: "密云区", + 110119: "延庆区", + 120101: "和平区", + 120102: "河东区", + 120103: "河西区", + 120104: "南开区", + 120105: "河北区", + 120106: "红桥区", + 120110: "东丽区", + 120111: "西青区", + 120112: "津南区", + 120113: "北辰区", + 120114: "武清区", + 120115: "宝坻区", + 120116: "滨海新区", + 120117: "宁河区", + 120118: "静海区", + 120119: "蓟州区", + 130102: "长安区", + 130104: "桥西区", + 130105: "新华区", + 130107: "井陉矿区", + 130108: "裕华区", + 130109: "藁城区", + 130110: "鹿泉区", + 130111: "栾城区", + 130121: "井陉县", + 130123: "正定县", + 130125: "行唐县", + 130126: "灵寿县", + 130127: "高邑县", + 130128: "深泽县", + 130129: "赞皇县", + 130130: "无极县", + 130131: "平山县", + 130132: "元氏县", + 130133: "赵县", + 130171: "石家庄高新技术产业开发区", + 130172: "石家庄循环化工园区", + 130181: "辛集市", + 130183: "晋州市", + 130184: "新乐市", + 130202: "路南区", + 130203: "路北区", + 130204: "古冶区", + 130205: "开平区", + 130207: "丰南区", + 130208: "丰润区", + 130209: "曹妃甸区", + 130224: "滦南县", + 130225: "乐亭县", + 130227: "迁西县", + 130229: "玉田县", + 130273: "唐山高新技术产业开发区", + 130274: "河北唐山海港经济开发区", + 130281: "遵化市", + 130283: "迁安市", + 130284: "滦州市", + 130302: "海港区", + 130303: "山海关区", + 130304: "北戴河区", + 130306: "抚宁区", + 130321: "青龙满族自治县", + 130322: "昌黎县", + 130324: "卢龙县", + 130371: "秦皇岛市经济技术开发区", + 130372: "北戴河新区", + 130390: "经济技术开发区", + 130402: "邯山区", + 130403: "丛台区", + 130404: "复兴区", + 130406: "峰峰矿区", + 130407: "肥乡区", + 130408: "永年区", + 130423: "临漳县", + 130424: "成安县", + 130425: "大名县", + 130426: "涉县", + 130427: "磁县", + 130430: "邱县", + 130431: "鸡泽县", + 130432: "广平县", + 130433: "馆陶县", + 130434: "魏县", + 130435: "曲周县", + 130471: "邯郸经济技术开发区", + 130473: "邯郸冀南新区", + 130481: "武安市", + 130502: "襄都区", + 130503: "信都区", + 130505: "任泽区", + 130506: "南和区", + 130522: "临城县", + 130523: "内丘县", + 130524: "柏乡县", + 130525: "隆尧县", + 130528: "宁晋县", + 130529: "巨鹿县", + 130530: "新河县", + 130531: "广宗县", + 130532: "平乡县", + 130533: "威县", + 130534: "清河县", + 130535: "临西县", + 130571: "河北邢台经济开发区", + 130581: "南宫市", + 130582: "沙河市", + 130602: "竞秀区", + 130606: "莲池区", + 130607: "满城区", + 130608: "清苑区", + 130609: "徐水区", + 130623: "涞水县", + 130624: "阜平县", + 130626: "定兴县", + 130627: "唐县", + 130628: "高阳县", + 130629: "容城县", + 130630: "涞源县", + 130631: "望都县", + 130632: "安新县", + 130633: "易县", + 130634: "曲阳县", + 130635: "蠡县", + 130636: "顺平县", + 130637: "博野县", + 130638: "雄县", + 130671: "保定高新技术产业开发区", + 130672: "保定白沟新城", + 130681: "涿州市", + 130682: "定州市", + 130683: "安国市", + 130684: "高碑店市", + 130702: "桥东区", + 130703: "桥西区", + 130705: "宣化区", + 130706: "下花园区", + 130708: "万全区", + 130709: "崇礼区", + 130722: "张北县", + 130723: "康保县", + 130724: "沽源县", + 130725: "尚义县", + 130726: "蔚县", + 130727: "阳原县", + 130728: "怀安县", + 130730: "怀来县", + 130731: "涿鹿县", + 130732: "赤城县", + 130772: "张家口市察北管理区", + 130802: "双桥区", + 130803: "双滦区", + 130804: "鹰手营子矿区", + 130821: "承德县", + 130822: "兴隆县", + 130824: "滦平县", + 130825: "隆化县", + 130826: "丰宁满族自治县", + 130827: "宽城满族自治县", + 130828: "围场满族蒙古族自治县", + 130871: "承德高新技术产业开发区", + 130881: "平泉市", + 130902: "新华区", + 130903: "运河区", + 130921: "沧县", + 130922: "青县", + 130923: "东光县", + 130924: "海兴县", + 130925: "盐山县", + 130926: "肃宁县", + 130927: "南皮县", + 130928: "吴桥县", + 130929: "献县", + 130930: "孟村回族自治县", + 130971: "河北沧州经济开发区", + 130972: "沧州高新技术产业开发区", + 130973: "沧州渤海新区", + 130981: "泊头市", + 130982: "任丘市", + 130983: "黄骅市", + 130984: "河间市", + 131002: "安次区", + 131003: "广阳区", + 131022: "固安县", + 131023: "永清县", + 131024: "香河县", + 131025: "大城县", + 131026: "文安县", + 131028: "大厂回族自治县", + 131071: "廊坊经济技术开发区", + 131081: "霸州市", + 131082: "三河市", + 131090: "开发区", + 131102: "桃城区", + 131103: "冀州区", + 131121: "枣强县", + 131122: "武邑县", + 131123: "武强县", + 131124: "饶阳县", + 131125: "安平县", + 131126: "故城县", + 131127: "景县", + 131128: "阜城县", + 131171: "河北衡水经济开发区", + 131172: "衡水滨湖新区", + 131182: "深州市", + 140105: "小店区", + 140106: "迎泽区", + 140107: "杏花岭区", + 140108: "尖草坪区", + 140109: "万柏林区", + 140110: "晋源区", + 140121: "清徐县", + 140122: "阳曲县", + 140123: "娄烦县", + 140181: "古交市", + 140212: "新荣区", + 140213: "平城区", + 140214: "云冈区", + 140215: "云州区", + 140221: "阳高县", + 140222: "天镇县", + 140223: "广灵县", + 140224: "灵丘县", + 140225: "浑源县", + 140226: "左云县", + 140271: "山西大同经济开发区", + 140302: "城区", + 140303: "矿区", + 140311: "郊区", + 140321: "平定县", + 140322: "盂县", + 140403: "潞州区", + 140404: "上党区", + 140405: "屯留区", + 140406: "潞城区", + 140423: "襄垣县", + 140425: "平顺县", + 140426: "黎城县", + 140427: "壶关县", + 140428: "长子县", + 140429: "武乡县", + 140430: "沁县", + 140431: "沁源县", + 140471: "山西长治高新技术产业园区", + 140502: "城区", + 140521: "沁水县", + 140522: "阳城县", + 140524: "陵川县", + 140525: "泽州县", + 140581: "高平市", + 140602: "朔城区", + 140603: "平鲁区", + 140621: "山阴县", + 140622: "应县", + 140623: "右玉县", + 140671: "山西朔州经济开发区", + 140681: "怀仁市", + 140702: "榆次区", + 140703: "太谷区", + 140721: "榆社县", + 140722: "左权县", + 140723: "和顺县", + 140724: "昔阳县", + 140725: "寿阳县", + 140727: "祁县", + 140728: "平遥县", + 140729: "灵石县", + 140781: "介休市", + 140802: "盐湖区", + 140821: "临猗县", + 140822: "万荣县", + 140823: "闻喜县", + 140824: "稷山县", + 140825: "新绛县", + 140826: "绛县", + 140827: "垣曲县", + 140828: "夏县", + 140829: "平陆县", + 140830: "芮城县", + 140881: "永济市", + 140882: "河津市", + 140902: "忻府区", + 140921: "定襄县", + 140922: "五台县", + 140923: "代县", + 140924: "繁峙县", + 140925: "宁武县", + 140926: "静乐县", + 140927: "神池县", + 140928: "五寨县", + 140929: "岢岚县", + 140930: "河曲县", + 140931: "保德县", + 140932: "偏关县", + 140971: "五台山风景名胜区", + 140981: "原平市", + 141002: "尧都区", + 141021: "曲沃县", + 141022: "翼城县", + 141023: "襄汾县", + 141024: "洪洞县", + 141025: "古县", + 141026: "安泽县", + 141027: "浮山县", + 141028: "吉县", + 141029: "乡宁县", + 141030: "大宁县", + 141031: "隰县", + 141032: "永和县", + 141033: "蒲县", + 141034: "汾西县", + 141081: "侯马市", + 141082: "霍州市", + 141102: "离石区", + 141121: "文水县", + 141122: "交城县", + 141123: "兴县", + 141124: "临县", + 141125: "柳林县", + 141126: "石楼县", + 141127: "岚县", + 141128: "方山县", + 141129: "中阳县", + 141130: "交口县", + 141181: "孝义市", + 141182: "汾阳市", + 150102: "新城区", + 150103: "回民区", + 150104: "玉泉区", + 150105: "赛罕区", + 150121: "土默特左旗", + 150122: "托克托县", + 150123: "和林格尔县", + 150124: "清水河县", + 150125: "武川县", + 150172: "呼和浩特经济技术开发区", + 150202: "东河区", + 150203: "昆都仑区", + 150204: "青山区", + 150205: "石拐区", + 150206: "白云鄂博矿区", + 150207: "九原区", + 150221: "土默特右旗", + 150222: "固阳县", + 150223: "达尔罕茂明安联合旗", + 150271: "包头稀土高新技术产业开发区", + 150302: "海勃湾区", + 150303: "海南区", + 150304: "乌达区", + 150402: "红山区", + 150403: "元宝山区", + 150404: "松山区", + 150421: "阿鲁科尔沁旗", + 150422: "巴林左旗", + 150423: "巴林右旗", + 150424: "林西县", + 150425: "克什克腾旗", + 150426: "翁牛特旗", + 150428: "喀喇沁旗", + 150429: "宁城县", + 150430: "敖汉旗", + 150502: "科尔沁区", + 150521: "科尔沁左翼中旗", + 150522: "科尔沁左翼后旗", + 150523: "开鲁县", + 150524: "库伦旗", + 150525: "奈曼旗", + 150526: "扎鲁特旗", + 150571: "通辽经济技术开发区", + 150581: "霍林郭勒市", + 150602: "东胜区", + 150603: "康巴什区", + 150621: "达拉特旗", + 150622: "准格尔旗", + 150623: "鄂托克前旗", + 150624: "鄂托克旗", + 150625: "杭锦旗", + 150626: "乌审旗", + 150627: "伊金霍洛旗", + 150702: "海拉尔区", + 150703: "扎赉诺尔区", + 150721: "阿荣旗", + 150722: "莫力达瓦达斡尔族自治旗", + 150723: "鄂伦春自治旗", + 150724: "鄂温克族自治旗", + 150725: "陈巴尔虎旗", + 150726: "新巴尔虎左旗", + 150727: "新巴尔虎右旗", + 150781: "满洲里市", + 150782: "牙克石市", + 150783: "扎兰屯市", + 150784: "额尔古纳市", + 150785: "根河市", + 150802: "临河区", + 150821: "五原县", + 150822: "磴口县", + 150823: "乌拉特前旗", + 150824: "乌拉特中旗", + 150825: "乌拉特后旗", + 150826: "杭锦后旗", + 150902: "集宁区", + 150921: "卓资县", + 150922: "化德县", + 150923: "商都县", + 150924: "兴和县", + 150925: "凉城县", + 150926: "察哈尔右翼前旗", + 150927: "察哈尔右翼中旗", + 150928: "察哈尔右翼后旗", + 150929: "四子王旗", + 150981: "丰镇市", + 152201: "乌兰浩特市", + 152202: "阿尔山市", + 152221: "科尔沁右翼前旗", + 152222: "科尔沁右翼中旗", + 152223: "扎赉特旗", + 152224: "突泉县", + 152501: "二连浩特市", + 152502: "锡林浩特市", + 152522: "阿巴嘎旗", + 152523: "苏尼特左旗", + 152524: "苏尼特右旗", + 152525: "东乌珠穆沁旗", + 152526: "西乌珠穆沁旗", + 152527: "太仆寺旗", + 152528: "镶黄旗", + 152529: "正镶白旗", + 152530: "正蓝旗", + 152531: "多伦县", + 152571: "乌拉盖管委会", + 152921: "阿拉善左旗", + 152922: "阿拉善右旗", + 152923: "额济纳旗", + 152971: "内蒙古阿拉善经济开发区", + 210102: "和平区", + 210103: "沈河区", + 210104: "大东区", + 210105: "皇姑区", + 210106: "铁西区", + 210111: "苏家屯区", + 210112: "浑南区", + 210113: "沈北新区", + 210114: "于洪区", + 210115: "辽中区", + 210123: "康平县", + 210124: "法库县", + 210181: "新民市", + 210190: "经济技术开发区", + 210202: "中山区", + 210203: "西岗区", + 210204: "沙河口区", + 210211: "甘井子区", + 210212: "旅顺口区", + 210213: "金州区", + 210214: "普兰店区", + 210224: "长海县", + 210281: "瓦房店市", + 210283: "庄河市", + 210302: "铁东区", + 210303: "铁西区", + 210304: "立山区", + 210311: "千山区", + 210321: "台安县", + 210323: "岫岩满族自治县", + 210381: "海城市", + 210390: "高新区", + 210402: "新抚区", + 210403: "东洲区", + 210404: "望花区", + 210411: "顺城区", + 210421: "抚顺县", + 210422: "新宾满族自治县", + 210423: "清原满族自治县", + 210502: "平山区", + 210503: "溪湖区", + 210504: "明山区", + 210505: "南芬区", + 210521: "本溪满族自治县", + 210522: "桓仁满族自治县", + 210602: "元宝区", + 210603: "振兴区", + 210604: "振安区", + 210624: "宽甸满族自治县", + 210681: "东港市", + 210682: "凤城市", + 210702: "古塔区", + 210703: "凌河区", + 210711: "太和区", + 210726: "黑山县", + 210727: "义县", + 210781: "凌海市", + 210782: "北镇市", + 210793: "经济技术开发区", + 210802: "站前区", + 210803: "西市区", + 210804: "鲅鱼圈区", + 210811: "老边区", + 210881: "盖州市", + 210882: "大石桥市", + 210902: "海州区", + 210903: "新邱区", + 210904: "太平区", + 210905: "清河门区", + 210911: "细河区", + 210921: "阜新蒙古族自治县", + 210922: "彰武县", + 211002: "白塔区", + 211003: "文圣区", + 211004: "宏伟区", + 211005: "弓长岭区", + 211011: "太子河区", + 211021: "辽阳县", + 211081: "灯塔市", + 211102: "双台子区", + 211103: "兴隆台区", + 211104: "大洼区", + 211122: "盘山县", + 211202: "银州区", + 211204: "清河区", + 211221: "铁岭县", + 211223: "西丰县", + 211224: "昌图县", + 211281: "调兵山市", + 211282: "开原市", + 211302: "双塔区", + 211303: "龙城区", + 211321: "朝阳县", + 211322: "建平县", + 211324: "喀喇沁左翼蒙古族自治县", + 211381: "北票市", + 211382: "凌源市", + 211402: "连山区", + 211403: "龙港区", + 211404: "南票区", + 211421: "绥中县", + 211422: "建昌县", + 211481: "兴城市", + 220102: "南关区", + 220103: "宽城区", + 220104: "朝阳区", + 220105: "二道区", + 220106: "绿园区", + 220112: "双阳区", + 220113: "九台区", + 220122: "农安县", + 220171: "长春经济技术开发区", + 220172: "长春净月高新技术产业开发区", + 220173: "长春高新技术产业开发区", + 220174: "长春汽车经济技术开发区", + 220182: "榆树市", + 220183: "德惠市", + 220192: "经济技术开发区", + 220202: "昌邑区", + 220203: "龙潭区", + 220204: "船营区", + 220211: "丰满区", + 220221: "永吉县", + 220271: "吉林经济开发区", + 220272: "吉林高新技术产业开发区", + 220281: "蛟河市", + 220282: "桦甸市", + 220283: "舒兰市", + 220284: "磐石市", + 220302: "铁西区", + 220303: "铁东区", + 220322: "梨树县", + 220323: "伊通满族自治县", + 220381: "公主岭市", + 220382: "双辽市", + 220402: "龙山区", + 220403: "西安区", + 220421: "东丰县", + 220422: "东辽县", + 220502: "东昌区", + 220503: "二道江区", + 220521: "通化县", + 220523: "辉南县", + 220524: "柳河县", + 220581: "梅河口市", + 220582: "集安市", + 220602: "浑江区", + 220605: "江源区", + 220621: "抚松县", + 220622: "靖宇县", + 220623: "长白朝鲜族自治县", + 220681: "临江市", + 220702: "宁江区", + 220721: "前郭尔罗斯蒙古族自治县", + 220722: "长岭县", + 220723: "乾安县", + 220771: "吉林松原经济开发区", + 220781: "扶余市", + 220802: "洮北区", + 220821: "镇赉县", + 220822: "通榆县", + 220871: "吉林白城经济开发区", + 220881: "洮南市", + 220882: "大安市", + 222401: "延吉市", + 222402: "图们市", + 222403: "敦化市", + 222404: "珲春市", + 222405: "龙井市", + 222406: "和龙市", + 222424: "汪清县", + 222426: "安图县", + 230102: "道里区", + 230103: "南岗区", + 230104: "道外区", + 230108: "平房区", + 230109: "松北区", + 230110: "香坊区", + 230111: "呼兰区", + 230112: "阿城区", + 230113: "双城区", + 230123: "依兰县", + 230124: "方正县", + 230125: "宾县", + 230126: "巴彦县", + 230127: "木兰县", + 230128: "通河县", + 230129: "延寿县", + 230183: "尚志市", + 230184: "五常市", + 230202: "龙沙区", + 230203: "建华区", + 230204: "铁锋区", + 230205: "昂昂溪区", + 230206: "富拉尔基区", + 230207: "碾子山区", + 230208: "梅里斯达斡尔族区", + 230221: "龙江县", + 230223: "依安县", + 230224: "泰来县", + 230225: "甘南县", + 230227: "富裕县", + 230229: "克山县", + 230230: "克东县", + 230231: "拜泉县", + 230281: "讷河市", + 230302: "鸡冠区", + 230303: "恒山区", + 230304: "滴道区", + 230305: "梨树区", + 230306: "城子河区", + 230307: "麻山区", + 230321: "鸡东县", + 230381: "虎林市", + 230382: "密山市", + 230402: "向阳区", + 230403: "工农区", + 230404: "南山区", + 230405: "兴安区", + 230406: "东山区", + 230407: "兴山区", + 230421: "萝北县", + 230422: "绥滨县", + 230502: "尖山区", + 230503: "岭东区", + 230505: "四方台区", + 230506: "宝山区", + 230521: "集贤县", + 230522: "友谊县", + 230523: "宝清县", + 230524: "饶河县", + 230602: "萨尔图区", + 230603: "龙凤区", + 230604: "让胡路区", + 230605: "红岗区", + 230606: "大同区", + 230621: "肇州县", + 230622: "肇源县", + 230623: "林甸县", + 230624: "杜尔伯特蒙古族自治县", + 230671: "大庆高新技术产业开发区", + 230717: "伊美区", + 230718: "乌翠区", + 230719: "友好区", + 230722: "嘉荫县", + 230723: "汤旺县", + 230724: "丰林县", + 230725: "大箐山县", + 230726: "南岔县", + 230751: "金林区", + 230781: "铁力市", + 230803: "向阳区", + 230804: "前进区", + 230805: "东风区", + 230811: "郊区", + 230822: "桦南县", + 230826: "桦川县", + 230828: "汤原县", + 230881: "同江市", + 230882: "富锦市", + 230883: "抚远市", + 230902: "新兴区", + 230903: "桃山区", + 230904: "茄子河区", + 230921: "勃利县", + 231002: "东安区", + 231003: "阳明区", + 231004: "爱民区", + 231005: "西安区", + 231025: "林口县", + 231081: "绥芬河市", + 231083: "海林市", + 231084: "宁安市", + 231085: "穆棱市", + 231086: "东宁市", + 231102: "爱辉区", + 231123: "逊克县", + 231124: "孙吴县", + 231181: "北安市", + 231182: "五大连池市", + 231183: "嫩江市", + 231202: "北林区", + 231221: "望奎县", + 231222: "兰西县", + 231223: "青冈县", + 231224: "庆安县", + 231225: "明水县", + 231226: "绥棱县", + 231281: "安达市", + 231282: "肇东市", + 231283: "海伦市", + 232701: "漠河市", + 232721: "呼玛县", + 232722: "塔河县", + 232761: "加格达奇区", + 232762: "松岭区", + 232763: "新林区", + 232764: "呼中区", + 310101: "黄浦区", + 310104: "徐汇区", + 310105: "长宁区", + 310106: "静安区", + 310107: "普陀区", + 310109: "虹口区", + 310110: "杨浦区", + 310112: "闵行区", + 310113: "宝山区", + 310114: "嘉定区", + 310115: "浦东新区", + 310116: "金山区", + 310117: "松江区", + 310118: "青浦区", + 310120: "奉贤区", + 310151: "崇明区", + 320102: "玄武区", + 320104: "秦淮区", + 320105: "建邺区", + 320106: "鼓楼区", + 320111: "浦口区", + 320112: "江北新区", + 320113: "栖霞区", + 320114: "雨花台区", + 320115: "江宁区", + 320116: "六合区", + 320117: "溧水区", + 320118: "高淳区", + 320205: "锡山区", + 320206: "惠山区", + 320211: "滨湖区", + 320213: "梁溪区", + 320214: "新吴区", + 320281: "江阴市", + 320282: "宜兴市", + 320302: "鼓楼区", + 320303: "云龙区", + 320305: "贾汪区", + 320311: "泉山区", + 320312: "铜山区", + 320321: "丰县", + 320322: "沛县", + 320324: "睢宁县", + 320371: "徐州经济技术开发区", + 320381: "新沂市", + 320382: "邳州市", + 320391: "工业园区", + 320402: "天宁区", + 320404: "钟楼区", + 320411: "新北区", + 320412: "武进区", + 320413: "金坛区", + 320481: "溧阳市", + 320505: "虎丘区", + 320506: "吴中区", + 320507: "相城区", + 320508: "姑苏区", + 320509: "吴江区", + 320571: "苏州工业园区", + 320581: "常熟市", + 320582: "张家港市", + 320583: "昆山市", + 320585: "太仓市", + 320590: "工业园区", + 320591: "高新区", + 320602: "崇川区", + 320611: "港闸区", + 320612: "通州区", + 320623: "如东县", + 320681: "启东市", + 320682: "如皋市", + 320684: "海门市", + 320685: "海安市", + 320691: "高新区", + 320703: "连云区", + 320706: "海州区", + 320707: "赣榆区", + 320722: "东海县", + 320723: "灌云县", + 320724: "灌南县", + 320771: "连云港经济技术开发区", + 320803: "淮安区", + 320804: "淮阴区", + 320812: "清江浦区", + 320813: "洪泽区", + 320826: "涟水县", + 320830: "盱眙县", + 320831: "金湖县", + 320871: "淮安经济技术开发区", + 320890: "经济开发区", + 320902: "亭湖区", + 320903: "盐都区", + 320904: "大丰区", + 320921: "响水县", + 320922: "滨海县", + 320923: "阜宁县", + 320924: "射阳县", + 320925: "建湖县", + 320971: "盐城经济技术开发区", + 320981: "东台市", + 321002: "广陵区", + 321003: "邗江区", + 321012: "江都区", + 321023: "宝应县", + 321071: "扬州经济技术开发区", + 321081: "仪征市", + 321084: "高邮市", + 321090: "经济开发区", + 321102: "京口区", + 321111: "润州区", + 321112: "丹徒区", + 321150: "镇江新区", + 321181: "丹阳市", + 321182: "扬中市", + 321183: "句容市", + 321202: "海陵区", + 321203: "高港区", + 321204: "姜堰区", + 321271: "泰州医药高新技术产业开发区", + 321281: "兴化市", + 321282: "靖江市", + 321283: "泰兴市", + 321302: "宿城区", + 321311: "宿豫区", + 321322: "沭阳县", + 321323: "泗阳县", + 321324: "泗洪县", + 321371: "宿迁经济技术开发区", + 330102: "上城区", + 330105: "拱墅区", + 330106: "西湖区", + 330108: "滨江区", + 330109: "萧山区", + 330110: "余杭区", + 330111: "富阳区", + 330112: "临安区", + 330113: "临平区", + 330114: "钱塘区", + 330122: "桐庐县", + 330127: "淳安县", + 330182: "建德市", + 330203: "海曙区", + 330205: "江北区", + 330206: "北仑区", + 330211: "镇海区", + 330212: "鄞州区", + 330213: "奉化区", + 330225: "象山县", + 330226: "宁海县", + 330281: "余姚市", + 330282: "慈溪市", + 330302: "鹿城区", + 330303: "龙湾区", + 330304: "瓯海区", + 330305: "洞头区", + 330324: "永嘉县", + 330326: "平阳县", + 330327: "苍南县", + 330328: "文成县", + 330329: "泰顺县", + 330381: "瑞安市", + 330382: "乐清市", + 330383: "龙港市", + 330402: "南湖区", + 330411: "秀洲区", + 330421: "嘉善县", + 330424: "海盐县", + 330481: "海宁市", + 330482: "平湖市", + 330483: "桐乡市", + 330502: "吴兴区", + 330503: "南浔区", + 330521: "德清县", + 330522: "长兴县", + 330523: "安吉县", + 330602: "越城区", + 330603: "柯桥区", + 330604: "上虞区", + 330624: "新昌县", + 330681: "诸暨市", + 330683: "嵊州市", + 330702: "婺城区", + 330703: "金东区", + 330723: "武义县", + 330726: "浦江县", + 330727: "磐安县", + 330781: "兰溪市", + 330782: "义乌市", + 330783: "东阳市", + 330784: "永康市", + 330802: "柯城区", + 330803: "衢江区", + 330822: "常山县", + 330824: "开化县", + 330825: "龙游县", + 330881: "江山市", + 330902: "定海区", + 330903: "普陀区", + 330921: "岱山县", + 330922: "嵊泗县", + 331002: "椒江区", + 331003: "黄岩区", + 331004: "路桥区", + 331022: "三门县", + 331023: "天台县", + 331024: "仙居县", + 331081: "温岭市", + 331082: "临海市", + 331083: "玉环市", + 331102: "莲都区", + 331121: "青田县", + 331122: "缙云县", + 331123: "遂昌县", + 331124: "松阳县", + 331125: "云和县", + 331126: "庆元县", + 331127: "景宁畲族自治县", + 331181: "龙泉市", + 340102: "瑶海区", + 340103: "庐阳区", + 340104: "蜀山区", + 340111: "包河区", + 340121: "长丰县", + 340122: "肥东县", + 340123: "肥西县", + 340124: "庐江县", + 340171: "合肥高新技术产业开发区", + 340172: "合肥经济技术开发区", + 340173: "合肥新站高新技术产业开发区", + 340181: "巢湖市", + 340190: "高新技术开发区", + 340191: "经济技术开发区", + 340202: "镜湖区", + 340207: "鸠江区", + 340209: "弋江区", + 340210: "湾沚区", + 340212: "繁昌区", + 340223: "南陵县", + 340281: "无为市", + 340302: "龙子湖区", + 340303: "蚌山区", + 340304: "禹会区", + 340311: "淮上区", + 340321: "怀远县", + 340322: "五河县", + 340323: "固镇县", + 340371: "蚌埠市高新技术开发区", + 340372: "蚌埠市经济开发区", + 340402: "大通区", + 340403: "田家庵区", + 340404: "谢家集区", + 340405: "八公山区", + 340406: "潘集区", + 340421: "凤台县", + 340422: "寿县", + 340503: "花山区", + 340504: "雨山区", + 340506: "博望区", + 340521: "当涂县", + 340522: "含山县", + 340523: "和县", + 340602: "杜集区", + 340603: "相山区", + 340604: "烈山区", + 340621: "濉溪县", + 340705: "铜官区", + 340706: "义安区", + 340711: "郊区", + 340722: "枞阳县", + 340802: "迎江区", + 340803: "大观区", + 340811: "宜秀区", + 340822: "怀宁县", + 340825: "太湖县", + 340826: "宿松县", + 340827: "望江县", + 340828: "岳西县", + 340881: "桐城市", + 340882: "潜山市", + 341002: "屯溪区", + 341003: "黄山区", + 341004: "徽州区", + 341021: "歙县", + 341022: "休宁县", + 341023: "黟县", + 341024: "祁门县", + 341102: "琅琊区", + 341103: "南谯区", + 341122: "来安县", + 341124: "全椒县", + 341125: "定远县", + 341126: "凤阳县", + 341181: "天长市", + 341182: "明光市", + 341202: "颍州区", + 341203: "颍东区", + 341204: "颍泉区", + 341221: "临泉县", + 341222: "太和县", + 341225: "阜南县", + 341226: "颍上县", + 341271: "阜阳合肥现代产业园区", + 341282: "界首市", + 341302: "埇桥区", + 341321: "砀山县", + 341322: "萧县", + 341323: "灵璧县", + 341324: "泗县", + 341371: "宿州马鞍山现代产业园区", + 341372: "宿州经济技术开发区", + 341390: "经济开发区", + 341502: "金安区", + 341503: "裕安区", + 341504: "叶集区", + 341522: "霍邱县", + 341523: "舒城县", + 341524: "金寨县", + 341525: "霍山县", + 341602: "谯城区", + 341621: "涡阳县", + 341622: "蒙城县", + 341623: "利辛县", + 341702: "贵池区", + 341721: "东至县", + 341722: "石台县", + 341723: "青阳县", + 341802: "宣州区", + 341821: "郎溪县", + 341823: "泾县", + 341824: "绩溪县", + 341825: "旌德县", + 341871: "宣城市经济开发区", + 341881: "宁国市", + 341882: "广德市", + 350102: "鼓楼区", + 350103: "台江区", + 350104: "仓山区", + 350105: "马尾区", + 350111: "晋安区", + 350112: "长乐区", + 350121: "闽侯县", + 350122: "连江县", + 350123: "罗源县", + 350124: "闽清县", + 350125: "永泰县", + 350128: "平潭县", + 350181: "福清市", + 350203: "思明区", + 350205: "海沧区", + 350206: "湖里区", + 350211: "集美区", + 350212: "同安区", + 350213: "翔安区", + 350302: "城厢区", + 350303: "涵江区", + 350304: "荔城区", + 350305: "秀屿区", + 350322: "仙游县", + 350402: "梅列区", + 350403: "三元区", + 350421: "明溪县", + 350423: "清流县", + 350424: "宁化县", + 350425: "大田县", + 350426: "尤溪县", + 350427: "沙县", + 350428: "将乐县", + 350429: "泰宁县", + 350430: "建宁县", + 350481: "永安市", + 350502: "鲤城区", + 350503: "丰泽区", + 350504: "洛江区", + 350505: "泉港区", + 350521: "惠安县", + 350524: "安溪县", + 350525: "永春县", + 350526: "德化县", + 350527: "金门县", + 350581: "石狮市", + 350582: "晋江市", + 350583: "南安市", + 350602: "芗城区", + 350603: "龙文区", + 350622: "云霄县", + 350623: "漳浦县", + 350624: "诏安县", + 350625: "长泰县", + 350626: "东山县", + 350627: "南靖县", + 350628: "平和县", + 350629: "华安县", + 350681: "龙海市", + 350702: "延平区", + 350703: "建阳区", + 350721: "顺昌县", + 350722: "浦城县", + 350723: "光泽县", + 350724: "松溪县", + 350725: "政和县", + 350781: "邵武市", + 350782: "武夷山市", + 350783: "建瓯市", + 350802: "新罗区", + 350803: "永定区", + 350821: "长汀县", + 350823: "上杭县", + 350824: "武平县", + 350825: "连城县", + 350881: "漳平市", + 350902: "蕉城区", + 350921: "霞浦县", + 350922: "古田县", + 350923: "屏南县", + 350924: "寿宁县", + 350925: "周宁县", + 350926: "柘荣县", + 350981: "福安市", + 350982: "福鼎市", + 360102: "东湖区", + 360103: "西湖区", + 360104: "青云谱区", + 360111: "青山湖区", + 360112: "新建区", + 360113: "红谷滩区", + 360121: "南昌县", + 360123: "安义县", + 360124: "进贤县", + 360190: "经济技术开发区", + 360192: "高新区", + 360202: "昌江区", + 360203: "珠山区", + 360222: "浮梁县", + 360281: "乐平市", + 360302: "安源区", + 360313: "湘东区", + 360321: "莲花县", + 360322: "上栗县", + 360323: "芦溪县", + 360402: "濂溪区", + 360403: "浔阳区", + 360404: "柴桑区", + 360423: "武宁县", + 360424: "修水县", + 360425: "永修县", + 360426: "德安县", + 360428: "都昌县", + 360429: "湖口县", + 360430: "彭泽县", + 360481: "瑞昌市", + 360482: "共青城市", + 360483: "庐山市", + 360490: "经济技术开发区", + 360502: "渝水区", + 360521: "分宜县", + 360602: "月湖区", + 360603: "余江区", + 360681: "贵溪市", + 360702: "章贡区", + 360703: "南康区", + 360704: "赣县区", + 360722: "信丰县", + 360723: "大余县", + 360724: "上犹县", + 360725: "崇义县", + 360726: "安远县", + 360728: "定南县", + 360729: "全南县", + 360730: "宁都县", + 360731: "于都县", + 360732: "兴国县", + 360733: "会昌县", + 360734: "寻乌县", + 360735: "石城县", + 360781: "瑞金市", + 360783: "龙南市", + 360802: "吉州区", + 360803: "青原区", + 360821: "吉安县", + 360822: "吉水县", + 360823: "峡江县", + 360824: "新干县", + 360825: "永丰县", + 360826: "泰和县", + 360827: "遂川县", + 360828: "万安县", + 360829: "安福县", + 360830: "永新县", + 360881: "井冈山市", + 360902: "袁州区", + 360921: "奉新县", + 360922: "万载县", + 360923: "上高县", + 360924: "宜丰县", + 360925: "靖安县", + 360926: "铜鼓县", + 360981: "丰城市", + 360982: "樟树市", + 360983: "高安市", + 361002: "临川区", + 361003: "东乡区", + 361021: "南城县", + 361022: "黎川县", + 361023: "南丰县", + 361024: "崇仁县", + 361025: "乐安县", + 361026: "宜黄县", + 361027: "金溪县", + 361028: "资溪县", + 361030: "广昌县", + 361102: "信州区", + 361103: "广丰区", + 361104: "广信区", + 361123: "玉山县", + 361124: "铅山县", + 361125: "横峰县", + 361126: "弋阳县", + 361127: "余干县", + 361128: "鄱阳县", + 361129: "万年县", + 361130: "婺源县", + 361181: "德兴市", + 370102: "历下区", + 370103: "市中区", + 370104: "槐荫区", + 370105: "天桥区", + 370112: "历城区", + 370113: "长清区", + 370114: "章丘区", + 370115: "济阳区", + 370116: "莱芜区", + 370117: "钢城区", + 370124: "平阴县", + 370126: "商河县", + 370171: "济南高新技术产业开发区", + 370190: "高新区", + 370202: "市南区", + 370203: "市北区", + 370211: "黄岛区", + 370212: "崂山区", + 370213: "李沧区", + 370214: "城阳区", + 370215: "即墨区", + 370271: "青岛高新技术产业开发区", + 370281: "胶州市", + 370283: "平度市", + 370285: "莱西市", + 370290: "开发区", + 370302: "淄川区", + 370303: "张店区", + 370304: "博山区", + 370305: "临淄区", + 370306: "周村区", + 370321: "桓台县", + 370322: "高青县", + 370323: "沂源县", + 370402: "市中区", + 370403: "薛城区", + 370404: "峄城区", + 370405: "台儿庄区", + 370406: "山亭区", + 370481: "滕州市", + 370502: "东营区", + 370503: "河口区", + 370505: "垦利区", + 370522: "利津县", + 370523: "广饶县", + 370571: "东营经济技术开发区", + 370572: "东营港经济开发区", + 370602: "芝罘区", + 370611: "福山区", + 370612: "牟平区", + 370613: "莱山区", + 370634: "长岛县", + 370671: "烟台高新技术产业开发区", + 370672: "烟台经济技术开发区", + 370681: "龙口市", + 370682: "莱阳市", + 370683: "莱州市", + 370684: "蓬莱市", + 370685: "招远市", + 370686: "栖霞市", + 370687: "海阳市", + 370690: "开发区", + 370702: "潍城区", + 370703: "寒亭区", + 370704: "坊子区", + 370705: "奎文区", + 370724: "临朐县", + 370725: "昌乐县", + 370772: "潍坊滨海经济技术开发区", + 370781: "青州市", + 370782: "诸城市", + 370783: "寿光市", + 370784: "安丘市", + 370785: "高密市", + 370786: "昌邑市", + 370790: "开发区", + 370791: "高新区", + 370811: "任城区", + 370812: "兖州区", + 370826: "微山县", + 370827: "鱼台县", + 370828: "金乡县", + 370829: "嘉祥县", + 370830: "汶上县", + 370831: "泗水县", + 370832: "梁山县", + 370871: "济宁高新技术产业开发区", + 370881: "曲阜市", + 370883: "邹城市", + 370890: "高新区", + 370902: "泰山区", + 370911: "岱岳区", + 370921: "宁阳县", + 370923: "东平县", + 370982: "新泰市", + 370983: "肥城市", + 371002: "环翠区", + 371003: "文登区", + 371071: "威海火炬高技术产业开发区", + 371072: "威海经济技术开发区", + 371082: "荣成市", + 371083: "乳山市", + 371091: "经济技术开发区", + 371102: "东港区", + 371103: "岚山区", + 371121: "五莲县", + 371122: "莒县", + 371171: "日照经济技术开发区", + 371302: "兰山区", + 371311: "罗庄区", + 371312: "河东区", + 371321: "沂南县", + 371322: "郯城县", + 371323: "沂水县", + 371324: "兰陵县", + 371325: "费县", + 371326: "平邑县", + 371327: "莒南县", + 371328: "蒙阴县", + 371329: "临沭县", + 371371: "临沂高新技术产业开发区", + 371402: "德城区", + 371403: "陵城区", + 371422: "宁津县", + 371423: "庆云县", + 371424: "临邑县", + 371425: "齐河县", + 371426: "平原县", + 371427: "夏津县", + 371428: "武城县", + 371472: "德州运河经济开发区", + 371481: "乐陵市", + 371482: "禹城市", + 371502: "东昌府区", + 371503: "茌平区", + 371521: "阳谷县", + 371522: "莘县", + 371524: "东阿县", + 371525: "冠县", + 371526: "高唐县", + 371581: "临清市", + 371602: "滨城区", + 371603: "沾化区", + 371621: "惠民县", + 371622: "阳信县", + 371623: "无棣县", + 371625: "博兴县", + 371681: "邹平市", + 371702: "牡丹区", + 371703: "定陶区", + 371721: "曹县", + 371722: "单县", + 371723: "成武县", + 371724: "巨野县", + 371725: "郓城县", + 371726: "鄄城县", + 371728: "东明县", + 371771: "菏泽经济技术开发区", + 371772: "菏泽高新技术开发区", + 410102: "中原区", + 410103: "二七区", + 410104: "管城回族区", + 410105: "金水区", + 410106: "上街区", + 410108: "惠济区", + 410122: "中牟县", + 410171: "郑州经济技术开发区", + 410172: "郑州高新技术产业开发区", + 410173: "郑州航空港经济综合实验区", + 410181: "巩义市", + 410182: "荥阳市", + 410183: "新密市", + 410184: "新郑市", + 410185: "登封市", + 410190: "高新技术开发区", + 410191: "经济技术开发区", + 410202: "龙亭区", + 410203: "顺河回族区", + 410204: "鼓楼区", + 410205: "禹王台区", + 410212: "祥符区", + 410221: "杞县", + 410222: "通许县", + 410223: "尉氏县", + 410225: "兰考县", + 410302: "老城区", + 410303: "西工区", + 410304: "瀍河回族区", + 410305: "涧西区", + 410306: "吉利区", + 410311: "洛龙区", + 410322: "孟津县", + 410323: "新安县", + 410324: "栾川县", + 410325: "嵩县", + 410326: "汝阳县", + 410327: "宜阳县", + 410328: "洛宁县", + 410329: "伊川县", + 410381: "偃师市", + 410402: "新华区", + 410403: "卫东区", + 410404: "石龙区", + 410411: "湛河区", + 410421: "宝丰县", + 410422: "叶县", + 410423: "鲁山县", + 410425: "郏县", + 410471: "平顶山高新技术产业开发区", + 410481: "舞钢市", + 410482: "汝州市", + 410502: "文峰区", + 410503: "北关区", + 410505: "殷都区", + 410506: "龙安区", + 410522: "安阳县", + 410523: "汤阴县", + 410526: "滑县", + 410527: "内黄县", + 410581: "林州市", + 410590: "开发区", + 410602: "鹤山区", + 410603: "山城区", + 410611: "淇滨区", + 410621: "浚县", + 410622: "淇县", + 410702: "红旗区", + 410703: "卫滨区", + 410704: "凤泉区", + 410711: "牧野区", + 410721: "新乡县", + 410724: "获嘉县", + 410725: "原阳县", + 410726: "延津县", + 410727: "封丘县", + 410771: "新乡高新技术产业开发区", + 410772: "新乡经济技术开发区", + 410781: "卫辉市", + 410782: "辉县市", + 410783: "长垣市", + 410802: "解放区", + 410803: "中站区", + 410804: "马村区", + 410811: "山阳区", + 410821: "修武县", + 410822: "博爱县", + 410823: "武陟县", + 410825: "温县", + 410871: "焦作城乡一体化示范区", + 410882: "沁阳市", + 410883: "孟州市", + 410902: "华龙区", + 410922: "清丰县", + 410923: "南乐县", + 410926: "范县", + 410927: "台前县", + 410928: "濮阳县", + 410971: "河南濮阳工业园区", + 411002: "魏都区", + 411003: "建安区", + 411024: "鄢陵县", + 411025: "襄城县", + 411071: "许昌经济技术开发区", + 411081: "禹州市", + 411082: "长葛市", + 411102: "源汇区", + 411103: "郾城区", + 411104: "召陵区", + 411121: "舞阳县", + 411122: "临颍县", + 411171: "漯河经济技术开发区", + 411202: "湖滨区", + 411203: "陕州区", + 411221: "渑池县", + 411224: "卢氏县", + 411271: "河南三门峡经济开发区", + 411281: "义马市", + 411282: "灵宝市", + 411302: "宛城区", + 411303: "卧龙区", + 411321: "南召县", + 411322: "方城县", + 411323: "西峡县", + 411324: "镇平县", + 411325: "内乡县", + 411326: "淅川县", + 411327: "社旗县", + 411328: "唐河县", + 411329: "新野县", + 411330: "桐柏县", + 411372: "南阳市城乡一体化示范区", + 411381: "邓州市", + 411402: "梁园区", + 411403: "睢阳区", + 411421: "民权县", + 411422: "睢县", + 411423: "宁陵县", + 411424: "柘城县", + 411425: "虞城县", + 411426: "夏邑县", + 411481: "永城市", + 411502: "浉河区", + 411503: "平桥区", + 411521: "罗山县", + 411522: "光山县", + 411523: "新县", + 411524: "商城县", + 411525: "固始县", + 411526: "潢川县", + 411527: "淮滨县", + 411528: "息县", + 411602: "川汇区", + 411603: "淮阳区", + 411621: "扶沟县", + 411622: "西华县", + 411623: "商水县", + 411624: "沈丘县", + 411625: "郸城县", + 411627: "太康县", + 411628: "鹿邑县", + 411671: "河南周口经济开发区", + 411681: "项城市", + 411690: "经济开发区", + 411702: "驿城区", + 411721: "西平县", + 411722: "上蔡县", + 411723: "平舆县", + 411724: "正阳县", + 411725: "确山县", + 411726: "泌阳县", + 411727: "汝南县", + 411728: "遂平县", + 411729: "新蔡县", + 419001: "济源市", + 420102: "江岸区", + 420103: "江汉区", + 420104: "硚口区", + 420105: "汉阳区", + 420106: "武昌区", + 420107: "青山区", + 420111: "洪山区", + 420112: "东西湖区", + 420113: "汉南区", + 420114: "蔡甸区", + 420115: "江夏区", + 420116: "黄陂区", + 420117: "新洲区", + 420202: "黄石港区", + 420203: "西塞山区", + 420204: "下陆区", + 420205: "铁山区", + 420222: "阳新县", + 420281: "大冶市", + 420302: "茅箭区", + 420303: "张湾区", + 420304: "郧阳区", + 420322: "郧西县", + 420323: "竹山县", + 420324: "竹溪县", + 420325: "房县", + 420381: "丹江口市", + 420502: "西陵区", + 420503: "伍家岗区", + 420504: "点军区", + 420505: "猇亭区", + 420506: "夷陵区", + 420525: "远安县", + 420526: "兴山县", + 420527: "秭归县", + 420528: "长阳土家族自治县", + 420529: "五峰土家族自治县", + 420581: "宜都市", + 420582: "当阳市", + 420583: "枝江市", + 420590: "经济开发区", + 420602: "襄城区", + 420606: "樊城区", + 420607: "襄州区", + 420624: "南漳县", + 420625: "谷城县", + 420626: "保康县", + 420682: "老河口市", + 420683: "枣阳市", + 420684: "宜城市", + 420702: "梁子湖区", + 420703: "华容区", + 420704: "鄂城区", + 420802: "东宝区", + 420804: "掇刀区", + 420822: "沙洋县", + 420881: "钟祥市", + 420882: "京山市", + 420902: "孝南区", + 420921: "孝昌县", + 420922: "大悟县", + 420923: "云梦县", + 420981: "应城市", + 420982: "安陆市", + 420984: "汉川市", + 421002: "沙市区", + 421003: "荆州区", + 421022: "公安县", + 421023: "监利县", + 421024: "江陵县", + 421081: "石首市", + 421083: "洪湖市", + 421087: "松滋市", + 421102: "黄州区", + 421121: "团风县", + 421122: "红安县", + 421123: "罗田县", + 421124: "英山县", + 421125: "浠水县", + 421126: "蕲春县", + 421127: "黄梅县", + 421171: "龙感湖管理区", + 421181: "麻城市", + 421182: "武穴市", + 421202: "咸安区", + 421221: "嘉鱼县", + 421222: "通城县", + 421223: "崇阳县", + 421224: "通山县", + 421281: "赤壁市", + 421303: "曾都区", + 421321: "随县", + 421381: "广水市", + 422801: "恩施市", + 422802: "利川市", + 422822: "建始县", + 422823: "巴东县", + 422825: "宣恩县", + 422826: "咸丰县", + 422827: "来凤县", + 422828: "鹤峰县", + 429004: "仙桃市", + 429005: "潜江市", + 429006: "天门市", + 429021: "神农架林区", + 430102: "芙蓉区", + 430103: "天心区", + 430104: "岳麓区", + 430105: "开福区", + 430111: "雨花区", + 430112: "望城区", + 430121: "长沙县", + 430181: "浏阳市", + 430182: "宁乡市", + 430202: "荷塘区", + 430203: "芦淞区", + 430204: "石峰区", + 430211: "天元区", + 430212: "渌口区", + 430223: "攸县", + 430224: "茶陵县", + 430225: "炎陵县", + 430271: "云龙示范区", + 430281: "醴陵市", + 430302: "雨湖区", + 430304: "岳塘区", + 430321: "湘潭县", + 430373: "湘潭九华示范区", + 430381: "湘乡市", + 430382: "韶山市", + 430405: "珠晖区", + 430406: "雁峰区", + 430407: "石鼓区", + 430408: "蒸湘区", + 430412: "南岳区", + 430421: "衡阳县", + 430422: "衡南县", + 430423: "衡山县", + 430424: "衡东县", + 430426: "祁东县", + 430481: "耒阳市", + 430482: "常宁市", + 430502: "双清区", + 430503: "大祥区", + 430511: "北塔区", + 430522: "新邵县", + 430523: "邵阳县", + 430524: "隆回县", + 430525: "洞口县", + 430527: "绥宁县", + 430528: "新宁县", + 430529: "城步苗族自治县", + 430581: "武冈市", + 430582: "邵东市", + 430602: "岳阳楼区", + 430603: "云溪区", + 430611: "君山区", + 430621: "岳阳县", + 430623: "华容县", + 430624: "湘阴县", + 430626: "平江县", + 430681: "汨罗市", + 430682: "临湘市", + 430702: "武陵区", + 430703: "鼎城区", + 430721: "安乡县", + 430722: "汉寿县", + 430723: "澧县", + 430724: "临澧县", + 430725: "桃源县", + 430726: "石门县", + 430781: "津市市", + 430802: "永定区", + 430811: "武陵源区", + 430821: "慈利县", + 430822: "桑植县", + 430902: "资阳区", + 430903: "赫山区", + 430921: "南县", + 430922: "桃江县", + 430923: "安化县", + 430971: "益阳市大通湖管理区", + 430981: "沅江市", + 431002: "北湖区", + 431003: "苏仙区", + 431021: "桂阳县", + 431022: "宜章县", + 431023: "永兴县", + 431024: "嘉禾县", + 431025: "临武县", + 431026: "汝城县", + 431027: "桂东县", + 431028: "安仁县", + 431081: "资兴市", + 431102: "零陵区", + 431103: "冷水滩区", + 431121: "祁阳县", + 431122: "东安县", + 431123: "双牌县", + 431124: "道县", + 431125: "江永县", + 431126: "宁远县", + 431127: "蓝山县", + 431128: "新田县", + 431129: "江华瑶族自治县", + 431202: "鹤城区", + 431221: "中方县", + 431222: "沅陵县", + 431223: "辰溪县", + 431224: "溆浦县", + 431225: "会同县", + 431226: "麻阳苗族自治县", + 431227: "新晃侗族自治县", + 431228: "芷江侗族自治县", + 431229: "靖州苗族侗族自治县", + 431230: "通道侗族自治县", + 431271: "怀化市洪江管理区", + 431281: "洪江市", + 431302: "娄星区", + 431321: "双峰县", + 431322: "新化县", + 431381: "冷水江市", + 431382: "涟源市", + 433101: "吉首市", + 433122: "泸溪县", + 433123: "凤凰县", + 433124: "花垣县", + 433125: "保靖县", + 433126: "古丈县", + 433127: "永顺县", + 433130: "龙山县", + 440103: "荔湾区", + 440104: "越秀区", + 440105: "海珠区", + 440106: "天河区", + 440111: "白云区", + 440112: "黄埔区", + 440113: "番禺区", + 440114: "花都区", + 440115: "南沙区", + 440117: "从化区", + 440118: "增城区", + 440203: "武江区", + 440204: "浈江区", + 440205: "曲江区", + 440222: "始兴县", + 440224: "仁化县", + 440229: "翁源县", + 440232: "乳源瑶族自治县", + 440233: "新丰县", + 440281: "乐昌市", + 440282: "南雄市", + 440303: "罗湖区", + 440304: "福田区", + 440305: "南山区", + 440306: "宝安区", + 440307: "龙岗区", + 440308: "盐田区", + 440309: "龙华区", + 440310: "坪山区", + 440311: "光明区", + 440402: "香洲区", + 440403: "斗门区", + 440404: "金湾区", + 440507: "龙湖区", + 440511: "金平区", + 440512: "濠江区", + 440513: "潮阳区", + 440514: "潮南区", + 440515: "澄海区", + 440523: "南澳县", + 440604: "禅城区", + 440605: "南海区", + 440606: "顺德区", + 440607: "三水区", + 440608: "高明区", + 440703: "蓬江区", + 440704: "江海区", + 440705: "新会区", + 440781: "台山市", + 440783: "开平市", + 440784: "鹤山市", + 440785: "恩平市", + 440802: "赤坎区", + 440803: "霞山区", + 440804: "坡头区", + 440811: "麻章区", + 440823: "遂溪县", + 440825: "徐闻县", + 440881: "廉江市", + 440882: "雷州市", + 440883: "吴川市", + 440890: "经济技术开发区", + 440902: "茂南区", + 440904: "电白区", + 440981: "高州市", + 440982: "化州市", + 440983: "信宜市", + 441202: "端州区", + 441203: "鼎湖区", + 441204: "高要区", + 441223: "广宁县", + 441224: "怀集县", + 441225: "封开县", + 441226: "德庆县", + 441284: "四会市", + 441302: "惠城区", + 441303: "惠阳区", + 441322: "博罗县", + 441323: "惠东县", + 441324: "龙门县", + 441402: "梅江区", + 441403: "梅县区", + 441422: "大埔县", + 441423: "丰顺县", + 441424: "五华县", + 441426: "平远县", + 441427: "蕉岭县", + 441481: "兴宁市", + 441502: "城区", + 441521: "海丰县", + 441523: "陆河县", + 441581: "陆丰市", + 441602: "源城区", + 441621: "紫金县", + 441622: "龙川县", + 441623: "连平县", + 441624: "和平县", + 441625: "东源县", + 441702: "江城区", + 441704: "阳东区", + 441721: "阳西县", + 441781: "阳春市", + 441802: "清城区", + 441803: "清新区", + 441821: "佛冈县", + 441823: "阳山县", + 441825: "连山壮族瑶族自治县", + 441826: "连南瑶族自治县", + 441881: "英德市", + 441882: "连州市", + 441901: "中堂镇", + 441903: "南城街道", + 441904: "长安镇", + 441905: "东坑镇", + 441906: "樟木头镇", + 441907: "莞城街道", + 441908: "石龙镇", + 441909: "桥头镇", + 441910: "万江街道", + 441911: "麻涌镇", + 441912: "虎门镇", + 441913: "谢岗镇", + 441914: "石碣镇", + 441915: "茶山镇", + 441916: "东城街道", + 441917: "洪梅镇", + 441918: "道滘镇", + 441919: "高埗镇", + 441920: "企石镇", + 441921: "凤岗镇", + 441922: "大岭山镇", + 441923: "松山湖", + 441924: "清溪镇", + 441925: "望牛墩镇", + 441926: "厚街镇", + 441927: "常平镇", + 441928: "寮步镇", + 441929: "石排镇", + 441930: "横沥镇", + 441931: "塘厦镇", + 441932: "黄江镇", + 441933: "大朗镇", + 441934: "东莞港", + 441935: "东莞生态园", + 441990: "沙田镇", + 442001: "南头镇", + 442002: "神湾镇", + 442003: "东凤镇", + 442004: "五桂山街道", + 442005: "黄圃镇", + 442006: "小榄镇", + 442007: "石岐街道", + 442008: "横栏镇", + 442009: "三角镇", + 442010: "三乡镇", + 442011: "港口镇", + 442012: "沙溪镇", + 442013: "板芙镇", + 442015: "东升镇", + 442016: "阜沙镇", + 442017: "民众镇", + 442018: "东区街道", + 442019: "火炬开发区街道办事处", + 442020: "西区街道", + 442021: "南区街道", + 442022: "古镇镇", + 442023: "坦洲镇", + 442024: "大涌镇", + 442025: "南朗镇", + 445102: "湘桥区", + 445103: "潮安区", + 445122: "饶平县", + 445202: "榕城区", + 445203: "揭东区", + 445222: "揭西县", + 445224: "惠来县", + 445281: "普宁市", + 445302: "云城区", + 445303: "云安区", + 445321: "新兴县", + 445322: "郁南县", + 445381: "罗定市", + 450102: "兴宁区", + 450103: "青秀区", + 450105: "江南区", + 450107: "西乡塘区", + 450108: "良庆区", + 450109: "邕宁区", + 450110: "武鸣区", + 450123: "隆安县", + 450124: "马山县", + 450125: "上林县", + 450126: "宾阳县", + 450127: "横县", + 450202: "城中区", + 450203: "鱼峰区", + 450204: "柳南区", + 450205: "柳北区", + 450206: "柳江区", + 450222: "柳城县", + 450223: "鹿寨县", + 450224: "融安县", + 450225: "融水苗族自治县", + 450226: "三江侗族自治县", + 450302: "秀峰区", + 450303: "叠彩区", + 450304: "象山区", + 450305: "七星区", + 450311: "雁山区", + 450312: "临桂区", + 450321: "阳朔县", + 450323: "灵川县", + 450324: "全州县", + 450325: "兴安县", + 450326: "永福县", + 450327: "灌阳县", + 450328: "龙胜各族自治县", + 450329: "资源县", + 450330: "平乐县", + 450332: "恭城瑶族自治县", + 450381: "荔浦市", + 450403: "万秀区", + 450405: "长洲区", + 450406: "龙圩区", + 450421: "苍梧县", + 450422: "藤县", + 450423: "蒙山县", + 450481: "岑溪市", + 450502: "海城区", + 450503: "银海区", + 450512: "铁山港区", + 450521: "合浦县", + 450602: "港口区", + 450603: "防城区", + 450621: "上思县", + 450681: "东兴市", + 450702: "钦南区", + 450703: "钦北区", + 450721: "灵山县", + 450722: "浦北县", + 450802: "港北区", + 450803: "港南区", + 450804: "覃塘区", + 450821: "平南县", + 450881: "桂平市", + 450902: "玉州区", + 450903: "福绵区", + 450921: "容县", + 450922: "陆川县", + 450923: "博白县", + 450924: "兴业县", + 450981: "北流市", + 451002: "右江区", + 451003: "田阳区", + 451022: "田东县", + 451024: "德保县", + 451026: "那坡县", + 451027: "凌云县", + 451028: "乐业县", + 451029: "田林县", + 451030: "西林县", + 451031: "隆林各族自治县", + 451081: "靖西市", + 451082: "平果市", + 451102: "八步区", + 451103: "平桂区", + 451121: "昭平县", + 451122: "钟山县", + 451123: "富川瑶族自治县", + 451202: "金城江区", + 451203: "宜州区", + 451221: "南丹县", + 451222: "天峨县", + 451223: "凤山县", + 451224: "东兰县", + 451225: "罗城仫佬族自治县", + 451226: "环江毛南族自治县", + 451227: "巴马瑶族自治县", + 451228: "都安瑶族自治县", + 451229: "大化瑶族自治县", + 451302: "兴宾区", + 451321: "忻城县", + 451322: "象州县", + 451323: "武宣县", + 451324: "金秀瑶族自治县", + 451381: "合山市", + 451402: "江州区", + 451421: "扶绥县", + 451422: "宁明县", + 451423: "龙州县", + 451424: "大新县", + 451425: "天等县", + 451481: "凭祥市", + 460105: "秀英区", + 460106: "龙华区", + 460107: "琼山区", + 460108: "美兰区", + 460202: "海棠区", + 460203: "吉阳区", + 460204: "天涯区", + 460205: "崖州区", + 460321: "西沙区", + 460322: "南沙区", + 460401: "那大镇", + 460402: "和庆镇", + 460403: "南丰镇", + 460404: "大成镇", + 460405: "雅星镇", + 460406: "兰洋镇", + 460407: "光村镇", + 460408: "木棠镇", + 460409: "海头镇", + 460410: "峨蔓镇", + 460411: "王五镇", + 460412: "白马井镇", + 460413: "中和镇", + 460414: "排浦镇", + 460415: "东成镇", + 460416: "新州镇", + 460417: "洋浦经济开发区", + 460418: "华南热作学院", + 469001: "五指山市", + 469002: "琼海市", + 469005: "文昌市", + 469006: "万宁市", + 469007: "东方市", + 469021: "定安县", + 469022: "屯昌县", + 469023: "澄迈县", + 469024: "临高县", + 469025: "白沙黎族自治县", + 469026: "昌江黎族自治县", + 469027: "乐东黎族自治县", + 469028: "陵水黎族自治县", + 469029: "保亭黎族苗族自治县", + 469030: "琼中黎族苗族自治县", + 500101: "万州区", + 500102: "涪陵区", + 500103: "渝中区", + 500104: "大渡口区", + 500105: "江北区", + 500106: "沙坪坝区", + 500107: "九龙坡区", + 500108: "南岸区", + 500109: "北碚区", + 500110: "綦江区", + 500111: "大足区", + 500112: "渝北区", + 500113: "巴南区", + 500114: "黔江区", + 500115: "长寿区", + 500116: "江津区", + 500117: "合川区", + 500118: "永川区", + 500119: "南川区", + 500120: "璧山区", + 500151: "铜梁区", + 500152: "潼南区", + 500153: "荣昌区", + 500154: "开州区", + 500155: "梁平区", + 500156: "武隆区", + 500229: "城口县", + 500230: "丰都县", + 500231: "垫江县", + 500233: "忠县", + 500235: "云阳县", + 500236: "奉节县", + 500237: "巫山县", + 500238: "巫溪县", + 500240: "石柱土家族自治县", + 500241: "秀山土家族苗族自治县", + 500242: "酉阳土家族苗族自治县", + 500243: "彭水苗族土家族自治县", + 510104: "锦江区", + 510105: "青羊区", + 510106: "金牛区", + 510107: "武侯区", + 510108: "成华区", + 510112: "龙泉驿区", + 510113: "青白江区", + 510114: "新都区", + 510115: "温江区", + 510116: "双流区", + 510117: "郫都区", + 510121: "金堂县", + 510129: "大邑县", + 510131: "蒲江县", + 510132: "新津县", + 510181: "都江堰市", + 510182: "彭州市", + 510183: "邛崃市", + 510184: "崇州市", + 510185: "简阳市", + 510191: "高新区", + 510302: "自流井区", + 510303: "贡井区", + 510304: "大安区", + 510311: "沿滩区", + 510321: "荣县", + 510322: "富顺县", + 510402: "东区", + 510403: "西区", + 510411: "仁和区", + 510421: "米易县", + 510422: "盐边县", + 510502: "江阳区", + 510503: "纳溪区", + 510504: "龙马潭区", + 510521: "泸县", + 510522: "合江县", + 510524: "叙永县", + 510525: "古蔺县", + 510603: "旌阳区", + 510604: "罗江区", + 510623: "中江县", + 510681: "广汉市", + 510682: "什邡市", + 510683: "绵竹市", + 510703: "涪城区", + 510704: "游仙区", + 510705: "安州区", + 510722: "三台县", + 510723: "盐亭县", + 510725: "梓潼县", + 510726: "北川羌族自治县", + 510727: "平武县", + 510781: "江油市", + 510791: "高新区", + 510802: "利州区", + 510811: "昭化区", + 510812: "朝天区", + 510821: "旺苍县", + 510822: "青川县", + 510823: "剑阁县", + 510824: "苍溪县", + 510903: "船山区", + 510904: "安居区", + 510921: "蓬溪县", + 510923: "大英县", + 510981: "射洪市", + 511002: "市中区", + 511011: "东兴区", + 511024: "威远县", + 511025: "资中县", + 511083: "隆昌市", + 511102: "市中区", + 511111: "沙湾区", + 511112: "五通桥区", + 511113: "金口河区", + 511123: "犍为县", + 511124: "井研县", + 511126: "夹江县", + 511129: "沐川县", + 511132: "峨边彝族自治县", + 511133: "马边彝族自治县", + 511181: "峨眉山市", + 511302: "顺庆区", + 511303: "高坪区", + 511304: "嘉陵区", + 511321: "南部县", + 511322: "营山县", + 511323: "蓬安县", + 511324: "仪陇县", + 511325: "西充县", + 511381: "阆中市", + 511402: "东坡区", + 511403: "彭山区", + 511421: "仁寿县", + 511423: "洪雅县", + 511424: "丹棱县", + 511425: "青神县", + 511502: "翠屏区", + 511503: "南溪区", + 511504: "叙州区", + 511523: "江安县", + 511524: "长宁县", + 511525: "高县", + 511526: "珙县", + 511527: "筠连县", + 511528: "兴文县", + 511529: "屏山县", + 511602: "广安区", + 511603: "前锋区", + 511621: "岳池县", + 511622: "武胜县", + 511623: "邻水县", + 511681: "华蓥市", + 511702: "通川区", + 511703: "达川区", + 511722: "宣汉县", + 511723: "开江县", + 511724: "大竹县", + 511725: "渠县", + 511781: "万源市", + 511802: "雨城区", + 511803: "名山区", + 511822: "荥经县", + 511823: "汉源县", + 511824: "石棉县", + 511825: "天全县", + 511826: "芦山县", + 511827: "宝兴县", + 511902: "巴州区", + 511903: "恩阳区", + 511921: "通江县", + 511922: "南江县", + 511923: "平昌县", + 511971: "巴中经济开发区", + 512002: "雁江区", + 512021: "安岳县", + 512022: "乐至县", + 513201: "马尔康市", + 513221: "汶川县", + 513222: "理县", + 513223: "茂县", + 513224: "松潘县", + 513225: "九寨沟县", + 513226: "金川县", + 513227: "小金县", + 513228: "黑水县", + 513230: "壤塘县", + 513231: "阿坝县", + 513232: "若尔盖县", + 513233: "红原县", + 513301: "康定市", + 513322: "泸定县", + 513323: "丹巴县", + 513324: "九龙县", + 513325: "雅江县", + 513326: "道孚县", + 513327: "炉霍县", + 513328: "甘孜县", + 513329: "新龙县", + 513330: "德格县", + 513331: "白玉县", + 513332: "石渠县", + 513333: "色达县", + 513334: "理塘县", + 513335: "巴塘县", + 513336: "乡城县", + 513337: "稻城县", + 513338: "得荣县", + 513401: "西昌市", + 513422: "木里藏族自治县", + 513423: "盐源县", + 513424: "德昌县", + 513425: "会理县", + 513426: "会东县", + 513427: "宁南县", + 513428: "普格县", + 513429: "布拖县", + 513430: "金阳县", + 513431: "昭觉县", + 513432: "喜德县", + 513433: "冕宁县", + 513434: "越西县", + 513435: "甘洛县", + 513436: "美姑县", + 513437: "雷波县", + 520102: "南明区", + 520103: "云岩区", + 520111: "花溪区", + 520112: "乌当区", + 520113: "白云区", + 520115: "观山湖区", + 520121: "开阳县", + 520122: "息烽县", + 520123: "修文县", + 520181: "清镇市", + 520201: "钟山区", + 520203: "六枝特区", + 520221: "水城县", + 520281: "盘州市", + 520302: "红花岗区", + 520303: "汇川区", + 520304: "播州区", + 520322: "桐梓县", + 520323: "绥阳县", + 520324: "正安县", + 520325: "道真仡佬族苗族自治县", + 520326: "务川仡佬族苗族自治县", + 520327: "凤冈县", + 520328: "湄潭县", + 520329: "余庆县", + 520330: "习水县", + 520381: "赤水市", + 520382: "仁怀市", + 520402: "西秀区", + 520403: "平坝区", + 520422: "普定县", + 520423: "镇宁布依族苗族自治县", + 520424: "关岭布依族苗族自治县", + 520425: "紫云苗族布依族自治县", + 520502: "七星关区", + 520521: "大方县", + 520522: "黔西县", + 520523: "金沙县", + 520524: "织金县", + 520525: "纳雍县", + 520526: "威宁彝族回族苗族自治县", + 520527: "赫章县", + 520602: "碧江区", + 520603: "万山区", + 520621: "江口县", + 520622: "玉屏侗族自治县", + 520623: "石阡县", + 520624: "思南县", + 520625: "印江土家族苗族自治县", + 520626: "德江县", + 520627: "沿河土家族自治县", + 520628: "松桃苗族自治县", + 522301: "兴义市", + 522302: "兴仁市", + 522323: "普安县", + 522324: "晴隆县", + 522325: "贞丰县", + 522326: "望谟县", + 522327: "册亨县", + 522328: "安龙县", + 522601: "凯里市", + 522622: "黄平县", + 522623: "施秉县", + 522624: "三穗县", + 522625: "镇远县", + 522626: "岑巩县", + 522627: "天柱县", + 522628: "锦屏县", + 522629: "剑河县", + 522630: "台江县", + 522631: "黎平县", + 522632: "榕江县", + 522633: "从江县", + 522634: "雷山县", + 522635: "麻江县", + 522636: "丹寨县", + 522701: "都匀市", + 522702: "福泉市", + 522722: "荔波县", + 522723: "贵定县", + 522725: "瓮安县", + 522726: "独山县", + 522727: "平塘县", + 522728: "罗甸县", + 522729: "长顺县", + 522730: "龙里县", + 522731: "惠水县", + 522732: "三都水族自治县", + 530102: "五华区", + 530103: "盘龙区", + 530111: "官渡区", + 530112: "西山区", + 530113: "东川区", + 530114: "呈贡区", + 530115: "晋宁区", + 530124: "富民县", + 530125: "宜良县", + 530126: "石林彝族自治县", + 530127: "嵩明县", + 530128: "禄劝彝族苗族自治县", + 530129: "寻甸回族彝族自治县", + 530181: "安宁市", + 530302: "麒麟区", + 530303: "沾益区", + 530304: "马龙区", + 530322: "陆良县", + 530323: "师宗县", + 530324: "罗平县", + 530325: "富源县", + 530326: "会泽县", + 530381: "宣威市", + 530402: "红塔区", + 530403: "江川区", + 530423: "通海县", + 530424: "华宁县", + 530425: "易门县", + 530426: "峨山彝族自治县", + 530427: "新平彝族傣族自治县", + 530428: "元江哈尼族彝族傣族自治县", + 530481: "澄江市", + 530502: "隆阳区", + 530521: "施甸县", + 530523: "龙陵县", + 530524: "昌宁县", + 530581: "腾冲市", + 530602: "昭阳区", + 530621: "鲁甸县", + 530622: "巧家县", + 530623: "盐津县", + 530624: "大关县", + 530625: "永善县", + 530626: "绥江县", + 530627: "镇雄县", + 530628: "彝良县", + 530629: "威信县", + 530681: "水富市", + 530702: "古城区", + 530721: "玉龙纳西族自治县", + 530722: "永胜县", + 530723: "华坪县", + 530724: "宁蒗彝族自治县", + 530802: "思茅区", + 530821: "宁洱哈尼族彝族自治县", + 530822: "墨江哈尼族自治县", + 530823: "景东彝族自治县", + 530824: "景谷傣族彝族自治县", + 530825: "镇沅彝族哈尼族拉祜族自治县", + 530826: "江城哈尼族彝族自治县", + 530827: "孟连傣族拉祜族佤族自治县", + 530828: "澜沧拉祜族自治县", + 530829: "西盟佤族自治县", + 530902: "临翔区", + 530921: "凤庆县", + 530922: "云县", + 530923: "永德县", + 530924: "镇康县", + 530925: "双江拉祜族佤族布朗族傣族自治县", + 530926: "耿马傣族佤族自治县", + 530927: "沧源佤族自治县", + 532301: "楚雄市", + 532322: "双柏县", + 532323: "牟定县", + 532324: "南华县", + 532325: "姚安县", + 532326: "大姚县", + 532327: "永仁县", + 532328: "元谋县", + 532329: "武定县", + 532331: "禄丰县", + 532501: "个旧市", + 532502: "开远市", + 532503: "蒙自市", + 532504: "弥勒市", + 532523: "屏边苗族自治县", + 532524: "建水县", + 532525: "石屏县", + 532527: "泸西县", + 532528: "元阳县", + 532529: "红河县", + 532530: "金平苗族瑶族傣族自治县", + 532531: "绿春县", + 532532: "河口瑶族自治县", + 532601: "文山市", + 532622: "砚山县", + 532623: "西畴县", + 532624: "麻栗坡县", + 532625: "马关县", + 532626: "丘北县", + 532627: "广南县", + 532628: "富宁县", + 532801: "景洪市", + 532822: "勐海县", + 532823: "勐腊县", + 532901: "大理市", + 532922: "漾濞彝族自治县", + 532923: "祥云县", + 532924: "宾川县", + 532925: "弥渡县", + 532926: "南涧彝族自治县", + 532927: "巍山彝族回族自治县", + 532928: "永平县", + 532929: "云龙县", + 532930: "洱源县", + 532931: "剑川县", + 532932: "鹤庆县", + 533102: "瑞丽市", + 533103: "芒市", + 533122: "梁河县", + 533123: "盈江县", + 533124: "陇川县", + 533301: "泸水市", + 533323: "福贡县", + 533324: "贡山独龙族怒族自治县", + 533325: "兰坪白族普米族自治县", + 533401: "香格里拉市", + 533422: "德钦县", + 533423: "维西傈僳族自治县", + 540102: "城关区", + 540103: "堆龙德庆区", + 540104: "达孜区", + 540121: "林周县", + 540122: "当雄县", + 540123: "尼木县", + 540124: "曲水县", + 540127: "墨竹工卡县", + 540202: "桑珠孜区", + 540221: "南木林县", + 540222: "江孜县", + 540223: "定日县", + 540224: "萨迦县", + 540225: "拉孜县", + 540226: "昂仁县", + 540227: "谢通门县", + 540228: "白朗县", + 540229: "仁布县", + 540230: "康马县", + 540231: "定结县", + 540232: "仲巴县", + 540233: "亚东县", + 540234: "吉隆县", + 540235: "聂拉木县", + 540236: "萨嘎县", + 540237: "岗巴县", + 540302: "卡若区", + 540321: "江达县", + 540322: "贡觉县", + 540323: "类乌齐县", + 540324: "丁青县", + 540325: "察雅县", + 540326: "八宿县", + 540327: "左贡县", + 540328: "芒康县", + 540329: "洛隆县", + 540330: "边坝县", + 540402: "巴宜区", + 540421: "工布江达县", + 540422: "米林县", + 540423: "墨脱县", + 540424: "波密县", + 540425: "察隅县", + 540426: "朗县", + 540502: "乃东区", + 540521: "扎囊县", + 540522: "贡嘎县", + 540523: "桑日县", + 540524: "琼结县", + 540525: "曲松县", + 540526: "措美县", + 540527: "洛扎县", + 540528: "加查县", + 540529: "隆子县", + 540530: "错那县", + 540531: "浪卡子县", + 540602: "色尼区", + 540621: "嘉黎县", + 540622: "比如县", + 540623: "聂荣县", + 540624: "安多县", + 540625: "申扎县", + 540626: "索县", + 540627: "班戈县", + 540628: "巴青县", + 540629: "尼玛县", + 540630: "双湖县", + 542521: "普兰县", + 542522: "札达县", + 542523: "噶尔县", + 542524: "日土县", + 542525: "革吉县", + 542526: "改则县", + 542527: "措勤县", + 610102: "新城区", + 610103: "碑林区", + 610104: "莲湖区", + 610111: "灞桥区", + 610112: "未央区", + 610113: "雁塔区", + 610114: "阎良区", + 610115: "临潼区", + 610116: "长安区", + 610117: "高陵区", + 610118: "鄠邑区", + 610122: "蓝田县", + 610124: "周至县", + 610202: "王益区", + 610203: "印台区", + 610204: "耀州区", + 610222: "宜君县", + 610302: "渭滨区", + 610303: "金台区", + 610304: "陈仓区", + 610322: "凤翔县", + 610323: "岐山县", + 610324: "扶风县", + 610326: "眉县", + 610327: "陇县", + 610328: "千阳县", + 610329: "麟游县", + 610330: "凤县", + 610331: "太白县", + 610402: "秦都区", + 610403: "杨陵区", + 610404: "渭城区", + 610422: "三原县", + 610423: "泾阳县", + 610424: "乾县", + 610425: "礼泉县", + 610426: "永寿县", + 610428: "长武县", + 610429: "旬邑县", + 610430: "淳化县", + 610431: "武功县", + 610481: "兴平市", + 610482: "彬州市", + 610502: "临渭区", + 610503: "华州区", + 610522: "潼关县", + 610523: "大荔县", + 610524: "合阳县", + 610525: "澄城县", + 610526: "蒲城县", + 610527: "白水县", + 610528: "富平县", + 610581: "韩城市", + 610582: "华阴市", + 610602: "宝塔区", + 610603: "安塞区", + 610621: "延长县", + 610622: "延川县", + 610625: "志丹县", + 610626: "吴起县", + 610627: "甘泉县", + 610628: "富县", + 610629: "洛川县", + 610630: "宜川县", + 610631: "黄龙县", + 610632: "黄陵县", + 610681: "子长市", + 610702: "汉台区", + 610703: "南郑区", + 610722: "城固县", + 610723: "洋县", + 610724: "西乡县", + 610725: "勉县", + 610726: "宁强县", + 610727: "略阳县", + 610728: "镇巴县", + 610729: "留坝县", + 610730: "佛坪县", + 610802: "榆阳区", + 610803: "横山区", + 610822: "府谷县", + 610824: "靖边县", + 610825: "定边县", + 610826: "绥德县", + 610827: "米脂县", + 610828: "佳县", + 610829: "吴堡县", + 610830: "清涧县", + 610831: "子洲县", + 610881: "神木市", + 610902: "汉滨区", + 610921: "汉阴县", + 610922: "石泉县", + 610923: "宁陕县", + 610924: "紫阳县", + 610925: "岚皋县", + 610926: "平利县", + 610927: "镇坪县", + 610928: "旬阳县", + 610929: "白河县", + 611002: "商州区", + 611021: "洛南县", + 611022: "丹凤县", + 611023: "商南县", + 611024: "山阳县", + 611025: "镇安县", + 611026: "柞水县", + 620102: "城关区", + 620103: "七里河区", + 620104: "西固区", + 620105: "安宁区", + 620111: "红古区", + 620121: "永登县", + 620122: "皋兰县", + 620123: "榆中县", + 620171: "兰州新区", + 620201: "市辖区", + 620290: "雄关区", + 620291: "长城区", + 620292: "镜铁区", + 620293: "新城镇", + 620294: "峪泉镇", + 620295: "文殊镇", + 620302: "金川区", + 620321: "永昌县", + 620402: "白银区", + 620403: "平川区", + 620421: "靖远县", + 620422: "会宁县", + 620423: "景泰县", + 620502: "秦州区", + 620503: "麦积区", + 620521: "清水县", + 620522: "秦安县", + 620523: "甘谷县", + 620524: "武山县", + 620525: "张家川回族自治县", + 620602: "凉州区", + 620621: "民勤县", + 620622: "古浪县", + 620623: "天祝藏族自治县", + 620702: "甘州区", + 620721: "肃南裕固族自治县", + 620722: "民乐县", + 620723: "临泽县", + 620724: "高台县", + 620725: "山丹县", + 620802: "崆峒区", + 620821: "泾川县", + 620822: "灵台县", + 620823: "崇信县", + 620825: "庄浪县", + 620826: "静宁县", + 620881: "华亭市", + 620902: "肃州区", + 620921: "金塔县", + 620922: "瓜州县", + 620923: "肃北蒙古族自治县", + 620924: "阿克塞哈萨克族自治县", + 620981: "玉门市", + 620982: "敦煌市", + 621002: "西峰区", + 621021: "庆城县", + 621022: "环县", + 621023: "华池县", + 621024: "合水县", + 621025: "正宁县", + 621026: "宁县", + 621027: "镇原县", + 621102: "安定区", + 621121: "通渭县", + 621122: "陇西县", + 621123: "渭源县", + 621124: "临洮县", + 621125: "漳县", + 621126: "岷县", + 621202: "武都区", + 621221: "成县", + 621222: "文县", + 621223: "宕昌县", + 621224: "康县", + 621225: "西和县", + 621226: "礼县", + 621227: "徽县", + 621228: "两当县", + 622901: "临夏市", + 622921: "临夏县", + 622922: "康乐县", + 622923: "永靖县", + 622924: "广河县", + 622925: "和政县", + 622926: "东乡族自治县", + 622927: "积石山保安族东乡族撒拉族自治县", + 623001: "合作市", + 623021: "临潭县", + 623022: "卓尼县", + 623023: "舟曲县", + 623024: "迭部县", + 623025: "玛曲县", + 623026: "碌曲县", + 623027: "夏河县", + 630102: "城东区", + 630103: "城中区", + 630104: "城西区", + 630105: "城北区", + 630106: "湟中区", + 630121: "大通回族土族自治县", + 630123: "湟源县", + 630202: "乐都区", + 630203: "平安区", + 630222: "民和回族土族自治县", + 630223: "互助土族自治县", + 630224: "化隆回族自治县", + 630225: "循化撒拉族自治县", + 632221: "门源回族自治县", + 632222: "祁连县", + 632223: "海晏县", + 632224: "刚察县", + 632321: "同仁县", + 632322: "尖扎县", + 632323: "泽库县", + 632324: "河南蒙古族自治县", + 632521: "共和县", + 632522: "同德县", + 632523: "贵德县", + 632524: "兴海县", + 632525: "贵南县", + 632621: "玛沁县", + 632622: "班玛县", + 632623: "甘德县", + 632624: "达日县", + 632625: "久治县", + 632626: "玛多县", + 632701: "玉树市", + 632722: "杂多县", + 632723: "称多县", + 632724: "治多县", + 632725: "囊谦县", + 632726: "曲麻莱县", + 632801: "格尔木市", + 632802: "德令哈市", + 632803: "茫崖市", + 632821: "乌兰县", + 632822: "都兰县", + 632823: "天峻县", + 632857: "大柴旦行政委员会", + 640104: "兴庆区", + 640105: "西夏区", + 640106: "金凤区", + 640121: "永宁县", + 640122: "贺兰县", + 640181: "灵武市", + 640202: "大武口区", + 640205: "惠农区", + 640221: "平罗县", + 640302: "利通区", + 640303: "红寺堡区", + 640323: "盐池县", + 640324: "同心县", + 640381: "青铜峡市", + 640402: "原州区", + 640422: "西吉县", + 640423: "隆德县", + 640424: "泾源县", + 640425: "彭阳县", + 640502: "沙坡头区", + 640521: "中宁县", + 640522: "海原县", + 650102: "天山区", + 650103: "沙依巴克区", + 650104: "新市区", + 650105: "水磨沟区", + 650106: "头屯河区", + 650107: "达坂城区", + 650109: "米东区", + 650121: "乌鲁木齐县", + 650202: "独山子区", + 650203: "克拉玛依区", + 650204: "白碱滩区", + 650205: "乌尔禾区", + 650402: "高昌区", + 650421: "鄯善县", + 650422: "托克逊县", + 650502: "伊州区", + 650521: "巴里坤哈萨克自治县", + 650522: "伊吾县", + 652301: "昌吉市", + 652302: "阜康市", + 652323: "呼图壁县", + 652324: "玛纳斯县", + 652325: "奇台县", + 652327: "吉木萨尔县", + 652328: "木垒哈萨克自治县", + 652701: "博乐市", + 652702: "阿拉山口市", + 652722: "精河县", + 652723: "温泉县", + 652801: "库尔勒市", + 652822: "轮台县", + 652823: "尉犁县", + 652824: "若羌县", + 652825: "且末县", + 652826: "焉耆回族自治县", + 652827: "和静县", + 652828: "和硕县", + 652829: "博湖县", + 652901: "阿克苏市", + 652902: "库车市", + 652922: "温宿县", + 652924: "沙雅县", + 652925: "新和县", + 652926: "拜城县", + 652927: "乌什县", + 652928: "阿瓦提县", + 652929: "柯坪县", + 653001: "阿图什市", + 653022: "阿克陶县", + 653023: "阿合奇县", + 653024: "乌恰县", + 653101: "喀什市", + 653121: "疏附县", + 653122: "疏勒县", + 653123: "英吉沙县", + 653124: "泽普县", + 653125: "莎车县", + 653126: "叶城县", + 653127: "麦盖提县", + 653128: "岳普湖县", + 653129: "伽师县", + 653130: "巴楚县", + 653131: "塔什库尔干塔吉克自治县", + 653201: "和田市", + 653221: "和田县", + 653222: "墨玉县", + 653223: "皮山县", + 653224: "洛浦县", + 653225: "策勒县", + 653226: "于田县", + 653227: "民丰县", + 654002: "伊宁市", + 654003: "奎屯市", + 654004: "霍尔果斯市", + 654021: "伊宁县", + 654022: "察布查尔锡伯自治县", + 654023: "霍城县", + 654024: "巩留县", + 654025: "新源县", + 654026: "昭苏县", + 654027: "特克斯县", + 654028: "尼勒克县", + 654201: "塔城市", + 654202: "乌苏市", + 654221: "额敏县", + 654223: "沙湾县", + 654224: "托里县", + 654225: "裕民县", + 654226: "和布克赛尔蒙古自治县", + 654301: "阿勒泰市", + 654321: "布尔津县", + 654322: "富蕴县", + 654323: "福海县", + 654324: "哈巴河县", + 654325: "青河县", + 654326: "吉木乃县", + 659001: "石河子市", + 659002: "阿拉尔市", + 659003: "图木舒克市", + 659004: "五家渠市", + 659005: "北屯市", + 659006: "铁门关市", + 659007: "双河市", + 659008: "可克达拉市", + 659009: "昆玉市", + 659010: "胡杨河市", + 710101: "中正区", + 710102: "大同区", + 710103: "中山区", + 710104: "松山区", + 710105: "大安区", + 710106: "万华区", + 710107: "信义区", + 710108: "士林区", + 710109: "北投区", + 710110: "内湖区", + 710111: "南港区", + 710112: "文山区", + 710199: "其它区", + 710201: "新兴区", + 710202: "前金区", + 710203: "芩雅区", + 710204: "盐埕区", + 710205: "鼓山区", + 710206: "旗津区", + 710207: "前镇区", + 710208: "三民区", + 710209: "左营区", + 710210: "楠梓区", + 710211: "小港区", + 710241: "苓雅区", + 710242: "仁武区", + 710243: "大社区", + 710244: "冈山区", + 710245: "路竹区", + 710246: "阿莲区", + 710247: "田寮区", + 710248: "燕巢区", + 710249: "桥头区", + 710250: "梓官区", + 710251: "弥陀区", + 710252: "永安区", + 710253: "湖内区", + 710254: "凤山区", + 710255: "大寮区", + 710256: "林园区", + 710257: "鸟松区", + 710258: "大树区", + 710259: "旗山区", + 710260: "美浓区", + 710261: "六龟区", + 710262: "内门区", + 710263: "杉林区", + 710264: "甲仙区", + 710265: "桃源区", + 710266: "那玛夏区", + 710267: "茂林区", + 710268: "茄萣区", + 710299: "其它区", + 710301: "中西区", + 710302: "东区", + 710303: "南区", + 710304: "北区", + 710305: "安平区", + 710306: "安南区", + 710339: "永康区", + 710340: "归仁区", + 710341: "新化区", + 710342: "左镇区", + 710343: "玉井区", + 710344: "楠西区", + 710345: "南化区", + 710346: "仁德区", + 710347: "关庙区", + 710348: "龙崎区", + 710349: "官田区", + 710350: "麻豆区", + 710351: "佳里区", + 710352: "西港区", + 710353: "七股区", + 710354: "将军区", + 710355: "学甲区", + 710356: "北门区", + 710357: "新营区", + 710358: "后壁区", + 710359: "白河区", + 710360: "东山区", + 710361: "六甲区", + 710362: "下营区", + 710363: "柳营区", + 710364: "盐水区", + 710365: "善化区", + 710366: "大内区", + 710367: "山上区", + 710368: "新市区", + 710369: "安定区", + 710399: "其它区", + 710401: "中区", + 710402: "东区", + 710403: "南区", + 710404: "西区", + 710405: "北区", + 710406: "北屯区", + 710407: "西屯区", + 710408: "南屯区", + 710431: "太平区", + 710432: "大里区", + 710433: "雾峰区", + 710434: "乌日区", + 710435: "丰原区", + 710436: "后里区", + 710437: "石冈区", + 710438: "东势区", + 710439: "和平区", + 710440: "新社区", + 710441: "潭子区", + 710442: "大雅区", + 710443: "神冈区", + 710444: "大肚区", + 710445: "沙鹿区", + 710446: "龙井区", + 710447: "梧栖区", + 710448: "清水区", + 710449: "大甲区", + 710450: "外埔区", + 710451: "大安区", + 710499: "其它区", + 710507: "金沙镇", + 710508: "金湖镇", + 710509: "金宁乡", + 710510: "金城镇", + 710511: "烈屿乡", + 710512: "乌坵乡", + 710614: "南投市", + 710615: "中寮乡", + 710616: "草屯镇", + 710617: "国姓乡", + 710618: "埔里镇", + 710619: "仁爱乡", + 710620: "名间乡", + 710621: "集集镇", + 710622: "水里乡", + 710623: "鱼池乡", + 710624: "信义乡", + 710625: "竹山镇", + 710626: "鹿谷乡", + 710701: "仁爱区", + 710702: "信义区", + 710703: "中正区", + 710704: "中山区", + 710705: "安乐区", + 710706: "暖暖区", + 710707: "七堵区", + 710799: "其它区", + 710801: "东区", + 710802: "北区", + 710803: "香山区", + 710899: "其它区", + 710901: "东区", + 710902: "西区", + 710999: "其它区", + 711130: "万里区", + 711132: "板桥区", + 711133: "汐止区", + 711134: "深坑区", + 711135: "石碇区", + 711136: "瑞芳区", + 711137: "平溪区", + 711138: "双溪区", + 711139: "贡寮区", + 711140: "新店区", + 711141: "坪林区", + 711142: "乌来区", + 711143: "永和区", + 711144: "中和区", + 711145: "土城区", + 711146: "三峡区", + 711147: "树林区", + 711148: "莺歌区", + 711149: "三重区", + 711150: "新庄区", + 711151: "泰山区", + 711152: "林口区", + 711153: "芦洲区", + 711154: "五股区", + 711155: "八里区", + 711156: "淡水区", + 711157: "三芝区", + 711158: "石门区", + 711287: "宜兰市", + 711288: "头城镇", + 711289: "礁溪乡", + 711290: "壮围乡", + 711291: "员山乡", + 711292: "罗东镇", + 711293: "三星乡", + 711294: "大同乡", + 711295: "五结乡", + 711296: "冬山乡", + 711297: "苏澳镇", + 711298: "南澳乡", + 711299: "钓鱼台", + 711387: "竹北市", + 711388: "湖口乡", + 711389: "新丰乡", + 711390: "新埔镇", + 711391: "关西镇", + 711392: "芎林乡", + 711393: "宝山乡", + 711394: "竹东镇", + 711395: "五峰乡", + 711396: "横山乡", + 711397: "尖石乡", + 711398: "北埔乡", + 711399: "峨眉乡", + 711414: "中坜区", + 711415: "平镇区", + 711417: "杨梅区", + 711418: "新屋区", + 711419: "观音区", + 711420: "桃园区", + 711421: "龟山区", + 711422: "八德区", + 711423: "大溪区", + 711425: "大园区", + 711426: "芦竹区", + 711487: "中坜市", + 711488: "平镇市", + 711489: "龙潭乡", + 711490: "杨梅市", + 711491: "新屋乡", + 711492: "观音乡", + 711493: "桃园市", + 711494: "龟山乡", + 711495: "八德市", + 711496: "大溪镇", + 711497: "复兴乡", + 711498: "大园乡", + 711499: "芦竹乡", + 711520: "头份市", + 711582: "竹南镇", + 711583: "头份镇", + 711584: "三湾乡", + 711585: "南庄乡", + 711586: "狮潭乡", + 711587: "后龙镇", + 711588: "通霄镇", + 711589: "苑里镇", + 711590: "苗栗市", + 711591: "造桥乡", + 711592: "头屋乡", + 711593: "公馆乡", + 711594: "大湖乡", + 711595: "泰安乡", + 711596: "铜锣乡", + 711597: "三义乡", + 711598: "西湖乡", + 711599: "卓兰镇", + 711736: "员林市", + 711774: "彰化市", + 711775: "芬园乡", + 711776: "花坛乡", + 711777: "秀水乡", + 711778: "鹿港镇", + 711779: "福兴乡", + 711780: "线西乡", + 711781: "和美镇", + 711782: "伸港乡", + 711783: "员林镇", + 711784: "社头乡", + 711785: "永靖乡", + 711786: "埔心乡", + 711787: "溪湖镇", + 711788: "大村乡", + 711789: "埔盐乡", + 711790: "田中镇", + 711791: "北斗镇", + 711792: "田尾乡", + 711793: "埤头乡", + 711794: "溪州乡", + 711795: "竹塘乡", + 711796: "二林镇", + 711797: "大城乡", + 711798: "芳苑乡", + 711799: "二水乡", + 711982: "番路乡", + 711983: "梅山乡", + 711984: "竹崎乡", + 711985: "阿里山乡", + 711986: "中埔乡", + 711987: "大埔乡", + 711988: "水上乡", + 711989: "鹿草乡", + 711990: "太保市", + 711991: "朴子市", + 711992: "东石乡", + 711993: "六脚乡", + 711994: "新港乡", + 711995: "民雄乡", + 711996: "大林镇", + 711997: "溪口乡", + 711998: "义竹乡", + 711999: "布袋镇", + 712180: "斗南镇", + 712181: "大埤乡", + 712182: "虎尾镇", + 712183: "土库镇", + 712184: "褒忠乡", + 712185: "东势乡", + 712186: "台西乡", + 712187: "仑背乡", + 712188: "麦寮乡", + 712189: "斗六市", + 712190: "林内乡", + 712191: "古坑乡", + 712192: "莿桐乡", + 712193: "西螺镇", + 712194: "二仑乡", + 712195: "北港镇", + 712196: "水林乡", + 712197: "口湖乡", + 712198: "四湖乡", + 712199: "元长乡", + 712451: "崁顶乡", + 712467: "屏东市", + 712468: "三地门乡", + 712469: "雾台乡", + 712470: "玛家乡", + 712471: "九如乡", + 712472: "里港乡", + 712473: "高树乡", + 712474: "盐埔乡", + 712475: "长治乡", + 712476: "麟洛乡", + 712477: "竹田乡", + 712478: "内埔乡", + 712479: "万丹乡", + 712480: "潮州镇", + 712481: "泰武乡", + 712482: "来义乡", + 712483: "万峦乡", + 712484: "莰顶乡", + 712485: "新埤乡", + 712486: "南州乡", + 712487: "林边乡", + 712488: "东港镇", + 712489: "琉球乡", + 712490: "佳冬乡", + 712491: "新园乡", + 712492: "枋寮乡", + 712493: "枋山乡", + 712494: "春日乡", + 712495: "狮子乡", + 712496: "车城乡", + 712497: "牡丹乡", + 712498: "恒春镇", + 712499: "满州乡", + 712584: "台东市", + 712585: "绿岛乡", + 712586: "兰屿乡", + 712587: "延平乡", + 712588: "卑南乡", + 712589: "鹿野乡", + 712590: "关山镇", + 712591: "海端乡", + 712592: "池上乡", + 712593: "东河乡", + 712594: "成功镇", + 712595: "长滨乡", + 712596: "金峰乡", + 712597: "大武乡", + 712598: "达仁乡", + 712599: "太麻里乡", + 712686: "花莲市", + 712687: "新城乡", + 712688: "太鲁阁", + 712689: "秀林乡", + 712690: "吉安乡", + 712691: "寿丰乡", + 712692: "凤林镇", + 712693: "光复乡", + 712694: "丰滨乡", + 712695: "瑞穗乡", + 712696: "万荣乡", + 712697: "玉里镇", + 712698: "卓溪乡", + 712699: "富里乡", + 712794: "马公市", + 712795: "西屿乡", + 712796: "望安乡", + 712797: "七美乡", + 712798: "白沙乡", + 712799: "湖西乡", + 712896: "南竿乡", + 712897: "北竿乡", + 712898: "东引乡", + 712899: "莒光乡", + 810101: "中西区", + 810102: "湾仔区", + 810103: "东区", + 810104: "南区", + 810201: "九龙城区", + 810202: "油尖旺区", + 810203: "深水埗区", + 810204: "黄大仙区", + 810205: "观塘区", + 810301: "北区", + 810302: "大埔区", + 810303: "沙田区", + 810304: "西贡区", + 810305: "元朗区", + 810306: "屯门区", + 810307: "荃湾区", + 810308: "葵青区", + 810309: "离岛区", + 820102: "花地玛堂区", + 820103: "花王堂区", + 820104: "望德堂区", + 820105: "大堂区", + 820106: "风顺堂区", + 820202: "嘉模堂区", + 820203: "路氹填海区", + 820204: "圣方济各堂区" + } +}; +var makeOption = (text, value, children) => ({ + text, + value, + children +}); +function useCascaderAreaData() { + const { + city_list: city, + county_list: county, + province_list: province + } = areaList; + const provinceMap = /* @__PURE__ */ new Map(); + Object.keys(province).forEach((code) => { + provinceMap.set(code.slice(0, 2), makeOption(province[code], code, [])); + }); + const cityMap = /* @__PURE__ */ new Map(); + Object.keys(city).forEach((code) => { + const option = makeOption(city[code], code, []); + cityMap.set(code.slice(0, 4), option); + const province2 = provinceMap.get(code.slice(0, 2)); + if (province2) { + province2.children.push(option); + } + }); + Object.keys(county).forEach((code) => { + const city2 = cityMap.get(code.slice(0, 4)); + if (city2) { + city2.children.push(makeOption(county[code], code)); + } + }); + return Array.from(provinceMap.values()); +} + +}, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); }) +return __REQUIRE__(1723527229112); +})() +//miniprogram-npm-outsideDeps=[] +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/miniprogram_npm/@vant/area-data/index.js.map b/miniprogram_npm/@vant/area-data/index.js.map new file mode 100644 index 0000000..42f33b8 --- /dev/null +++ b/miniprogram_npm/@vant/area-data/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.cjs.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n areaList: () => areaList,\n useCascaderAreaData: () => useCascaderAreaData\n});\nmodule.exports = __toCommonJS(src_exports);\nvar areaList = {\n province_list: {\n 11e4: \"北京市\",\n 12e4: \"天津市\",\n 13e4: \"河北省\",\n 14e4: \"山西省\",\n 15e4: \"内蒙古自治区\",\n 21e4: \"辽宁省\",\n 22e4: \"吉林省\",\n 23e4: \"黑龙江省\",\n 31e4: \"上海市\",\n 32e4: \"江苏省\",\n 33e4: \"浙江省\",\n 34e4: \"安徽省\",\n 35e4: \"福建省\",\n 36e4: \"江西省\",\n 37e4: \"山东省\",\n 41e4: \"河南省\",\n 42e4: \"湖北省\",\n 43e4: \"湖南省\",\n 44e4: \"广东省\",\n 45e4: \"广西壮族自治区\",\n 46e4: \"海南省\",\n 5e5: \"重庆市\",\n 51e4: \"四川省\",\n 52e4: \"贵州省\",\n 53e4: \"云南省\",\n 54e4: \"西藏自治区\",\n 61e4: \"陕西省\",\n 62e4: \"甘肃省\",\n 63e4: \"青海省\",\n 64e4: \"宁夏回族自治区\",\n 65e4: \"新疆维吾尔自治区\",\n 71e4: \"台湾省\",\n 81e4: \"香港特别行政区\",\n 82e4: \"澳门特别行政区\"\n },\n city_list: {\n 110100: \"北京市\",\n 120100: \"天津市\",\n 130100: \"石家庄市\",\n 130200: \"唐山市\",\n 130300: \"秦皇岛市\",\n 130400: \"邯郸市\",\n 130500: \"邢台市\",\n 130600: \"保定市\",\n 130700: \"张家口市\",\n 130800: \"承德市\",\n 130900: \"沧州市\",\n 131e3: \"廊坊市\",\n 131100: \"衡水市\",\n 140100: \"太原市\",\n 140200: \"大同市\",\n 140300: \"阳泉市\",\n 140400: \"长治市\",\n 140500: \"晋城市\",\n 140600: \"朔州市\",\n 140700: \"晋中市\",\n 140800: \"运城市\",\n 140900: \"忻州市\",\n 141e3: \"临汾市\",\n 141100: \"吕梁市\",\n 150100: \"呼和浩特市\",\n 150200: \"包头市\",\n 150300: \"乌海市\",\n 150400: \"赤峰市\",\n 150500: \"通辽市\",\n 150600: \"鄂尔多斯市\",\n 150700: \"呼伦贝尔市\",\n 150800: \"巴彦淖尔市\",\n 150900: \"乌兰察布市\",\n 152200: \"兴安盟\",\n 152500: \"锡林郭勒盟\",\n 152900: \"阿拉善盟\",\n 210100: \"沈阳市\",\n 210200: \"大连市\",\n 210300: \"鞍山市\",\n 210400: \"抚顺市\",\n 210500: \"本溪市\",\n 210600: \"丹东市\",\n 210700: \"锦州市\",\n 210800: \"营口市\",\n 210900: \"阜新市\",\n 211e3: \"辽阳市\",\n 211100: \"盘锦市\",\n 211200: \"铁岭市\",\n 211300: \"朝阳市\",\n 211400: \"葫芦岛市\",\n 220100: \"长春市\",\n 220200: \"吉林市\",\n 220300: \"四平市\",\n 220400: \"辽源市\",\n 220500: \"通化市\",\n 220600: \"白山市\",\n 220700: \"松原市\",\n 220800: \"白城市\",\n 222400: \"延边朝鲜族自治州\",\n 230100: \"哈尔滨市\",\n 230200: \"齐齐哈尔市\",\n 230300: \"鸡西市\",\n 230400: \"鹤岗市\",\n 230500: \"双鸭山市\",\n 230600: \"大庆市\",\n 230700: \"伊春市\",\n 230800: \"佳木斯市\",\n 230900: \"七台河市\",\n 231e3: \"牡丹江市\",\n 231100: \"黑河市\",\n 231200: \"绥化市\",\n 232700: \"大兴安岭地区\",\n 310100: \"上海市\",\n 320100: \"南京市\",\n 320200: \"无锡市\",\n 320300: \"徐州市\",\n 320400: \"常州市\",\n 320500: \"苏州市\",\n 320600: \"南通市\",\n 320700: \"连云港市\",\n 320800: \"淮安市\",\n 320900: \"盐城市\",\n 321e3: \"扬州市\",\n 321100: \"镇江市\",\n 321200: \"泰州市\",\n 321300: \"宿迁市\",\n 330100: \"杭州市\",\n 330200: \"宁波市\",\n 330300: \"温州市\",\n 330400: \"嘉兴市\",\n 330500: \"湖州市\",\n 330600: \"绍兴市\",\n 330700: \"金华市\",\n 330800: \"衢州市\",\n 330900: \"舟山市\",\n 331e3: \"台州市\",\n 331100: \"丽水市\",\n 340100: \"合肥市\",\n 340200: \"芜湖市\",\n 340300: \"蚌埠市\",\n 340400: \"淮南市\",\n 340500: \"马鞍山市\",\n 340600: \"淮北市\",\n 340700: \"铜陵市\",\n 340800: \"安庆市\",\n 341e3: \"黄山市\",\n 341100: \"滁州市\",\n 341200: \"阜阳市\",\n 341300: \"宿州市\",\n 341500: \"六安市\",\n 341600: \"亳州市\",\n 341700: \"池州市\",\n 341800: \"宣城市\",\n 350100: \"福州市\",\n 350200: \"厦门市\",\n 350300: \"莆田市\",\n 350400: \"三明市\",\n 350500: \"泉州市\",\n 350600: \"漳州市\",\n 350700: \"南平市\",\n 350800: \"龙岩市\",\n 350900: \"宁德市\",\n 360100: \"南昌市\",\n 360200: \"景德镇市\",\n 360300: \"萍乡市\",\n 360400: \"九江市\",\n 360500: \"新余市\",\n 360600: \"鹰潭市\",\n 360700: \"赣州市\",\n 360800: \"吉安市\",\n 360900: \"宜春市\",\n 361e3: \"抚州市\",\n 361100: \"上饶市\",\n 370100: \"济南市\",\n 370200: \"青岛市\",\n 370300: \"淄博市\",\n 370400: \"枣庄市\",\n 370500: \"东营市\",\n 370600: \"烟台市\",\n 370700: \"潍坊市\",\n 370800: \"济宁市\",\n 370900: \"泰安市\",\n 371e3: \"威海市\",\n 371100: \"日照市\",\n 371300: \"临沂市\",\n 371400: \"德州市\",\n 371500: \"聊城市\",\n 371600: \"滨州市\",\n 371700: \"菏泽市\",\n 410100: \"郑州市\",\n 410200: \"开封市\",\n 410300: \"洛阳市\",\n 410400: \"平顶山市\",\n 410500: \"安阳市\",\n 410600: \"鹤壁市\",\n 410700: \"新乡市\",\n 410800: \"焦作市\",\n 410900: \"濮阳市\",\n 411e3: \"许昌市\",\n 411100: \"漯河市\",\n 411200: \"三门峡市\",\n 411300: \"南阳市\",\n 411400: \"商丘市\",\n 411500: \"信阳市\",\n 411600: \"周口市\",\n 411700: \"驻马店市\",\n 419e3: \"省直辖县\",\n 420100: \"武汉市\",\n 420200: \"黄石市\",\n 420300: \"十堰市\",\n 420500: \"宜昌市\",\n 420600: \"襄阳市\",\n 420700: \"鄂州市\",\n 420800: \"荆门市\",\n 420900: \"孝感市\",\n 421e3: \"荆州市\",\n 421100: \"黄冈市\",\n 421200: \"咸宁市\",\n 421300: \"随州市\",\n 422800: \"恩施土家族苗族自治州\",\n 429e3: \"省直辖县\",\n 430100: \"长沙市\",\n 430200: \"株洲市\",\n 430300: \"湘潭市\",\n 430400: \"衡阳市\",\n 430500: \"邵阳市\",\n 430600: \"岳阳市\",\n 430700: \"常德市\",\n 430800: \"张家界市\",\n 430900: \"益阳市\",\n 431e3: \"郴州市\",\n 431100: \"永州市\",\n 431200: \"怀化市\",\n 431300: \"娄底市\",\n 433100: \"湘西土家族苗族自治州\",\n 440100: \"广州市\",\n 440200: \"韶关市\",\n 440300: \"深圳市\",\n 440400: \"珠海市\",\n 440500: \"汕头市\",\n 440600: \"佛山市\",\n 440700: \"江门市\",\n 440800: \"湛江市\",\n 440900: \"茂名市\",\n 441200: \"肇庆市\",\n 441300: \"惠州市\",\n 441400: \"梅州市\",\n 441500: \"汕尾市\",\n 441600: \"河源市\",\n 441700: \"阳江市\",\n 441800: \"清远市\",\n 441900: \"东莞市\",\n 442e3: \"中山市\",\n 445100: \"潮州市\",\n 445200: \"揭阳市\",\n 445300: \"云浮市\",\n 450100: \"南宁市\",\n 450200: \"柳州市\",\n 450300: \"桂林市\",\n 450400: \"梧州市\",\n 450500: \"北海市\",\n 450600: \"防城港市\",\n 450700: \"钦州市\",\n 450800: \"贵港市\",\n 450900: \"玉林市\",\n 451e3: \"百色市\",\n 451100: \"贺州市\",\n 451200: \"河池市\",\n 451300: \"来宾市\",\n 451400: \"崇左市\",\n 460100: \"海口市\",\n 460200: \"三亚市\",\n 460300: \"三沙市\",\n 460400: \"儋州市\",\n 469e3: \"省直辖县\",\n 500100: \"重庆市\",\n 500200: \"县\",\n 510100: \"成都市\",\n 510300: \"自贡市\",\n 510400: \"攀枝花市\",\n 510500: \"泸州市\",\n 510600: \"德阳市\",\n 510700: \"绵阳市\",\n 510800: \"广元市\",\n 510900: \"遂宁市\",\n 511e3: \"内江市\",\n 511100: \"乐山市\",\n 511300: \"南充市\",\n 511400: \"眉山市\",\n 511500: \"宜宾市\",\n 511600: \"广安市\",\n 511700: \"达州市\",\n 511800: \"雅安市\",\n 511900: \"巴中市\",\n 512e3: \"资阳市\",\n 513200: \"阿坝藏族羌族自治州\",\n 513300: \"甘孜藏族自治州\",\n 513400: \"凉山彝族自治州\",\n 520100: \"贵阳市\",\n 520200: \"六盘水市\",\n 520300: \"遵义市\",\n 520400: \"安顺市\",\n 520500: \"毕节市\",\n 520600: \"铜仁市\",\n 522300: \"黔西南布依族苗族自治州\",\n 522600: \"黔东南苗族侗族自治州\",\n 522700: \"黔南布依族苗族自治州\",\n 530100: \"昆明市\",\n 530300: \"曲靖市\",\n 530400: \"玉溪市\",\n 530500: \"保山市\",\n 530600: \"昭通市\",\n 530700: \"丽江市\",\n 530800: \"普洱市\",\n 530900: \"临沧市\",\n 532300: \"楚雄彝族自治州\",\n 532500: \"红河哈尼族彝族自治州\",\n 532600: \"文山壮族苗族自治州\",\n 532800: \"西双版纳傣族自治州\",\n 532900: \"大理白族自治州\",\n 533100: \"德宏傣族景颇族自治州\",\n 533300: \"怒江傈僳族自治州\",\n 533400: \"迪庆藏族自治州\",\n 540100: \"拉萨市\",\n 540200: \"日喀则市\",\n 540300: \"昌都市\",\n 540400: \"林芝市\",\n 540500: \"山南市\",\n 540600: \"那曲市\",\n 542500: \"阿里地区\",\n 610100: \"西安市\",\n 610200: \"铜川市\",\n 610300: \"宝鸡市\",\n 610400: \"咸阳市\",\n 610500: \"渭南市\",\n 610600: \"延安市\",\n 610700: \"汉中市\",\n 610800: \"榆林市\",\n 610900: \"安康市\",\n 611e3: \"商洛市\",\n 620100: \"兰州市\",\n 620200: \"嘉峪关市\",\n 620300: \"金昌市\",\n 620400: \"白银市\",\n 620500: \"天水市\",\n 620600: \"武威市\",\n 620700: \"张掖市\",\n 620800: \"平凉市\",\n 620900: \"酒泉市\",\n 621e3: \"庆阳市\",\n 621100: \"定西市\",\n 621200: \"陇南市\",\n 622900: \"临夏回族自治州\",\n 623e3: \"甘南藏族自治州\",\n 630100: \"西宁市\",\n 630200: \"海东市\",\n 632200: \"海北藏族自治州\",\n 632300: \"黄南藏族自治州\",\n 632500: \"海南藏族自治州\",\n 632600: \"果洛藏族自治州\",\n 632700: \"玉树藏族自治州\",\n 632800: \"海西蒙古族藏族自治州\",\n 640100: \"银川市\",\n 640200: \"石嘴山市\",\n 640300: \"吴忠市\",\n 640400: \"固原市\",\n 640500: \"中卫市\",\n 650100: \"乌鲁木齐市\",\n 650200: \"克拉玛依市\",\n 650400: \"吐鲁番市\",\n 650500: \"哈密市\",\n 652300: \"昌吉回族自治州\",\n 652700: \"博尔塔拉蒙古自治州\",\n 652800: \"巴音郭楞蒙古自治州\",\n 652900: \"阿克苏地区\",\n 653e3: \"克孜勒苏柯尔克孜自治州\",\n 653100: \"喀什地区\",\n 653200: \"和田地区\",\n 654e3: \"伊犁哈萨克自治州\",\n 654200: \"塔城地区\",\n 654300: \"阿勒泰地区\",\n 659e3: \"自治区直辖县级行政区划\",\n 710100: \"台北市\",\n 710200: \"高雄市\",\n 710300: \"台南市\",\n 710400: \"台中市\",\n 710500: \"金门县\",\n 710600: \"南投县\",\n 710700: \"基隆市\",\n 710800: \"新竹市\",\n 710900: \"嘉义市\",\n 711100: \"新北市\",\n 711200: \"宜兰县\",\n 711300: \"新竹县\",\n 711400: \"桃园市\",\n 711500: \"苗栗县\",\n 711700: \"彰化县\",\n 711900: \"嘉义县\",\n 712100: \"云林县\",\n 712400: \"屏东县\",\n 712500: \"台东县\",\n 712600: \"花莲县\",\n 712700: \"澎湖县\",\n 712800: \"连江县\",\n 810100: \"香港岛\",\n 810200: \"九龙\",\n 810300: \"新界\",\n 820100: \"澳门半岛\",\n 820200: \"离岛\"\n },\n county_list: {\n 110101: \"东城区\",\n 110102: \"西城区\",\n 110105: \"朝阳区\",\n 110106: \"丰台区\",\n 110107: \"石景山区\",\n 110108: \"海淀区\",\n 110109: \"门头沟区\",\n 110111: \"房山区\",\n 110112: \"通州区\",\n 110113: \"顺义区\",\n 110114: \"昌平区\",\n 110115: \"大兴区\",\n 110116: \"怀柔区\",\n 110117: \"平谷区\",\n 110118: \"密云区\",\n 110119: \"延庆区\",\n 120101: \"和平区\",\n 120102: \"河东区\",\n 120103: \"河西区\",\n 120104: \"南开区\",\n 120105: \"河北区\",\n 120106: \"红桥区\",\n 120110: \"东丽区\",\n 120111: \"西青区\",\n 120112: \"津南区\",\n 120113: \"北辰区\",\n 120114: \"武清区\",\n 120115: \"宝坻区\",\n 120116: \"滨海新区\",\n 120117: \"宁河区\",\n 120118: \"静海区\",\n 120119: \"蓟州区\",\n 130102: \"长安区\",\n 130104: \"桥西区\",\n 130105: \"新华区\",\n 130107: \"井陉矿区\",\n 130108: \"裕华区\",\n 130109: \"藁城区\",\n 130110: \"鹿泉区\",\n 130111: \"栾城区\",\n 130121: \"井陉县\",\n 130123: \"正定县\",\n 130125: \"行唐县\",\n 130126: \"灵寿县\",\n 130127: \"高邑县\",\n 130128: \"深泽县\",\n 130129: \"赞皇县\",\n 130130: \"无极县\",\n 130131: \"平山县\",\n 130132: \"元氏县\",\n 130133: \"赵县\",\n 130171: \"石家庄高新技术产业开发区\",\n 130172: \"石家庄循环化工园区\",\n 130181: \"辛集市\",\n 130183: \"晋州市\",\n 130184: \"新乐市\",\n 130202: \"路南区\",\n 130203: \"路北区\",\n 130204: \"古冶区\",\n 130205: \"开平区\",\n 130207: \"丰南区\",\n 130208: \"丰润区\",\n 130209: \"曹妃甸区\",\n 130224: \"滦南县\",\n 130225: \"乐亭县\",\n 130227: \"迁西县\",\n 130229: \"玉田县\",\n 130273: \"唐山高新技术产业开发区\",\n 130274: \"河北唐山海港经济开发区\",\n 130281: \"遵化市\",\n 130283: \"迁安市\",\n 130284: \"滦州市\",\n 130302: \"海港区\",\n 130303: \"山海关区\",\n 130304: \"北戴河区\",\n 130306: \"抚宁区\",\n 130321: \"青龙满族自治县\",\n 130322: \"昌黎县\",\n 130324: \"卢龙县\",\n 130371: \"秦皇岛市经济技术开发区\",\n 130372: \"北戴河新区\",\n 130390: \"经济技术开发区\",\n 130402: \"邯山区\",\n 130403: \"丛台区\",\n 130404: \"复兴区\",\n 130406: \"峰峰矿区\",\n 130407: \"肥乡区\",\n 130408: \"永年区\",\n 130423: \"临漳县\",\n 130424: \"成安县\",\n 130425: \"大名县\",\n 130426: \"涉县\",\n 130427: \"磁县\",\n 130430: \"邱县\",\n 130431: \"鸡泽县\",\n 130432: \"广平县\",\n 130433: \"馆陶县\",\n 130434: \"魏县\",\n 130435: \"曲周县\",\n 130471: \"邯郸经济技术开发区\",\n 130473: \"邯郸冀南新区\",\n 130481: \"武安市\",\n 130502: \"襄都区\",\n 130503: \"信都区\",\n 130505: \"任泽区\",\n 130506: \"南和区\",\n 130522: \"临城县\",\n 130523: \"内丘县\",\n 130524: \"柏乡县\",\n 130525: \"隆尧县\",\n 130528: \"宁晋县\",\n 130529: \"巨鹿县\",\n 130530: \"新河县\",\n 130531: \"广宗县\",\n 130532: \"平乡县\",\n 130533: \"威县\",\n 130534: \"清河县\",\n 130535: \"临西县\",\n 130571: \"河北邢台经济开发区\",\n 130581: \"南宫市\",\n 130582: \"沙河市\",\n 130602: \"竞秀区\",\n 130606: \"莲池区\",\n 130607: \"满城区\",\n 130608: \"清苑区\",\n 130609: \"徐水区\",\n 130623: \"涞水县\",\n 130624: \"阜平县\",\n 130626: \"定兴县\",\n 130627: \"唐县\",\n 130628: \"高阳县\",\n 130629: \"容城县\",\n 130630: \"涞源县\",\n 130631: \"望都县\",\n 130632: \"安新县\",\n 130633: \"易县\",\n 130634: \"曲阳县\",\n 130635: \"蠡县\",\n 130636: \"顺平县\",\n 130637: \"博野县\",\n 130638: \"雄县\",\n 130671: \"保定高新技术产业开发区\",\n 130672: \"保定白沟新城\",\n 130681: \"涿州市\",\n 130682: \"定州市\",\n 130683: \"安国市\",\n 130684: \"高碑店市\",\n 130702: \"桥东区\",\n 130703: \"桥西区\",\n 130705: \"宣化区\",\n 130706: \"下花园区\",\n 130708: \"万全区\",\n 130709: \"崇礼区\",\n 130722: \"张北县\",\n 130723: \"康保县\",\n 130724: \"沽源县\",\n 130725: \"尚义县\",\n 130726: \"蔚县\",\n 130727: \"阳原县\",\n 130728: \"怀安县\",\n 130730: \"怀来县\",\n 130731: \"涿鹿县\",\n 130732: \"赤城县\",\n 130772: \"张家口市察北管理区\",\n 130802: \"双桥区\",\n 130803: \"双滦区\",\n 130804: \"鹰手营子矿区\",\n 130821: \"承德县\",\n 130822: \"兴隆县\",\n 130824: \"滦平县\",\n 130825: \"隆化县\",\n 130826: \"丰宁满族自治县\",\n 130827: \"宽城满族自治县\",\n 130828: \"围场满族蒙古族自治县\",\n 130871: \"承德高新技术产业开发区\",\n 130881: \"平泉市\",\n 130902: \"新华区\",\n 130903: \"运河区\",\n 130921: \"沧县\",\n 130922: \"青县\",\n 130923: \"东光县\",\n 130924: \"海兴县\",\n 130925: \"盐山县\",\n 130926: \"肃宁县\",\n 130927: \"南皮县\",\n 130928: \"吴桥县\",\n 130929: \"献县\",\n 130930: \"孟村回族自治县\",\n 130971: \"河北沧州经济开发区\",\n 130972: \"沧州高新技术产业开发区\",\n 130973: \"沧州渤海新区\",\n 130981: \"泊头市\",\n 130982: \"任丘市\",\n 130983: \"黄骅市\",\n 130984: \"河间市\",\n 131002: \"安次区\",\n 131003: \"广阳区\",\n 131022: \"固安县\",\n 131023: \"永清县\",\n 131024: \"香河县\",\n 131025: \"大城县\",\n 131026: \"文安县\",\n 131028: \"大厂回族自治县\",\n 131071: \"廊坊经济技术开发区\",\n 131081: \"霸州市\",\n 131082: \"三河市\",\n 131090: \"开发区\",\n 131102: \"桃城区\",\n 131103: \"冀州区\",\n 131121: \"枣强县\",\n 131122: \"武邑县\",\n 131123: \"武强县\",\n 131124: \"饶阳县\",\n 131125: \"安平县\",\n 131126: \"故城县\",\n 131127: \"景县\",\n 131128: \"阜城县\",\n 131171: \"河北衡水经济开发区\",\n 131172: \"衡水滨湖新区\",\n 131182: \"深州市\",\n 140105: \"小店区\",\n 140106: \"迎泽区\",\n 140107: \"杏花岭区\",\n 140108: \"尖草坪区\",\n 140109: \"万柏林区\",\n 140110: \"晋源区\",\n 140121: \"清徐县\",\n 140122: \"阳曲县\",\n 140123: \"娄烦县\",\n 140181: \"古交市\",\n 140212: \"新荣区\",\n 140213: \"平城区\",\n 140214: \"云冈区\",\n 140215: \"云州区\",\n 140221: \"阳高县\",\n 140222: \"天镇县\",\n 140223: \"广灵县\",\n 140224: \"灵丘县\",\n 140225: \"浑源县\",\n 140226: \"左云县\",\n 140271: \"山西大同经济开发区\",\n 140302: \"城区\",\n 140303: \"矿区\",\n 140311: \"郊区\",\n 140321: \"平定县\",\n 140322: \"盂县\",\n 140403: \"潞州区\",\n 140404: \"上党区\",\n 140405: \"屯留区\",\n 140406: \"潞城区\",\n 140423: \"襄垣县\",\n 140425: \"平顺县\",\n 140426: \"黎城县\",\n 140427: \"壶关县\",\n 140428: \"长子县\",\n 140429: \"武乡县\",\n 140430: \"沁县\",\n 140431: \"沁源县\",\n 140471: \"山西长治高新技术产业园区\",\n 140502: \"城区\",\n 140521: \"沁水县\",\n 140522: \"阳城县\",\n 140524: \"陵川县\",\n 140525: \"泽州县\",\n 140581: \"高平市\",\n 140602: \"朔城区\",\n 140603: \"平鲁区\",\n 140621: \"山阴县\",\n 140622: \"应县\",\n 140623: \"右玉县\",\n 140671: \"山西朔州经济开发区\",\n 140681: \"怀仁市\",\n 140702: \"榆次区\",\n 140703: \"太谷区\",\n 140721: \"榆社县\",\n 140722: \"左权县\",\n 140723: \"和顺县\",\n 140724: \"昔阳县\",\n 140725: \"寿阳县\",\n 140727: \"祁县\",\n 140728: \"平遥县\",\n 140729: \"灵石县\",\n 140781: \"介休市\",\n 140802: \"盐湖区\",\n 140821: \"临猗县\",\n 140822: \"万荣县\",\n 140823: \"闻喜县\",\n 140824: \"稷山县\",\n 140825: \"新绛县\",\n 140826: \"绛县\",\n 140827: \"垣曲县\",\n 140828: \"夏县\",\n 140829: \"平陆县\",\n 140830: \"芮城县\",\n 140881: \"永济市\",\n 140882: \"河津市\",\n 140902: \"忻府区\",\n 140921: \"定襄县\",\n 140922: \"五台县\",\n 140923: \"代县\",\n 140924: \"繁峙县\",\n 140925: \"宁武县\",\n 140926: \"静乐县\",\n 140927: \"神池县\",\n 140928: \"五寨县\",\n 140929: \"岢岚县\",\n 140930: \"河曲县\",\n 140931: \"保德县\",\n 140932: \"偏关县\",\n 140971: \"五台山风景名胜区\",\n 140981: \"原平市\",\n 141002: \"尧都区\",\n 141021: \"曲沃县\",\n 141022: \"翼城县\",\n 141023: \"襄汾县\",\n 141024: \"洪洞县\",\n 141025: \"古县\",\n 141026: \"安泽县\",\n 141027: \"浮山县\",\n 141028: \"吉县\",\n 141029: \"乡宁县\",\n 141030: \"大宁县\",\n 141031: \"隰县\",\n 141032: \"永和县\",\n 141033: \"蒲县\",\n 141034: \"汾西县\",\n 141081: \"侯马市\",\n 141082: \"霍州市\",\n 141102: \"离石区\",\n 141121: \"文水县\",\n 141122: \"交城县\",\n 141123: \"兴县\",\n 141124: \"临县\",\n 141125: \"柳林县\",\n 141126: \"石楼县\",\n 141127: \"岚县\",\n 141128: \"方山县\",\n 141129: \"中阳县\",\n 141130: \"交口县\",\n 141181: \"孝义市\",\n 141182: \"汾阳市\",\n 150102: \"新城区\",\n 150103: \"回民区\",\n 150104: \"玉泉区\",\n 150105: \"赛罕区\",\n 150121: \"土默特左旗\",\n 150122: \"托克托县\",\n 150123: \"和林格尔县\",\n 150124: \"清水河县\",\n 150125: \"武川县\",\n 150172: \"呼和浩特经济技术开发区\",\n 150202: \"东河区\",\n 150203: \"昆都仑区\",\n 150204: \"青山区\",\n 150205: \"石拐区\",\n 150206: \"白云鄂博矿区\",\n 150207: \"九原区\",\n 150221: \"土默特右旗\",\n 150222: \"固阳县\",\n 150223: \"达尔罕茂明安联合旗\",\n 150271: \"包头稀土高新技术产业开发区\",\n 150302: \"海勃湾区\",\n 150303: \"海南区\",\n 150304: \"乌达区\",\n 150402: \"红山区\",\n 150403: \"元宝山区\",\n 150404: \"松山区\",\n 150421: \"阿鲁科尔沁旗\",\n 150422: \"巴林左旗\",\n 150423: \"巴林右旗\",\n 150424: \"林西县\",\n 150425: \"克什克腾旗\",\n 150426: \"翁牛特旗\",\n 150428: \"喀喇沁旗\",\n 150429: \"宁城县\",\n 150430: \"敖汉旗\",\n 150502: \"科尔沁区\",\n 150521: \"科尔沁左翼中旗\",\n 150522: \"科尔沁左翼后旗\",\n 150523: \"开鲁县\",\n 150524: \"库伦旗\",\n 150525: \"奈曼旗\",\n 150526: \"扎鲁特旗\",\n 150571: \"通辽经济技术开发区\",\n 150581: \"霍林郭勒市\",\n 150602: \"东胜区\",\n 150603: \"康巴什区\",\n 150621: \"达拉特旗\",\n 150622: \"准格尔旗\",\n 150623: \"鄂托克前旗\",\n 150624: \"鄂托克旗\",\n 150625: \"杭锦旗\",\n 150626: \"乌审旗\",\n 150627: \"伊金霍洛旗\",\n 150702: \"海拉尔区\",\n 150703: \"扎赉诺尔区\",\n 150721: \"阿荣旗\",\n 150722: \"莫力达瓦达斡尔族自治旗\",\n 150723: \"鄂伦春自治旗\",\n 150724: \"鄂温克族自治旗\",\n 150725: \"陈巴尔虎旗\",\n 150726: \"新巴尔虎左旗\",\n 150727: \"新巴尔虎右旗\",\n 150781: \"满洲里市\",\n 150782: \"牙克石市\",\n 150783: \"扎兰屯市\",\n 150784: \"额尔古纳市\",\n 150785: \"根河市\",\n 150802: \"临河区\",\n 150821: \"五原县\",\n 150822: \"磴口县\",\n 150823: \"乌拉特前旗\",\n 150824: \"乌拉特中旗\",\n 150825: \"乌拉特后旗\",\n 150826: \"杭锦后旗\",\n 150902: \"集宁区\",\n 150921: \"卓资县\",\n 150922: \"化德县\",\n 150923: \"商都县\",\n 150924: \"兴和县\",\n 150925: \"凉城县\",\n 150926: \"察哈尔右翼前旗\",\n 150927: \"察哈尔右翼中旗\",\n 150928: \"察哈尔右翼后旗\",\n 150929: \"四子王旗\",\n 150981: \"丰镇市\",\n 152201: \"乌兰浩特市\",\n 152202: \"阿尔山市\",\n 152221: \"科尔沁右翼前旗\",\n 152222: \"科尔沁右翼中旗\",\n 152223: \"扎赉特旗\",\n 152224: \"突泉县\",\n 152501: \"二连浩特市\",\n 152502: \"锡林浩特市\",\n 152522: \"阿巴嘎旗\",\n 152523: \"苏尼特左旗\",\n 152524: \"苏尼特右旗\",\n 152525: \"东乌珠穆沁旗\",\n 152526: \"西乌珠穆沁旗\",\n 152527: \"太仆寺旗\",\n 152528: \"镶黄旗\",\n 152529: \"正镶白旗\",\n 152530: \"正蓝旗\",\n 152531: \"多伦县\",\n 152571: \"乌拉盖管委会\",\n 152921: \"阿拉善左旗\",\n 152922: \"阿拉善右旗\",\n 152923: \"额济纳旗\",\n 152971: \"内蒙古阿拉善经济开发区\",\n 210102: \"和平区\",\n 210103: \"沈河区\",\n 210104: \"大东区\",\n 210105: \"皇姑区\",\n 210106: \"铁西区\",\n 210111: \"苏家屯区\",\n 210112: \"浑南区\",\n 210113: \"沈北新区\",\n 210114: \"于洪区\",\n 210115: \"辽中区\",\n 210123: \"康平县\",\n 210124: \"法库县\",\n 210181: \"新民市\",\n 210190: \"经济技术开发区\",\n 210202: \"中山区\",\n 210203: \"西岗区\",\n 210204: \"沙河口区\",\n 210211: \"甘井子区\",\n 210212: \"旅顺口区\",\n 210213: \"金州区\",\n 210214: \"普兰店区\",\n 210224: \"长海县\",\n 210281: \"瓦房店市\",\n 210283: \"庄河市\",\n 210302: \"铁东区\",\n 210303: \"铁西区\",\n 210304: \"立山区\",\n 210311: \"千山区\",\n 210321: \"台安县\",\n 210323: \"岫岩满族自治县\",\n 210381: \"海城市\",\n 210390: \"高新区\",\n 210402: \"新抚区\",\n 210403: \"东洲区\",\n 210404: \"望花区\",\n 210411: \"顺城区\",\n 210421: \"抚顺县\",\n 210422: \"新宾满族自治县\",\n 210423: \"清原满族自治县\",\n 210502: \"平山区\",\n 210503: \"溪湖区\",\n 210504: \"明山区\",\n 210505: \"南芬区\",\n 210521: \"本溪满族自治县\",\n 210522: \"桓仁满族自治县\",\n 210602: \"元宝区\",\n 210603: \"振兴区\",\n 210604: \"振安区\",\n 210624: \"宽甸满族自治县\",\n 210681: \"东港市\",\n 210682: \"凤城市\",\n 210702: \"古塔区\",\n 210703: \"凌河区\",\n 210711: \"太和区\",\n 210726: \"黑山县\",\n 210727: \"义县\",\n 210781: \"凌海市\",\n 210782: \"北镇市\",\n 210793: \"经济技术开发区\",\n 210802: \"站前区\",\n 210803: \"西市区\",\n 210804: \"鲅鱼圈区\",\n 210811: \"老边区\",\n 210881: \"盖州市\",\n 210882: \"大石桥市\",\n 210902: \"海州区\",\n 210903: \"新邱区\",\n 210904: \"太平区\",\n 210905: \"清河门区\",\n 210911: \"细河区\",\n 210921: \"阜新蒙古族自治县\",\n 210922: \"彰武县\",\n 211002: \"白塔区\",\n 211003: \"文圣区\",\n 211004: \"宏伟区\",\n 211005: \"弓长岭区\",\n 211011: \"太子河区\",\n 211021: \"辽阳县\",\n 211081: \"灯塔市\",\n 211102: \"双台子区\",\n 211103: \"兴隆台区\",\n 211104: \"大洼区\",\n 211122: \"盘山县\",\n 211202: \"银州区\",\n 211204: \"清河区\",\n 211221: \"铁岭县\",\n 211223: \"西丰县\",\n 211224: \"昌图县\",\n 211281: \"调兵山市\",\n 211282: \"开原市\",\n 211302: \"双塔区\",\n 211303: \"龙城区\",\n 211321: \"朝阳县\",\n 211322: \"建平县\",\n 211324: \"喀喇沁左翼蒙古族自治县\",\n 211381: \"北票市\",\n 211382: \"凌源市\",\n 211402: \"连山区\",\n 211403: \"龙港区\",\n 211404: \"南票区\",\n 211421: \"绥中县\",\n 211422: \"建昌县\",\n 211481: \"兴城市\",\n 220102: \"南关区\",\n 220103: \"宽城区\",\n 220104: \"朝阳区\",\n 220105: \"二道区\",\n 220106: \"绿园区\",\n 220112: \"双阳区\",\n 220113: \"九台区\",\n 220122: \"农安县\",\n 220171: \"长春经济技术开发区\",\n 220172: \"长春净月高新技术产业开发区\",\n 220173: \"长春高新技术产业开发区\",\n 220174: \"长春汽车经济技术开发区\",\n 220182: \"榆树市\",\n 220183: \"德惠市\",\n 220192: \"经济技术开发区\",\n 220202: \"昌邑区\",\n 220203: \"龙潭区\",\n 220204: \"船营区\",\n 220211: \"丰满区\",\n 220221: \"永吉县\",\n 220271: \"吉林经济开发区\",\n 220272: \"吉林高新技术产业开发区\",\n 220281: \"蛟河市\",\n 220282: \"桦甸市\",\n 220283: \"舒兰市\",\n 220284: \"磐石市\",\n 220302: \"铁西区\",\n 220303: \"铁东区\",\n 220322: \"梨树县\",\n 220323: \"伊通满族自治县\",\n 220381: \"公主岭市\",\n 220382: \"双辽市\",\n 220402: \"龙山区\",\n 220403: \"西安区\",\n 220421: \"东丰县\",\n 220422: \"东辽县\",\n 220502: \"东昌区\",\n 220503: \"二道江区\",\n 220521: \"通化县\",\n 220523: \"辉南县\",\n 220524: \"柳河县\",\n 220581: \"梅河口市\",\n 220582: \"集安市\",\n 220602: \"浑江区\",\n 220605: \"江源区\",\n 220621: \"抚松县\",\n 220622: \"靖宇县\",\n 220623: \"长白朝鲜族自治县\",\n 220681: \"临江市\",\n 220702: \"宁江区\",\n 220721: \"前郭尔罗斯蒙古族自治县\",\n 220722: \"长岭县\",\n 220723: \"乾安县\",\n 220771: \"吉林松原经济开发区\",\n 220781: \"扶余市\",\n 220802: \"洮北区\",\n 220821: \"镇赉县\",\n 220822: \"通榆县\",\n 220871: \"吉林白城经济开发区\",\n 220881: \"洮南市\",\n 220882: \"大安市\",\n 222401: \"延吉市\",\n 222402: \"图们市\",\n 222403: \"敦化市\",\n 222404: \"珲春市\",\n 222405: \"龙井市\",\n 222406: \"和龙市\",\n 222424: \"汪清县\",\n 222426: \"安图县\",\n 230102: \"道里区\",\n 230103: \"南岗区\",\n 230104: \"道外区\",\n 230108: \"平房区\",\n 230109: \"松北区\",\n 230110: \"香坊区\",\n 230111: \"呼兰区\",\n 230112: \"阿城区\",\n 230113: \"双城区\",\n 230123: \"依兰县\",\n 230124: \"方正县\",\n 230125: \"宾县\",\n 230126: \"巴彦县\",\n 230127: \"木兰县\",\n 230128: \"通河县\",\n 230129: \"延寿县\",\n 230183: \"尚志市\",\n 230184: \"五常市\",\n 230202: \"龙沙区\",\n 230203: \"建华区\",\n 230204: \"铁锋区\",\n 230205: \"昂昂溪区\",\n 230206: \"富拉尔基区\",\n 230207: \"碾子山区\",\n 230208: \"梅里斯达斡尔族区\",\n 230221: \"龙江县\",\n 230223: \"依安县\",\n 230224: \"泰来县\",\n 230225: \"甘南县\",\n 230227: \"富裕县\",\n 230229: \"克山县\",\n 230230: \"克东县\",\n 230231: \"拜泉县\",\n 230281: \"讷河市\",\n 230302: \"鸡冠区\",\n 230303: \"恒山区\",\n 230304: \"滴道区\",\n 230305: \"梨树区\",\n 230306: \"城子河区\",\n 230307: \"麻山区\",\n 230321: \"鸡东县\",\n 230381: \"虎林市\",\n 230382: \"密山市\",\n 230402: \"向阳区\",\n 230403: \"工农区\",\n 230404: \"南山区\",\n 230405: \"兴安区\",\n 230406: \"东山区\",\n 230407: \"兴山区\",\n 230421: \"萝北县\",\n 230422: \"绥滨县\",\n 230502: \"尖山区\",\n 230503: \"岭东区\",\n 230505: \"四方台区\",\n 230506: \"宝山区\",\n 230521: \"集贤县\",\n 230522: \"友谊县\",\n 230523: \"宝清县\",\n 230524: \"饶河县\",\n 230602: \"萨尔图区\",\n 230603: \"龙凤区\",\n 230604: \"让胡路区\",\n 230605: \"红岗区\",\n 230606: \"大同区\",\n 230621: \"肇州县\",\n 230622: \"肇源县\",\n 230623: \"林甸县\",\n 230624: \"杜尔伯特蒙古族自治县\",\n 230671: \"大庆高新技术产业开发区\",\n 230717: \"伊美区\",\n 230718: \"乌翠区\",\n 230719: \"友好区\",\n 230722: \"嘉荫县\",\n 230723: \"汤旺县\",\n 230724: \"丰林县\",\n 230725: \"大箐山县\",\n 230726: \"南岔县\",\n 230751: \"金林区\",\n 230781: \"铁力市\",\n 230803: \"向阳区\",\n 230804: \"前进区\",\n 230805: \"东风区\",\n 230811: \"郊区\",\n 230822: \"桦南县\",\n 230826: \"桦川县\",\n 230828: \"汤原县\",\n 230881: \"同江市\",\n 230882: \"富锦市\",\n 230883: \"抚远市\",\n 230902: \"新兴区\",\n 230903: \"桃山区\",\n 230904: \"茄子河区\",\n 230921: \"勃利县\",\n 231002: \"东安区\",\n 231003: \"阳明区\",\n 231004: \"爱民区\",\n 231005: \"西安区\",\n 231025: \"林口县\",\n 231081: \"绥芬河市\",\n 231083: \"海林市\",\n 231084: \"宁安市\",\n 231085: \"穆棱市\",\n 231086: \"东宁市\",\n 231102: \"爱辉区\",\n 231123: \"逊克县\",\n 231124: \"孙吴县\",\n 231181: \"北安市\",\n 231182: \"五大连池市\",\n 231183: \"嫩江市\",\n 231202: \"北林区\",\n 231221: \"望奎县\",\n 231222: \"兰西县\",\n 231223: \"青冈县\",\n 231224: \"庆安县\",\n 231225: \"明水县\",\n 231226: \"绥棱县\",\n 231281: \"安达市\",\n 231282: \"肇东市\",\n 231283: \"海伦市\",\n 232701: \"漠河市\",\n 232721: \"呼玛县\",\n 232722: \"塔河县\",\n 232761: \"加格达奇区\",\n 232762: \"松岭区\",\n 232763: \"新林区\",\n 232764: \"呼中区\",\n 310101: \"黄浦区\",\n 310104: \"徐汇区\",\n 310105: \"长宁区\",\n 310106: \"静安区\",\n 310107: \"普陀区\",\n 310109: \"虹口区\",\n 310110: \"杨浦区\",\n 310112: \"闵行区\",\n 310113: \"宝山区\",\n 310114: \"嘉定区\",\n 310115: \"浦东新区\",\n 310116: \"金山区\",\n 310117: \"松江区\",\n 310118: \"青浦区\",\n 310120: \"奉贤区\",\n 310151: \"崇明区\",\n 320102: \"玄武区\",\n 320104: \"秦淮区\",\n 320105: \"建邺区\",\n 320106: \"鼓楼区\",\n 320111: \"浦口区\",\n 320112: \"江北新区\",\n 320113: \"栖霞区\",\n 320114: \"雨花台区\",\n 320115: \"江宁区\",\n 320116: \"六合区\",\n 320117: \"溧水区\",\n 320118: \"高淳区\",\n 320205: \"锡山区\",\n 320206: \"惠山区\",\n 320211: \"滨湖区\",\n 320213: \"梁溪区\",\n 320214: \"新吴区\",\n 320281: \"江阴市\",\n 320282: \"宜兴市\",\n 320302: \"鼓楼区\",\n 320303: \"云龙区\",\n 320305: \"贾汪区\",\n 320311: \"泉山区\",\n 320312: \"铜山区\",\n 320321: \"丰县\",\n 320322: \"沛县\",\n 320324: \"睢宁县\",\n 320371: \"徐州经济技术开发区\",\n 320381: \"新沂市\",\n 320382: \"邳州市\",\n 320391: \"工业园区\",\n 320402: \"天宁区\",\n 320404: \"钟楼区\",\n 320411: \"新北区\",\n 320412: \"武进区\",\n 320413: \"金坛区\",\n 320481: \"溧阳市\",\n 320505: \"虎丘区\",\n 320506: \"吴中区\",\n 320507: \"相城区\",\n 320508: \"姑苏区\",\n 320509: \"吴江区\",\n 320571: \"苏州工业园区\",\n 320581: \"常熟市\",\n 320582: \"张家港市\",\n 320583: \"昆山市\",\n 320585: \"太仓市\",\n 320590: \"工业园区\",\n 320591: \"高新区\",\n 320602: \"崇川区\",\n 320611: \"港闸区\",\n 320612: \"通州区\",\n 320623: \"如东县\",\n 320681: \"启东市\",\n 320682: \"如皋市\",\n 320684: \"海门市\",\n 320685: \"海安市\",\n 320691: \"高新区\",\n 320703: \"连云区\",\n 320706: \"海州区\",\n 320707: \"赣榆区\",\n 320722: \"东海县\",\n 320723: \"灌云县\",\n 320724: \"灌南县\",\n 320771: \"连云港经济技术开发区\",\n 320803: \"淮安区\",\n 320804: \"淮阴区\",\n 320812: \"清江浦区\",\n 320813: \"洪泽区\",\n 320826: \"涟水县\",\n 320830: \"盱眙县\",\n 320831: \"金湖县\",\n 320871: \"淮安经济技术开发区\",\n 320890: \"经济开发区\",\n 320902: \"亭湖区\",\n 320903: \"盐都区\",\n 320904: \"大丰区\",\n 320921: \"响水县\",\n 320922: \"滨海县\",\n 320923: \"阜宁县\",\n 320924: \"射阳县\",\n 320925: \"建湖县\",\n 320971: \"盐城经济技术开发区\",\n 320981: \"东台市\",\n 321002: \"广陵区\",\n 321003: \"邗江区\",\n 321012: \"江都区\",\n 321023: \"宝应县\",\n 321071: \"扬州经济技术开发区\",\n 321081: \"仪征市\",\n 321084: \"高邮市\",\n 321090: \"经济开发区\",\n 321102: \"京口区\",\n 321111: \"润州区\",\n 321112: \"丹徒区\",\n 321150: \"镇江新区\",\n 321181: \"丹阳市\",\n 321182: \"扬中市\",\n 321183: \"句容市\",\n 321202: \"海陵区\",\n 321203: \"高港区\",\n 321204: \"姜堰区\",\n 321271: \"泰州医药高新技术产业开发区\",\n 321281: \"兴化市\",\n 321282: \"靖江市\",\n 321283: \"泰兴市\",\n 321302: \"宿城区\",\n 321311: \"宿豫区\",\n 321322: \"沭阳县\",\n 321323: \"泗阳县\",\n 321324: \"泗洪县\",\n 321371: \"宿迁经济技术开发区\",\n 330102: \"上城区\",\n 330105: \"拱墅区\",\n 330106: \"西湖区\",\n 330108: \"滨江区\",\n 330109: \"萧山区\",\n 330110: \"余杭区\",\n 330111: \"富阳区\",\n 330112: \"临安区\",\n 330113: \"临平区\",\n 330114: \"钱塘区\",\n 330122: \"桐庐县\",\n 330127: \"淳安县\",\n 330182: \"建德市\",\n 330203: \"海曙区\",\n 330205: \"江北区\",\n 330206: \"北仑区\",\n 330211: \"镇海区\",\n 330212: \"鄞州区\",\n 330213: \"奉化区\",\n 330225: \"象山县\",\n 330226: \"宁海县\",\n 330281: \"余姚市\",\n 330282: \"慈溪市\",\n 330302: \"鹿城区\",\n 330303: \"龙湾区\",\n 330304: \"瓯海区\",\n 330305: \"洞头区\",\n 330324: \"永嘉县\",\n 330326: \"平阳县\",\n 330327: \"苍南县\",\n 330328: \"文成县\",\n 330329: \"泰顺县\",\n 330381: \"瑞安市\",\n 330382: \"乐清市\",\n 330383: \"龙港市\",\n 330402: \"南湖区\",\n 330411: \"秀洲区\",\n 330421: \"嘉善县\",\n 330424: \"海盐县\",\n 330481: \"海宁市\",\n 330482: \"平湖市\",\n 330483: \"桐乡市\",\n 330502: \"吴兴区\",\n 330503: \"南浔区\",\n 330521: \"德清县\",\n 330522: \"长兴县\",\n 330523: \"安吉县\",\n 330602: \"越城区\",\n 330603: \"柯桥区\",\n 330604: \"上虞区\",\n 330624: \"新昌县\",\n 330681: \"诸暨市\",\n 330683: \"嵊州市\",\n 330702: \"婺城区\",\n 330703: \"金东区\",\n 330723: \"武义县\",\n 330726: \"浦江县\",\n 330727: \"磐安县\",\n 330781: \"兰溪市\",\n 330782: \"义乌市\",\n 330783: \"东阳市\",\n 330784: \"永康市\",\n 330802: \"柯城区\",\n 330803: \"衢江区\",\n 330822: \"常山县\",\n 330824: \"开化县\",\n 330825: \"龙游县\",\n 330881: \"江山市\",\n 330902: \"定海区\",\n 330903: \"普陀区\",\n 330921: \"岱山县\",\n 330922: \"嵊泗县\",\n 331002: \"椒江区\",\n 331003: \"黄岩区\",\n 331004: \"路桥区\",\n 331022: \"三门县\",\n 331023: \"天台县\",\n 331024: \"仙居县\",\n 331081: \"温岭市\",\n 331082: \"临海市\",\n 331083: \"玉环市\",\n 331102: \"莲都区\",\n 331121: \"青田县\",\n 331122: \"缙云县\",\n 331123: \"遂昌县\",\n 331124: \"松阳县\",\n 331125: \"云和县\",\n 331126: \"庆元县\",\n 331127: \"景宁畲族自治县\",\n 331181: \"龙泉市\",\n 340102: \"瑶海区\",\n 340103: \"庐阳区\",\n 340104: \"蜀山区\",\n 340111: \"包河区\",\n 340121: \"长丰县\",\n 340122: \"肥东县\",\n 340123: \"肥西县\",\n 340124: \"庐江县\",\n 340171: \"合肥高新技术产业开发区\",\n 340172: \"合肥经济技术开发区\",\n 340173: \"合肥新站高新技术产业开发区\",\n 340181: \"巢湖市\",\n 340190: \"高新技术开发区\",\n 340191: \"经济技术开发区\",\n 340202: \"镜湖区\",\n 340207: \"鸠江区\",\n 340209: \"弋江区\",\n 340210: \"湾沚区\",\n 340212: \"繁昌区\",\n 340223: \"南陵县\",\n 340281: \"无为市\",\n 340302: \"龙子湖区\",\n 340303: \"蚌山区\",\n 340304: \"禹会区\",\n 340311: \"淮上区\",\n 340321: \"怀远县\",\n 340322: \"五河县\",\n 340323: \"固镇县\",\n 340371: \"蚌埠市高新技术开发区\",\n 340372: \"蚌埠市经济开发区\",\n 340402: \"大通区\",\n 340403: \"田家庵区\",\n 340404: \"谢家集区\",\n 340405: \"八公山区\",\n 340406: \"潘集区\",\n 340421: \"凤台县\",\n 340422: \"寿县\",\n 340503: \"花山区\",\n 340504: \"雨山区\",\n 340506: \"博望区\",\n 340521: \"当涂县\",\n 340522: \"含山县\",\n 340523: \"和县\",\n 340602: \"杜集区\",\n 340603: \"相山区\",\n 340604: \"烈山区\",\n 340621: \"濉溪县\",\n 340705: \"铜官区\",\n 340706: \"义安区\",\n 340711: \"郊区\",\n 340722: \"枞阳县\",\n 340802: \"迎江区\",\n 340803: \"大观区\",\n 340811: \"宜秀区\",\n 340822: \"怀宁县\",\n 340825: \"太湖县\",\n 340826: \"宿松县\",\n 340827: \"望江县\",\n 340828: \"岳西县\",\n 340881: \"桐城市\",\n 340882: \"潜山市\",\n 341002: \"屯溪区\",\n 341003: \"黄山区\",\n 341004: \"徽州区\",\n 341021: \"歙县\",\n 341022: \"休宁县\",\n 341023: \"黟县\",\n 341024: \"祁门县\",\n 341102: \"琅琊区\",\n 341103: \"南谯区\",\n 341122: \"来安县\",\n 341124: \"全椒县\",\n 341125: \"定远县\",\n 341126: \"凤阳县\",\n 341181: \"天长市\",\n 341182: \"明光市\",\n 341202: \"颍州区\",\n 341203: \"颍东区\",\n 341204: \"颍泉区\",\n 341221: \"临泉县\",\n 341222: \"太和县\",\n 341225: \"阜南县\",\n 341226: \"颍上县\",\n 341271: \"阜阳合肥现代产业园区\",\n 341282: \"界首市\",\n 341302: \"埇桥区\",\n 341321: \"砀山县\",\n 341322: \"萧县\",\n 341323: \"灵璧县\",\n 341324: \"泗县\",\n 341371: \"宿州马鞍山现代产业园区\",\n 341372: \"宿州经济技术开发区\",\n 341390: \"经济开发区\",\n 341502: \"金安区\",\n 341503: \"裕安区\",\n 341504: \"叶集区\",\n 341522: \"霍邱县\",\n 341523: \"舒城县\",\n 341524: \"金寨县\",\n 341525: \"霍山县\",\n 341602: \"谯城区\",\n 341621: \"涡阳县\",\n 341622: \"蒙城县\",\n 341623: \"利辛县\",\n 341702: \"贵池区\",\n 341721: \"东至县\",\n 341722: \"石台县\",\n 341723: \"青阳县\",\n 341802: \"宣州区\",\n 341821: \"郎溪县\",\n 341823: \"泾县\",\n 341824: \"绩溪县\",\n 341825: \"旌德县\",\n 341871: \"宣城市经济开发区\",\n 341881: \"宁国市\",\n 341882: \"广德市\",\n 350102: \"鼓楼区\",\n 350103: \"台江区\",\n 350104: \"仓山区\",\n 350105: \"马尾区\",\n 350111: \"晋安区\",\n 350112: \"长乐区\",\n 350121: \"闽侯县\",\n 350122: \"连江县\",\n 350123: \"罗源县\",\n 350124: \"闽清县\",\n 350125: \"永泰县\",\n 350128: \"平潭县\",\n 350181: \"福清市\",\n 350203: \"思明区\",\n 350205: \"海沧区\",\n 350206: \"湖里区\",\n 350211: \"集美区\",\n 350212: \"同安区\",\n 350213: \"翔安区\",\n 350302: \"城厢区\",\n 350303: \"涵江区\",\n 350304: \"荔城区\",\n 350305: \"秀屿区\",\n 350322: \"仙游县\",\n 350402: \"梅列区\",\n 350403: \"三元区\",\n 350421: \"明溪县\",\n 350423: \"清流县\",\n 350424: \"宁化县\",\n 350425: \"大田县\",\n 350426: \"尤溪县\",\n 350427: \"沙县\",\n 350428: \"将乐县\",\n 350429: \"泰宁县\",\n 350430: \"建宁县\",\n 350481: \"永安市\",\n 350502: \"鲤城区\",\n 350503: \"丰泽区\",\n 350504: \"洛江区\",\n 350505: \"泉港区\",\n 350521: \"惠安县\",\n 350524: \"安溪县\",\n 350525: \"永春县\",\n 350526: \"德化县\",\n 350527: \"金门县\",\n 350581: \"石狮市\",\n 350582: \"晋江市\",\n 350583: \"南安市\",\n 350602: \"芗城区\",\n 350603: \"龙文区\",\n 350622: \"云霄县\",\n 350623: \"漳浦县\",\n 350624: \"诏安县\",\n 350625: \"长泰县\",\n 350626: \"东山县\",\n 350627: \"南靖县\",\n 350628: \"平和县\",\n 350629: \"华安县\",\n 350681: \"龙海市\",\n 350702: \"延平区\",\n 350703: \"建阳区\",\n 350721: \"顺昌县\",\n 350722: \"浦城县\",\n 350723: \"光泽县\",\n 350724: \"松溪县\",\n 350725: \"政和县\",\n 350781: \"邵武市\",\n 350782: \"武夷山市\",\n 350783: \"建瓯市\",\n 350802: \"新罗区\",\n 350803: \"永定区\",\n 350821: \"长汀县\",\n 350823: \"上杭县\",\n 350824: \"武平县\",\n 350825: \"连城县\",\n 350881: \"漳平市\",\n 350902: \"蕉城区\",\n 350921: \"霞浦县\",\n 350922: \"古田县\",\n 350923: \"屏南县\",\n 350924: \"寿宁县\",\n 350925: \"周宁县\",\n 350926: \"柘荣县\",\n 350981: \"福安市\",\n 350982: \"福鼎市\",\n 360102: \"东湖区\",\n 360103: \"西湖区\",\n 360104: \"青云谱区\",\n 360111: \"青山湖区\",\n 360112: \"新建区\",\n 360113: \"红谷滩区\",\n 360121: \"南昌县\",\n 360123: \"安义县\",\n 360124: \"进贤县\",\n 360190: \"经济技术开发区\",\n 360192: \"高新区\",\n 360202: \"昌江区\",\n 360203: \"珠山区\",\n 360222: \"浮梁县\",\n 360281: \"乐平市\",\n 360302: \"安源区\",\n 360313: \"湘东区\",\n 360321: \"莲花县\",\n 360322: \"上栗县\",\n 360323: \"芦溪县\",\n 360402: \"濂溪区\",\n 360403: \"浔阳区\",\n 360404: \"柴桑区\",\n 360423: \"武宁县\",\n 360424: \"修水县\",\n 360425: \"永修县\",\n 360426: \"德安县\",\n 360428: \"都昌县\",\n 360429: \"湖口县\",\n 360430: \"彭泽县\",\n 360481: \"瑞昌市\",\n 360482: \"共青城市\",\n 360483: \"庐山市\",\n 360490: \"经济技术开发区\",\n 360502: \"渝水区\",\n 360521: \"分宜县\",\n 360602: \"月湖区\",\n 360603: \"余江区\",\n 360681: \"贵溪市\",\n 360702: \"章贡区\",\n 360703: \"南康区\",\n 360704: \"赣县区\",\n 360722: \"信丰县\",\n 360723: \"大余县\",\n 360724: \"上犹县\",\n 360725: \"崇义县\",\n 360726: \"安远县\",\n 360728: \"定南县\",\n 360729: \"全南县\",\n 360730: \"宁都县\",\n 360731: \"于都县\",\n 360732: \"兴国县\",\n 360733: \"会昌县\",\n 360734: \"寻乌县\",\n 360735: \"石城县\",\n 360781: \"瑞金市\",\n 360783: \"龙南市\",\n 360802: \"吉州区\",\n 360803: \"青原区\",\n 360821: \"吉安县\",\n 360822: \"吉水县\",\n 360823: \"峡江县\",\n 360824: \"新干县\",\n 360825: \"永丰县\",\n 360826: \"泰和县\",\n 360827: \"遂川县\",\n 360828: \"万安县\",\n 360829: \"安福县\",\n 360830: \"永新县\",\n 360881: \"井冈山市\",\n 360902: \"袁州区\",\n 360921: \"奉新县\",\n 360922: \"万载县\",\n 360923: \"上高县\",\n 360924: \"宜丰县\",\n 360925: \"靖安县\",\n 360926: \"铜鼓县\",\n 360981: \"丰城市\",\n 360982: \"樟树市\",\n 360983: \"高安市\",\n 361002: \"临川区\",\n 361003: \"东乡区\",\n 361021: \"南城县\",\n 361022: \"黎川县\",\n 361023: \"南丰县\",\n 361024: \"崇仁县\",\n 361025: \"乐安县\",\n 361026: \"宜黄县\",\n 361027: \"金溪县\",\n 361028: \"资溪县\",\n 361030: \"广昌县\",\n 361102: \"信州区\",\n 361103: \"广丰区\",\n 361104: \"广信区\",\n 361123: \"玉山县\",\n 361124: \"铅山县\",\n 361125: \"横峰县\",\n 361126: \"弋阳县\",\n 361127: \"余干县\",\n 361128: \"鄱阳县\",\n 361129: \"万年县\",\n 361130: \"婺源县\",\n 361181: \"德兴市\",\n 370102: \"历下区\",\n 370103: \"市中区\",\n 370104: \"槐荫区\",\n 370105: \"天桥区\",\n 370112: \"历城区\",\n 370113: \"长清区\",\n 370114: \"章丘区\",\n 370115: \"济阳区\",\n 370116: \"莱芜区\",\n 370117: \"钢城区\",\n 370124: \"平阴县\",\n 370126: \"商河县\",\n 370171: \"济南高新技术产业开发区\",\n 370190: \"高新区\",\n 370202: \"市南区\",\n 370203: \"市北区\",\n 370211: \"黄岛区\",\n 370212: \"崂山区\",\n 370213: \"李沧区\",\n 370214: \"城阳区\",\n 370215: \"即墨区\",\n 370271: \"青岛高新技术产业开发区\",\n 370281: \"胶州市\",\n 370283: \"平度市\",\n 370285: \"莱西市\",\n 370290: \"开发区\",\n 370302: \"淄川区\",\n 370303: \"张店区\",\n 370304: \"博山区\",\n 370305: \"临淄区\",\n 370306: \"周村区\",\n 370321: \"桓台县\",\n 370322: \"高青县\",\n 370323: \"沂源县\",\n 370402: \"市中区\",\n 370403: \"薛城区\",\n 370404: \"峄城区\",\n 370405: \"台儿庄区\",\n 370406: \"山亭区\",\n 370481: \"滕州市\",\n 370502: \"东营区\",\n 370503: \"河口区\",\n 370505: \"垦利区\",\n 370522: \"利津县\",\n 370523: \"广饶县\",\n 370571: \"东营经济技术开发区\",\n 370572: \"东营港经济开发区\",\n 370602: \"芝罘区\",\n 370611: \"福山区\",\n 370612: \"牟平区\",\n 370613: \"莱山区\",\n 370634: \"长岛县\",\n 370671: \"烟台高新技术产业开发区\",\n 370672: \"烟台经济技术开发区\",\n 370681: \"龙口市\",\n 370682: \"莱阳市\",\n 370683: \"莱州市\",\n 370684: \"蓬莱市\",\n 370685: \"招远市\",\n 370686: \"栖霞市\",\n 370687: \"海阳市\",\n 370690: \"开发区\",\n 370702: \"潍城区\",\n 370703: \"寒亭区\",\n 370704: \"坊子区\",\n 370705: \"奎文区\",\n 370724: \"临朐县\",\n 370725: \"昌乐县\",\n 370772: \"潍坊滨海经济技术开发区\",\n 370781: \"青州市\",\n 370782: \"诸城市\",\n 370783: \"寿光市\",\n 370784: \"安丘市\",\n 370785: \"高密市\",\n 370786: \"昌邑市\",\n 370790: \"开发区\",\n 370791: \"高新区\",\n 370811: \"任城区\",\n 370812: \"兖州区\",\n 370826: \"微山县\",\n 370827: \"鱼台县\",\n 370828: \"金乡县\",\n 370829: \"嘉祥县\",\n 370830: \"汶上县\",\n 370831: \"泗水县\",\n 370832: \"梁山县\",\n 370871: \"济宁高新技术产业开发区\",\n 370881: \"曲阜市\",\n 370883: \"邹城市\",\n 370890: \"高新区\",\n 370902: \"泰山区\",\n 370911: \"岱岳区\",\n 370921: \"宁阳县\",\n 370923: \"东平县\",\n 370982: \"新泰市\",\n 370983: \"肥城市\",\n 371002: \"环翠区\",\n 371003: \"文登区\",\n 371071: \"威海火炬高技术产业开发区\",\n 371072: \"威海经济技术开发区\",\n 371082: \"荣成市\",\n 371083: \"乳山市\",\n 371091: \"经济技术开发区\",\n 371102: \"东港区\",\n 371103: \"岚山区\",\n 371121: \"五莲县\",\n 371122: \"莒县\",\n 371171: \"日照经济技术开发区\",\n 371302: \"兰山区\",\n 371311: \"罗庄区\",\n 371312: \"河东区\",\n 371321: \"沂南县\",\n 371322: \"郯城县\",\n 371323: \"沂水县\",\n 371324: \"兰陵县\",\n 371325: \"费县\",\n 371326: \"平邑县\",\n 371327: \"莒南县\",\n 371328: \"蒙阴县\",\n 371329: \"临沭县\",\n 371371: \"临沂高新技术产业开发区\",\n 371402: \"德城区\",\n 371403: \"陵城区\",\n 371422: \"宁津县\",\n 371423: \"庆云县\",\n 371424: \"临邑县\",\n 371425: \"齐河县\",\n 371426: \"平原县\",\n 371427: \"夏津县\",\n 371428: \"武城县\",\n 371472: \"德州运河经济开发区\",\n 371481: \"乐陵市\",\n 371482: \"禹城市\",\n 371502: \"东昌府区\",\n 371503: \"茌平区\",\n 371521: \"阳谷县\",\n 371522: \"莘县\",\n 371524: \"东阿县\",\n 371525: \"冠县\",\n 371526: \"高唐县\",\n 371581: \"临清市\",\n 371602: \"滨城区\",\n 371603: \"沾化区\",\n 371621: \"惠民县\",\n 371622: \"阳信县\",\n 371623: \"无棣县\",\n 371625: \"博兴县\",\n 371681: \"邹平市\",\n 371702: \"牡丹区\",\n 371703: \"定陶区\",\n 371721: \"曹县\",\n 371722: \"单县\",\n 371723: \"成武县\",\n 371724: \"巨野县\",\n 371725: \"郓城县\",\n 371726: \"鄄城县\",\n 371728: \"东明县\",\n 371771: \"菏泽经济技术开发区\",\n 371772: \"菏泽高新技术开发区\",\n 410102: \"中原区\",\n 410103: \"二七区\",\n 410104: \"管城回族区\",\n 410105: \"金水区\",\n 410106: \"上街区\",\n 410108: \"惠济区\",\n 410122: \"中牟县\",\n 410171: \"郑州经济技术开发区\",\n 410172: \"郑州高新技术产业开发区\",\n 410173: \"郑州航空港经济综合实验区\",\n 410181: \"巩义市\",\n 410182: \"荥阳市\",\n 410183: \"新密市\",\n 410184: \"新郑市\",\n 410185: \"登封市\",\n 410190: \"高新技术开发区\",\n 410191: \"经济技术开发区\",\n 410202: \"龙亭区\",\n 410203: \"顺河回族区\",\n 410204: \"鼓楼区\",\n 410205: \"禹王台区\",\n 410212: \"祥符区\",\n 410221: \"杞县\",\n 410222: \"通许县\",\n 410223: \"尉氏县\",\n 410225: \"兰考县\",\n 410302: \"老城区\",\n 410303: \"西工区\",\n 410304: \"瀍河回族区\",\n 410305: \"涧西区\",\n 410306: \"吉利区\",\n 410311: \"洛龙区\",\n 410322: \"孟津县\",\n 410323: \"新安县\",\n 410324: \"栾川县\",\n 410325: \"嵩县\",\n 410326: \"汝阳县\",\n 410327: \"宜阳县\",\n 410328: \"洛宁县\",\n 410329: \"伊川县\",\n 410381: \"偃师市\",\n 410402: \"新华区\",\n 410403: \"卫东区\",\n 410404: \"石龙区\",\n 410411: \"湛河区\",\n 410421: \"宝丰县\",\n 410422: \"叶县\",\n 410423: \"鲁山县\",\n 410425: \"郏县\",\n 410471: \"平顶山高新技术产业开发区\",\n 410481: \"舞钢市\",\n 410482: \"汝州市\",\n 410502: \"文峰区\",\n 410503: \"北关区\",\n 410505: \"殷都区\",\n 410506: \"龙安区\",\n 410522: \"安阳县\",\n 410523: \"汤阴县\",\n 410526: \"滑县\",\n 410527: \"内黄县\",\n 410581: \"林州市\",\n 410590: \"开发区\",\n 410602: \"鹤山区\",\n 410603: \"山城区\",\n 410611: \"淇滨区\",\n 410621: \"浚县\",\n 410622: \"淇县\",\n 410702: \"红旗区\",\n 410703: \"卫滨区\",\n 410704: \"凤泉区\",\n 410711: \"牧野区\",\n 410721: \"新乡县\",\n 410724: \"获嘉县\",\n 410725: \"原阳县\",\n 410726: \"延津县\",\n 410727: \"封丘县\",\n 410771: \"新乡高新技术产业开发区\",\n 410772: \"新乡经济技术开发区\",\n 410781: \"卫辉市\",\n 410782: \"辉县市\",\n 410783: \"长垣市\",\n 410802: \"解放区\",\n 410803: \"中站区\",\n 410804: \"马村区\",\n 410811: \"山阳区\",\n 410821: \"修武县\",\n 410822: \"博爱县\",\n 410823: \"武陟县\",\n 410825: \"温县\",\n 410871: \"焦作城乡一体化示范区\",\n 410882: \"沁阳市\",\n 410883: \"孟州市\",\n 410902: \"华龙区\",\n 410922: \"清丰县\",\n 410923: \"南乐县\",\n 410926: \"范县\",\n 410927: \"台前县\",\n 410928: \"濮阳县\",\n 410971: \"河南濮阳工业园区\",\n 411002: \"魏都区\",\n 411003: \"建安区\",\n 411024: \"鄢陵县\",\n 411025: \"襄城县\",\n 411071: \"许昌经济技术开发区\",\n 411081: \"禹州市\",\n 411082: \"长葛市\",\n 411102: \"源汇区\",\n 411103: \"郾城区\",\n 411104: \"召陵区\",\n 411121: \"舞阳县\",\n 411122: \"临颍县\",\n 411171: \"漯河经济技术开发区\",\n 411202: \"湖滨区\",\n 411203: \"陕州区\",\n 411221: \"渑池县\",\n 411224: \"卢氏县\",\n 411271: \"河南三门峡经济开发区\",\n 411281: \"义马市\",\n 411282: \"灵宝市\",\n 411302: \"宛城区\",\n 411303: \"卧龙区\",\n 411321: \"南召县\",\n 411322: \"方城县\",\n 411323: \"西峡县\",\n 411324: \"镇平县\",\n 411325: \"内乡县\",\n 411326: \"淅川县\",\n 411327: \"社旗县\",\n 411328: \"唐河县\",\n 411329: \"新野县\",\n 411330: \"桐柏县\",\n 411372: \"南阳市城乡一体化示范区\",\n 411381: \"邓州市\",\n 411402: \"梁园区\",\n 411403: \"睢阳区\",\n 411421: \"民权县\",\n 411422: \"睢县\",\n 411423: \"宁陵县\",\n 411424: \"柘城县\",\n 411425: \"虞城县\",\n 411426: \"夏邑县\",\n 411481: \"永城市\",\n 411502: \"浉河区\",\n 411503: \"平桥区\",\n 411521: \"罗山县\",\n 411522: \"光山县\",\n 411523: \"新县\",\n 411524: \"商城县\",\n 411525: \"固始县\",\n 411526: \"潢川县\",\n 411527: \"淮滨县\",\n 411528: \"息县\",\n 411602: \"川汇区\",\n 411603: \"淮阳区\",\n 411621: \"扶沟县\",\n 411622: \"西华县\",\n 411623: \"商水县\",\n 411624: \"沈丘县\",\n 411625: \"郸城县\",\n 411627: \"太康县\",\n 411628: \"鹿邑县\",\n 411671: \"河南周口经济开发区\",\n 411681: \"项城市\",\n 411690: \"经济开发区\",\n 411702: \"驿城区\",\n 411721: \"西平县\",\n 411722: \"上蔡县\",\n 411723: \"平舆县\",\n 411724: \"正阳县\",\n 411725: \"确山县\",\n 411726: \"泌阳县\",\n 411727: \"汝南县\",\n 411728: \"遂平县\",\n 411729: \"新蔡县\",\n 419001: \"济源市\",\n 420102: \"江岸区\",\n 420103: \"江汉区\",\n 420104: \"硚口区\",\n 420105: \"汉阳区\",\n 420106: \"武昌区\",\n 420107: \"青山区\",\n 420111: \"洪山区\",\n 420112: \"东西湖区\",\n 420113: \"汉南区\",\n 420114: \"蔡甸区\",\n 420115: \"江夏区\",\n 420116: \"黄陂区\",\n 420117: \"新洲区\",\n 420202: \"黄石港区\",\n 420203: \"西塞山区\",\n 420204: \"下陆区\",\n 420205: \"铁山区\",\n 420222: \"阳新县\",\n 420281: \"大冶市\",\n 420302: \"茅箭区\",\n 420303: \"张湾区\",\n 420304: \"郧阳区\",\n 420322: \"郧西县\",\n 420323: \"竹山县\",\n 420324: \"竹溪县\",\n 420325: \"房县\",\n 420381: \"丹江口市\",\n 420502: \"西陵区\",\n 420503: \"伍家岗区\",\n 420504: \"点军区\",\n 420505: \"猇亭区\",\n 420506: \"夷陵区\",\n 420525: \"远安县\",\n 420526: \"兴山县\",\n 420527: \"秭归县\",\n 420528: \"长阳土家族自治县\",\n 420529: \"五峰土家族自治县\",\n 420581: \"宜都市\",\n 420582: \"当阳市\",\n 420583: \"枝江市\",\n 420590: \"经济开发区\",\n 420602: \"襄城区\",\n 420606: \"樊城区\",\n 420607: \"襄州区\",\n 420624: \"南漳县\",\n 420625: \"谷城县\",\n 420626: \"保康县\",\n 420682: \"老河口市\",\n 420683: \"枣阳市\",\n 420684: \"宜城市\",\n 420702: \"梁子湖区\",\n 420703: \"华容区\",\n 420704: \"鄂城区\",\n 420802: \"东宝区\",\n 420804: \"掇刀区\",\n 420822: \"沙洋县\",\n 420881: \"钟祥市\",\n 420882: \"京山市\",\n 420902: \"孝南区\",\n 420921: \"孝昌县\",\n 420922: \"大悟县\",\n 420923: \"云梦县\",\n 420981: \"应城市\",\n 420982: \"安陆市\",\n 420984: \"汉川市\",\n 421002: \"沙市区\",\n 421003: \"荆州区\",\n 421022: \"公安县\",\n 421023: \"监利县\",\n 421024: \"江陵县\",\n 421081: \"石首市\",\n 421083: \"洪湖市\",\n 421087: \"松滋市\",\n 421102: \"黄州区\",\n 421121: \"团风县\",\n 421122: \"红安县\",\n 421123: \"罗田县\",\n 421124: \"英山县\",\n 421125: \"浠水县\",\n 421126: \"蕲春县\",\n 421127: \"黄梅县\",\n 421171: \"龙感湖管理区\",\n 421181: \"麻城市\",\n 421182: \"武穴市\",\n 421202: \"咸安区\",\n 421221: \"嘉鱼县\",\n 421222: \"通城县\",\n 421223: \"崇阳县\",\n 421224: \"通山县\",\n 421281: \"赤壁市\",\n 421303: \"曾都区\",\n 421321: \"随县\",\n 421381: \"广水市\",\n 422801: \"恩施市\",\n 422802: \"利川市\",\n 422822: \"建始县\",\n 422823: \"巴东县\",\n 422825: \"宣恩县\",\n 422826: \"咸丰县\",\n 422827: \"来凤县\",\n 422828: \"鹤峰县\",\n 429004: \"仙桃市\",\n 429005: \"潜江市\",\n 429006: \"天门市\",\n 429021: \"神农架林区\",\n 430102: \"芙蓉区\",\n 430103: \"天心区\",\n 430104: \"岳麓区\",\n 430105: \"开福区\",\n 430111: \"雨花区\",\n 430112: \"望城区\",\n 430121: \"长沙县\",\n 430181: \"浏阳市\",\n 430182: \"宁乡市\",\n 430202: \"荷塘区\",\n 430203: \"芦淞区\",\n 430204: \"石峰区\",\n 430211: \"天元区\",\n 430212: \"渌口区\",\n 430223: \"攸县\",\n 430224: \"茶陵县\",\n 430225: \"炎陵县\",\n 430271: \"云龙示范区\",\n 430281: \"醴陵市\",\n 430302: \"雨湖区\",\n 430304: \"岳塘区\",\n 430321: \"湘潭县\",\n 430373: \"湘潭九华示范区\",\n 430381: \"湘乡市\",\n 430382: \"韶山市\",\n 430405: \"珠晖区\",\n 430406: \"雁峰区\",\n 430407: \"石鼓区\",\n 430408: \"蒸湘区\",\n 430412: \"南岳区\",\n 430421: \"衡阳县\",\n 430422: \"衡南县\",\n 430423: \"衡山县\",\n 430424: \"衡东县\",\n 430426: \"祁东县\",\n 430481: \"耒阳市\",\n 430482: \"常宁市\",\n 430502: \"双清区\",\n 430503: \"大祥区\",\n 430511: \"北塔区\",\n 430522: \"新邵县\",\n 430523: \"邵阳县\",\n 430524: \"隆回县\",\n 430525: \"洞口县\",\n 430527: \"绥宁县\",\n 430528: \"新宁县\",\n 430529: \"城步苗族自治县\",\n 430581: \"武冈市\",\n 430582: \"邵东市\",\n 430602: \"岳阳楼区\",\n 430603: \"云溪区\",\n 430611: \"君山区\",\n 430621: \"岳阳县\",\n 430623: \"华容县\",\n 430624: \"湘阴县\",\n 430626: \"平江县\",\n 430681: \"汨罗市\",\n 430682: \"临湘市\",\n 430702: \"武陵区\",\n 430703: \"鼎城区\",\n 430721: \"安乡县\",\n 430722: \"汉寿县\",\n 430723: \"澧县\",\n 430724: \"临澧县\",\n 430725: \"桃源县\",\n 430726: \"石门县\",\n 430781: \"津市市\",\n 430802: \"永定区\",\n 430811: \"武陵源区\",\n 430821: \"慈利县\",\n 430822: \"桑植县\",\n 430902: \"资阳区\",\n 430903: \"赫山区\",\n 430921: \"南县\",\n 430922: \"桃江县\",\n 430923: \"安化县\",\n 430971: \"益阳市大通湖管理区\",\n 430981: \"沅江市\",\n 431002: \"北湖区\",\n 431003: \"苏仙区\",\n 431021: \"桂阳县\",\n 431022: \"宜章县\",\n 431023: \"永兴县\",\n 431024: \"嘉禾县\",\n 431025: \"临武县\",\n 431026: \"汝城县\",\n 431027: \"桂东县\",\n 431028: \"安仁县\",\n 431081: \"资兴市\",\n 431102: \"零陵区\",\n 431103: \"冷水滩区\",\n 431121: \"祁阳县\",\n 431122: \"东安县\",\n 431123: \"双牌县\",\n 431124: \"道县\",\n 431125: \"江永县\",\n 431126: \"宁远县\",\n 431127: \"蓝山县\",\n 431128: \"新田县\",\n 431129: \"江华瑶族自治县\",\n 431202: \"鹤城区\",\n 431221: \"中方县\",\n 431222: \"沅陵县\",\n 431223: \"辰溪县\",\n 431224: \"溆浦县\",\n 431225: \"会同县\",\n 431226: \"麻阳苗族自治县\",\n 431227: \"新晃侗族自治县\",\n 431228: \"芷江侗族自治县\",\n 431229: \"靖州苗族侗族自治县\",\n 431230: \"通道侗族自治县\",\n 431271: \"怀化市洪江管理区\",\n 431281: \"洪江市\",\n 431302: \"娄星区\",\n 431321: \"双峰县\",\n 431322: \"新化县\",\n 431381: \"冷水江市\",\n 431382: \"涟源市\",\n 433101: \"吉首市\",\n 433122: \"泸溪县\",\n 433123: \"凤凰县\",\n 433124: \"花垣县\",\n 433125: \"保靖县\",\n 433126: \"古丈县\",\n 433127: \"永顺县\",\n 433130: \"龙山县\",\n 440103: \"荔湾区\",\n 440104: \"越秀区\",\n 440105: \"海珠区\",\n 440106: \"天河区\",\n 440111: \"白云区\",\n 440112: \"黄埔区\",\n 440113: \"番禺区\",\n 440114: \"花都区\",\n 440115: \"南沙区\",\n 440117: \"从化区\",\n 440118: \"增城区\",\n 440203: \"武江区\",\n 440204: \"浈江区\",\n 440205: \"曲江区\",\n 440222: \"始兴县\",\n 440224: \"仁化县\",\n 440229: \"翁源县\",\n 440232: \"乳源瑶族自治县\",\n 440233: \"新丰县\",\n 440281: \"乐昌市\",\n 440282: \"南雄市\",\n 440303: \"罗湖区\",\n 440304: \"福田区\",\n 440305: \"南山区\",\n 440306: \"宝安区\",\n 440307: \"龙岗区\",\n 440308: \"盐田区\",\n 440309: \"龙华区\",\n 440310: \"坪山区\",\n 440311: \"光明区\",\n 440402: \"香洲区\",\n 440403: \"斗门区\",\n 440404: \"金湾区\",\n 440507: \"龙湖区\",\n 440511: \"金平区\",\n 440512: \"濠江区\",\n 440513: \"潮阳区\",\n 440514: \"潮南区\",\n 440515: \"澄海区\",\n 440523: \"南澳县\",\n 440604: \"禅城区\",\n 440605: \"南海区\",\n 440606: \"顺德区\",\n 440607: \"三水区\",\n 440608: \"高明区\",\n 440703: \"蓬江区\",\n 440704: \"江海区\",\n 440705: \"新会区\",\n 440781: \"台山市\",\n 440783: \"开平市\",\n 440784: \"鹤山市\",\n 440785: \"恩平市\",\n 440802: \"赤坎区\",\n 440803: \"霞山区\",\n 440804: \"坡头区\",\n 440811: \"麻章区\",\n 440823: \"遂溪县\",\n 440825: \"徐闻县\",\n 440881: \"廉江市\",\n 440882: \"雷州市\",\n 440883: \"吴川市\",\n 440890: \"经济技术开发区\",\n 440902: \"茂南区\",\n 440904: \"电白区\",\n 440981: \"高州市\",\n 440982: \"化州市\",\n 440983: \"信宜市\",\n 441202: \"端州区\",\n 441203: \"鼎湖区\",\n 441204: \"高要区\",\n 441223: \"广宁县\",\n 441224: \"怀集县\",\n 441225: \"封开县\",\n 441226: \"德庆县\",\n 441284: \"四会市\",\n 441302: \"惠城区\",\n 441303: \"惠阳区\",\n 441322: \"博罗县\",\n 441323: \"惠东县\",\n 441324: \"龙门县\",\n 441402: \"梅江区\",\n 441403: \"梅县区\",\n 441422: \"大埔县\",\n 441423: \"丰顺县\",\n 441424: \"五华县\",\n 441426: \"平远县\",\n 441427: \"蕉岭县\",\n 441481: \"兴宁市\",\n 441502: \"城区\",\n 441521: \"海丰县\",\n 441523: \"陆河县\",\n 441581: \"陆丰市\",\n 441602: \"源城区\",\n 441621: \"紫金县\",\n 441622: \"龙川县\",\n 441623: \"连平县\",\n 441624: \"和平县\",\n 441625: \"东源县\",\n 441702: \"江城区\",\n 441704: \"阳东区\",\n 441721: \"阳西县\",\n 441781: \"阳春市\",\n 441802: \"清城区\",\n 441803: \"清新区\",\n 441821: \"佛冈县\",\n 441823: \"阳山县\",\n 441825: \"连山壮族瑶族自治县\",\n 441826: \"连南瑶族自治县\",\n 441881: \"英德市\",\n 441882: \"连州市\",\n 441901: \"中堂镇\",\n 441903: \"南城街道\",\n 441904: \"长安镇\",\n 441905: \"东坑镇\",\n 441906: \"樟木头镇\",\n 441907: \"莞城街道\",\n 441908: \"石龙镇\",\n 441909: \"桥头镇\",\n 441910: \"万江街道\",\n 441911: \"麻涌镇\",\n 441912: \"虎门镇\",\n 441913: \"谢岗镇\",\n 441914: \"石碣镇\",\n 441915: \"茶山镇\",\n 441916: \"东城街道\",\n 441917: \"洪梅镇\",\n 441918: \"道滘镇\",\n 441919: \"高埗镇\",\n 441920: \"企石镇\",\n 441921: \"凤岗镇\",\n 441922: \"大岭山镇\",\n 441923: \"松山湖\",\n 441924: \"清溪镇\",\n 441925: \"望牛墩镇\",\n 441926: \"厚街镇\",\n 441927: \"常平镇\",\n 441928: \"寮步镇\",\n 441929: \"石排镇\",\n 441930: \"横沥镇\",\n 441931: \"塘厦镇\",\n 441932: \"黄江镇\",\n 441933: \"大朗镇\",\n 441934: \"东莞港\",\n 441935: \"东莞生态园\",\n 441990: \"沙田镇\",\n 442001: \"南头镇\",\n 442002: \"神湾镇\",\n 442003: \"东凤镇\",\n 442004: \"五桂山街道\",\n 442005: \"黄圃镇\",\n 442006: \"小榄镇\",\n 442007: \"石岐街道\",\n 442008: \"横栏镇\",\n 442009: \"三角镇\",\n 442010: \"三乡镇\",\n 442011: \"港口镇\",\n 442012: \"沙溪镇\",\n 442013: \"板芙镇\",\n 442015: \"东升镇\",\n 442016: \"阜沙镇\",\n 442017: \"民众镇\",\n 442018: \"东区街道\",\n 442019: \"火炬开发区街道办事处\",\n 442020: \"西区街道\",\n 442021: \"南区街道\",\n 442022: \"古镇镇\",\n 442023: \"坦洲镇\",\n 442024: \"大涌镇\",\n 442025: \"南朗镇\",\n 445102: \"湘桥区\",\n 445103: \"潮安区\",\n 445122: \"饶平县\",\n 445202: \"榕城区\",\n 445203: \"揭东区\",\n 445222: \"揭西县\",\n 445224: \"惠来县\",\n 445281: \"普宁市\",\n 445302: \"云城区\",\n 445303: \"云安区\",\n 445321: \"新兴县\",\n 445322: \"郁南县\",\n 445381: \"罗定市\",\n 450102: \"兴宁区\",\n 450103: \"青秀区\",\n 450105: \"江南区\",\n 450107: \"西乡塘区\",\n 450108: \"良庆区\",\n 450109: \"邕宁区\",\n 450110: \"武鸣区\",\n 450123: \"隆安县\",\n 450124: \"马山县\",\n 450125: \"上林县\",\n 450126: \"宾阳县\",\n 450127: \"横县\",\n 450202: \"城中区\",\n 450203: \"鱼峰区\",\n 450204: \"柳南区\",\n 450205: \"柳北区\",\n 450206: \"柳江区\",\n 450222: \"柳城县\",\n 450223: \"鹿寨县\",\n 450224: \"融安县\",\n 450225: \"融水苗族自治县\",\n 450226: \"三江侗族自治县\",\n 450302: \"秀峰区\",\n 450303: \"叠彩区\",\n 450304: \"象山区\",\n 450305: \"七星区\",\n 450311: \"雁山区\",\n 450312: \"临桂区\",\n 450321: \"阳朔县\",\n 450323: \"灵川县\",\n 450324: \"全州县\",\n 450325: \"兴安县\",\n 450326: \"永福县\",\n 450327: \"灌阳县\",\n 450328: \"龙胜各族自治县\",\n 450329: \"资源县\",\n 450330: \"平乐县\",\n 450332: \"恭城瑶族自治县\",\n 450381: \"荔浦市\",\n 450403: \"万秀区\",\n 450405: \"长洲区\",\n 450406: \"龙圩区\",\n 450421: \"苍梧县\",\n 450422: \"藤县\",\n 450423: \"蒙山县\",\n 450481: \"岑溪市\",\n 450502: \"海城区\",\n 450503: \"银海区\",\n 450512: \"铁山港区\",\n 450521: \"合浦县\",\n 450602: \"港口区\",\n 450603: \"防城区\",\n 450621: \"上思县\",\n 450681: \"东兴市\",\n 450702: \"钦南区\",\n 450703: \"钦北区\",\n 450721: \"灵山县\",\n 450722: \"浦北县\",\n 450802: \"港北区\",\n 450803: \"港南区\",\n 450804: \"覃塘区\",\n 450821: \"平南县\",\n 450881: \"桂平市\",\n 450902: \"玉州区\",\n 450903: \"福绵区\",\n 450921: \"容县\",\n 450922: \"陆川县\",\n 450923: \"博白县\",\n 450924: \"兴业县\",\n 450981: \"北流市\",\n 451002: \"右江区\",\n 451003: \"田阳区\",\n 451022: \"田东县\",\n 451024: \"德保县\",\n 451026: \"那坡县\",\n 451027: \"凌云县\",\n 451028: \"乐业县\",\n 451029: \"田林县\",\n 451030: \"西林县\",\n 451031: \"隆林各族自治县\",\n 451081: \"靖西市\",\n 451082: \"平果市\",\n 451102: \"八步区\",\n 451103: \"平桂区\",\n 451121: \"昭平县\",\n 451122: \"钟山县\",\n 451123: \"富川瑶族自治县\",\n 451202: \"金城江区\",\n 451203: \"宜州区\",\n 451221: \"南丹县\",\n 451222: \"天峨县\",\n 451223: \"凤山县\",\n 451224: \"东兰县\",\n 451225: \"罗城仫佬族自治县\",\n 451226: \"环江毛南族自治县\",\n 451227: \"巴马瑶族自治县\",\n 451228: \"都安瑶族自治县\",\n 451229: \"大化瑶族自治县\",\n 451302: \"兴宾区\",\n 451321: \"忻城县\",\n 451322: \"象州县\",\n 451323: \"武宣县\",\n 451324: \"金秀瑶族自治县\",\n 451381: \"合山市\",\n 451402: \"江州区\",\n 451421: \"扶绥县\",\n 451422: \"宁明县\",\n 451423: \"龙州县\",\n 451424: \"大新县\",\n 451425: \"天等县\",\n 451481: \"凭祥市\",\n 460105: \"秀英区\",\n 460106: \"龙华区\",\n 460107: \"琼山区\",\n 460108: \"美兰区\",\n 460202: \"海棠区\",\n 460203: \"吉阳区\",\n 460204: \"天涯区\",\n 460205: \"崖州区\",\n 460321: \"西沙区\",\n 460322: \"南沙区\",\n 460401: \"那大镇\",\n 460402: \"和庆镇\",\n 460403: \"南丰镇\",\n 460404: \"大成镇\",\n 460405: \"雅星镇\",\n 460406: \"兰洋镇\",\n 460407: \"光村镇\",\n 460408: \"木棠镇\",\n 460409: \"海头镇\",\n 460410: \"峨蔓镇\",\n 460411: \"王五镇\",\n 460412: \"白马井镇\",\n 460413: \"中和镇\",\n 460414: \"排浦镇\",\n 460415: \"东成镇\",\n 460416: \"新州镇\",\n 460417: \"洋浦经济开发区\",\n 460418: \"华南热作学院\",\n 469001: \"五指山市\",\n 469002: \"琼海市\",\n 469005: \"文昌市\",\n 469006: \"万宁市\",\n 469007: \"东方市\",\n 469021: \"定安县\",\n 469022: \"屯昌县\",\n 469023: \"澄迈县\",\n 469024: \"临高县\",\n 469025: \"白沙黎族自治县\",\n 469026: \"昌江黎族自治县\",\n 469027: \"乐东黎族自治县\",\n 469028: \"陵水黎族自治县\",\n 469029: \"保亭黎族苗族自治县\",\n 469030: \"琼中黎族苗族自治县\",\n 500101: \"万州区\",\n 500102: \"涪陵区\",\n 500103: \"渝中区\",\n 500104: \"大渡口区\",\n 500105: \"江北区\",\n 500106: \"沙坪坝区\",\n 500107: \"九龙坡区\",\n 500108: \"南岸区\",\n 500109: \"北碚区\",\n 500110: \"綦江区\",\n 500111: \"大足区\",\n 500112: \"渝北区\",\n 500113: \"巴南区\",\n 500114: \"黔江区\",\n 500115: \"长寿区\",\n 500116: \"江津区\",\n 500117: \"合川区\",\n 500118: \"永川区\",\n 500119: \"南川区\",\n 500120: \"璧山区\",\n 500151: \"铜梁区\",\n 500152: \"潼南区\",\n 500153: \"荣昌区\",\n 500154: \"开州区\",\n 500155: \"梁平区\",\n 500156: \"武隆区\",\n 500229: \"城口县\",\n 500230: \"丰都县\",\n 500231: \"垫江县\",\n 500233: \"忠县\",\n 500235: \"云阳县\",\n 500236: \"奉节县\",\n 500237: \"巫山县\",\n 500238: \"巫溪县\",\n 500240: \"石柱土家族自治县\",\n 500241: \"秀山土家族苗族自治县\",\n 500242: \"酉阳土家族苗族自治县\",\n 500243: \"彭水苗族土家族自治县\",\n 510104: \"锦江区\",\n 510105: \"青羊区\",\n 510106: \"金牛区\",\n 510107: \"武侯区\",\n 510108: \"成华区\",\n 510112: \"龙泉驿区\",\n 510113: \"青白江区\",\n 510114: \"新都区\",\n 510115: \"温江区\",\n 510116: \"双流区\",\n 510117: \"郫都区\",\n 510121: \"金堂县\",\n 510129: \"大邑县\",\n 510131: \"蒲江县\",\n 510132: \"新津县\",\n 510181: \"都江堰市\",\n 510182: \"彭州市\",\n 510183: \"邛崃市\",\n 510184: \"崇州市\",\n 510185: \"简阳市\",\n 510191: \"高新区\",\n 510302: \"自流井区\",\n 510303: \"贡井区\",\n 510304: \"大安区\",\n 510311: \"沿滩区\",\n 510321: \"荣县\",\n 510322: \"富顺县\",\n 510402: \"东区\",\n 510403: \"西区\",\n 510411: \"仁和区\",\n 510421: \"米易县\",\n 510422: \"盐边县\",\n 510502: \"江阳区\",\n 510503: \"纳溪区\",\n 510504: \"龙马潭区\",\n 510521: \"泸县\",\n 510522: \"合江县\",\n 510524: \"叙永县\",\n 510525: \"古蔺县\",\n 510603: \"旌阳区\",\n 510604: \"罗江区\",\n 510623: \"中江县\",\n 510681: \"广汉市\",\n 510682: \"什邡市\",\n 510683: \"绵竹市\",\n 510703: \"涪城区\",\n 510704: \"游仙区\",\n 510705: \"安州区\",\n 510722: \"三台县\",\n 510723: \"盐亭县\",\n 510725: \"梓潼县\",\n 510726: \"北川羌族自治县\",\n 510727: \"平武县\",\n 510781: \"江油市\",\n 510791: \"高新区\",\n 510802: \"利州区\",\n 510811: \"昭化区\",\n 510812: \"朝天区\",\n 510821: \"旺苍县\",\n 510822: \"青川县\",\n 510823: \"剑阁县\",\n 510824: \"苍溪县\",\n 510903: \"船山区\",\n 510904: \"安居区\",\n 510921: \"蓬溪县\",\n 510923: \"大英县\",\n 510981: \"射洪市\",\n 511002: \"市中区\",\n 511011: \"东兴区\",\n 511024: \"威远县\",\n 511025: \"资中县\",\n 511083: \"隆昌市\",\n 511102: \"市中区\",\n 511111: \"沙湾区\",\n 511112: \"五通桥区\",\n 511113: \"金口河区\",\n 511123: \"犍为县\",\n 511124: \"井研县\",\n 511126: \"夹江县\",\n 511129: \"沐川县\",\n 511132: \"峨边彝族自治县\",\n 511133: \"马边彝族自治县\",\n 511181: \"峨眉山市\",\n 511302: \"顺庆区\",\n 511303: \"高坪区\",\n 511304: \"嘉陵区\",\n 511321: \"南部县\",\n 511322: \"营山县\",\n 511323: \"蓬安县\",\n 511324: \"仪陇县\",\n 511325: \"西充县\",\n 511381: \"阆中市\",\n 511402: \"东坡区\",\n 511403: \"彭山区\",\n 511421: \"仁寿县\",\n 511423: \"洪雅县\",\n 511424: \"丹棱县\",\n 511425: \"青神县\",\n 511502: \"翠屏区\",\n 511503: \"南溪区\",\n 511504: \"叙州区\",\n 511523: \"江安县\",\n 511524: \"长宁县\",\n 511525: \"高县\",\n 511526: \"珙县\",\n 511527: \"筠连县\",\n 511528: \"兴文县\",\n 511529: \"屏山县\",\n 511602: \"广安区\",\n 511603: \"前锋区\",\n 511621: \"岳池县\",\n 511622: \"武胜县\",\n 511623: \"邻水县\",\n 511681: \"华蓥市\",\n 511702: \"通川区\",\n 511703: \"达川区\",\n 511722: \"宣汉县\",\n 511723: \"开江县\",\n 511724: \"大竹县\",\n 511725: \"渠县\",\n 511781: \"万源市\",\n 511802: \"雨城区\",\n 511803: \"名山区\",\n 511822: \"荥经县\",\n 511823: \"汉源县\",\n 511824: \"石棉县\",\n 511825: \"天全县\",\n 511826: \"芦山县\",\n 511827: \"宝兴县\",\n 511902: \"巴州区\",\n 511903: \"恩阳区\",\n 511921: \"通江县\",\n 511922: \"南江县\",\n 511923: \"平昌县\",\n 511971: \"巴中经济开发区\",\n 512002: \"雁江区\",\n 512021: \"安岳县\",\n 512022: \"乐至县\",\n 513201: \"马尔康市\",\n 513221: \"汶川县\",\n 513222: \"理县\",\n 513223: \"茂县\",\n 513224: \"松潘县\",\n 513225: \"九寨沟县\",\n 513226: \"金川县\",\n 513227: \"小金县\",\n 513228: \"黑水县\",\n 513230: \"壤塘县\",\n 513231: \"阿坝县\",\n 513232: \"若尔盖县\",\n 513233: \"红原县\",\n 513301: \"康定市\",\n 513322: \"泸定县\",\n 513323: \"丹巴县\",\n 513324: \"九龙县\",\n 513325: \"雅江县\",\n 513326: \"道孚县\",\n 513327: \"炉霍县\",\n 513328: \"甘孜县\",\n 513329: \"新龙县\",\n 513330: \"德格县\",\n 513331: \"白玉县\",\n 513332: \"石渠县\",\n 513333: \"色达县\",\n 513334: \"理塘县\",\n 513335: \"巴塘县\",\n 513336: \"乡城县\",\n 513337: \"稻城县\",\n 513338: \"得荣县\",\n 513401: \"西昌市\",\n 513422: \"木里藏族自治县\",\n 513423: \"盐源县\",\n 513424: \"德昌县\",\n 513425: \"会理县\",\n 513426: \"会东县\",\n 513427: \"宁南县\",\n 513428: \"普格县\",\n 513429: \"布拖县\",\n 513430: \"金阳县\",\n 513431: \"昭觉县\",\n 513432: \"喜德县\",\n 513433: \"冕宁县\",\n 513434: \"越西县\",\n 513435: \"甘洛县\",\n 513436: \"美姑县\",\n 513437: \"雷波县\",\n 520102: \"南明区\",\n 520103: \"云岩区\",\n 520111: \"花溪区\",\n 520112: \"乌当区\",\n 520113: \"白云区\",\n 520115: \"观山湖区\",\n 520121: \"开阳县\",\n 520122: \"息烽县\",\n 520123: \"修文县\",\n 520181: \"清镇市\",\n 520201: \"钟山区\",\n 520203: \"六枝特区\",\n 520221: \"水城县\",\n 520281: \"盘州市\",\n 520302: \"红花岗区\",\n 520303: \"汇川区\",\n 520304: \"播州区\",\n 520322: \"桐梓县\",\n 520323: \"绥阳县\",\n 520324: \"正安县\",\n 520325: \"道真仡佬族苗族自治县\",\n 520326: \"务川仡佬族苗族自治县\",\n 520327: \"凤冈县\",\n 520328: \"湄潭县\",\n 520329: \"余庆县\",\n 520330: \"习水县\",\n 520381: \"赤水市\",\n 520382: \"仁怀市\",\n 520402: \"西秀区\",\n 520403: \"平坝区\",\n 520422: \"普定县\",\n 520423: \"镇宁布依族苗族自治县\",\n 520424: \"关岭布依族苗族自治县\",\n 520425: \"紫云苗族布依族自治县\",\n 520502: \"七星关区\",\n 520521: \"大方县\",\n 520522: \"黔西县\",\n 520523: \"金沙县\",\n 520524: \"织金县\",\n 520525: \"纳雍县\",\n 520526: \"威宁彝族回族苗族自治县\",\n 520527: \"赫章县\",\n 520602: \"碧江区\",\n 520603: \"万山区\",\n 520621: \"江口县\",\n 520622: \"玉屏侗族自治县\",\n 520623: \"石阡县\",\n 520624: \"思南县\",\n 520625: \"印江土家族苗族自治县\",\n 520626: \"德江县\",\n 520627: \"沿河土家族自治县\",\n 520628: \"松桃苗族自治县\",\n 522301: \"兴义市\",\n 522302: \"兴仁市\",\n 522323: \"普安县\",\n 522324: \"晴隆县\",\n 522325: \"贞丰县\",\n 522326: \"望谟县\",\n 522327: \"册亨县\",\n 522328: \"安龙县\",\n 522601: \"凯里市\",\n 522622: \"黄平县\",\n 522623: \"施秉县\",\n 522624: \"三穗县\",\n 522625: \"镇远县\",\n 522626: \"岑巩县\",\n 522627: \"天柱县\",\n 522628: \"锦屏县\",\n 522629: \"剑河县\",\n 522630: \"台江县\",\n 522631: \"黎平县\",\n 522632: \"榕江县\",\n 522633: \"从江县\",\n 522634: \"雷山县\",\n 522635: \"麻江县\",\n 522636: \"丹寨县\",\n 522701: \"都匀市\",\n 522702: \"福泉市\",\n 522722: \"荔波县\",\n 522723: \"贵定县\",\n 522725: \"瓮安县\",\n 522726: \"独山县\",\n 522727: \"平塘县\",\n 522728: \"罗甸县\",\n 522729: \"长顺县\",\n 522730: \"龙里县\",\n 522731: \"惠水县\",\n 522732: \"三都水族自治县\",\n 530102: \"五华区\",\n 530103: \"盘龙区\",\n 530111: \"官渡区\",\n 530112: \"西山区\",\n 530113: \"东川区\",\n 530114: \"呈贡区\",\n 530115: \"晋宁区\",\n 530124: \"富民县\",\n 530125: \"宜良县\",\n 530126: \"石林彝族自治县\",\n 530127: \"嵩明县\",\n 530128: \"禄劝彝族苗族自治县\",\n 530129: \"寻甸回族彝族自治县\",\n 530181: \"安宁市\",\n 530302: \"麒麟区\",\n 530303: \"沾益区\",\n 530304: \"马龙区\",\n 530322: \"陆良县\",\n 530323: \"师宗县\",\n 530324: \"罗平县\",\n 530325: \"富源县\",\n 530326: \"会泽县\",\n 530381: \"宣威市\",\n 530402: \"红塔区\",\n 530403: \"江川区\",\n 530423: \"通海县\",\n 530424: \"华宁县\",\n 530425: \"易门县\",\n 530426: \"峨山彝族自治县\",\n 530427: \"新平彝族傣族自治县\",\n 530428: \"元江哈尼族彝族傣族自治县\",\n 530481: \"澄江市\",\n 530502: \"隆阳区\",\n 530521: \"施甸县\",\n 530523: \"龙陵县\",\n 530524: \"昌宁县\",\n 530581: \"腾冲市\",\n 530602: \"昭阳区\",\n 530621: \"鲁甸县\",\n 530622: \"巧家县\",\n 530623: \"盐津县\",\n 530624: \"大关县\",\n 530625: \"永善县\",\n 530626: \"绥江县\",\n 530627: \"镇雄县\",\n 530628: \"彝良县\",\n 530629: \"威信县\",\n 530681: \"水富市\",\n 530702: \"古城区\",\n 530721: \"玉龙纳西族自治县\",\n 530722: \"永胜县\",\n 530723: \"华坪县\",\n 530724: \"宁蒗彝族自治县\",\n 530802: \"思茅区\",\n 530821: \"宁洱哈尼族彝族自治县\",\n 530822: \"墨江哈尼族自治县\",\n 530823: \"景东彝族自治县\",\n 530824: \"景谷傣族彝族自治县\",\n 530825: \"镇沅彝族哈尼族拉祜族自治县\",\n 530826: \"江城哈尼族彝族自治县\",\n 530827: \"孟连傣族拉祜族佤族自治县\",\n 530828: \"澜沧拉祜族自治县\",\n 530829: \"西盟佤族自治县\",\n 530902: \"临翔区\",\n 530921: \"凤庆县\",\n 530922: \"云县\",\n 530923: \"永德县\",\n 530924: \"镇康县\",\n 530925: \"双江拉祜族佤族布朗族傣族自治县\",\n 530926: \"耿马傣族佤族自治县\",\n 530927: \"沧源佤族自治县\",\n 532301: \"楚雄市\",\n 532322: \"双柏县\",\n 532323: \"牟定县\",\n 532324: \"南华县\",\n 532325: \"姚安县\",\n 532326: \"大姚县\",\n 532327: \"永仁县\",\n 532328: \"元谋县\",\n 532329: \"武定县\",\n 532331: \"禄丰县\",\n 532501: \"个旧市\",\n 532502: \"开远市\",\n 532503: \"蒙自市\",\n 532504: \"弥勒市\",\n 532523: \"屏边苗族自治县\",\n 532524: \"建水县\",\n 532525: \"石屏县\",\n 532527: \"泸西县\",\n 532528: \"元阳县\",\n 532529: \"红河县\",\n 532530: \"金平苗族瑶族傣族自治县\",\n 532531: \"绿春县\",\n 532532: \"河口瑶族自治县\",\n 532601: \"文山市\",\n 532622: \"砚山县\",\n 532623: \"西畴县\",\n 532624: \"麻栗坡县\",\n 532625: \"马关县\",\n 532626: \"丘北县\",\n 532627: \"广南县\",\n 532628: \"富宁县\",\n 532801: \"景洪市\",\n 532822: \"勐海县\",\n 532823: \"勐腊县\",\n 532901: \"大理市\",\n 532922: \"漾濞彝族自治县\",\n 532923: \"祥云县\",\n 532924: \"宾川县\",\n 532925: \"弥渡县\",\n 532926: \"南涧彝族自治县\",\n 532927: \"巍山彝族回族自治县\",\n 532928: \"永平县\",\n 532929: \"云龙县\",\n 532930: \"洱源县\",\n 532931: \"剑川县\",\n 532932: \"鹤庆县\",\n 533102: \"瑞丽市\",\n 533103: \"芒市\",\n 533122: \"梁河县\",\n 533123: \"盈江县\",\n 533124: \"陇川县\",\n 533301: \"泸水市\",\n 533323: \"福贡县\",\n 533324: \"贡山独龙族怒族自治县\",\n 533325: \"兰坪白族普米族自治县\",\n 533401: \"香格里拉市\",\n 533422: \"德钦县\",\n 533423: \"维西傈僳族自治县\",\n 540102: \"城关区\",\n 540103: \"堆龙德庆区\",\n 540104: \"达孜区\",\n 540121: \"林周县\",\n 540122: \"当雄县\",\n 540123: \"尼木县\",\n 540124: \"曲水县\",\n 540127: \"墨竹工卡县\",\n 540202: \"桑珠孜区\",\n 540221: \"南木林县\",\n 540222: \"江孜县\",\n 540223: \"定日县\",\n 540224: \"萨迦县\",\n 540225: \"拉孜县\",\n 540226: \"昂仁县\",\n 540227: \"谢通门县\",\n 540228: \"白朗县\",\n 540229: \"仁布县\",\n 540230: \"康马县\",\n 540231: \"定结县\",\n 540232: \"仲巴县\",\n 540233: \"亚东县\",\n 540234: \"吉隆县\",\n 540235: \"聂拉木县\",\n 540236: \"萨嘎县\",\n 540237: \"岗巴县\",\n 540302: \"卡若区\",\n 540321: \"江达县\",\n 540322: \"贡觉县\",\n 540323: \"类乌齐县\",\n 540324: \"丁青县\",\n 540325: \"察雅县\",\n 540326: \"八宿县\",\n 540327: \"左贡县\",\n 540328: \"芒康县\",\n 540329: \"洛隆县\",\n 540330: \"边坝县\",\n 540402: \"巴宜区\",\n 540421: \"工布江达县\",\n 540422: \"米林县\",\n 540423: \"墨脱县\",\n 540424: \"波密县\",\n 540425: \"察隅县\",\n 540426: \"朗县\",\n 540502: \"乃东区\",\n 540521: \"扎囊县\",\n 540522: \"贡嘎县\",\n 540523: \"桑日县\",\n 540524: \"琼结县\",\n 540525: \"曲松县\",\n 540526: \"措美县\",\n 540527: \"洛扎县\",\n 540528: \"加查县\",\n 540529: \"隆子县\",\n 540530: \"错那县\",\n 540531: \"浪卡子县\",\n 540602: \"色尼区\",\n 540621: \"嘉黎县\",\n 540622: \"比如县\",\n 540623: \"聂荣县\",\n 540624: \"安多县\",\n 540625: \"申扎县\",\n 540626: \"索县\",\n 540627: \"班戈县\",\n 540628: \"巴青县\",\n 540629: \"尼玛县\",\n 540630: \"双湖县\",\n 542521: \"普兰县\",\n 542522: \"札达县\",\n 542523: \"噶尔县\",\n 542524: \"日土县\",\n 542525: \"革吉县\",\n 542526: \"改则县\",\n 542527: \"措勤县\",\n 610102: \"新城区\",\n 610103: \"碑林区\",\n 610104: \"莲湖区\",\n 610111: \"灞桥区\",\n 610112: \"未央区\",\n 610113: \"雁塔区\",\n 610114: \"阎良区\",\n 610115: \"临潼区\",\n 610116: \"长安区\",\n 610117: \"高陵区\",\n 610118: \"鄠邑区\",\n 610122: \"蓝田县\",\n 610124: \"周至县\",\n 610202: \"王益区\",\n 610203: \"印台区\",\n 610204: \"耀州区\",\n 610222: \"宜君县\",\n 610302: \"渭滨区\",\n 610303: \"金台区\",\n 610304: \"陈仓区\",\n 610322: \"凤翔县\",\n 610323: \"岐山县\",\n 610324: \"扶风县\",\n 610326: \"眉县\",\n 610327: \"陇县\",\n 610328: \"千阳县\",\n 610329: \"麟游县\",\n 610330: \"凤县\",\n 610331: \"太白县\",\n 610402: \"秦都区\",\n 610403: \"杨陵区\",\n 610404: \"渭城区\",\n 610422: \"三原县\",\n 610423: \"泾阳县\",\n 610424: \"乾县\",\n 610425: \"礼泉县\",\n 610426: \"永寿县\",\n 610428: \"长武县\",\n 610429: \"旬邑县\",\n 610430: \"淳化县\",\n 610431: \"武功县\",\n 610481: \"兴平市\",\n 610482: \"彬州市\",\n 610502: \"临渭区\",\n 610503: \"华州区\",\n 610522: \"潼关县\",\n 610523: \"大荔县\",\n 610524: \"合阳县\",\n 610525: \"澄城县\",\n 610526: \"蒲城县\",\n 610527: \"白水县\",\n 610528: \"富平县\",\n 610581: \"韩城市\",\n 610582: \"华阴市\",\n 610602: \"宝塔区\",\n 610603: \"安塞区\",\n 610621: \"延长县\",\n 610622: \"延川县\",\n 610625: \"志丹县\",\n 610626: \"吴起县\",\n 610627: \"甘泉县\",\n 610628: \"富县\",\n 610629: \"洛川县\",\n 610630: \"宜川县\",\n 610631: \"黄龙县\",\n 610632: \"黄陵县\",\n 610681: \"子长市\",\n 610702: \"汉台区\",\n 610703: \"南郑区\",\n 610722: \"城固县\",\n 610723: \"洋县\",\n 610724: \"西乡县\",\n 610725: \"勉县\",\n 610726: \"宁强县\",\n 610727: \"略阳县\",\n 610728: \"镇巴县\",\n 610729: \"留坝县\",\n 610730: \"佛坪县\",\n 610802: \"榆阳区\",\n 610803: \"横山区\",\n 610822: \"府谷县\",\n 610824: \"靖边县\",\n 610825: \"定边县\",\n 610826: \"绥德县\",\n 610827: \"米脂县\",\n 610828: \"佳县\",\n 610829: \"吴堡县\",\n 610830: \"清涧县\",\n 610831: \"子洲县\",\n 610881: \"神木市\",\n 610902: \"汉滨区\",\n 610921: \"汉阴县\",\n 610922: \"石泉县\",\n 610923: \"宁陕县\",\n 610924: \"紫阳县\",\n 610925: \"岚皋县\",\n 610926: \"平利县\",\n 610927: \"镇坪县\",\n 610928: \"旬阳县\",\n 610929: \"白河县\",\n 611002: \"商州区\",\n 611021: \"洛南县\",\n 611022: \"丹凤县\",\n 611023: \"商南县\",\n 611024: \"山阳县\",\n 611025: \"镇安县\",\n 611026: \"柞水县\",\n 620102: \"城关区\",\n 620103: \"七里河区\",\n 620104: \"西固区\",\n 620105: \"安宁区\",\n 620111: \"红古区\",\n 620121: \"永登县\",\n 620122: \"皋兰县\",\n 620123: \"榆中县\",\n 620171: \"兰州新区\",\n 620201: \"市辖区\",\n 620290: \"雄关区\",\n 620291: \"长城区\",\n 620292: \"镜铁区\",\n 620293: \"新城镇\",\n 620294: \"峪泉镇\",\n 620295: \"文殊镇\",\n 620302: \"金川区\",\n 620321: \"永昌县\",\n 620402: \"白银区\",\n 620403: \"平川区\",\n 620421: \"靖远县\",\n 620422: \"会宁县\",\n 620423: \"景泰县\",\n 620502: \"秦州区\",\n 620503: \"麦积区\",\n 620521: \"清水县\",\n 620522: \"秦安县\",\n 620523: \"甘谷县\",\n 620524: \"武山县\",\n 620525: \"张家川回族自治县\",\n 620602: \"凉州区\",\n 620621: \"民勤县\",\n 620622: \"古浪县\",\n 620623: \"天祝藏族自治县\",\n 620702: \"甘州区\",\n 620721: \"肃南裕固族自治县\",\n 620722: \"民乐县\",\n 620723: \"临泽县\",\n 620724: \"高台县\",\n 620725: \"山丹县\",\n 620802: \"崆峒区\",\n 620821: \"泾川县\",\n 620822: \"灵台县\",\n 620823: \"崇信县\",\n 620825: \"庄浪县\",\n 620826: \"静宁县\",\n 620881: \"华亭市\",\n 620902: \"肃州区\",\n 620921: \"金塔县\",\n 620922: \"瓜州县\",\n 620923: \"肃北蒙古族自治县\",\n 620924: \"阿克塞哈萨克族自治县\",\n 620981: \"玉门市\",\n 620982: \"敦煌市\",\n 621002: \"西峰区\",\n 621021: \"庆城县\",\n 621022: \"环县\",\n 621023: \"华池县\",\n 621024: \"合水县\",\n 621025: \"正宁县\",\n 621026: \"宁县\",\n 621027: \"镇原县\",\n 621102: \"安定区\",\n 621121: \"通渭县\",\n 621122: \"陇西县\",\n 621123: \"渭源县\",\n 621124: \"临洮县\",\n 621125: \"漳县\",\n 621126: \"岷县\",\n 621202: \"武都区\",\n 621221: \"成县\",\n 621222: \"文县\",\n 621223: \"宕昌县\",\n 621224: \"康县\",\n 621225: \"西和县\",\n 621226: \"礼县\",\n 621227: \"徽县\",\n 621228: \"两当县\",\n 622901: \"临夏市\",\n 622921: \"临夏县\",\n 622922: \"康乐县\",\n 622923: \"永靖县\",\n 622924: \"广河县\",\n 622925: \"和政县\",\n 622926: \"东乡族自治县\",\n 622927: \"积石山保安族东乡族撒拉族自治县\",\n 623001: \"合作市\",\n 623021: \"临潭县\",\n 623022: \"卓尼县\",\n 623023: \"舟曲县\",\n 623024: \"迭部县\",\n 623025: \"玛曲县\",\n 623026: \"碌曲县\",\n 623027: \"夏河县\",\n 630102: \"城东区\",\n 630103: \"城中区\",\n 630104: \"城西区\",\n 630105: \"城北区\",\n 630106: \"湟中区\",\n 630121: \"大通回族土族自治县\",\n 630123: \"湟源县\",\n 630202: \"乐都区\",\n 630203: \"平安区\",\n 630222: \"民和回族土族自治县\",\n 630223: \"互助土族自治县\",\n 630224: \"化隆回族自治县\",\n 630225: \"循化撒拉族自治县\",\n 632221: \"门源回族自治县\",\n 632222: \"祁连县\",\n 632223: \"海晏县\",\n 632224: \"刚察县\",\n 632321: \"同仁县\",\n 632322: \"尖扎县\",\n 632323: \"泽库县\",\n 632324: \"河南蒙古族自治县\",\n 632521: \"共和县\",\n 632522: \"同德县\",\n 632523: \"贵德县\",\n 632524: \"兴海县\",\n 632525: \"贵南县\",\n 632621: \"玛沁县\",\n 632622: \"班玛县\",\n 632623: \"甘德县\",\n 632624: \"达日县\",\n 632625: \"久治县\",\n 632626: \"玛多县\",\n 632701: \"玉树市\",\n 632722: \"杂多县\",\n 632723: \"称多县\",\n 632724: \"治多县\",\n 632725: \"囊谦县\",\n 632726: \"曲麻莱县\",\n 632801: \"格尔木市\",\n 632802: \"德令哈市\",\n 632803: \"茫崖市\",\n 632821: \"乌兰县\",\n 632822: \"都兰县\",\n 632823: \"天峻县\",\n 632857: \"大柴旦行政委员会\",\n 640104: \"兴庆区\",\n 640105: \"西夏区\",\n 640106: \"金凤区\",\n 640121: \"永宁县\",\n 640122: \"贺兰县\",\n 640181: \"灵武市\",\n 640202: \"大武口区\",\n 640205: \"惠农区\",\n 640221: \"平罗县\",\n 640302: \"利通区\",\n 640303: \"红寺堡区\",\n 640323: \"盐池县\",\n 640324: \"同心县\",\n 640381: \"青铜峡市\",\n 640402: \"原州区\",\n 640422: \"西吉县\",\n 640423: \"隆德县\",\n 640424: \"泾源县\",\n 640425: \"彭阳县\",\n 640502: \"沙坡头区\",\n 640521: \"中宁县\",\n 640522: \"海原县\",\n 650102: \"天山区\",\n 650103: \"沙依巴克区\",\n 650104: \"新市区\",\n 650105: \"水磨沟区\",\n 650106: \"头屯河区\",\n 650107: \"达坂城区\",\n 650109: \"米东区\",\n 650121: \"乌鲁木齐县\",\n 650202: \"独山子区\",\n 650203: \"克拉玛依区\",\n 650204: \"白碱滩区\",\n 650205: \"乌尔禾区\",\n 650402: \"高昌区\",\n 650421: \"鄯善县\",\n 650422: \"托克逊县\",\n 650502: \"伊州区\",\n 650521: \"巴里坤哈萨克自治县\",\n 650522: \"伊吾县\",\n 652301: \"昌吉市\",\n 652302: \"阜康市\",\n 652323: \"呼图壁县\",\n 652324: \"玛纳斯县\",\n 652325: \"奇台县\",\n 652327: \"吉木萨尔县\",\n 652328: \"木垒哈萨克自治县\",\n 652701: \"博乐市\",\n 652702: \"阿拉山口市\",\n 652722: \"精河县\",\n 652723: \"温泉县\",\n 652801: \"库尔勒市\",\n 652822: \"轮台县\",\n 652823: \"尉犁县\",\n 652824: \"若羌县\",\n 652825: \"且末县\",\n 652826: \"焉耆回族自治县\",\n 652827: \"和静县\",\n 652828: \"和硕县\",\n 652829: \"博湖县\",\n 652901: \"阿克苏市\",\n 652902: \"库车市\",\n 652922: \"温宿县\",\n 652924: \"沙雅县\",\n 652925: \"新和县\",\n 652926: \"拜城县\",\n 652927: \"乌什县\",\n 652928: \"阿瓦提县\",\n 652929: \"柯坪县\",\n 653001: \"阿图什市\",\n 653022: \"阿克陶县\",\n 653023: \"阿合奇县\",\n 653024: \"乌恰县\",\n 653101: \"喀什市\",\n 653121: \"疏附县\",\n 653122: \"疏勒县\",\n 653123: \"英吉沙县\",\n 653124: \"泽普县\",\n 653125: \"莎车县\",\n 653126: \"叶城县\",\n 653127: \"麦盖提县\",\n 653128: \"岳普湖县\",\n 653129: \"伽师县\",\n 653130: \"巴楚县\",\n 653131: \"塔什库尔干塔吉克自治县\",\n 653201: \"和田市\",\n 653221: \"和田县\",\n 653222: \"墨玉县\",\n 653223: \"皮山县\",\n 653224: \"洛浦县\",\n 653225: \"策勒县\",\n 653226: \"于田县\",\n 653227: \"民丰县\",\n 654002: \"伊宁市\",\n 654003: \"奎屯市\",\n 654004: \"霍尔果斯市\",\n 654021: \"伊宁县\",\n 654022: \"察布查尔锡伯自治县\",\n 654023: \"霍城县\",\n 654024: \"巩留县\",\n 654025: \"新源县\",\n 654026: \"昭苏县\",\n 654027: \"特克斯县\",\n 654028: \"尼勒克县\",\n 654201: \"塔城市\",\n 654202: \"乌苏市\",\n 654221: \"额敏县\",\n 654223: \"沙湾县\",\n 654224: \"托里县\",\n 654225: \"裕民县\",\n 654226: \"和布克赛尔蒙古自治县\",\n 654301: \"阿勒泰市\",\n 654321: \"布尔津县\",\n 654322: \"富蕴县\",\n 654323: \"福海县\",\n 654324: \"哈巴河县\",\n 654325: \"青河县\",\n 654326: \"吉木乃县\",\n 659001: \"石河子市\",\n 659002: \"阿拉尔市\",\n 659003: \"图木舒克市\",\n 659004: \"五家渠市\",\n 659005: \"北屯市\",\n 659006: \"铁门关市\",\n 659007: \"双河市\",\n 659008: \"可克达拉市\",\n 659009: \"昆玉市\",\n 659010: \"胡杨河市\",\n 710101: \"中正区\",\n 710102: \"大同区\",\n 710103: \"中山区\",\n 710104: \"松山区\",\n 710105: \"大安区\",\n 710106: \"万华区\",\n 710107: \"信义区\",\n 710108: \"士林区\",\n 710109: \"北投区\",\n 710110: \"内湖区\",\n 710111: \"南港区\",\n 710112: \"文山区\",\n 710199: \"其它区\",\n 710201: \"新兴区\",\n 710202: \"前金区\",\n 710203: \"芩雅区\",\n 710204: \"盐埕区\",\n 710205: \"鼓山区\",\n 710206: \"旗津区\",\n 710207: \"前镇区\",\n 710208: \"三民区\",\n 710209: \"左营区\",\n 710210: \"楠梓区\",\n 710211: \"小港区\",\n 710241: \"苓雅区\",\n 710242: \"仁武区\",\n 710243: \"大社区\",\n 710244: \"冈山区\",\n 710245: \"路竹区\",\n 710246: \"阿莲区\",\n 710247: \"田寮区\",\n 710248: \"燕巢区\",\n 710249: \"桥头区\",\n 710250: \"梓官区\",\n 710251: \"弥陀区\",\n 710252: \"永安区\",\n 710253: \"湖内区\",\n 710254: \"凤山区\",\n 710255: \"大寮区\",\n 710256: \"林园区\",\n 710257: \"鸟松区\",\n 710258: \"大树区\",\n 710259: \"旗山区\",\n 710260: \"美浓区\",\n 710261: \"六龟区\",\n 710262: \"内门区\",\n 710263: \"杉林区\",\n 710264: \"甲仙区\",\n 710265: \"桃源区\",\n 710266: \"那玛夏区\",\n 710267: \"茂林区\",\n 710268: \"茄萣区\",\n 710299: \"其它区\",\n 710301: \"中西区\",\n 710302: \"东区\",\n 710303: \"南区\",\n 710304: \"北区\",\n 710305: \"安平区\",\n 710306: \"安南区\",\n 710339: \"永康区\",\n 710340: \"归仁区\",\n 710341: \"新化区\",\n 710342: \"左镇区\",\n 710343: \"玉井区\",\n 710344: \"楠西区\",\n 710345: \"南化区\",\n 710346: \"仁德区\",\n 710347: \"关庙区\",\n 710348: \"龙崎区\",\n 710349: \"官田区\",\n 710350: \"麻豆区\",\n 710351: \"佳里区\",\n 710352: \"西港区\",\n 710353: \"七股区\",\n 710354: \"将军区\",\n 710355: \"学甲区\",\n 710356: \"北门区\",\n 710357: \"新营区\",\n 710358: \"后壁区\",\n 710359: \"白河区\",\n 710360: \"东山区\",\n 710361: \"六甲区\",\n 710362: \"下营区\",\n 710363: \"柳营区\",\n 710364: \"盐水区\",\n 710365: \"善化区\",\n 710366: \"大内区\",\n 710367: \"山上区\",\n 710368: \"新市区\",\n 710369: \"安定区\",\n 710399: \"其它区\",\n 710401: \"中区\",\n 710402: \"东区\",\n 710403: \"南区\",\n 710404: \"西区\",\n 710405: \"北区\",\n 710406: \"北屯区\",\n 710407: \"西屯区\",\n 710408: \"南屯区\",\n 710431: \"太平区\",\n 710432: \"大里区\",\n 710433: \"雾峰区\",\n 710434: \"乌日区\",\n 710435: \"丰原区\",\n 710436: \"后里区\",\n 710437: \"石冈区\",\n 710438: \"东势区\",\n 710439: \"和平区\",\n 710440: \"新社区\",\n 710441: \"潭子区\",\n 710442: \"大雅区\",\n 710443: \"神冈区\",\n 710444: \"大肚区\",\n 710445: \"沙鹿区\",\n 710446: \"龙井区\",\n 710447: \"梧栖区\",\n 710448: \"清水区\",\n 710449: \"大甲区\",\n 710450: \"外埔区\",\n 710451: \"大安区\",\n 710499: \"其它区\",\n 710507: \"金沙镇\",\n 710508: \"金湖镇\",\n 710509: \"金宁乡\",\n 710510: \"金城镇\",\n 710511: \"烈屿乡\",\n 710512: \"乌坵乡\",\n 710614: \"南投市\",\n 710615: \"中寮乡\",\n 710616: \"草屯镇\",\n 710617: \"国姓乡\",\n 710618: \"埔里镇\",\n 710619: \"仁爱乡\",\n 710620: \"名间乡\",\n 710621: \"集集镇\",\n 710622: \"水里乡\",\n 710623: \"鱼池乡\",\n 710624: \"信义乡\",\n 710625: \"竹山镇\",\n 710626: \"鹿谷乡\",\n 710701: \"仁爱区\",\n 710702: \"信义区\",\n 710703: \"中正区\",\n 710704: \"中山区\",\n 710705: \"安乐区\",\n 710706: \"暖暖区\",\n 710707: \"七堵区\",\n 710799: \"其它区\",\n 710801: \"东区\",\n 710802: \"北区\",\n 710803: \"香山区\",\n 710899: \"其它区\",\n 710901: \"东区\",\n 710902: \"西区\",\n 710999: \"其它区\",\n 711130: \"万里区\",\n 711132: \"板桥区\",\n 711133: \"汐止区\",\n 711134: \"深坑区\",\n 711135: \"石碇区\",\n 711136: \"瑞芳区\",\n 711137: \"平溪区\",\n 711138: \"双溪区\",\n 711139: \"贡寮区\",\n 711140: \"新店区\",\n 711141: \"坪林区\",\n 711142: \"乌来区\",\n 711143: \"永和区\",\n 711144: \"中和区\",\n 711145: \"土城区\",\n 711146: \"三峡区\",\n 711147: \"树林区\",\n 711148: \"莺歌区\",\n 711149: \"三重区\",\n 711150: \"新庄区\",\n 711151: \"泰山区\",\n 711152: \"林口区\",\n 711153: \"芦洲区\",\n 711154: \"五股区\",\n 711155: \"八里区\",\n 711156: \"淡水区\",\n 711157: \"三芝区\",\n 711158: \"石门区\",\n 711287: \"宜兰市\",\n 711288: \"头城镇\",\n 711289: \"礁溪乡\",\n 711290: \"壮围乡\",\n 711291: \"员山乡\",\n 711292: \"罗东镇\",\n 711293: \"三星乡\",\n 711294: \"大同乡\",\n 711295: \"五结乡\",\n 711296: \"冬山乡\",\n 711297: \"苏澳镇\",\n 711298: \"南澳乡\",\n 711299: \"钓鱼台\",\n 711387: \"竹北市\",\n 711388: \"湖口乡\",\n 711389: \"新丰乡\",\n 711390: \"新埔镇\",\n 711391: \"关西镇\",\n 711392: \"芎林乡\",\n 711393: \"宝山乡\",\n 711394: \"竹东镇\",\n 711395: \"五峰乡\",\n 711396: \"横山乡\",\n 711397: \"尖石乡\",\n 711398: \"北埔乡\",\n 711399: \"峨眉乡\",\n 711414: \"中坜区\",\n 711415: \"平镇区\",\n 711417: \"杨梅区\",\n 711418: \"新屋区\",\n 711419: \"观音区\",\n 711420: \"桃园区\",\n 711421: \"龟山区\",\n 711422: \"八德区\",\n 711423: \"大溪区\",\n 711425: \"大园区\",\n 711426: \"芦竹区\",\n 711487: \"中坜市\",\n 711488: \"平镇市\",\n 711489: \"龙潭乡\",\n 711490: \"杨梅市\",\n 711491: \"新屋乡\",\n 711492: \"观音乡\",\n 711493: \"桃园市\",\n 711494: \"龟山乡\",\n 711495: \"八德市\",\n 711496: \"大溪镇\",\n 711497: \"复兴乡\",\n 711498: \"大园乡\",\n 711499: \"芦竹乡\",\n 711520: \"头份市\",\n 711582: \"竹南镇\",\n 711583: \"头份镇\",\n 711584: \"三湾乡\",\n 711585: \"南庄乡\",\n 711586: \"狮潭乡\",\n 711587: \"后龙镇\",\n 711588: \"通霄镇\",\n 711589: \"苑里镇\",\n 711590: \"苗栗市\",\n 711591: \"造桥乡\",\n 711592: \"头屋乡\",\n 711593: \"公馆乡\",\n 711594: \"大湖乡\",\n 711595: \"泰安乡\",\n 711596: \"铜锣乡\",\n 711597: \"三义乡\",\n 711598: \"西湖乡\",\n 711599: \"卓兰镇\",\n 711736: \"员林市\",\n 711774: \"彰化市\",\n 711775: \"芬园乡\",\n 711776: \"花坛乡\",\n 711777: \"秀水乡\",\n 711778: \"鹿港镇\",\n 711779: \"福兴乡\",\n 711780: \"线西乡\",\n 711781: \"和美镇\",\n 711782: \"伸港乡\",\n 711783: \"员林镇\",\n 711784: \"社头乡\",\n 711785: \"永靖乡\",\n 711786: \"埔心乡\",\n 711787: \"溪湖镇\",\n 711788: \"大村乡\",\n 711789: \"埔盐乡\",\n 711790: \"田中镇\",\n 711791: \"北斗镇\",\n 711792: \"田尾乡\",\n 711793: \"埤头乡\",\n 711794: \"溪州乡\",\n 711795: \"竹塘乡\",\n 711796: \"二林镇\",\n 711797: \"大城乡\",\n 711798: \"芳苑乡\",\n 711799: \"二水乡\",\n 711982: \"番路乡\",\n 711983: \"梅山乡\",\n 711984: \"竹崎乡\",\n 711985: \"阿里山乡\",\n 711986: \"中埔乡\",\n 711987: \"大埔乡\",\n 711988: \"水上乡\",\n 711989: \"鹿草乡\",\n 711990: \"太保市\",\n 711991: \"朴子市\",\n 711992: \"东石乡\",\n 711993: \"六脚乡\",\n 711994: \"新港乡\",\n 711995: \"民雄乡\",\n 711996: \"大林镇\",\n 711997: \"溪口乡\",\n 711998: \"义竹乡\",\n 711999: \"布袋镇\",\n 712180: \"斗南镇\",\n 712181: \"大埤乡\",\n 712182: \"虎尾镇\",\n 712183: \"土库镇\",\n 712184: \"褒忠乡\",\n 712185: \"东势乡\",\n 712186: \"台西乡\",\n 712187: \"仑背乡\",\n 712188: \"麦寮乡\",\n 712189: \"斗六市\",\n 712190: \"林内乡\",\n 712191: \"古坑乡\",\n 712192: \"莿桐乡\",\n 712193: \"西螺镇\",\n 712194: \"二仑乡\",\n 712195: \"北港镇\",\n 712196: \"水林乡\",\n 712197: \"口湖乡\",\n 712198: \"四湖乡\",\n 712199: \"元长乡\",\n 712451: \"崁顶乡\",\n 712467: \"屏东市\",\n 712468: \"三地门乡\",\n 712469: \"雾台乡\",\n 712470: \"玛家乡\",\n 712471: \"九如乡\",\n 712472: \"里港乡\",\n 712473: \"高树乡\",\n 712474: \"盐埔乡\",\n 712475: \"长治乡\",\n 712476: \"麟洛乡\",\n 712477: \"竹田乡\",\n 712478: \"内埔乡\",\n 712479: \"万丹乡\",\n 712480: \"潮州镇\",\n 712481: \"泰武乡\",\n 712482: \"来义乡\",\n 712483: \"万峦乡\",\n 712484: \"莰顶乡\",\n 712485: \"新埤乡\",\n 712486: \"南州乡\",\n 712487: \"林边乡\",\n 712488: \"东港镇\",\n 712489: \"琉球乡\",\n 712490: \"佳冬乡\",\n 712491: \"新园乡\",\n 712492: \"枋寮乡\",\n 712493: \"枋山乡\",\n 712494: \"春日乡\",\n 712495: \"狮子乡\",\n 712496: \"车城乡\",\n 712497: \"牡丹乡\",\n 712498: \"恒春镇\",\n 712499: \"满州乡\",\n 712584: \"台东市\",\n 712585: \"绿岛乡\",\n 712586: \"兰屿乡\",\n 712587: \"延平乡\",\n 712588: \"卑南乡\",\n 712589: \"鹿野乡\",\n 712590: \"关山镇\",\n 712591: \"海端乡\",\n 712592: \"池上乡\",\n 712593: \"东河乡\",\n 712594: \"成功镇\",\n 712595: \"长滨乡\",\n 712596: \"金峰乡\",\n 712597: \"大武乡\",\n 712598: \"达仁乡\",\n 712599: \"太麻里乡\",\n 712686: \"花莲市\",\n 712687: \"新城乡\",\n 712688: \"太鲁阁\",\n 712689: \"秀林乡\",\n 712690: \"吉安乡\",\n 712691: \"寿丰乡\",\n 712692: \"凤林镇\",\n 712693: \"光复乡\",\n 712694: \"丰滨乡\",\n 712695: \"瑞穗乡\",\n 712696: \"万荣乡\",\n 712697: \"玉里镇\",\n 712698: \"卓溪乡\",\n 712699: \"富里乡\",\n 712794: \"马公市\",\n 712795: \"西屿乡\",\n 712796: \"望安乡\",\n 712797: \"七美乡\",\n 712798: \"白沙乡\",\n 712799: \"湖西乡\",\n 712896: \"南竿乡\",\n 712897: \"北竿乡\",\n 712898: \"东引乡\",\n 712899: \"莒光乡\",\n 810101: \"中西区\",\n 810102: \"湾仔区\",\n 810103: \"东区\",\n 810104: \"南区\",\n 810201: \"九龙城区\",\n 810202: \"油尖旺区\",\n 810203: \"深水埗区\",\n 810204: \"黄大仙区\",\n 810205: \"观塘区\",\n 810301: \"北区\",\n 810302: \"大埔区\",\n 810303: \"沙田区\",\n 810304: \"西贡区\",\n 810305: \"元朗区\",\n 810306: \"屯门区\",\n 810307: \"荃湾区\",\n 810308: \"葵青区\",\n 810309: \"离岛区\",\n 820102: \"花地玛堂区\",\n 820103: \"花王堂区\",\n 820104: \"望德堂区\",\n 820105: \"大堂区\",\n 820106: \"风顺堂区\",\n 820202: \"嘉模堂区\",\n 820203: \"路氹填海区\",\n 820204: \"圣方济各堂区\"\n }\n};\nvar makeOption = (text, value, children) => ({\n text,\n value,\n children\n});\nfunction useCascaderAreaData() {\n const {\n city_list: city,\n county_list: county,\n province_list: province\n } = areaList;\n const provinceMap = /* @__PURE__ */ new Map();\n Object.keys(province).forEach((code) => {\n provinceMap.set(code.slice(0, 2), makeOption(province[code], code, []));\n });\n const cityMap = /* @__PURE__ */ new Map();\n Object.keys(city).forEach((code) => {\n const option = makeOption(city[code], code, []);\n cityMap.set(code.slice(0, 4), option);\n const province2 = provinceMap.get(code.slice(0, 2));\n if (province2) {\n province2.children.push(option);\n }\n });\n Object.keys(county).forEach((code) => {\n const city2 = cityMap.get(code.slice(0, 4));\n if (city2) {\n city2.children.push(makeOption(county[code], code));\n }\n });\n return Array.from(provinceMap.values());\n}\n"]} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts b/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.js b/miniprogram_npm/@vant/weapp/action-sheet/index.js new file mode 100644 index 0000000..8403b68 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.js @@ -0,0 +1,78 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +(0, component_1.VantComponent)({ + classes: ['list-class'], + mixins: [button_1.button], + props: { + show: Boolean, + title: String, + cancelText: String, + description: String, + round: { + type: Boolean, + value: true, + }, + zIndex: { + type: Number, + value: 100, + }, + actions: { + type: Array, + value: [], + }, + overlay: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + closeOnClickAction: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + methods: { + onSelect: function (event) { + var _this = this; + var index = event.currentTarget.dataset.index; + var _a = this.data, actions = _a.actions, closeOnClickAction = _a.closeOnClickAction, canIUseGetUserProfile = _a.canIUseGetUserProfile; + var item = actions[index]; + if (item) { + this.$emit('select', item); + if (closeOnClickAction) { + this.onClose(); + } + if (item.openType === 'getUserInfo' && canIUseGetUserProfile) { + wx.getUserProfile({ + desc: item.getUserProfileDesc || ' ', + complete: function (userProfile) { + _this.$emit('getuserinfo', userProfile); + }, + }); + } + } + }, + onCancel: function () { + this.$emit('cancel'); + }, + onClose: function () { + this.$emit('close'); + }, + onClickOverlay: function () { + this.$emit('click-overlay'); + this.onClose(); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.json b/miniprogram_npm/@vant/weapp/action-sheet/index.json new file mode 100644 index 0000000..19bf989 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-popup": "../popup/index", + "van-loading": "../loading/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.wxml b/miniprogram_npm/@vant/weapp/action-sheet/index.wxml new file mode 100644 index 0000000..6311e33 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.wxml @@ -0,0 +1,70 @@ + + + + + {{ title }} + + + + {{ description }} + + + + + + + + + + {{ cancelText }} + + + diff --git a/miniprogram_npm/@vant/weapp/action-sheet/index.wxss b/miniprogram_npm/@vant/weapp/action-sheet/index.wxss new file mode 100644 index 0000000..eedd361 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/action-sheet/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-action-sheet{color:var(--action-sheet-item-text-color,#323233);max-height:var(--action-sheet-max-height,90%)!important}.van-action-sheet__cancel,.van-action-sheet__item{background-color:var(--action-sheet-item-background,#fff);font-size:var(--action-sheet-item-font-size,16px);line-height:var(--action-sheet-item-line-height,22px);padding:14px 16px;text-align:center}.van-action-sheet__cancel--hover,.van-action-sheet__item--hover{background-color:#f2f3f5}.van-action-sheet__cancel:after,.van-action-sheet__item:after{border-width:0}.van-action-sheet__cancel{color:var(--action-sheet-cancel-text-color,#646566)}.van-action-sheet__gap{background-color:var(--action-sheet-cancel-padding-color,#f7f8fa);display:block;height:var(--action-sheet-cancel-padding-top,8px)}.van-action-sheet__item--disabled{color:var(--action-sheet-item-disabled-text-color,#c8c9cc)}.van-action-sheet__item--disabled.van-action-sheet__item--hover{background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__subname{color:var(--action-sheet-subname-color,#969799);font-size:var(--action-sheet-subname-font-size,12px);line-height:var(--action-sheet-subname-line-height,20px);margin-top:var(--padding-xs,8px)}.van-action-sheet__header{font-size:var(--action-sheet-header-font-size,16px);font-weight:var(--font-weight-bold,500);line-height:var(--action-sheet-header-height,48px);text-align:center}.van-action-sheet__description{color:var(--action-sheet-description-color,#969799);font-size:var(--action-sheet-description-font-size,14px);line-height:var(--action-sheet-description-line-height,20px);padding:20px var(--padding-md,16px);text-align:center}.van-action-sheet__close{color:var(--action-sheet-close-icon-color,#c8c9cc);font-size:var(--action-sheet-close-icon-size,22px)!important;line-height:inherit!important;padding:var(--action-sheet-close-icon-padding,0 16px);position:absolute!important;right:0;top:0}.van-action-sheet__loading{display:flex!important} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/area/index.d.ts b/miniprogram_npm/@vant/weapp/area/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/area/index.js b/miniprogram_npm/@vant/weapp/area/index.js new file mode 100644 index 0000000..73de66d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.js @@ -0,0 +1,235 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var shared_1 = require("../picker/shared"); +var utils_1 = require("../common/utils"); +var EMPTY_CODE = '000000'; +(0, component_1.VantComponent)({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { showToolbar: { + type: Boolean, + value: true, + }, value: { + type: String, + observer: function (value) { + this.code = value; + this.setValues(); + }, + }, areaList: { + type: Object, + value: {}, + observer: 'setValues', + }, columnsNum: { + type: null, + value: 3, + }, columnsPlaceholder: { + type: Array, + observer: function (val) { + this.setData({ + typeToColumnsPlaceholder: { + province: val[0] || '', + city: val[1] || '', + county: val[2] || '', + }, + }); + }, + } }), + data: { + columns: [{ values: [] }, { values: [] }, { values: [] }], + typeToColumnsPlaceholder: {}, + }, + mounted: function () { + var _this = this; + (0, utils_1.requestAnimationFrame)(function () { + _this.setValues(); + }); + }, + methods: { + getPicker: function () { + if (this.picker == null) { + this.picker = this.selectComponent('.van-area__picker'); + } + return this.picker; + }, + onCancel: function (event) { + this.emit('cancel', event.detail); + }, + onConfirm: function (event) { + var index = event.detail.index; + var value = event.detail.value; + value = this.parseValues(value); + this.emit('confirm', { value: value, index: index }); + }, + emit: function (type, detail) { + detail.values = detail.value; + delete detail.value; + this.$emit(type, detail); + }, + parseValues: function (values) { + var columnsPlaceholder = this.data.columnsPlaceholder; + return values.map(function (value, index) { + if (value && + (!value.code || value.name === columnsPlaceholder[index])) { + return __assign(__assign({}, value), { code: '', name: '' }); + } + return value; + }); + }, + onChange: function (event) { + var _this = this; + var _a; + var _b = event.detail, index = _b.index, picker = _b.picker, value = _b.value; + this.code = value[index].code; + (_a = this.setValues()) === null || _a === void 0 ? void 0 : _a.then(function () { + _this.$emit('change', { + picker: picker, + values: _this.parseValues(picker.getValues()), + index: index, + }); + }); + }, + getConfig: function (type) { + var areaList = this.data.areaList; + return (areaList && areaList["".concat(type, "_list")]) || {}; + }, + getList: function (type, code) { + if (type !== 'province' && !code) { + return []; + } + var typeToColumnsPlaceholder = this.data.typeToColumnsPlaceholder; + var list = this.getConfig(type); + var result = Object.keys(list).map(function (code) { return ({ + code: code, + name: list[code], + }); }); + if (code != null) { + // oversea code + if (code[0] === '9' && type === 'city') { + code = '9'; + } + result = result.filter(function (item) { return item.code.indexOf(code) === 0; }); + } + if (typeToColumnsPlaceholder[type] && result.length) { + // set columns placeholder + var codeFill = type === 'province' + ? '' + : type === 'city' + ? EMPTY_CODE.slice(2, 4) + : EMPTY_CODE.slice(4, 6); + result.unshift({ + code: "".concat(code).concat(codeFill), + name: typeToColumnsPlaceholder[type], + }); + } + return result; + }, + getIndex: function (type, code) { + var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6; + var list = this.getList(type, code.slice(0, compareNum - 2)); + // oversea code + if (code[0] === '9' && type === 'province') { + compareNum = 1; + } + code = code.slice(0, compareNum); + for (var i = 0; i < list.length; i++) { + if (list[i].code.slice(0, compareNum) === code) { + return i; + } + } + return 0; + }, + setValues: function () { + var picker = this.getPicker(); + if (!picker) { + return; + } + var code = this.code || this.getDefaultCode(); + var provinceList = this.getList('province'); + var cityList = this.getList('city', code.slice(0, 2)); + var stack = []; + var indexes = []; + var columnsNum = this.data.columnsNum; + if (columnsNum >= 1) { + stack.push(picker.setColumnValues(0, provinceList, false)); + indexes.push(this.getIndex('province', code)); + } + if (columnsNum >= 2) { + stack.push(picker.setColumnValues(1, cityList, false)); + indexes.push(this.getIndex('city', code)); + if (cityList.length && code.slice(2, 4) === '00') { + code = cityList[0].code; + } + } + if (columnsNum === 3) { + stack.push(picker.setColumnValues(2, this.getList('county', code.slice(0, 4)), false)); + indexes.push(this.getIndex('county', code)); + } + return Promise.all(stack) + .catch(function () { }) + .then(function () { return picker.setIndexes(indexes); }) + .catch(function () { }); + }, + getDefaultCode: function () { + var columnsPlaceholder = this.data.columnsPlaceholder; + if (columnsPlaceholder.length) { + return EMPTY_CODE; + } + var countyCodes = Object.keys(this.getConfig('county')); + if (countyCodes[0]) { + return countyCodes[0]; + } + var cityCodes = Object.keys(this.getConfig('city')); + if (cityCodes[0]) { + return cityCodes[0]; + } + return ''; + }, + getValues: function () { + var picker = this.getPicker(); + if (!picker) { + return []; + } + return this.parseValues(picker.getValues().filter(function (value) { return !!value; })); + }, + getDetail: function () { + var values = this.getValues(); + var area = { + code: '', + country: '', + province: '', + city: '', + county: '', + }; + if (!values.length) { + return area; + } + var names = values.map(function (item) { return item.name; }); + area.code = values[values.length - 1].code; + if (area.code[0] === '9') { + area.country = names[1] || ''; + area.province = names[2] || ''; + } + else { + area.province = names[0] || ''; + area.city = names[1] || ''; + area.county = names[2] || ''; + } + return area; + }, + reset: function (code) { + this.code = code || ''; + return this.setValues(); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/area/index.json b/miniprogram_npm/@vant/weapp/area/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/area/index.wxml b/miniprogram_npm/@vant/weapp/area/index.wxml new file mode 100644 index 0000000..3a437b7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.wxml @@ -0,0 +1,20 @@ + + + diff --git a/miniprogram_npm/@vant/weapp/area/index.wxs b/miniprogram_npm/@vant/weapp/area/index.wxs new file mode 100644 index 0000000..07723c1 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.wxs @@ -0,0 +1,8 @@ +/* eslint-disable */ +function displayColumns(columns, columnsNum) { + return columns.slice(0, +columnsNum); +} + +module.exports = { + displayColumns: displayColumns, +}; diff --git a/miniprogram_npm/@vant/weapp/area/index.wxss b/miniprogram_npm/@vant/weapp/area/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/area/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/button/index.d.ts b/miniprogram_npm/@vant/weapp/button/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/button/index.js b/miniprogram_npm/@vant/weapp/button/index.js new file mode 100644 index 0000000..984135c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +var version_1 = require("../common/version"); +var mixins = [button_1.button]; +if ((0, version_1.canIUseFormFieldButton)()) { + mixins.push('wx://form-field-button'); +} +(0, component_1.VantComponent)({ + mixins: mixins, + classes: ['hover-class', 'loading-class'], + data: { + baseStyle: '', + }, + props: { + formType: String, + icon: String, + classPrefix: { + type: String, + value: 'van-icon', + }, + plain: Boolean, + block: Boolean, + round: Boolean, + square: Boolean, + loading: Boolean, + hairline: Boolean, + disabled: Boolean, + loadingText: String, + customStyle: String, + loadingType: { + type: String, + value: 'circular', + }, + type: { + type: String, + value: 'default', + }, + dataset: null, + size: { + type: String, + value: 'normal', + }, + loadingSize: { + type: String, + value: '20px', + }, + color: String, + }, + methods: { + onClick: function (event) { + var _this = this; + this.$emit('click', event); + var _a = this.data, canIUseGetUserProfile = _a.canIUseGetUserProfile, openType = _a.openType, getUserProfileDesc = _a.getUserProfileDesc, lang = _a.lang; + if (openType === 'getUserInfo' && canIUseGetUserProfile) { + wx.getUserProfile({ + desc: getUserProfileDesc || ' ', + lang: lang || 'en', + complete: function (userProfile) { + _this.$emit('getuserinfo', userProfile); + }, + }); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/button/index.json b/miniprogram_npm/@vant/weapp/button/index.json new file mode 100644 index 0000000..e00a588 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-loading": "../loading/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/button/index.wxml b/miniprogram_npm/@vant/weapp/button/index.wxml new file mode 100644 index 0000000..e7f60f1 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.wxml @@ -0,0 +1,56 @@ + + + + diff --git a/miniprogram_npm/@vant/weapp/button/index.wxs b/miniprogram_npm/@vant/weapp/button/index.wxs new file mode 100644 index 0000000..8b649fe --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.wxs @@ -0,0 +1,39 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); + +function rootStyle(data) { + if (!data.color) { + return data.customStyle; + } + + var properties = { + color: data.plain ? data.color : '#fff', + background: data.plain ? null : data.color, + }; + + // hide border when color is linear-gradient + if (data.color.indexOf('gradient') !== -1) { + properties.border = 0; + } else { + properties['border-color'] = data.color; + } + + return style([properties, data.customStyle]); +} + +function loadingColor(data) { + if (data.plain) { + return data.color ? data.color : '#c9c9c9'; + } + + if (data.type === 'default') { + return '#c9c9c9'; + } + + return '#fff'; +} + +module.exports = { + rootStyle: rootStyle, + loadingColor: loadingColor, +}; diff --git a/miniprogram_npm/@vant/weapp/button/index.wxss b/miniprogram_npm/@vant/weapp/button/index.wxss new file mode 100644 index 0000000..bd8bb5a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/button/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-button{-webkit-text-size-adjust:100%;align-items:center;-webkit-appearance:none;border-radius:var(--button-border-radius,2px);box-sizing:border-box;display:inline-flex;font-size:var(--button-default-font-size,16px);height:var(--button-default-height,44px);justify-content:center;line-height:var(--button-line-height,20px);padding:0;position:relative;text-align:center;transition:opacity .2s;vertical-align:middle}.van-button:before{background-color:#000;border:inherit;border-color:#000;border-radius:inherit;content:" ";height:100%;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{background:var(--button-default-background-color,#fff);border:var(--button-border-width,1px) solid var(--button-default-border-color,#ebedf0);color:var(--button-default-color,#323233)}.van-button--primary{background:var(--button-primary-background-color,#07c160);border:var(--button-border-width,1px) solid var(--button-primary-border-color,#07c160);color:var(--button-primary-color,#fff)}.van-button--info{background:var(--button-info-background-color,#1989fa);border:var(--button-border-width,1px) solid var(--button-info-border-color,#1989fa);color:var(--button-info-color,#fff)}.van-button--danger{background:var(--button-danger-background-color,#ee0a24);border:var(--button-border-width,1px) solid var(--button-danger-border-color,#ee0a24);color:var(--button-danger-color,#fff)}.van-button--warning{background:var(--button-warning-background-color,#ff976a);border:var(--button-border-width,1px) solid var(--button-warning-border-color,#ff976a);color:var(--button-warning-color,#fff)}.van-button--plain{background:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:var(--button-warning-background-color,#ff976a)}.van-button--large{height:var(--button-large-height,50px);width:100%}.van-button--normal{font-size:var(--button-normal-font-size,14px);padding:0 15px}.van-button--small{font-size:var(--button-small-font-size,12px);height:var(--button-small-height,30px);min-width:var(--button-small-min-width,60px);padding:0 var(--padding-xs,8px)}.van-button--mini{display:inline-block;font-size:var(--button-mini-font-size,10px);height:var(--button-mini-height,22px);min-width:var(--button-mini-min-width,50px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:flex;width:100%}.van-button--round{border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{line-height:inherit!important;min-width:1em;vertical-align:top}.van-button--hairline{border-width:0;padding-top:1px}.van-button--hairline:after{border-color:inherit;border-radius:calc(var(--button-border-radius, 2px)*2);border-width:1px}.van-button--hairline.van-button--round:after{border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/calendar/calendar.wxml b/miniprogram_npm/@vant/weapp/calendar/calendar.wxml new file mode 100644 index 0000000..2ddb048 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/calendar.wxml @@ -0,0 +1,70 @@ + + + +
+ +
+ + + + + + + + + + + + {{ + computed.getButtonDisabled(type, currentDate, minRange) + ? confirmDisabledText + : confirmText + }} + + +
diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts b/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.js b/miniprogram_npm/@vant/weapp/calendar/components/header/index.js new file mode 100644 index 0000000..544b3a4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.js @@ -0,0 +1,45 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../../../common/component"); +(0, component_1.VantComponent)({ + props: { + title: { + type: String, + value: '日期选择', + }, + subtitle: String, + showTitle: Boolean, + showSubtitle: Boolean, + firstDayOfWeek: { + type: Number, + observer: 'initWeekDay', + }, + }, + data: { + weekdays: [], + }, + created: function () { + this.initWeekDay(); + }, + methods: { + initWeekDay: function () { + var defaultWeeks = ['日', '一', '二', '三', '四', '五', '六']; + var firstDayOfWeek = this.data.firstDayOfWeek || 0; + this.setData({ + weekdays: __spreadArray(__spreadArray([], defaultWeeks.slice(firstDayOfWeek, 7), true), defaultWeeks.slice(0, firstDayOfWeek), true), + }); + }, + onClickSubtitle: function (event) { + this.$emit('click-subtitle', event); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.json b/miniprogram_npm/@vant/weapp/calendar/components/header/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml b/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml new file mode 100644 index 0000000..7e56c83 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml @@ -0,0 +1,16 @@ + + + + {{ title }} + + + + {{ subtitle }} + + + + + {{ item }} + + + diff --git a/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss b/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss new file mode 100644 index 0000000..272537e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar__header{box-shadow:var(--calendar-header-box-shadow,0 2px 10px hsla(220,1%,50%,.16));flex-shrink:0}.van-calendar__header-subtitle,.van-calendar__header-title{font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__header-title+.van-calendar__header-title,.van-calendar__header-title:empty{display:none}.van-calendar__header-title:empty+.van-calendar__header-title{display:block!important}.van-calendar__weekdays{display:flex}.van-calendar__weekday{flex:1;font-size:var(--calendar-weekdays-font-size,12px);line-height:var(--calendar-weekdays-height,30px);text-align:center} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts b/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts new file mode 100644 index 0000000..3ccf85a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts @@ -0,0 +1,6 @@ +export interface Day { + date: Date; + type: string; + text: number; + bottomInfo?: string; +} diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.js b/miniprogram_npm/@vant/weapp/calendar/components/month/index.js new file mode 100644 index 0000000..4d137f5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.js @@ -0,0 +1,158 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../../../common/component"); +var utils_1 = require("../../utils"); +(0, component_1.VantComponent)({ + props: { + date: { + type: null, + observer: 'setDays', + }, + type: { + type: String, + observer: 'setDays', + }, + color: String, + minDate: { + type: null, + observer: 'setDays', + }, + maxDate: { + type: null, + observer: 'setDays', + }, + showMark: Boolean, + rowHeight: null, + formatter: { + type: null, + observer: 'setDays', + }, + currentDate: { + type: null, + observer: 'setDays', + }, + firstDayOfWeek: { + type: Number, + observer: 'setDays', + }, + allowSameDay: Boolean, + showSubtitle: Boolean, + showMonthTitle: Boolean, + }, + data: { + visible: true, + days: [], + }, + methods: { + onClick: function (event) { + var index = event.currentTarget.dataset.index; + var item = this.data.days[index]; + if (item.type !== 'disabled') { + this.$emit('click', item); + } + }, + setDays: function () { + var days = []; + var startDate = new Date(this.data.date); + var year = startDate.getFullYear(); + var month = startDate.getMonth(); + var totalDay = (0, utils_1.getMonthEndDay)(startDate.getFullYear(), startDate.getMonth() + 1); + for (var day = 1; day <= totalDay; day++) { + var date = new Date(year, month, day); + var type = this.getDayType(date); + var config = { + date: date, + type: type, + text: day, + bottomInfo: this.getBottomInfo(type), + }; + if (this.data.formatter) { + config = this.data.formatter(config); + } + days.push(config); + } + this.setData({ days: days }); + }, + getMultipleDayType: function (day) { + var currentDate = this.data.currentDate; + if (!Array.isArray(currentDate)) { + return ''; + } + var isSelected = function (date) { + return currentDate.some(function (item) { return (0, utils_1.compareDay)(item, date) === 0; }); + }; + if (isSelected(day)) { + var prevDay = (0, utils_1.getPrevDay)(day); + var nextDay = (0, utils_1.getNextDay)(day); + var prevSelected = isSelected(prevDay); + var nextSelected = isSelected(nextDay); + if (prevSelected && nextSelected) { + return 'multiple-middle'; + } + if (prevSelected) { + return 'end'; + } + return nextSelected ? 'start' : 'multiple-selected'; + } + return ''; + }, + getRangeDayType: function (day) { + var _a = this.data, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; + if (!Array.isArray(currentDate)) { + return ''; + } + var startDay = currentDate[0], endDay = currentDate[1]; + if (!startDay) { + return ''; + } + var compareToStart = (0, utils_1.compareDay)(day, startDay); + if (!endDay) { + return compareToStart === 0 ? 'start' : ''; + } + var compareToEnd = (0, utils_1.compareDay)(day, endDay); + if (compareToStart === 0 && compareToEnd === 0 && allowSameDay) { + return 'start-end'; + } + if (compareToStart === 0) { + return 'start'; + } + if (compareToEnd === 0) { + return 'end'; + } + if (compareToStart > 0 && compareToEnd < 0) { + return 'middle'; + } + return ''; + }, + getDayType: function (day) { + var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, currentDate = _a.currentDate; + if ((0, utils_1.compareDay)(day, minDate) < 0 || (0, utils_1.compareDay)(day, maxDate) > 0) { + return 'disabled'; + } + if (type === 'single') { + return (0, utils_1.compareDay)(day, currentDate) === 0 ? 'selected' : ''; + } + if (type === 'multiple') { + return this.getMultipleDayType(day); + } + /* istanbul ignore else */ + if (type === 'range') { + return this.getRangeDayType(day); + } + return ''; + }, + getBottomInfo: function (type) { + if (this.data.type === 'range') { + if (type === 'start') { + return '开始'; + } + if (type === 'end') { + return '结束'; + } + if (type === 'start-end') { + return '开始/结束'; + } + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.json b/miniprogram_npm/@vant/weapp/calendar/components/month/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml new file mode 100644 index 0000000..0c73b2f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml @@ -0,0 +1,39 @@ + + + + + + {{ computed.formatMonthTitle(date) }} + + + + + {{ computed.getMark(date) }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + {{ item.topInfo }} + {{ item.text }} + + {{ item.bottomInfo }} + + + + + diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs new file mode 100644 index 0000000..55e45a5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs @@ -0,0 +1,71 @@ +/* eslint-disable */ +var utils = require('../../utils.wxs'); + +function getMark(date) { + return getDate(date).getMonth() + 1; +} + +var ROW_HEIGHT = 64; + +function getDayStyle(type, index, date, rowHeight, color, firstDayOfWeek) { + var style = []; + var current = getDate(date).getDay() || 7; + var offset = current < firstDayOfWeek ? (7 - firstDayOfWeek + current) : + current === 7 && firstDayOfWeek === 0 ? 0 : + (current - firstDayOfWeek); + + if (index === 0) { + style.push(['margin-left', (100 * offset) / 7 + '%']); + } + + if (rowHeight !== ROW_HEIGHT) { + style.push(['height', rowHeight + 'px']); + } + + if (color) { + if ( + type === 'start' || + type === 'end' || + type === 'start-end' || + type === 'multiple-selected' || + type === 'multiple-middle' + ) { + style.push(['background', color]); + } else if (type === 'middle') { + style.push(['color', color]); + } + } + + return style + .map(function(item) { + return item.join(':'); + }) + .join(';'); +} + +function formatMonthTitle(date) { + date = getDate(date); + return date.getFullYear() + '年' + (date.getMonth() + 1) + '月'; +} + +function getMonthStyle(visible, date, rowHeight) { + if (!visible) { + date = getDate(date); + + var totalDay = utils.getMonthEndDay( + date.getFullYear(), + date.getMonth() + 1 + ); + var offset = getDate(date).getDay(); + var padding = Math.ceil((totalDay + offset) / 7) * rowHeight; + + return 'padding-bottom:' + padding + 'px'; + } +} + +module.exports = { + getMark: getMark, + getDayStyle: getDayStyle, + formatMonthTitle: formatMonthTitle, + getMonthStyle: getMonthStyle +}; diff --git a/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss new file mode 100644 index 0000000..9aee73d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss @@ -0,0 +1 @@ +@import '../../../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:100%}.van-calendar__month-title{font-size:var(--calendar-month-title-font-size,14px);font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__days{display:flex;flex-wrap:wrap;position:relative;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{color:var(--calendar-month-mark-color,rgba(242,243,245,.8));font-size:var(--calendar-month-mark-font-size,160px);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:0}.van-calendar__day,.van-calendar__selected-day{align-items:center;display:flex;justify-content:center;text-align:center}.van-calendar__day{font-size:var(--calendar-day-font-size,16px);height:var(--calendar-day-height,64px);position:relative;width:14.285%}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{background-color:var(--calendar-range-edge-background-color,#ee0a24);color:var(--calendar-range-edge-color,#fff)}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:var(--calendar-range-middle-color,#ee0a24)}.van-calendar__day--middle:after{background-color:currentColor;bottom:0;content:"";left:0;opacity:var(--calendar-range-middle-background-opacity,.1);position:absolute;right:0;top:0}.van-calendar__day--disabled{color:var(--calendar-day-disabled-color,#c8c9cc);cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{font-size:var(--calendar-info-font-size,10px);left:0;line-height:var(--calendar-info-line-height,14px);position:absolute;right:0}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{background-color:var(--calendar-selected-day-background-color,#ee0a24);border-radius:4px;color:var(--calendar-selected-day-color,#fff);height:var(--calendar-selected-day-size,54px);width:var(--calendar-selected-day-size,54px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/calendar/index.d.ts b/miniprogram_npm/@vant/weapp/calendar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/calendar/index.js b/miniprogram_npm/@vant/weapp/calendar/index.js new file mode 100644 index 0000000..7a7324d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.js @@ -0,0 +1,383 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("./utils"); +var toast_1 = __importDefault(require("../toast/toast")); +var utils_2 = require("../common/utils"); +var initialMinDate = (0, utils_1.getToday)().getTime(); +var initialMaxDate = (function () { + var now = (0, utils_1.getToday)(); + return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate()).getTime(); +})(); +var getTime = function (date) { + return date instanceof Date ? date.getTime() : date; +}; +(0, component_1.VantComponent)({ + props: { + title: { + type: String, + value: '日期选择', + }, + color: String, + show: { + type: Boolean, + observer: function (val) { + if (val) { + this.initRect(); + this.scrollIntoView(); + } + }, + }, + formatter: null, + confirmText: { + type: String, + value: '确定', + }, + confirmDisabledText: { + type: String, + value: '确定', + }, + rangePrompt: String, + showRangePrompt: { + type: Boolean, + value: true, + }, + defaultDate: { + type: null, + value: (0, utils_1.getToday)().getTime(), + observer: function (val) { + this.setData({ currentDate: val }); + this.scrollIntoView(); + }, + }, + allowSameDay: Boolean, + type: { + type: String, + value: 'single', + observer: 'reset', + }, + minDate: { + type: Number, + value: initialMinDate, + }, + maxDate: { + type: Number, + value: initialMaxDate, + }, + position: { + type: String, + value: 'bottom', + }, + rowHeight: { + type: null, + value: utils_1.ROW_HEIGHT, + }, + round: { + type: Boolean, + value: true, + }, + poppable: { + type: Boolean, + value: true, + }, + showMark: { + type: Boolean, + value: true, + }, + showTitle: { + type: Boolean, + value: true, + }, + showConfirm: { + type: Boolean, + value: true, + }, + showSubtitle: { + type: Boolean, + value: true, + }, + safeAreaInsetBottom: { + type: Boolean, + value: true, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + }, + maxRange: { + type: null, + value: null, + }, + minRange: { + type: Number, + value: 1, + }, + firstDayOfWeek: { + type: Number, + value: 0, + }, + readonly: Boolean, + rootPortal: { + type: Boolean, + value: false, + }, + }, + data: { + subtitle: '', + currentDate: null, + scrollIntoView: '', + }, + watch: { + minDate: function () { + this.initRect(); + }, + maxDate: function () { + this.initRect(); + }, + }, + created: function () { + this.setData({ + currentDate: this.getInitialDate(this.data.defaultDate), + }); + }, + mounted: function () { + if (this.data.show || !this.data.poppable) { + this.initRect(); + this.scrollIntoView(); + } + }, + methods: { + reset: function () { + this.setData({ currentDate: this.getInitialDate(this.data.defaultDate) }); + this.scrollIntoView(); + }, + initRect: function () { + var _this = this; + if (this.contentObserver != null) { + this.contentObserver.disconnect(); + } + var contentObserver = this.createIntersectionObserver({ + thresholds: [0, 0.1, 0.9, 1], + observeAll: true, + }); + this.contentObserver = contentObserver; + contentObserver.relativeTo('.van-calendar__body'); + contentObserver.observe('.month', function (res) { + if (res.boundingClientRect.top <= res.relativeRect.top) { + // @ts-ignore + _this.setData({ subtitle: (0, utils_1.formatMonthTitle)(res.dataset.date) }); + } + }); + }, + limitDateRange: function (date, minDate, maxDate) { + if (minDate === void 0) { minDate = null; } + if (maxDate === void 0) { maxDate = null; } + minDate = minDate || this.data.minDate; + maxDate = maxDate || this.data.maxDate; + if ((0, utils_1.compareDay)(date, minDate) === -1) { + return minDate; + } + if ((0, utils_1.compareDay)(date, maxDate) === 1) { + return maxDate; + } + return date; + }, + getInitialDate: function (defaultDate) { + var _this = this; + if (defaultDate === void 0) { defaultDate = null; } + var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, allowSameDay = _a.allowSameDay; + if (!defaultDate) + return []; + var now = (0, utils_1.getToday)().getTime(); + if (type === 'range') { + if (!Array.isArray(defaultDate)) { + defaultDate = []; + } + var _b = defaultDate || [], startDay = _b[0], endDay = _b[1]; + var startDate = getTime(startDay || now); + var start = this.limitDateRange(startDate, minDate, allowSameDay ? startDate : (0, utils_1.getPrevDay)(new Date(maxDate)).getTime()); + var date = getTime(endDay || now); + var end = this.limitDateRange(date, allowSameDay ? date : (0, utils_1.getNextDay)(new Date(minDate)).getTime()); + return [start, end]; + } + if (type === 'multiple') { + if (Array.isArray(defaultDate)) { + return defaultDate.map(function (date) { return _this.limitDateRange(date); }); + } + return [this.limitDateRange(now)]; + } + if (!defaultDate || Array.isArray(defaultDate)) { + defaultDate = now; + } + return this.limitDateRange(defaultDate); + }, + scrollIntoView: function () { + var _this = this; + (0, utils_2.requestAnimationFrame)(function () { + var _a = _this.data, currentDate = _a.currentDate, type = _a.type, show = _a.show, poppable = _a.poppable, minDate = _a.minDate, maxDate = _a.maxDate; + if (!currentDate) + return; + // @ts-ignore + var targetDate = type === 'single' ? currentDate : currentDate[0]; + var displayed = show || !poppable; + if (!targetDate || !displayed) { + return; + } + var months = (0, utils_1.getMonths)(minDate, maxDate); + months.some(function (month, index) { + if ((0, utils_1.compareMonth)(month, targetDate) === 0) { + _this.setData({ scrollIntoView: "month".concat(index) }); + return true; + } + return false; + }); + }); + }, + onOpen: function () { + this.$emit('open'); + }, + onOpened: function () { + this.$emit('opened'); + }, + onClose: function () { + this.$emit('close'); + }, + onClosed: function () { + this.$emit('closed'); + }, + onClickDay: function (event) { + if (this.data.readonly) { + return; + } + var date = event.detail.date; + var _a = this.data, type = _a.type, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; + if (type === 'range') { + // @ts-ignore + var startDay_1 = currentDate[0], endDay = currentDate[1]; + if (startDay_1 && !endDay) { + var compareToStart = (0, utils_1.compareDay)(date, startDay_1); + if (compareToStart === 1) { + var days_1 = this.selectComponent('.month').data.days; + days_1.some(function (day, index) { + var isDisabled = day.type === 'disabled' && + getTime(startDay_1) < getTime(day.date) && + getTime(day.date) < getTime(date); + if (isDisabled) { + (date = days_1[index - 1].date); + } + return isDisabled; + }); + this.select([startDay_1, date], true); + } + else if (compareToStart === -1) { + this.select([date, null]); + } + else if (allowSameDay) { + this.select([date, date], true); + } + } + else { + this.select([date, null]); + } + } + else if (type === 'multiple') { + var selectedIndex_1; + // @ts-ignore + var selected = currentDate.some(function (dateItem, index) { + var equal = (0, utils_1.compareDay)(dateItem, date) === 0; + if (equal) { + selectedIndex_1 = index; + } + return equal; + }); + if (selected) { + // @ts-ignore + var cancelDate = currentDate.splice(selectedIndex_1, 1); + this.setData({ currentDate: currentDate }); + this.unselect(cancelDate); + } + else { + // @ts-ignore + this.select(__spreadArray(__spreadArray([], currentDate, true), [date], false)); + } + } + else { + this.select(date, true); + } + }, + unselect: function (dateArray) { + var date = dateArray[0]; + if (date) { + this.$emit('unselect', (0, utils_1.copyDates)(date)); + } + }, + select: function (date, complete) { + if (complete && this.data.type === 'range') { + var valid = this.checkRange(date); + if (!valid) { + // auto selected to max range if showConfirm + if (this.data.showConfirm) { + this.emit([ + date[0], + (0, utils_1.getDayByOffset)(date[0], this.data.maxRange - 1), + ]); + } + else { + this.emit(date); + } + return; + } + } + this.emit(date); + if (complete && !this.data.showConfirm) { + this.onConfirm(); + } + }, + emit: function (date) { + this.setData({ + currentDate: Array.isArray(date) ? date.map(getTime) : getTime(date), + }); + this.$emit('select', (0, utils_1.copyDates)(date)); + }, + checkRange: function (date) { + var _a = this.data, maxRange = _a.maxRange, rangePrompt = _a.rangePrompt, showRangePrompt = _a.showRangePrompt; + if (maxRange && (0, utils_1.calcDateNum)(date) > maxRange) { + if (showRangePrompt) { + (0, toast_1.default)({ + context: this, + message: rangePrompt || "\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 ".concat(maxRange, " \u5929"), + }); + } + this.$emit('over-range'); + return false; + } + return true; + }, + onConfirm: function () { + var _this = this; + if (this.data.type === 'range' && + !this.checkRange(this.data.currentDate)) { + return; + } + wx.nextTick(function () { + // @ts-ignore + _this.$emit('confirm', (0, utils_1.copyDates)(_this.data.currentDate)); + }); + }, + onClickSubtitle: function (event) { + this.$emit('click-subtitle', event); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/calendar/index.json b/miniprogram_npm/@vant/weapp/calendar/index.json new file mode 100644 index 0000000..397d5ae --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "header": "./components/header/index", + "month": "./components/month/index", + "van-button": "../button/index", + "van-popup": "../popup/index", + "van-toast": "../toast/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/calendar/index.wxml b/miniprogram_npm/@vant/weapp/calendar/index.wxml new file mode 100644 index 0000000..9d0fc6b --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.wxml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/calendar/index.wxs b/miniprogram_npm/@vant/weapp/calendar/index.wxs new file mode 100644 index 0000000..0a56646 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.wxs @@ -0,0 +1,37 @@ +/* eslint-disable */ +var utils = require('./utils.wxs'); + +function getMonths(minDate, maxDate) { + var months = []; + var cursor = getDate(minDate); + + cursor.setDate(1); + + do { + months.push(cursor.getTime()); + cursor.setMonth(cursor.getMonth() + 1); + } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1); + + return months; +} + +function getButtonDisabled(type, currentDate, minRange) { + if (currentDate == null) { + return true; + } + + if (type === 'range') { + return !currentDate[0] || !currentDate[1]; + } + + if (type === 'multiple') { + return currentDate.length < minRange; + } + + return !currentDate; +} + +module.exports = { + getMonths: getMonths, + getButtonDisabled: getButtonDisabled +}; diff --git a/miniprogram_npm/@vant/weapp/calendar/index.wxss b/miniprogram_npm/@vant/weapp/calendar/index.wxss new file mode 100644 index 0000000..a1f1cf0 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:var(--calendar-height,100%)}.van-calendar__close-icon{top:11px}.van-calendar__popup--bottom,.van-calendar__popup--top{height:var(--calendar-popup-height,90%)}.van-calendar__popup--left,.van-calendar__popup--right{height:100%}.van-calendar__body{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.van-calendar__footer{flex-shrink:0;padding:0 var(--padding-md,16px)}.van-calendar__footer--safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer+.van-calendar__footer,.van-calendar__footer:empty{display:none}.van-calendar__footer:empty+.van-calendar__footer{display:block!important}.van-calendar__confirm{height:var(--calendar-confirm-button-height,36px)!important;line-height:var(--calendar-confirm-button-line-height,34px)!important;margin:var(--calendar-confirm-button-margin,7px 0)!important} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/calendar/utils.d.ts b/miniprogram_npm/@vant/weapp/calendar/utils.d.ts new file mode 100644 index 0000000..889e6e7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/utils.d.ts @@ -0,0 +1,12 @@ +export declare const ROW_HEIGHT = 64; +export declare function formatMonthTitle(date: Date): string; +export declare function compareMonth(date1: Date | number, date2: Date | number): 0 | 1 | -1; +export declare function compareDay(day1: Date | number, day2: Date | number): 0 | 1 | -1; +export declare function getDayByOffset(date: Date, offset: number): Date; +export declare function getPrevDay(date: Date): Date; +export declare function getNextDay(date: Date): Date; +export declare function getToday(): Date; +export declare function calcDateNum(date: [Date, Date]): number; +export declare function copyDates(dates: Date | Date[]): Date | Date[]; +export declare function getMonthEndDay(year: number, month: number): number; +export declare function getMonths(minDate: number, maxDate: number): number[]; diff --git a/miniprogram_npm/@vant/weapp/calendar/utils.js b/miniprogram_npm/@vant/weapp/calendar/utils.js new file mode 100644 index 0000000..c9e5df7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/utils.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getMonths = exports.getMonthEndDay = exports.copyDates = exports.calcDateNum = exports.getToday = exports.getNextDay = exports.getPrevDay = exports.getDayByOffset = exports.compareDay = exports.compareMonth = exports.formatMonthTitle = exports.ROW_HEIGHT = void 0; +exports.ROW_HEIGHT = 64; +function formatMonthTitle(date) { + if (!(date instanceof Date)) { + date = new Date(date); + } + return "".concat(date.getFullYear(), "\u5E74").concat(date.getMonth() + 1, "\u6708"); +} +exports.formatMonthTitle = formatMonthTitle; +function compareMonth(date1, date2) { + if (!(date1 instanceof Date)) { + date1 = new Date(date1); + } + if (!(date2 instanceof Date)) { + date2 = new Date(date2); + } + var year1 = date1.getFullYear(); + var year2 = date2.getFullYear(); + var month1 = date1.getMonth(); + var month2 = date2.getMonth(); + if (year1 === year2) { + return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; + } + return year1 > year2 ? 1 : -1; +} +exports.compareMonth = compareMonth; +function compareDay(day1, day2) { + if (!(day1 instanceof Date)) { + day1 = new Date(day1); + } + if (!(day2 instanceof Date)) { + day2 = new Date(day2); + } + var compareMonthResult = compareMonth(day1, day2); + if (compareMonthResult === 0) { + var date1 = day1.getDate(); + var date2 = day2.getDate(); + return date1 === date2 ? 0 : date1 > date2 ? 1 : -1; + } + return compareMonthResult; +} +exports.compareDay = compareDay; +function getDayByOffset(date, offset) { + date = new Date(date); + date.setDate(date.getDate() + offset); + return date; +} +exports.getDayByOffset = getDayByOffset; +function getPrevDay(date) { + return getDayByOffset(date, -1); +} +exports.getPrevDay = getPrevDay; +function getNextDay(date) { + return getDayByOffset(date, 1); +} +exports.getNextDay = getNextDay; +function getToday() { + var today = new Date(); + today.setHours(0, 0, 0, 0); + return today; +} +exports.getToday = getToday; +function calcDateNum(date) { + var day1 = new Date(date[0]).getTime(); + var day2 = new Date(date[1]).getTime(); + return (day2 - day1) / (1000 * 60 * 60 * 24) + 1; +} +exports.calcDateNum = calcDateNum; +function copyDates(dates) { + if (Array.isArray(dates)) { + return dates.map(function (date) { + if (date === null) { + return date; + } + return new Date(date); + }); + } + return new Date(dates); +} +exports.copyDates = copyDates; +function getMonthEndDay(year, month) { + return 32 - new Date(year, month - 1, 32).getDate(); +} +exports.getMonthEndDay = getMonthEndDay; +function getMonths(minDate, maxDate) { + var months = []; + var cursor = new Date(minDate); + cursor.setDate(1); + do { + months.push(cursor.getTime()); + cursor.setMonth(cursor.getMonth() + 1); + } while (compareMonth(cursor, maxDate) !== 1); + return months; +} +exports.getMonths = getMonths; diff --git a/miniprogram_npm/@vant/weapp/calendar/utils.wxs b/miniprogram_npm/@vant/weapp/calendar/utils.wxs new file mode 100644 index 0000000..e57f6b3 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/calendar/utils.wxs @@ -0,0 +1,25 @@ +/* eslint-disable */ +function getMonthEndDay(year, month) { + return 32 - getDate(year, month - 1, 32).getDate(); +} + +function compareMonth(date1, date2) { + date1 = getDate(date1); + date2 = getDate(date2); + + var year1 = date1.getFullYear(); + var year2 = date2.getFullYear(); + var month1 = date1.getMonth(); + var month2 = date2.getMonth(); + + if (year1 === year2) { + return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; + } + + return year1 > year2 ? 1 : -1; +} + +module.exports = { + getMonthEndDay: getMonthEndDay, + compareMonth: compareMonth +}; diff --git a/miniprogram_npm/@vant/weapp/card/index.d.ts b/miniprogram_npm/@vant/weapp/card/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/card/index.js b/miniprogram_npm/@vant/weapp/card/index.js new file mode 100644 index 0000000..2815655 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var link_1 = require("../mixins/link"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: [ + 'num-class', + 'desc-class', + 'thumb-class', + 'title-class', + 'price-class', + 'origin-price-class', + ], + mixins: [link_1.link], + props: { + tag: String, + num: String, + desc: String, + thumb: String, + title: String, + price: { + type: String, + observer: 'updatePrice', + }, + centered: Boolean, + lazyLoad: Boolean, + thumbLink: String, + originPrice: String, + thumbMode: { + type: String, + value: 'aspectFit', + }, + currency: { + type: String, + value: '¥', + }, + }, + methods: { + updatePrice: function () { + var price = this.data.price; + var priceArr = price.toString().split('.'); + this.setData({ + integerStr: priceArr[0], + decimalStr: priceArr[1] ? ".".concat(priceArr[1]) : '', + }); + }, + onClickThumb: function () { + this.jumpLink('thumbLink'); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/card/index.json b/miniprogram_npm/@vant/weapp/card/index.json new file mode 100644 index 0000000..e917407 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-tag": "../tag/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/card/index.wxml b/miniprogram_npm/@vant/weapp/card/index.wxml new file mode 100644 index 0000000..62173e4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.wxml @@ -0,0 +1,56 @@ + + + + + + + + + {{ tag }} + + + + + + + {{ title }} + + + {{ desc }} + + + + + + + + + {{ currency }} + {{ integerStr }} + {{ decimalStr }} + + + {{ currency }} {{ originPrice }} + + x {{ num }} + + + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/card/index.wxss b/miniprogram_npm/@vant/weapp/card/index.wxss new file mode 100644 index 0000000..0f4d7c5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/card/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-card{background-color:var(--card-background-color,#fafafa);box-sizing:border-box;color:var(--card-text-color,#323233);font-size:var(--card-font-size,12px);padding:var(--card-padding,8px 16px);position:relative}.van-card__header{display:flex}.van-card__header--center{align-items:center;justify-content:center}.van-card__thumb{flex:none;height:var(--card-thumb-size,88px);margin-right:var(--padding-xs,8px);position:relative;width:var(--card-thumb-size,88px)}.van-card__thumb:empty{display:none}.van-card__img{border-radius:8px;height:100%;width:100%}.van-card__content{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-height:var(--card-thumb-size,88px);min-width:0;position:relative}.van-card__content--center{justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{font-weight:700;line-height:var(--card-title-line-height,16px)}.van-card__desc{color:var(--card-desc-color,#646566);line-height:var(--card-desc-line-height,20px)}.van-card__bottom{line-height:20px}.van-card__price{color:var(--card-price-color,#ee0a24);display:inline-block;font-size:var(--card-price-font-size,12px);font-weight:700}.van-card__price-integer{font-size:var(--card-price-integer-font-size,16px)}.van-card__price-decimal,.van-card__price-integer{font-family:var(--card-price-font-family,Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif)}.van-card__origin-price{color:var(--card-origin-price-color,#646566);display:inline-block;font-size:var(--card-origin-price-font-size,10px);margin-left:5px;text-decoration:line-through}.van-card__num{float:right}.van-card__tag{left:0;position:absolute!important;top:2px}.van-card__footer{flex:none;text-align:right;width:100%} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cascader/index.d.ts b/miniprogram_npm/@vant/weapp/cascader/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/cascader/index.js b/miniprogram_npm/@vant/weapp/cascader/index.js new file mode 100644 index 0000000..f7c239c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.js @@ -0,0 +1,224 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var FieldName; +(function (FieldName) { + FieldName["TEXT"] = "text"; + FieldName["VALUE"] = "value"; + FieldName["CHILDREN"] = "children"; +})(FieldName || (FieldName = {})); +var defaultFieldNames = { + text: FieldName.TEXT, + value: FieldName.VALUE, + children: FieldName.CHILDREN, +}; +(0, component_1.VantComponent)({ + props: { + title: String, + value: { + type: String, + }, + placeholder: { + type: String, + value: '请选择', + }, + activeColor: { + type: String, + value: '#1989fa', + }, + options: { + type: Array, + value: [], + }, + swipeable: { + type: Boolean, + value: false, + }, + closeable: { + type: Boolean, + value: true, + }, + showHeader: { + type: Boolean, + value: true, + }, + closeIcon: { + type: String, + value: 'cross', + }, + fieldNames: { + type: Object, + value: defaultFieldNames, + observer: 'updateFieldNames', + }, + useTitleSlot: Boolean, + }, + data: { + tabs: [], + activeTab: 0, + textKey: FieldName.TEXT, + valueKey: FieldName.VALUE, + childrenKey: FieldName.CHILDREN, + innerValue: '', + }, + watch: { + options: function () { + this.updateTabs(); + }, + value: function (newVal) { + this.updateValue(newVal); + }, + }, + created: function () { + this.updateTabs(); + }, + methods: { + updateValue: function (val) { + var _this = this; + if (val !== undefined) { + var values = this.data.tabs.map(function (tab) { return tab.selected && tab.selected[_this.data.valueKey]; }); + if (values.indexOf(val) > -1) { + return; + } + } + this.innerValue = val; + this.updateTabs(); + }, + updateFieldNames: function () { + var _a = this.data.fieldNames || defaultFieldNames, _b = _a.text, text = _b === void 0 ? 'text' : _b, _c = _a.value, value = _c === void 0 ? 'value' : _c, _d = _a.children, children = _d === void 0 ? 'children' : _d; + this.setData({ + textKey: text, + valueKey: value, + childrenKey: children, + }); + }, + getSelectedOptionsByValue: function (options, value) { + for (var i = 0; i < options.length; i++) { + var option = options[i]; + if (option[this.data.valueKey] === value) { + return [option]; + } + if (option[this.data.childrenKey]) { + var selectedOptions = this.getSelectedOptionsByValue(option[this.data.childrenKey], value); + if (selectedOptions) { + return __spreadArray([option], selectedOptions, true); + } + } + } + }, + updateTabs: function () { + var _this = this; + var options = this.data.options; + var innerValue = this.innerValue; + if (!options.length) { + return; + } + if (innerValue !== undefined) { + var selectedOptions = this.getSelectedOptionsByValue(options, innerValue); + if (selectedOptions) { + var optionsCursor_1 = options; + var tabs_1 = selectedOptions.map(function (option) { + var tab = { + options: optionsCursor_1, + selected: option, + }; + var next = optionsCursor_1.find(function (item) { return item[_this.data.valueKey] === option[_this.data.valueKey]; }); + if (next) { + optionsCursor_1 = next[_this.data.childrenKey]; + } + return tab; + }); + if (optionsCursor_1) { + tabs_1.push({ + options: optionsCursor_1, + selected: null, + }); + } + this.setData({ + tabs: tabs_1, + }); + wx.nextTick(function () { + _this.setData({ + activeTab: tabs_1.length - 1, + }); + }); + return; + } + } + this.setData({ + tabs: [ + { + options: options, + selected: null, + }, + ], + activeTab: 0, + }); + }, + onClose: function () { + this.$emit('close'); + }, + onClickTab: function (e) { + var _a = e.detail, tabIndex = _a.index, title = _a.title; + this.$emit('click-tab', { title: title, tabIndex: tabIndex }); + this.setData({ + activeTab: tabIndex, + }); + }, + // 选中 + onSelect: function (e) { + var _this = this; + var _a = e.currentTarget.dataset, option = _a.option, tabIndex = _a.tabIndex; + if (option && option.disabled) { + return; + } + var _b = this.data, valueKey = _b.valueKey, childrenKey = _b.childrenKey; + var tabs = this.data.tabs; + tabs[tabIndex].selected = option; + if (tabs.length > tabIndex + 1) { + tabs = tabs.slice(0, tabIndex + 1); + } + if (option[childrenKey]) { + var nextTab = { + options: option[childrenKey], + selected: null, + }; + if (tabs[tabIndex + 1]) { + tabs[tabIndex + 1] = nextTab; + } + else { + tabs.push(nextTab); + } + wx.nextTick(function () { + _this.setData({ + activeTab: tabIndex + 1, + }); + }); + } + this.setData({ + tabs: tabs, + }); + var selectedOptions = tabs.map(function (tab) { return tab.selected; }).filter(Boolean); + var value = option[valueKey]; + var params = { + value: value, + tabIndex: tabIndex, + selectedOptions: selectedOptions, + }; + this.innerValue = value; + this.$emit('change', params); + if (!option[childrenKey]) { + this.$emit('finish', params); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/cascader/index.json b/miniprogram_npm/@vant/weapp/cascader/index.json new file mode 100644 index 0000000..d0f75eb --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index", + "van-tab": "../tab/index", + "van-tabs": "../tabs/index" + } +} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cascader/index.wxml b/miniprogram_npm/@vant/weapp/cascader/index.wxml new file mode 100644 index 0000000..9417234 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.wxml @@ -0,0 +1,54 @@ + + + + + {{ title }} + + + + + + + + + + + {{ option[textKey] }} + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/cascader/index.wxs b/miniprogram_npm/@vant/weapp/cascader/index.wxs new file mode 100644 index 0000000..b1aab58 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.wxs @@ -0,0 +1,24 @@ +var utils = require('../wxs/utils.wxs'); +var style = require('../wxs/style.wxs'); + +function isSelected(tab, valueKey, option) { + return tab.selected && tab.selected[valueKey] === option[valueKey] +} + +function optionClass(tab, valueKey, option) { + return utils.bem('cascader__option', { selected: isSelected(tab, valueKey, option), disabled: option.disabled }) +} + +function optionStyle(data) { + var color = data.option.color || (isSelected(data.tab, data.valueKey, data.option) ? data.activeColor : undefined); + return style({ + color + }); +} + + +module.exports = { + isSelected: isSelected, + optionClass: optionClass, + optionStyle: optionStyle, +}; \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cascader/index.wxss b/miniprogram_npm/@vant/weapp/cascader/index.wxss new file mode 100644 index 0000000..7062486 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cascader/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cascader__header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 16px}.van-cascader__title{font-size:16px;font-weight:600;line-height:20px}.van-cascader__close-icon{color:#c8c9cc;font-size:22px;height:22px}.van-cascader__tabs-wrap{height:48px!important;padding:0 8px}.van-cascader__tab{color:#323233!important;flex:none!important;font-weight:600!important;padding:0 8px!important}.van-cascader__tab--unselected{color:#969799!important;font-weight:400!important}.van-cascader__option{align-items:center;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;line-height:20px;padding:10px 16px}.van-cascader__option:active{background-color:#f2f3f5}.van-cascader__option--selected{color:#1989fa;font-weight:600}.van-cascader__option--disabled{color:#c8c9cc;cursor:not-allowed}.van-cascader__option--disabled:active{background-color:initial}.van-cascader__options{-webkit-overflow-scrolling:touch;box-sizing:border-box;height:384px;overflow-y:auto;padding-top:6px} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.d.ts b/miniprogram_npm/@vant/weapp/cell-group/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.js b/miniprogram_npm/@vant/weapp/cell-group/index.js new file mode 100644 index 0000000..34a93a6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + title: String, + border: { + type: Boolean, + value: true, + }, + inset: Boolean, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.json b/miniprogram_npm/@vant/weapp/cell-group/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.wxml b/miniprogram_npm/@vant/weapp/cell-group/index.wxml new file mode 100644 index 0000000..311e064 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.wxml @@ -0,0 +1,11 @@ + + + + {{ title }} + + + + diff --git a/miniprogram_npm/@vant/weapp/cell-group/index.wxss b/miniprogram_npm/@vant/weapp/cell-group/index.wxss new file mode 100644 index 0000000..08b252f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell-group/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cell-group--inset{border-radius:var(--cell-group-inset-border-radius,8px);margin:var(--cell-group-inset-padding,0 16px);overflow:hidden}.van-cell-group__title{color:var(--cell-group-title-color,#969799);font-size:var(--cell-group-title-font-size,14px);line-height:var(--cell-group-title-line-height,16px);padding:var(--cell-group-title-padding,16px 16px 8px)}.van-cell-group__title--inset{padding:var(--cell-group-inset-title-padding,16px 16px 8px 32px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/cell/index.d.ts b/miniprogram_npm/@vant/weapp/cell/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/cell/index.js b/miniprogram_npm/@vant/weapp/cell/index.js new file mode 100644 index 0000000..80f3039 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var link_1 = require("../mixins/link"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: [ + 'title-class', + 'label-class', + 'value-class', + 'right-icon-class', + 'hover-class', + ], + mixins: [link_1.link], + props: { + title: null, + value: null, + icon: String, + size: String, + label: String, + center: Boolean, + isLink: Boolean, + required: Boolean, + clickable: Boolean, + titleWidth: String, + customStyle: String, + arrowDirection: String, + useLabelSlot: Boolean, + border: { + type: Boolean, + value: true, + }, + titleStyle: String, + }, + methods: { + onClick: function (event) { + this.$emit('click', event.detail); + this.jumpLink(); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/cell/index.json b/miniprogram_npm/@vant/weapp/cell/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/cell/index.wxml b/miniprogram_npm/@vant/weapp/cell/index.wxml new file mode 100644 index 0000000..8387c3c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.wxml @@ -0,0 +1,47 @@ + + + + + + + + + + {{ title }} + + + + + {{ label }} + + + + + {{ value }} + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/cell/index.wxs b/miniprogram_npm/@vant/weapp/cell/index.wxs new file mode 100644 index 0000000..e3500c4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.wxs @@ -0,0 +1,17 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function titleStyle(data) { + return style([ + { + 'max-width': addUnit(data.titleWidth), + 'min-width': addUnit(data.titleWidth), + }, + data.titleStyle, + ]); +} + +module.exports = { + titleStyle: titleStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/cell/index.wxss b/miniprogram_npm/@vant/weapp/cell/index.wxss new file mode 100644 index 0000000..1802f8e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/cell/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-cell{background-color:var(--cell-background-color,#fff);box-sizing:border-box;color:var(--cell-text-color,#323233);display:flex;font-size:var(--cell-font-size,14px);line-height:var(--cell-line-height,24px);padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);position:relative;width:100%}.van-cell:after{border-bottom:1px solid #ebedf0;bottom:0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:16px;transform:scaleY(.5);transform-origin:center}.van-cell--borderless:after{display:none}.van-cell-group{background-color:var(--cell-background-color,#fff)}.van-cell__label{color:var(--cell-label-color,#969799);font-size:var(--cell-label-font-size,12px);line-height:var(--cell-label-line-height,18px);margin-top:var(--cell-label-margin-top,3px)}.van-cell__value{color:var(--cell-value-color,#969799);overflow:hidden;text-align:right;vertical-align:middle}.van-cell__title,.van-cell__value{flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{align-items:center;display:flex;font-size:var(--cell-icon-size,16px);height:var(--cell-line-height,24px)}.van-cell__left-icon-wrap{margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{color:var(--cell-right-icon-color,#969799);margin-left:var(--padding-base,4px)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{color:var(--cell-required-color,#ee0a24);content:"*";font-size:var(--cell-font-size,14px);left:var(--padding-xs,8px);position:absolute}.van-cell--center{align-items:center}.van-cell--large{padding-bottom:var(--cell-large-vertical-padding,12px);padding-top:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:var(--cell-large-label-font-size,14px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts b/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.js b/miniprogram_npm/@vant/weapp/checkbox-group/index.js new file mode 100644 index 0000000..80c93a1 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useChildren)('checkbox', function (target) { + this.updateChild(target); + }), + props: { + max: Number, + value: { + type: Array, + observer: 'updateChildren', + }, + disabled: { + type: Boolean, + observer: 'updateChildren', + }, + direction: { + type: String, + value: 'vertical', + }, + }, + methods: { + updateChildren: function () { + var _this = this; + this.children.forEach(function (child) { return _this.updateChild(child); }); + }, + updateChild: function (child) { + var _a = this.data, value = _a.value, disabled = _a.disabled, direction = _a.direction; + child.setData({ + value: value.indexOf(child.data.name) !== -1, + parentDisabled: disabled, + direction: direction, + }); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.json b/miniprogram_npm/@vant/weapp/checkbox-group/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml b/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml new file mode 100644 index 0000000..638bf9d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss b/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss new file mode 100644 index 0000000..c5666d7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.d.ts b/miniprogram_npm/@vant/weapp/checkbox/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.js b/miniprogram_npm/@vant/weapp/checkbox/index.js new file mode 100644 index 0000000..6247365 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.js @@ -0,0 +1,79 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +function emit(target, value) { + target.$emit('input', value); + target.$emit('change', value); +} +(0, component_1.VantComponent)({ + field: true, + relation: (0, relation_1.useParent)('checkbox-group'), + classes: ['icon-class', 'label-class'], + props: { + value: Boolean, + disabled: Boolean, + useIconSlot: Boolean, + checkedColor: String, + labelPosition: { + type: String, + value: 'right', + }, + labelDisabled: Boolean, + shape: { + type: String, + value: 'round', + }, + iconSize: { + type: null, + value: 20, + }, + }, + data: { + parentDisabled: false, + direction: 'vertical', + }, + methods: { + emitChange: function (value) { + if (this.parent) { + this.setParentValue(this.parent, value); + } + else { + emit(this, value); + } + }, + toggle: function () { + var _a = this.data, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; + if (!disabled && !parentDisabled) { + this.emitChange(!value); + } + }, + onClickLabel: function () { + var _a = this.data, labelDisabled = _a.labelDisabled, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; + if (!disabled && !labelDisabled && !parentDisabled) { + this.emitChange(!value); + } + }, + setParentValue: function (parent, value) { + var parentValue = parent.data.value.slice(); + var name = this.data.name; + var max = parent.data.max; + if (value) { + if (max && parentValue.length >= max) { + return; + } + if (parentValue.indexOf(name) === -1) { + parentValue.push(name); + emit(parent, parentValue); + } + } + else { + var index = parentValue.indexOf(name); + if (index !== -1) { + parentValue.splice(index, 1); + emit(parent, parentValue); + } + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.json b/miniprogram_npm/@vant/weapp/checkbox/index.json new file mode 100644 index 0000000..0a336c0 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "../icon/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.wxml b/miniprogram_npm/@vant/weapp/checkbox/index.wxml new file mode 100644 index 0000000..39a7bb0 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.wxml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.wxs b/miniprogram_npm/@vant/weapp/checkbox/index.wxs new file mode 100644 index 0000000..eb9c772 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.wxs @@ -0,0 +1,20 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) { + var styles = { + 'font-size': addUnit(iconSize), + }; + + if (checkedColor && value && !disabled && !parentDisabled) { + styles['border-color'] = checkedColor; + styles['background-color'] = checkedColor; + } + + return style(styles); +} + +module.exports = { + iconStyle: iconStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/checkbox/index.wxss b/miniprogram_npm/@vant/weapp/checkbox/index.wxss new file mode 100644 index 0000000..da2272a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/checkbox/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-checkbox{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:var(--checkbox-size,20px)}.van-checkbox__icon-wrap{flex:none}.van-checkbox__icon{align-items:center;border:1px solid var(--checkbox-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--checkbox-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--checkbox-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{background-color:var(--checkbox-checked-icon-color,#1989fa);border-color:var(--checkbox-checked-icon-color,#1989fa);color:#fff}.van-checkbox__icon--disabled{background-color:var(--checkbox-disabled-background-color,#ebedf0);border-color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__label{word-wrap:break-word;color:var(--checkbox-label-color,#323233);padding-left:var(--checkbox-label-margin,10px)}.van-checkbox__label--left{float:left;margin:0 var(--checkbox-label-margin,10px) 0 0}.van-checkbox__label--disabled{color:var(--checkbox-disabled-label-color,#c8c9cc)}.van-checkbox__label:empty{margin:0} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/circle/canvas.d.ts b/miniprogram_npm/@vant/weapp/circle/canvas.d.ts new file mode 100644 index 0000000..8a0b71e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/canvas.d.ts @@ -0,0 +1,4 @@ +/// +type CanvasContext = WechatMiniprogram.CanvasContext; +export declare function adaptor(ctx: CanvasContext & Record): CanvasContext; +export {}; diff --git a/miniprogram_npm/@vant/weapp/circle/canvas.js b/miniprogram_npm/@vant/weapp/circle/canvas.js new file mode 100644 index 0000000..d81df74 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/canvas.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.adaptor = void 0; +function adaptor(ctx) { + // @ts-ignore + return Object.assign(ctx, { + setStrokeStyle: function (val) { + ctx.strokeStyle = val; + }, + setLineWidth: function (val) { + ctx.lineWidth = val; + }, + setLineCap: function (val) { + ctx.lineCap = val; + }, + setFillStyle: function (val) { + ctx.fillStyle = val; + }, + setFontSize: function (val) { + ctx.font = String(val); + }, + setGlobalAlpha: function (val) { + ctx.globalAlpha = val; + }, + setLineJoin: function (val) { + ctx.lineJoin = val; + }, + setTextAlign: function (val) { + ctx.textAlign = val; + }, + setMiterLimit: function (val) { + ctx.miterLimit = val; + }, + setShadow: function (offsetX, offsetY, blur, color) { + ctx.shadowOffsetX = offsetX; + ctx.shadowOffsetY = offsetY; + ctx.shadowBlur = blur; + ctx.shadowColor = color; + }, + setTextBaseline: function (val) { + ctx.textBaseline = val; + }, + createCircularGradient: function () { }, + draw: function () { }, + }); +} +exports.adaptor = adaptor; diff --git a/miniprogram_npm/@vant/weapp/circle/index.d.ts b/miniprogram_npm/@vant/weapp/circle/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/circle/index.js b/miniprogram_npm/@vant/weapp/circle/index.js new file mode 100644 index 0000000..e131e4b --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.js @@ -0,0 +1,207 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var color_1 = require("../common/color"); +var component_1 = require("../common/component"); +var utils_1 = require("../common/utils"); +var validator_1 = require("../common/validator"); +var version_1 = require("../common/version"); +var canvas_1 = require("./canvas"); +function format(rate) { + return Math.min(Math.max(rate, 0), 100); +} +var PERIMETER = 2 * Math.PI; +var BEGIN_ANGLE = -Math.PI / 2; +var STEP = 1; +(0, component_1.VantComponent)({ + props: { + text: String, + lineCap: { + type: String, + value: 'round', + }, + value: { + type: Number, + value: 0, + observer: 'reRender', + }, + speed: { + type: Number, + value: 50, + }, + size: { + type: Number, + value: 100, + observer: function () { + this.drawCircle(this.currentValue); + }, + }, + fill: String, + layerColor: { + type: String, + value: color_1.WHITE, + }, + color: { + type: null, + value: color_1.BLUE, + observer: function () { + var _this = this; + this.setHoverColor().then(function () { + _this.drawCircle(_this.currentValue); + }); + }, + }, + type: { + type: String, + value: '', + }, + strokeWidth: { + type: Number, + value: 4, + }, + clockwise: { + type: Boolean, + value: true, + }, + }, + data: { + hoverColor: color_1.BLUE, + }, + methods: { + getContext: function () { + var _this = this; + var _a = this.data, type = _a.type, size = _a.size; + if (type === '' || !(0, version_1.canIUseCanvas2d)()) { + var ctx = wx.createCanvasContext('van-circle', this); + return Promise.resolve(ctx); + } + var dpr = (0, utils_1.getSystemInfoSync)().pixelRatio; + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(_this) + .select('#van-circle') + .node() + .exec(function (res) { + var canvas = res[0].node; + var ctx = canvas.getContext(type); + if (!_this.inited) { + _this.inited = true; + canvas.width = size * dpr; + canvas.height = size * dpr; + ctx.scale(dpr, dpr); + } + resolve((0, canvas_1.adaptor)(ctx)); + }); + }); + }, + setHoverColor: function () { + var _this = this; + var _a = this.data, color = _a.color, size = _a.size; + if ((0, validator_1.isObj)(color)) { + return this.getContext().then(function (context) { + if (!context) + return; + var LinearColor = context.createLinearGradient(size, 0, 0, 0); + Object.keys(color) + .sort(function (a, b) { return parseFloat(a) - parseFloat(b); }) + .map(function (key) { + return LinearColor.addColorStop(parseFloat(key) / 100, color[key]); + }); + _this.hoverColor = LinearColor; + }); + } + this.hoverColor = color; + return Promise.resolve(); + }, + presetCanvas: function (context, strokeStyle, beginAngle, endAngle, fill) { + var _a = this.data, strokeWidth = _a.strokeWidth, lineCap = _a.lineCap, clockwise = _a.clockwise, size = _a.size; + var position = size / 2; + var radius = position - strokeWidth / 2; + context.setStrokeStyle(strokeStyle); + context.setLineWidth(strokeWidth); + context.setLineCap(lineCap); + context.beginPath(); + context.arc(position, position, radius, beginAngle, endAngle, !clockwise); + context.stroke(); + if (fill) { + context.setFillStyle(fill); + context.fill(); + } + }, + renderLayerCircle: function (context) { + var _a = this.data, layerColor = _a.layerColor, fill = _a.fill; + this.presetCanvas(context, layerColor, 0, PERIMETER, fill); + }, + renderHoverCircle: function (context, formatValue) { + var clockwise = this.data.clockwise; + // 结束角度 + var progress = PERIMETER * (formatValue / 100); + var endAngle = clockwise + ? BEGIN_ANGLE + progress + : 3 * Math.PI - (BEGIN_ANGLE + progress); + this.presetCanvas(context, this.hoverColor, BEGIN_ANGLE, endAngle); + }, + drawCircle: function (currentValue) { + var _this = this; + var size = this.data.size; + this.getContext().then(function (context) { + if (!context) + return; + context.clearRect(0, 0, size, size); + _this.renderLayerCircle(context); + var formatValue = format(currentValue); + if (formatValue !== 0) { + _this.renderHoverCircle(context, formatValue); + } + context.draw(); + }); + }, + reRender: function () { + var _this = this; + // tofector 动画暂时没有想到好的解决方案 + var _a = this.data, value = _a.value, speed = _a.speed; + if (speed <= 0 || speed > 1000) { + this.drawCircle(value); + return; + } + this.clearMockInterval(); + this.currentValue = this.currentValue || 0; + var run = function () { + _this.interval = setTimeout(function () { + if (_this.currentValue !== value) { + if (Math.abs(_this.currentValue - value) < STEP) { + _this.currentValue = value; + } + else if (_this.currentValue < value) { + _this.currentValue += STEP; + } + else { + _this.currentValue -= STEP; + } + _this.drawCircle(_this.currentValue); + run(); + } + else { + _this.clearMockInterval(); + } + }, 1000 / speed); + }; + run(); + }, + clearMockInterval: function () { + if (this.interval) { + clearTimeout(this.interval); + this.interval = null; + } + }, + }, + mounted: function () { + var _this = this; + this.currentValue = this.data.value; + this.setHoverColor().then(function () { + _this.drawCircle(_this.currentValue); + }); + }, + destroyed: function () { + this.clearMockInterval(); + }, +}); diff --git a/miniprogram_npm/@vant/weapp/circle/index.json b/miniprogram_npm/@vant/weapp/circle/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/circle/index.wxml b/miniprogram_npm/@vant/weapp/circle/index.wxml new file mode 100644 index 0000000..52bc59f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.wxml @@ -0,0 +1,9 @@ + + + + + + + + {{ text }} + diff --git a/miniprogram_npm/@vant/weapp/circle/index.wxss b/miniprogram_npm/@vant/weapp/circle/index.wxss new file mode 100644 index 0000000..2200751 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/circle/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-circle{display:inline-block;position:relative;text-align:center}.van-circle__text{color:var(--circle-text-color,#323233);left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/col/index.d.ts b/miniprogram_npm/@vant/weapp/col/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/col/index.js b/miniprogram_npm/@vant/weapp/col/index.js new file mode 100644 index 0000000..63c56eb --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useParent)('row'), + props: { + span: Number, + offset: Number, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/col/index.json b/miniprogram_npm/@vant/weapp/col/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/col/index.wxml b/miniprogram_npm/@vant/weapp/col/index.wxml new file mode 100644 index 0000000..975348b --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.wxml @@ -0,0 +1,9 @@ + + + + + + diff --git a/miniprogram_npm/@vant/weapp/col/index.wxs b/miniprogram_npm/@vant/weapp/col/index.wxs new file mode 100644 index 0000000..507c1cb --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + if (!data.gutter) { + return ''; + } + + return style({ + 'padding-right': addUnit(data.gutter / 2), + 'padding-left': addUnit(data.gutter / 2), + }); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/col/index.wxss b/miniprogram_npm/@vant/weapp/col/index.wxss new file mode 100644 index 0000000..2fa265e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/col/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-col{box-sizing:border-box;float:left}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts b/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts new file mode 100644 index 0000000..32157b6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts @@ -0,0 +1,2 @@ +/// +export declare function setContentAnimate(context: WechatMiniprogram.Component.TrivialInstance, expanded: boolean, mounted: boolean): void; diff --git a/miniprogram_npm/@vant/weapp/collapse-item/animate.js b/miniprogram_npm/@vant/weapp/collapse-item/animate.js new file mode 100644 index 0000000..5734087 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/animate.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setContentAnimate = void 0; +var utils_1 = require("../common/utils"); +function useAnimation(context, expanded, mounted, height) { + var animation = wx.createAnimation({ + duration: 0, + timingFunction: 'ease-in-out', + }); + if (expanded) { + if (height === 0) { + animation.height('auto').top(1).step(); + } + else { + animation + .height(height) + .top(1) + .step({ + duration: mounted ? 300 : 1, + }) + .height('auto') + .step(); + } + context.setData({ + animation: animation.export(), + }); + return; + } + animation.height(height).top(0).step({ duration: 1 }).height(0).step({ + duration: 300, + }); + context.setData({ + animation: animation.export(), + }); +} +function setContentAnimate(context, expanded, mounted) { + (0, utils_1.getRect)(context, '.van-collapse-item__content') + .then(function (rect) { return rect.height; }) + .then(function (height) { + useAnimation(context, expanded, mounted, height); + }); +} +exports.setContentAnimate = setContentAnimate; diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts b/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.js b/miniprogram_npm/@vant/weapp/collapse-item/index.js new file mode 100644 index 0000000..982490e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var animate_1 = require("./animate"); +(0, component_1.VantComponent)({ + classes: ['title-class', 'content-class'], + relation: (0, relation_1.useParent)('collapse'), + props: { + size: String, + name: null, + title: null, + value: null, + icon: String, + label: String, + disabled: Boolean, + clickable: Boolean, + border: { + type: Boolean, + value: true, + }, + isLink: { + type: Boolean, + value: true, + }, + }, + data: { + expanded: false, + }, + mounted: function () { + this.updateExpanded(); + this.mounted = true; + }, + methods: { + updateExpanded: function () { + if (!this.parent) { + return; + } + var _a = this.parent.data, value = _a.value, accordion = _a.accordion; + var _b = this.parent.children, children = _b === void 0 ? [] : _b; + var name = this.data.name; + var index = children.indexOf(this); + var currentName = name == null ? index : name; + var expanded = accordion + ? value === currentName + : (value || []).some(function (name) { return name === currentName; }); + if (expanded !== this.data.expanded) { + (0, animate_1.setContentAnimate)(this, expanded, this.mounted); + } + this.setData({ index: index, expanded: expanded }); + }, + onClick: function () { + if (this.data.disabled) { + return; + } + var _a = this.data, name = _a.name, expanded = _a.expanded; + var index = this.parent.children.indexOf(this); + var currentName = name == null ? index : name; + this.parent.switch(currentName, !expanded); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.json b/miniprogram_npm/@vant/weapp/collapse-item/index.json new file mode 100644 index 0000000..0e5425c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.wxml b/miniprogram_npm/@vant/weapp/collapse-item/index.wxml new file mode 100644 index 0000000..f11d0d4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.wxml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/collapse-item/index.wxss b/miniprogram_npm/@vant/weapp/collapse-item/index.wxss new file mode 100644 index 0000000..4a65b5a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-collapse-item__title .van-cell__right-icon{transform:rotate(90deg);transition:transform var(--collapse-item-transition-duration,.3s)}.van-collapse-item__title--expanded .van-cell__right-icon{transform:rotate(-90deg)}.van-collapse-item__title--disabled .van-cell,.van-collapse-item__title--disabled .van-cell__right-icon{color:var(--collapse-item-title-disabled-color,#c8c9cc)!important}.van-collapse-item__title--disabled .van-cell--hover{background-color:#fff!important}.van-collapse-item__wrapper{overflow:hidden}.van-collapse-item__content{background-color:var(--collapse-item-content-background-color,#fff);color:var(--collapse-item-content-text-color,#969799);font-size:var(--collapse-item-content-font-size,13px);line-height:var(--collapse-item-content-line-height,1.5);padding:var(--collapse-item-content-padding,15px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/collapse/index.d.ts b/miniprogram_npm/@vant/weapp/collapse/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/collapse/index.js b/miniprogram_npm/@vant/weapp/collapse/index.js new file mode 100644 index 0000000..943d542 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +(0, component_1.VantComponent)({ + relation: (0, relation_1.useChildren)('collapse-item'), + props: { + value: { + type: null, + observer: 'updateExpanded', + }, + accordion: { + type: Boolean, + observer: 'updateExpanded', + }, + border: { + type: Boolean, + value: true, + }, + }, + methods: { + updateExpanded: function () { + this.children.forEach(function (child) { + child.updateExpanded(); + }); + }, + switch: function (name, expanded) { + var _a = this.data, accordion = _a.accordion, value = _a.value; + var changeItem = name; + if (!accordion) { + name = expanded + ? (value || []).concat(name) + : (value || []).filter(function (activeName) { return activeName !== name; }); + } + else { + name = expanded ? name : ''; + } + if (expanded) { + this.$emit('open', changeItem); + } + else { + this.$emit('close', changeItem); + } + this.$emit('change', name); + this.$emit('input', name); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/collapse/index.json b/miniprogram_npm/@vant/weapp/collapse/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/collapse/index.wxml b/miniprogram_npm/@vant/weapp/collapse/index.wxml new file mode 100644 index 0000000..fd4e171 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/miniprogram_npm/@vant/weapp/collapse/index.wxss b/miniprogram_npm/@vant/weapp/collapse/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/collapse/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/color.d.ts b/miniprogram_npm/@vant/weapp/common/color.d.ts new file mode 100644 index 0000000..386f307 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/color.d.ts @@ -0,0 +1,7 @@ +export declare const RED = "#ee0a24"; +export declare const BLUE = "#1989fa"; +export declare const WHITE = "#fff"; +export declare const GREEN = "#07c160"; +export declare const ORANGE = "#ff976a"; +export declare const GRAY = "#323233"; +export declare const GRAY_DARK = "#969799"; diff --git a/miniprogram_npm/@vant/weapp/common/color.js b/miniprogram_npm/@vant/weapp/common/color.js new file mode 100644 index 0000000..008a45a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/color.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GRAY_DARK = exports.GRAY = exports.ORANGE = exports.GREEN = exports.WHITE = exports.BLUE = exports.RED = void 0; +exports.RED = '#ee0a24'; +exports.BLUE = '#1989fa'; +exports.WHITE = '#fff'; +exports.GREEN = '#07c160'; +exports.ORANGE = '#ff976a'; +exports.GRAY = '#323233'; +exports.GRAY_DARK = '#969799'; diff --git a/miniprogram_npm/@vant/weapp/common/component.d.ts b/miniprogram_npm/@vant/weapp/common/component.d.ts new file mode 100644 index 0000000..1d0fd27 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/component.d.ts @@ -0,0 +1,4 @@ +/// +import { VantComponentOptions } from 'definitions/index'; +declare function VantComponent(vantOptions: VantComponentOptions): void; +export { VantComponent }; diff --git a/miniprogram_npm/@vant/weapp/common/component.js b/miniprogram_npm/@vant/weapp/common/component.js new file mode 100644 index 0000000..66da00e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/component.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VantComponent = void 0; +var basic_1 = require("../mixins/basic"); +function mapKeys(source, target, map) { + Object.keys(map).forEach(function (key) { + if (source[key]) { + target[map[key]] = source[key]; + } + }); +} +function VantComponent(vantOptions) { + var options = {}; + mapKeys(vantOptions, options, { + data: 'data', + props: 'properties', + watch: 'observers', + mixins: 'behaviors', + methods: 'methods', + beforeCreate: 'created', + created: 'attached', + mounted: 'ready', + destroyed: 'detached', + classes: 'externalClasses', + }); + // add default externalClasses + options.externalClasses = options.externalClasses || []; + options.externalClasses.push('custom-class'); + // add default behaviors + options.behaviors = options.behaviors || []; + options.behaviors.push(basic_1.basic); + // add relations + var relation = vantOptions.relation; + if (relation) { + options.relations = relation.relations; + options.behaviors.push(relation.mixin); + } + // map field to form-field behavior + if (vantOptions.field) { + options.behaviors.push('wx://form-field'); + } + // add default options + options.options = { + multipleSlots: true, + addGlobalClass: true, + }; + Component(options); +} +exports.VantComponent = VantComponent; diff --git a/miniprogram_npm/@vant/weapp/common/index.wxss b/miniprogram_npm/@vant/weapp/common/index.wxss new file mode 100644 index 0000000..a73bb7a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/index.wxss @@ -0,0 +1 @@ +.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{clear:both;content:"";display:table}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/relation.d.ts b/miniprogram_npm/@vant/weapp/common/relation.d.ts new file mode 100644 index 0000000..10193fa --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/relation.d.ts @@ -0,0 +1,15 @@ +/// +type TrivialInstance = WechatMiniprogram.Component.TrivialInstance; +export declare function useParent(name: string, onEffect?: (this: TrivialInstance) => void): { + relations: { + [x: string]: WechatMiniprogram.Component.RelationOption; + }; + mixin: string; +}; +export declare function useChildren(name: string, onEffect?: (this: TrivialInstance, target: TrivialInstance) => void): { + relations: { + [x: string]: WechatMiniprogram.Component.RelationOption; + }; + mixin: string; +}; +export {}; diff --git a/miniprogram_npm/@vant/weapp/common/relation.js b/miniprogram_npm/@vant/weapp/common/relation.js new file mode 100644 index 0000000..008256c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/relation.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useChildren = exports.useParent = void 0; +function useParent(name, onEffect) { + var _a; + var path = "../".concat(name, "/index"); + return { + relations: (_a = {}, + _a[path] = { + type: 'ancestor', + linked: function () { + onEffect && onEffect.call(this); + }, + linkChanged: function () { + onEffect && onEffect.call(this); + }, + unlinked: function () { + onEffect && onEffect.call(this); + }, + }, + _a), + mixin: Behavior({ + created: function () { + var _this = this; + Object.defineProperty(this, 'parent', { + get: function () { return _this.getRelationNodes(path)[0]; }, + }); + Object.defineProperty(this, 'index', { + // @ts-ignore + get: function () { var _a, _b; return (_b = (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.indexOf(_this); }, + }); + }, + }), + }; +} +exports.useParent = useParent; +function useChildren(name, onEffect) { + var _a; + var path = "../".concat(name, "/index"); + return { + relations: (_a = {}, + _a[path] = { + type: 'descendant', + linked: function (target) { + onEffect && onEffect.call(this, target); + }, + linkChanged: function (target) { + onEffect && onEffect.call(this, target); + }, + unlinked: function (target) { + onEffect && onEffect.call(this, target); + }, + }, + _a), + mixin: Behavior({ + created: function () { + var _this = this; + Object.defineProperty(this, 'children', { + get: function () { return _this.getRelationNodes(path) || []; }, + }); + }, + }), + }; +} +exports.useChildren = useChildren; diff --git a/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss b/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss new file mode 100644 index 0000000..442246f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss @@ -0,0 +1 @@ +.van-clearfix:after{clear:both;content:"";display:table} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss b/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss new file mode 100644 index 0000000..ee701df --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss @@ -0,0 +1 @@ +.van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.van-multi-ellipsis--l3{-webkit-line-clamp:3} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/style/hairline.wxss b/miniprogram_npm/@vant/weapp/common/style/hairline.wxss new file mode 100644 index 0000000..f7c6260 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/style/hairline.wxss @@ -0,0 +1 @@ +.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{border:0 solid #ebedf0;bottom:-50%;box-sizing:border-box;content:" ";left:-50%;pointer-events:none;position:absolute;right:-50%;top:-50%;transform:scale(.5);transform-origin:center}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss b/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss b/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss b/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram_npm/@vant/weapp/common/style/var.wxss b/miniprogram_npm/@vant/weapp/common/style/var.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram_npm/@vant/weapp/common/utils.d.ts b/miniprogram_npm/@vant/weapp/common/utils.d.ts new file mode 100644 index 0000000..a77d8c6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/utils.d.ts @@ -0,0 +1,21 @@ +/// +/// +/// +/// +/// +export { isDef } from './validator'; +export { getSystemInfoSync } from './version'; +export declare function range(num: number, min: number, max: number): number; +export declare function nextTick(cb: (...args: any[]) => void): void; +export declare function addUnit(value?: string | number): string | undefined; +export declare function requestAnimationFrame(cb: () => void): NodeJS.Timeout; +export declare function pickExclude(obj: unknown, keys: string[]): {}; +export declare function getRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise; +export declare function getAllRect(context: WechatMiniprogram.Component.TrivialInstance, selector: string): Promise; +export declare function groupSetData(context: WechatMiniprogram.Component.TrivialInstance, cb: () => void): void; +export declare function toPromise(promiseLike: Promise | unknown): Promise; +export declare function addNumber(num1: any, num2: any): number; +export declare const clamp: (num: any, min: any, max: any) => number; +export declare function getCurrentPage(): T & WechatMiniprogram.OptionalInterface & WechatMiniprogram.Page.InstanceProperties & WechatMiniprogram.Page.InstanceMethods & WechatMiniprogram.Page.Data & WechatMiniprogram.IAnyObject; +export declare const isPC: boolean; +export declare const isWxWork: boolean; diff --git a/miniprogram_npm/@vant/weapp/common/utils.js b/miniprogram_npm/@vant/weapp/common/utils.js new file mode 100644 index 0000000..1727628 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/utils.js @@ -0,0 +1,109 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isWxWork = exports.isPC = exports.getCurrentPage = exports.clamp = exports.addNumber = exports.toPromise = exports.groupSetData = exports.getAllRect = exports.getRect = exports.pickExclude = exports.requestAnimationFrame = exports.addUnit = exports.nextTick = exports.range = exports.getSystemInfoSync = exports.isDef = void 0; +var validator_1 = require("./validator"); +var version_1 = require("./version"); +var validator_2 = require("./validator"); +Object.defineProperty(exports, "isDef", { enumerable: true, get: function () { return validator_2.isDef; } }); +var version_2 = require("./version"); +Object.defineProperty(exports, "getSystemInfoSync", { enumerable: true, get: function () { return version_2.getSystemInfoSync; } }); +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} +exports.range = range; +function nextTick(cb) { + if ((0, version_1.canIUseNextTick)()) { + wx.nextTick(cb); + } + else { + setTimeout(function () { + cb(); + }, 1000 / 30); + } +} +exports.nextTick = nextTick; +function addUnit(value) { + if (!(0, validator_1.isDef)(value)) { + return undefined; + } + value = String(value); + return (0, validator_1.isNumber)(value) ? "".concat(value, "px") : value; +} +exports.addUnit = addUnit; +function requestAnimationFrame(cb) { + return setTimeout(function () { + cb(); + }, 1000 / 30); +} +exports.requestAnimationFrame = requestAnimationFrame; +function pickExclude(obj, keys) { + if (!(0, validator_1.isPlainObject)(obj)) { + return {}; + } + return Object.keys(obj).reduce(function (prev, key) { + if (!keys.includes(key)) { + prev[key] = obj[key]; + } + return prev; + }, {}); +} +exports.pickExclude = pickExclude; +function getRect(context, selector) { + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(context) + .select(selector) + .boundingClientRect() + .exec(function (rect) { + if (rect === void 0) { rect = []; } + return resolve(rect[0]); + }); + }); +} +exports.getRect = getRect; +function getAllRect(context, selector) { + return new Promise(function (resolve) { + wx.createSelectorQuery() + .in(context) + .selectAll(selector) + .boundingClientRect() + .exec(function (rect) { + if (rect === void 0) { rect = []; } + return resolve(rect[0]); + }); + }); +} +exports.getAllRect = getAllRect; +function groupSetData(context, cb) { + if ((0, version_1.canIUseGroupSetData)()) { + context.groupSetData(cb); + } + else { + cb(); + } +} +exports.groupSetData = groupSetData; +function toPromise(promiseLike) { + if ((0, validator_1.isPromise)(promiseLike)) { + return promiseLike; + } + return Promise.resolve(promiseLike); +} +exports.toPromise = toPromise; +// 浮点数精度处理 +function addNumber(num1, num2) { + var cardinal = Math.pow(10, 10); + return Math.round((num1 + num2) * cardinal) / cardinal; +} +exports.addNumber = addNumber; +// 限制value在[min, max]之间 +var clamp = function (num, min, max) { return Math.min(Math.max(num, min), max); }; +exports.clamp = clamp; +function getCurrentPage() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +exports.getCurrentPage = getCurrentPage; +exports.isPC = ['mac', 'windows'].includes((0, version_1.getSystemInfoSync)().platform); +// 是否企业微信 +exports.isWxWork = (0, version_1.getSystemInfoSync)().environment === 'wxwork'; diff --git a/miniprogram_npm/@vant/weapp/common/validator.d.ts b/miniprogram_npm/@vant/weapp/common/validator.d.ts new file mode 100644 index 0000000..152894a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/validator.d.ts @@ -0,0 +1,9 @@ +export declare function isFunction(val: unknown): val is Function; +export declare function isPlainObject(val: unknown): val is Record; +export declare function isPromise(val: unknown): val is Promise; +export declare function isDef(value: unknown): boolean; +export declare function isObj(x: unknown): x is Record; +export declare function isNumber(value: string): boolean; +export declare function isBoolean(value: unknown): value is boolean; +export declare function isImageUrl(url: string): boolean; +export declare function isVideoUrl(url: string): boolean; diff --git a/miniprogram_npm/@vant/weapp/common/validator.js b/miniprogram_npm/@vant/weapp/common/validator.js new file mode 100644 index 0000000..169e796 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/validator.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isVideoUrl = exports.isImageUrl = exports.isBoolean = exports.isNumber = exports.isObj = exports.isDef = exports.isPromise = exports.isPlainObject = exports.isFunction = void 0; +// eslint-disable-next-line @typescript-eslint/ban-types +function isFunction(val) { + return typeof val === 'function'; +} +exports.isFunction = isFunction; +function isPlainObject(val) { + return val !== null && typeof val === 'object' && !Array.isArray(val); +} +exports.isPlainObject = isPlainObject; +function isPromise(val) { + return isPlainObject(val) && isFunction(val.then) && isFunction(val.catch); +} +exports.isPromise = isPromise; +function isDef(value) { + return value !== undefined && value !== null; +} +exports.isDef = isDef; +function isObj(x) { + var type = typeof x; + return x !== null && (type === 'object' || type === 'function'); +} +exports.isObj = isObj; +function isNumber(value) { + return /^\d+(\.\d+)?$/.test(value); +} +exports.isNumber = isNumber; +function isBoolean(value) { + return typeof value === 'boolean'; +} +exports.isBoolean = isBoolean; +var IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i; +var VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv)/i; +function isImageUrl(url) { + return IMAGE_REGEXP.test(url); +} +exports.isImageUrl = isImageUrl; +function isVideoUrl(url) { + return VIDEO_REGEXP.test(url); +} +exports.isVideoUrl = isVideoUrl; diff --git a/miniprogram_npm/@vant/weapp/common/version.d.ts b/miniprogram_npm/@vant/weapp/common/version.d.ts new file mode 100644 index 0000000..3393221 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/version.d.ts @@ -0,0 +1,15 @@ +/// +interface WxWorkSystemInfo extends WechatMiniprogram.SystemInfo { + environment?: 'wxwork'; +} +interface SystemInfo extends WxWorkSystemInfo, WechatMiniprogram.SystemInfo { +} +export declare function getSystemInfoSync(): SystemInfo; +export declare function canIUseModel(): boolean; +export declare function canIUseFormFieldButton(): boolean; +export declare function canIUseAnimate(): boolean; +export declare function canIUseGroupSetData(): boolean; +export declare function canIUseNextTick(): boolean; +export declare function canIUseCanvas2d(): boolean; +export declare function canIUseGetUserProfile(): boolean; +export {}; diff --git a/miniprogram_npm/@vant/weapp/common/version.js b/miniprogram_npm/@vant/weapp/common/version.js new file mode 100644 index 0000000..5937008 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/common/version.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.canIUseGetUserProfile = exports.canIUseCanvas2d = exports.canIUseNextTick = exports.canIUseGroupSetData = exports.canIUseAnimate = exports.canIUseFormFieldButton = exports.canIUseModel = exports.getSystemInfoSync = void 0; +var systemInfo; +function getSystemInfoSync() { + if (systemInfo == null) { + systemInfo = wx.getSystemInfoSync(); + } + return systemInfo; +} +exports.getSystemInfoSync = getSystemInfoSync; +function compareVersion(v1, v2) { + v1 = v1.split('.'); + v2 = v2.split('.'); + var len = Math.max(v1.length, v2.length); + while (v1.length < len) { + v1.push('0'); + } + while (v2.length < len) { + v2.push('0'); + } + for (var i = 0; i < len; i++) { + var num1 = parseInt(v1[i], 10); + var num2 = parseInt(v2[i], 10); + if (num1 > num2) { + return 1; + } + if (num1 < num2) { + return -1; + } + } + return 0; +} +function gte(version) { + var system = getSystemInfoSync(); + return compareVersion(system.SDKVersion, version) >= 0; +} +function canIUseModel() { + return gte('2.9.3'); +} +exports.canIUseModel = canIUseModel; +function canIUseFormFieldButton() { + return gte('2.10.3'); +} +exports.canIUseFormFieldButton = canIUseFormFieldButton; +function canIUseAnimate() { + return gte('2.9.0'); +} +exports.canIUseAnimate = canIUseAnimate; +function canIUseGroupSetData() { + return gte('2.4.0'); +} +exports.canIUseGroupSetData = canIUseGroupSetData; +function canIUseNextTick() { + try { + return wx.canIUse('nextTick'); + } + catch (e) { + return gte('2.7.1'); + } +} +exports.canIUseNextTick = canIUseNextTick; +function canIUseCanvas2d() { + return gte('2.9.0'); +} +exports.canIUseCanvas2d = canIUseCanvas2d; +function canIUseGetUserProfile() { + return !!wx.getUserProfile; +} +exports.canIUseGetUserProfile = canIUseGetUserProfile; diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.d.ts b/miniprogram_npm/@vant/weapp/config-provider/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.js b/miniprogram_npm/@vant/weapp/config-provider/index.js new file mode 100644 index 0000000..21fb1c4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + themeVars: { + type: Object, + value: {}, + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.json b/miniprogram_npm/@vant/weapp/config-provider/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.wxml b/miniprogram_npm/@vant/weapp/config-provider/index.wxml new file mode 100644 index 0000000..3cfb461 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/miniprogram_npm/@vant/weapp/config-provider/index.wxs b/miniprogram_npm/@vant/weapp/config-provider/index.wxs new file mode 100644 index 0000000..7ca0203 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/config-provider/index.wxs @@ -0,0 +1,29 @@ +/* eslint-disable */ +var object = require('../wxs/object.wxs'); +var style = require('../wxs/style.wxs'); + +function kebabCase(word) { + var newWord = word + .replace(getRegExp("[A-Z]", 'g'), function (i) { + return '-' + i; + }) + .toLowerCase() + .replace(getRegExp("^-"), ''); + + return newWord; +} + +function mapThemeVarsToCSSVars(themeVars) { + var cssVars = {}; + object.keys(themeVars).forEach(function (key) { + var cssVarsKey = '--' + kebabCase(key); + cssVars[cssVarsKey] = themeVars[key]; + }); + + return style(cssVars); +} + +module.exports = { + kebabCase: kebabCase, + mapThemeVarsToCSSVars: mapThemeVarsToCSSVars, +}; diff --git a/miniprogram_npm/@vant/weapp/count-down/index.d.ts b/miniprogram_npm/@vant/weapp/count-down/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/count-down/index.js b/miniprogram_npm/@vant/weapp/count-down/index.js new file mode 100644 index 0000000..afc780b --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var utils_1 = require("./utils"); +function simpleTick(fn) { + return setTimeout(fn, 30); +} +(0, component_1.VantComponent)({ + props: { + useSlot: Boolean, + millisecond: Boolean, + time: { + type: Number, + observer: 'reset', + }, + format: { + type: String, + value: 'HH:mm:ss', + }, + autoStart: { + type: Boolean, + value: true, + }, + }, + data: { + timeData: (0, utils_1.parseTimeData)(0), + formattedTime: '0', + }, + destroyed: function () { + clearTimeout(this.tid); + this.tid = null; + }, + methods: { + // 开始 + start: function () { + if (this.counting) { + return; + } + this.counting = true; + this.endTime = Date.now() + this.remain; + this.tick(); + }, + // 暂停 + pause: function () { + this.counting = false; + clearTimeout(this.tid); + }, + // 重置 + reset: function () { + this.pause(); + this.remain = this.data.time; + this.setRemain(this.remain); + if (this.data.autoStart) { + this.start(); + } + }, + tick: function () { + if (this.data.millisecond) { + this.microTick(); + } + else { + this.macroTick(); + } + }, + microTick: function () { + var _this = this; + this.tid = simpleTick(function () { + _this.setRemain(_this.getRemain()); + if (_this.remain !== 0) { + _this.microTick(); + } + }); + }, + macroTick: function () { + var _this = this; + this.tid = simpleTick(function () { + var remain = _this.getRemain(); + if (!(0, utils_1.isSameSecond)(remain, _this.remain) || remain === 0) { + _this.setRemain(remain); + } + if (_this.remain !== 0) { + _this.macroTick(); + } + }); + }, + getRemain: function () { + return Math.max(this.endTime - Date.now(), 0); + }, + setRemain: function (remain) { + this.remain = remain; + var timeData = (0, utils_1.parseTimeData)(remain); + if (this.data.useSlot) { + this.$emit('change', timeData); + } + this.setData({ + formattedTime: (0, utils_1.parseFormat)(this.data.format, timeData), + }); + if (remain === 0) { + this.pause(); + this.$emit('finish'); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/count-down/index.json b/miniprogram_npm/@vant/weapp/count-down/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/count-down/index.wxml b/miniprogram_npm/@vant/weapp/count-down/index.wxml new file mode 100644 index 0000000..e206e16 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.wxml @@ -0,0 +1,4 @@ + + + {{ formattedTime }} + diff --git a/miniprogram_npm/@vant/weapp/count-down/index.wxss b/miniprogram_npm/@vant/weapp/count-down/index.wxss new file mode 100644 index 0000000..8b957f7 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-count-down{color:var(--count-down-text-color,#323233);font-size:var(--count-down-font-size,14px);line-height:var(--count-down-line-height,20px)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/count-down/utils.d.ts b/miniprogram_npm/@vant/weapp/count-down/utils.d.ts new file mode 100644 index 0000000..876a6c1 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/utils.d.ts @@ -0,0 +1,10 @@ +export type TimeData = { + days: number; + hours: number; + minutes: number; + seconds: number; + milliseconds: number; +}; +export declare function parseTimeData(time: number): TimeData; +export declare function parseFormat(format: string, timeData: TimeData): string; +export declare function isSameSecond(time1: number, time2: number): boolean; diff --git a/miniprogram_npm/@vant/weapp/count-down/utils.js b/miniprogram_npm/@vant/weapp/count-down/utils.js new file mode 100644 index 0000000..a7cfa5f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/count-down/utils.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isSameSecond = exports.parseFormat = exports.parseTimeData = void 0; +function padZero(num, targetLength) { + if (targetLength === void 0) { targetLength = 2; } + var str = num + ''; + while (str.length < targetLength) { + str = '0' + str; + } + return str; +} +var SECOND = 1000; +var MINUTE = 60 * SECOND; +var HOUR = 60 * MINUTE; +var DAY = 24 * HOUR; +function parseTimeData(time) { + var days = Math.floor(time / DAY); + var hours = Math.floor((time % DAY) / HOUR); + var minutes = Math.floor((time % HOUR) / MINUTE); + var seconds = Math.floor((time % MINUTE) / SECOND); + var milliseconds = Math.floor(time % SECOND); + return { + days: days, + hours: hours, + minutes: minutes, + seconds: seconds, + milliseconds: milliseconds, + }; +} +exports.parseTimeData = parseTimeData; +function parseFormat(format, timeData) { + var days = timeData.days; + var hours = timeData.hours, minutes = timeData.minutes, seconds = timeData.seconds, milliseconds = timeData.milliseconds; + if (format.indexOf('DD') === -1) { + hours += days * 24; + } + else { + format = format.replace('DD', padZero(days)); + } + if (format.indexOf('HH') === -1) { + minutes += hours * 60; + } + else { + format = format.replace('HH', padZero(hours)); + } + if (format.indexOf('mm') === -1) { + seconds += minutes * 60; + } + else { + format = format.replace('mm', padZero(minutes)); + } + if (format.indexOf('ss') === -1) { + milliseconds += seconds * 1000; + } + else { + format = format.replace('ss', padZero(seconds)); + } + return format.replace('SSS', padZero(milliseconds, 3)); +} +exports.parseFormat = parseFormat; +function isSameSecond(time1, time2) { + return Math.floor(time1 / 1000) === Math.floor(time2 / 1000); +} +exports.isSameSecond = isSameSecond; diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts b/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.js b/miniprogram_npm/@vant/weapp/datetime-picker/index.js new file mode 100644 index 0000000..e30afef --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.js @@ -0,0 +1,329 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var validator_1 = require("../common/validator"); +var shared_1 = require("../picker/shared"); +var currentYear = new Date().getFullYear(); +function isValidDate(date) { + return (0, validator_1.isDef)(date) && !isNaN(new Date(date).getTime()); +} +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} +function padZero(val) { + return "00".concat(val).slice(-2); +} +function times(n, iteratee) { + var index = -1; + var result = Array(n < 0 ? 0 : n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} +function getTrueValue(formattedValue) { + if (formattedValue === undefined) { + formattedValue = '1'; + } + while (isNaN(parseInt(formattedValue, 10))) { + formattedValue = formattedValue.slice(1); + } + return parseInt(formattedValue, 10); +} +function getMonthEndDay(year, month) { + return 32 - new Date(year, month - 1, 32).getDate(); +} +var defaultFormatter = function (type, value) { return value; }; +(0, component_1.VantComponent)({ + classes: ['active-class', 'toolbar-class', 'column-class'], + props: __assign(__assign({}, shared_1.pickerProps), { value: { + type: null, + observer: 'updateValue', + }, filter: null, type: { + type: String, + value: 'datetime', + observer: 'updateValue', + }, showToolbar: { + type: Boolean, + value: true, + }, formatter: { + type: null, + value: defaultFormatter, + }, minDate: { + type: Number, + value: new Date(currentYear - 10, 0, 1).getTime(), + observer: 'updateValue', + }, maxDate: { + type: Number, + value: new Date(currentYear + 10, 11, 31).getTime(), + observer: 'updateValue', + }, minHour: { + type: Number, + value: 0, + observer: 'updateValue', + }, maxHour: { + type: Number, + value: 23, + observer: 'updateValue', + }, minMinute: { + type: Number, + value: 0, + observer: 'updateValue', + }, maxMinute: { + type: Number, + value: 59, + observer: 'updateValue', + } }), + data: { + innerValue: Date.now(), + columns: [], + }, + methods: { + updateValue: function () { + var _this = this; + var data = this.data; + var val = this.correctValue(data.value); + var isEqual = val === data.innerValue; + this.updateColumnValue(val).then(function () { + if (!isEqual) { + _this.$emit('input', val); + } + }); + }, + getPicker: function () { + if (this.picker == null) { + this.picker = this.selectComponent('.van-datetime-picker'); + var picker_1 = this.picker; + var setColumnValues_1 = picker_1.setColumnValues; + picker_1.setColumnValues = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return setColumnValues_1.apply(picker_1, __spreadArray(__spreadArray([], args, true), [false], false)); + }; + } + return this.picker; + }, + updateColumns: function () { + var _a = this.data.formatter, formatter = _a === void 0 ? defaultFormatter : _a; + var results = this.getOriginColumns().map(function (column) { return ({ + values: column.values.map(function (value) { return formatter(column.type, value); }), + }); }); + return this.set({ columns: results }); + }, + getOriginColumns: function () { + var filter = this.data.filter; + var results = this.getRanges().map(function (_a) { + var type = _a.type, range = _a.range; + var values = times(range[1] - range[0] + 1, function (index) { + var value = range[0] + index; + return type === 'year' ? "".concat(value) : padZero(value); + }); + if (filter) { + values = filter(type, values); + } + return { type: type, values: values }; + }); + return results; + }, + getRanges: function () { + var data = this.data; + if (data.type === 'time') { + return [ + { + type: 'hour', + range: [data.minHour, data.maxHour], + }, + { + type: 'minute', + range: [data.minMinute, data.maxMinute], + }, + ]; + } + var _a = this.getBoundary('max', data.innerValue), maxYear = _a.maxYear, maxDate = _a.maxDate, maxMonth = _a.maxMonth, maxHour = _a.maxHour, maxMinute = _a.maxMinute; + var _b = this.getBoundary('min', data.innerValue), minYear = _b.minYear, minDate = _b.minDate, minMonth = _b.minMonth, minHour = _b.minHour, minMinute = _b.minMinute; + var result = [ + { + type: 'year', + range: [minYear, maxYear], + }, + { + type: 'month', + range: [minMonth, maxMonth], + }, + { + type: 'day', + range: [minDate, maxDate], + }, + { + type: 'hour', + range: [minHour, maxHour], + }, + { + type: 'minute', + range: [minMinute, maxMinute], + }, + ]; + if (data.type === 'date') + result.splice(3, 2); + if (data.type === 'year-month') + result.splice(2, 3); + return result; + }, + correctValue: function (value) { + var data = this.data; + // validate value + var isDateType = data.type !== 'time'; + if (isDateType && !isValidDate(value)) { + value = data.minDate; + } + else if (!isDateType && !value) { + var minHour = data.minHour; + value = "".concat(padZero(minHour), ":00"); + } + // time type + if (!isDateType) { + var _a = value.split(':'), hour = _a[0], minute = _a[1]; + hour = padZero(range(hour, data.minHour, data.maxHour)); + minute = padZero(range(minute, data.minMinute, data.maxMinute)); + return "".concat(hour, ":").concat(minute); + } + // date type + value = Math.max(value, data.minDate); + value = Math.min(value, data.maxDate); + return value; + }, + getBoundary: function (type, innerValue) { + var _a; + var value = new Date(innerValue); + var boundary = new Date(this.data["".concat(type, "Date")]); + var year = boundary.getFullYear(); + var month = 1; + var date = 1; + var hour = 0; + var minute = 0; + if (type === 'max') { + month = 12; + date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1); + hour = 23; + minute = 59; + } + if (value.getFullYear() === year) { + month = boundary.getMonth() + 1; + if (value.getMonth() + 1 === month) { + date = boundary.getDate(); + if (value.getDate() === date) { + hour = boundary.getHours(); + if (value.getHours() === hour) { + minute = boundary.getMinutes(); + } + } + } + } + return _a = {}, + _a["".concat(type, "Year")] = year, + _a["".concat(type, "Month")] = month, + _a["".concat(type, "Date")] = date, + _a["".concat(type, "Hour")] = hour, + _a["".concat(type, "Minute")] = minute, + _a; + }, + onCancel: function () { + this.$emit('cancel'); + }, + onConfirm: function () { + this.$emit('confirm', this.data.innerValue); + }, + onChange: function () { + var _this = this; + var data = this.data; + var value; + var picker = this.getPicker(); + var originColumns = this.getOriginColumns(); + if (data.type === 'time') { + var indexes = picker.getIndexes(); + value = "".concat(+originColumns[0].values[indexes[0]], ":").concat(+originColumns[1] + .values[indexes[1]]); + } + else { + var indexes = picker.getIndexes(); + var values = indexes.map(function (value, index) { return originColumns[index].values[value]; }); + var year = getTrueValue(values[0]); + var month = getTrueValue(values[1]); + var maxDate = getMonthEndDay(year, month); + var date = getTrueValue(values[2]); + if (data.type === 'year-month') { + date = 1; + } + date = date > maxDate ? maxDate : date; + var hour = 0; + var minute = 0; + if (data.type === 'datetime') { + hour = getTrueValue(values[3]); + minute = getTrueValue(values[4]); + } + value = new Date(year, month - 1, date, hour, minute); + } + value = this.correctValue(value); + this.updateColumnValue(value).then(function () { + _this.$emit('input', value); + _this.$emit('change', picker); + }); + }, + updateColumnValue: function (value) { + var _this = this; + var values = []; + var type = this.data.type; + var formatter = this.data.formatter || defaultFormatter; + var picker = this.getPicker(); + if (type === 'time') { + var pair = value.split(':'); + values = [formatter('hour', pair[0]), formatter('minute', pair[1])]; + } + else { + var date = new Date(value); + values = [ + formatter('year', "".concat(date.getFullYear())), + formatter('month', padZero(date.getMonth() + 1)), + ]; + if (type === 'date') { + values.push(formatter('day', padZero(date.getDate()))); + } + if (type === 'datetime') { + values.push(formatter('day', padZero(date.getDate())), formatter('hour', padZero(date.getHours())), formatter('minute', padZero(date.getMinutes()))); + } + } + return this.set({ innerValue: value }) + .then(function () { return _this.updateColumns(); }) + .then(function () { return picker.setValues(values); }); + }, + }, + created: function () { + var _this = this; + var innerValue = this.correctValue(this.data.value); + this.updateColumnValue(innerValue).then(function () { + _this.$emit('input', innerValue); + }); + }, +}); diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.json b/miniprogram_npm/@vant/weapp/datetime-picker/index.json new file mode 100644 index 0000000..a778e91 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-picker": "../picker/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml b/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml new file mode 100644 index 0000000..ade2202 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml @@ -0,0 +1,16 @@ + diff --git a/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss b/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss new file mode 100644 index 0000000..99694d6 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss'; \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/definitions/index.d.ts b/miniprogram_npm/@vant/weapp/definitions/index.d.ts new file mode 100644 index 0000000..c90321f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/definitions/index.d.ts @@ -0,0 +1,29 @@ +/// +interface VantComponentInstance { + parent: WechatMiniprogram.Component.TrivialInstance; + children: WechatMiniprogram.Component.TrivialInstance[]; + index: number; + $emit: (name: string, detail?: unknown, options?: WechatMiniprogram.Component.TriggerEventOption) => void; + setView: (value: Record, callback?: () => void) => void; +} +export type VantComponentOptions = { + data?: Data; + field?: boolean; + classes?: string[]; + mixins?: string[]; + props?: Props; + relation?: { + relations: Record; + mixin: string; + }; + watch?: Record any>; + methods?: Methods; + beforeCreate?: () => void; + created?: () => void; + mounted?: () => void; + destroyed?: () => void; +} & ThisType, Props, Methods> & Record>; +export {}; diff --git a/miniprogram_npm/@vant/weapp/definitions/index.js b/miniprogram_npm/@vant/weapp/definitions/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/definitions/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts b/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts new file mode 100644 index 0000000..db2da5f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts @@ -0,0 +1,55 @@ +/// +/// +export type Action = 'confirm' | 'cancel' | 'overlay'; +type DialogContext = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance; +interface DialogOptions { + lang?: string; + show?: boolean; + title?: string; + width?: string | number | null; + zIndex?: number; + theme?: string; + context?: (() => DialogContext) | DialogContext; + message?: string; + overlay?: boolean; + selector?: string; + ariaLabel?: string; + /** + * @deprecated use custom-class instead + */ + className?: string; + customStyle?: string; + transition?: string; + /** + * @deprecated use beforeClose instead + */ + asyncClose?: boolean; + beforeClose?: null | ((action: Action) => Promise | void); + businessId?: number; + sessionFrom?: string; + overlayStyle?: string; + appParameter?: string; + messageAlign?: string; + sendMessageImg?: string; + showMessageCard?: boolean; + sendMessagePath?: string; + sendMessageTitle?: string; + confirmButtonText?: string; + cancelButtonText?: string; + showConfirmButton?: boolean; + showCancelButton?: boolean; + closeOnClickOverlay?: boolean; + confirmButtonOpenType?: string; +} +declare const Dialog: { + (options: DialogOptions): Promise; + alert(options: DialogOptions): Promise; + confirm(options: DialogOptions): Promise; + close(): void; + stopLoading(): void; + currentOptions: DialogOptions; + defaultOptions: DialogOptions; + setDefaultOptions(options: DialogOptions): void; + resetDefaultOptions(): void; +}; +export default Dialog; diff --git a/miniprogram_npm/@vant/weapp/dialog/dialog.js b/miniprogram_npm/@vant/weapp/dialog/dialog.js new file mode 100644 index 0000000..400f4f1 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/dialog.js @@ -0,0 +1,92 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var queue = []; +var defaultOptions = { + show: false, + title: '', + width: null, + theme: 'default', + message: '', + zIndex: 100, + overlay: true, + selector: '#van-dialog', + className: '', + asyncClose: false, + beforeClose: null, + transition: 'scale', + customStyle: '', + messageAlign: '', + overlayStyle: '', + confirmButtonText: '确认', + cancelButtonText: '取消', + showConfirmButton: true, + showCancelButton: false, + closeOnClickOverlay: false, + confirmButtonOpenType: '', +}; +var currentOptions = __assign({}, defaultOptions); +function getContext() { + var pages = getCurrentPages(); + return pages[pages.length - 1]; +} +var Dialog = function (options) { + options = __assign(__assign({}, currentOptions), options); + return new Promise(function (resolve, reject) { + var context = (typeof options.context === 'function' + ? options.context() + : options.context) || getContext(); + var dialog = context.selectComponent(options.selector); + delete options.context; + delete options.selector; + if (dialog) { + dialog.setData(__assign({ callback: function (action, instance) { + action === 'confirm' ? resolve(instance) : reject(instance); + } }, options)); + wx.nextTick(function () { + dialog.setData({ show: true }); + }); + queue.push(dialog); + } + else { + console.warn('未找到 van-dialog 节点,请确认 selector 及 context 是否正确'); + } + }); +}; +Dialog.alert = function (options) { return Dialog(options); }; +Dialog.confirm = function (options) { + return Dialog(__assign({ showCancelButton: true }, options)); +}; +Dialog.close = function () { + queue.forEach(function (dialog) { + dialog.close(); + }); + queue = []; +}; +Dialog.stopLoading = function () { + queue.forEach(function (dialog) { + dialog.stopLoading(); + }); +}; +Dialog.currentOptions = currentOptions; +Dialog.defaultOptions = defaultOptions; +Dialog.setDefaultOptions = function (options) { + currentOptions = __assign(__assign({}, currentOptions), options); + Dialog.currentOptions = currentOptions; +}; +Dialog.resetDefaultOptions = function () { + currentOptions = __assign({}, defaultOptions); + Dialog.currentOptions = currentOptions; +}; +Dialog.resetDefaultOptions(); +exports.default = Dialog; diff --git a/miniprogram_npm/@vant/weapp/dialog/index.d.ts b/miniprogram_npm/@vant/weapp/dialog/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/dialog/index.js b/miniprogram_npm/@vant/weapp/dialog/index.js new file mode 100644 index 0000000..b0acfa0 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.js @@ -0,0 +1,135 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var button_1 = require("../mixins/button"); +var color_1 = require("../common/color"); +var utils_1 = require("../common/utils"); +(0, component_1.VantComponent)({ + mixins: [button_1.button], + classes: ['cancle-button-class', 'confirm-button-class'], + props: { + show: { + type: Boolean, + observer: function (show) { + !show && this.stopLoading(); + }, + }, + title: String, + message: String, + theme: { + type: String, + value: 'default', + }, + confirmButtonId: String, + className: String, + customStyle: String, + asyncClose: Boolean, + messageAlign: String, + beforeClose: null, + overlayStyle: String, + useSlot: Boolean, + useTitleSlot: Boolean, + useConfirmButtonSlot: Boolean, + useCancelButtonSlot: Boolean, + showCancelButton: Boolean, + closeOnClickOverlay: Boolean, + confirmButtonOpenType: String, + width: null, + zIndex: { + type: Number, + value: 2000, + }, + confirmButtonText: { + type: String, + value: '确认', + }, + cancelButtonText: { + type: String, + value: '取消', + }, + confirmButtonColor: { + type: String, + value: color_1.RED, + }, + cancelButtonColor: { + type: String, + value: color_1.GRAY, + }, + showConfirmButton: { + type: Boolean, + value: true, + }, + overlay: { + type: Boolean, + value: true, + }, + transition: { + type: String, + value: 'scale', + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + data: { + loading: { + confirm: false, + cancel: false, + }, + callback: (function () { }), + }, + methods: { + onConfirm: function () { + this.handleAction('confirm'); + }, + onCancel: function () { + this.handleAction('cancel'); + }, + onClickOverlay: function () { + this.close('overlay'); + }, + close: function (action) { + var _this = this; + this.setData({ show: false }); + wx.nextTick(function () { + _this.$emit('close', action); + var callback = _this.data.callback; + if (callback) { + callback(action, _this); + } + }); + }, + stopLoading: function () { + this.setData({ + loading: { + confirm: false, + cancel: false, + }, + }); + }, + handleAction: function (action) { + var _a; + var _this = this; + this.$emit(action, { dialog: this }); + var _b = this.data, asyncClose = _b.asyncClose, beforeClose = _b.beforeClose; + if (!asyncClose && !beforeClose) { + this.close(action); + return; + } + this.setData((_a = {}, + _a["loading.".concat(action)] = true, + _a)); + if (beforeClose) { + (0, utils_1.toPromise)(beforeClose(action)).then(function (value) { + if (value) { + _this.close(action); + } + else { + _this.stopLoading(); + } + }); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/dialog/index.json b/miniprogram_npm/@vant/weapp/dialog/index.json new file mode 100644 index 0000000..43417fc --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "van-button": "../button/index", + "van-goods-action": "../goods-action/index", + "van-goods-action-button": "../goods-action-button/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/dialog/index.wxml b/miniprogram_npm/@vant/weapp/dialog/index.wxml new file mode 100644 index 0000000..a1d8e3c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.wxml @@ -0,0 +1,125 @@ + + + + + + {{ title }} + + + + + {{ message }} + + + + + {{ cancelButtonText }} + + + {{ confirmButtonText }} + + + + + + + + + {{ cancelButtonText }} + + + + + + + + {{ confirmButtonText }} + + + + diff --git a/miniprogram_npm/@vant/weapp/dialog/index.wxss b/miniprogram_npm/@vant/weapp/dialog/index.wxss new file mode 100644 index 0000000..507a789 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dialog/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dialog{background-color:var(--dialog-background-color,#fff);border-radius:var(--dialog-border-radius,16px);font-size:var(--dialog-font-size,16px);overflow:hidden;top:45%!important;width:var(--dialog-width,320px)}@media (max-width:321px){.van-dialog{width:var(--dialog-small-screen-width,90%)}}.van-dialog__header{font-weight:var(--dialog-header-font-weight,500);line-height:var(--dialog-header-line-height,24px);padding-top:var(--dialog-header-padding-top,24px);text-align:center}.van-dialog__header--isolated{padding:var(--dialog-header-isolated-padding,24px 0)}.van-dialog__message{-webkit-overflow-scrolling:touch;font-size:var(--dialog-message-font-size,14px);line-height:var(--dialog-message-line-height,20px);max-height:var(--dialog-message-max-height,60vh);overflow-y:auto;padding:var(--dialog-message-padding,24px);text-align:center}.van-dialog__message-text{word-wrap:break-word}.van-dialog__message--hasTitle{color:var(--dialog-has-title-message-text-color,#646566);padding-top:var(--dialog-has-title-message-padding-top,8px)}.van-dialog__message--round-button{color:#323233;padding-bottom:16px}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__message--justify{text-align:justify}.van-dialog__footer{display:flex}.van-dialog__footer--round-button{padding:8px 24px 16px!important;position:relative!important}.van-dialog__button{flex:1}.van-dialog__cancel,.van-dialog__confirm{border:0!important}.van-dialog-bounce-enter{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)}.van-dialog-bounce-leave-active{opacity:0;transform:translate3d(-50%,-50%,0) scale(.9)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/divider/index.d.ts b/miniprogram_npm/@vant/weapp/divider/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/divider/index.js b/miniprogram_npm/@vant/weapp/divider/index.js new file mode 100644 index 0000000..5c63844 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + dashed: Boolean, + hairline: Boolean, + contentPosition: String, + fontSize: String, + borderColor: String, + textColor: String, + customStyle: String, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/divider/index.json b/miniprogram_npm/@vant/weapp/divider/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/miniprogram_npm/@vant/weapp/divider/index.wxml b/miniprogram_npm/@vant/weapp/divider/index.wxml new file mode 100644 index 0000000..f6a5a45 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.wxml @@ -0,0 +1,9 @@ + + + + + + diff --git a/miniprogram_npm/@vant/weapp/divider/index.wxs b/miniprogram_npm/@vant/weapp/divider/index.wxs new file mode 100644 index 0000000..215b14f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function rootStyle(data) { + return style([ + { + 'border-color': data.borderColor, + color: data.textColor, + 'font-size': addUnit(data.fontSize), + }, + data.customStyle, + ]); +} + +module.exports = { + rootStyle: rootStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/divider/index.wxss b/miniprogram_npm/@vant/weapp/divider/index.wxss new file mode 100644 index 0000000..e91dc44 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/divider/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-divider{align-items:center;border:0 solid var(--divider-border-color,#ebedf0);color:var(--divider-text-color,#969799);display:flex;font-size:var(--divider-font-size,14px);line-height:var(--divider-line-height,24px);margin:var(--divider-margin,16px 0)}.van-divider:after,.van-divider:before{border-color:inherit;border-style:inherit;border-width:1px 0 0;box-sizing:border-box;display:block;flex:1;height:1px}.van-divider:before{content:""}.van-divider--hairline:after,.van-divider--hairline:before{transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--center:before,.van-divider--left:before,.van-divider--right:before{margin-right:var(--divider-content-padding,16px)}.van-divider--center:after,.van-divider--left:after,.van-divider--right:after{content:"";margin-left:var(--divider-content-padding,16px)}.van-divider--left:before{max-width:var(--divider-content-left-width,10%)}.van-divider--right:after{max-width:var(--divider-content-right-width,10%)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts b/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.js b/miniprogram_npm/@vant/weapp/dropdown-item/index.js new file mode 100644 index 0000000..826c26a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.js @@ -0,0 +1,136 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var relation_1 = require("../common/relation"); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + classes: ['item-title-class'], + field: true, + relation: (0, relation_1.useParent)('dropdown-menu', function () { + this.updateDataFromParent(); + }), + props: { + value: { + type: null, + observer: 'rerender', + }, + title: { + type: String, + observer: 'rerender', + }, + disabled: Boolean, + titleClass: { + type: String, + observer: 'rerender', + }, + options: { + type: Array, + value: [], + observer: 'rerender', + }, + popupStyle: String, + useBeforeToggle: { + type: Boolean, + value: false, + }, + rootPortal: { + type: Boolean, + value: false, + }, + }, + data: { + transition: true, + showPopup: false, + showWrapper: false, + displayTitle: '', + safeAreaTabBar: false, + }, + methods: { + rerender: function () { + var _this = this; + wx.nextTick(function () { + var _a; + (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.updateItemListData(); + }); + }, + updateDataFromParent: function () { + if (this.parent) { + var _a = this.parent.data, overlay = _a.overlay, duration = _a.duration, activeColor = _a.activeColor, closeOnClickOverlay = _a.closeOnClickOverlay, direction = _a.direction, safeAreaTabBar = _a.safeAreaTabBar; + this.setData({ + overlay: overlay, + duration: duration, + activeColor: activeColor, + closeOnClickOverlay: closeOnClickOverlay, + direction: direction, + safeAreaTabBar: safeAreaTabBar, + }); + } + }, + onOpen: function () { + this.$emit('open'); + }, + onOpened: function () { + this.$emit('opened'); + }, + onClose: function () { + this.$emit('close'); + }, + onClosed: function () { + this.$emit('closed'); + this.setData({ showWrapper: false }); + }, + onOptionTap: function (event) { + var option = event.currentTarget.dataset.option; + var value = option.value; + var shouldEmitChange = this.data.value !== value; + this.setData({ showPopup: false, value: value }); + this.$emit('close'); + this.rerender(); + if (shouldEmitChange) { + this.$emit('change', value); + } + }, + toggle: function (show, options) { + var _this = this; + if (options === void 0) { options = {}; } + var showPopup = this.data.showPopup; + if (typeof show !== 'boolean') { + show = !showPopup; + } + if (show === showPopup) { + return; + } + this.onBeforeToggle(show).then(function (status) { + var _a; + if (!status) { + return; + } + _this.setData({ + transition: !options.immediate, + showPopup: show, + }); + if (show) { + (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.getChildWrapperStyle().then(function (wrapperStyle) { + _this.setData({ wrapperStyle: wrapperStyle, showWrapper: true }); + _this.rerender(); + }); + } + else { + _this.rerender(); + } + }); + }, + onBeforeToggle: function (status) { + var _this = this; + var useBeforeToggle = this.data.useBeforeToggle; + if (!useBeforeToggle) { + return Promise.resolve(true); + } + return new Promise(function (resolve) { + _this.$emit('before-toggle', { + status: status, + callback: function (value) { return resolve(value); }, + }); + }); + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.json b/miniprogram_npm/@vant/weapp/dropdown-item/index.json new file mode 100644 index 0000000..88d5409 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "../popup/index", + "van-cell": "../cell/index", + "van-icon": "../icon/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml b/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml new file mode 100644 index 0000000..63904f4 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml @@ -0,0 +1,50 @@ + + + + + + + {{ item.text }} + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss b/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss new file mode 100644 index 0000000..80505e9 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dropdown-item{left:0;overflow:hidden;position:fixed;right:0}.van-dropdown-item__option{text-align:left}.van-dropdown-item__option--active .van-dropdown-item__icon,.van-dropdown-item__option--active .van-dropdown-item__title{color:var(--dropdown-menu-option-active-color,#ee0a24)}.van-dropdown-item--up{top:0}.van-dropdown-item--down{bottom:0}.van-dropdown-item__icon{display:block;line-height:inherit} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts b/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts new file mode 100644 index 0000000..774eb4c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts @@ -0,0 +1,5 @@ +export interface Option { + text: string; + value: string | number; + icon: string; +} diff --git a/miniprogram_npm/@vant/weapp/dropdown-item/shared.js b/miniprogram_npm/@vant/weapp/dropdown-item/shared.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-item/shared.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts b/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.js b/miniprogram_npm/@vant/weapp/dropdown-menu/index.js new file mode 100644 index 0000000..aed2921 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.js @@ -0,0 +1,122 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +var relation_1 = require("../common/relation"); +var utils_1 = require("../common/utils"); +var ARRAY = []; +(0, component_1.VantComponent)({ + field: true, + classes: ['title-class'], + relation: (0, relation_1.useChildren)('dropdown-item', function () { + this.updateItemListData(); + }), + props: { + activeColor: { + type: String, + observer: 'updateChildrenData', + }, + overlay: { + type: Boolean, + value: true, + observer: 'updateChildrenData', + }, + zIndex: { + type: Number, + value: 10, + }, + duration: { + type: Number, + value: 200, + observer: 'updateChildrenData', + }, + direction: { + type: String, + value: 'down', + observer: 'updateChildrenData', + }, + safeAreaTabBar: { + type: Boolean, + value: false, + }, + closeOnClickOverlay: { + type: Boolean, + value: true, + observer: 'updateChildrenData', + }, + closeOnClickOutside: { + type: Boolean, + value: true, + }, + }, + data: { + itemListData: [], + }, + beforeCreate: function () { + var windowHeight = (0, utils_1.getSystemInfoSync)().windowHeight; + this.windowHeight = windowHeight; + ARRAY.push(this); + }, + destroyed: function () { + var _this = this; + ARRAY = ARRAY.filter(function (item) { return item !== _this; }); + }, + methods: { + updateItemListData: function () { + this.setData({ + itemListData: this.children.map(function (child) { return child.data; }), + }); + }, + updateChildrenData: function () { + this.children.forEach(function (child) { + child.updateDataFromParent(); + }); + }, + toggleItem: function (active) { + this.children.forEach(function (item, index) { + var showPopup = item.data.showPopup; + if (index === active) { + item.toggle(); + } + else if (showPopup) { + item.toggle(false, { immediate: true }); + } + }); + }, + close: function () { + this.children.forEach(function (child) { + child.toggle(false, { immediate: true }); + }); + }, + getChildWrapperStyle: function () { + var _this = this; + var _a = this.data, zIndex = _a.zIndex, direction = _a.direction; + return (0, utils_1.getRect)(this, '.van-dropdown-menu').then(function (rect) { + var _a = rect.top, top = _a === void 0 ? 0 : _a, _b = rect.bottom, bottom = _b === void 0 ? 0 : _b; + var offset = direction === 'down' ? bottom : _this.windowHeight - top; + var wrapperStyle = "z-index: ".concat(zIndex, ";"); + if (direction === 'down') { + wrapperStyle += "top: ".concat((0, utils_1.addUnit)(offset), ";"); + } + else { + wrapperStyle += "bottom: ".concat((0, utils_1.addUnit)(offset), ";"); + } + return wrapperStyle; + }); + }, + onTitleTap: function (event) { + var _this = this; + var index = event.currentTarget.dataset.index; + var child = this.children[index]; + if (!child.data.disabled) { + ARRAY.forEach(function (menuItem) { + if (menuItem && + menuItem.data.closeOnClickOutside && + menuItem !== _this) { + menuItem.close(); + } + }); + this.toggleItem(index); + } + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.json b/miniprogram_npm/@vant/weapp/dropdown-menu/index.json new file mode 100644 index 0000000..467ce29 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml new file mode 100644 index 0000000..ec165a9 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml @@ -0,0 +1,23 @@ + + + + + + + + {{ computed.displayTitle(item) }} + + + + + + diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs new file mode 100644 index 0000000..6538854 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs @@ -0,0 +1,16 @@ +/* eslint-disable */ +function displayTitle(item) { + if (item.title) { + return item.title; + } + + var match = item.options.filter(function(option) { + return option.value === item.value; + }); + var displayTitle = match.length ? match[0].text : ''; + return displayTitle; +} + +module.exports = { + displayTitle: displayTitle +}; diff --git a/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss new file mode 100644 index 0000000..dba000e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-dropdown-menu{background-color:var(--dropdown-menu-background-color,#fff);box-shadow:var(--dropdown-menu-box-shadow,0 2px 12px hsla(210,1%,40%,.12));display:flex;height:var(--dropdown-menu-height,50px);-webkit-user-select:none;user-select:none}.van-dropdown-menu__item{align-items:center;display:flex;flex:1;justify-content:center;min-width:0}.van-dropdown-menu__item:active{opacity:.7}.van-dropdown-menu__item--disabled:active{opacity:1}.van-dropdown-menu__item--disabled .van-dropdown-menu__title{color:var(--dropdown-menu-title-disabled-text-color,#969799)}.van-dropdown-menu__title{box-sizing:border-box;color:var(--dropdown-menu-title-text-color,#323233);font-size:var(--dropdown-menu-title-font-size,15px);line-height:var(--dropdown-menu-title-line-height,18px);max-width:100%;padding:var(--dropdown-menu-title-padding,0 24px 0 8px);position:relative}.van-dropdown-menu__title:after{border-color:transparent transparent currentcolor currentcolor;border-style:solid;border-width:3px;content:"";margin-top:-5px;opacity:.8;position:absolute;right:11px;top:50%;transform:rotate(-45deg)}.van-dropdown-menu__title--active{color:var(--dropdown-menu-title-active-text-color,#ee0a24)}.van-dropdown-menu__title--down:after{margin-top:-1px;transform:rotate(135deg)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/empty/index.d.ts b/miniprogram_npm/@vant/weapp/empty/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/empty/index.js b/miniprogram_npm/@vant/weapp/empty/index.js new file mode 100644 index 0000000..755e638 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var component_1 = require("../common/component"); +(0, component_1.VantComponent)({ + props: { + description: String, + image: { + type: String, + value: 'default', + }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/empty/index.json b/miniprogram_npm/@vant/weapp/empty/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/miniprogram_npm/@vant/weapp/empty/index.wxml b/miniprogram_npm/@vant/weapp/empty/index.wxml new file mode 100644 index 0000000..9c7b719 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.wxml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + {{ description }} + + + + + + diff --git a/miniprogram_npm/@vant/weapp/empty/index.wxs b/miniprogram_npm/@vant/weapp/empty/index.wxs new file mode 100644 index 0000000..cf92ece --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.wxs @@ -0,0 +1,15 @@ +/* eslint-disable */ +var PRESETS = ['error', 'search', 'default', 'network']; + +function imageUrl(image) { + if (PRESETS.indexOf(image) !== -1) { + return 'https://img.yzcdn.cn/vant/empty-image-' + image + '.png'; + } + + return image; +} + +module.exports = { + imageUrl: imageUrl, +}; + diff --git a/miniprogram_npm/@vant/weapp/empty/index.wxss b/miniprogram_npm/@vant/weapp/empty/index.wxss new file mode 100644 index 0000000..0fb74fe --- /dev/null +++ b/miniprogram_npm/@vant/weapp/empty/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:32px 0}.van-empty__image{height:160px;width:160px}.van-empty__image:empty{display:none}.van-empty__image__img{height:100%;width:100%}.van-empty__image:not(:empty)+.van-empty__image{display:none}.van-empty__description{color:#969799;font-size:14px;line-height:20px;margin-top:16px;padding:0 60px}.van-empty__description:empty,.van-empty__description:not(:empty)+.van-empty__description{display:none}.van-empty__bottom{margin-top:24px} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/field/index.d.ts b/miniprogram_npm/@vant/weapp/field/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/miniprogram_npm/@vant/weapp/field/index.js b/miniprogram_npm/@vant/weapp/field/index.js new file mode 100644 index 0000000..ee64d5f --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.js @@ -0,0 +1,152 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var utils_1 = require("../common/utils"); +var component_1 = require("../common/component"); +var props_1 = require("./props"); +(0, component_1.VantComponent)({ + field: true, + classes: ['input-class', 'right-icon-class', 'label-class'], + props: __assign(__assign(__assign(__assign({}, props_1.commonProps), props_1.inputProps), props_1.textareaProps), { size: String, icon: String, label: String, error: Boolean, center: Boolean, isLink: Boolean, leftIcon: String, rightIcon: String, autosize: null, required: Boolean, iconClass: String, clickable: Boolean, inputAlign: String, customStyle: String, errorMessage: String, arrowDirection: String, showWordLimit: Boolean, errorMessageAlign: String, readonly: { + type: Boolean, + observer: 'setShowClear', + }, clearable: { + type: Boolean, + observer: 'setShowClear', + }, clearTrigger: { + type: String, + value: 'focus', + }, border: { + type: Boolean, + value: true, + }, titleWidth: { + type: String, + value: '6.2em', + }, clearIcon: { + type: String, + value: 'clear', + }, extraEventParams: { + type: Boolean, + value: false, + } }), + data: { + focused: false, + innerValue: '', + showClear: false, + }, + watch: { + value: function (value) { + if (value !== this.value) { + this.setData({ innerValue: value }); + this.value = value; + this.setShowClear(); + } + }, + clearTrigger: function () { + this.setShowClear(); + }, + }, + created: function () { + this.value = this.data.value; + this.setData({ innerValue: this.value }); + }, + methods: { + formatValue: function (value) { + var maxlength = this.data.maxlength; + if (maxlength !== -1 && value.length > maxlength) { + return value.slice(0, maxlength); + } + return value; + }, + onInput: function (event) { + var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a; + var formatValue = this.formatValue(value); + this.value = formatValue; + this.setShowClear(); + return this.emitChange(__assign(__assign({}, event.detail), { value: formatValue })); + }, + onFocus: function (event) { + this.focused = true; + this.setShowClear(); + this.$emit('focus', event.detail); + }, + onBlur: function (event) { + this.focused = false; + this.setShowClear(); + this.$emit('blur', event.detail); + }, + onClickIcon: function () { + this.$emit('click-icon'); + }, + onClickInput: function (event) { + this.$emit('click-input', event.detail); + }, + onClear: function () { + var _this = this; + this.setData({ innerValue: '' }); + this.value = ''; + this.setShowClear(); + (0, utils_1.nextTick)(function () { + _this.emitChange({ value: '' }); + _this.$emit('clear', ''); + }); + }, + onConfirm: function (event) { + var _a = (event.detail || {}).value, value = _a === void 0 ? '' : _a; + this.value = value; + this.setShowClear(); + this.$emit('confirm', value); + }, + setValue: function (value) { + this.value = value; + this.setShowClear(); + if (value === '') { + this.setData({ innerValue: '' }); + } + this.emitChange({ value: value }); + }, + onLineChange: function (event) { + this.$emit('linechange', event.detail); + }, + onKeyboardHeightChange: function (event) { + this.$emit('keyboardheightchange', event.detail); + }, + onBindNicknameReview: function (event) { + this.$emit('nicknamereview', event.detail); + }, + emitChange: function (detail) { + var extraEventParams = this.data.extraEventParams; + this.setData({ value: detail.value }); + var result; + var data = extraEventParams + ? __assign(__assign({}, detail), { callback: function (data) { + result = data; + } }) : detail.value; + this.$emit('input', data); + this.$emit('change', data); + return result; + }, + setShowClear: function () { + var _a = this.data, clearable = _a.clearable, readonly = _a.readonly, clearTrigger = _a.clearTrigger; + var _b = this, focused = _b.focused, value = _b.value; + var showClear = false; + if (clearable && !readonly) { + var hasValue = !!value; + var trigger = clearTrigger === 'always' || (clearTrigger === 'focus' && focused); + showClear = hasValue && trigger; + } + this.setView({ showClear: showClear }); + }, + noop: function () { }, + }, +}); diff --git a/miniprogram_npm/@vant/weapp/field/index.json b/miniprogram_npm/@vant/weapp/field/index.json new file mode 100644 index 0000000..5906c50 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-cell": "../cell/index", + "van-icon": "../icon/index" + } +} diff --git a/miniprogram_npm/@vant/weapp/field/index.wxml b/miniprogram_npm/@vant/weapp/field/index.wxml new file mode 100644 index 0000000..6018993 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.wxml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/miniprogram_npm/@vant/weapp/field/index.wxs b/miniprogram_npm/@vant/weapp/field/index.wxs new file mode 100644 index 0000000..78575b9 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.wxs @@ -0,0 +1,18 @@ +/* eslint-disable */ +var style = require('../wxs/style.wxs'); +var addUnit = require('../wxs/add-unit.wxs'); + +function inputStyle(autosize) { + if (autosize && autosize.constructor === 'Object') { + return style({ + 'min-height': addUnit(autosize.minHeight), + 'max-height': addUnit(autosize.maxHeight), + }); + } + + return ''; +} + +module.exports = { + inputStyle: inputStyle, +}; diff --git a/miniprogram_npm/@vant/weapp/field/index.wxss b/miniprogram_npm/@vant/weapp/field/index.wxss new file mode 100644 index 0000000..5f7d306 --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/index.wxss @@ -0,0 +1 @@ +@import '../common/index.wxss';.van-field{--cell-icon-size:var(--field-icon-size,16px)}.van-field__label{color:var(--field-label-color,#646566)}.van-field__label--disabled{color:var(--field-disabled-text-color,#c8c9cc)}.van-field__body{align-items:center;display:flex}.van-field__body--textarea{box-sizing:border-box;line-height:1.2em;min-height:var(--cell-line-height,24px);padding:3.6px 0}.van-field__control:empty+.van-field__control{display:block}.van-field__control{background-color:initial;border:0;box-sizing:border-box;color:var(--field-input-text-color,#323233);display:none;height:var(--cell-line-height,24px);line-height:inherit;margin:0;min-height:var(--cell-line-height,24px);padding:0;position:relative;resize:none;text-align:left;width:100%}.van-field__control:empty{display:none}.van-field__control--textarea{height:var(--field-text-area-min-height,18px);min-height:var(--field-text-area-min-height,18px)}.van-field__control--error{color:var(--field-input-error-text-color,#ee0a24)}.van-field__control--disabled{background-color:initial;color:var(--field-input-disabled-text-color,#c8c9cc);opacity:1}.van-field__control--center{text-align:center}.van-field__control--right{text-align:right}.van-field__control--custom{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__placeholder{color:var(--field-placeholder-text-color,#c8c9cc);left:0;pointer-events:none;position:absolute;right:0;top:0}.van-field__placeholder--error{color:var(--field-error-message-color,#ee0a24)}.van-field__icon-root{align-items:center;display:flex;min-height:var(--cell-line-height,24px)}.van-field__clear-root,.van-field__icon-container{line-height:inherit;margin-right:calc(var(--padding-xs, 8px)*-1);padding:0 var(--padding-xs,8px);vertical-align:middle}.van-field__button,.van-field__clear-root,.van-field__icon-container{flex-shrink:0}.van-field__clear-root{color:var(--field-clear-icon-color,#c8c9cc);font-size:var(--field-clear-icon-size,16px)}.van-field__icon-container{color:var(--field-icon-container-color,#969799);font-size:var(--field-icon-size,16px)}.van-field__icon-container:empty{display:none}.van-field__button{padding-left:var(--padding-xs,8px)}.van-field__button:empty{display:none}.van-field__error-message{color:var(--field-error-message-color,#ee0a24);display:block;font-size:var(--field-error-message-text-font-size,12px);text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{color:var(--field-word-limit-color,#646566);font-size:var(--field-word-limit-font-size,12px);line-height:var(--field-word-limit-line-height,16px);margin-top:var(--padding-base,4px);text-align:right}.van-field__word-num{display:inline}.van-field__word-num--full{color:var(--field-word-num-full-color,#ee0a24)} \ No newline at end of file diff --git a/miniprogram_npm/@vant/weapp/field/input.wxml b/miniprogram_npm/@vant/weapp/field/input.wxml new file mode 100644 index 0000000..86b288b --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/input.wxml @@ -0,0 +1,31 @@ + + diff --git a/miniprogram_npm/@vant/weapp/field/props.d.ts b/miniprogram_npm/@vant/weapp/field/props.d.ts new file mode 100644 index 0000000..5cd130a --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/props.d.ts @@ -0,0 +1,4 @@ +/// +export declare const commonProps: WechatMiniprogram.Component.PropertyOption; +export declare const inputProps: WechatMiniprogram.Component.PropertyOption; +export declare const textareaProps: WechatMiniprogram.Component.PropertyOption; diff --git a/miniprogram_npm/@vant/weapp/field/props.js b/miniprogram_npm/@vant/weapp/field/props.js new file mode 100644 index 0000000..5ec647b --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/props.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.textareaProps = exports.inputProps = exports.commonProps = void 0; +exports.commonProps = { + value: String, + placeholder: String, + placeholderStyle: String, + placeholderClass: String, + disabled: Boolean, + maxlength: { + type: Number, + value: -1, + }, + cursorSpacing: { + type: Number, + value: 50, + }, + autoFocus: Boolean, + focus: Boolean, + cursor: { + type: Number, + value: -1, + }, + selectionStart: { + type: Number, + value: -1, + }, + selectionEnd: { + type: Number, + value: -1, + }, + adjustPosition: { + type: Boolean, + value: true, + }, + holdKeyboard: Boolean, +}; +exports.inputProps = { + type: { + type: String, + value: 'text', + }, + password: Boolean, + confirmType: String, + confirmHold: Boolean, + alwaysEmbed: Boolean, +}; +exports.textareaProps = { + autoHeight: Boolean, + fixed: Boolean, + showConfirmBar: { + type: Boolean, + value: true, + }, + disableDefaultPadding: { + type: Boolean, + value: true, + }, +}; diff --git a/miniprogram_npm/@vant/weapp/field/textarea.wxml b/miniprogram_npm/@vant/weapp/field/textarea.wxml new file mode 100644 index 0000000..945d03e --- /dev/null +++ b/miniprogram_npm/@vant/weapp/field/textarea.wxml @@ -0,0 +1,32 @@ + + +