From c4189b95632fb63fedbcde29f5cab5d763b3cb5d Mon Sep 17 00:00:00 2001
From: Wik-T <812952667@qq.com>
Date: Thu, 19 May 2022 10:31:32 +0800
Subject: [PATCH] =?UTF-8?q?1.=E6=96=B0=E5=A2=9E=E8=AE=A2=E5=8D=95=EF=BC=8C?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B2=B9=E6=9E=AA=20=EF=BC=8C=E6=B2=B9?=
=?UTF-8?q?=E5=93=81=EF=BC=8C=E7=99=BB=E5=BD=95=EF=BC=8C=E9=80=80=E5=87=BA?=
=?UTF-8?q?=E7=99=BB=E5=BD=95=20=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
App.vue | 20 +-
Utils/Api.js | 64 +
Utils/Request.js | 61 +
Utils/js/date.js | 55 +
components/QS-tabs/QS-tabs.vue | 484 +++++++
components/evan-steps/evan-step.vue | 467 +++++++
components/evan-steps/evan-steps.vue | 66 +
components/mp-html/README.md | 160 +++
components/mp-html/changelog.md | 62 +
.../mp-html/components/mp-html/mp-html.vue | 432 ++++++
.../mp-html/components/mp-html/node/node.vue | 524 +++++++
.../mp-html/components/mp-html/parser.js | 1223 ++++++++++++++++
components/mp-html/package.json | 79 ++
.../static/app-plus/mp-html/js/handler.js | 1 +
.../app-plus/mp-html/js/uni.webview.min.js | 1 +
.../static/app-plus/mp-html/local.html | 1 +
components/pick-regions/pick-regions.vue | 137 ++
components/pick-regions/regions.json | 1 +
components/quick-skeleton.vue | 176 +++
components/uni-icons/icons.js | 96 ++
components/uni-icons/uni-icons.vue | 57 +
components/uni-search-bar/changelog.md | 24 +
.../components/uni-search-bar/i18n/en.json | 4 +
.../components/uni-search-bar/i18n/index.js | 8 +
.../uni-search-bar/i18n/zh-Hans.json | 4 +
.../uni-search-bar/i18n/zh-Hant.json | 4 +
.../uni-search-bar/uni-search-bar.vue | 290 ++++
components/uni-search-bar/package.json | 88 ++
components/uni-search-bar/readme.md | 86 ++
components/watch-login/css/icon.css | 1226 +++++++++++++++++
components/watch-login/watch-button.vue | 134 ++
components/watch-login/watch-input.vue | 218 +++
components/wyb-popup/iconfont.css | 16 +
components/wyb-popup/wyb-popup.vue | 420 ++++++
components/yunmiao-jobSelect/README.md | 109 ++
.../yunmiao-jobSelect/yunmiao-jobSelect.vue | 297 ++++
main.js | 31 +-
manifest.json | 2 +-
package-lock.json | 5 +
package.json | 4 +
pages.json | 115 +-
pages/home/oderDetails/oderDetails.vue | 185 +++
pages/index/index.vue | 52 -
pages/login/css/main.css | 87 ++
pages/login/login/login.vue | 129 ++
pages/login/updatePsd/updatePsd.vue | 121 ++
pages/tabBar/home/home.vue | 244 ++++
pages/tabBar/user/user.vue | 182 +++
pages/user/addOils/addOils.vue | 187 +++
pages/user/oil-list/oil-list.vue | 176 +++
pages/user/updateOilgun/updateOilgun.vue | 173 +++
pages/user/updateOilprice/updateOilprice.vue | 177 +++
static/iconfont/font.scss | 163 +++
static/iconfont/iconfont.ttf | Bin 0 -> 20036 bytes
static/img/2.png | Bin 0 -> 4793 bytes
static/img/3.png | Bin 0 -> 3641 bytes
static/img/6.png | Bin 0 -> 7654 bytes
static/img/7.png | Bin 0 -> 2895 bytes
static/img/9.png | Bin 0 -> 8455 bytes
static/img/downj.png | Bin 0 -> 927 bytes
static/img/head.png | Bin 0 -> 10361 bytes
static/img/jt.png | Bin 0 -> 2445 bytes
static/img/jtg.png | Bin 0 -> 2872 bytes
static/img/logo.png | Bin 0 -> 42666 bytes
static/img/mer6.png | Bin 0 -> 22229 bytes
static/img/odrdes.png | Bin 0 -> 20944 bytes
static/img/tabBar/home-on.png | Bin 0 -> 5327 bytes
static/img/tabBar/home.png | Bin 0 -> 5338 bytes
static/img/tabBar/user-on.png | Bin 0 -> 5914 bytes
static/img/tabBar/user.png | Bin 0 -> 5883 bytes
static/logo.png | Bin 4023 -> 0 bytes
uni.scss | 771 ++++++++++-
72 files changed, 9788 insertions(+), 111 deletions(-)
create mode 100644 Utils/Api.js
create mode 100644 Utils/Request.js
create mode 100644 Utils/js/date.js
create mode 100644 components/QS-tabs/QS-tabs.vue
create mode 100644 components/evan-steps/evan-step.vue
create mode 100644 components/evan-steps/evan-steps.vue
create mode 100644 components/mp-html/README.md
create mode 100644 components/mp-html/changelog.md
create mode 100644 components/mp-html/components/mp-html/mp-html.vue
create mode 100644 components/mp-html/components/mp-html/node/node.vue
create mode 100644 components/mp-html/components/mp-html/parser.js
create mode 100644 components/mp-html/package.json
create mode 100644 components/mp-html/static/app-plus/mp-html/js/handler.js
create mode 100644 components/mp-html/static/app-plus/mp-html/js/uni.webview.min.js
create mode 100644 components/mp-html/static/app-plus/mp-html/local.html
create mode 100644 components/pick-regions/pick-regions.vue
create mode 100644 components/pick-regions/regions.json
create mode 100644 components/quick-skeleton.vue
create mode 100644 components/uni-icons/icons.js
create mode 100644 components/uni-icons/uni-icons.vue
create mode 100644 components/uni-search-bar/changelog.md
create mode 100644 components/uni-search-bar/components/uni-search-bar/i18n/en.json
create mode 100644 components/uni-search-bar/components/uni-search-bar/i18n/index.js
create mode 100644 components/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json
create mode 100644 components/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json
create mode 100644 components/uni-search-bar/components/uni-search-bar/uni-search-bar.vue
create mode 100644 components/uni-search-bar/package.json
create mode 100644 components/uni-search-bar/readme.md
create mode 100644 components/watch-login/css/icon.css
create mode 100644 components/watch-login/watch-button.vue
create mode 100644 components/watch-login/watch-input.vue
create mode 100644 components/wyb-popup/iconfont.css
create mode 100644 components/wyb-popup/wyb-popup.vue
create mode 100644 components/yunmiao-jobSelect/README.md
create mode 100644 components/yunmiao-jobSelect/yunmiao-jobSelect.vue
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 pages/home/oderDetails/oderDetails.vue
delete mode 100644 pages/index/index.vue
create mode 100644 pages/login/css/main.css
create mode 100644 pages/login/login/login.vue
create mode 100644 pages/login/updatePsd/updatePsd.vue
create mode 100644 pages/tabBar/home/home.vue
create mode 100644 pages/tabBar/user/user.vue
create mode 100644 pages/user/addOils/addOils.vue
create mode 100644 pages/user/oil-list/oil-list.vue
create mode 100644 pages/user/updateOilgun/updateOilgun.vue
create mode 100644 pages/user/updateOilprice/updateOilprice.vue
create mode 100644 static/iconfont/font.scss
create mode 100644 static/iconfont/iconfont.ttf
create mode 100644 static/img/2.png
create mode 100644 static/img/3.png
create mode 100644 static/img/6.png
create mode 100644 static/img/7.png
create mode 100644 static/img/9.png
create mode 100644 static/img/downj.png
create mode 100644 static/img/head.png
create mode 100644 static/img/jt.png
create mode 100644 static/img/jtg.png
create mode 100644 static/img/logo.png
create mode 100644 static/img/mer6.png
create mode 100644 static/img/odrdes.png
create mode 100644 static/img/tabBar/home-on.png
create mode 100644 static/img/tabBar/home.png
create mode 100644 static/img/tabBar/user-on.png
create mode 100644 static/img/tabBar/user.png
delete mode 100644 static/logo.png
diff --git a/App.vue b/App.vue
index 99f6e28..d8f0889 100644
--- a/App.vue
+++ b/App.vue
@@ -1,5 +1,22 @@
-
diff --git a/Utils/Api.js b/Utils/Api.js
new file mode 100644
index 0000000..7466930
--- /dev/null
+++ b/Utils/Api.js
@@ -0,0 +1,64 @@
+import {
+ POST
+} from './Request.js';
+let app = getApp();
+let base = app.globalData.url;
+// 登录接口
+export const userLogin = params => {
+ return POST('POST', `${base}/login/userLogin`, params).then(res => res.data);
+}
+//退出登录
+export const logout = params => {
+ return POST('POST', `${base}/login/logout`, params).then(res => res.data);
+}
+//查询数据字典
+export const getDictionaryByCodeType = params => {
+ return POST('GET', `${base}/common/getDictionaryByCodeType`, params).then(res => res.data);
+}
+//查询加油站油品
+export const getOilPriceListByStore = params => {
+ return POST('GET', `${base}/gasOilPrice/getOilPriceListByStore`, params).then(res => res.data);
+}
+//新增,修改油品
+export const editGasOilPrice = params => {
+ return POST('POST', `${base}/gasOilPrice/editGasOilPrice`, params).then(res => res.data);
+}
+//删除加油站油品
+export const delOilPrice = params => {
+ return POST('POST', `${base}/gasOilPrice/delOilPrice`, params).then(res => res.data);
+}
+//查询加油站油品详情
+export const getOilPriceDetail = params => {
+ return POST('GET', `${base}/gasOilPrice/getOilPriceDetail`, params).then(res => res.data);
+}
+//查询油品油枪列表
+export const getGunNoListByOilPrice = params => {
+ return POST('GET', `${base}/gasOilGunNo/getGunNoListByOilPrice`, params).then(res => res.data);
+}
+//增加油枪
+export const addGasOilPrice = params => {
+ return POST('POST', `${base}/gasOilGunNo/addGasOilPrice`, params).then(res => res.data);
+}
+//删除油枪
+export const delGunNo = params => {
+ return POST('POST', `${base}/gasOilGunNo/delGunNo`, params).then(res => res.data);
+}
+//修改密码
+export const sendUserPass = params => {
+ return POST('POST', `${base}/secUser/sendUserPass`, params).then(res => res.data);
+}
+//我的信息
+export const getGasStatistical = params => {
+ return POST('POST', `${base}/highGas/getGasStatistical`, params).then(res => res.data);
+}
+//订单列表
+export const getGasOrderList = params => {
+ return POST('GET', `${base}/highGas/getGasOrderList`, params).then(res => res.data);
+}
+//订单详情
+export const getGasOrderDetail = params => {
+ return POST('GET', `${base}/highGas/getGasOrderDetail`, params).then(res => res.data);
+}
+
+
+
diff --git a/Utils/Request.js b/Utils/Request.js
new file mode 100644
index 0000000..33da75e
--- /dev/null
+++ b/Utils/Request.js
@@ -0,0 +1,61 @@
+let app = getApp();
+
+function request(method, url, data) {
+ return new Promise((resolve) => {
+ uni.request({
+ method: method,
+ url: url,
+ data: data,
+ header: {
+ 'Accept': "*/*",
+ 'content-type': 'application/json;charset=utf-8',
+ 'Authorization': app.globalData.token
+ }, //有的时候这里不一定是 token 还可能是 Authorization
+ success(res) {
+ resolve(res)
+ if (res.statusCode === 401 || res.data.return_code == 102014 || res.data.return_code ==
+ 104001) {
+ app.globalData.userInfo = '';
+ app.globalData.token = '';
+ uni.setStorage({
+ key: "user",
+ data: ''
+ })
+ uni.setStorage({
+ key: "token",
+ data: ''
+ })
+ uni.showToast({
+ title: '登录信息过期,请重新授权',
+ icon: 'none',
+ duration: 2000,
+ success() {
+ setTimeout(() => {
+ uni.reLaunch({
+ url:'/pages/login/login/login'
+ })
+ }, 2000);
+ }
+ })
+ }
+ },
+ fail(err) {
+ uni.showToast({
+ title: '请求失败',
+ icon: 'none',
+ duration: 1500,
+ })
+ }
+ })
+ })
+}
+
+
+function POST(method, url, data) {
+ return request(method, url, data)
+}
+
+
+module.exports = {
+ POST
+}
diff --git a/Utils/js/date.js b/Utils/js/date.js
new file mode 100644
index 0000000..7189a57
--- /dev/null
+++ b/Utils/js/date.js
@@ -0,0 +1,55 @@
+const isNullOrEmpty = function(val) {
+ if (val == null || val == "" || typeof(val) == undefined) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+const timeFormat = (value, format) => {
+ let date = new Date(value);
+ let y = date.getFullYear();
+ let m = date.getMonth() + 1;
+ let d = date.getDate();
+ let h = date.getHours();
+ let min = date.getMinutes();
+ let s = date.getSeconds();
+ let result = "";
+ if (format == undefined) {
+ result = `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} ${
+ h < 10 ? "0" + h : h
+ }:${min < 10 ? "0" + min : min}:${s < 10 ? "0" + s : s}`;
+ }
+ if (format == "yyyy-mm-dd hh:mm:ss") {
+ result = `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} ${h < 10 ? "0" + h : h}:${min < 10 ? "0" + min : min}:${s < 10 ? "0" + s : s} `;
+ }
+ if (format == "yyyy-mm-dd") {
+ result = `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} `;
+ }
+ if (format == "yyyy-mm") {
+ result = `${y}-${m < 10 ? "0" + m : m}`;
+ }
+ if (format == "mm-dd") {
+ result = ` ${mm < 10 ? "0" + mm : mm}:${ddmin < 10 ? "0" + dd : dd}`;
+ }
+ if (format == "hh:mm") {
+ result = ` ${h < 10 ? "0" + h : h}:${min < 10 ? "0" + min : min}`;
+ }
+ if (format == "yyyy") {
+ result = `${y}`;
+ }
+ return result;
+};
+
+
+// {{date|isNullOrEmpty}}
+// {{date|timeFormat('yyyy-mm-dd')}}
+// {{date|timeFormat('yyyy-mm')}}
+// {{date|timeFormat('hh:mm')}}
+// {{date|timeFormat('yyyy')}}
+// {{date|timeFormat}}
+
+export {
+ isNullOrEmpty,
+ timeFormat
+}
diff --git a/components/QS-tabs/QS-tabs.vue b/components/QS-tabs/QS-tabs.vue
new file mode 100644
index 0000000..70e978f
--- /dev/null
+++ b/components/QS-tabs/QS-tabs.vue
@@ -0,0 +1,484 @@
+
+
+
+
+
+
+
+
+ {{item.name || item}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/evan-steps/evan-step.vue b/components/evan-steps/evan-step.vue
new file mode 100644
index 0000000..172a7a2
--- /dev/null
+++ b/components/evan-steps/evan-step.vue
@@ -0,0 +1,467 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{index+1}}
+
+
+ {{title}}
+ {{description}}
+
+
+
+
+
+
+
+
+
+
diff --git a/components/evan-steps/evan-steps.vue b/components/evan-steps/evan-steps.vue
new file mode 100644
index 0000000..253e627
--- /dev/null
+++ b/components/evan-steps/evan-steps.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
diff --git a/components/mp-html/README.md b/components/mp-html/README.md
new file mode 100644
index 0000000..efd81b3
--- /dev/null
+++ b/components/mp-html/README.md
@@ -0,0 +1,160 @@
+## 功能介绍
+- 全端支持(含 `v3、NVUE`)
+- 支持丰富的标签(包括 `table`、`video`、`svg` 等)
+- 支持丰富的事件效果(自动预览图片、链接处理等)
+- 支持设置占位图(加载中、出错时、预览时)
+- 支持锚点跳转、长按复制等丰富功能
+- 支持大部分 *html* 实体
+- 丰富的插件(关键词搜索、内容 **编辑** 等)
+- 效率高、容错性强且轻量化
+
+查看 [功能介绍](https://jin-yufeng.gitee.io/mp-html/#/overview/feature) 了解更多
+
+## 使用方法
+- 源码方式
+ 1. 点击上方的使用 `HBuilder X` 导入插件或将下载的插件包拷贝到项目根目录下
+ 由于插件市场的 **非 uni_modules 版本** 无法更新,若需使用请从 [github](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 或 [gitee](https://gitee.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 获取最新版本
+ 2. 在需要使用页面的 `(n)vue` 文件中添加
+ ```html
+
+ ```
+ ```javascript
+ import mpHtml from '@/components/mp-html/mp-html'
+ export default {
+ // HBuilderX 2.5.5+ 可以通过 easycom 自动引入
+ components: {
+ mpHtml
+ },
+ data() {
+ return {
+ html: '
Hello World!
'
+ }
+ }
+ }
+ ```
+
+- npm 方式
+ 1. 在项目根目录下执行
+ ```bash
+ npm install mp-html
+ ```
+ 2. 在需要使用页面的 `(n)vue` 文件中添加
+ ```html
+
+ ```
+ ```javascript
+ import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'
+ export default {
+ // 不可省略
+ components: {
+ mpHtml
+ },
+ data() {
+ return {
+ html: 'Hello World!
'
+ }
+ }
+ }
+ ```
+
+ 使用 *cli* 方式运行的项目,通过 *npm* 方式引入时,需要在 *vue.config.js* 中配置 *transpileDependencies*,详情可见 [#330](https://github.com/jin-yufeng/mp-html/issues/330#issuecomment-913617687)
+ 如果在 **nvue** 中使用还要将 `dist/uni-app/static` 目录下的内容拷贝到项目的 `static` 目录下,否则无法运行
+
+查看 [快速开始](https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart) 了解更多
+
+## 组件属性
+
+| 属性 | 类型 | 默认值 | 说明 |
+|:---:|:---:|:---:|---|
+| container-style | String | | 容器的样式([2.1.0+](https://jin-yufeng.gitee.io/mp-html/#/changelog/changelog#v210)) |
+| content | String | | 用于渲染的 html 字符串 |
+| copy-link | Boolean | true | 是否允许外部链接被点击时自动复制 |
+| domain | String | | 主域名(用于链接拼接) |
+| error-img | String | | 图片出错时的占位图链接 |
+| lazy-load | Boolean | false | 是否开启图片懒加载 |
+| loading-img | String | | 图片加载过程中的占位图链接 |
+| pause-video | Boolean | true | 是否在播放一个视频时自动暂停其他视频 |
+| preview-img | Boolean | true | 是否允许图片被点击时自动预览 |
+| scroll-table | Boolean | false | 是否给每个表格添加一个滚动层使其能单独横向滚动 |
+| selectable | Boolean | false | 是否开启文本长按复制 |
+| set-title | Boolean | true | 是否将 title 标签的内容设置到页面标题 |
+| show-img-menu | Boolean | true | 是否允许图片被长按时显示菜单 |
+| tag-style | Object | | 设置标签的默认样式 |
+| use-anchor | Boolean | false | 是否使用锚点链接 |
+
+查看 [属性](https://jin-yufeng.gitee.io/mp-html/#/basic/prop) 了解更多
+
+## 组件事件
+
+| 名称 | 触发时机 |
+|:---:|---|
+| load | dom 树加载完毕时 |
+| ready | 图片加载完毕时 |
+| error | 发生渲染错误时 |
+| imgtap | 图片被点击时 |
+| linktap | 链接被点击时 |
+
+查看 [事件](https://jin-yufeng.gitee.io/mp-html/#/basic/event) 了解更多
+
+## api
+组件实例上提供了一些 `api` 方法可供调用
+
+| 名称 | 作用 |
+|:---:|---|
+| in | 将锚点跳转的范围限定在一个 scroll-view 内 |
+| navigateTo | 锚点跳转 |
+| getText | 获取文本内容 |
+| getRect | 获取富文本内容的位置和大小 |
+| setContent | 设置富文本内容 |
+| imgList | 获取所有图片的数组 |
+
+查看 [api](https://jin-yufeng.gitee.io/mp-html/#/advanced/api) 了解更多
+
+## 插件扩展
+除基本功能外,本组件还提供了丰富的扩展,可按照需要选用
+
+| 名称 | 作用 |
+|:---:|---|
+| audio | 音乐播放器 |
+| editable | 富文本编辑([示例项目](https://6874-html-foe72-1259071903.tcb.qcloud.la/editable.zip?sign=cc0017be203fb3dbca62d33a0c15792e&t=1608447445)) |
+| emoji | 解析 emoji |
+| highlight | 代码块高亮显示 |
+| markdown | 渲染 markdown |
+| search | 关键词搜索 |
+| style | 匹配 style 标签中的样式 |
+| txv-video | 使用腾讯视频 |
+| img-cache | 图片缓存 by [@PentaTea](https://github.com/PentaTea) |
+
+从插件市场导入的包中 **不含有** 扩展插件,需要使用插件参考以下方法:
+1. 获取完整组件包
+ ```bash
+ npm install mp-html
+ ```
+2. 编辑 `tools/config.js` 中的 `plugins` 项,选择需要的插件
+3. 生成新的组件包
+ 在 `node_modules/mp-html` 目录下执行
+ ```bash
+ npm install
+ npm run build:uni-app
+ ```
+4. 拷贝 `dist/uni-app` 中的内容到项目根目录
+
+查看 [插件](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin) 了解更多
+
+## 示例体验
+
+
+## 关于 nvue
+`nvue` 使用原生渲染,不支持部分 `css` 样式,为实现和 `html` 相同的效果,组件内部通过 `web-view` 进行渲染,性能上差于原生,根据 `weex` 官方建议,`web` 标签仅应用在非常规的降级场景。因此,如果通过原生的方式(如 `richtext`)能够满足需要,则不建议使用本组件,如果有较多的富文本内容,则可以直接使用 `vue` 页面
+由于渲染方式与其他端不同,有以下限制:
+1. 不支持 `lazy-load` 属性
+2. 视频不支持全屏播放
+
+纯 `nvue` 模式下,[此问题](https://ask.dcloud.net.cn/question/119678) 修复前,不支持通过 `uni_modules` 引入,需要本地引入(将 [dist/uni-app](https://github.com/jin-yufeng/mp-html/tree/master/dist/uni-app) 中的内容拷贝到项目根目录下)
+
+## 问题反馈
+遇到问题时,请先查阅 [常见问题](https://jin-yufeng.gitee.io/mp-html/#/question/faq) 和 [issue](https://github.com/jin-yufeng/mp-html/issues) 中是否已有相同的问题
+可通过 [issue](https://github.com/jin-yufeng/mp-html/issues/new/choose) 、插件问答或发送邮件到 [mp_html@126.com](mailto:mp_html@126.com) 提问,不建议在评论区提问(不方便回复)
+提问请严格按照 [issue 模板](https://github.com/jin-yufeng/mp-html/issues/new/choose) ,描述清楚使用环境、`html` 内容或可复现的 `demo` 项目以及复现方式,对于 **描述不清**、**无法复现** 或重复的问题将不予回复
+
+查看 [问题反馈](https://jin-yufeng.gitee.io/mp-html/#/question/feedback) 了解更多
\ No newline at end of file
diff --git a/components/mp-html/changelog.md b/components/mp-html/changelog.md
new file mode 100644
index 0000000..8512c30
--- /dev/null
+++ b/components/mp-html/changelog.md
@@ -0,0 +1,62 @@
+## v2.2.0(2021-10-12)
+1. `A` 增加 `customElements` 配置项,便于添加自定义功能性标签 [详细](https://github.com/jin-yufeng/mp-html/issues/350)
+2. `A` `editable` 插件增加切换音视频自动播放状态的功能 [详细](https://github.com/jin-yufeng/mp-html/pull/341) by [@leeseett](https://github.com/leeseett)
+3. `A` `editable` 插件删除媒体标签时触发 `remove` 事件,便于删除已上传的文件
+4. `U` `editable` 插件 `insertImg` 方法支持同时插入多张图片 [详细](https://github.com/jin-yufeng/mp-html/issues/342)
+5. `U` `editable` 插入图片和音视频时支持拼接 `domian` 主域名
+6. `F` 修复了内部链接参数中包含 `://` 时被认为是外部链接的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/356)
+7. `F` 修复了部分 `svg` 标签名或属性名大小写不正确时不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/351)
+8. `F` 修复了 `nvue` 页面运行到非 `app` 平台时可能样式错误的问题
+## v2.1.5(2021-08-13)
+1. `A` 增加支持标签的 `dir` 属性
+2. `F` 修复了 `ruby` 标签文字与拼音没有居中对齐的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/325)
+3. `F` 修复了音视频标签内有 `a` 标签时可能无法播放的问题
+4. `F` 修复了 `externStyle` 中的 `class` 名包含下划线或数字时可能失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/326)
+5. `F` 修复了 `h5` 端引入 `externStyle` 可能不生效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/326)
+## v2.1.4(2021-07-14)
+1. `F` 修复了 `rt` 标签无法设置样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/318)
+2. `F` 修复了表格中有单元格同时合并行和列时可能显示不正确的问题
+3. `F` 修复了 `app` 端无法关闭图片长按菜单的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/322)
+4. `F` 修复了 `editable` 插件只能添加图片链接不能修改的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/312) by [@leeseett](https://github.com/leeseett)
+## v2.1.3(2021-06-12)
+1. `A` `editable` 插件增加 `insertTable` 方法
+2. `U` `editable` 插件支持编辑表格中的空白单元格 [详细](https://github.com/jin-yufeng/mp-html/issues/310)
+3. `F` 修复了 `externStyle` 中使用伪类可能失效的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/298)
+4. `F` 修复了多个组件同时使用时 `tag-style` 属性时可能互相影响的问题 [详细](https://github.com/jin-yufeng/mp-html/pull/305) by [@woodguoyu](https://github.com/woodguoyu)
+5. `F` 修复了包含 `linearGradient` 的 `svg` 可能无法显示的问题
+6. `F` 修复了编译到头条小程序时可能报错的问题
+7. `F` 修复了 `nvue` 端不触发 `click` 事件的问题
+8. `F` 修复了 `editable` 插件尾部插入时无法撤销的问题
+9. `F` 修复了 `editable` 插件的 `insertHtml` 方法只能在末尾插入的问题
+10. `F` 修复了 `editable` 插件插入音频不显示的问题
+## v2.1.2(2021-04-24)
+1. `A` 增加了 [img-cache](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#img-cache) 插件,可以在 `app` 端缓存图片 [详细](https://github.com/jin-yufeng/mp-html/issues/292) by [@PentaTea](https://github.com/PentaTea)
+2. `U` 支持通过 `container-style` 属性设置 `white-space` 来保留连续空格和换行符 [详细](https://jin-yufeng.gitee.io/mp-html/#/question/faq#space)
+3. `U` 代码风格符合 [standard](https://standardjs.com) 标准
+4. `U` `editable` 插件编辑状态下支持预览视频 [详细](https://github.com/jin-yufeng/mp-html/issues/286)
+5. `F` 修复了 `svg` 标签内嵌 `svg` 时无法显示的问题
+6. `F` 修复了编译到支付宝和头条小程序时部分区域不可复制的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/291)
+## v2.1.1(2021-04-09)
+1. 修复了对 `p` 标签设置 `tag-style` 可能不生效的问题
+2. 修复了 `svg` 标签中的文本无法显示的问题
+3. 修复了使用 `editable` 插件编辑表格时可能报错的问题
+4. 修复了使用 `highlight` 插件运行到头条小程序时可能没有样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/280)
+5. 修复了使用 `editable` 插件 `editable` 属性为 `false` 时会报错的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/284)
+6. 修复了 `style` 插件连续子选择器失效的问题
+7. 修复了 `editable` 插件无法修改图片和字体大小的问题
+## v2.1.0.2(2021-03-21)
+修复了 `nvue` 端使用可能报错的问题
+## v2.1.0(2021-03-20)
+1. `A` 增加了 [container-style](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#container-style) 属性 [详细](https://gitee.com/jin-yufeng/mp-html/pulls/1)
+2. `A` 增加支持 `strike` 标签
+3. `A` `editable` 插件增加 `placeholder` 属性 [详细](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#editable)
+4. `A` `editable` 插件增加 `insertHtml` 方法 [详细](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#editable)
+5. `U` 外部样式支持标签名选择器 [详细](https://jin-yufeng.gitee.io/mp-html/#/overview/quickstart#setting)
+6. `F` 修复了 `nvue` 端部分情况下可能不显示的问题
+## v2.0.5(2021-03-12)
+1. `U` [linktap](https://jin-yufeng.gitee.io/mp-html/#/basic/event#linktap) 事件增加返回内部文本内容 `innerText` [详细](https://github.com/jin-yufeng/mp-html/issues/271)
+2. `U` [selectable](https://jin-yufeng.gitee.io/mp-html/#/basic/prop#selectable) 属性设置为 `force` 时能够在微信 `iOS` 端生效(文本块会变成 `inline-block`) [详细](https://github.com/jin-yufeng/mp-html/issues/267)
+3. `F` 修复了部分情况下竖向无法滚动的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/182)
+4. `F` 修复了多次修改富文本数据时部分内容可能不显示的问题
+5. `F` 修复了 [腾讯视频](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#txv-video) 插件可能无法播放的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/265)
+6. `F` 修复了 [highlight](https://jin-yufeng.gitee.io/mp-html/#/advanced/plugin#highlight) 插件没有设置高亮语言时没有应用默认样式的问题 [详细](https://github.com/jin-yufeng/mp-html/issues/276) by [@fuzui](https://github.com/fuzui)
diff --git a/components/mp-html/components/mp-html/mp-html.vue b/components/mp-html/components/mp-html/mp-html.vue
new file mode 100644
index 0000000..c8e79df
--- /dev/null
+++ b/components/mp-html/components/mp-html/mp-html.vue
@@ -0,0 +1,432 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/mp-html/components/mp-html/node/node.vue b/components/mp-html/components/mp-html/node/node.vue
new file mode 100644
index 0000000..a31996c
--- /dev/null
+++ b/components/mp-html/components/mp-html/node/node.vue
@@ -0,0 +1,524 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{n.text}}
+
+ \n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/mp-html/components/mp-html/parser.js b/components/mp-html/components/mp-html/parser.js
new file mode 100644
index 0000000..81ab624
--- /dev/null
+++ b/components/mp-html/components/mp-html/parser.js
@@ -0,0 +1,1223 @@
+/**
+ * @fileoverview html 解析器
+ */
+
+// 配置
+const config = {
+ // 信任的标签(保持标签名不变)
+ trustTags: makeMap('a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,ruby,rt,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video'),
+
+ // 块级标签(转为 div,其他的非信任标签转为 span)
+ blockTags: makeMap('address,article,aside,body,caption,center,cite,footer,header,html,nav,pre,section'),
+
+ // 要移除的标签
+ ignoreTags: makeMap('area,base,canvas,embed,frame,head,iframe,input,link,map,meta,param,rp,script,source,style,textarea,title,track,wbr'),
+
+ // 自闭合的标签
+ voidTags: makeMap('area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr'),
+
+ // html 实体
+ entities: {
+ lt: '<',
+ gt: '>',
+ quot: '"',
+ apos: "'",
+ ensp: '\u2002',
+ emsp: '\u2003',
+ nbsp: '\xA0',
+ semi: ';',
+ ndash: '–',
+ mdash: '—',
+ middot: '·',
+ lsquo: '‘',
+ rsquo: '’',
+ ldquo: '“',
+ rdquo: '”',
+ bull: '•',
+ hellip: '…'
+ },
+
+ // 默认的标签样式
+ tagStyle: {
+ // #ifndef APP-PLUS-NVUE
+ address: 'font-style:italic',
+ big: 'display:inline;font-size:1.2em',
+ caption: 'display:table-caption;text-align:center',
+ center: 'text-align:center',
+ cite: 'font-style:italic',
+ dd: 'margin-left:40px',
+ mark: 'background-color:yellow',
+ pre: 'font-family:monospace;white-space:pre',
+ s: 'text-decoration:line-through',
+ small: 'display:inline;font-size:0.8em',
+ strike: 'text-decoration:line-through',
+ u: 'text-decoration:underline'
+ // #endif
+ },
+
+ // svg 大小写对照表
+ svgDict: {
+ animatetransform: 'animateTransform',
+ lineargradient: 'linearGradient',
+ viewbox: 'viewBox',
+ attributename: 'attributeName',
+ repeatcount: 'repeatCount',
+ repeatdur: 'repeatDur'
+ }
+}
+const tagSelector={}
+const {
+ windowWidth,
+ // #ifdef MP-WEIXIN
+ system
+ // #endif
+} = uni.getSystemInfoSync()
+const blankChar = makeMap(' ,\r,\n,\t,\f')
+let idIndex = 0
+
+// #ifdef H5 || APP-PLUS
+config.ignoreTags.iframe = undefined
+config.trustTags.iframe = true
+config.ignoreTags.embed = undefined
+config.trustTags.embed = true
+// #endif
+// #ifdef APP-PLUS-NVUE
+config.ignoreTags.source = undefined
+config.ignoreTags.style = undefined
+// #endif
+
+/**
+ * @description 创建 map
+ * @param {String} str 逗号分隔
+ */
+function makeMap (str) {
+ const map = Object.create(null)
+ const list = str.split(',')
+ for (let i = list.length; i--;) {
+ map[list[i]] = true
+ }
+ return map
+}
+
+/**
+ * @description 解码 html 实体
+ * @param {String} str 要解码的字符串
+ * @param {Boolean} amp 要不要解码 &
+ * @returns {String} 解码后的字符串
+ */
+function decodeEntity (str, amp) {
+ let i = str.indexOf('&')
+ while (i !== -1) {
+ const j = str.indexOf(';', i + 3)
+ let code
+ if (j === -1) break
+ if (str[i + 1] === '#') {
+ // { 形式的实体
+ code = parseInt((str[i + 2] === 'x' ? '0' : '') + str.substring(i + 2, j))
+ if (!isNaN(code)) {
+ str = str.substr(0, i) + String.fromCharCode(code) + str.substr(j + 1)
+ }
+ } else {
+ // 形式的实体
+ code = str.substring(i + 1, j)
+ if (config.entities[code] || (code === 'amp' && amp)) {
+ str = str.substr(0, i) + (config.entities[code] || '&') + str.substr(j + 1)
+ }
+ }
+ i = str.indexOf('&', i + 1)
+ }
+ return str
+}
+
+/**
+ * @description html 解析器
+ * @param {Object} vm 组件实例
+ */
+function Parser (vm) {
+ this.options = vm || {}
+ this.tagStyle = Object.assign({}, config.tagStyle, this.options.tagStyle)
+ this.imgList = vm.imgList || []
+ this.plugins = vm.plugins || []
+ this.attrs = Object.create(null)
+ this.stack = []
+ this.nodes = []
+ this.pre = (this.options.containerStyle || '').includes('white-space') && this.options.containerStyle.includes('pre') ? 2 : 0
+}
+
+/**
+ * @description 执行解析
+ * @param {String} content 要解析的文本
+ */
+Parser.prototype.parse = function (content) {
+ // 插件处理
+ for (let i = this.plugins.length; i--;) {
+ if (this.plugins[i].onUpdate) {
+ content = this.plugins[i].onUpdate(content, config) || content
+ }
+ }
+
+ new Lexer(this).parse(content)
+ // 出栈未闭合的标签
+ while (this.stack.length) {
+ this.popNode()
+ }
+ return this.nodes
+}
+
+/**
+ * @description 将标签暴露出来(不被 rich-text 包含)
+ */
+Parser.prototype.expose = function () {
+ // #ifndef APP-PLUS-NVUE
+ for (let i = this.stack.length; i--;) {
+ const item = this.stack[i]
+ if (item.c || item.name === 'a' || item.name === 'video' || item.name === 'audio') return
+ item.c = 1
+ }
+ // #endif
+}
+
+/**
+ * @description 处理插件
+ * @param {Object} node 要处理的标签
+ * @returns {Boolean} 是否要移除此标签
+ */
+Parser.prototype.hook = function (node) {
+ for (let i = this.plugins.length; i--;) {
+ if (this.plugins[i].onParse && this.plugins[i].onParse(node, this) === false) {
+ return false
+ }
+ }
+ return true
+}
+
+/**
+ * @description 将链接拼接上主域名
+ * @param {String} url 需要拼接的链接
+ * @returns {String} 拼接后的链接
+ */
+Parser.prototype.getUrl = function (url) {
+ const domain = this.options.domain
+ if (url[0] === '/') {
+ if (url[1] === '/') {
+ // // 开头的补充协议名
+ url = (domain ? domain.split('://')[0] : 'http') + ':' + url
+ } else if (domain) {
+ // 否则补充整个域名
+ url = domain + url
+ }
+ } else if (domain && !url.includes('data:') && !url.includes('://')) {
+ url = domain + '/' + url
+ }
+ return url
+}
+
+/**
+ * @description 解析样式表
+ * @param {Object} node 标签
+ * @returns {Object}
+ */
+Parser.prototype.parseStyle = function (node) {
+ const attrs = node.attrs
+ const list = (this.tagStyle[node.name] || '').split(';').concat((attrs.style || '').split(';'))
+ const styleObj = {}
+ let tmp = ''
+
+ if (attrs.id && !this.xml) {
+ // 暴露锚点
+ if (this.options.useAnchor) {
+ this.expose()
+ } else if (node.name !== 'img' && node.name !== 'a' && node.name !== 'video' && node.name !== 'audio') {
+ attrs.id = undefined
+ }
+ }
+
+ // 转换 width 和 height 属性
+ if (attrs.width) {
+ styleObj.width = parseFloat(attrs.width) + (attrs.width.includes('%') ? '%' : 'px')
+ attrs.width = undefined
+ }
+ if (attrs.height) {
+ styleObj.height = parseFloat(attrs.height) + (attrs.height.includes('%') ? '%' : 'px')
+ attrs.height = undefined
+ }
+
+ for (let i = 0, len = list.length; i < len; i++) {
+ const info = list[i].split(':')
+ if (info.length < 2) continue
+ const key = info.shift().trim().toLowerCase()
+ let value = info.join(':').trim()
+ if ((value[0] === '-' && value.lastIndexOf('-') > 0) || value.includes('safe')) {
+ // 兼容性的 css 不压缩
+ tmp += `;${key}:${value}`
+ } else if (!styleObj[key] || value.includes('import') || !styleObj[key].includes('import')) {
+ // 重复的样式进行覆盖
+ if (value.includes('url')) {
+ // 填充链接
+ let j = value.indexOf('(') + 1
+ if (j) {
+ while (value[j] === '"' || value[j] === "'" || blankChar[value[j]]) {
+ j++
+ }
+ value = value.substr(0, j) + this.getUrl(value.substr(j))
+ }
+ } else if (value.includes('rpx')) {
+ // 转换 rpx(rich-text 内部不支持 rpx)
+ value = value.replace(/[0-9.]+\s*rpx/g, $ => parseFloat($) * windowWidth / 750 + 'px')
+ }
+ styleObj[key] = value
+ }
+ }
+
+ node.attrs.style = tmp
+ return styleObj
+}
+
+/**
+ * @description 解析到标签名
+ * @param {String} name 标签名
+ * @private
+ */
+Parser.prototype.onTagName = function (name) {
+ this.tagName = this.xml ? name : name.toLowerCase()
+ if (this.tagName === 'svg') {
+ this.xml = (this.xml || 0) + 1 // svg 标签内大小写敏感
+ }
+}
+
+/**
+ * @description 解析到属性名
+ * @param {String} name 属性名
+ * @private
+ */
+Parser.prototype.onAttrName = function (name) {
+ name = this.xml ? name : name.toLowerCase()
+ if (name.substr(0, 5) === 'data-') {
+ if (name === 'data-src' && !this.attrs.src) {
+ // data-src 自动转为 src
+ this.attrName = 'src'
+ } else if (this.tagName === 'img' || this.tagName === 'a') {
+ // a 和 img 标签保留 data- 的属性,可以在 imgtap 和 linktap 事件中使用
+ this.attrName = name
+ } else {
+ // 剩余的移除以减小大小
+ this.attrName = undefined
+ }
+ } else {
+ this.attrName = name
+ this.attrs[name] = 'T' // boolean 型属性缺省设置
+ }
+}
+
+/**
+ * @description 解析到属性值
+ * @param {String} val 属性值
+ * @private
+ */
+Parser.prototype.onAttrVal = function (val) {
+ const name = this.attrName || ''
+ if (name === 'style' || name === 'href') {
+ // 部分属性进行实体解码
+ this.attrs[name] = decodeEntity(val, true)
+ } else if (name.includes('src')) {
+ // 拼接主域名
+ this.attrs[name] = this.getUrl(decodeEntity(val, true))
+ } else if (name) {
+ this.attrs[name] = val
+ }
+}
+
+/**
+ * @description 解析到标签开始
+ * @param {Boolean} selfClose 是否有自闭合标识 />
+ * @private
+ */
+Parser.prototype.onOpenTag = function (selfClose) {
+ // 拼装 node
+ const node = Object.create(null)
+ node.name = this.tagName
+ node.attrs = this.attrs
+ // 避免因为自动 diff 使得 type 被设置为 null 导致部分内容不显示
+ if (this.options.nodes.length) {
+ node.type = 'node'
+ }
+ this.attrs = Object.create(null)
+
+ const attrs = node.attrs
+ const parent = this.stack[this.stack.length - 1]
+ const siblings = parent ? parent.children : this.nodes
+ const close = this.xml ? selfClose : config.voidTags[node.name]
+
+ // 替换标签名选择器
+ if (tagSelector[node.name]) {
+ attrs.class = tagSelector[node.name] + (attrs.class ? ' ' + attrs.class : '')
+ }
+
+ // 转换 embed 标签
+ if (node.name === 'embed') {
+ // #ifndef H5 || APP-PLUS
+ const src = attrs.src || ''
+ // 按照后缀名和 type 将 embed 转为 video 或 audio
+ if (src.includes('.mp4') || src.includes('.3gp') || src.includes('.m3u8') || (attrs.type || '').includes('video')) {
+ node.name = 'video'
+ } else if (src.includes('.mp3') || src.includes('.wav') || src.includes('.aac') || src.includes('.m4a') || (attrs.type || '').includes('audio')) {
+ node.name = 'audio'
+ }
+ if (attrs.autostart) {
+ attrs.autoplay = 'T'
+ }
+ attrs.controls = 'T'
+ // #endif
+ // #ifdef H5 || APP-PLUS
+ this.expose()
+ // #endif
+ }
+
+ // #ifndef APP-PLUS-NVUE
+ // 处理音视频
+ if (node.name === 'video' || node.name === 'audio') {
+ // 设置 id 以便获取 context
+ if (node.name === 'video' && !attrs.id) {
+ attrs.id = 'v' + idIndex++
+ }
+ // 没有设置 controls 也没有设置 autoplay 的自动设置 controls
+ if (!attrs.controls && !attrs.autoplay) {
+ attrs.controls = 'T'
+ }
+ // 用数组存储所有可用的 source
+ node.src = []
+ if (attrs.src) {
+ node.src.push(attrs.src)
+ attrs.src = undefined
+ }
+ this.expose()
+ }
+ // #endif
+
+ // 处理自闭合标签
+ if (close) {
+ if (!this.hook(node) || config.ignoreTags[node.name]) {
+ // 通过 base 标签设置主域名
+ if (node.name === 'base' && !this.options.domain) {
+ this.options.domain = attrs.href
+ } /* #ifndef APP-PLUS-NVUE */ else if (node.name === 'source' && parent && (parent.name === 'video' || parent.name === 'audio') && attrs.src) {
+ // 设置 source 标签(仅父节点为 video 或 audio 时有效)
+ parent.src.push(attrs.src)
+ } /* #endif */
+ return
+ }
+
+ // 解析 style
+ const styleObj = this.parseStyle(node)
+
+ // 处理图片
+ if (node.name === 'img') {
+ if (attrs.src) {
+ // 标记 webp
+ if (attrs.src.includes('webp')) {
+ node.webp = 'T'
+ }
+ // data url 图片如果没有设置 original-src 默认为不可预览的小图片
+ if (attrs.src.includes('data:') && !attrs['original-src']) {
+ attrs.ignore = 'T'
+ }
+ if (!attrs.ignore || node.webp || attrs.src.includes('cloud://')) {
+ for (let i = this.stack.length; i--;) {
+ const item = this.stack[i]
+ if (item.name === 'a') {
+ node.a = item.attrs
+ break
+ }
+ // #ifndef H5 || APP-PLUS
+ const style = item.attrs.style || ''
+ if (style.includes('flex:') && !style.includes('flex:0') && !style.includes('flex: 0') && (!styleObj.width || !styleObj.width.includes('%'))) {
+ styleObj.width = '100% !important'
+ styleObj.height = ''
+ for (let j = i + 1; j < this.stack.length; j++) {
+ this.stack[j].attrs.style = (this.stack[j].attrs.style || '').replace('inline-', '')
+ }
+ } else if (style.includes('flex') && styleObj.width === '100%') {
+ for (let j = i + 1; j < this.stack.length; j++) {
+ const style = this.stack[j].attrs.style || ''
+ if (!style.includes(';width') && !style.includes(' width') && style.indexOf('width') !== 0) {
+ styleObj.width = ''
+ break
+ }
+ }
+ } else if (style.includes('inline-block')) {
+ if (styleObj.width && styleObj.width[styleObj.width.length - 1] === '%') {
+ item.attrs.style += ';max-width:' + styleObj.width
+ styleObj.width = ''
+ } else {
+ item.attrs.style += ';max-width:100%'
+ }
+ }
+ // #endif
+ item.c = 1
+ }
+ attrs.i = this.imgList.length.toString()
+ let src = attrs['original-src'] || attrs.src
+ // #ifndef H5 || MP-ALIPAY || APP-PLUS || MP-360
+ if (this.imgList.includes(src)) {
+ // 如果有重复的链接则对域名进行随机大小写变换避免预览时错位
+ let i = src.indexOf('://')
+ if (i !== -1) {
+ i += 3
+ let newSrc = src.substr(0, i)
+ for (; i < src.length; i++) {
+ if (src[i] === '/') break
+ newSrc += Math.random() > 0.5 ? src[i].toUpperCase() : src[i]
+ }
+ newSrc += src.substr(i)
+ src = newSrc
+ }
+ }
+ // #endif
+ this.imgList.push(src)
+ // #ifdef H5 || APP-PLUS
+ if (this.options.lazyLoad) {
+ attrs['data-src'] = attrs.src
+ attrs.src = undefined
+ }
+ // #endif
+ }
+ }
+ if (styleObj.display === 'inline') {
+ styleObj.display = ''
+ }
+ // #ifndef APP-PLUS-NVUE
+ if (attrs.ignore) {
+ styleObj['max-width'] = styleObj['max-width'] || '100%'
+ attrs.style += ';-webkit-touch-callout:none'
+ }
+ // #endif
+ // 设置的宽度超出屏幕,为避免变形,高度转为自动
+ if (parseInt(styleObj.width) > windowWidth) {
+ styleObj.height = undefined
+ }
+ // 记录是否设置了宽高
+ if (styleObj.width) {
+ if (styleObj.width.includes('auto')) {
+ styleObj.width = ''
+ } else {
+ node.w = 'T'
+ if (styleObj.height && !styleObj.height.includes('auto')) {
+ node.h = 'T'
+ }
+ }
+ }
+ } else if (node.name === 'svg') {
+ siblings.push(node)
+ this.stack.push(node)
+ this.popNode()
+ return
+ }
+ for (const key in styleObj) {
+ if (styleObj[key]) {
+ attrs.style += `;${key}:${styleObj[key].replace(' !important', '')}`
+ }
+ }
+ attrs.style = attrs.style.substr(1) || undefined
+ } else {
+ if ((node.name === 'pre' || ((attrs.style || '').includes('white-space') && attrs.style.includes('pre'))) && this.pre !== 2) {
+ this.pre = node.pre = 1
+ }
+ node.children = []
+ this.stack.push(node)
+ }
+
+ // 加入节点树
+ siblings.push(node)
+}
+
+/**
+ * @description 解析到标签结束
+ * @param {String} name 标签名
+ * @private
+ */
+Parser.prototype.onCloseTag = function (name) {
+ // 依次出栈到匹配为止
+ name = this.xml ? name : name.toLowerCase()
+ let i
+ for (i = this.stack.length; i--;) {
+ if (this.stack[i].name === name) break
+ }
+ if (i !== -1) {
+ while (this.stack.length > i) {
+ this.popNode()
+ }
+ } else if (name === 'p' || name === 'br') {
+ const siblings = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes
+ siblings.push({
+ name,
+ attrs: {
+ class: tagSelector[name],
+ style: this.tagStyle[name]
+ }
+ })
+ }
+}
+
+/**
+ * @description 处理标签出栈
+ * @private
+ */
+Parser.prototype.popNode = function () {
+ const node = this.stack.pop()
+ let attrs = node.attrs
+ const children = node.children
+ const parent = this.stack[this.stack.length - 1]
+ const siblings = parent ? parent.children : this.nodes
+
+ if (!this.hook(node) || config.ignoreTags[node.name]) {
+ // 获取标题
+ if (node.name === 'title' && children.length && children[0].type === 'text' && this.options.setTitle) {
+ uni.setNavigationBarTitle({
+ title: children[0].text
+ })
+ }
+ siblings.pop()
+ return
+ }
+
+ if (node.pre && this.pre !== 2) {
+ // 是否合并空白符标识
+ this.pre = node.pre = undefined
+ for (let i = this.stack.length; i--;) {
+ if (this.stack[i].pre) {
+ this.pre = 1
+ }
+ }
+ }
+
+ const styleObj = {}
+
+ // 转换 svg
+ if (node.name === 'svg') {
+ if (this.xml > 1) {
+ // 多层 svg 嵌套
+ this.xml--
+ return
+ }
+ // #ifdef APP-PLUS-NVUE
+ (function traversal (node) {
+ if (node.name) {
+ // 调整 svg 的大小写
+ node.name = config.svgDict[node.name] || node.name
+ for (const item in node.attrs) {
+ if (config.svgDict[item]) {
+ node.attrs[config.svgDict[item]] = node.attrs[item]
+ node.attrs[item] = undefined
+ }
+ }
+ for (let i = 0; i < (node.children || []).length; i++) {
+ traversal(node.children[i])
+ }
+ }
+ })(node)
+ // #endif
+ // #ifndef APP-PLUS-NVUE
+ let src = ''
+ const style = attrs.style
+ attrs.style = ''
+ attrs.xmlns = 'http://www.w3.org/2000/svg';
+ (function traversal (node) {
+ if (node.type === 'text') {
+ src += node.text
+ return
+ }
+ const name = config.svgDict[node.name] || node.name
+ src += '<' + name
+ for (const item in node.attrs) {
+ const val = node.attrs[item]
+ if (val) {
+ src += ` ${config.svgDict[item] || item}="${val}"`
+ }
+ }
+ if (!node.children) {
+ src += '/>'
+ } else {
+ src += '>'
+ for (let i = 0; i < node.children.length; i++) {
+ traversal(node.children[i])
+ }
+ src += '' + name + '>'
+ }
+ })(node)
+ node.name = 'img'
+ node.attrs = {
+ src: 'data:image/svg+xml;utf8,' + src.replace(/#/g, '%23'),
+ style,
+ ignore: 'T'
+ }
+ node.children = undefined
+ // #endif
+ this.xml = false
+ return
+ }
+
+ // #ifndef APP-PLUS-NVUE
+ // 转换 align 属性
+ if (attrs.align) {
+ if (node.name === 'table') {
+ if (attrs.align === 'center') {
+ styleObj['margin-inline-start'] = styleObj['margin-inline-end'] = 'auto'
+ } else {
+ styleObj.float = attrs.align
+ }
+ } else {
+ styleObj['text-align'] = attrs.align
+ }
+ attrs.align = undefined
+ }
+
+ // 转换 dir 属性
+ if (attrs.dir) {
+ styleObj.direction = attrs.dir
+ attrs.dir = undefined
+ }
+
+ // 转换 font 标签的属性
+ if (node.name === 'font') {
+ if (attrs.color) {
+ styleObj.color = attrs.color
+ attrs.color = undefined
+ }
+ if (attrs.face) {
+ styleObj['font-family'] = attrs.face
+ attrs.face = undefined
+ }
+ if (attrs.size) {
+ let size = parseInt(attrs.size)
+ if (!isNaN(size)) {
+ if (size < 1) {
+ size = 1
+ } else if (size > 7) {
+ size = 7
+ }
+ styleObj['font-size'] = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'][size - 1]
+ }
+ attrs.size = undefined
+ }
+ }
+ // #endif
+
+ // 一些编辑器的自带 class
+ if ((attrs.class || '').includes('align-center')) {
+ styleObj['text-align'] = 'center'
+ }
+
+ Object.assign(styleObj, this.parseStyle(node))
+
+ if (node.name !== 'table' && parseInt(styleObj.width) > windowWidth) {
+ styleObj['max-width'] = '100%'
+ styleObj['box-sizing'] = 'border-box'
+ }
+
+ // #ifndef APP-PLUS-NVUE
+ if (config.blockTags[node.name]) {
+ node.name = 'div'
+ } else if (!config.trustTags[node.name] && !this.xml) {
+ // 未知标签转为 span,避免无法显示
+ node.name = 'span'
+ }
+
+ if (node.name === 'a' || node.name === 'ad'
+ // #ifdef H5 || APP-PLUS
+ || node.name === 'iframe' // eslint-disable-line
+ // #endif
+ ) {
+ this.expose()
+ } /* #ifdef APP-PLUS */ else if (node.name === 'video') {
+ let str = ''
+ node.html = str
+ } /* #endif */ else if ((node.name === 'ul' || node.name === 'ol') && node.c) {
+ // 列表处理
+ const types = {
+ a: 'lower-alpha',
+ A: 'upper-alpha',
+ i: 'lower-roman',
+ I: 'upper-roman'
+ }
+ if (types[attrs.type]) {
+ attrs.style += ';list-style-type:' + types[attrs.type]
+ attrs.type = undefined
+ }
+ for (let i = children.length; i--;) {
+ if (children[i].name === 'li') {
+ children[i].c = 1
+ }
+ }
+ } else if (node.name === 'table') {
+ // 表格处理
+ // cellpadding、cellspacing、border 这几个常用表格属性需要通过转换实现
+ let padding = parseFloat(attrs.cellpadding)
+ let spacing = parseFloat(attrs.cellspacing)
+ const border = parseFloat(attrs.border)
+ if (node.c) {
+ // padding 和 spacing 默认 2
+ if (isNaN(padding)) {
+ padding = 2
+ }
+ if (isNaN(spacing)) {
+ spacing = 2
+ }
+ }
+ if (border) {
+ attrs.style += ';border:' + border + 'px solid gray'
+ }
+ if (node.flag && node.c) {
+ // 有 colspan 或 rowspan 且含有链接的表格通过 grid 布局实现
+ styleObj.display = 'grid'
+ if (spacing) {
+ styleObj['grid-gap'] = spacing + 'px'
+ styleObj.padding = spacing + 'px'
+ } else if (border) {
+ // 无间隔的情况下避免边框重叠
+ attrs.style += ';border-left:0;border-top:0'
+ }
+
+ const width = [] // 表格的列宽
+ const trList = [] // tr 列表
+ const cells = [] // 保存新的单元格
+ const map = {}; // 被合并单元格占用的格子
+
+ (function traversal (nodes) {
+ for (let i = 0; i < nodes.length; i++) {
+ if (nodes[i].name === 'tr') {
+ trList.push(nodes[i])
+ } else {
+ traversal(nodes[i].children || [])
+ }
+ }
+ })(children)
+
+ for (let row = 1; row <= trList.length; row++) {
+ let col = 1
+ for (let j = 0; j < trList[row - 1].children.length; j++, col++) {
+ const td = trList[row - 1].children[j]
+ if (td.name === 'td' || td.name === 'th') {
+ // 这个格子被上面的单元格占用,则列号++
+ while (map[row + '.' + col]) {
+ col++
+ }
+ let style = td.attrs.style || ''
+ const start = style.indexOf('width') ? style.indexOf(';width') : 0
+ // 提取出 td 的宽度
+ if (start !== -1) {
+ let end = style.indexOf(';', start + 6)
+ if (end === -1) {
+ end = style.length
+ }
+ if (!td.attrs.colspan) {
+ width[col] = style.substring(start ? start + 7 : 6, end)
+ }
+ style = style.substr(0, start) + style.substr(end)
+ }
+ style += (border ? `;border:${border}px solid gray` + (spacing ? '' : ';border-right:0;border-bottom:0') : '') + (padding ? `;padding:${padding}px` : '')
+ // 处理列合并
+ if (td.attrs.colspan) {
+ style += `;grid-column-start:${col};grid-column-end:${col + parseInt(td.attrs.colspan)}`
+ if (!td.attrs.rowspan) {
+ style += `;grid-row-start:${row};grid-row-end:${row + 1}`
+ }
+ col += parseInt(td.attrs.colspan) - 1
+ }
+ // 处理行合并
+ if (td.attrs.rowspan) {
+ style += `;grid-row-start:${row};grid-row-end:${row + parseInt(td.attrs.rowspan)}`
+ if (!td.attrs.colspan) {
+ style += `;grid-column-start:${col};grid-column-end:${col + 1}`
+ }
+ // 记录下方单元格被占用
+ for (let rowspan = 1; rowspan < td.attrs.rowspan; rowspan++) {
+ for (let colspan = 0; colspan < (td.attrs.colspan || 1); colspan++) {
+ map[(row + rowspan) + '.' + (col - colspan)] = 1
+ }
+ }
+ }
+ if (style) {
+ td.attrs.style = style
+ }
+ cells.push(td)
+ }
+ }
+ if (row === 1) {
+ let temp = ''
+ for (let i = 1; i < col; i++) {
+ temp += (width[i] ? width[i] : 'auto') + ' '
+ }
+ styleObj['grid-template-columns'] = temp
+ }
+ }
+ node.children = cells
+ } else {
+ // 没有使用合并单元格的表格通过 table 布局实现
+ if (node.c) {
+ styleObj.display = 'table'
+ }
+ if (!isNaN(spacing)) {
+ styleObj['border-spacing'] = spacing + 'px'
+ }
+ if (border || padding) {
+ // 遍历
+ (function traversal (nodes) {
+ for (let i = 0; i < nodes.length; i++) {
+ const td = nodes[i]
+ if (td.name === 'th' || td.name === 'td') {
+ if (border) {
+ td.attrs.style = `border:${border}px solid gray;${td.attrs.style || ''}`
+ }
+ if (padding) {
+ td.attrs.style = `padding:${padding}px;${td.attrs.style || ''}`
+ }
+ } else if (td.children) {
+ traversal(td.children)
+ }
+ }
+ })(children)
+ }
+ }
+ // 给表格添加一个单独的横向滚动层
+ if (this.options.scrollTable && !(attrs.style || '').includes('inline')) {
+ const table = Object.assign({}, node)
+ node.name = 'div'
+ node.attrs = {
+ style: 'overflow:auto'
+ }
+ node.children = [table]
+ attrs = table.attrs
+ }
+ } else if ((node.name === 'td' || node.name === 'th') && (attrs.colspan || attrs.rowspan)) {
+ for (let i = this.stack.length; i--;) {
+ if (this.stack[i].name === 'table') {
+ this.stack[i].flag = 1 // 指示含有合并单元格
+ break
+ }
+ }
+ } else if (node.name === 'ruby') {
+ // 转换 ruby
+ node.name = 'span'
+ for (let i = 0; i < children.length - 1; i++) {
+ if (children[i].type === 'text' && children[i + 1].name === 'rt') {
+ children[i] = {
+ name: 'div',
+ attrs: {
+ style: 'display:inline-block;text-align:center'
+ },
+ children: [{
+ name: 'div',
+ attrs: {
+ style: 'font-size:50%;' + (children[i + 1].attrs.style || '')
+ },
+ children: children[i + 1].children
+ }, children[i]]
+ }
+ children.splice(i + 1, 1)
+ }
+ }
+ } else if (node.c) {
+ node.c = 2
+ for (let i = node.children.length; i--;) {
+ if (!node.children[i].c || node.children[i].name === 'table') {
+ node.c = 1
+ }
+ }
+ }
+
+ if ((styleObj.display || '').includes('flex') && !node.c) {
+ for (let i = children.length; i--;) {
+ const item = children[i]
+ if (item.f) {
+ item.attrs.style = (item.attrs.style || '') + item.f
+ item.f = undefined
+ }
+ }
+ }
+ // flex 布局时部分样式需要提取到 rich-text 外层
+ const flex = parent && (parent.attrs.style || '').includes('flex')
+ // #ifdef MP-WEIXIN
+ // 检查基础库版本 virtualHost 是否可用
+ && !(node.c && wx.getNFCAdapter) // eslint-disable-line
+ // #endif
+ // #ifndef MP-WEIXIN || MP-QQ || MP-BAIDU || MP-TOUTIAO
+ && !node.c // eslint-disable-line
+ // #endif
+ if (flex) {
+ node.f = ';max-width:100%'
+ }
+ // #endif
+
+ for (const key in styleObj) {
+ if (styleObj[key]) {
+ const val = `;${key}:${styleObj[key].replace(' !important', '')}`
+ /* #ifndef APP-PLUS-NVUE */
+ if (flex && ((key.includes('flex') && key !== 'flex-direction') || key === 'align-self' || styleObj[key][0] === '-' || (key === 'width' && val.includes('%')))) {
+ node.f += val
+ if (key === 'width') {
+ attrs.style += ';width:100%'
+ }
+ } else /* #endif */ {
+ attrs.style += val
+ }
+ }
+ }
+ attrs.style = attrs.style.substr(1) || undefined
+}
+
+/**
+ * @description 解析到文本
+ * @param {String} text 文本内容
+ */
+Parser.prototype.onText = function (text) {
+ if (!this.pre) {
+ // 合并空白符
+ let trim = ''
+ let flag
+ for (let i = 0, len = text.length; i < len; i++) {
+ if (!blankChar[text[i]]) {
+ trim += text[i]
+ } else {
+ if (trim[trim.length - 1] !== ' ') {
+ trim += ' '
+ }
+ if (text[i] === '\n' && !flag) {
+ flag = true
+ }
+ }
+ }
+ // 去除含有换行符的空串
+ if (trim === ' ' && flag) return
+ text = trim
+ }
+ const node = Object.create(null)
+ node.type = 'text'
+ node.text = decodeEntity(text)
+ if (this.hook(node)) {
+ // #ifdef MP-WEIXIN
+ if (this.options.selectable === 'force' && system.includes('iOS')) {
+ this.expose()
+ node.us = 'T'
+ }
+ // #endif
+ const siblings = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes
+ siblings.push(node)
+ }
+}
+
+/**
+ * @description html 词法分析器
+ * @param {Object} handler 高层处理器
+ */
+function Lexer (handler) {
+ this.handler = handler
+}
+
+/**
+ * @description 执行解析
+ * @param {String} content 要解析的文本
+ */
+Lexer.prototype.parse = function (content) {
+ this.content = content || ''
+ this.i = 0 // 标记解析位置
+ this.start = 0 // 标记一个单词的开始位置
+ this.state = this.text // 当前状态
+ for (let len = this.content.length; this.i !== -1 && this.i < len;) {
+ this.state()
+ }
+}
+
+/**
+ * @description 检查标签是否闭合
+ * @param {String} method 如果闭合要进行的操作
+ * @returns {Boolean} 是否闭合
+ * @private
+ */
+Lexer.prototype.checkClose = function (method) {
+ const selfClose = this.content[this.i] === '/'
+ if (this.content[this.i] === '>' || (selfClose && this.content[this.i + 1] === '>')) {
+ if (method) {
+ this.handler[method](this.content.substring(this.start, this.i))
+ }
+ this.i += selfClose ? 2 : 1
+ this.start = this.i
+ this.handler.onOpenTag(selfClose)
+ if (this.handler.tagName === 'script') {
+ this.i = this.content.indexOf('', this.i)
+ if (this.i !== -1) {
+ this.i += 2
+ this.start = this.i
+ }
+ this.state = this.endTag
+ } else {
+ this.state = this.text
+ }
+ return true
+ }
+ return false
+}
+
+/**
+ * @description 文本状态
+ * @private
+ */
+Lexer.prototype.text = function () {
+ this.i = this.content.indexOf('<', this.i) // 查找最近的标签
+ if (this.i === -1) {
+ // 没有标签了
+ if (this.start < this.content.length) {
+ this.handler.onText(this.content.substring(this.start, this.content.length))
+ }
+ return
+ }
+ const c = this.content[this.i + 1]
+ if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
+ // 标签开头
+ if (this.start !== this.i) {
+ this.handler.onText(this.content.substring(this.start, this.i))
+ }
+ this.start = ++this.i
+ this.state = this.tagName
+ } else if (c === '/' || c === '!' || c === '?') {
+ if (this.start !== this.i) {
+ this.handler.onText(this.content.substring(this.start, this.i))
+ }
+ const next = this.content[this.i + 2]
+ if (c === '/' && ((next >= 'a' && next <= 'z') || (next >= 'A' && next <= 'Z'))) {
+ // 标签结尾
+ this.i += 2
+ this.start = this.i
+ this.state = this.endTag
+ return
+ }
+ // 处理注释
+ let end = '-->'
+ if (c !== '!' || this.content[this.i + 2] !== '-' || this.content[this.i + 3] !== '-') {
+ end = '>'
+ }
+ this.i = this.content.indexOf(end, this.i)
+ if (this.i !== -1) {
+ this.i += end.length
+ this.start = this.i
+ }
+ } else {
+ this.i++
+ }
+}
+
+/**
+ * @description 标签名状态
+ * @private
+ */
+Lexer.prototype.tagName = function () {
+ if (blankChar[this.content[this.i]]) {
+ // 解析到标签名
+ this.handler.onTagName(this.content.substring(this.start, this.i))
+ while (blankChar[this.content[++this.i]]);
+ if (this.i < this.content.length && !this.checkClose()) {
+ this.start = this.i
+ this.state = this.attrName
+ }
+ } else if (!this.checkClose('onTagName')) {
+ this.i++
+ }
+}
+
+/**
+ * @description 属性名状态
+ * @private
+ */
+Lexer.prototype.attrName = function () {
+ let c = this.content[this.i]
+ if (blankChar[c] || c === '=') {
+ // 解析到属性名
+ this.handler.onAttrName(this.content.substring(this.start, this.i))
+ let needVal = c === '='
+ const len = this.content.length
+ while (++this.i < len) {
+ c = this.content[this.i]
+ if (!blankChar[c]) {
+ if (this.checkClose()) return
+ if (needVal) {
+ // 等号后遇到第一个非空字符
+ this.start = this.i
+ this.state = this.attrVal
+ return
+ }
+ if (this.content[this.i] === '=') {
+ needVal = true
+ } else {
+ this.start = this.i
+ this.state = this.attrName
+ return
+ }
+ }
+ }
+ } else if (!this.checkClose('onAttrName')) {
+ this.i++
+ }
+}
+
+/**
+ * @description 属性值状态
+ * @private
+ */
+Lexer.prototype.attrVal = function () {
+ const c = this.content[this.i]
+ const len = this.content.length
+ if (c === '"' || c === "'") {
+ // 有冒号的属性
+ this.start = ++this.i
+ this.i = this.content.indexOf(c, this.i)
+ if (this.i === -1) return
+ this.handler.onAttrVal(this.content.substring(this.start, this.i))
+ } else {
+ // 没有冒号的属性
+ for (; this.i < len; this.i++) {
+ if (blankChar[this.content[this.i]]) {
+ this.handler.onAttrVal(this.content.substring(this.start, this.i))
+ break
+ } else if (this.checkClose('onAttrVal')) return
+ }
+ }
+ while (blankChar[this.content[++this.i]]);
+ if (this.i < len && !this.checkClose()) {
+ this.start = this.i
+ this.state = this.attrName
+ }
+}
+
+/**
+ * @description 结束标签状态
+ * @returns {String} 结束的标签名
+ * @private
+ */
+Lexer.prototype.endTag = function () {
+ const c = this.content[this.i]
+ if (blankChar[c] || c === '>' || c === '/') {
+ this.handler.onCloseTag(this.content.substring(this.start, this.i))
+ if (c !== '>') {
+ this.i = this.content.indexOf('>', this.i)
+ if (this.i === -1) return
+ }
+ this.start = ++this.i
+ this.state = this.text
+ } else {
+ this.i++
+ }
+}
+
+module.exports = Parser
diff --git a/components/mp-html/package.json b/components/mp-html/package.json
new file mode 100644
index 0000000..0f1269c
--- /dev/null
+++ b/components/mp-html/package.json
@@ -0,0 +1,79 @@
+{
+ "id": "mp-html",
+ "displayName": "mp-html 富文本组件【全端支持,可编辑】",
+ "version": "v2.2.0",
+ "description": "一个强大的富文本组件,高效轻量,功能丰富",
+ "keywords": [
+ "富文本",
+ "编辑器",
+ "html",
+ "rich-text",
+ "editor"
+ ],
+ "repository": "https://github.com/jin-yufeng/mp-html",
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/mp-html"
+ },
+ "uni_modules": {
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "u",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/mp-html/static/app-plus/mp-html/js/handler.js b/components/mp-html/static/app-plus/mp-html/js/handler.js
new file mode 100644
index 0000000..8312a46
--- /dev/null
+++ b/components/mp-html/static/app-plus/mp-html/js/handler.js
@@ -0,0 +1 @@
+"use strict";function t(t){for(var e=Object.create(null),n=t.attributes.length;n--;)e[t.attributes[n].name]=t.attributes[n].value;return e}function e(){o[1]&&(this.src=o[1],this.onerror=null),this.onclick=null,this.ontouchstart=null,uni.postMessage({data:{action:"onError",source:"img",attrs:t(this)}})}function n(r,i,s){for(var c=0;c0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("navigateTo",{url:encodeURI(n)})},navigateBack:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.delta;a("navigateBack",{delta:parseInt(n)||1})},switchTab:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("switchTab",{url:encodeURI(n)})},reLaunch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("reLaunch",{url:encodeURI(n)})},redirectTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("redirectTo",{url:encodeURI(n)})},getEnv:function(e){window.plus?e({plus:!0}):e({h5:!0})},postMessage:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a("postMessage",e.data||{})}},r=/uni-app/i.test(navigator.userAgent),d=/Html5Plus/i.test(navigator.userAgent),s=/complete|loaded|interactive/;var w=window.my&&navigator.userAgent.indexOf("AlipayClient")>-1;var u=window.swan&&window.swan.webView&&/swan/i.test(navigator.userAgent);var c=window.qq&&window.qq.miniProgram&&/QQ/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var g=window.tt&&window.tt.miniProgram&&/toutiaomicroapp/i.test(navigator.userAgent);var v=window.wx&&window.wx.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var p=window.qa&&/quickapp/i.test(navigator.userAgent);for(var l,_=function(){window.UniAppJSBridge=!0,document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady",{bubbles:!0,cancelable:!0}))},f=[function(e){if(r||d)return window.__dcloud_weex_postMessage||window.__dcloud_weex_?document.addEventListener("DOMContentLoaded",e):window.plus&&s.test(document.readyState)?setTimeout(e,0):document.addEventListener("plusready",e),o},function(e){if(v)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.wx.miniProgram},function(e){if(c)return window.QQJSBridge&&window.QQJSBridge.invoke?setTimeout(e,0):document.addEventListener("QQJSBridgeReady",e),window.qq.miniProgram},function(e){if(w){document.addEventListener("DOMContentLoaded",e);var n=window.my;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(u)return document.addEventListener("DOMContentLoaded",e),window.swan.webView},function(e){if(g)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(p){window.QaJSBridge&&window.QaJSBridge.invoke?setTimeout(e,0):document.addEventListener("QaJSBridgeReady",e);var n=window.qa;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){return document.addEventListener("DOMContentLoaded",e),o}],m=0;m
\ No newline at end of file
diff --git a/components/pick-regions/pick-regions.vue b/components/pick-regions/pick-regions.vue
new file mode 100644
index 0000000..71837ac
--- /dev/null
+++ b/components/pick-regions/pick-regions.vue
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
diff --git a/components/pick-regions/regions.json b/components/pick-regions/regions.json
new file mode 100644
index 0000000..310abee
--- /dev/null
+++ b/components/pick-regions/regions.json
@@ -0,0 +1 @@
+[{"code":"11","name":"北京市","childs":[{"code":"1101","name":"市辖区","childs":[{"code":"110101","name":"东城区"},{"code":"110102","name":"西城区"},{"code":"110105","name":"朝阳区"},{"code":"110106","name":"丰台区"},{"code":"110107","name":"石景山区"},{"code":"110108","name":"海淀区"},{"code":"110109","name":"门头沟区"},{"code":"110111","name":"房山区"},{"code":"110112","name":"通州区"},{"code":"110113","name":"顺义区"},{"code":"110114","name":"昌平区"},{"code":"110115","name":"大兴区"},{"code":"110116","name":"怀柔区"},{"code":"110117","name":"平谷区"},{"code":"110118","name":"密云区"},{"code":"110119","name":"延庆区"}]}]},{"code":"12","name":"天津市","childs":[{"code":"1201","name":"市辖区","childs":[{"code":"120101","name":"和平区"},{"code":"120102","name":"河东区"},{"code":"120103","name":"河西区"},{"code":"120104","name":"南开区"},{"code":"120105","name":"河北区"},{"code":"120106","name":"红桥区"},{"code":"120110","name":"东丽区"},{"code":"120111","name":"西青区"},{"code":"120112","name":"津南区"},{"code":"120113","name":"北辰区"},{"code":"120114","name":"武清区"},{"code":"120115","name":"宝坻区"},{"code":"120116","name":"滨海新区"},{"code":"120117","name":"宁河区"},{"code":"120118","name":"静海区"},{"code":"120119","name":"蓟州区"}]}]},{"code":"13","name":"河北省","childs":[{"code":"1301","name":"石家庄市","childs":[{"code":"130102","name":"长安区"},{"code":"130104","name":"桥西区"},{"code":"130105","name":"新华区"},{"code":"130107","name":"井陉矿区"},{"code":"130108","name":"裕华区"},{"code":"130109","name":"藁城区"},{"code":"130110","name":"鹿泉区"},{"code":"130111","name":"栾城区"},{"code":"130121","name":"井陉县"},{"code":"130123","name":"正定县"},{"code":"130125","name":"行唐县"},{"code":"130126","name":"灵寿县"},{"code":"130127","name":"高邑县"},{"code":"130128","name":"深泽县"},{"code":"130129","name":"赞皇县"},{"code":"130130","name":"无极县"},{"code":"130131","name":"平山县"},{"code":"130132","name":"元氏县"},{"code":"130133","name":"赵县"},{"code":"130183","name":"晋州市"},{"code":"130184","name":"新乐市"}]},{"code":"1302","name":"唐山市","childs":[{"code":"130202","name":"路南区"},{"code":"130203","name":"路北区"},{"code":"130204","name":"古冶区"},{"code":"130205","name":"开平区"},{"code":"130207","name":"丰南区"},{"code":"130208","name":"丰润区"},{"code":"130209","name":"曹妃甸区"},{"code":"130223","name":"滦县"},{"code":"130224","name":"滦南县"},{"code":"130225","name":"乐亭县"},{"code":"130227","name":"迁西县"},{"code":"130229","name":"玉田县"},{"code":"130281","name":"遵化市"},{"code":"130283","name":"迁安市"}]},{"code":"1303","name":"秦皇岛市","childs":[{"code":"130302","name":"海港区"},{"code":"130303","name":"山海关区"},{"code":"130304","name":"北戴河区"},{"code":"130306","name":"抚宁区"},{"code":"130321","name":"青龙满族自治县"},{"code":"130322","name":"昌黎县"},{"code":"130324","name":"卢龙县"}]},{"code":"1304","name":"邯郸市","childs":[{"code":"130402","name":"邯山区"},{"code":"130403","name":"丛台区"},{"code":"130404","name":"复兴区"},{"code":"130406","name":"峰峰矿区"},{"code":"130421","name":"邯郸县"},{"code":"130423","name":"临漳县"},{"code":"130424","name":"成安县"},{"code":"130425","name":"大名县"},{"code":"130426","name":"涉县"},{"code":"130427","name":"磁县"},{"code":"130428","name":"肥乡县"},{"code":"130429","name":"永年县"},{"code":"130430","name":"邱县"},{"code":"130431","name":"鸡泽县"},{"code":"130432","name":"广平县"},{"code":"130433","name":"馆陶县"},{"code":"130434","name":"魏县"},{"code":"130435","name":"曲周县"},{"code":"130481","name":"武安市"}]},{"code":"1305","name":"邢台市","childs":[{"code":"130502","name":"桥东区"},{"code":"130503","name":"桥西区"},{"code":"130521","name":"邢台县"},{"code":"130522","name":"临城县"},{"code":"130523","name":"内丘县"},{"code":"130524","name":"柏乡县"},{"code":"130525","name":"隆尧县"},{"code":"130526","name":"任县"},{"code":"130527","name":"南和县"},{"code":"130528","name":"宁晋县"},{"code":"130529","name":"巨鹿县"},{"code":"130530","name":"新河县"},{"code":"130531","name":"广宗县"},{"code":"130532","name":"平乡县"},{"code":"130533","name":"威县"},{"code":"130534","name":"清河县"},{"code":"130535","name":"临西县"},{"code":"130581","name":"南宫市"},{"code":"130582","name":"沙河市"}]},{"code":"1306","name":"保定市","childs":[{"code":"130602","name":"竞秀区"},{"code":"130606","name":"莲池区"},{"code":"130607","name":"满城区"},{"code":"130608","name":"清苑区"},{"code":"130609","name":"徐水区"},{"code":"130623","name":"涞水县"},{"code":"130624","name":"阜平县"},{"code":"130626","name":"定兴县"},{"code":"130627","name":"唐县"},{"code":"130628","name":"高阳县"},{"code":"130629","name":"容城县"},{"code":"130630","name":"涞源县"},{"code":"130631","name":"望都县"},{"code":"130632","name":"安新县"},{"code":"130633","name":"易县"},{"code":"130634","name":"曲阳县"},{"code":"130635","name":"蠡县"},{"code":"130636","name":"顺平县"},{"code":"130637","name":"博野县"},{"code":"130638","name":"雄县"},{"code":"130681","name":"涿州市"},{"code":"130683","name":"安国市"},{"code":"130684","name":"高碑店市"}]},{"code":"1307","name":"张家口市","childs":[{"code":"130702","name":"桥东区"},{"code":"130703","name":"桥西区"},{"code":"130705","name":"宣化区"},{"code":"130706","name":"下花园区"},{"code":"130708","name":"万全区"},{"code":"130709","name":"崇礼区"},{"code":"130722","name":"张北县"},{"code":"130723","name":"康保县"},{"code":"130724","name":"沽源县"},{"code":"130725","name":"尚义县"},{"code":"130726","name":"蔚县"},{"code":"130727","name":"阳原县"},{"code":"130728","name":"怀安县"},{"code":"130730","name":"怀来县"},{"code":"130731","name":"涿鹿县"},{"code":"130732","name":"赤城县"}]},{"code":"1308","name":"承德市","childs":[{"code":"130802","name":"双桥区"},{"code":"130803","name":"双滦区"},{"code":"130804","name":"鹰手营子矿区"},{"code":"130821","name":"承德县"},{"code":"130822","name":"兴隆县"},{"code":"130823","name":"平泉县"},{"code":"130824","name":"滦平县"},{"code":"130825","name":"隆化县"},{"code":"130826","name":"丰宁满族自治县"},{"code":"130827","name":"宽城满族自治县"},{"code":"130828","name":"围场满族蒙古族自治县"}]},{"code":"1309","name":"沧州市","childs":[{"code":"130902","name":"新华区"},{"code":"130903","name":"运河区"},{"code":"130921","name":"沧县"},{"code":"130922","name":"青县"},{"code":"130923","name":"东光县"},{"code":"130924","name":"海兴县"},{"code":"130925","name":"盐山县"},{"code":"130926","name":"肃宁县"},{"code":"130927","name":"南皮县"},{"code":"130928","name":"吴桥县"},{"code":"130929","name":"献县"},{"code":"130930","name":"孟村回族自治县"},{"code":"130981","name":"泊头市"},{"code":"130982","name":"任丘市"},{"code":"130983","name":"黄骅市"},{"code":"130984","name":"河间市"}]},{"code":"1310","name":"廊坊市","childs":[{"code":"131002","name":"安次区"},{"code":"131003","name":"广阳区"},{"code":"131022","name":"固安县"},{"code":"131023","name":"永清县"},{"code":"131024","name":"香河县"},{"code":"131025","name":"大城县"},{"code":"131026","name":"文安县"},{"code":"131028","name":"大厂回族自治县"},{"code":"131081","name":"霸州市"},{"code":"131082","name":"三河市"}]},{"code":"1311","name":"衡水市","childs":[{"code":"131102","name":"桃城区"},{"code":"131103","name":"冀州区"},{"code":"131121","name":"枣强县"},{"code":"131122","name":"武邑县"},{"code":"131123","name":"武强县"},{"code":"131124","name":"饶阳县"},{"code":"131125","name":"安平县"},{"code":"131126","name":"故城县"},{"code":"131127","name":"景县"},{"code":"131128","name":"阜城县"},{"code":"131182","name":"深州市"}]},{"code":"1390","name":"省直辖县级行政区划","childs":[{"code":"139001","name":"定州市"},{"code":"139002","name":"辛集市"}]}]},{"code":"14","name":"山西省","childs":[{"code":"1401","name":"太原市","childs":[{"code":"140105","name":"小店区"},{"code":"140106","name":"迎泽区"},{"code":"140107","name":"杏花岭区"},{"code":"140108","name":"尖草坪区"},{"code":"140109","name":"万柏林区"},{"code":"140110","name":"晋源区"},{"code":"140121","name":"清徐县"},{"code":"140122","name":"阳曲县"},{"code":"140123","name":"娄烦县"},{"code":"140181","name":"古交市"}]},{"code":"1402","name":"大同市","childs":[{"code":"140202","name":"城区"},{"code":"140203","name":"矿区"},{"code":"140211","name":"南郊区"},{"code":"140212","name":"新荣区"},{"code":"140221","name":"阳高县"},{"code":"140222","name":"天镇县"},{"code":"140223","name":"广灵县"},{"code":"140224","name":"灵丘县"},{"code":"140225","name":"浑源县"},{"code":"140226","name":"左云县"},{"code":"140227","name":"大同县"}]},{"code":"1403","name":"阳泉市","childs":[{"code":"140302","name":"城区"},{"code":"140303","name":"矿区"},{"code":"140311","name":"郊区"},{"code":"140321","name":"平定县"},{"code":"140322","name":"盂县"}]},{"code":"1404","name":"长治市","childs":[{"code":"140402","name":"城区"},{"code":"140411","name":"郊区"},{"code":"140421","name":"长治县"},{"code":"140423","name":"襄垣县"},{"code":"140424","name":"屯留县"},{"code":"140425","name":"平顺县"},{"code":"140426","name":"黎城县"},{"code":"140427","name":"壶关县"},{"code":"140428","name":"长子县"},{"code":"140429","name":"武乡县"},{"code":"140430","name":"沁县"},{"code":"140431","name":"沁源县"},{"code":"140481","name":"潞城市"}]},{"code":"1405","name":"晋城市","childs":[{"code":"140502","name":"城区"},{"code":"140521","name":"沁水县"},{"code":"140522","name":"阳城县"},{"code":"140524","name":"陵川县"},{"code":"140525","name":"泽州县"},{"code":"140581","name":"高平市"}]},{"code":"1406","name":"朔州市","childs":[{"code":"140602","name":"朔城区"},{"code":"140603","name":"平鲁区"},{"code":"140621","name":"山阴县"},{"code":"140622","name":"应县"},{"code":"140623","name":"右玉县"},{"code":"140624","name":"怀仁县"}]},{"code":"1407","name":"晋中市","childs":[{"code":"140702","name":"榆次区"},{"code":"140721","name":"榆社县"},{"code":"140722","name":"左权县"},{"code":"140723","name":"和顺县"},{"code":"140724","name":"昔阳县"},{"code":"140725","name":"寿阳县"},{"code":"140726","name":"太谷县"},{"code":"140727","name":"祁县"},{"code":"140728","name":"平遥县"},{"code":"140729","name":"灵石县"},{"code":"140781","name":"介休市"}]},{"code":"1408","name":"运城市","childs":[{"code":"140802","name":"盐湖区"},{"code":"140821","name":"临猗县"},{"code":"140822","name":"万荣县"},{"code":"140823","name":"闻喜县"},{"code":"140824","name":"稷山县"},{"code":"140825","name":"新绛县"},{"code":"140826","name":"绛县"},{"code":"140827","name":"垣曲县"},{"code":"140828","name":"夏县"},{"code":"140829","name":"平陆县"},{"code":"140830","name":"芮城县"},{"code":"140881","name":"永济市"},{"code":"140882","name":"河津市"}]},{"code":"1409","name":"忻州市","childs":[{"code":"140902","name":"忻府区"},{"code":"140921","name":"定襄县"},{"code":"140922","name":"五台县"},{"code":"140923","name":"代县"},{"code":"140924","name":"繁峙县"},{"code":"140925","name":"宁武县"},{"code":"140926","name":"静乐县"},{"code":"140927","name":"神池县"},{"code":"140928","name":"五寨县"},{"code":"140929","name":"岢岚县"},{"code":"140930","name":"河曲县"},{"code":"140931","name":"保德县"},{"code":"140932","name":"偏关县"},{"code":"140981","name":"原平市"}]},{"code":"1410","name":"临汾市","childs":[{"code":"141002","name":"尧都区"},{"code":"141021","name":"曲沃县"},{"code":"141022","name":"翼城县"},{"code":"141023","name":"襄汾县"},{"code":"141024","name":"洪洞县"},{"code":"141025","name":"古县"},{"code":"141026","name":"安泽县"},{"code":"141027","name":"浮山县"},{"code":"141028","name":"吉县"},{"code":"141029","name":"乡宁县"},{"code":"141030","name":"大宁县"},{"code":"141031","name":"隰县"},{"code":"141032","name":"永和县"},{"code":"141033","name":"蒲县"},{"code":"141034","name":"汾西县"},{"code":"141081","name":"侯马市"},{"code":"141082","name":"霍州市"}]},{"code":"1411","name":"吕梁市","childs":[{"code":"141102","name":"离石区"},{"code":"141121","name":"文水县"},{"code":"141122","name":"交城县"},{"code":"141123","name":"兴县"},{"code":"141124","name":"临县"},{"code":"141125","name":"柳林县"},{"code":"141126","name":"石楼县"},{"code":"141127","name":"岚县"},{"code":"141128","name":"方山县"},{"code":"141129","name":"中阳县"},{"code":"141130","name":"交口县"},{"code":"141181","name":"孝义市"},{"code":"141182","name":"汾阳市"}]}]},{"code":"15","name":"内蒙古自治区","childs":[{"code":"1501","name":"呼和浩特市","childs":[{"code":"150102","name":"新城区"},{"code":"150103","name":"回民区"},{"code":"150104","name":"玉泉区"},{"code":"150105","name":"赛罕区"},{"code":"150121","name":"土默特左旗"},{"code":"150122","name":"托克托县"},{"code":"150123","name":"和林格尔县"},{"code":"150124","name":"清水河县"},{"code":"150125","name":"武川县"}]},{"code":"1502","name":"包头市","childs":[{"code":"150202","name":"东河区"},{"code":"150203","name":"昆都仑区"},{"code":"150204","name":"青山区"},{"code":"150205","name":"石拐区"},{"code":"150206","name":"白云鄂博矿区"},{"code":"150207","name":"九原区"},{"code":"150221","name":"土默特右旗"},{"code":"150222","name":"固阳县"},{"code":"150223","name":"达尔罕茂明安联合旗"}]},{"code":"1503","name":"乌海市","childs":[{"code":"150302","name":"海勃湾区"},{"code":"150303","name":"海南区"},{"code":"150304","name":"乌达区"}]},{"code":"1504","name":"赤峰市","childs":[{"code":"150402","name":"红山区"},{"code":"150403","name":"元宝山区"},{"code":"150404","name":"松山区"},{"code":"150421","name":"阿鲁科尔沁旗"},{"code":"150422","name":"巴林左旗"},{"code":"150423","name":"巴林右旗"},{"code":"150424","name":"林西县"},{"code":"150425","name":"克什克腾旗"},{"code":"150426","name":"翁牛特旗"},{"code":"150428","name":"喀喇沁旗"},{"code":"150429","name":"宁城县"},{"code":"150430","name":"敖汉旗"}]},{"code":"1505","name":"通辽市","childs":[{"code":"150502","name":"科尔沁区"},{"code":"150521","name":"科尔沁左翼中旗"},{"code":"150522","name":"科尔沁左翼后旗"},{"code":"150523","name":"开鲁县"},{"code":"150524","name":"库伦旗"},{"code":"150525","name":"奈曼旗"},{"code":"150526","name":"扎鲁特旗"},{"code":"150581","name":"霍林郭勒市"}]},{"code":"1506","name":"鄂尔多斯市","childs":[{"code":"150602","name":"东胜区"},{"code":"150603","name":"康巴什区"},{"code":"150621","name":"达拉特旗"},{"code":"150622","name":"准格尔旗"},{"code":"150623","name":"鄂托克前旗"},{"code":"150624","name":"鄂托克旗"},{"code":"150625","name":"杭锦旗"},{"code":"150626","name":"乌审旗"},{"code":"150627","name":"伊金霍洛旗"}]},{"code":"1507","name":"呼伦贝尔市","childs":[{"code":"150702","name":"海拉尔区"},{"code":"150703","name":"扎赉诺尔区"},{"code":"150721","name":"阿荣旗"},{"code":"150722","name":"莫力达瓦达斡尔族自治旗"},{"code":"150723","name":"鄂伦春自治旗"},{"code":"150724","name":"鄂温克族自治旗"},{"code":"150725","name":"陈巴尔虎旗"},{"code":"150726","name":"新巴尔虎左旗"},{"code":"150727","name":"新巴尔虎右旗"},{"code":"150781","name":"满洲里市"},{"code":"150782","name":"牙克石市"},{"code":"150783","name":"扎兰屯市"},{"code":"150784","name":"额尔古纳市"},{"code":"150785","name":"根河市"}]},{"code":"1508","name":"巴彦淖尔市","childs":[{"code":"150802","name":"临河区"},{"code":"150821","name":"五原县"},{"code":"150822","name":"磴口县"},{"code":"150823","name":"乌拉特前旗"},{"code":"150824","name":"乌拉特中旗"},{"code":"150825","name":"乌拉特后旗"},{"code":"150826","name":"杭锦后旗"}]},{"code":"1509","name":"乌兰察布市","childs":[{"code":"150902","name":"集宁区"},{"code":"150921","name":"卓资县"},{"code":"150922","name":"化德县"},{"code":"150923","name":"商都县"},{"code":"150924","name":"兴和县"},{"code":"150925","name":"凉城县"},{"code":"150926","name":"察哈尔右翼前旗"},{"code":"150927","name":"察哈尔右翼中旗"},{"code":"150928","name":"察哈尔右翼后旗"},{"code":"150929","name":"四子王旗"},{"code":"150981","name":"丰镇市"}]},{"code":"1522","name":"兴安盟","childs":[{"code":"152201","name":"乌兰浩特市"},{"code":"152202","name":"阿尔山市"},{"code":"152221","name":"科尔沁右翼前旗"},{"code":"152222","name":"科尔沁右翼中旗"},{"code":"152223","name":"扎赉特旗"},{"code":"152224","name":"突泉县"}]},{"code":"1525","name":"锡林郭勒盟","childs":[{"code":"152501","name":"二连浩特市"},{"code":"152502","name":"锡林浩特市"},{"code":"152522","name":"阿巴嘎旗"},{"code":"152523","name":"苏尼特左旗"},{"code":"152524","name":"苏尼特右旗"},{"code":"152525","name":"东乌珠穆沁旗"},{"code":"152526","name":"西乌珠穆沁旗"},{"code":"152527","name":"太仆寺旗"},{"code":"152528","name":"镶黄旗"},{"code":"152529","name":"正镶白旗"},{"code":"152530","name":"正蓝旗"},{"code":"152531","name":"多伦县"}]},{"code":"1529","name":"阿拉善盟","childs":[{"code":"152921","name":"阿拉善左旗"},{"code":"152922","name":"阿拉善右旗"},{"code":"152923","name":"额济纳旗"}]}]},{"code":"21","name":"辽宁省","childs":[{"code":"2101","name":"沈阳市","childs":[{"code":"210102","name":"和平区"},{"code":"210103","name":"沈河区"},{"code":"210104","name":"大东区"},{"code":"210105","name":"皇姑区"},{"code":"210106","name":"铁西区"},{"code":"210111","name":"苏家屯区"},{"code":"210112","name":"浑南区"},{"code":"210113","name":"沈北新区"},{"code":"210114","name":"于洪区"},{"code":"210115","name":"辽中区"},{"code":"210123","name":"康平县"},{"code":"210124","name":"法库县"},{"code":"210181","name":"新民市"}]},{"code":"2102","name":"大连市","childs":[{"code":"210202","name":"中山区"},{"code":"210203","name":"西岗区"},{"code":"210204","name":"沙河口区"},{"code":"210211","name":"甘井子区"},{"code":"210212","name":"旅顺口区"},{"code":"210213","name":"金州区"},{"code":"210214","name":"普兰店区"},{"code":"210224","name":"长海县"},{"code":"210281","name":"瓦房店市"},{"code":"210283","name":"庄河市"}]},{"code":"2103","name":"鞍山市","childs":[{"code":"210302","name":"铁东区"},{"code":"210303","name":"铁西区"},{"code":"210304","name":"立山区"},{"code":"210311","name":"千山区"},{"code":"210321","name":"台安县"},{"code":"210323","name":"岫岩满族自治县"},{"code":"210381","name":"海城市"}]},{"code":"2104","name":"抚顺市","childs":[{"code":"210402","name":"新抚区"},{"code":"210403","name":"东洲区"},{"code":"210404","name":"望花区"},{"code":"210411","name":"顺城区"},{"code":"210421","name":"抚顺县"},{"code":"210422","name":"新宾满族自治县"},{"code":"210423","name":"清原满族自治县"}]},{"code":"2105","name":"本溪市","childs":[{"code":"210502","name":"平山区"},{"code":"210503","name":"溪湖区"},{"code":"210504","name":"明山区"},{"code":"210505","name":"南芬区"},{"code":"210521","name":"本溪满族自治县"},{"code":"210522","name":"桓仁满族自治县"}]},{"code":"2106","name":"丹东市","childs":[{"code":"210602","name":"元宝区"},{"code":"210603","name":"振兴区"},{"code":"210604","name":"振安区"},{"code":"210624","name":"宽甸满族自治县"},{"code":"210681","name":"东港市"},{"code":"210682","name":"凤城市"}]},{"code":"2107","name":"锦州市","childs":[{"code":"210702","name":"古塔区"},{"code":"210703","name":"凌河区"},{"code":"210711","name":"太和区"},{"code":"210726","name":"黑山县"},{"code":"210727","name":"义县"},{"code":"210781","name":"凌海市"},{"code":"210782","name":"北镇市"}]},{"code":"2108","name":"营口市","childs":[{"code":"210802","name":"站前区"},{"code":"210803","name":"西市区"},{"code":"210804","name":"鲅鱼圈区"},{"code":"210811","name":"老边区"},{"code":"210881","name":"盖州市"},{"code":"210882","name":"大石桥市"}]},{"code":"2109","name":"阜新市","childs":[{"code":"210902","name":"海州区"},{"code":"210903","name":"新邱区"},{"code":"210904","name":"太平区"},{"code":"210905","name":"清河门区"},{"code":"210911","name":"细河区"},{"code":"210921","name":"阜新蒙古族自治县"},{"code":"210922","name":"彰武县"}]},{"code":"2110","name":"辽阳市","childs":[{"code":"211002","name":"白塔区"},{"code":"211003","name":"文圣区"},{"code":"211004","name":"宏伟区"},{"code":"211005","name":"弓长岭区"},{"code":"211011","name":"太子河区"},{"code":"211021","name":"辽阳县"},{"code":"211081","name":"灯塔市"}]},{"code":"2111","name":"盘锦市","childs":[{"code":"211102","name":"双台子区"},{"code":"211103","name":"兴隆台区"},{"code":"211104","name":"大洼区"},{"code":"211122","name":"盘山县"}]},{"code":"2112","name":"铁岭市","childs":[{"code":"211202","name":"银州区"},{"code":"211204","name":"清河区"},{"code":"211221","name":"铁岭县"},{"code":"211223","name":"西丰县"},{"code":"211224","name":"昌图县"},{"code":"211281","name":"调兵山市"},{"code":"211282","name":"开原市"}]},{"code":"2113","name":"朝阳市","childs":[{"code":"211302","name":"双塔区"},{"code":"211303","name":"龙城区"},{"code":"211321","name":"朝阳县"},{"code":"211322","name":"建平县"},{"code":"211324","name":"喀喇沁左翼蒙古族自治县"},{"code":"211381","name":"北票市"},{"code":"211382","name":"凌源市"}]},{"code":"2114","name":"葫芦岛市","childs":[{"code":"211402","name":"连山区"},{"code":"211403","name":"龙港区"},{"code":"211404","name":"南票区"},{"code":"211421","name":"绥中县"},{"code":"211422","name":"建昌县"},{"code":"211481","name":"兴城市"}]}]},{"code":"22","name":"吉林省","childs":[{"code":"2201","name":"长春市","childs":[{"code":"220102","name":"南关区"},{"code":"220103","name":"宽城区"},{"code":"220104","name":"朝阳区"},{"code":"220105","name":"二道区"},{"code":"220106","name":"绿园区"},{"code":"220112","name":"双阳区"},{"code":"220113","name":"九台区"},{"code":"220122","name":"农安县"},{"code":"220182","name":"榆树市"},{"code":"220183","name":"德惠市"}]},{"code":"2202","name":"吉林市","childs":[{"code":"220202","name":"昌邑区"},{"code":"220203","name":"龙潭区"},{"code":"220204","name":"船营区"},{"code":"220211","name":"丰满区"},{"code":"220221","name":"永吉县"},{"code":"220281","name":"蛟河市"},{"code":"220282","name":"桦甸市"},{"code":"220283","name":"舒兰市"},{"code":"220284","name":"磐石市"}]},{"code":"2203","name":"四平市","childs":[{"code":"220302","name":"铁西区"},{"code":"220303","name":"铁东区"},{"code":"220322","name":"梨树县"},{"code":"220323","name":"伊通满族自治县"},{"code":"220381","name":"公主岭市"},{"code":"220382","name":"双辽市"}]},{"code":"2204","name":"辽源市","childs":[{"code":"220402","name":"龙山区"},{"code":"220403","name":"西安区"},{"code":"220421","name":"东丰县"},{"code":"220422","name":"东辽县"}]},{"code":"2205","name":"通化市","childs":[{"code":"220502","name":"东昌区"},{"code":"220503","name":"二道江区"},{"code":"220521","name":"通化县"},{"code":"220523","name":"辉南县"},{"code":"220524","name":"柳河县"},{"code":"220581","name":"梅河口市"},{"code":"220582","name":"集安市"}]},{"code":"2206","name":"白山市","childs":[{"code":"220602","name":"浑江区"},{"code":"220605","name":"江源区"},{"code":"220621","name":"抚松县"},{"code":"220622","name":"靖宇县"},{"code":"220623","name":"长白朝鲜族自治县"},{"code":"220681","name":"临江市"}]},{"code":"2207","name":"松原市","childs":[{"code":"220702","name":"宁江区"},{"code":"220721","name":"前郭尔罗斯蒙古族自治县"},{"code":"220722","name":"长岭县"},{"code":"220723","name":"乾安县"},{"code":"220781","name":"扶余市"}]},{"code":"2208","name":"白城市","childs":[{"code":"220802","name":"洮北区"},{"code":"220821","name":"镇赉县"},{"code":"220822","name":"通榆县"},{"code":"220881","name":"洮南市"},{"code":"220882","name":"大安市"}]},{"code":"2224","name":"延边朝鲜族自治州","childs":[{"code":"222401","name":"延吉市"},{"code":"222402","name":"图们市"},{"code":"222403","name":"敦化市"},{"code":"222404","name":"珲春市"},{"code":"222405","name":"龙井市"},{"code":"222406","name":"和龙市"},{"code":"222424","name":"汪清县"},{"code":"222426","name":"安图县"}]}]},{"code":"23","name":"黑龙江省","childs":[{"code":"2301","name":"哈尔滨市","childs":[{"code":"230102","name":"道里区"},{"code":"230103","name":"南岗区"},{"code":"230104","name":"道外区"},{"code":"230108","name":"平房区"},{"code":"230109","name":"松北区"},{"code":"230110","name":"香坊区"},{"code":"230111","name":"呼兰区"},{"code":"230112","name":"阿城区"},{"code":"230113","name":"双城区"},{"code":"230123","name":"依兰县"},{"code":"230124","name":"方正县"},{"code":"230125","name":"宾县"},{"code":"230126","name":"巴彦县"},{"code":"230127","name":"木兰县"},{"code":"230128","name":"通河县"},{"code":"230129","name":"延寿县"},{"code":"230183","name":"尚志市"},{"code":"230184","name":"五常市"}]},{"code":"2302","name":"齐齐哈尔市","childs":[{"code":"230202","name":"龙沙区"},{"code":"230203","name":"建华区"},{"code":"230204","name":"铁锋区"},{"code":"230205","name":"昂昂溪区"},{"code":"230206","name":"富拉尔基区"},{"code":"230207","name":"碾子山区"},{"code":"230208","name":"梅里斯达斡尔族区"},{"code":"230221","name":"龙江县"},{"code":"230223","name":"依安县"},{"code":"230224","name":"泰来县"},{"code":"230225","name":"甘南县"},{"code":"230227","name":"富裕县"},{"code":"230229","name":"克山县"},{"code":"230230","name":"克东县"},{"code":"230231","name":"拜泉县"},{"code":"230281","name":"讷河市"}]},{"code":"2303","name":"鸡西市","childs":[{"code":"230302","name":"鸡冠区"},{"code":"230303","name":"恒山区"},{"code":"230304","name":"滴道区"},{"code":"230305","name":"梨树区"},{"code":"230306","name":"城子河区"},{"code":"230307","name":"麻山区"},{"code":"230321","name":"鸡东县"},{"code":"230381","name":"虎林市"},{"code":"230382","name":"密山市"}]},{"code":"2304","name":"鹤岗市","childs":[{"code":"230402","name":"向阳区"},{"code":"230403","name":"工农区"},{"code":"230404","name":"南山区"},{"code":"230405","name":"兴安区"},{"code":"230406","name":"东山区"},{"code":"230407","name":"兴山区"},{"code":"230421","name":"萝北县"},{"code":"230422","name":"绥滨县"}]},{"code":"2305","name":"双鸭山市","childs":[{"code":"230502","name":"尖山区"},{"code":"230503","name":"岭东区"},{"code":"230505","name":"四方台区"},{"code":"230506","name":"宝山区"},{"code":"230521","name":"集贤县"},{"code":"230522","name":"友谊县"},{"code":"230523","name":"宝清县"},{"code":"230524","name":"饶河县"}]},{"code":"2306","name":"大庆市","childs":[{"code":"230602","name":"萨尔图区"},{"code":"230603","name":"龙凤区"},{"code":"230604","name":"让胡路区"},{"code":"230605","name":"红岗区"},{"code":"230606","name":"大同区"},{"code":"230621","name":"肇州县"},{"code":"230622","name":"肇源县"},{"code":"230623","name":"林甸县"},{"code":"230624","name":"杜尔伯特蒙古族自治县"}]},{"code":"2307","name":"伊春市","childs":[{"code":"230702","name":"伊春区"},{"code":"230703","name":"南岔区"},{"code":"230704","name":"友好区"},{"code":"230705","name":"西林区"},{"code":"230706","name":"翠峦区"},{"code":"230707","name":"新青区"},{"code":"230708","name":"美溪区"},{"code":"230709","name":"金山屯区"},{"code":"230710","name":"五营区"},{"code":"230711","name":"乌马河区"},{"code":"230712","name":"汤旺河区"},{"code":"230713","name":"带岭区"},{"code":"230714","name":"乌伊岭区"},{"code":"230715","name":"红星区"},{"code":"230716","name":"上甘岭区"},{"code":"230722","name":"嘉荫县"},{"code":"230781","name":"铁力市"}]},{"code":"2308","name":"佳木斯市","childs":[{"code":"230803","name":"向阳区"},{"code":"230804","name":"前进区"},{"code":"230805","name":"东风区"},{"code":"230811","name":"郊区"},{"code":"230822","name":"桦南县"},{"code":"230826","name":"桦川县"},{"code":"230828","name":"汤原县"},{"code":"230881","name":"同江市"},{"code":"230882","name":"富锦市"},{"code":"230883","name":"抚远市"}]},{"code":"2309","name":"七台河市","childs":[{"code":"230902","name":"新兴区"},{"code":"230903","name":"桃山区"},{"code":"230904","name":"茄子河区"},{"code":"230921","name":"勃利县"}]},{"code":"2310","name":"牡丹江市","childs":[{"code":"231002","name":"东安区"},{"code":"231003","name":"阳明区"},{"code":"231004","name":"爱民区"},{"code":"231005","name":"西安区"},{"code":"231025","name":"林口县"},{"code":"231081","name":"绥芬河市"},{"code":"231083","name":"海林市"},{"code":"231084","name":"宁安市"},{"code":"231085","name":"穆棱市"},{"code":"231086","name":"东宁市"}]},{"code":"2311","name":"黑河市","childs":[{"code":"231102","name":"爱辉区"},{"code":"231121","name":"嫩江县"},{"code":"231123","name":"逊克县"},{"code":"231124","name":"孙吴县"},{"code":"231181","name":"北安市"},{"code":"231182","name":"五大连池市"}]},{"code":"2312","name":"绥化市","childs":[{"code":"231202","name":"北林区"},{"code":"231221","name":"望奎县"},{"code":"231222","name":"兰西县"},{"code":"231223","name":"青冈县"},{"code":"231224","name":"庆安县"},{"code":"231225","name":"明水县"},{"code":"231226","name":"绥棱县"},{"code":"231281","name":"安达市"},{"code":"231282","name":"肇东市"},{"code":"231283","name":"海伦市"}]},{"code":"2327","name":"大兴安岭地区","childs":[{"code":"232721","name":"呼玛县"},{"code":"232722","name":"塔河县"},{"code":"232723","name":"漠河县"}]}]},{"code":"31","name":"上海市","childs":[{"code":"3101","name":"市辖区","childs":[{"code":"310101","name":"黄浦区"},{"code":"310104","name":"徐汇区"},{"code":"310105","name":"长宁区"},{"code":"310106","name":"静安区"},{"code":"310107","name":"普陀区"},{"code":"310109","name":"虹口区"},{"code":"310110","name":"杨浦区"},{"code":"310112","name":"闵行区"},{"code":"310113","name":"宝山区"},{"code":"310114","name":"嘉定区"},{"code":"310115","name":"浦东新区"},{"code":"310116","name":"金山区"},{"code":"310117","name":"松江区"},{"code":"310118","name":"青浦区"},{"code":"310120","name":"奉贤区"},{"code":"310151","name":"崇明区"}]}]},{"code":"32","name":"江苏省","childs":[{"code":"3201","name":"南京市","childs":[{"code":"320102","name":"玄武区"},{"code":"320104","name":"秦淮区"},{"code":"320105","name":"建邺区"},{"code":"320106","name":"鼓楼区"},{"code":"320111","name":"浦口区"},{"code":"320113","name":"栖霞区"},{"code":"320114","name":"雨花台区"},{"code":"320115","name":"江宁区"},{"code":"320116","name":"六合区"},{"code":"320117","name":"溧水区"},{"code":"320118","name":"高淳区"}]},{"code":"3202","name":"无锡市","childs":[{"code":"320205","name":"锡山区"},{"code":"320206","name":"惠山区"},{"code":"320211","name":"滨湖区"},{"code":"320213","name":"梁溪区"},{"code":"320214","name":"新吴区"},{"code":"320281","name":"江阴市"},{"code":"320282","name":"宜兴市"}]},{"code":"3203","name":"徐州市","childs":[{"code":"320302","name":"鼓楼区"},{"code":"320303","name":"云龙区"},{"code":"320305","name":"贾汪区"},{"code":"320311","name":"泉山区"},{"code":"320312","name":"铜山区"},{"code":"320321","name":"丰县"},{"code":"320322","name":"沛县"},{"code":"320324","name":"睢宁县"},{"code":"320381","name":"新沂市"},{"code":"320382","name":"邳州市"}]},{"code":"3204","name":"常州市","childs":[{"code":"320402","name":"天宁区"},{"code":"320404","name":"钟楼区"},{"code":"320411","name":"新北区"},{"code":"320412","name":"武进区"},{"code":"320413","name":"金坛区"},{"code":"320481","name":"溧阳市"}]},{"code":"3205","name":"苏州市","childs":[{"code":"320505","name":"虎丘区"},{"code":"320506","name":"吴中区"},{"code":"320507","name":"相城区"},{"code":"320508","name":"姑苏区"},{"code":"320509","name":"吴江区"},{"code":"320581","name":"常熟市"},{"code":"320582","name":"张家港市"},{"code":"320583","name":"昆山市"},{"code":"320585","name":"太仓市"}]},{"code":"3206","name":"南通市","childs":[{"code":"320602","name":"崇川区"},{"code":"320611","name":"港闸区"},{"code":"320612","name":"通州区"},{"code":"320621","name":"海安县"},{"code":"320623","name":"如东县"},{"code":"320681","name":"启东市"},{"code":"320682","name":"如皋市"},{"code":"320684","name":"海门市"}]},{"code":"3207","name":"连云港市","childs":[{"code":"320703","name":"连云区"},{"code":"320706","name":"海州区"},{"code":"320707","name":"赣榆区"},{"code":"320722","name":"东海县"},{"code":"320723","name":"灌云县"},{"code":"320724","name":"灌南县"}]},{"code":"3208","name":"淮安市","childs":[{"code":"320803","name":"淮安区"},{"code":"320804","name":"淮阴区"},{"code":"320812","name":"清江浦区"},{"code":"320813","name":"洪泽区"},{"code":"320826","name":"涟水县"},{"code":"320830","name":"盱眙县"},{"code":"320831","name":"金湖县"}]},{"code":"3209","name":"盐城市","childs":[{"code":"320902","name":"亭湖区"},{"code":"320903","name":"盐都区"},{"code":"320904","name":"大丰区"},{"code":"320921","name":"响水县"},{"code":"320922","name":"滨海县"},{"code":"320923","name":"阜宁县"},{"code":"320924","name":"射阳县"},{"code":"320925","name":"建湖县"},{"code":"320981","name":"东台市"}]},{"code":"3210","name":"扬州市","childs":[{"code":"321002","name":"广陵区"},{"code":"321003","name":"邗江区"},{"code":"321012","name":"江都区"},{"code":"321023","name":"宝应县"},{"code":"321081","name":"仪征市"},{"code":"321084","name":"高邮市"}]},{"code":"3211","name":"镇江市","childs":[{"code":"321102","name":"京口区"},{"code":"321111","name":"润州区"},{"code":"321112","name":"丹徒区"},{"code":"321181","name":"丹阳市"},{"code":"321182","name":"扬中市"},{"code":"321183","name":"句容市"}]},{"code":"3212","name":"泰州市","childs":[{"code":"321202","name":"海陵区"},{"code":"321203","name":"高港区"},{"code":"321204","name":"姜堰区"},{"code":"321281","name":"兴化市"},{"code":"321282","name":"靖江市"},{"code":"321283","name":"泰兴市"}]},{"code":"3213","name":"宿迁市","childs":[{"code":"321302","name":"宿城区"},{"code":"321311","name":"宿豫区"},{"code":"321322","name":"沭阳县"},{"code":"321323","name":"泗阳县"},{"code":"321324","name":"泗洪县"}]}]},{"code":"33","name":"浙江省","childs":[{"code":"3301","name":"杭州市","childs":[{"code":"330102","name":"上城区"},{"code":"330103","name":"下城区"},{"code":"330104","name":"江干区"},{"code":"330105","name":"拱墅区"},{"code":"330106","name":"西湖区"},{"code":"330108","name":"滨江区"},{"code":"330109","name":"萧山区"},{"code":"330110","name":"余杭区"},{"code":"330111","name":"富阳区"},{"code":"330122","name":"桐庐县"},{"code":"330127","name":"淳安县"},{"code":"330182","name":"建德市"},{"code":"330185","name":"临安市"}]},{"code":"3302","name":"宁波市","childs":[{"code":"330203","name":"海曙区"},{"code":"330204","name":"江东区"},{"code":"330205","name":"江北区"},{"code":"330206","name":"北仑区"},{"code":"330211","name":"镇海区"},{"code":"330212","name":"鄞州区"},{"code":"330225","name":"象山县"},{"code":"330226","name":"宁海县"},{"code":"330281","name":"余姚市"},{"code":"330282","name":"慈溪市"},{"code":"330283","name":"奉化市"}]},{"code":"3303","name":"温州市","childs":[{"code":"330302","name":"鹿城区"},{"code":"330303","name":"龙湾区"},{"code":"330304","name":"瓯海区"},{"code":"330305","name":"洞头区"},{"code":"330324","name":"永嘉县"},{"code":"330326","name":"平阳县"},{"code":"330327","name":"苍南县"},{"code":"330328","name":"文成县"},{"code":"330329","name":"泰顺县"},{"code":"330381","name":"瑞安市"},{"code":"330382","name":"乐清市"}]},{"code":"3304","name":"嘉兴市","childs":[{"code":"330402","name":"南湖区"},{"code":"330411","name":"秀洲区"},{"code":"330421","name":"嘉善县"},{"code":"330424","name":"海盐县"},{"code":"330481","name":"海宁市"},{"code":"330482","name":"平湖市"},{"code":"330483","name":"桐乡市"}]},{"code":"3305","name":"湖州市","childs":[{"code":"330502","name":"吴兴区"},{"code":"330503","name":"南浔区"},{"code":"330521","name":"德清县"},{"code":"330522","name":"长兴县"},{"code":"330523","name":"安吉县"}]},{"code":"3306","name":"绍兴市","childs":[{"code":"330602","name":"越城区"},{"code":"330603","name":"柯桥区"},{"code":"330604","name":"上虞区"},{"code":"330624","name":"新昌县"},{"code":"330681","name":"诸暨市"},{"code":"330683","name":"嵊州市"}]},{"code":"3307","name":"金华市","childs":[{"code":"330702","name":"婺城区"},{"code":"330703","name":"金东区"},{"code":"330723","name":"武义县"},{"code":"330726","name":"浦江县"},{"code":"330727","name":"磐安县"},{"code":"330781","name":"兰溪市"},{"code":"330782","name":"义乌市"},{"code":"330783","name":"东阳市"},{"code":"330784","name":"永康市"}]},{"code":"3308","name":"衢州市","childs":[{"code":"330802","name":"柯城区"},{"code":"330803","name":"衢江区"},{"code":"330822","name":"常山县"},{"code":"330824","name":"开化县"},{"code":"330825","name":"龙游县"},{"code":"330881","name":"江山市"}]},{"code":"3309","name":"舟山市","childs":[{"code":"330902","name":"定海区"},{"code":"330903","name":"普陀区"},{"code":"330921","name":"岱山县"},{"code":"330922","name":"嵊泗县"}]},{"code":"3310","name":"台州市","childs":[{"code":"331002","name":"椒江区"},{"code":"331003","name":"黄岩区"},{"code":"331004","name":"路桥区"},{"code":"331021","name":"玉环县"},{"code":"331022","name":"三门县"},{"code":"331023","name":"天台县"},{"code":"331024","name":"仙居县"},{"code":"331081","name":"温岭市"},{"code":"331082","name":"临海市"}]},{"code":"3311","name":"丽水市","childs":[{"code":"331102","name":"莲都区"},{"code":"331121","name":"青田县"},{"code":"331122","name":"缙云县"},{"code":"331123","name":"遂昌县"},{"code":"331124","name":"松阳县"},{"code":"331125","name":"云和县"},{"code":"331126","name":"庆元县"},{"code":"331127","name":"景宁畲族自治县"},{"code":"331181","name":"龙泉市"}]}]},{"code":"34","name":"安徽省","childs":[{"code":"3401","name":"合肥市","childs":[{"code":"340102","name":"瑶海区"},{"code":"340103","name":"庐阳区"},{"code":"340104","name":"蜀山区"},{"code":"340111","name":"包河区"},{"code":"340121","name":"长丰县"},{"code":"340122","name":"肥东县"},{"code":"340123","name":"肥西县"},{"code":"340124","name":"庐江县"},{"code":"340181","name":"巢湖市"}]},{"code":"3402","name":"芜湖市","childs":[{"code":"340202","name":"镜湖区"},{"code":"340203","name":"弋江区"},{"code":"340207","name":"鸠江区"},{"code":"340208","name":"三山区"},{"code":"340221","name":"芜湖县"},{"code":"340222","name":"繁昌县"},{"code":"340223","name":"南陵县"},{"code":"340225","name":"无为县"}]},{"code":"3403","name":"蚌埠市","childs":[{"code":"340302","name":"龙子湖区"},{"code":"340303","name":"蚌山区"},{"code":"340304","name":"禹会区"},{"code":"340311","name":"淮上区"},{"code":"340321","name":"怀远县"},{"code":"340322","name":"五河县"},{"code":"340323","name":"固镇县"}]},{"code":"3404","name":"淮南市","childs":[{"code":"340402","name":"大通区"},{"code":"340403","name":"田家庵区"},{"code":"340404","name":"谢家集区"},{"code":"340405","name":"八公山区"},{"code":"340406","name":"潘集区"},{"code":"340421","name":"凤台县"},{"code":"340422","name":"寿县"}]},{"code":"3405","name":"马鞍山市","childs":[{"code":"340503","name":"花山区"},{"code":"340504","name":"雨山区"},{"code":"340506","name":"博望区"},{"code":"340521","name":"当涂县"},{"code":"340522","name":"含山县"},{"code":"340523","name":"和县"}]},{"code":"3406","name":"淮北市","childs":[{"code":"340602","name":"杜集区"},{"code":"340603","name":"相山区"},{"code":"340604","name":"烈山区"},{"code":"340621","name":"濉溪县"}]},{"code":"3407","name":"铜陵市","childs":[{"code":"340705","name":"铜官区"},{"code":"340706","name":"义安区"},{"code":"340711","name":"郊区"},{"code":"340722","name":"枞阳县"}]},{"code":"3408","name":"安庆市","childs":[{"code":"340802","name":"迎江区"},{"code":"340803","name":"大观区"},{"code":"340811","name":"宜秀区"},{"code":"340822","name":"怀宁县"},{"code":"340824","name":"潜山县"},{"code":"340825","name":"太湖县"},{"code":"340826","name":"宿松县"},{"code":"340827","name":"望江县"},{"code":"340828","name":"岳西县"},{"code":"340881","name":"桐城市"}]},{"code":"3410","name":"黄山市","childs":[{"code":"341002","name":"屯溪区"},{"code":"341003","name":"黄山区"},{"code":"341004","name":"徽州区"},{"code":"341021","name":"歙县"},{"code":"341022","name":"休宁县"},{"code":"341023","name":"黟县"},{"code":"341024","name":"祁门县"}]},{"code":"3411","name":"滁州市","childs":[{"code":"341102","name":"琅琊区"},{"code":"341103","name":"南谯区"},{"code":"341122","name":"来安县"},{"code":"341124","name":"全椒县"},{"code":"341125","name":"定远县"},{"code":"341126","name":"凤阳县"},{"code":"341181","name":"天长市"},{"code":"341182","name":"明光市"}]},{"code":"3412","name":"阜阳市","childs":[{"code":"341202","name":"颍州区"},{"code":"341203","name":"颍东区"},{"code":"341204","name":"颍泉区"},{"code":"341221","name":"临泉县"},{"code":"341222","name":"太和县"},{"code":"341225","name":"阜南县"},{"code":"341226","name":"颍上县"},{"code":"341282","name":"界首市"}]},{"code":"3413","name":"宿州市","childs":[{"code":"341302","name":"埇桥区"},{"code":"341321","name":"砀山县"},{"code":"341322","name":"萧县"},{"code":"341323","name":"灵璧县"},{"code":"341324","name":"泗县"}]},{"code":"3415","name":"六安市","childs":[{"code":"341502","name":"金安区"},{"code":"341503","name":"裕安区"},{"code":"341504","name":"叶集区"},{"code":"341522","name":"霍邱县"},{"code":"341523","name":"舒城县"},{"code":"341524","name":"金寨县"},{"code":"341525","name":"霍山县"}]},{"code":"3416","name":"亳州市","childs":[{"code":"341602","name":"谯城区"},{"code":"341621","name":"涡阳县"},{"code":"341622","name":"蒙城县"},{"code":"341623","name":"利辛县"}]},{"code":"3417","name":"池州市","childs":[{"code":"341702","name":"贵池区"},{"code":"341721","name":"东至县"},{"code":"341722","name":"石台县"},{"code":"341723","name":"青阳县"}]},{"code":"3418","name":"宣城市","childs":[{"code":"341802","name":"宣州区"},{"code":"341821","name":"郎溪县"},{"code":"341822","name":"广德县"},{"code":"341823","name":"泾县"},{"code":"341824","name":"绩溪县"},{"code":"341825","name":"旌德县"},{"code":"341881","name":"宁国市"}]}]},{"code":"35","name":"福建省","childs":[{"code":"3501","name":"福州市","childs":[{"code":"350102","name":"鼓楼区"},{"code":"350103","name":"台江区"},{"code":"350104","name":"仓山区"},{"code":"350105","name":"马尾区"},{"code":"350111","name":"晋安区"},{"code":"350121","name":"闽侯县"},{"code":"350122","name":"连江县"},{"code":"350123","name":"罗源县"},{"code":"350124","name":"闽清县"},{"code":"350125","name":"永泰县"},{"code":"350128","name":"平潭县"},{"code":"350181","name":"福清市"},{"code":"350182","name":"长乐市"}]},{"code":"3502","name":"厦门市","childs":[{"code":"350203","name":"思明区"},{"code":"350205","name":"海沧区"},{"code":"350206","name":"湖里区"},{"code":"350211","name":"集美区"},{"code":"350212","name":"同安区"},{"code":"350213","name":"翔安区"}]},{"code":"3503","name":"莆田市","childs":[{"code":"350302","name":"城厢区"},{"code":"350303","name":"涵江区"},{"code":"350304","name":"荔城区"},{"code":"350305","name":"秀屿区"},{"code":"350322","name":"仙游县"}]},{"code":"3504","name":"三明市","childs":[{"code":"350402","name":"梅列区"},{"code":"350403","name":"三元区"},{"code":"350421","name":"明溪县"},{"code":"350423","name":"清流县"},{"code":"350424","name":"宁化县"},{"code":"350425","name":"大田县"},{"code":"350426","name":"尤溪县"},{"code":"350427","name":"沙县"},{"code":"350428","name":"将乐县"},{"code":"350429","name":"泰宁县"},{"code":"350430","name":"建宁县"},{"code":"350481","name":"永安市"}]},{"code":"3505","name":"泉州市","childs":[{"code":"350502","name":"鲤城区"},{"code":"350503","name":"丰泽区"},{"code":"350504","name":"洛江区"},{"code":"350505","name":"泉港区"},{"code":"350521","name":"惠安县"},{"code":"350524","name":"安溪县"},{"code":"350525","name":"永春县"},{"code":"350526","name":"德化县"},{"code":"350527","name":"金门县"},{"code":"350581","name":"石狮市"},{"code":"350582","name":"晋江市"},{"code":"350583","name":"南安市"}]},{"code":"3506","name":"漳州市","childs":[{"code":"350602","name":"芗城区"},{"code":"350603","name":"龙文区"},{"code":"350622","name":"云霄县"},{"code":"350623","name":"漳浦县"},{"code":"350624","name":"诏安县"},{"code":"350625","name":"长泰县"},{"code":"350626","name":"东山县"},{"code":"350627","name":"南靖县"},{"code":"350628","name":"平和县"},{"code":"350629","name":"华安县"},{"code":"350681","name":"龙海市"}]},{"code":"3507","name":"南平市","childs":[{"code":"350702","name":"延平区"},{"code":"350703","name":"建阳区"},{"code":"350721","name":"顺昌县"},{"code":"350722","name":"浦城县"},{"code":"350723","name":"光泽县"},{"code":"350724","name":"松溪县"},{"code":"350725","name":"政和县"},{"code":"350781","name":"邵武市"},{"code":"350782","name":"武夷山市"},{"code":"350783","name":"建瓯市"}]},{"code":"3508","name":"龙岩市","childs":[{"code":"350802","name":"新罗区"},{"code":"350803","name":"永定区"},{"code":"350821","name":"长汀县"},{"code":"350823","name":"上杭县"},{"code":"350824","name":"武平县"},{"code":"350825","name":"连城县"},{"code":"350881","name":"漳平市"}]},{"code":"3509","name":"宁德市","childs":[{"code":"350902","name":"蕉城区"},{"code":"350921","name":"霞浦县"},{"code":"350922","name":"古田县"},{"code":"350923","name":"屏南县"},{"code":"350924","name":"寿宁县"},{"code":"350925","name":"周宁县"},{"code":"350926","name":"柘荣县"},{"code":"350981","name":"福安市"},{"code":"350982","name":"福鼎市"}]}]},{"code":"36","name":"江西省","childs":[{"code":"3601","name":"南昌市","childs":[{"code":"360102","name":"东湖区"},{"code":"360103","name":"西湖区"},{"code":"360104","name":"青云谱区"},{"code":"360105","name":"湾里区"},{"code":"360111","name":"青山湖区"},{"code":"360112","name":"新建区"},{"code":"360121","name":"南昌县"},{"code":"360123","name":"安义县"},{"code":"360124","name":"进贤县"}]},{"code":"3602","name":"景德镇市","childs":[{"code":"360202","name":"昌江区"},{"code":"360203","name":"珠山区"},{"code":"360222","name":"浮梁县"},{"code":"360281","name":"乐平市"}]},{"code":"3603","name":"萍乡市","childs":[{"code":"360302","name":"安源区"},{"code":"360313","name":"湘东区"},{"code":"360321","name":"莲花县"},{"code":"360322","name":"上栗县"},{"code":"360323","name":"芦溪县"}]},{"code":"3604","name":"九江市","childs":[{"code":"360402","name":"濂溪区"},{"code":"360403","name":"浔阳区"},{"code":"360421","name":"九江县"},{"code":"360423","name":"武宁县"},{"code":"360424","name":"修水县"},{"code":"360425","name":"永修县"},{"code":"360426","name":"德安县"},{"code":"360428","name":"都昌县"},{"code":"360429","name":"湖口县"},{"code":"360430","name":"彭泽县"},{"code":"360481","name":"瑞昌市"},{"code":"360482","name":"共青城市"},{"code":"360483","name":"庐山市"}]},{"code":"3605","name":"新余市","childs":[{"code":"360502","name":"渝水区"},{"code":"360521","name":"分宜县"}]},{"code":"3606","name":"鹰潭市","childs":[{"code":"360602","name":"月湖区"},{"code":"360622","name":"余江县"},{"code":"360681","name":"贵溪市"}]},{"code":"3607","name":"赣州市","childs":[{"code":"360702","name":"章贡区"},{"code":"360703","name":"南康区"},{"code":"360721","name":"赣县"},{"code":"360722","name":"信丰县"},{"code":"360723","name":"大余县"},{"code":"360724","name":"上犹县"},{"code":"360725","name":"崇义县"},{"code":"360726","name":"安远县"},{"code":"360727","name":"龙南县"},{"code":"360728","name":"定南县"},{"code":"360729","name":"全南县"},{"code":"360730","name":"宁都县"},{"code":"360731","name":"于都县"},{"code":"360732","name":"兴国县"},{"code":"360733","name":"会昌县"},{"code":"360734","name":"寻乌县"},{"code":"360735","name":"石城县"},{"code":"360781","name":"瑞金市"}]},{"code":"3608","name":"吉安市","childs":[{"code":"360802","name":"吉州区"},{"code":"360803","name":"青原区"},{"code":"360821","name":"吉安县"},{"code":"360822","name":"吉水县"},{"code":"360823","name":"峡江县"},{"code":"360824","name":"新干县"},{"code":"360825","name":"永丰县"},{"code":"360826","name":"泰和县"},{"code":"360827","name":"遂川县"},{"code":"360828","name":"万安县"},{"code":"360829","name":"安福县"},{"code":"360830","name":"永新县"},{"code":"360881","name":"井冈山市"}]},{"code":"3609","name":"宜春市","childs":[{"code":"360902","name":"袁州区"},{"code":"360921","name":"奉新县"},{"code":"360922","name":"万载县"},{"code":"360923","name":"上高县"},{"code":"360924","name":"宜丰县"},{"code":"360925","name":"靖安县"},{"code":"360926","name":"铜鼓县"},{"code":"360981","name":"丰城市"},{"code":"360982","name":"樟树市"},{"code":"360983","name":"高安市"}]},{"code":"3610","name":"抚州市","childs":[{"code":"361002","name":"临川区"},{"code":"361021","name":"南城县"},{"code":"361022","name":"黎川县"},{"code":"361023","name":"南丰县"},{"code":"361024","name":"崇仁县"},{"code":"361025","name":"乐安县"},{"code":"361026","name":"宜黄县"},{"code":"361027","name":"金溪县"},{"code":"361028","name":"资溪县"},{"code":"361029","name":"东乡县"},{"code":"361030","name":"广昌县"}]},{"code":"3611","name":"上饶市","childs":[{"code":"361102","name":"信州区"},{"code":"361103","name":"广丰区"},{"code":"361121","name":"上饶县"},{"code":"361123","name":"玉山县"},{"code":"361124","name":"铅山县"},{"code":"361125","name":"横峰县"},{"code":"361126","name":"弋阳县"},{"code":"361127","name":"余干县"},{"code":"361128","name":"鄱阳县"},{"code":"361129","name":"万年县"},{"code":"361130","name":"婺源县"},{"code":"361181","name":"德兴市"}]}]},{"code":"37","name":"山东省","childs":[{"code":"3701","name":"济南市","childs":[{"code":"370102","name":"历下区"},{"code":"370103","name":"市中区"},{"code":"370104","name":"槐荫区"},{"code":"370105","name":"天桥区"},{"code":"370112","name":"历城区"},{"code":"370113","name":"长清区"},{"code":"370124","name":"平阴县"},{"code":"370125","name":"济阳县"},{"code":"370126","name":"商河县"},{"code":"370181","name":"章丘市"}]},{"code":"3702","name":"青岛市","childs":[{"code":"370202","name":"市南区"},{"code":"370203","name":"市北区"},{"code":"370211","name":"黄岛区"},{"code":"370212","name":"崂山区"},{"code":"370213","name":"李沧区"},{"code":"370214","name":"城阳区"},{"code":"370281","name":"胶州市"},{"code":"370282","name":"即墨市"},{"code":"370283","name":"平度市"},{"code":"370285","name":"莱西市"}]},{"code":"3703","name":"淄博市","childs":[{"code":"370302","name":"淄川区"},{"code":"370303","name":"张店区"},{"code":"370304","name":"博山区"},{"code":"370305","name":"临淄区"},{"code":"370306","name":"周村区"},{"code":"370321","name":"桓台县"},{"code":"370322","name":"高青县"},{"code":"370323","name":"沂源县"}]},{"code":"3704","name":"枣庄市","childs":[{"code":"370402","name":"市中区"},{"code":"370403","name":"薛城区"},{"code":"370404","name":"峄城区"},{"code":"370405","name":"台儿庄区"},{"code":"370406","name":"山亭区"},{"code":"370481","name":"滕州市"}]},{"code":"3705","name":"东营市","childs":[{"code":"370502","name":"东营区"},{"code":"370503","name":"河口区"},{"code":"370505","name":"垦利区"},{"code":"370522","name":"利津县"},{"code":"370523","name":"广饶县"}]},{"code":"3706","name":"烟台市","childs":[{"code":"370602","name":"芝罘区"},{"code":"370611","name":"福山区"},{"code":"370612","name":"牟平区"},{"code":"370613","name":"莱山区"},{"code":"370634","name":"长岛县"},{"code":"370681","name":"龙口市"},{"code":"370682","name":"莱阳市"},{"code":"370683","name":"莱州市"},{"code":"370684","name":"蓬莱市"},{"code":"370685","name":"招远市"},{"code":"370686","name":"栖霞市"},{"code":"370687","name":"海阳市"}]},{"code":"3707","name":"潍坊市","childs":[{"code":"370702","name":"潍城区"},{"code":"370703","name":"寒亭区"},{"code":"370704","name":"坊子区"},{"code":"370705","name":"奎文区"},{"code":"370724","name":"临朐县"},{"code":"370725","name":"昌乐县"},{"code":"370781","name":"青州市"},{"code":"370782","name":"诸城市"},{"code":"370783","name":"寿光市"},{"code":"370784","name":"安丘市"},{"code":"370785","name":"高密市"},{"code":"370786","name":"昌邑市"}]},{"code":"3708","name":"济宁市","childs":[{"code":"370811","name":"任城区"},{"code":"370812","name":"兖州区"},{"code":"370826","name":"微山县"},{"code":"370827","name":"鱼台县"},{"code":"370828","name":"金乡县"},{"code":"370829","name":"嘉祥县"},{"code":"370830","name":"汶上县"},{"code":"370831","name":"泗水县"},{"code":"370832","name":"梁山县"},{"code":"370881","name":"曲阜市"},{"code":"370883","name":"邹城市"}]},{"code":"3709","name":"泰安市","childs":[{"code":"370902","name":"泰山区"},{"code":"370911","name":"岱岳区"},{"code":"370921","name":"宁阳县"},{"code":"370923","name":"东平县"},{"code":"370982","name":"新泰市"},{"code":"370983","name":"肥城市"}]},{"code":"3710","name":"威海市","childs":[{"code":"371002","name":"环翠区"},{"code":"371003","name":"文登区"},{"code":"371082","name":"荣成市"},{"code":"371083","name":"乳山市"}]},{"code":"3711","name":"日照市","childs":[{"code":"371102","name":"东港区"},{"code":"371103","name":"岚山区"},{"code":"371121","name":"五莲县"},{"code":"371122","name":"莒县"}]},{"code":"3712","name":"莱芜市","childs":[{"code":"371202","name":"莱城区"},{"code":"371203","name":"钢城区"}]},{"code":"3713","name":"临沂市","childs":[{"code":"371302","name":"兰山区"},{"code":"371311","name":"罗庄区"},{"code":"371312","name":"河东区"},{"code":"371321","name":"沂南县"},{"code":"371322","name":"郯城县"},{"code":"371323","name":"沂水县"},{"code":"371324","name":"兰陵县"},{"code":"371325","name":"费县"},{"code":"371326","name":"平邑县"},{"code":"371327","name":"莒南县"},{"code":"371328","name":"蒙阴县"},{"code":"371329","name":"临沭县"}]},{"code":"3714","name":"德州市","childs":[{"code":"371402","name":"德城区"},{"code":"371403","name":"陵城区"},{"code":"371422","name":"宁津县"},{"code":"371423","name":"庆云县"},{"code":"371424","name":"临邑县"},{"code":"371425","name":"齐河县"},{"code":"371426","name":"平原县"},{"code":"371427","name":"夏津县"},{"code":"371428","name":"武城县"},{"code":"371481","name":"乐陵市"},{"code":"371482","name":"禹城市"}]},{"code":"3715","name":"聊城市","childs":[{"code":"371502","name":"东昌府区"},{"code":"371521","name":"阳谷县"},{"code":"371522","name":"莘县"},{"code":"371523","name":"茌平县"},{"code":"371524","name":"东阿县"},{"code":"371525","name":"冠县"},{"code":"371526","name":"高唐县"},{"code":"371581","name":"临清市"}]},{"code":"3716","name":"滨州市","childs":[{"code":"371602","name":"滨城区"},{"code":"371603","name":"沾化区"},{"code":"371621","name":"惠民县"},{"code":"371622","name":"阳信县"},{"code":"371623","name":"无棣县"},{"code":"371625","name":"博兴县"},{"code":"371626","name":"邹平县"}]},{"code":"3717","name":"菏泽市","childs":[{"code":"371702","name":"牡丹区"},{"code":"371703","name":"定陶区"},{"code":"371721","name":"曹县"},{"code":"371722","name":"单县"},{"code":"371723","name":"成武县"},{"code":"371724","name":"巨野县"},{"code":"371725","name":"郓城县"},{"code":"371726","name":"鄄城县"},{"code":"371728","name":"东明县"}]}]},{"code":"41","name":"河南省","childs":[{"code":"4101","name":"郑州市","childs":[{"code":"410102","name":"中原区"},{"code":"410103","name":"二七区"},{"code":"410104","name":"管城回族区"},{"code":"410105","name":"金水区"},{"code":"410106","name":"上街区"},{"code":"410108","name":"惠济区"},{"code":"410122","name":"中牟县"},{"code":"410181","name":"巩义市"},{"code":"410182","name":"荥阳市"},{"code":"410183","name":"新密市"},{"code":"410184","name":"新郑市"},{"code":"410185","name":"登封市"}]},{"code":"4102","name":"开封市","childs":[{"code":"410202","name":"龙亭区"},{"code":"410203","name":"顺河回族区"},{"code":"410204","name":"鼓楼区"},{"code":"410205","name":"禹王台区"},{"code":"410211","name":"金明区"},{"code":"410212","name":"祥符区"},{"code":"410221","name":"杞县"},{"code":"410222","name":"通许县"},{"code":"410223","name":"尉氏县"},{"code":"410225","name":"兰考县"}]},{"code":"4103","name":"洛阳市","childs":[{"code":"410302","name":"老城区"},{"code":"410303","name":"西工区"},{"code":"410304","name":"瀍河回族区"},{"code":"410305","name":"涧西区"},{"code":"410306","name":"吉利区"},{"code":"410311","name":"洛龙区"},{"code":"410322","name":"孟津县"},{"code":"410323","name":"新安县"},{"code":"410324","name":"栾川县"},{"code":"410325","name":"嵩县"},{"code":"410326","name":"汝阳县"},{"code":"410327","name":"宜阳县"},{"code":"410328","name":"洛宁县"},{"code":"410329","name":"伊川县"},{"code":"410381","name":"偃师市"}]},{"code":"4104","name":"平顶山市","childs":[{"code":"410402","name":"新华区"},{"code":"410403","name":"卫东区"},{"code":"410404","name":"石龙区"},{"code":"410411","name":"湛河区"},{"code":"410421","name":"宝丰县"},{"code":"410422","name":"叶县"},{"code":"410423","name":"鲁山县"},{"code":"410425","name":"郏县"},{"code":"410481","name":"舞钢市"},{"code":"410482","name":"汝州市"}]},{"code":"4105","name":"安阳市","childs":[{"code":"410502","name":"文峰区"},{"code":"410503","name":"北关区"},{"code":"410505","name":"殷都区"},{"code":"410506","name":"龙安区"},{"code":"410522","name":"安阳县"},{"code":"410523","name":"汤阴县"},{"code":"410526","name":"滑县"},{"code":"410527","name":"内黄县"},{"code":"410581","name":"林州市"}]},{"code":"4106","name":"鹤壁市","childs":[{"code":"410602","name":"鹤山区"},{"code":"410603","name":"山城区"},{"code":"410611","name":"淇滨区"},{"code":"410621","name":"浚县"},{"code":"410622","name":"淇县"}]},{"code":"4107","name":"新乡市","childs":[{"code":"410702","name":"红旗区"},{"code":"410703","name":"卫滨区"},{"code":"410704","name":"凤泉区"},{"code":"410711","name":"牧野区"},{"code":"410721","name":"新乡县"},{"code":"410724","name":"获嘉县"},{"code":"410725","name":"原阳县"},{"code":"410726","name":"延津县"},{"code":"410727","name":"封丘县"},{"code":"410728","name":"长垣县"},{"code":"410781","name":"卫辉市"},{"code":"410782","name":"辉县市"}]},{"code":"4108","name":"焦作市","childs":[{"code":"410802","name":"解放区"},{"code":"410803","name":"中站区"},{"code":"410804","name":"马村区"},{"code":"410811","name":"山阳区"},{"code":"410821","name":"修武县"},{"code":"410822","name":"博爱县"},{"code":"410823","name":"武陟县"},{"code":"410825","name":"温县"},{"code":"410882","name":"沁阳市"},{"code":"410883","name":"孟州市"}]},{"code":"4109","name":"濮阳市","childs":[{"code":"410902","name":"华龙区"},{"code":"410922","name":"清丰县"},{"code":"410923","name":"南乐县"},{"code":"410926","name":"范县"},{"code":"410927","name":"台前县"},{"code":"410928","name":"濮阳县"}]},{"code":"4110","name":"许昌市","childs":[{"code":"411002","name":"魏都区"},{"code":"411023","name":"许昌县"},{"code":"411024","name":"鄢陵县"},{"code":"411025","name":"襄城县"},{"code":"411081","name":"禹州市"},{"code":"411082","name":"长葛市"}]},{"code":"4111","name":"漯河市","childs":[{"code":"411102","name":"源汇区"},{"code":"411103","name":"郾城区"},{"code":"411104","name":"召陵区"},{"code":"411121","name":"舞阳县"},{"code":"411122","name":"临颍县"}]},{"code":"4112","name":"三门峡市","childs":[{"code":"411202","name":"湖滨区"},{"code":"411203","name":"陕州区"},{"code":"411221","name":"渑池县"},{"code":"411224","name":"卢氏县"},{"code":"411281","name":"义马市"},{"code":"411282","name":"灵宝市"}]},{"code":"4113","name":"南阳市","childs":[{"code":"411302","name":"宛城区"},{"code":"411303","name":"卧龙区"},{"code":"411321","name":"南召县"},{"code":"411322","name":"方城县"},{"code":"411323","name":"西峡县"},{"code":"411324","name":"镇平县"},{"code":"411325","name":"内乡县"},{"code":"411326","name":"淅川县"},{"code":"411327","name":"社旗县"},{"code":"411328","name":"唐河县"},{"code":"411329","name":"新野县"},{"code":"411330","name":"桐柏县"},{"code":"411381","name":"邓州市"}]},{"code":"4114","name":"商丘市","childs":[{"code":"411402","name":"梁园区"},{"code":"411403","name":"睢阳区"},{"code":"411421","name":"民权县"},{"code":"411422","name":"睢县"},{"code":"411423","name":"宁陵县"},{"code":"411424","name":"柘城县"},{"code":"411425","name":"虞城县"},{"code":"411426","name":"夏邑县"},{"code":"411481","name":"永城市"}]},{"code":"4115","name":"信阳市","childs":[{"code":"411502","name":"浉河区"},{"code":"411503","name":"平桥区"},{"code":"411521","name":"罗山县"},{"code":"411522","name":"光山县"},{"code":"411523","name":"新县"},{"code":"411524","name":"商城县"},{"code":"411525","name":"固始县"},{"code":"411526","name":"潢川县"},{"code":"411527","name":"淮滨县"},{"code":"411528","name":"息县"}]},{"code":"4116","name":"周口市","childs":[{"code":"411602","name":"川汇区"},{"code":"411621","name":"扶沟县"},{"code":"411622","name":"西华县"},{"code":"411623","name":"商水县"},{"code":"411624","name":"沈丘县"},{"code":"411625","name":"郸城县"},{"code":"411626","name":"淮阳县"},{"code":"411627","name":"太康县"},{"code":"411628","name":"鹿邑县"},{"code":"411681","name":"项城市"}]},{"code":"4117","name":"驻马店市","childs":[{"code":"411702","name":"驿城区"},{"code":"411721","name":"西平县"},{"code":"411722","name":"上蔡县"},{"code":"411723","name":"平舆县"},{"code":"411724","name":"正阳县"},{"code":"411725","name":"确山县"},{"code":"411726","name":"泌阳县"},{"code":"411727","name":"汝南县"},{"code":"411728","name":"遂平县"},{"code":"411729","name":"新蔡县"}]},{"code":"4190","name":"省直辖县级行政区划","childs":[{"code":"419001","name":"济源市"}]}]},{"code":"42","name":"湖北省","childs":[{"code":"4201","name":"武汉市","childs":[{"code":"420102","name":"江岸区"},{"code":"420103","name":"江汉区"},{"code":"420104","name":"硚口区"},{"code":"420105","name":"汉阳区"},{"code":"420106","name":"武昌区"},{"code":"420107","name":"青山区"},{"code":"420111","name":"洪山区"},{"code":"420112","name":"东西湖区"},{"code":"420113","name":"汉南区"},{"code":"420114","name":"蔡甸区"},{"code":"420115","name":"江夏区"},{"code":"420116","name":"黄陂区"},{"code":"420117","name":"新洲区"}]},{"code":"4202","name":"黄石市","childs":[{"code":"420202","name":"黄石港区"},{"code":"420203","name":"西塞山区"},{"code":"420204","name":"下陆区"},{"code":"420205","name":"铁山区"},{"code":"420222","name":"阳新县"},{"code":"420281","name":"大冶市"}]},{"code":"4203","name":"十堰市","childs":[{"code":"420302","name":"茅箭区"},{"code":"420303","name":"张湾区"},{"code":"420304","name":"郧阳区"},{"code":"420322","name":"郧西县"},{"code":"420323","name":"竹山县"},{"code":"420324","name":"竹溪县"},{"code":"420325","name":"房县"},{"code":"420381","name":"丹江口市"}]},{"code":"4205","name":"宜昌市","childs":[{"code":"420502","name":"西陵区"},{"code":"420503","name":"伍家岗区"},{"code":"420504","name":"点军区"},{"code":"420505","name":"猇亭区"},{"code":"420506","name":"夷陵区"},{"code":"420525","name":"远安县"},{"code":"420526","name":"兴山县"},{"code":"420527","name":"秭归县"},{"code":"420528","name":"长阳土家族自治县"},{"code":"420529","name":"五峰土家族自治县"},{"code":"420581","name":"宜都市"},{"code":"420582","name":"当阳市"},{"code":"420583","name":"枝江市"}]},{"code":"4206","name":"襄阳市","childs":[{"code":"420602","name":"襄城区"},{"code":"420606","name":"樊城区"},{"code":"420607","name":"襄州区"},{"code":"420624","name":"南漳县"},{"code":"420625","name":"谷城县"},{"code":"420626","name":"保康县"},{"code":"420682","name":"老河口市"},{"code":"420683","name":"枣阳市"},{"code":"420684","name":"宜城市"}]},{"code":"4207","name":"鄂州市","childs":[{"code":"420702","name":"梁子湖区"},{"code":"420703","name":"华容区"},{"code":"420704","name":"鄂城区"}]},{"code":"4208","name":"荆门市","childs":[{"code":"420802","name":"东宝区"},{"code":"420804","name":"掇刀区"},{"code":"420821","name":"京山县"},{"code":"420822","name":"沙洋县"},{"code":"420881","name":"钟祥市"}]},{"code":"4209","name":"孝感市","childs":[{"code":"420902","name":"孝南区"},{"code":"420921","name":"孝昌县"},{"code":"420922","name":"大悟县"},{"code":"420923","name":"云梦县"},{"code":"420981","name":"应城市"},{"code":"420982","name":"安陆市"},{"code":"420984","name":"汉川市"}]},{"code":"4210","name":"荆州市","childs":[{"code":"421002","name":"沙市区"},{"code":"421003","name":"荆州区"},{"code":"421022","name":"公安县"},{"code":"421023","name":"监利县"},{"code":"421024","name":"江陵县"},{"code":"421081","name":"石首市"},{"code":"421083","name":"洪湖市"},{"code":"421087","name":"松滋市"}]},{"code":"4211","name":"黄冈市","childs":[{"code":"421102","name":"黄州区"},{"code":"421121","name":"团风县"},{"code":"421122","name":"红安县"},{"code":"421123","name":"罗田县"},{"code":"421124","name":"英山县"},{"code":"421125","name":"浠水县"},{"code":"421126","name":"蕲春县"},{"code":"421127","name":"黄梅县"},{"code":"421181","name":"麻城市"},{"code":"421182","name":"武穴市"}]},{"code":"4212","name":"咸宁市","childs":[{"code":"421202","name":"咸安区"},{"code":"421221","name":"嘉鱼县"},{"code":"421222","name":"通城县"},{"code":"421223","name":"崇阳县"},{"code":"421224","name":"通山县"},{"code":"421281","name":"赤壁市"}]},{"code":"4213","name":"随州市","childs":[{"code":"421303","name":"曾都区"},{"code":"421321","name":"随县"},{"code":"421381","name":"广水市"}]},{"code":"4228","name":"恩施土家族苗族自治州","childs":[{"code":"422801","name":"恩施市"},{"code":"422802","name":"利川市"},{"code":"422822","name":"建始县"},{"code":"422823","name":"巴东县"},{"code":"422825","name":"宣恩县"},{"code":"422826","name":"咸丰县"},{"code":"422827","name":"来凤县"},{"code":"422828","name":"鹤峰县"}]},{"code":"4290","name":"省直辖县级行政区划","childs":[{"code":"429004","name":"仙桃市"},{"code":"429005","name":"潜江市"},{"code":"429006","name":"天门市"},{"code":"429021","name":"神农架林区"}]}]},{"code":"43","name":"湖南省","childs":[{"code":"4301","name":"长沙市","childs":[{"code":"430102","name":"芙蓉区"},{"code":"430103","name":"天心区"},{"code":"430104","name":"岳麓区"},{"code":"430105","name":"开福区"},{"code":"430111","name":"雨花区"},{"code":"430112","name":"望城区"},{"code":"430121","name":"长沙县"},{"code":"430124","name":"宁乡县"},{"code":"430181","name":"浏阳市"}]},{"code":"4302","name":"株洲市","childs":[{"code":"430202","name":"荷塘区"},{"code":"430203","name":"芦淞区"},{"code":"430204","name":"石峰区"},{"code":"430211","name":"天元区"},{"code":"430221","name":"株洲县"},{"code":"430223","name":"攸县"},{"code":"430224","name":"茶陵县"},{"code":"430225","name":"炎陵县"},{"code":"430281","name":"醴陵市"}]},{"code":"4303","name":"湘潭市","childs":[{"code":"430302","name":"雨湖区"},{"code":"430304","name":"岳塘区"},{"code":"430321","name":"湘潭县"},{"code":"430381","name":"湘乡市"},{"code":"430382","name":"韶山市"}]},{"code":"4304","name":"衡阳市","childs":[{"code":"430405","name":"珠晖区"},{"code":"430406","name":"雁峰区"},{"code":"430407","name":"石鼓区"},{"code":"430408","name":"蒸湘区"},{"code":"430412","name":"南岳区"},{"code":"430421","name":"衡阳县"},{"code":"430422","name":"衡南县"},{"code":"430423","name":"衡山县"},{"code":"430424","name":"衡东县"},{"code":"430426","name":"祁东县"},{"code":"430481","name":"耒阳市"},{"code":"430482","name":"常宁市"}]},{"code":"4305","name":"邵阳市","childs":[{"code":"430502","name":"双清区"},{"code":"430503","name":"大祥区"},{"code":"430511","name":"北塔区"},{"code":"430521","name":"邵东县"},{"code":"430522","name":"新邵县"},{"code":"430523","name":"邵阳县"},{"code":"430524","name":"隆回县"},{"code":"430525","name":"洞口县"},{"code":"430527","name":"绥宁县"},{"code":"430528","name":"新宁县"},{"code":"430529","name":"城步苗族自治县"},{"code":"430581","name":"武冈市"}]},{"code":"4306","name":"岳阳市","childs":[{"code":"430602","name":"岳阳楼区"},{"code":"430603","name":"云溪区"},{"code":"430611","name":"君山区"},{"code":"430621","name":"岳阳县"},{"code":"430623","name":"华容县"},{"code":"430624","name":"湘阴县"},{"code":"430626","name":"平江县"},{"code":"430681","name":"汨罗市"},{"code":"430682","name":"临湘市"}]},{"code":"4307","name":"常德市","childs":[{"code":"430702","name":"武陵区"},{"code":"430703","name":"鼎城区"},{"code":"430721","name":"安乡县"},{"code":"430722","name":"汉寿县"},{"code":"430723","name":"澧县"},{"code":"430724","name":"临澧县"},{"code":"430725","name":"桃源县"},{"code":"430726","name":"石门县"},{"code":"430781","name":"津市市"}]},{"code":"4308","name":"张家界市","childs":[{"code":"430802","name":"永定区"},{"code":"430811","name":"武陵源区"},{"code":"430821","name":"慈利县"},{"code":"430822","name":"桑植县"}]},{"code":"4309","name":"益阳市","childs":[{"code":"430902","name":"资阳区"},{"code":"430903","name":"赫山区"},{"code":"430921","name":"南县"},{"code":"430922","name":"桃江县"},{"code":"430923","name":"安化县"},{"code":"430981","name":"沅江市"}]},{"code":"4310","name":"郴州市","childs":[{"code":"431002","name":"北湖区"},{"code":"431003","name":"苏仙区"},{"code":"431021","name":"桂阳县"},{"code":"431022","name":"宜章县"},{"code":"431023","name":"永兴县"},{"code":"431024","name":"嘉禾县"},{"code":"431025","name":"临武县"},{"code":"431026","name":"汝城县"},{"code":"431027","name":"桂东县"},{"code":"431028","name":"安仁县"},{"code":"431081","name":"资兴市"}]},{"code":"4311","name":"永州市","childs":[{"code":"431102","name":"零陵区"},{"code":"431103","name":"冷水滩区"},{"code":"431121","name":"祁阳县"},{"code":"431122","name":"东安县"},{"code":"431123","name":"双牌县"},{"code":"431124","name":"道县"},{"code":"431125","name":"江永县"},{"code":"431126","name":"宁远县"},{"code":"431127","name":"蓝山县"},{"code":"431128","name":"新田县"},{"code":"431129","name":"江华瑶族自治县"}]},{"code":"4312","name":"怀化市","childs":[{"code":"431202","name":"鹤城区"},{"code":"431221","name":"中方县"},{"code":"431222","name":"沅陵县"},{"code":"431223","name":"辰溪县"},{"code":"431224","name":"溆浦县"},{"code":"431225","name":"会同县"},{"code":"431226","name":"麻阳苗族自治县"},{"code":"431227","name":"新晃侗族自治县"},{"code":"431228","name":"芷江侗族自治县"},{"code":"431229","name":"靖州苗族侗族自治县"},{"code":"431230","name":"通道侗族自治县"},{"code":"431281","name":"洪江市"}]},{"code":"4313","name":"娄底市","childs":[{"code":"431302","name":"娄星区"},{"code":"431321","name":"双峰县"},{"code":"431322","name":"新化县"},{"code":"431381","name":"冷水江市"},{"code":"431382","name":"涟源市"}]},{"code":"4331","name":"湘西土家族苗族自治州","childs":[{"code":"433101","name":"吉首市"},{"code":"433122","name":"泸溪县"},{"code":"433123","name":"凤凰县"},{"code":"433124","name":"花垣县"},{"code":"433125","name":"保靖县"},{"code":"433126","name":"古丈县"},{"code":"433127","name":"永顺县"},{"code":"433130","name":"龙山县"}]}]},{"code":"44","name":"广东省","childs":[{"code":"4401","name":"广州市","childs":[{"code":"440103","name":"荔湾区"},{"code":"440104","name":"越秀区"},{"code":"440105","name":"海珠区"},{"code":"440106","name":"天河区"},{"code":"440111","name":"白云区"},{"code":"440112","name":"黄埔区"},{"code":"440113","name":"番禺区"},{"code":"440114","name":"花都区"},{"code":"440115","name":"南沙区"},{"code":"440117","name":"从化区"},{"code":"440118","name":"增城区"}]},{"code":"4402","name":"韶关市","childs":[{"code":"440203","name":"武江区"},{"code":"440204","name":"浈江区"},{"code":"440205","name":"曲江区"},{"code":"440222","name":"始兴县"},{"code":"440224","name":"仁化县"},{"code":"440229","name":"翁源县"},{"code":"440232","name":"乳源瑶族自治县"},{"code":"440233","name":"新丰县"},{"code":"440281","name":"乐昌市"},{"code":"440282","name":"南雄市"}]},{"code":"4403","name":"深圳市","childs":[{"code":"440303","name":"罗湖区"},{"code":"440304","name":"福田区"},{"code":"440305","name":"南山区"},{"code":"440306","name":"宝安区"},{"code":"440307","name":"龙岗区"},{"code":"440308","name":"盐田区"}]},{"code":"4404","name":"珠海市","childs":[{"code":"440402","name":"香洲区"},{"code":"440403","name":"斗门区"},{"code":"440404","name":"金湾区"}]},{"code":"4405","name":"汕头市","childs":[{"code":"440507","name":"龙湖区"},{"code":"440511","name":"金平区"},{"code":"440512","name":"濠江区"},{"code":"440513","name":"潮阳区"},{"code":"440514","name":"潮南区"},{"code":"440515","name":"澄海区"},{"code":"440523","name":"南澳县"}]},{"code":"4406","name":"佛山市","childs":[{"code":"440604","name":"禅城区"},{"code":"440605","name":"南海区"},{"code":"440606","name":"顺德区"},{"code":"440607","name":"三水区"},{"code":"440608","name":"高明区"}]},{"code":"4407","name":"江门市","childs":[{"code":"440703","name":"蓬江区"},{"code":"440704","name":"江海区"},{"code":"440705","name":"新会区"},{"code":"440781","name":"台山市"},{"code":"440783","name":"开平市"},{"code":"440784","name":"鹤山市"},{"code":"440785","name":"恩平市"}]},{"code":"4408","name":"湛江市","childs":[{"code":"440802","name":"赤坎区"},{"code":"440803","name":"霞山区"},{"code":"440804","name":"坡头区"},{"code":"440811","name":"麻章区"},{"code":"440823","name":"遂溪县"},{"code":"440825","name":"徐闻县"},{"code":"440881","name":"廉江市"},{"code":"440882","name":"雷州市"},{"code":"440883","name":"吴川市"}]},{"code":"4409","name":"茂名市","childs":[{"code":"440902","name":"茂南区"},{"code":"440904","name":"电白区"},{"code":"440981","name":"高州市"},{"code":"440982","name":"化州市"},{"code":"440983","name":"信宜市"}]},{"code":"4412","name":"肇庆市","childs":[{"code":"441202","name":"端州区"},{"code":"441203","name":"鼎湖区"},{"code":"441204","name":"高要区"},{"code":"441223","name":"广宁县"},{"code":"441224","name":"怀集县"},{"code":"441225","name":"封开县"},{"code":"441226","name":"德庆县"},{"code":"441284","name":"四会市"}]},{"code":"4413","name":"惠州市","childs":[{"code":"441302","name":"惠城区"},{"code":"441303","name":"惠阳区"},{"code":"441322","name":"博罗县"},{"code":"441323","name":"惠东县"},{"code":"441324","name":"龙门县"}]},{"code":"4414","name":"梅州市","childs":[{"code":"441402","name":"梅江区"},{"code":"441403","name":"梅县区"},{"code":"441422","name":"大埔县"},{"code":"441423","name":"丰顺县"},{"code":"441424","name":"五华县"},{"code":"441426","name":"平远县"},{"code":"441427","name":"蕉岭县"},{"code":"441481","name":"兴宁市"}]},{"code":"4415","name":"汕尾市","childs":[{"code":"441502","name":"城区"},{"code":"441521","name":"海丰县"},{"code":"441523","name":"陆河县"},{"code":"441581","name":"陆丰市"}]},{"code":"4416","name":"河源市","childs":[{"code":"441602","name":"源城区"},{"code":"441621","name":"紫金县"},{"code":"441622","name":"龙川县"},{"code":"441623","name":"连平县"},{"code":"441624","name":"和平县"},{"code":"441625","name":"东源县"}]},{"code":"4417","name":"阳江市","childs":[{"code":"441702","name":"江城区"},{"code":"441704","name":"阳东区"},{"code":"441721","name":"阳西县"},{"code":"441781","name":"阳春市"}]},{"code":"4418","name":"清远市","childs":[{"code":"441802","name":"清城区"},{"code":"441803","name":"清新区"},{"code":"441821","name":"佛冈县"},{"code":"441823","name":"阳山县"},{"code":"441825","name":"连山壮族瑶族自治县"},{"code":"441826","name":"连南瑶族自治县"},{"code":"441881","name":"英德市"},{"code":"441882","name":"连州市"}]},{"code":"441900","name":"东莞市","childs":[{"code":"441900003","name":"东城街道办事处"},{"code":"441900004","name":"南城街道办事处"},{"code":"441900005","name":"万江街道办事处"},{"code":"441900006","name":"莞城街道办事处"},{"code":"441900101","name":"石碣镇"},{"code":"441900102","name":"石龙镇"},{"code":"441900103","name":"茶山镇"},{"code":"441900104","name":"石排镇"},{"code":"441900105","name":"企石镇"},{"code":"441900106","name":"横沥镇"},{"code":"441900107","name":"桥头镇"},{"code":"441900108","name":"谢岗镇"},{"code":"441900109","name":"东坑镇"},{"code":"441900110","name":"常平镇"},{"code":"441900111","name":"寮步镇"},{"code":"441900112","name":"樟木头镇"},{"code":"441900113","name":"大朗镇"},{"code":"441900114","name":"黄江镇"},{"code":"441900115","name":"清溪镇"},{"code":"441900116","name":"塘厦镇"},{"code":"441900117","name":"凤岗镇"},{"code":"441900118","name":"大岭山镇"},{"code":"441900119","name":"长安镇"},{"code":"441900121","name":"虎门镇"},{"code":"441900122","name":"厚街镇"},{"code":"441900123","name":"沙田镇"},{"code":"441900124","name":"道滘镇"},{"code":"441900125","name":"洪梅镇"},{"code":"441900126","name":"麻涌镇"},{"code":"441900127","name":"望牛墩镇"},{"code":"441900128","name":"中堂镇"},{"code":"441900129","name":"高埗镇"},{"code":"441900401","name":"松山湖管委会"},{"code":"441900402","name":"虎门港管委会"},{"code":"441900403","name":"东莞生态园"}]},{"code":"442000","name":"中山市","childs":[{"code":"442000001","name":"石岐区街道办事处"},{"code":"442000002","name":"东区街道办事处"},{"code":"442000003","name":"火炬开发区街道办事处"},{"code":"442000004","name":"西区街道办事处"},{"code":"442000005","name":"南区街道办事处"},{"code":"442000006","name":"五桂山街道办事处"},{"code":"442000100","name":"小榄镇"},{"code":"442000101","name":"黄圃镇"},{"code":"442000102","name":"民众镇"},{"code":"442000103","name":"东凤镇"},{"code":"442000104","name":"东升镇"},{"code":"442000105","name":"古镇镇"},{"code":"442000106","name":"沙溪镇"},{"code":"442000107","name":"坦洲镇"},{"code":"442000108","name":"港口镇"},{"code":"442000109","name":"三角镇"},{"code":"442000110","name":"横栏镇"},{"code":"442000111","name":"南头镇"},{"code":"442000112","name":"阜沙镇"},{"code":"442000113","name":"南朗镇"},{"code":"442000114","name":"三乡镇"},{"code":"442000115","name":"板芙镇"},{"code":"442000116","name":"大涌镇"},{"code":"442000117","name":"神湾镇"}]},{"code":"4451","name":"潮州市","childs":[{"code":"445102","name":"湘桥区"},{"code":"445103","name":"潮安区"},{"code":"445122","name":"饶平县"}]},{"code":"4452","name":"揭阳市","childs":[{"code":"445202","name":"榕城区"},{"code":"445203","name":"揭东区"},{"code":"445222","name":"揭西县"},{"code":"445224","name":"惠来县"},{"code":"445281","name":"普宁市"}]},{"code":"4453","name":"云浮市","childs":[{"code":"445302","name":"云城区"},{"code":"445303","name":"云安区"},{"code":"445321","name":"新兴县"},{"code":"445322","name":"郁南县"},{"code":"445381","name":"罗定市"}]}]},{"code":"45","name":"广西壮族自治区","childs":[{"code":"4501","name":"南宁市","childs":[{"code":"450102","name":"兴宁区"},{"code":"450103","name":"青秀区"},{"code":"450105","name":"江南区"},{"code":"450107","name":"西乡塘区"},{"code":"450108","name":"良庆区"},{"code":"450109","name":"邕宁区"},{"code":"450110","name":"武鸣区"},{"code":"450123","name":"隆安县"},{"code":"450124","name":"马山县"},{"code":"450125","name":"上林县"},{"code":"450126","name":"宾阳县"},{"code":"450127","name":"横县"}]},{"code":"4502","name":"柳州市","childs":[{"code":"450202","name":"城中区"},{"code":"450203","name":"鱼峰区"},{"code":"450204","name":"柳南区"},{"code":"450205","name":"柳北区"},{"code":"450206","name":"柳江区"},{"code":"450222","name":"柳城县"},{"code":"450223","name":"鹿寨县"},{"code":"450224","name":"融安县"},{"code":"450225","name":"融水苗族自治县"},{"code":"450226","name":"三江侗族自治县"}]},{"code":"4503","name":"桂林市","childs":[{"code":"450302","name":"秀峰区"},{"code":"450303","name":"叠彩区"},{"code":"450304","name":"象山区"},{"code":"450305","name":"七星区"},{"code":"450311","name":"雁山区"},{"code":"450312","name":"临桂区"},{"code":"450321","name":"阳朔县"},{"code":"450323","name":"灵川县"},{"code":"450324","name":"全州县"},{"code":"450325","name":"兴安县"},{"code":"450326","name":"永福县"},{"code":"450327","name":"灌阳县"},{"code":"450328","name":"龙胜各族自治县"},{"code":"450329","name":"资源县"},{"code":"450330","name":"平乐县"},{"code":"450331","name":"荔浦县"},{"code":"450332","name":"恭城瑶族自治县"}]},{"code":"4504","name":"梧州市","childs":[{"code":"450403","name":"万秀区"},{"code":"450405","name":"长洲区"},{"code":"450406","name":"龙圩区"},{"code":"450421","name":"苍梧县"},{"code":"450422","name":"藤县"},{"code":"450423","name":"蒙山县"},{"code":"450481","name":"岑溪市"}]},{"code":"4505","name":"北海市","childs":[{"code":"450502","name":"海城区"},{"code":"450503","name":"银海区"},{"code":"450512","name":"铁山港区"},{"code":"450521","name":"合浦县"}]},{"code":"4506","name":"防城港市","childs":[{"code":"450602","name":"港口区"},{"code":"450603","name":"防城区"},{"code":"450621","name":"上思县"},{"code":"450681","name":"东兴市"}]},{"code":"4507","name":"钦州市","childs":[{"code":"450702","name":"钦南区"},{"code":"450703","name":"钦北区"},{"code":"450721","name":"灵山县"},{"code":"450722","name":"浦北县"}]},{"code":"4508","name":"贵港市","childs":[{"code":"450802","name":"港北区"},{"code":"450803","name":"港南区"},{"code":"450804","name":"覃塘区"},{"code":"450821","name":"平南县"},{"code":"450881","name":"桂平市"}]},{"code":"4509","name":"玉林市","childs":[{"code":"450902","name":"玉州区"},{"code":"450903","name":"福绵区"},{"code":"450921","name":"容县"},{"code":"450922","name":"陆川县"},{"code":"450923","name":"博白县"},{"code":"450924","name":"兴业县"},{"code":"450981","name":"北流市"}]},{"code":"4510","name":"百色市","childs":[{"code":"451002","name":"右江区"},{"code":"451021","name":"田阳县"},{"code":"451022","name":"田东县"},{"code":"451023","name":"平果县"},{"code":"451024","name":"德保县"},{"code":"451026","name":"那坡县"},{"code":"451027","name":"凌云县"},{"code":"451028","name":"乐业县"},{"code":"451029","name":"田林县"},{"code":"451030","name":"西林县"},{"code":"451031","name":"隆林各族自治县"},{"code":"451081","name":"靖西市"}]},{"code":"4511","name":"贺州市","childs":[{"code":"451102","name":"八步区"},{"code":"451103","name":"平桂区"},{"code":"451121","name":"昭平县"},{"code":"451122","name":"钟山县"},{"code":"451123","name":"富川瑶族自治县"}]},{"code":"4512","name":"河池市","childs":[{"code":"451202","name":"金城江区"},{"code":"451221","name":"南丹县"},{"code":"451222","name":"天峨县"},{"code":"451223","name":"凤山县"},{"code":"451224","name":"东兰县"},{"code":"451225","name":"罗城仫佬族自治县"},{"code":"451226","name":"环江毛南族自治县"},{"code":"451227","name":"巴马瑶族自治县"},{"code":"451228","name":"都安瑶族自治县"},{"code":"451229","name":"大化瑶族自治县"},{"code":"451281","name":"宜州市"}]},{"code":"4513","name":"来宾市","childs":[{"code":"451302","name":"兴宾区"},{"code":"451321","name":"忻城县"},{"code":"451322","name":"象州县"},{"code":"451323","name":"武宣县"},{"code":"451324","name":"金秀瑶族自治县"},{"code":"451381","name":"合山市"}]},{"code":"4514","name":"崇左市","childs":[{"code":"451402","name":"江州区"},{"code":"451421","name":"扶绥县"},{"code":"451422","name":"宁明县"},{"code":"451423","name":"龙州县"},{"code":"451424","name":"大新县"},{"code":"451425","name":"天等县"},{"code":"451481","name":"凭祥市"}]}]},{"code":"46","name":"海南省","childs":[{"code":"4601","name":"海口市","childs":[{"code":"460105","name":"秀英区"},{"code":"460106","name":"龙华区"},{"code":"460107","name":"琼山区"},{"code":"460108","name":"美兰区"}]},{"code":"4602","name":"三亚市","childs":[{"code":"460202","name":"海棠区"},{"code":"460203","name":"吉阳区"},{"code":"460204","name":"天涯区"},{"code":"460205","name":"崖州区"}]},{"code":"4603","name":"三沙市","childs":[{"code":"460321","name":"西沙群岛"},{"code":"460322","name":"南沙群岛"},{"code":"460323","name":"中沙群岛的岛礁及其海域"}]},{"code":"460400","name":"儋州市","childs":[{"code":"460400100","name":"那大镇"},{"code":"460400101","name":"和庆镇"},{"code":"460400102","name":"南丰镇"},{"code":"460400103","name":"大成镇"},{"code":"460400104","name":"雅星镇"},{"code":"460400105","name":"兰洋镇"},{"code":"460400106","name":"光村镇"},{"code":"460400107","name":"木棠镇"},{"code":"460400108","name":"海头镇"},{"code":"460400109","name":"峨蔓镇"},{"code":"460400110","name":"三都镇"},{"code":"460400111","name":"王五镇"},{"code":"460400112","name":"白马井镇"},{"code":"460400113","name":"中和镇"},{"code":"460400114","name":"排浦镇"},{"code":"460400115","name":"东成镇"},{"code":"460400116","name":"新州镇"},{"code":"460400400","name":"国营西培农场"},{"code":"460400404","name":"国营西联农场"},{"code":"460400405","name":"国营蓝洋农场"},{"code":"460400407","name":"国营八一农场"},{"code":"460400499","name":"洋浦经济开发区"},{"code":"460400500","name":"华南热作学院"}]},{"code":"4690","name":"省直辖县级行政区划","childs":[{"code":"469001","name":"五指山市"},{"code":"469002","name":"琼海市"},{"code":"469005","name":"文昌市"},{"code":"469006","name":"万宁市"},{"code":"469007","name":"东方市"},{"code":"469021","name":"定安县"},{"code":"469022","name":"屯昌县"},{"code":"469023","name":"澄迈县"},{"code":"469024","name":"临高县"},{"code":"469025","name":"白沙黎族自治县"},{"code":"469026","name":"昌江黎族自治县"},{"code":"469027","name":"乐东黎族自治县"},{"code":"469028","name":"陵水黎族自治县"},{"code":"469029","name":"保亭黎族苗族自治县"},{"code":"469030","name":"琼中黎族苗族自治县"}]}]},{"code":"50","name":"重庆市","childs":[{"code":"5001","name":"市辖区","childs":[{"code":"500101","name":"万州区"},{"code":"500102","name":"涪陵区"},{"code":"500103","name":"渝中区"},{"code":"500104","name":"大渡口区"},{"code":"500105","name":"江北区"},{"code":"500106","name":"沙坪坝区"},{"code":"500107","name":"九龙坡区"},{"code":"500108","name":"南岸区"},{"code":"500109","name":"北碚区"},{"code":"500110","name":"綦江区"},{"code":"500111","name":"大足区"},{"code":"500112","name":"渝北区"},{"code":"500113","name":"巴南区"},{"code":"500114","name":"黔江区"},{"code":"500115","name":"长寿区"},{"code":"500116","name":"江津区"},{"code":"500117","name":"合川区"},{"code":"500118","name":"永川区"},{"code":"500119","name":"南川区"},{"code":"500120","name":"璧山区"},{"code":"500151","name":"铜梁区"},{"code":"500152","name":"潼南区"},{"code":"500153","name":"荣昌区"},{"code":"500154","name":"开州区"}]},{"code":"5002","name":"县","childs":[{"code":"500228","name":"梁平县"},{"code":"500229","name":"城口县"},{"code":"500230","name":"丰都县"},{"code":"500231","name":"垫江县"},{"code":"500232","name":"武隆县"},{"code":"500233","name":"忠县"},{"code":"500235","name":"云阳县"},{"code":"500236","name":"奉节县"},{"code":"500237","name":"巫山县"},{"code":"500238","name":"巫溪县"},{"code":"500240","name":"石柱土家族自治县"},{"code":"500241","name":"秀山土家族苗族自治县"},{"code":"500242","name":"酉阳土家族苗族自治县"},{"code":"500243","name":"彭水苗族土家族自治县"}]}]},{"code":"51","name":"四川省","childs":[{"code":"5101","name":"成都市","childs":[{"code":"510104","name":"锦江区"},{"code":"510105","name":"青羊区"},{"code":"510106","name":"金牛区"},{"code":"510107","name":"武侯区"},{"code":"510108","name":"成华区"},{"code":"510112","name":"龙泉驿区"},{"code":"510113","name":"青白江区"},{"code":"510114","name":"新都区"},{"code":"510115","name":"温江区"},{"code":"510116","name":"双流区"},{"code":"510121","name":"金堂县"},{"code":"510124","name":"郫县"},{"code":"510129","name":"大邑县"},{"code":"510131","name":"蒲江县"},{"code":"510132","name":"新津县"},{"code":"510181","name":"都江堰市"},{"code":"510182","name":"彭州市"},{"code":"510183","name":"邛崃市"},{"code":"510184","name":"崇州市"},{"code":"510185","name":"简阳市"}]},{"code":"5103","name":"自贡市","childs":[{"code":"510302","name":"自流井区"},{"code":"510303","name":"贡井区"},{"code":"510304","name":"大安区"},{"code":"510311","name":"沿滩区"},{"code":"510321","name":"荣县"},{"code":"510322","name":"富顺县"}]},{"code":"5104","name":"攀枝花市","childs":[{"code":"510402","name":"东区"},{"code":"510403","name":"西区"},{"code":"510411","name":"仁和区"},{"code":"510421","name":"米易县"},{"code":"510422","name":"盐边县"}]},{"code":"5105","name":"泸州市","childs":[{"code":"510502","name":"江阳区"},{"code":"510503","name":"纳溪区"},{"code":"510504","name":"龙马潭区"},{"code":"510521","name":"泸县"},{"code":"510522","name":"合江县"},{"code":"510524","name":"叙永县"},{"code":"510525","name":"古蔺县"}]},{"code":"5106","name":"德阳市","childs":[{"code":"510603","name":"旌阳区"},{"code":"510623","name":"中江县"},{"code":"510626","name":"罗江县"},{"code":"510681","name":"广汉市"},{"code":"510682","name":"什邡市"},{"code":"510683","name":"绵竹市"}]},{"code":"5107","name":"绵阳市","childs":[{"code":"510703","name":"涪城区"},{"code":"510704","name":"游仙区"},{"code":"510705","name":"安州区"},{"code":"510722","name":"三台县"},{"code":"510723","name":"盐亭县"},{"code":"510725","name":"梓潼县"},{"code":"510726","name":"北川羌族自治县"},{"code":"510727","name":"平武县"},{"code":"510781","name":"江油市"}]},{"code":"5108","name":"广元市","childs":[{"code":"510802","name":"利州区"},{"code":"510811","name":"昭化区"},{"code":"510812","name":"朝天区"},{"code":"510821","name":"旺苍县"},{"code":"510822","name":"青川县"},{"code":"510823","name":"剑阁县"},{"code":"510824","name":"苍溪县"}]},{"code":"5109","name":"遂宁市","childs":[{"code":"510903","name":"船山区"},{"code":"510904","name":"安居区"},{"code":"510921","name":"蓬溪县"},{"code":"510922","name":"射洪县"},{"code":"510923","name":"大英县"}]},{"code":"5110","name":"内江市","childs":[{"code":"511002","name":"市中区"},{"code":"511011","name":"东兴区"},{"code":"511024","name":"威远县"},{"code":"511025","name":"资中县"},{"code":"511028","name":"隆昌县"}]},{"code":"5111","name":"乐山市","childs":[{"code":"511102","name":"市中区"},{"code":"511111","name":"沙湾区"},{"code":"511112","name":"五通桥区"},{"code":"511113","name":"金口河区"},{"code":"511123","name":"犍为县"},{"code":"511124","name":"井研县"},{"code":"511126","name":"夹江县"},{"code":"511129","name":"沐川县"},{"code":"511132","name":"峨边彝族自治县"},{"code":"511133","name":"马边彝族自治县"},{"code":"511181","name":"峨眉山市"}]},{"code":"5113","name":"南充市","childs":[{"code":"511302","name":"顺庆区"},{"code":"511303","name":"高坪区"},{"code":"511304","name":"嘉陵区"},{"code":"511321","name":"南部县"},{"code":"511322","name":"营山县"},{"code":"511323","name":"蓬安县"},{"code":"511324","name":"仪陇县"},{"code":"511325","name":"西充县"},{"code":"511381","name":"阆中市"}]},{"code":"5114","name":"眉山市","childs":[{"code":"511402","name":"东坡区"},{"code":"511403","name":"彭山区"},{"code":"511421","name":"仁寿县"},{"code":"511423","name":"洪雅县"},{"code":"511424","name":"丹棱县"},{"code":"511425","name":"青神县"}]},{"code":"5115","name":"宜宾市","childs":[{"code":"511502","name":"翠屏区"},{"code":"511503","name":"南溪区"},{"code":"511521","name":"宜宾县"},{"code":"511523","name":"江安县"},{"code":"511524","name":"长宁县"},{"code":"511525","name":"高县"},{"code":"511526","name":"珙县"},{"code":"511527","name":"筠连县"},{"code":"511528","name":"兴文县"},{"code":"511529","name":"屏山县"}]},{"code":"5116","name":"广安市","childs":[{"code":"511602","name":"广安区"},{"code":"511603","name":"前锋区"},{"code":"511621","name":"岳池县"},{"code":"511622","name":"武胜县"},{"code":"511623","name":"邻水县"},{"code":"511681","name":"华蓥市"}]},{"code":"5117","name":"达州市","childs":[{"code":"511702","name":"通川区"},{"code":"511703","name":"达川区"},{"code":"511722","name":"宣汉县"},{"code":"511723","name":"开江县"},{"code":"511724","name":"大竹县"},{"code":"511725","name":"渠县"},{"code":"511781","name":"万源市"}]},{"code":"5118","name":"雅安市","childs":[{"code":"511802","name":"雨城区"},{"code":"511803","name":"名山区"},{"code":"511822","name":"荥经县"},{"code":"511823","name":"汉源县"},{"code":"511824","name":"石棉县"},{"code":"511825","name":"天全县"},{"code":"511826","name":"芦山县"},{"code":"511827","name":"宝兴县"}]},{"code":"5119","name":"巴中市","childs":[{"code":"511902","name":"巴州区"},{"code":"511903","name":"恩阳区"},{"code":"511921","name":"通江县"},{"code":"511922","name":"南江县"},{"code":"511923","name":"平昌县"}]},{"code":"5120","name":"资阳市","childs":[{"code":"512002","name":"雁江区"},{"code":"512021","name":"安岳县"},{"code":"512022","name":"乐至县"}]},{"code":"5132","name":"阿坝藏族羌族自治州","childs":[{"code":"513201","name":"马尔康市"},{"code":"513221","name":"汶川县"},{"code":"513222","name":"理县"},{"code":"513223","name":"茂县"},{"code":"513224","name":"松潘县"},{"code":"513225","name":"九寨沟县"},{"code":"513226","name":"金川县"},{"code":"513227","name":"小金县"},{"code":"513228","name":"黑水县"},{"code":"513230","name":"壤塘县"},{"code":"513231","name":"阿坝县"},{"code":"513232","name":"若尔盖县"},{"code":"513233","name":"红原县"}]},{"code":"5133","name":"甘孜藏族自治州","childs":[{"code":"513301","name":"康定市"},{"code":"513322","name":"泸定县"},{"code":"513323","name":"丹巴县"},{"code":"513324","name":"九龙县"},{"code":"513325","name":"雅江县"},{"code":"513326","name":"道孚县"},{"code":"513327","name":"炉霍县"},{"code":"513328","name":"甘孜县"},{"code":"513329","name":"新龙县"},{"code":"513330","name":"德格县"},{"code":"513331","name":"白玉县"},{"code":"513332","name":"石渠县"},{"code":"513333","name":"色达县"},{"code":"513334","name":"理塘县"},{"code":"513335","name":"巴塘县"},{"code":"513336","name":"乡城县"},{"code":"513337","name":"稻城县"},{"code":"513338","name":"得荣县"}]},{"code":"5134","name":"凉山彝族自治州","childs":[{"code":"513401","name":"西昌市"},{"code":"513422","name":"木里藏族自治县"},{"code":"513423","name":"盐源县"},{"code":"513424","name":"德昌县"},{"code":"513425","name":"会理县"},{"code":"513426","name":"会东县"},{"code":"513427","name":"宁南县"},{"code":"513428","name":"普格县"},{"code":"513429","name":"布拖县"},{"code":"513430","name":"金阳县"},{"code":"513431","name":"昭觉县"},{"code":"513432","name":"喜德县"},{"code":"513433","name":"冕宁县"},{"code":"513434","name":"越西县"},{"code":"513435","name":"甘洛县"},{"code":"513436","name":"美姑县"},{"code":"513437","name":"雷波县"}]}]},{"code":"52","name":"贵州省","childs":[{"code":"5201","name":"贵阳市","childs":[{"code":"520102","name":"南明区"},{"code":"520103","name":"云岩区"},{"code":"520111","name":"花溪区"},{"code":"520112","name":"乌当区"},{"code":"520113","name":"白云区"},{"code":"520115","name":"观山湖区"},{"code":"520121","name":"开阳县"},{"code":"520122","name":"息烽县"},{"code":"520123","name":"修文县"},{"code":"520181","name":"清镇市"}]},{"code":"5202","name":"六盘水市","childs":[{"code":"520201","name":"钟山区"},{"code":"520203","name":"六枝特区"},{"code":"520221","name":"水城县"},{"code":"520222","name":"盘县"}]},{"code":"5203","name":"遵义市","childs":[{"code":"520302","name":"红花岗区"},{"code":"520303","name":"汇川区"},{"code":"520304","name":"播州区"},{"code":"520322","name":"桐梓县"},{"code":"520323","name":"绥阳县"},{"code":"520324","name":"正安县"},{"code":"520325","name":"道真仡佬族苗族自治县"},{"code":"520326","name":"务川仡佬族苗族自治县"},{"code":"520327","name":"凤冈县"},{"code":"520328","name":"湄潭县"},{"code":"520329","name":"余庆县"},{"code":"520330","name":"习水县"},{"code":"520381","name":"赤水市"},{"code":"520382","name":"仁怀市"}]},{"code":"5204","name":"安顺市","childs":[{"code":"520402","name":"西秀区"},{"code":"520403","name":"平坝区"},{"code":"520422","name":"普定县"},{"code":"520423","name":"镇宁布依族苗族自治县"},{"code":"520424","name":"关岭布依族苗族自治县"},{"code":"520425","name":"紫云苗族布依族自治县"}]},{"code":"5205","name":"毕节市","childs":[{"code":"520502","name":"七星关区"},{"code":"520521","name":"大方县"},{"code":"520522","name":"黔西县"},{"code":"520523","name":"金沙县"},{"code":"520524","name":"织金县"},{"code":"520525","name":"纳雍县"},{"code":"520526","name":"威宁彝族回族苗族自治县"},{"code":"520527","name":"赫章县"}]},{"code":"5206","name":"铜仁市","childs":[{"code":"520602","name":"碧江区"},{"code":"520603","name":"万山区"},{"code":"520621","name":"江口县"},{"code":"520622","name":"玉屏侗族自治县"},{"code":"520623","name":"石阡县"},{"code":"520624","name":"思南县"},{"code":"520625","name":"印江土家族苗族自治县"},{"code":"520626","name":"德江县"},{"code":"520627","name":"沿河土家族自治县"},{"code":"520628","name":"松桃苗族自治县"}]},{"code":"5223","name":"黔西南布依族苗族自治州","childs":[{"code":"522301","name":"兴义市"},{"code":"522322","name":"兴仁县"},{"code":"522323","name":"普安县"},{"code":"522324","name":"晴隆县"},{"code":"522325","name":"贞丰县"},{"code":"522326","name":"望谟县"},{"code":"522327","name":"册亨县"},{"code":"522328","name":"安龙县"}]},{"code":"5226","name":"黔东南苗族侗族自治州","childs":[{"code":"522601","name":"凯里市"},{"code":"522622","name":"黄平县"},{"code":"522623","name":"施秉县"},{"code":"522624","name":"三穗县"},{"code":"522625","name":"镇远县"},{"code":"522626","name":"岑巩县"},{"code":"522627","name":"天柱县"},{"code":"522628","name":"锦屏县"},{"code":"522629","name":"剑河县"},{"code":"522630","name":"台江县"},{"code":"522631","name":"黎平县"},{"code":"522632","name":"榕江县"},{"code":"522633","name":"从江县"},{"code":"522634","name":"雷山县"},{"code":"522635","name":"麻江县"},{"code":"522636","name":"丹寨县"}]},{"code":"5227","name":"黔南布依族苗族自治州","childs":[{"code":"522701","name":"都匀市"},{"code":"522702","name":"福泉市"},{"code":"522722","name":"荔波县"},{"code":"522723","name":"贵定县"},{"code":"522725","name":"瓮安县"},{"code":"522726","name":"独山县"},{"code":"522727","name":"平塘县"},{"code":"522728","name":"罗甸县"},{"code":"522729","name":"长顺县"},{"code":"522730","name":"龙里县"},{"code":"522731","name":"惠水县"},{"code":"522732","name":"三都水族自治县"}]}]},{"code":"53","name":"云南省","childs":[{"code":"5301","name":"昆明市","childs":[{"code":"530102","name":"五华区"},{"code":"530103","name":"盘龙区"},{"code":"530111","name":"官渡区"},{"code":"530112","name":"西山区"},{"code":"530113","name":"东川区"},{"code":"530114","name":"呈贡区"},{"code":"530122","name":"晋宁县"},{"code":"530124","name":"富民县"},{"code":"530125","name":"宜良县"},{"code":"530126","name":"石林彝族自治县"},{"code":"530127","name":"嵩明县"},{"code":"530128","name":"禄劝彝族苗族自治县"},{"code":"530129","name":"寻甸回族彝族自治县"},{"code":"530181","name":"安宁市"}]},{"code":"5303","name":"曲靖市","childs":[{"code":"530302","name":"麒麟区"},{"code":"530303","name":"沾益区"},{"code":"530321","name":"马龙县"},{"code":"530322","name":"陆良县"},{"code":"530323","name":"师宗县"},{"code":"530324","name":"罗平县"},{"code":"530325","name":"富源县"},{"code":"530326","name":"会泽县"},{"code":"530381","name":"宣威市"}]},{"code":"5304","name":"玉溪市","childs":[{"code":"530402","name":"红塔区"},{"code":"530403","name":"江川区"},{"code":"530422","name":"澄江县"},{"code":"530423","name":"通海县"},{"code":"530424","name":"华宁县"},{"code":"530425","name":"易门县"},{"code":"530426","name":"峨山彝族自治县"},{"code":"530427","name":"新平彝族傣族自治县"},{"code":"530428","name":"元江哈尼族彝族傣族自治县"}]},{"code":"5305","name":"保山市","childs":[{"code":"530502","name":"隆阳区"},{"code":"530521","name":"施甸县"},{"code":"530523","name":"龙陵县"},{"code":"530524","name":"昌宁县"},{"code":"530581","name":"腾冲市"}]},{"code":"5306","name":"昭通市","childs":[{"code":"530602","name":"昭阳区"},{"code":"530621","name":"鲁甸县"},{"code":"530622","name":"巧家县"},{"code":"530623","name":"盐津县"},{"code":"530624","name":"大关县"},{"code":"530625","name":"永善县"},{"code":"530626","name":"绥江县"},{"code":"530627","name":"镇雄县"},{"code":"530628","name":"彝良县"},{"code":"530629","name":"威信县"},{"code":"530630","name":"水富县"}]},{"code":"5307","name":"丽江市","childs":[{"code":"530702","name":"古城区"},{"code":"530721","name":"玉龙纳西族自治县"},{"code":"530722","name":"永胜县"},{"code":"530723","name":"华坪县"},{"code":"530724","name":"宁蒗彝族自治县"}]},{"code":"5308","name":"普洱市","childs":[{"code":"530802","name":"思茅区"},{"code":"530821","name":"宁洱哈尼族彝族自治县"},{"code":"530822","name":"墨江哈尼族自治县"},{"code":"530823","name":"景东彝族自治县"},{"code":"530824","name":"景谷傣族彝族自治县"},{"code":"530825","name":"镇沅彝族哈尼族拉祜族自治县"},{"code":"530826","name":"江城哈尼族彝族自治县"},{"code":"530827","name":"孟连傣族拉祜族佤族自治县"},{"code":"530828","name":"澜沧拉祜族自治县"},{"code":"530829","name":"西盟佤族自治县"}]},{"code":"5309","name":"临沧市","childs":[{"code":"530902","name":"临翔区"},{"code":"530921","name":"凤庆县"},{"code":"530922","name":"云县"},{"code":"530923","name":"永德县"},{"code":"530924","name":"镇康县"},{"code":"530925","name":"双江拉祜族佤族布朗族傣族自治县"},{"code":"530926","name":"耿马傣族佤族自治县"},{"code":"530927","name":"沧源佤族自治县"}]},{"code":"5323","name":"楚雄彝族自治州","childs":[{"code":"532301","name":"楚雄市"},{"code":"532322","name":"双柏县"},{"code":"532323","name":"牟定县"},{"code":"532324","name":"南华县"},{"code":"532325","name":"姚安县"},{"code":"532326","name":"大姚县"},{"code":"532327","name":"永仁县"},{"code":"532328","name":"元谋县"},{"code":"532329","name":"武定县"},{"code":"532331","name":"禄丰县"}]},{"code":"5325","name":"红河哈尼族彝族自治州","childs":[{"code":"532501","name":"个旧市"},{"code":"532502","name":"开远市"},{"code":"532503","name":"蒙自市"},{"code":"532504","name":"弥勒市"},{"code":"532523","name":"屏边苗族自治县"},{"code":"532524","name":"建水县"},{"code":"532525","name":"石屏县"},{"code":"532527","name":"泸西县"},{"code":"532528","name":"元阳县"},{"code":"532529","name":"红河县"},{"code":"532530","name":"金平苗族瑶族傣族自治县"},{"code":"532531","name":"绿春县"},{"code":"532532","name":"河口瑶族自治县"}]},{"code":"5326","name":"文山壮族苗族自治州","childs":[{"code":"532601","name":"文山市"},{"code":"532622","name":"砚山县"},{"code":"532623","name":"西畴县"},{"code":"532624","name":"麻栗坡县"},{"code":"532625","name":"马关县"},{"code":"532626","name":"丘北县"},{"code":"532627","name":"广南县"},{"code":"532628","name":"富宁县"}]},{"code":"5328","name":"西双版纳傣族自治州","childs":[{"code":"532801","name":"景洪市"},{"code":"532822","name":"勐海县"},{"code":"532823","name":"勐腊县"}]},{"code":"5329","name":"大理白族自治州","childs":[{"code":"532901","name":"大理市"},{"code":"532922","name":"漾濞彝族自治县"},{"code":"532923","name":"祥云县"},{"code":"532924","name":"宾川县"},{"code":"532925","name":"弥渡县"},{"code":"532926","name":"南涧彝族自治县"},{"code":"532927","name":"巍山彝族回族自治县"},{"code":"532928","name":"永平县"},{"code":"532929","name":"云龙县"},{"code":"532930","name":"洱源县"},{"code":"532931","name":"剑川县"},{"code":"532932","name":"鹤庆县"}]},{"code":"5331","name":"德宏傣族景颇族自治州","childs":[{"code":"533102","name":"瑞丽市"},{"code":"533103","name":"芒市"},{"code":"533122","name":"梁河县"},{"code":"533123","name":"盈江县"},{"code":"533124","name":"陇川县"}]},{"code":"5333","name":"怒江傈僳族自治州","childs":[{"code":"533301","name":"泸水市"},{"code":"533323","name":"福贡县"},{"code":"533324","name":"贡山独龙族怒族自治县"},{"code":"533325","name":"兰坪白族普米族自治县"}]},{"code":"5334","name":"迪庆藏族自治州","childs":[{"code":"533401","name":"香格里拉市"},{"code":"533422","name":"德钦县"},{"code":"533423","name":"维西傈僳族自治县"}]}]},{"code":"54","name":"西藏自治区","childs":[{"code":"5401","name":"拉萨市","childs":[{"code":"540102","name":"城关区"},{"code":"540103","name":"堆龙德庆区"},{"code":"540121","name":"林周县"},{"code":"540122","name":"当雄县"},{"code":"540123","name":"尼木县"},{"code":"540124","name":"曲水县"},{"code":"540126","name":"达孜县"},{"code":"540127","name":"墨竹工卡县"}]},{"code":"5402","name":"日喀则市","childs":[{"code":"540202","name":"桑珠孜区"},{"code":"540221","name":"南木林县"},{"code":"540222","name":"江孜县"},{"code":"540223","name":"定日县"},{"code":"540224","name":"萨迦县"},{"code":"540225","name":"拉孜县"},{"code":"540226","name":"昂仁县"},{"code":"540227","name":"谢通门县"},{"code":"540228","name":"白朗县"},{"code":"540229","name":"仁布县"},{"code":"540230","name":"康马县"},{"code":"540231","name":"定结县"},{"code":"540232","name":"仲巴县"},{"code":"540233","name":"亚东县"},{"code":"540234","name":"吉隆县"},{"code":"540235","name":"聂拉木县"},{"code":"540236","name":"萨嘎县"},{"code":"540237","name":"岗巴县"}]},{"code":"5403","name":"昌都市","childs":[{"code":"540302","name":"卡若区"},{"code":"540321","name":"江达县"},{"code":"540322","name":"贡觉县"},{"code":"540323","name":"类乌齐县"},{"code":"540324","name":"丁青县"},{"code":"540325","name":"察雅县"},{"code":"540326","name":"八宿县"},{"code":"540327","name":"左贡县"},{"code":"540328","name":"芒康县"},{"code":"540329","name":"洛隆县"},{"code":"540330","name":"边坝县"}]},{"code":"5404","name":"林芝市","childs":[{"code":"540402","name":"巴宜区"},{"code":"540421","name":"工布江达县"},{"code":"540422","name":"米林县"},{"code":"540423","name":"墨脱县"},{"code":"540424","name":"波密县"},{"code":"540425","name":"察隅县"},{"code":"540426","name":"朗县"}]},{"code":"5405","name":"山南市","childs":[{"code":"540502","name":"乃东区"},{"code":"540521","name":"扎囊县"},{"code":"540522","name":"贡嘎县"},{"code":"540523","name":"桑日县"},{"code":"540524","name":"琼结县"},{"code":"540525","name":"曲松县"},{"code":"540526","name":"措美县"},{"code":"540527","name":"洛扎县"},{"code":"540528","name":"加查县"},{"code":"540529","name":"隆子县"},{"code":"540530","name":"错那县"},{"code":"540531","name":"浪卡子县"}]},{"code":"5424","name":"那曲地区","childs":[{"code":"542421","name":"那曲县"},{"code":"542422","name":"嘉黎县"},{"code":"542423","name":"比如县"},{"code":"542424","name":"聂荣县"},{"code":"542425","name":"安多县"},{"code":"542426","name":"申扎县"},{"code":"542427","name":"索县"},{"code":"542428","name":"班戈县"},{"code":"542429","name":"巴青县"},{"code":"542430","name":"尼玛县"},{"code":"542431","name":"双湖县"}]},{"code":"5425","name":"阿里地区","childs":[{"code":"542521","name":"普兰县"},{"code":"542522","name":"札达县"},{"code":"542523","name":"噶尔县"},{"code":"542524","name":"日土县"},{"code":"542525","name":"革吉县"},{"code":"542526","name":"改则县"},{"code":"542527","name":"措勤县"}]}]},{"code":"61","name":"陕西省","childs":[{"code":"6101","name":"西安市","childs":[{"code":"610102","name":"新城区"},{"code":"610103","name":"碑林区"},{"code":"610104","name":"莲湖区"},{"code":"610111","name":"灞桥区"},{"code":"610112","name":"未央区"},{"code":"610113","name":"雁塔区"},{"code":"610114","name":"阎良区"},{"code":"610115","name":"临潼区"},{"code":"610116","name":"长安区"},{"code":"610117","name":"高陵区"},{"code":"610122","name":"蓝田县"},{"code":"610124","name":"周至县"},{"code":"610125","name":"户县"}]},{"code":"6102","name":"铜川市","childs":[{"code":"610202","name":"王益区"},{"code":"610203","name":"印台区"},{"code":"610204","name":"耀州区"},{"code":"610222","name":"宜君县"}]},{"code":"6103","name":"宝鸡市","childs":[{"code":"610302","name":"渭滨区"},{"code":"610303","name":"金台区"},{"code":"610304","name":"陈仓区"},{"code":"610322","name":"凤翔县"},{"code":"610323","name":"岐山县"},{"code":"610324","name":"扶风县"},{"code":"610326","name":"眉县"},{"code":"610327","name":"陇县"},{"code":"610328","name":"千阳县"},{"code":"610329","name":"麟游县"},{"code":"610330","name":"凤县"},{"code":"610331","name":"太白县"}]},{"code":"6104","name":"咸阳市","childs":[{"code":"610402","name":"秦都区"},{"code":"610403","name":"杨陵区"},{"code":"610404","name":"渭城区"},{"code":"610422","name":"三原县"},{"code":"610423","name":"泾阳县"},{"code":"610424","name":"乾县"},{"code":"610425","name":"礼泉县"},{"code":"610426","name":"永寿县"},{"code":"610427","name":"彬县"},{"code":"610428","name":"长武县"},{"code":"610429","name":"旬邑县"},{"code":"610430","name":"淳化县"},{"code":"610431","name":"武功县"},{"code":"610481","name":"兴平市"}]},{"code":"6105","name":"渭南市","childs":[{"code":"610502","name":"临渭区"},{"code":"610503","name":"华州区"},{"code":"610522","name":"潼关县"},{"code":"610523","name":"大荔县"},{"code":"610524","name":"合阳县"},{"code":"610525","name":"澄城县"},{"code":"610526","name":"蒲城县"},{"code":"610527","name":"白水县"},{"code":"610528","name":"富平县"},{"code":"610581","name":"韩城市"},{"code":"610582","name":"华阴市"}]},{"code":"6106","name":"延安市","childs":[{"code":"610602","name":"宝塔区"},{"code":"610603","name":"安塞区"},{"code":"610621","name":"延长县"},{"code":"610622","name":"延川县"},{"code":"610623","name":"子长县"},{"code":"610625","name":"志丹县"},{"code":"610626","name":"吴起县"},{"code":"610627","name":"甘泉县"},{"code":"610628","name":"富县"},{"code":"610629","name":"洛川县"},{"code":"610630","name":"宜川县"},{"code":"610631","name":"黄龙县"},{"code":"610632","name":"黄陵县"}]},{"code":"6107","name":"汉中市","childs":[{"code":"610702","name":"汉台区"},{"code":"610721","name":"南郑县"},{"code":"610722","name":"城固县"},{"code":"610723","name":"洋县"},{"code":"610724","name":"西乡县"},{"code":"610725","name":"勉县"},{"code":"610726","name":"宁强县"},{"code":"610727","name":"略阳县"},{"code":"610728","name":"镇巴县"},{"code":"610729","name":"留坝县"},{"code":"610730","name":"佛坪县"}]},{"code":"6108","name":"榆林市","childs":[{"code":"610802","name":"榆阳区"},{"code":"610803","name":"横山区"},{"code":"610821","name":"神木县"},{"code":"610822","name":"府谷县"},{"code":"610824","name":"靖边县"},{"code":"610825","name":"定边县"},{"code":"610826","name":"绥德县"},{"code":"610827","name":"米脂县"},{"code":"610828","name":"佳县"},{"code":"610829","name":"吴堡县"},{"code":"610830","name":"清涧县"},{"code":"610831","name":"子洲县"}]},{"code":"6109","name":"安康市","childs":[{"code":"610902","name":"汉滨区"},{"code":"610921","name":"汉阴县"},{"code":"610922","name":"石泉县"},{"code":"610923","name":"宁陕县"},{"code":"610924","name":"紫阳县"},{"code":"610925","name":"岚皋县"},{"code":"610926","name":"平利县"},{"code":"610927","name":"镇坪县"},{"code":"610928","name":"旬阳县"},{"code":"610929","name":"白河县"}]},{"code":"6110","name":"商洛市","childs":[{"code":"611002","name":"商州区"},{"code":"611021","name":"洛南县"},{"code":"611022","name":"丹凤县"},{"code":"611023","name":"商南县"},{"code":"611024","name":"山阳县"},{"code":"611025","name":"镇安县"},{"code":"611026","name":"柞水县"}]}]},{"code":"62","name":"甘肃省","childs":[{"code":"6201","name":"兰州市","childs":[{"code":"620102","name":"城关区"},{"code":"620103","name":"七里河区"},{"code":"620104","name":"西固区"},{"code":"620105","name":"安宁区"},{"code":"620111","name":"红古区"},{"code":"620121","name":"永登县"},{"code":"620122","name":"皋兰县"},{"code":"620123","name":"榆中县"}]},{"code":"620201","name":"嘉峪关市","childs":[{"code":"620201100","name":"新城镇"},{"code":"620201101","name":"峪泉镇"},{"code":"620201102","name":"文殊镇"},{"code":"620201401","name":"雄关区"},{"code":"620201402","name":"镜铁区"},{"code":"620201403","name":"长城区"}]},{"code":"6203","name":"金昌市","childs":[{"code":"620302","name":"金川区"},{"code":"620321","name":"永昌县"}]},{"code":"6204","name":"白银市","childs":[{"code":"620402","name":"白银区"},{"code":"620403","name":"平川区"},{"code":"620421","name":"靖远县"},{"code":"620422","name":"会宁县"},{"code":"620423","name":"景泰县"}]},{"code":"6205","name":"天水市","childs":[{"code":"620502","name":"秦州区"},{"code":"620503","name":"麦积区"},{"code":"620521","name":"清水县"},{"code":"620522","name":"秦安县"},{"code":"620523","name":"甘谷县"},{"code":"620524","name":"武山县"},{"code":"620525","name":"张家川回族自治县"}]},{"code":"6206","name":"武威市","childs":[{"code":"620602","name":"凉州区"},{"code":"620621","name":"民勤县"},{"code":"620622","name":"古浪县"},{"code":"620623","name":"天祝藏族自治县"}]},{"code":"6207","name":"张掖市","childs":[{"code":"620702","name":"甘州区"},{"code":"620721","name":"肃南裕固族自治县"},{"code":"620722","name":"民乐县"},{"code":"620723","name":"临泽县"},{"code":"620724","name":"高台县"},{"code":"620725","name":"山丹县"}]},{"code":"6208","name":"平凉市","childs":[{"code":"620802","name":"崆峒区"},{"code":"620821","name":"泾川县"},{"code":"620822","name":"灵台县"},{"code":"620823","name":"崇信县"},{"code":"620824","name":"华亭县"},{"code":"620825","name":"庄浪县"},{"code":"620826","name":"静宁县"}]},{"code":"6209","name":"酒泉市","childs":[{"code":"620902","name":"肃州区"},{"code":"620921","name":"金塔县"},{"code":"620922","name":"瓜州县"},{"code":"620923","name":"肃北蒙古族自治县"},{"code":"620924","name":"阿克塞哈萨克族自治县"},{"code":"620981","name":"玉门市"},{"code":"620982","name":"敦煌市"}]},{"code":"6210","name":"庆阳市","childs":[{"code":"621002","name":"西峰区"},{"code":"621021","name":"庆城县"},{"code":"621022","name":"环县"},{"code":"621023","name":"华池县"},{"code":"621024","name":"合水县"},{"code":"621025","name":"正宁县"},{"code":"621026","name":"宁县"},{"code":"621027","name":"镇原县"}]},{"code":"6211","name":"定西市","childs":[{"code":"621102","name":"安定区"},{"code":"621121","name":"通渭县"},{"code":"621122","name":"陇西县"},{"code":"621123","name":"渭源县"},{"code":"621124","name":"临洮县"},{"code":"621125","name":"漳县"},{"code":"621126","name":"岷县"}]},{"code":"6212","name":"陇南市","childs":[{"code":"621202","name":"武都区"},{"code":"621221","name":"成县"},{"code":"621222","name":"文县"},{"code":"621223","name":"宕昌县"},{"code":"621224","name":"康县"},{"code":"621225","name":"西和县"},{"code":"621226","name":"礼县"},{"code":"621227","name":"徽县"},{"code":"621228","name":"两当县"}]},{"code":"6229","name":"临夏回族自治州","childs":[{"code":"622901","name":"临夏市"},{"code":"622921","name":"临夏县"},{"code":"622922","name":"康乐县"},{"code":"622923","name":"永靖县"},{"code":"622924","name":"广河县"},{"code":"622925","name":"和政县"},{"code":"622926","name":"东乡族自治县"},{"code":"622927","name":"积石山保安族东乡族撒拉族自治县"}]},{"code":"6230","name":"甘南藏族自治州","childs":[{"code":"623001","name":"合作市"},{"code":"623021","name":"临潭县"},{"code":"623022","name":"卓尼县"},{"code":"623023","name":"舟曲县"},{"code":"623024","name":"迭部县"},{"code":"623025","name":"玛曲县"},{"code":"623026","name":"碌曲县"},{"code":"623027","name":"夏河县"}]}]},{"code":"63","name":"青海省","childs":[{"code":"6301","name":"西宁市","childs":[{"code":"630102","name":"城东区"},{"code":"630103","name":"城中区"},{"code":"630104","name":"城西区"},{"code":"630105","name":"城北区"},{"code":"630121","name":"大通回族土族自治县"},{"code":"630122","name":"湟中县"},{"code":"630123","name":"湟源县"}]},{"code":"6302","name":"海东市","childs":[{"code":"630202","name":"乐都区"},{"code":"630203","name":"平安区"},{"code":"630222","name":"民和回族土族自治县"},{"code":"630223","name":"互助土族自治县"},{"code":"630224","name":"化隆回族自治县"},{"code":"630225","name":"循化撒拉族自治县"}]},{"code":"6322","name":"海北藏族自治州","childs":[{"code":"632221","name":"门源回族自治县"},{"code":"632222","name":"祁连县"},{"code":"632223","name":"海晏县"},{"code":"632224","name":"刚察县"}]},{"code":"6323","name":"黄南藏族自治州","childs":[{"code":"632321","name":"同仁县"},{"code":"632322","name":"尖扎县"},{"code":"632323","name":"泽库县"},{"code":"632324","name":"河南蒙古族自治县"}]},{"code":"6325","name":"海南藏族自治州","childs":[{"code":"632521","name":"共和县"},{"code":"632522","name":"同德县"},{"code":"632523","name":"贵德县"},{"code":"632524","name":"兴海县"},{"code":"632525","name":"贵南县"}]},{"code":"6326","name":"果洛藏族自治州","childs":[{"code":"632621","name":"玛沁县"},{"code":"632622","name":"班玛县"},{"code":"632623","name":"甘德县"},{"code":"632624","name":"达日县"},{"code":"632625","name":"久治县"},{"code":"632626","name":"玛多县"}]},{"code":"6327","name":"玉树藏族自治州","childs":[{"code":"632701","name":"玉树市"},{"code":"632722","name":"杂多县"},{"code":"632723","name":"称多县"},{"code":"632724","name":"治多县"},{"code":"632725","name":"囊谦县"},{"code":"632726","name":"曲麻莱县"}]},{"code":"6328","name":"海西蒙古族藏族自治州","childs":[{"code":"632801","name":"格尔木市"},{"code":"632802","name":"德令哈市"},{"code":"632821","name":"乌兰县"},{"code":"632822","name":"都兰县"},{"code":"632823","name":"天峻县"}]}]},{"code":"64","name":"宁夏回族自治区","childs":[{"code":"6401","name":"银川市","childs":[{"code":"640104","name":"兴庆区"},{"code":"640105","name":"西夏区"},{"code":"640106","name":"金凤区"},{"code":"640121","name":"永宁县"},{"code":"640122","name":"贺兰县"},{"code":"640181","name":"灵武市"}]},{"code":"6402","name":"石嘴山市","childs":[{"code":"640202","name":"大武口区"},{"code":"640205","name":"惠农区"},{"code":"640221","name":"平罗县"}]},{"code":"6403","name":"吴忠市","childs":[{"code":"640302","name":"利通区"},{"code":"640303","name":"红寺堡区"},{"code":"640323","name":"盐池县"},{"code":"640324","name":"同心县"},{"code":"640381","name":"青铜峡市"}]},{"code":"6404","name":"固原市","childs":[{"code":"640402","name":"原州区"},{"code":"640422","name":"西吉县"},{"code":"640423","name":"隆德县"},{"code":"640424","name":"泾源县"},{"code":"640425","name":"彭阳县"}]},{"code":"6405","name":"中卫市","childs":[{"code":"640502","name":"沙坡头区"},{"code":"640521","name":"中宁县"},{"code":"640522","name":"海原县"}]}]},{"code":"65","name":"新疆维吾尔自治区","childs":[{"code":"6501","name":"乌鲁木齐市","childs":[{"code":"650102","name":"天山区"},{"code":"650103","name":"沙依巴克区"},{"code":"650104","name":"新市区"},{"code":"650105","name":"水磨沟区"},{"code":"650106","name":"头屯河区"},{"code":"650107","name":"达坂城区"},{"code":"650109","name":"米东区"},{"code":"650121","name":"乌鲁木齐县"}]},{"code":"6502","name":"克拉玛依市","childs":[{"code":"650202","name":"独山子区"},{"code":"650203","name":"克拉玛依区"},{"code":"650204","name":"白碱滩区"},{"code":"650205","name":"乌尔禾区"}]},{"code":"6504","name":"吐鲁番市","childs":[{"code":"650402","name":"高昌区"},{"code":"650421","name":"鄯善县"},{"code":"650422","name":"托克逊县"}]},{"code":"6505","name":"哈密市","childs":[{"code":"650502","name":"伊州区"},{"code":"650521","name":"巴里坤哈萨克自治县"},{"code":"650522","name":"伊吾县"}]},{"code":"6523","name":"昌吉回族自治州","childs":[{"code":"652301","name":"昌吉市"},{"code":"652302","name":"阜康市"},{"code":"652323","name":"呼图壁县"},{"code":"652324","name":"玛纳斯县"},{"code":"652325","name":"奇台县"},{"code":"652327","name":"吉木萨尔县"},{"code":"652328","name":"木垒哈萨克自治县"}]},{"code":"6527","name":"博尔塔拉蒙古自治州","childs":[{"code":"652701","name":"博乐市"},{"code":"652702","name":"阿拉山口市"},{"code":"652722","name":"精河县"},{"code":"652723","name":"温泉县"}]},{"code":"6528","name":"巴音郭楞蒙古自治州","childs":[{"code":"652801","name":"库尔勒市"},{"code":"652822","name":"轮台县"},{"code":"652823","name":"尉犁县"},{"code":"652824","name":"若羌县"},{"code":"652825","name":"且末县"},{"code":"652826","name":"焉耆回族自治县"},{"code":"652827","name":"和静县"},{"code":"652828","name":"和硕县"},{"code":"652829","name":"博湖县"}]},{"code":"6529","name":"阿克苏地区","childs":[{"code":"652901","name":"阿克苏市"},{"code":"652922","name":"温宿县"},{"code":"652923","name":"库车县"},{"code":"652924","name":"沙雅县"},{"code":"652925","name":"新和县"},{"code":"652926","name":"拜城县"},{"code":"652927","name":"乌什县"},{"code":"652928","name":"阿瓦提县"},{"code":"652929","name":"柯坪县"}]},{"code":"6530","name":"克孜勒苏柯尔克孜自治州","childs":[{"code":"653001","name":"阿图什市"},{"code":"653022","name":"阿克陶县"},{"code":"653023","name":"阿合奇县"},{"code":"653024","name":"乌恰县"}]},{"code":"6531","name":"喀什地区","childs":[{"code":"653101","name":"喀什市"},{"code":"653121","name":"疏附县"},{"code":"653122","name":"疏勒县"},{"code":"653123","name":"英吉沙县"},{"code":"653124","name":"泽普县"},{"code":"653125","name":"莎车县"},{"code":"653126","name":"叶城县"},{"code":"653127","name":"麦盖提县"},{"code":"653128","name":"岳普湖县"},{"code":"653129","name":"伽师县"},{"code":"653130","name":"巴楚县"},{"code":"653131","name":"塔什库尔干塔吉克自治县"}]},{"code":"6532","name":"和田地区","childs":[{"code":"653201","name":"和田市"},{"code":"653221","name":"和田县"},{"code":"653222","name":"墨玉县"},{"code":"653223","name":"皮山县"},{"code":"653224","name":"洛浦县"},{"code":"653225","name":"策勒县"},{"code":"653226","name":"于田县"},{"code":"653227","name":"民丰县"}]},{"code":"6540","name":"伊犁哈萨克自治州","childs":[{"code":"654002","name":"伊宁市"},{"code":"654003","name":"奎屯市"},{"code":"654004","name":"霍尔果斯市"},{"code":"654021","name":"伊宁县"},{"code":"654022","name":"察布查尔锡伯自治县"},{"code":"654023","name":"霍城县"},{"code":"654024","name":"巩留县"},{"code":"654025","name":"新源县"},{"code":"654026","name":"昭苏县"},{"code":"654027","name":"特克斯县"},{"code":"654028","name":"尼勒克县"}]},{"code":"6542","name":"塔城地区","childs":[{"code":"654201","name":"塔城市"},{"code":"654202","name":"乌苏市"},{"code":"654221","name":"额敏县"},{"code":"654223","name":"沙湾县"},{"code":"654224","name":"托里县"},{"code":"654225","name":"裕民县"},{"code":"654226","name":"和布克赛尔蒙古自治县"}]},{"code":"6543","name":"阿勒泰地区","childs":[{"code":"654301","name":"阿勒泰市"},{"code":"654321","name":"布尔津县"},{"code":"654322","name":"富蕴县"},{"code":"654323","name":"福海县"},{"code":"654324","name":"哈巴河县"},{"code":"654325","name":"青河县"},{"code":"654326","name":"吉木乃县"}]},{"code":"6590","name":"自治区直辖县级行政区划","childs":[{"code":"659001","name":"石河子市"},{"code":"659002","name":"阿拉尔市"},{"code":"659003","name":"图木舒克市"},{"code":"659004","name":"五家渠市"},{"code":"659006","name":"铁门关市"}]}]},{"code":"71","name":"台湾省","childs":[]},{"code":"81","name":"香港特别行政区","childs":[]},{"code":"82","name":"澳门特别行政区","childs":[]}]
\ No newline at end of file
diff --git a/components/quick-skeleton.vue b/components/quick-skeleton.vue
new file mode 100644
index 0000000..f8f66a6
--- /dev/null
+++ b/components/quick-skeleton.vue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/uni-icons/icons.js b/components/uni-icons/icons.js
new file mode 100644
index 0000000..1f5a778
--- /dev/null
+++ b/components/uni-icons/icons.js
@@ -0,0 +1,96 @@
+export default {
+ 'contact': '\ue100',
+ 'person': '\ue101',
+ 'personadd': '\ue102',
+ 'contact-filled': '\ue130',
+ 'person-filled': '\ue131',
+ 'personadd-filled': '\ue132',
+ 'phone': '\ue200',
+ 'email': '\ue201',
+ 'chatbubble': '\ue202',
+ 'chatboxes': '\ue203',
+ 'phone-filled': '\ue230',
+ 'email-filled': '\ue231',
+ 'chatbubble-filled': '\ue232',
+ 'chatboxes-filled': '\ue233',
+ 'weibo': '\ue260',
+ 'weixin': '\ue261',
+ 'pengyouquan': '\ue262',
+ 'chat': '\ue263',
+ 'qq': '\ue264',
+ 'videocam': '\ue300',
+ 'camera': '\ue301',
+ 'mic': '\ue302',
+ 'location': '\ue303',
+ 'mic-filled': '\ue332',
+ 'speech': '\ue332',
+ 'location-filled': '\ue333',
+ 'micoff': '\ue360',
+ 'image': '\ue363',
+ 'map': '\ue364',
+ 'compose': '\ue400',
+ 'trash': '\ue401',
+ 'upload': '\ue402',
+ 'download': '\ue403',
+ 'close': '\ue404',
+ 'redo': '\ue405',
+ 'undo': '\ue406',
+ 'refresh': '\ue407',
+ 'star': '\ue408',
+ 'plus': '\ue409',
+ 'minus': '\ue410',
+ 'circle': '\ue411',
+ 'checkbox': '\ue411',
+ 'close-filled': '\ue434',
+ 'clear': '\ue434',
+ 'refresh-filled': '\ue437',
+ 'star-filled': '\ue438',
+ 'plus-filled': '\ue439',
+ 'minus-filled': '\ue440',
+ 'circle-filled': '\ue441',
+ 'checkbox-filled': '\ue442',
+ 'closeempty': '\ue460',
+ 'refreshempty': '\ue461',
+ 'reload': '\ue462',
+ 'starhalf': '\ue463',
+ 'spinner': '\ue464',
+ 'spinner-cycle': '\ue465',
+ 'search': '\ue466',
+ 'plusempty': '\ue468',
+ 'forward': '\ue470',
+ 'back': '\ue471',
+ 'left-nav': '\ue471',
+ 'checkmarkempty': '\ue472',
+ 'home': '\ue500',
+ 'navigate': '\ue501',
+ 'gear': '\ue502',
+ 'paperplane': '\ue503',
+ 'info': '\ue504',
+ 'help': '\ue505',
+ 'locked': '\ue506',
+ 'more': '\ue507',
+ 'flag': '\ue508',
+ 'home-filled': '\ue530',
+ 'gear-filled': '\ue532',
+ 'info-filled': '\ue534',
+ 'help-filled': '\ue535',
+ 'more-filled': '\ue537',
+ 'settings': '\ue560',
+ 'list': '\ue562',
+ 'bars': '\ue563',
+ 'loop': '\ue565',
+ 'paperclip': '\ue567',
+ 'eye': '\ue568',
+ 'arrowup': '\ue580',
+ 'arrowdown': '\ue581',
+ 'arrowleft': '\ue582',
+ 'arrowright': '\ue583',
+ 'arrowthinup': '\ue584',
+ 'arrowthindown': '\ue585',
+ 'arrowthinleft': '\ue586',
+ 'arrowthinright': '\ue587',
+ 'pulldown': '\ue588',
+ 'closefill': '\ue589',
+ 'sound': '\ue590',
+ 'scan': '\ue612'
+}
diff --git a/components/uni-icons/uni-icons.vue b/components/uni-icons/uni-icons.vue
new file mode 100644
index 0000000..85b4180
--- /dev/null
+++ b/components/uni-icons/uni-icons.vue
@@ -0,0 +1,57 @@
+
+ {{icons[type]}}
+
+
+
+
+
diff --git a/components/uni-search-bar/changelog.md b/components/uni-search-bar/changelog.md
new file mode 100644
index 0000000..3a79e35
--- /dev/null
+++ b/components/uni-search-bar/changelog.md
@@ -0,0 +1,24 @@
+## 1.1.2(2021-08-30)
+- 修复 value 属性与 modelValue 属性不兼容的Bug
+## 1.1.1(2021-08-24)
+- 新增 支持国际化
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.9(2021-05-12)
+- 新增 项目示例地址
+## 1.0.8(2021-04-21)
+- 优化 添加依赖 uni-icons, 导入后自动下载依赖
+## 1.0.7(2021-04-15)
+- uni-ui 新增 uni-search-bar 的 focus 事件
+
+## 1.0.6(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+
+## 1.0.5(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 支持双向绑定
+- 更改 input 事件的返回值,e={value:Number} --> e=value
+- 新增 支持图标插槽
+- 新增 支持 clear、blur 事件
+- 新增 支持 focus 属性
+- 去掉组件背景色
diff --git a/components/uni-search-bar/components/uni-search-bar/i18n/en.json b/components/uni-search-bar/components/uni-search-bar/i18n/en.json
new file mode 100644
index 0000000..dd083a5
--- /dev/null
+++ b/components/uni-search-bar/components/uni-search-bar/i18n/en.json
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "cancel",
+ "uni-search-bar.placeholder": "Search enter content"
+}
\ No newline at end of file
diff --git a/components/uni-search-bar/components/uni-search-bar/i18n/index.js b/components/uni-search-bar/components/uni-search-bar/i18n/index.js
new file mode 100644
index 0000000..de7509c
--- /dev/null
+++ b/components/uni-search-bar/components/uni-search-bar/i18n/index.js
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git a/components/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json b/components/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json
new file mode 100644
index 0000000..d4e5c12
--- /dev/null
+++ b/components/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "cancel",
+ "uni-search-bar.placeholder": "请输入搜索内容"
+}
diff --git a/components/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json b/components/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json
new file mode 100644
index 0000000..318b6ef
--- /dev/null
+++ b/components/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "cancel",
+ "uni-search-bar.placeholder": "請輸入搜索內容"
+}
diff --git a/components/uni-search-bar/components/uni-search-bar/uni-search-bar.vue b/components/uni-search-bar/components/uni-search-bar/uni-search-bar.vue
new file mode 100644
index 0000000..459f53a
--- /dev/null
+++ b/components/uni-search-bar/components/uni-search-bar/uni-search-bar.vue
@@ -0,0 +1,290 @@
+
+
+
+
+
+
+
+
+
+ {{ placeholder }}
+
+
+
+
+
+
+ {{cancelTextI18n}}
+
+
+
+
+
+
diff --git a/components/uni-search-bar/package.json b/components/uni-search-bar/package.json
new file mode 100644
index 0000000..9fd3fda
--- /dev/null
+++ b/components/uni-search-bar/package.json
@@ -0,0 +1,88 @@
+{
+ "id": "uni-search-bar",
+ "displayName": "uni-search-bar 搜索栏",
+ "version": "1.1.2",
+ "description": "搜索栏组件,通常用于搜索商品、文章等",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "搜索框",
+ "搜索栏"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/uni-search-bar/readme.md b/components/uni-search-bar/readme.md
new file mode 100644
index 0000000..b39d6cf
--- /dev/null
+++ b/components/uni-search-bar/readme.md
@@ -0,0 +1,86 @@
+
+
+## SearchBar 搜索栏
+
+> **组件名:uni-search-bar**
+> 代码块: `uSearchBar`
+
+
+评分组件
+
+### 安装方式
+
+本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
+
+如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
+
+### 基本用法
+
+在 ``template`` 中使用组件
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+## API
+### SearchBar Props
+
+|属性名 |类型 |默认值 |说明 |
+|:-: |:-: |:-: |:-: |
+|value/v-model |StringNumber | |搜索栏绑定值 |
+|placeholder |String |搜索 |搜索栏Placeholder |
+|radius |Number |10 |搜索栏圆角,单位px |
+|clearButton |String |auto |是否显示清除按钮,可选值`always`-一直显示、`auto`-输入框不为空时显示、`none`-一直不显示 |
+|cancelButton |String |auto |是否显示取消按钮,可选值`always`-一直显示、`auto`-输入框不为空时显示、`none`-一直不显示 |
+|cancelText |String |取消 |取消按钮的文字 |
+|bgColor |String |#F8F8F8|输入框背景颜色 |
+|maxlength |Number |100 |输入最大长度 |
+|focus |Boolean |false | |
+
+
+### SearchBar Events
+
+|事件称名 |说明 |返回参数 |
+|:-: |:-: |:-: |
+|@confirm |uniSearchBar 的输入框 confirm 事件,返回参数为uniSearchBar的value |e={value:Number} |
+|@input |uniSearchBar 的 value 改变时触发事件,返回参数为uniSearchBar的value|e=value |
+|@cancel |点击取消按钮时触发事件,返回参数为uniSearchBar的value |e={value:Number} |
+|@clear |点击清除按钮时触发事件,返回参数为uniSearchBar的value |e={value:Number} |
+|@focus |input 获取焦点时触发事件,返回参数为uniSearchBar的value |e={value:Number} |
+|@blur |input 失去焦点时触发事件,返回参数为uniSearchBar的value |e={value:Number} |
+
+### 替换 icon 的 slot 插槽
+
+|插槽称名 |说明 |
+|:-: |:-: |
+|searchIcon |替换组件的搜索图标|
+|clearIcon |替换组件的清除图标|
+
+```html
+
+
+
+
+
+
+
+ X
+
+
+```
+
+
+## 组件示例
+
+点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/search-bar/search-bar](https://hellouniapp.dcloud.net.cn/pages/extUI/search-bar/search-bar)
\ No newline at end of file
diff --git a/components/watch-login/css/icon.css b/components/watch-login/css/icon.css
new file mode 100644
index 0000000..b675aa4
--- /dev/null
+++ b/components/watch-login/css/icon.css
@@ -0,0 +1,1226 @@
+@keyframes cuIcon-spin {
+ 0% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0);
+ }
+
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+
+.cuIconfont-spin {
+ -webkit-animation: cuIcon-spin 2s infinite linear;
+ animation: cuIcon-spin 2s infinite linear;
+ display: inline-block;
+}
+
+.cuIconfont-pulse {
+ -webkit-animation: cuIcon-spin 1s infinite steps(8);
+ animation: cuIcon-spin 1s infinite steps(8);
+ display: inline-block;
+}
+
+.cuIcon {
+ font-family: "cuIcon";
+ font-size: inherit;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: "cuIcon";
+ src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831');
+ /* IE9*/
+ src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831#iefix') format('embedded-opentype'),
+ /* IE6-IE8 */
+ url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'),
+ url('//at.alicdn.com/t/font_533566_yfq2d9wdij.ttf?t=1545239985831') format('truetype'),
+ /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
+ url('//at.alicdn.com/t/font_533566_yfq2d9wdij.svg?t=1545239985831#cuIconfont') format('svg');
+ /* iOS 4.1- */
+}
+
+.cuIcon-appreciate:before {
+ content: "\e644";
+}
+
+.cuIcon-check:before {
+ content: "\e645";
+}
+
+.cuIcon-close:before {
+ content: "\e646";
+}
+
+.cuIcon-edit:before {
+ content: "\e649";
+}
+
+.cuIcon-emoji:before {
+ content: "\e64a";
+}
+
+.cuIcon-favorfill:before {
+ content: "\e64b";
+}
+
+.cuIcon-favor:before {
+ content: "\e64c";
+}
+
+.cuIcon-loading:before {
+ content: "\e64f";
+}
+
+.cuIcon-locationfill:before {
+ content: "\e650";
+}
+
+.cuIcon-location:before {
+ content: "\e651";
+}
+
+.cuIcon-phone:before {
+ content: "\e652";
+}
+
+.cuIcon-roundcheckfill:before {
+ content: "\e656";
+}
+
+.cuIcon-roundcheck:before {
+ content: "\e657";
+}
+
+.cuIcon-roundclosefill:before {
+ content: "\e658";
+}
+
+.cuIcon-roundclose:before {
+ content: "\e659";
+}
+
+.cuIcon-roundrightfill:before {
+ content: "\e65a";
+}
+
+.cuIcon-roundright:before {
+ content: "\e65b";
+}
+
+.cuIcon-search:before {
+ content: "\e65c";
+}
+
+.cuIcon-taxi:before {
+ content: "\e65d";
+}
+
+.cuIcon-timefill:before {
+ content: "\e65e";
+}
+
+.cuIcon-time:before {
+ content: "\e65f";
+}
+
+.cuIcon-unfold:before {
+ content: "\e661";
+}
+
+.cuIcon-warnfill:before {
+ content: "\e662";
+}
+
+.cuIcon-warn:before {
+ content: "\e663";
+}
+
+.cuIcon-camerafill:before {
+ content: "\e664";
+}
+
+.cuIcon-camera:before {
+ content: "\e665";
+}
+
+.cuIcon-commentfill:before {
+ content: "\e666";
+}
+
+.cuIcon-comment:before {
+ content: "\e667";
+}
+
+.cuIcon-likefill:before {
+ content: "\e668";
+}
+
+.cuIcon-like:before {
+ content: "\e669";
+}
+
+.cuIcon-notificationfill:before {
+ content: "\e66a";
+}
+
+.cuIcon-notification:before {
+ content: "\e66b";
+}
+
+.cuIcon-order:before {
+ content: "\e66c";
+}
+
+.cuIcon-samefill:before {
+ content: "\e66d";
+}
+
+.cuIcon-same:before {
+ content: "\e66e";
+}
+
+.cuIcon-deliver:before {
+ content: "\e671";
+}
+
+.cuIcon-evaluate:before {
+ content: "\e672";
+}
+
+.cuIcon-pay:before {
+ content: "\e673";
+}
+
+.cuIcon-send:before {
+ content: "\e675";
+}
+
+.cuIcon-shop:before {
+ content: "\e676";
+}
+
+.cuIcon-ticket:before {
+ content: "\e677";
+}
+
+.cuIcon-back:before {
+ content: "\e679";
+}
+
+.cuIcon-cascades:before {
+ content: "\e67c";
+}
+
+.cuIcon-discover:before {
+ content: "\e67e";
+}
+
+.cuIcon-list:before {
+ content: "\e682";
+}
+
+.cuIcon-more:before {
+ content: "\e684";
+}
+
+.cuIcon-scan:before {
+ content: "\e689";
+}
+
+.cuIcon-settings:before {
+ content: "\e68a";
+}
+
+.cuIcon-questionfill:before {
+ content: "\e690";
+}
+
+.cuIcon-question:before {
+ content: "\e691";
+}
+
+.cuIcon-shopfill:before {
+ content: "\e697";
+}
+
+.cuIcon-form:before {
+ content: "\e699";
+}
+
+.cuIcon-pic:before {
+ content: "\e69b";
+}
+
+.cuIcon-filter:before {
+ content: "\e69c";
+}
+
+.cuIcon-footprint:before {
+ content: "\e69d";
+}
+
+.cuIcon-top:before {
+ content: "\e69e";
+}
+
+.cuIcon-pulldown:before {
+ content: "\e69f";
+}
+
+.cuIcon-pullup:before {
+ content: "\e6a0";
+}
+
+.cuIcon-right:before {
+ content: "\e6a3";
+}
+
+.cuIcon-refresh:before {
+ content: "\e6a4";
+}
+
+.cuIcon-moreandroid:before {
+ content: "\e6a5";
+}
+
+.cuIcon-deletefill:before {
+ content: "\e6a6";
+}
+
+.cuIcon-refund:before {
+ content: "\e6ac";
+}
+
+.cuIcon-cart:before {
+ content: "\e6af";
+}
+
+.cuIcon-qrcode:before {
+ content: "\e6b0";
+}
+
+.cuIcon-remind:before {
+ content: "\e6b2";
+}
+
+.cuIcon-delete:before {
+ content: "\e6b4";
+}
+
+.cuIcon-profile:before {
+ content: "\e6b7";
+}
+
+.cuIcon-home:before {
+ content: "\e6b8";
+}
+
+.cuIcon-cartfill:before {
+ content: "\e6b9";
+}
+
+.cuIcon-discoverfill:before {
+ content: "\e6ba";
+}
+
+.cuIcon-homefill:before {
+ content: "\e6bb";
+}
+
+.cuIcon-message:before {
+ content: "\e6bc";
+}
+
+.cuIcon-addressbook:before {
+ content: "\e6bd";
+}
+
+.cuIcon-link:before {
+ content: "\e6bf";
+}
+
+.cuIcon-lock:before {
+ content: "\e6c0";
+}
+
+.cuIcon-unlock:before {
+ content: "\e6c2";
+}
+
+.cuIcon-vip:before {
+ content: "\e6c3";
+}
+
+.cuIcon-weibo:before {
+ content: "\e6c4";
+}
+
+.cuIcon-activity:before {
+ content: "\e6c5";
+}
+
+.cuIcon-friendaddfill:before {
+ content: "\e6c9";
+}
+
+.cuIcon-friendadd:before {
+ content: "\e6ca";
+}
+
+.cuIcon-friendfamous:before {
+ content: "\e6cb";
+}
+
+.cuIcon-friend:before {
+ content: "\e6cc";
+}
+
+.cuIcon-goods:before {
+ content: "\e6cd";
+}
+
+.cuIcon-selection:before {
+ content: "\e6ce";
+}
+
+.cuIcon-explore:before {
+ content: "\e6d2";
+}
+
+.cuIcon-present:before {
+ content: "\e6d3";
+}
+
+.cuIcon-squarecheckfill:before {
+ content: "\e6d4";
+}
+
+.cuIcon-square:before {
+ content: "\e6d5";
+}
+
+.cuIcon-squarecheck:before {
+ content: "\e6d6";
+}
+
+.cuIcon-round:before {
+ content: "\e6d7";
+}
+
+.cuIcon-roundaddfill:before {
+ content: "\e6d8";
+}
+
+.cuIcon-roundadd:before {
+ content: "\e6d9";
+}
+
+.cuIcon-add:before {
+ content: "\e6da";
+}
+
+.cuIcon-notificationforbidfill:before {
+ content: "\e6db";
+}
+
+.cuIcon-explorefill:before {
+ content: "\e6dd";
+}
+
+.cuIcon-fold:before {
+ content: "\e6de";
+}
+
+.cuIcon-game:before {
+ content: "\e6df";
+}
+
+.cuIcon-redpacket:before {
+ content: "\e6e0";
+}
+
+.cuIcon-selectionfill:before {
+ content: "\e6e1";
+}
+
+.cuIcon-similar:before {
+ content: "\e6e2";
+}
+
+.cuIcon-appreciatefill:before {
+ content: "\e6e3";
+}
+
+.cuIcon-infofill:before {
+ content: "\e6e4";
+}
+
+.cuIcon-info:before {
+ content: "\e6e5";
+}
+
+.cuIcon-forwardfill:before {
+ content: "\e6ea";
+}
+
+.cuIcon-forward:before {
+ content: "\e6eb";
+}
+
+.cuIcon-rechargefill:before {
+ content: "\e6ec";
+}
+
+.cuIcon-recharge:before {
+ content: "\e6ed";
+}
+
+.cuIcon-vipcard:before {
+ content: "\e6ee";
+}
+
+.cuIcon-voice:before {
+ content: "\e6ef";
+}
+
+.cuIcon-voicefill:before {
+ content: "\e6f0";
+}
+
+.cuIcon-friendfavor:before {
+ content: "\e6f1";
+}
+
+.cuIcon-wifi:before {
+ content: "\e6f2";
+}
+
+.cuIcon-share:before {
+ content: "\e6f3";
+}
+
+.cuIcon-wefill:before {
+ content: "\e6f4";
+}
+
+.cuIcon-we:before {
+ content: "\e6f5";
+}
+
+.cuIcon-lightauto:before {
+ content: "\e6f6";
+}
+
+.cuIcon-lightforbid:before {
+ content: "\e6f7";
+}
+
+.cuIcon-lightfill:before {
+ content: "\e6f8";
+}
+
+.cuIcon-camerarotate:before {
+ content: "\e6f9";
+}
+
+.cuIcon-light:before {
+ content: "\e6fa";
+}
+
+.cuIcon-barcode:before {
+ content: "\e6fb";
+}
+
+.cuIcon-flashlightclose:before {
+ content: "\e6fc";
+}
+
+.cuIcon-flashlightopen:before {
+ content: "\e6fd";
+}
+
+.cuIcon-searchlist:before {
+ content: "\e6fe";
+}
+
+.cuIcon-service:before {
+ content: "\e6ff";
+}
+
+.cuIcon-sort:before {
+ content: "\e700";
+}
+
+.cuIcon-down:before {
+ content: "\e703";
+}
+
+.cuIcon-mobile:before {
+ content: "\e704";
+}
+
+.cuIcon-mobilefill:before {
+ content: "\e705";
+}
+
+.cuIcon-copy:before {
+ content: "\e706";
+}
+
+.cuIcon-countdownfill:before {
+ content: "\e707";
+}
+
+.cuIcon-countdown:before {
+ content: "\e708";
+}
+
+.cuIcon-noticefill:before {
+ content: "\e709";
+}
+
+.cuIcon-notice:before {
+ content: "\e70a";
+}
+
+.cuIcon-upstagefill:before {
+ content: "\e70e";
+}
+
+.cuIcon-upstage:before {
+ content: "\e70f";
+}
+
+.cuIcon-babyfill:before {
+ content: "\e710";
+}
+
+.cuIcon-baby:before {
+ content: "\e711";
+}
+
+.cuIcon-brandfill:before {
+ content: "\e712";
+}
+
+.cuIcon-brand:before {
+ content: "\e713";
+}
+
+.cuIcon-choicenessfill:before {
+ content: "\e714";
+}
+
+.cuIcon-choiceness:before {
+ content: "\e715";
+}
+
+.cuIcon-clothesfill:before {
+ content: "\e716";
+}
+
+.cuIcon-clothes:before {
+ content: "\e717";
+}
+
+.cuIcon-creativefill:before {
+ content: "\e718";
+}
+
+.cuIcon-creative:before {
+ content: "\e719";
+}
+
+.cuIcon-female:before {
+ content: "\e71a";
+}
+
+.cuIcon-keyboard:before {
+ content: "\e71b";
+}
+
+.cuIcon-male:before {
+ content: "\e71c";
+}
+
+.cuIcon-newfill:before {
+ content: "\e71d";
+}
+
+.cuIcon-new:before {
+ content: "\e71e";
+}
+
+.cuIcon-pullleft:before {
+ content: "\e71f";
+}
+
+.cuIcon-pullright:before {
+ content: "\e720";
+}
+
+.cuIcon-rankfill:before {
+ content: "\e721";
+}
+
+.cuIcon-rank:before {
+ content: "\e722";
+}
+
+.cuIcon-bad:before {
+ content: "\e723";
+}
+
+.cuIcon-cameraadd:before {
+ content: "\e724";
+}
+
+.cuIcon-focus:before {
+ content: "\e725";
+}
+
+.cuIcon-friendfill:before {
+ content: "\e726";
+}
+
+.cuIcon-cameraaddfill:before {
+ content: "\e727";
+}
+
+.cuIcon-apps:before {
+ content: "\e729";
+}
+
+.cuIcon-paintfill:before {
+ content: "\e72a";
+}
+
+.cuIcon-paint:before {
+ content: "\e72b";
+}
+
+.cuIcon-picfill:before {
+ content: "\e72c";
+}
+
+.cuIcon-refresharrow:before {
+ content: "\e72d";
+}
+
+.cuIcon-colorlens:before {
+ content: "\e6e6";
+}
+
+.cuIcon-markfill:before {
+ content: "\e730";
+}
+
+.cuIcon-mark:before {
+ content: "\e731";
+}
+
+.cuIcon-presentfill:before {
+ content: "\e732";
+}
+
+.cuIcon-repeal:before {
+ content: "\e733";
+}
+
+.cuIcon-album:before {
+ content: "\e734";
+}
+
+.cuIcon-peoplefill:before {
+ content: "\e735";
+}
+
+.cuIcon-people:before {
+ content: "\e736";
+}
+
+.cuIcon-servicefill:before {
+ content: "\e737";
+}
+
+.cuIcon-repair:before {
+ content: "\e738";
+}
+
+.cuIcon-file:before {
+ content: "\e739";
+}
+
+.cuIcon-repairfill:before {
+ content: "\e73a";
+}
+
+.cuIcon-taoxiaopu:before {
+ content: "\e73b";
+}
+
+.cuIcon-weixin:before {
+ content: "\e612";
+}
+
+.cuIcon-attentionfill:before {
+ content: "\e73c";
+}
+
+.cuIcon-attention:before {
+ content: "\e73d";
+}
+
+.cuIcon-commandfill:before {
+ content: "\e73e";
+}
+
+.cuIcon-command:before {
+ content: "\e73f";
+}
+
+.cuIcon-communityfill:before {
+ content: "\e740";
+}
+
+.cuIcon-community:before {
+ content: "\e741";
+}
+
+.cuIcon-read:before {
+ content: "\e742";
+}
+
+.cuIcon-calendar:before {
+ content: "\e74a";
+}
+
+.cuIcon-cut:before {
+ content: "\e74b";
+}
+
+.cuIcon-magic:before {
+ content: "\e74c";
+}
+
+.cuIcon-backwardfill:before {
+ content: "\e74d";
+}
+
+.cuIcon-playfill:before {
+ content: "\e74f";
+}
+
+.cuIcon-stop:before {
+ content: "\e750";
+}
+
+.cuIcon-tagfill:before {
+ content: "\e751";
+}
+
+.cuIcon-tag:before {
+ content: "\e752";
+}
+
+.cuIcon-group:before {
+ content: "\e753";
+}
+
+.cuIcon-all:before {
+ content: "\e755";
+}
+
+.cuIcon-backdelete:before {
+ content: "\e756";
+}
+
+.cuIcon-hotfill:before {
+ content: "\e757";
+}
+
+.cuIcon-hot:before {
+ content: "\e758";
+}
+
+.cuIcon-post:before {
+ content: "\e759";
+}
+
+.cuIcon-radiobox:before {
+ content: "\e75b";
+}
+
+.cuIcon-rounddown:before {
+ content: "\e75c";
+}
+
+.cuIcon-upload:before {
+ content: "\e75d";
+}
+
+.cuIcon-writefill:before {
+ content: "\e760";
+}
+
+.cuIcon-write:before {
+ content: "\e761";
+}
+
+.cuIcon-radioboxfill:before {
+ content: "\e763";
+}
+
+.cuIcon-punch:before {
+ content: "\e764";
+}
+
+.cuIcon-shake:before {
+ content: "\e765";
+}
+
+.cuIcon-move:before {
+ content: "\e768";
+}
+
+.cuIcon-safe:before {
+ content: "\e769";
+}
+
+.cuIcon-activityfill:before {
+ content: "\e775";
+}
+
+.cuIcon-crownfill:before {
+ content: "\e776";
+}
+
+.cuIcon-crown:before {
+ content: "\e777";
+}
+
+.cuIcon-goodsfill:before {
+ content: "\e778";
+}
+
+.cuIcon-messagefill:before {
+ content: "\e779";
+}
+
+.cuIcon-profilefill:before {
+ content: "\e77a";
+}
+
+.cuIcon-sound:before {
+ content: "\e77b";
+}
+
+.cuIcon-sponsorfill:before {
+ content: "\e77c";
+}
+
+.cuIcon-sponsor:before {
+ content: "\e77d";
+}
+
+.cuIcon-upblock:before {
+ content: "\e77e";
+}
+
+.cuIcon-weblock:before {
+ content: "\e77f";
+}
+
+.cuIcon-weunblock:before {
+ content: "\e780";
+}
+
+.cuIcon-my:before {
+ content: "\e78b";
+}
+
+.cuIcon-myfill:before {
+ content: "\e78c";
+}
+
+.cuIcon-emojifill:before {
+ content: "\e78d";
+}
+
+.cuIcon-emojiflashfill:before {
+ content: "\e78e";
+}
+
+.cuIcon-flashbuyfill:before {
+ content: "\e78f";
+}
+
+.cuIcon-text:before {
+ content: "\e791";
+}
+
+.cuIcon-goodsfavor:before {
+ content: "\e794";
+}
+
+.cuIcon-musicfill:before {
+ content: "\e795";
+}
+
+.cuIcon-musicforbidfill:before {
+ content: "\e796";
+}
+
+.cuIcon-card:before {
+ content: "\e624";
+}
+
+.cuIcon-triangledownfill:before {
+ content: "\e79b";
+}
+
+.cuIcon-triangleupfill:before {
+ content: "\e79c";
+}
+
+.cuIcon-roundleftfill-copy:before {
+ content: "\e79e";
+}
+
+.cuIcon-font:before {
+ content: "\e76a";
+}
+
+.cuIcon-title:before {
+ content: "\e82f";
+}
+
+.cuIcon-recordfill:before {
+ content: "\e7a4";
+}
+
+.cuIcon-record:before {
+ content: "\e7a6";
+}
+
+.cuIcon-cardboardfill:before {
+ content: "\e7a9";
+}
+
+.cuIcon-cardboard:before {
+ content: "\e7aa";
+}
+
+.cuIcon-formfill:before {
+ content: "\e7ab";
+}
+
+.cuIcon-coin:before {
+ content: "\e7ac";
+}
+
+.cuIcon-cardboardforbid:before {
+ content: "\e7af";
+}
+
+.cuIcon-circlefill:before {
+ content: "\e7b0";
+}
+
+.cuIcon-circle:before {
+ content: "\e7b1";
+}
+
+.cuIcon-attentionforbid:before {
+ content: "\e7b2";
+}
+
+.cuIcon-attentionforbidfill:before {
+ content: "\e7b3";
+}
+
+.cuIcon-attentionfavorfill:before {
+ content: "\e7b4";
+}
+
+.cuIcon-attentionfavor:before {
+ content: "\e7b5";
+}
+
+.cuIcon-titles:before {
+ content: "\e701";
+}
+
+.cuIcon-icloading:before {
+ content: "\e67a";
+}
+
+.cuIcon-full:before {
+ content: "\e7bc";
+}
+
+.cuIcon-mail:before {
+ content: "\e7bd";
+}
+
+.cuIcon-peoplelist:before {
+ content: "\e7be";
+}
+
+.cuIcon-goodsnewfill:before {
+ content: "\e7bf";
+}
+
+.cuIcon-goodsnew:before {
+ content: "\e7c0";
+}
+
+.cuIcon-medalfill:before {
+ content: "\e7c1";
+}
+
+.cuIcon-medal:before {
+ content: "\e7c2";
+}
+
+.cuIcon-newsfill:before {
+ content: "\e7c3";
+}
+
+.cuIcon-newshotfill:before {
+ content: "\e7c4";
+}
+
+.cuIcon-newshot:before {
+ content: "\e7c5";
+}
+
+.cuIcon-news:before {
+ content: "\e7c6";
+}
+
+.cuIcon-videofill:before {
+ content: "\e7c7";
+}
+
+.cuIcon-video:before {
+ content: "\e7c8";
+}
+
+.cuIcon-exit:before {
+ content: "\e7cb";
+}
+
+.cuIcon-skinfill:before {
+ content: "\e7cc";
+}
+
+.cuIcon-skin:before {
+ content: "\e7cd";
+}
+
+.cuIcon-moneybagfill:before {
+ content: "\e7ce";
+}
+
+.cuIcon-usefullfill:before {
+ content: "\e7cf";
+}
+
+.cuIcon-usefull:before {
+ content: "\e7d0";
+}
+
+.cuIcon-moneybag:before {
+ content: "\e7d1";
+}
+
+.cuIcon-redpacket_fill:before {
+ content: "\e7d3";
+}
+
+.cuIcon-subscription:before {
+ content: "\e7d4";
+}
+
+.cuIcon-loading1:before {
+ content: "\e633";
+}
+
+.cuIcon-github:before {
+ content: "\e692";
+}
+
+.cuIcon-global:before {
+ content: "\e7eb";
+}
+
+.cuIcon-settingsfill:before {
+ content: "\e6ab";
+}
+
+.cuIcon-back_android:before {
+ content: "\e7ed";
+}
+
+.cuIcon-expressman:before {
+ content: "\e7ef";
+}
+
+.cuIcon-evaluate_fill:before {
+ content: "\e7f0";
+}
+
+.cuIcon-group_fill:before {
+ content: "\e7f5";
+}
+
+.cuIcon-play_forward_fill:before {
+ content: "\e7f6";
+}
+
+.cuIcon-deliver_fill:before {
+ content: "\e7f7";
+}
+
+.cuIcon-notice_forbid_fill:before {
+ content: "\e7f8";
+}
+
+.cuIcon-fork:before {
+ content: "\e60c";
+}
+
+.cuIcon-pick:before {
+ content: "\e7fa";
+}
+
+.cuIcon-wenzi:before {
+ content: "\e6a7";
+}
+
+.cuIcon-ellipse:before {
+ content: "\e600";
+}
+
+.cuIcon-qr_code:before {
+ content: "\e61b";
+}
+
+.cuIcon-dianhua:before {
+ content: "\e64d";
+}
+
+.cuIcon-cuIcon:before {
+ content: "\e602";
+}
+
+.cuIcon-loading2:before {
+ content: "\e7f1";
+}
+
+.cuIcon-btn:before {
+ content: "\e601";
+}
diff --git a/components/watch-login/watch-button.vue b/components/watch-login/watch-button.vue
new file mode 100644
index 0000000..8249d3a
--- /dev/null
+++ b/components/watch-login/watch-button.vue
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/components/watch-login/watch-input.vue b/components/watch-login/watch-input.vue
new file mode 100644
index 0000000..e7160f5
--- /dev/null
+++ b/components/watch-login/watch-input.vue
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+ {{ getVerCodeSecond }}
+
+
+
+
+
+
+
diff --git a/components/wyb-popup/iconfont.css b/components/wyb-popup/iconfont.css
new file mode 100644
index 0000000..5890a5d
--- /dev/null
+++ b/components/wyb-popup/iconfont.css
@@ -0,0 +1,16 @@
+@font-face {font-family: "iconfont";
+ src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAKUAAsAAAAABlAAAAJJAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcApcdgE2AiQDCAsGAAQgBYRtBy8bmwXIrjBu4UkbIjvjLimCmu1EP9KHAd4jgmi/3+zde18toRbpnkUTzRKRUkgQE6RA9xL+tMuG6RYp8bFsgmbcecAB9mDhH67tDS3pQsIsmSbPL7chM1RKsFr5mNDBoUDPJItlaZG8fvhi/tciWcbRfJ7L6U2gA1l9oBz3orEmTRpAvTigAPfCKLISSiNtGLvAJdwn0DCHgMfN/kgLK1jLAvE0p7YWzoUVCparCZWavYV4U6qllxTNa/j5+JeKMEmZWQ1njw1PK39hF+TnFG59QoSADpfI2AEUxFVt+oQpGIc10pYlYF+1wRfTfZfYq12wv86qboEZqLgnpau61VyC21L06V8d9cuJmT795hWPJp8ayHj0wrZNx+/+1Nzdf8MBtu9H2p+tgB5tn/W1PEZvgeD5Xf/if61ZgE9foa3Qz0ttd57gtyh79hS62nKmQlXWDiczp2tqaGAK+we+sZbxPeRDzXiEt2o2RVazQhbsDkpNu6io2UPDNn24aagxRVHHlgkQehaSjg9kPYcs2IvSxENFL0w03ASd2bQW82is0d6iB+YE2ZWCOO5tNKodIN0xe51Vh/wE15t5DGQsUcy1UOB6jg19T1NjSyCsJQcFHkPGJJS1XKC7jaXtVpV4nNS9KGYl16KOrCHbFvIA4wRkLkkg/uitaOn9A4jaYWzrlq6a/ARa25hPDiRG9CBbBtGr616e6faolGGLAMGaxAEFZiGGkUCpn7WAXFsxaURSKeH2oNDXEFvfxL/uGDRY1hT2lKy8Y3KDmgYA') format('woff2')
+}
+
+.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 30px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-close:before {
+ content: "\e622";
+}
+
diff --git a/components/wyb-popup/wyb-popup.vue b/components/wyb-popup/wyb-popup.vue
new file mode 100644
index 0000000..f93c12a
--- /dev/null
+++ b/components/wyb-popup/wyb-popup.vue
@@ -0,0 +1,420 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/components/yunmiao-jobSelect/README.md b/components/yunmiao-jobSelect/README.md
new file mode 100644
index 0000000..6750c60
--- /dev/null
+++ b/components/yunmiao-jobSelect/README.md
@@ -0,0 +1,109 @@
+说明:适用于职位选择,带模糊搜索分类功能使用方便,基于uview组件库开发,使用本组件请确保引入uview!!!
+1. 引入文件
+```
+ import jobSelect from '@/components/yunmiao-jobSelect/yunmiao-jobSelect.vue'
+export default {
+ components: {
+ jobSelect
+ },
+ ..............
+```
+2.使用组件
+```
+
+```
+3.调用显示隐藏
+```
+this.$refs.jobSelect.show()
+this.$refs.jobSelect.hide()
+```
+4.参数说明
+| 参数 | 默认值 | 说明 | 类型 |
+| ---- | ---- | ---- | ---- |
+| listData | [ ] | 选择数据 | Array |
+| labelName | 'name' | label展示字段 | String |
+| valueName | 'id' | value选中字段 | String |
+| selectValue | [] | 默认选中 | Array |
+5.事件说明
+| 方法 | 说明 |
+| ---- | ---- |
+| @confirem | 返回选中的value |
+6.完整示例
+```
+
+
+
+ 展开区域选择
+
+
+
+
+
+
+```
+
+作者联系方式:
+
+qq:1315723390
+
+wx:ZHT131572
+
+开发交流群:[点击加uniapp开发交流群:971617215](https://qm.qq.com/cgi-bin/qm/qr?k=9ILQir4VGU3XIXm7MtxQYrYShO-b4Zqu&jump_from=webapi)
\ No newline at end of file
diff --git a/components/yunmiao-jobSelect/yunmiao-jobSelect.vue b/components/yunmiao-jobSelect/yunmiao-jobSelect.vue
new file mode 100644
index 0000000..675bad6
--- /dev/null
+++ b/components/yunmiao-jobSelect/yunmiao-jobSelect.vue
@@ -0,0 +1,297 @@
+
+
+
+
+
+
+ {{item.pname}}-{{item[labelName]}}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main.js b/main.js
index 365eb09..6fbe20e 100644
--- a/main.js
+++ b/main.js
@@ -1,21 +1,16 @@
+import Vue from 'vue'
import App from './App'
+import * as filters from './Utils/js/date.js'
-// #ifndef VUE3
-import Vue from 'vue'
-Vue.config.productionTip = false
-App.mpType = 'app'
-const app = new Vue({
- ...App
-})
-app.$mount()
-// #endif
+Object.keys(filters).forEach(key => {
+ Vue.filter(key, filters[key])
+})
-// #ifdef VUE3
-import { createSSRApp } from 'vue'
-export function createApp() {
- const app = createSSRApp(App)
- return {
- app
- }
-}
-// #endif
\ No newline at end of file
+Vue.config.productionTip = false
+
+App.mpType = 'app'
+
+const app = new Vue({
+ ...App
+})
+app.$mount()
diff --git a/manifest.json b/manifest.json
index 2e663a8..b0774de 100644
--- a/manifest.json
+++ b/manifest.json
@@ -50,7 +50,7 @@
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
- "appid" : "",
+ "appid" : "wx6c929e52fcd8913a",
"setting" : {
"urlCheck" : false
},
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..2cc29cd
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,5 @@
+{
+ "name": "high-mini-manage",
+ "lockfileVersion": 2,
+ "requires": true
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..9664f26
--- /dev/null
+++ b/package.json
@@ -0,0 +1,4 @@
+{
+ "dependencies": {
+ }
+}
diff --git a/pages.json b/pages.json
index bf32f65..b00b192 100644
--- a/pages.json
+++ b/pages.json
@@ -1,10 +1,100 @@
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
- {
- "path": "pages/index/index",
+ {
+ "path": "pages/login/login/login",
+ "style": {
+ "navigationBarTitleText": "登录",
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#0083f5",
+ "backgroundColorTop": "#0083f5",
+ "enablePullDownRefresh": false
+ }
+
+ },{
+ "path": "pages/tabBar/home/home",
"style": {
- "navigationBarTitleText": "uni-app"
+ "navigationBarTextStyle": "white",
+ "navigationBarTitleText": "嗨森逛",
+ "navigationBarBackgroundColor": "#0083f5",
+ "backgroundColorTop": "#0083f5",
+ "onReachBottomDistance": 50,
+ "app-plus": {
+ "titleNView": false, //禁用原生导航栏
+ "softinputNavBar": "none"
+ }
}
+ },{
+ "path": "pages/home/oderDetails/oderDetails",
+ "style": {
+ "navigationBarTitleText": "订单详情",
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#3981ed",
+ "backgroundColorTop": "#3981ed",
+ "enablePullDownRefresh": false
+ }
+ }, {
+ "path": "pages/login/updatePsd/updatePsd",
+ "style": {
+ "navigationBarTitleText": "修改密码",
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#0083f5",
+ "backgroundColorTop": "#0083f5",
+ "enablePullDownRefresh": false
+ }
+
+ }, {
+ "path": "pages/tabBar/user/user",
+ "style": {
+ "enablePullDownRefresh": true,
+ "navigationBarTitleText": "我的",
+ "backgroundTextStyle": "light",
+ "navigationBarBackgroundColor": "#0083f5",
+ "backgroundColorTop": "#0083f5",
+ "navigationBarTextStyle": "white",
+ "app-plus": {
+ "titleNView": false //禁用原生导航栏
+ }
+ }
+ }, {
+ "path": "pages/user/updateOilgun/updateOilgun",
+ "style": {
+ "navigationBarTitleText": "配置油枪",
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#0083f5",
+ "backgroundColorTop": "#0083f5",
+ "enablePullDownRefresh": false
+ }
+
+ }, {
+ "path": "pages/user/updateOilprice/updateOilprice",
+ "style": {
+ "navigationBarTitleText": "修改油品价格",
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#0083f5",
+ "backgroundColorTop": "#0083f5",
+ "enablePullDownRefresh": false
+ }
+
+ }, {
+ "path": "pages/user/oil-list/oil-list",
+ "style": {
+ "navigationBarTitleText": "设置油枪",
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#0083f5",
+ "backgroundColorTop": "#0083f5",
+ "enablePullDownRefresh": false
+ }
+
+ }, {
+ "path": "pages/user/addOils/addOils",
+ "style": {
+ "navigationBarTitleText": "新增油品",
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#0083f5",
+ "backgroundColorTop": "#0083f5",
+ "enablePullDownRefresh": false
+ }
+
}
],
"globalStyle": {
@@ -12,5 +102,24 @@
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
+ },
+ "tabBar": {
+ "color": "#333333",
+ "selectedColor": "#0083f5",
+ "borderStyle": "black",
+ "backgroundColor": "#ffffff",
+ "list": [{
+ "pagePath": "pages/tabBar/home/home",
+ "iconPath": "static/img/tabBar/home.png",
+ "selectedIconPath": "static/img/tabBar/home-on.png",
+ "text": "嗨森逛"
+ },
+ {
+ "pagePath": "pages/tabBar/user/user",
+ "iconPath": "static/img/tabBar/user.png",
+ "selectedIconPath": "static/img/tabBar/user-on.png",
+ "text": "我的"
+ }
+ ]
}
}
diff --git a/pages/home/oderDetails/oderDetails.vue b/pages/home/oderDetails/oderDetails.vue
new file mode 100644
index 0000000..7374537
--- /dev/null
+++ b/pages/home/oderDetails/oderDetails.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+ 已支付订单
+ {{oilorderdetails.payTime | timeFormat('yyyy-mm-dd hh:mm:ss')}}
+
+
+ 实际支付: ¥{{oilorderdetails.payRealPrice}}
+
+
+
+ 优惠立减: ¥{{oilorderdetails.deductionPrice}}
+
+
+
+ 加油订单
+
+
+
+ 商家/订单信息
+
+
+ 交易单号
+ {{oilorderdetails.orderNo}}
+
+
+ 下单时间
+ {{oilorderdetails.createTime | timeFormat('yyyy-mm-dd hh:mm:ss')}}
+
+
+ 油站名称
+ {{oilorderdetails.gasName}}
+
+
+ 地址
+ {{oilorderdetails.gasAddress}}
+
+
+
+ 商品信息
+
+
+ 油号/油枪
+ {{oilorderdetails.gasOilNo}}#/{{oilorderdetails.gasGunNo}}号枪
+
+
+ 油站价
+ ¥{{oilorderdetails.gasPriceGun}}
+
+
+ 加油升数实际升数以油站加油机为准
+ {{oilorderdetails.gasOilLiters}}升
+
+
+ 加油金额
+ ¥{{oilorderdetails.totalPrice}}
+
+
+
+ 优惠信息
+
+
+ 加油折扣
+ {{oilorderdetails.gasDiscount}}
+ 0折
+
+
+ 加油补贴
+ {{oilorderdetails.gasOilSubsidy}}
+ ¥0
+
+
+ 每升优惠
+ {{oilorderdetails.gasLitersPreferences}}
+ ¥0
+
+
+ 优惠价格
+ {{oilorderdetails.gasPricePreferences}}
+ ¥0
+
+
+
+ 加油实付金额
+ ¥{{oilorderdetails.payRealPrice}}
+
+
+
+ 支付宝支付
+ 微信支付
+ 金币支付
+ 汇联通工会卡支付
+ 银联支付
+ 银联分期支付
+ ¥{{oilorderdetails.payRealPrice}}
+
+
+
+
+
+
+
+
diff --git a/pages/index/index.vue b/pages/index/index.vue
deleted file mode 100644
index 4ca2b92..0000000
--- a/pages/index/index.vue
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
- {{title}}
-
-
-
-
-
-
-
diff --git a/pages/login/css/main.css b/pages/login/css/main.css
new file mode 100644
index 0000000..b49b59a
--- /dev/null
+++ b/pages/login/css/main.css
@@ -0,0 +1,87 @@
+.content {
+ display: flex;
+ flex-direction: column;
+ justify-content:center;
+ /* margin-top: 128rpx; */
+}
+
+/* 头部 logo */
+.header {
+ width:161rpx;
+ height:161rpx;
+ box-shadow:0rpx 0rpx 60rpx 0rpx rgba(0,0,0,0.1);
+ border-radius:50%;
+ background-color: #000000;
+ margin-top: 128rpx;
+ margin-bottom: 72rpx;
+ margin-left: auto;
+ margin-right: auto;
+}
+.header image{
+ width:161rpx;
+ height:161rpx;
+ border-radius:50%;
+}
+
+/* 主体 */
+.main {
+ display: flex;
+ flex-direction: column;
+ padding-left: 70rpx;
+ padding-right: 70rpx;
+}
+.tips {
+ color: #999999;
+ font-size: 28rpx;
+ margin-top: 64rpx;
+ margin-left: 48rpx;
+}
+
+/* 登录按钮 */
+.wbutton{
+ margin-top: 96rpx;
+}
+
+/* 其他登录方式 */
+.other_login{
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ margin-top: 256rpx;
+ text-align: center;
+}
+.login_icon{
+ border: none;
+ font-size: 64rpx;
+ margin: 0 64rpx 0 64rpx;
+ color: rgba(0,0,0,0.7)
+}
+.wechat_color{
+ color: #83DC42;
+}
+.weibo_color{
+ color: #F9221D;
+}
+.github_color{
+ color: #24292E;
+}
+
+/* 底部 */
+.footer{
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ font-size: 28rpx;
+ margin-top: 64rpx;
+ color: rgba(0,0,0,0.7);
+ text-align: center;
+ height: 40rpx;
+ line-height: 40rpx;
+}
+.footer text{
+ font-size: 24rpx;
+ margin-left: 15rpx;
+ margin-right: 15rpx;
+}
\ No newline at end of file
diff --git a/pages/login/login/login.vue b/pages/login/login/login.vue
new file mode 100644
index 0000000..4dec6c1
--- /dev/null
+++ b/pages/login/login/login.vue
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/login/updatePsd/updatePsd.vue b/pages/login/updatePsd/updatePsd.vue
new file mode 100644
index 0000000..9b36242
--- /dev/null
+++ b/pages/login/updatePsd/updatePsd.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/tabBar/home/home.vue b/pages/tabBar/home/home.vue
new file mode 100644
index 0000000..49f022b
--- /dev/null
+++ b/pages/tabBar/home/home.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+ 全部
+ 已完成
+ 已退款
+
+
+
+ {{item.orderNo}}
+
+ 待支付
+ 已支付
+ 已完成
+ 已退款
+ 已取消
+ 已退款
+ 拒绝退款
+
+
+
+
+
+
+ 油品: {{item.gasOilNo}} 升数: {{item.gasOilLiters}}L
+
+
+ 加油金额: ¥{{item.totalPrice}}
+ 实付:
+ ¥{{item.payRealPrice}}
+ ¥0
+
+
+
+
+
+ 下单时间:
+ {{item.createTime | timeFormat('yyyy-mm-dd hh:mm:ss')}}
+
+
+
+
+
+
+
diff --git a/pages/tabBar/user/user.vue b/pages/tabBar/user/user.vue
new file mode 100644
index 0000000..fac1ba2
--- /dev/null
+++ b/pages/tabBar/user/user.vue
@@ -0,0 +1,182 @@
+
+
+
+
+ {{userinfo.merchantStore.storeName}}
+ 暂无信息
+
+
+ 今日总收入
+ ¥{{oilInfo.today.incomePrice}}
+
+
+ 收款笔数
+ {{oilInfo.today.incomeCount}}
+
+
+ 退款笔数
+ {{oilInfo.today.refundCount}}
+
+
+
+
+
+
+
+ 消息中心
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+
+
+
+
+
+
diff --git a/pages/user/addOils/addOils.vue b/pages/user/addOils/addOils.vue
new file mode 100644
index 0000000..5435748
--- /dev/null
+++ b/pages/user/addOils/addOils.vue
@@ -0,0 +1,187 @@
+
+
+
+ 油品选择
+
+ {{typeName}}
+
+
+
+
+
+
+ 油站价
+
+
+
+ 优惠幅度
+
+
+ 提 交
+
+
+
+
+
+
diff --git a/pages/user/oil-list/oil-list.vue b/pages/user/oil-list/oil-list.vue
new file mode 100644
index 0000000..a58d330
--- /dev/null
+++ b/pages/user/oil-list/oil-list.vue
@@ -0,0 +1,176 @@
+
+
+ 选择油品
+
+ {{item.oilNoName}}
+
+
+ 新 增 油 品
+
+
+
+
+
+
diff --git a/pages/user/updateOilgun/updateOilgun.vue b/pages/user/updateOilgun/updateOilgun.vue
new file mode 100644
index 0000000..8413a7f
--- /dev/null
+++ b/pages/user/updateOilgun/updateOilgun.vue
@@ -0,0 +1,173 @@
+
+
+
+ {{item.gunNo}}号枪
+
+
+
+ 新 增 油 枪
+
+
+
+
+
+
diff --git a/pages/user/updateOilprice/updateOilprice.vue b/pages/user/updateOilprice/updateOilprice.vue
new file mode 100644
index 0000000..4de4b2f
--- /dev/null
+++ b/pages/user/updateOilprice/updateOilprice.vue
@@ -0,0 +1,177 @@
+
+
+
+ 国标价
+
+
+
+ 油站价
+
+
+
+ 优惠幅度
+
+
+ 修 改
+
+
+
+
+
+
diff --git a/static/iconfont/font.scss b/static/iconfont/font.scss
new file mode 100644
index 0000000..976fb14
--- /dev/null
+++ b/static/iconfont/font.scss
@@ -0,0 +1,163 @@
+@font-face {
+ font-family: 'HM-font';
+ src: url('data:application/x-font-woff2;charset=utf-8;base64,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')
+ format('woff2');
+}
+.icon {
+ font-family: 'HM-font' !important;
+ font-size: 60upx;
+ font-style: normal;
+ color: #000000;
+ &.yuyin-home:before {
+ content: '\e64e';
+ }
+ &.tongzhi:before {
+ content: '\e729';
+ }
+ &.search:before {
+ content: '\e628';
+ }
+ &.location:before {
+ content: '\e611';
+ }
+ &.xia:before {
+ content: '\e689';
+ }
+ &.bofang:before {
+ content: '\e696';
+ }
+
+ &.guanbi:before {
+ content: '\e61a';
+ }
+ &.fenxiang:before {
+ content: '\e642';
+ }
+
+ &.xiangqian:before {
+ content: '\e634';
+ }
+
+ &.xiangyou:before {
+ content: '\e637';
+ }
+
+ &.shoucangsel:before {
+ content: '\e62c';
+ }
+
+ &.shoucang:before {
+ content: '\e62e';
+ }
+
+ &.kefu:before {
+ content: '\e61e';
+ }
+
+ &.cart:before {
+ content: '\e619';
+ }
+ &.jia:before {
+ content: '\e641';
+ }
+
+ &.jian:before {
+ content: '\e643';
+ }
+ &.sheng:before {
+ content: '\e737';
+ }
+
+ &.jiang:before {
+ content: '\e736';
+ }
+ &.weixin:before {
+ content: '\e61c';
+ }
+
+ &.qq:before {
+ content: '\e752';
+ }
+
+ &.sinaweibo:before {
+ content: '\e63d';
+ }
+
+ &.xiaomi:before {
+ content: '\e661';
+ }
+ &.biaoqing:before {
+ content: '\e797';
+ }
+ &.jianpan:before {
+ content: '\e7b2';
+ }
+ &.yuyin:before {
+ content: '\e805';
+ }
+ &.tupian:before {
+ content: '\e639';
+ }
+ &.chehui:before {
+ content: '\e904';
+ }
+ &.luyin:before {
+ content: '\e905';
+ }
+ &.luyin2:before {
+ content: '\e677';
+ }
+ &.other-voice:before {
+ content: '\e667';
+ }
+ &.my-voice:before {
+ content: '\e906';
+ }
+ &.shanchu:before {
+ content: '\e6a4';
+ }
+
+ &.setting:before {
+ content: '\e64f';
+ }
+
+ &.qr:before {
+ content: '\e600';
+ }
+
+ &.chongzhi:before {
+ content: '\e648';
+ }
+
+ &.fukuan:before {
+ content: '\e67f';
+ }
+
+ &.fahuo:before {
+ content: '\e680';
+ }
+
+ &.shouhuo:before {
+ content: '\e6b1';
+ }
+
+ &.pingjia:before {
+ content: '\e66b';
+ }
+
+ &.tuihuo:before {
+ content: '\e66c';
+ }
+
+ &.bianji:before {
+ content: '\e61b';
+ }
+
+ &.tianjia:before {
+ content: '\e81a';
+ }
+
+ &.shixiao:before {
+ content: '\e669';
+ }
+}
diff --git a/static/iconfont/iconfont.ttf b/static/iconfont/iconfont.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..c0f0be8e2fb5e79bbeba993f5637e6824339224e
GIT binary patch
literal 20036
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
literal 0
HcmV?d00001
diff --git a/static/img/2.png b/static/img/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..582512e57d6e8e01a33c9c4c0e4f899db4b972a4
GIT binary patch
literal 4793
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
literal 0
HcmV?d00001
diff --git a/static/img/3.png b/static/img/3.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd94054ee0f9fd24d92f97f27df2d5ac9cfb2671
GIT binary patch
literal 3641
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
literal 0
HcmV?d00001
diff --git a/static/img/6.png b/static/img/6.png
new file mode 100644
index 0000000000000000000000000000000000000000..28b845eb663dfc7979549ebfccc8d4689fd4eb61
GIT binary patch
literal 7654
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
literal 0
HcmV?d00001
diff --git a/static/img/7.png b/static/img/7.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5d6b8f198b10452aa26ab52a79ab60200ba209b
GIT binary patch
literal 2895
zcmd5;X;f2576yDYFRWP*5F$K6*o3wPX(1|xhY2Legn(=!1Z7h|K_WB?$`VEitIwcd
zY*_`tW|vI`n(k(iO~ivD$i4{}gb{=&vP|03^J{+2nKSdF>fT%DeBZrwPt{kIz+_m<
zNvleWiHXV4X%q*MZU1wC--+f@*Rm`zF&QN~1$Ml|`jF{)Hs57e{Mi0th8(x~yhefB&7g*g$0li`
zPH?LXrn|c~c2DEOFR8YD=hp0W_Ag~z?5P{OobA5&>#X_g)u`EtV}6egF+Ov|fHv%f
zidd1sS)hZY0C~+A$Xx-1z;H2%8So!~{<9P(D-hz|%-L0i7yqw?u{M(aS%PS0YR3p`
z7&W_@Y{tj@u%EEp&z`FIRn7a7v@bQzG{e@l(btmLWP1K9X`4)W4Xf5iJ=auu1t1lc-x^|Xh;$q53
zx_G1YpxIT;3%4yaJyi_rqSfPQim=}ca&){wA~~`BT=LOAoP;S_W!-A(e)DmS^}w^n
z_JDucYP8{2jga)2W1%X+h%%n5Zo)=XjdM&Q)w0nccJW8_Hlcm|nCALx#Is)o)6|NLtd+m{KChAcj*
zS50Xv=ooSkk2M1t9!Fju>2GC@#7P_1zuiu~xLnGNzpnsP0}UBV@)>W(`peW@H2!QU
zIbv)ow5a)|l!P|8aklq-bWO|C9T|X<&r}9saqAoC6RaZeb&d-Vd<-jH>I=AoLA(Bxiu%
zttXHsk`A+gj`ejrQ#>zu_U};NNbW*0GCj`45Wg0aH)Ck*{RRMkYwJ!Cg(vW~LgU`B
zOo_aO6-)HUh|%#BV!gce-v~^q{auh!
zypeB!<8+suXR$}M=nFsNE2Eu6BrQz;-RTxPMc#nyyb|9cfQ}}zbE*~WpaLR@JwiUH
z10gn8fR5HV*`kS9Vu6IT-5xj$_j?qFD9t-RiQ(#_I4xZ%Jt$NQ4}h`P+nqx|v)R4p
z!rXMdL#+`N$9aCTg)PbIC`5atH>hV4JHUo$b1icj$rjQiH1Wi}bBa8RJtEI1;FFCd
zRDcJ0M27&$r13I52
zG=1-XbIPv)#IAO}E+nz>_jYn#&B|LJ(q|`ICqXaEJj_+Ko=uQ6Y37R|w~iB@`IP7Y
zs4u&&xuh%i>v}h?8X(?JlWjrl`~A{Md9K|sdioASet)ncp?&L`Me6*F1$wu^!>>4i
zbSw7c7bjd6L}<^=h|}frPIzQP?YXk+ciB-imx`lE+-avx&lNp_V}|HrpYRZ!Z54q&
zuL^%9sQ~eIbUOok(RlTE(90GHuwCCg>v1c3NmnccvT?EIbi`X(t|=f7$zNQ`w>$Kn
z#w%qArmI&;Z#20C4+D-K;^Qe&BJTfz68)Q~J%wCCXB^L1j<-LFob8X#?Dx`B-|Kka
zKHIN+TMhHX)Wcr5cI|F1
zSR1Pr@Id3Y#8;84|Iv8|}I)bm)vF
zL(Lrt-&%N4*Z6d$)A!@@C?Zv$49IJbPcH=@UVAsSy*~MsB}?D)7`os5e0AMZNFalk
znGx{#J_*KjZfVfh_*{J|hT^=pG55=2orls*=eZqy3KCN20sO|w%+#YtpPPC^C&5SC
zO<`nhLa_AJv+MABbb_v%;1GW%tWiYPdr&;e#sjFR_-h<9+##ITfChY>;12^n#z
zIk2So@x?og)bU{(z+t05JQTLF2=*Mh5kXZcDXR+{Orb0_KHLLQEhijK7Oy+o_};%h%QPL<2X{Yt_H$l
jZ~z7uU-CbXf7=%4;wzYWWs`42A7wE*l|d=9JjMAZuE^t6
literal 0
HcmV?d00001
diff --git a/static/img/9.png b/static/img/9.png
new file mode 100644
index 0000000000000000000000000000000000000000..03925449181124827189fb3b26a39ca6470aa85e
GIT binary patch
literal 8455
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
UC2lycQPu#Iz>%
literal 0
HcmV?d00001
diff --git a/static/img/downj.png b/static/img/downj.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbff846c1f2337e56c53009a5b99077a0e7064d9
GIT binary patch
literal 927
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