commit 5ed0fc646f4af014bd2309a1e571b4230ee1bfd8 Author: wangming <2747639460@qq.com> Date: Fri Dec 29 00:08:10 2023 +0800 初始化 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d4b8eb9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +node_modules +unpackage/cache +unpackage/dist +unpackage/release + +.hbuilderx +.idea +.vscode diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..b81cf54 --- /dev/null +++ b/App.vue @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..f6e5ce1 --- /dev/null +++ b/README.md @@ -0,0 +1,56 @@ +# 项目资源 +## 后端接口文档 +https://jx.xiaolinghou.com/api.html + +## 微信配置 + +**公众号appid:** wx877c9b57a770f86e + +**小程序appid:** wxd3ef894000268f39 + +**公众号appsecret:** 08981c42f32bf9433dd6217cac6ffc81 + +**令牌(Token):** i6x66atmwq5db2786357hxtrwg4nkpue + +**消息加解密(AESKey):** qa6h5y6qbx85gv8ceda42nn9buyfdje5r7ui94sstny + + +## 短信平台配置 + +[阿里云短信平台](https://www.aliyun.com/product/sms) + +**AccessKey ID:** LTAI5tFM2EoRya9TB32GwQGf + +**Secret:** wF7opAyy2MNh9aPszWPFXPBKxuzhkp + +**TemplateParam短信模板变量对应的实际值:** {"code":"1234"} + +## 所用UI + +https://lanhuapp.com/link/#/invite?sid=lxr2dzba + +分享人: 519838418 + +团队名称: 智能寄信的团队 + +相关项目: 智能寄信 + +链接有效期: 20230712~20230726 + + +## 所用插件 +Icon: https://iconpark.oceanengine.com/official + + +UI: https://www.uviewui.com/components/intro.html + + +路由: https://www.hhyang.cn/v2/start/quickstart.html + + +请求: https://www.quanzhan.co/luch-request/guide/3.x/ + + +## 以下页面许自行设计 + +![在这里插入图片描述](https://git.yoyij.com/WangMing/mapDepot/raw/branch/main/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230712221507.jpg) diff --git a/components/Copy/Copy.vue b/components/Copy/Copy.vue new file mode 100644 index 0000000..fb53575 --- /dev/null +++ b/components/Copy/Copy.vue @@ -0,0 +1,49 @@ + + + + + \ No newline at end of file diff --git a/components/LoadMessage/LoadMessage.vue b/components/LoadMessage/LoadMessage.vue new file mode 100644 index 0000000..5763fc3 --- /dev/null +++ b/components/LoadMessage/LoadMessage.vue @@ -0,0 +1,46 @@ + + + + + \ No newline at end of file diff --git a/components/Pay-patter/Pay-patter.vue b/components/Pay-patter/Pay-patter.vue new file mode 100644 index 0000000..665f1d4 --- /dev/null +++ b/components/Pay-patter/Pay-patter.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/components/PayType/PayType.vue b/components/PayType/PayType.vue new file mode 100644 index 0000000..e8cfc2d --- /dev/null +++ b/components/PayType/PayType.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/components/SelectProductionMethod/SelectProductionMethod.vue b/components/SelectProductionMethod/SelectProductionMethod.vue new file mode 100644 index 0000000..3c8507a --- /dev/null +++ b/components/SelectProductionMethod/SelectProductionMethod.vue @@ -0,0 +1,93 @@ + + + + + \ No newline at end of file diff --git a/components/event-notice/event-notice.vue b/components/event-notice/event-notice.vue new file mode 100644 index 0000000..0f742c3 --- /dev/null +++ b/components/event-notice/event-notice.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/components/waybill-info/waybill-info.vue b/components/waybill-info/waybill-info.vue new file mode 100644 index 0000000..de73170 --- /dev/null +++ b/components/waybill-info/waybill-info.vue @@ -0,0 +1,93 @@ + + + + + \ No newline at end of file diff --git a/components/waybill/waybill.vue b/components/waybill/waybill.vue new file mode 100644 index 0000000..0246b36 --- /dev/null +++ b/components/waybill/waybill.vue @@ -0,0 +1,111 @@ + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..c3ff205 --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/main.js b/main.js new file mode 100644 index 0000000..3b6455b --- /dev/null +++ b/main.js @@ -0,0 +1,41 @@ +import App from './App' + +// #ifndef VUE3 +import Vue from 'vue' +import './uni.promisify.adaptor'; +// 引入UI框架 +import uView from "uview-ui"; +Vue.use(uView); +import '@icon-park/vue/styles/index.css' +import './store/index.js' +import './store/mine.js' +// 引入 uni-simple-router +import './utils/index.js' +import './utils/directive.js' +import { + router, + RouterMount +} from './router/index.js'; //路径换成自己的 +Vue.use(router); + +Vue.config.productionTip = false; +App.mpType = 'app' +const app = new Vue({ + ...App +}) +app.$mount(); + + +// #endif + +// #ifdef VUE3 +import { + createSSRApp +} from 'vue' +export function createApp() { + const app = createSSRApp(App) + return { + app + } +} +// #endif \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..4e4e082 --- /dev/null +++ b/manifest.json @@ -0,0 +1,114 @@ +{ + "name" : "iSendLetter", + "appid" : "__UNI__EEA218E", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + "publicPath" : "https://jx.xiaolinghou.com/webtest/", + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : { + "OAuth" : {}, + "Payment" : {} + }, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : { + "oauth" : { + "weixin" : { + "appid" : "wx877c9b57a770f86e", + "UniversalLinks" : "" + } + }, + "payment" : { + "weixin" : { + "__platform__" : [ "ios", "android" ], + "appid" : "wx877c9b57a770f86e", + "UniversalLinks" : "" + } + } + } + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "wxd3ef894000268f39", + "setting" : { + "urlCheck" : false, + "es6" : true, + "minified" : true, + "postcss" : true + }, + "usingComponents" : true, + "permission" : {} + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "2", + "h5" : { + "router" : { + "base" : "./" + } + } +} +// "devServer": { +// "proxy": { +// "/api": { +// "target": "https://jx.xiaolinghou.com", +// "changeOrigin": true, +// "secure": true, // 设置支持https协议的代理 +// "pathRewrite": { +// "^/api": "/api" +// }, +// "logLevel": "debug" +// } +// } +// } + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d227823 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,164 @@ +{ + "name": "iSendetter", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "iSendetter", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@icon-park/vue": "^1.4.2", + "luch-request": "^3.1.0", + "uni-read-pages": "^1.0.5", + "uni-simple-router": "^2.0.8-beta.4", + "uview-ui": "^2.0.36" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "peer": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@dcloudio/types": { + "version": "2.6.12", + "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-2.6.12.tgz", + "integrity": "sha512-mrCMwcINy1IFjU9VUqLeWBkj404yWs5paLDttBcA+eqUjanuUQbBcTVPqlrGgkyzLXDcV2oDDZRSNxNpXi4kMQ==" + }, + "node_modules/@icon-park/vue": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/@icon-park/vue/-/vue-1.4.2.tgz", + "integrity": "sha512-YXXC53R0hjM76B2M4ANRI0m2bQB1cifUW+YXxQfGofITP6gr+pSMafBz/vzECYSkW3zZklm2mVuqQj4RAZGR2Q==", + "dependencies": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "csstype": "^3.0.3" + }, + "engines": { + "node": ">= 8.0.0", + "npm": ">= 5.0.0" + }, + "peerDependencies": { + "vue": "2.x" + } + }, + "node_modules/@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz", + "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==" + }, + "node_modules/@vue/compiler-sfc": { + "version": "2.7.14", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", + "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "peer": true, + "dependencies": { + "@babel/parser": "^7.18.4", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/luch-request": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/luch-request/-/luch-request-3.1.0.tgz", + "integrity": "sha512-v3mAoH5TArn+l0wRBOGcHYrchfIkD90PP7IuiQFkxURQzepd5TvMDrG2P1PLw0AU31ZYMTZzUd8XpDgKHo3Vdw==", + "dependencies": { + "@dcloudio/types": "^2.0.16" + }, + "engines": { + "node": "16" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "peer": true + }, + "node_modules/postcss": { + "version": "8.4.25", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.25.tgz", + "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "peer": true, + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uni-read-pages": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/uni-read-pages/-/uni-read-pages-1.0.5.tgz", + "integrity": "sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA==", + "hasInstallScript": true + }, + "node_modules/uni-simple-router": { + "version": "2.0.8-beta.4", + "resolved": "https://registry.npmmirror.com/uni-simple-router/-/uni-simple-router-2.0.8-beta.4.tgz", + "integrity": "sha512-ipTHhOaRvjV8qrt3HosX5pNMhwFYBnFOuKyV5joH0evfXubjrGI5tjdwpmwzfW5h3VBth3iAqScv+pW/QmIJXw==" + }, + "node_modules/uview-ui": { + "version": "2.0.36", + "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.36.tgz", + "integrity": "sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA==", + "engines": { + "HBuilderX": "^3.1.0" + } + }, + "node_modules/vue": { + "version": "2.7.14", + "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.14.tgz", + "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "peer": true, + "dependencies": { + "@vue/compiler-sfc": "2.7.14", + "csstype": "^3.1.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a9e8f2a --- /dev/null +++ b/package.json @@ -0,0 +1,23 @@ +{ + "name": "iSendetter", + "version": "1.0.0", + "description": "", + "main": "main.js", + "dependencies": { + "uview-ui": "^2.0.36", + "@icon-park/vue": "^1.4.2", + "luch-request": "^3.1.0", + "uni-read-pages": "^1.0.5", + "uni-simple-router": "^2.0.8-beta.4" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://git.yoyij.com/Yyf/iSendLetter.git" + }, + "keywords": [], + "author": "", + "license": "ISC" +} \ No newline at end of file diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..5975bd0 --- /dev/null +++ b/pages.json @@ -0,0 +1,253 @@ +{ + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "uni-app", + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, + { + "path": "pages/consult/consult", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, + { + "path": "pages/login/login", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/aiChat/aiChat", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, + { + "path": "pages/editor-letter/editor-letter", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, + { + "path": "pages/letter-view/letter-view", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, + { + "path": "pages/confirmOrder/confirmOrder", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, { + "path": "pages/editor-letter-manual/editor-letter-manual", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, { + "path": "pages/agentBusiness/agentBusiness", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + + }, { + "path": "pages/replyLetterQuery/replyLetterQuery", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + + }, { + "path": "pages/waybill-info/waybill-info", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, { + "path": "pages/register/register", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, { + "path": "pages/mine/mine", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + }, { + "path": "pages/mine/mineOrder", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + }, { + "path": "pages/mine/openMember", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + }, { + "path": "pages/address/address", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + + }, { + "path": "pages/addAddr/addAddr", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + }, { + "path": "pages/coupon/coupon", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + }, { + "path": "pages/queryAddr/queryAddr", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + }, { + "path": "pages/preview/preview", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + }, { + "path": "pages/payPage/payPage", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "app-plus": { + "titleNView": false //禁用原生导航栏,APP和H5可用 + } + } + + }, { + "path": "pages/addrDetails/addrDetails", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + + }, { + "path": "pages/setting/setting", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8" + }, + "uniIdRouter": {}, + "tabBar": { + "color": "#7A7E83", + "selectedColor": "#3cc51f", + // "borderStyle": "#fff7f3", + "borderStyle": "white", + "backgroundColor": "#fff7f3", + "list": [{ + "pagePath": "pages/index/index", + "iconPath": "static/01tab首页1.png", + "selectedIconPath": "static/01tab首页1.png", + "text": "首页" + }, { + "pagePath": "pages/queryAddr/queryAddr", + "iconPath": "static/tab地址1@2x.png", + "selectedIconPath": "static/tab地址1@2x.png", + "text": "地址" + }, + { + "pagePath": "pages/consult/consult", + "iconPath": "static/03客服1@2x.png", + "selectedIconPath": "static/03客服1@2x.png", + "text": "咨询" + }, { + "pagePath": "pages/mine/mine", + "iconPath": "static/04我的4@2x.png", + "selectedIconPath": "static/04我的4@2x.png", + "text": "我的" + } + ] + } +} \ No newline at end of file diff --git a/pages/addAddr/addAddr.vue b/pages/addAddr/addAddr.vue new file mode 100644 index 0000000..965c11a --- /dev/null +++ b/pages/addAddr/addAddr.vue @@ -0,0 +1,220 @@ + + + + + \ No newline at end of file diff --git a/pages/addAddr/address.js b/pages/addAddr/address.js new file mode 100644 index 0000000..037c7bd --- /dev/null +++ b/pages/addAddr/address.js @@ -0,0 +1,1268 @@ +export default [{ + "name": "北京市", + "city": [{ + "name": "北京市", + "area": ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", + "平谷区", "怀柔区", "密云县", "延庆县" + ] + }] +}, { + "name": "天津市", + "city": [{ + "name": "天津市", + "area": ["和平区", "河东区", "河西区", "南开区", "河北区", "红桥区", "塘沽区", "汉沽区", "大港区", "东丽区", "西青区", "津南区", "北辰区", "武清区", + "宝坻区", "宁河县", "静海县", "蓟 县" + ] + }] +}, { + "name": "河北省", + "city": [{ + "name": "石家庄市", + "area": ["长安区", "桥东区", "桥西区", "新华区", "郊 区", "井陉矿区", "井陉县", "正定县", "栾城县", "行唐县", "灵寿县", "高邑县", "深泽县", "赞皇县", + "无极县", "平山县", "元氏县", "赵 县", "辛集市", "藁", "晋州市", "新乐市", "鹿泉市" + ] + }, { + "name": "唐山市", + "area": ["路南区", "路北区", "古冶区", "开平区", "新 区", "丰润县", "滦 县", "滦南县", "乐亭县", "迁西县", "玉田县", "唐海县", "遵化市", "丰南市", + "迁安市" + ] + }, { + "name": "秦皇岛市", + "area": ["海港区", "山海关区", "北戴河区", "青龙满族自治县", "昌黎县", "抚宁县", "卢龙县"] + }, { + "name": "邯郸市", + "area": ["邯山区", "丛台区", "复兴区", "峰峰矿区", "邯郸县", "临漳县", "成安县", "大名县", "涉 县", "磁 县", "肥乡县", "永年县", "邱 县", "鸡泽县", + "广平县", "馆陶县", "魏 县", "曲周县", "武安市" + ] + }, { + "name": "邢台市", + "area": ["桥东区", "桥西区", "邢台县", "临城县", "内丘县", "柏乡县", "隆尧县", "任 县", "南和县", "宁晋县", "巨鹿县", "新河县", "广宗县", "平乡县", + "威 县", "清河县", "临西县", "南宫市", "沙河市" + ] + }, { + "name": "保定市", + "area": ["新市区", "北市区", "南市区", "满城县", "清苑县", "涞水县", "阜平县", "徐水县", "定兴县", "唐 县", "高阳县", "容城县", "涞源县", "望都县", + "安新县", "易 县", "曲阳县", "蠡 县", "顺平县", "博野", "雄县", "涿州市", "定州市", "安国市", "高碑店市" + ] + }, { + "name": "张家口", + "area": ["桥东区", "桥西区", "宣化区", "下花园区", "宣化县", "张北县", "康保县", "沽源县", "尚义县", "蔚 县", "阳原县", "怀安县", "万全县", "怀来县", + "涿鹿县", "赤城县", "崇礼县" + ] + }, { + "name": "承德市", + "area": ["双桥区", "双滦区", "鹰手营子矿区", "承德县", "兴隆县", "平泉县", "滦平县", "隆化县", "丰宁满族自治县", "宽城满族自治县", "围场满族蒙古族自治县"] + }, { + "name": "沧州市", + "area": ["新华区", "运河区", "沧 县", "青 县", "东光县", "海兴县", "盐山县", "肃宁县", "南皮县", "吴桥县", "献 县", "孟村回族自治县", "泊头市", + "任丘市", "黄骅市", "河间市" + ] + }, { + "name": "廊坊市", + "area": ["安次区", "固安县", "永清县", "香河县", "大城县", "文安县", "大厂回族自治县", "霸州市", "三河市"] + }, { + "name": "衡水市", + "area": ["桃城区", "枣强县", "武邑县", "武强县", "饶阳县", "安平县", "故城县", "景 县", "阜城县", "冀州市", "深州市"] + }] +}, { + "name": "山西省", + "city": [{ + "name": "太原市", + "area": ["小店区", "迎泽区", "杏花岭区", "尖草坪区", "万柏林区", "晋源区", "清徐县", "阳曲县", "娄烦县", "古交市"] + }, { + "name": "大同市", + "area": ["城 区", "矿 区", "南郊区", "新荣区", "阳高县", "天镇县", "广灵县", "灵丘县", "浑源县", "左云县", "大同县"] + }, { + "name": "阳泉市", + "area": ["城 区", "矿 区", "郊 区", "平定县", "盂 县"] + }, { + "name": "长治市", + "area": ["城 区", "郊 区", "长治县", "襄垣县", "屯留县", "平顺县", "黎城县", "壶关县", "长子县", "武乡县", "沁 县", "沁源县", "潞城市"] + }, { + "name": "晋城市", + "area": ["城 区", "沁水县", "阳城县", "陵川县", "泽州县", "高平市"] + }, { + "name": "朔州市", + "area": ["朔城区", "平鲁区", "山阴县", "应 县", "右玉县", "怀仁县"] + }, { + "name": "忻州市", + "area": ["忻府区", "原平市", "定襄县", "五台县", "代 县", "繁峙县", "宁武县", "静乐县", "神池县", "五寨县", "岢岚县", "河曲县", "保德县", "偏关县"] + }, { + "name": "吕梁市", + "area": ["离石区", "孝义市", "汾阳市", "文水县", "交城县", "兴 县", "临 县", "柳林县", "石楼县", "岚 县", "方山县", "中阳县", "交口县"] + }, { + "name": "晋中市", + "area": ["榆次市", "介休市", "榆社县", "左权县", "和顺县", "昔阳县", "寿阳县", "太谷县", "祁 县", "平遥县", "灵石县"] + }, { + "name": "临汾市", + "area": ["临汾市", "侯马市", "霍州市", "曲沃县", "翼城县", "襄汾县", "洪洞县", "古 县", "安泽县", "浮山县", "吉 县", "乡宁县", "蒲 县", "大宁县", + "永和县", "隰 县", "汾西县" + ] + }, { + "name": "运城市", + "area": ["运城市", "永济市", "河津市", "芮城县", "临猗县", "万荣县", "新绛县", "稷山县", "闻喜县", "夏 县", "绛 县", "平陆县", "垣曲县"] + }] +}, { + "name": "内蒙古", + "city": [{ + "name": "呼和浩特市", + "area": ["新城区", "回民区", "玉泉区", "郊 区", "土默特左旗", "托克托县", "和林格尔县", "清水河县", "武川县"] + }, { + "name": "包头市", + "area": ["东河区", "昆都伦区", "青山区", "石拐矿区", "白云矿区", "郊 区", "土默特右旗", "固阳县", "达尔罕茂明安联合旗"] + }, { + "name": "乌海市", + "area": ["海勃湾区", "海南区", "乌达区"] + }, { + "name": "赤峰市", + "area": ["红山区", "元宝山区", "松山区", "阿鲁科尔沁旗", "巴林左旗", "巴林右旗", "林西县", "克什克腾旗", "翁牛特旗", "喀喇沁旗", "宁城县", "敖汉旗"] + }, { + "name": "呼伦贝尔市", + "area": ["海拉尔市", "满洲里市", "扎兰屯市", "牙克石市", "根河市", "额尔古纳市", "阿荣旗", "莫力达瓦达斡尔族自治旗", "鄂伦春自治旗", "鄂温克族自治旗", "新巴尔虎右旗", + "新巴尔虎左旗", "陈巴尔虎旗" + ] + }, { + "name": "兴安盟", + "area": ["乌兰浩特市", "阿尔山市", "科尔沁右翼前旗", "科尔沁右翼中旗", "扎赉特旗", "突泉县"] + }, { + "name": "通辽市", + "area": ["科尔沁区", "霍林郭勒市", "科尔沁左翼中旗", "科尔沁左翼后旗", "开鲁县", "库伦旗", "奈曼旗", "扎鲁特旗"] + }, { + "name": "锡林郭勒盟", + "area": ["二连浩特市", "锡林浩特市", "阿巴嘎旗", "苏尼特左旗", "苏尼特右旗", "东乌珠穆沁旗", "西乌珠穆沁旗", "太仆寺旗", "镶黄旗", "正镶白旗", "正蓝旗", "多伦县"] + }, { + "name": "乌兰察布盟", + "area": ["集宁市", "丰镇市", "卓资县", "化德县", "商都县", "兴和县", "凉城县", "察哈尔右翼前旗", "察哈尔右翼中旗", "察哈尔右翼后旗", "四子王旗"] + }, { + "name": "伊克昭盟", + "area": ["东胜市", "达拉特旗", "准格尔旗", "鄂托克前旗", "鄂托克旗", "杭锦旗", "乌审旗", "伊金霍洛旗"] + }, { + "name": "巴彦淖尔盟", + "area": ["临河市", "五原县", "磴口县", "乌拉特前旗", "乌拉特中旗", "乌拉特后旗", "杭锦后旗"] + }, { + "name": "阿拉善盟", + "area": ["阿拉善左旗", "阿拉善右旗", "额济纳旗"] + }] +}, { + "name": "辽宁省", + "city": [{ + "name": "沈阳市", + "area": ["沈河区", "皇姑区", "和平区", "大东区", "铁西区", "苏家屯区", "东陵区", "于洪区", "新民市", "法库县", "辽中县", "康平县", "新城子区"] + }, { + "name": "大连市", + "area": ["西岗区", "中山区", "沙河口区", "甘井子区", "旅顺口区", "金州区", "瓦房店市", "普兰店市", "庄河市", "长海县"] + }, { + "name": "鞍山市", + "area": ["铁东区", "铁西区", "立山区", "千山区", "海城市", "台安县", "岫岩满族自治县"] + }, { + "name": "抚顺市", + "area": ["顺城区", "新抚区", "东洲区", "望花区", "抚顺县", "清原满族自治县", "新宾满族自治县"] + }, { + "name": "本溪市", + "area": ["平山区", "明山区", "溪湖区", "南芬区", "本溪满族自治县", "桓仁满族自治县"] + }, { + "name": "丹东市", + "area": ["振兴区", "元宝区", "振安区", "东港市", "凤城市", "宽甸满族自治县"] + }, { + "name": "锦州市", + "area": ["太和区", "古塔区", "凌河区", "凌海市", "黑山县", "义县", "北宁市"] + }, { + "name": "营口市", + "area": ["站前区", "西市区", "鲅鱼圈区", "老边区", "大石桥市", "盖州市"] + }, { + "name": "阜新市", + "area": ["海州区", "新邱区", "太平区", "清河门区", "细河区", "彰武县", "阜新蒙古族自治县"] + }, { + "name": "辽阳市", + "area": ["白塔区", "文圣区", "宏伟区", "太子河区", "弓长岭区", "灯塔市", "辽阳县"] + }, { + "name": "盘锦", + "area": ["双台子区", "兴隆台区", "盘山县", "大洼县"] + }, { + "name": "铁岭市", + "area": ["银州区", "清河区", "调兵山市", "开原市", "铁岭县", "昌图县", "西丰县"] + }, { + "name": "朝阳市", + "area": ["双塔区", "龙城区", "凌源市", "北票市", "朝阳县", "建平县", "喀喇沁左翼蒙古族自治县"] + }, { + "name": "葫芦岛市", + "area": ["龙港区", "南票区", "连山区", "兴城市", "绥中县", "建昌县"] + }] +}, { + "name": "吉林省", + "city": [{ + "name": "长春市", + "area": ["朝阳区", "宽城区", "二道区", "南关区", "绿园区", "双阳区", "九台市", "榆树市", "德惠市", "农安县"] + }, { + "name": "吉林市", + "area": ["船营区", "昌邑区", "龙潭区", "丰满区", "舒兰市", "桦甸市", "蛟河市", "磐石市", "永吉县"] + }, { + "name": "四平", + "area": ["铁西区", "铁东区", "公主岭市", "双辽市", "梨树县", "伊通满族自治县"] + }, { + "name": "辽源市", + "area": ["龙山区", "西安区", "东辽县", "东丰县"] + }, { + "name": "通化市", + "area": ["东昌区", "二道江区", "梅河口市", "集安市", "通化县", "辉南县", "柳河县"] + }, { + "name": "白山市", + "area": ["八道江区", "江源区", "临江市", "靖宇县", "抚松县", "长白朝鲜族自治县"] + }, { + "name": "松原市", + "area": ["宁江区", "乾安县", "长岭县", "扶余县", "前郭尔罗斯蒙古族自治县"] + }, { + "name": "白城市", + "area": ["洮北区", "大安市", "洮南市", "镇赉县", "通榆县"] + }, { + "name": "延边朝鲜族自治州", + "area": ["延吉市", "图们市", "敦化市", "龙井市", "珲春市", "和龙市", "安图县", "汪清县"] + }] +}, { + "name": "黑龙江省", + "city": [{ + "name": "哈尔滨市", + "area": ["松北区", "道里区", "南岗区", "平房区", "香坊区", "道外区", "呼兰区", "阿城区", "双城市", "尚志市", "五常市", "宾县", "方正县", "通河县", + "巴彦县", "延寿县", "木兰县", "依兰县" + ] + }, { + "name": "齐齐哈尔市", + "area": ["龙沙区", "昂昂溪区", "铁锋区", "建华区", "富拉尔基区", "碾子山区", "梅里斯达斡尔族区", "讷河市", "富裕县", "拜泉县", "甘南县", "依安县", "克山县", + "泰来县", "克东县", "龙江县" + ] + }, { + "name": "鹤岗市", + "area": ["兴山区", "工农区", "南山区", "兴安区", "向阳区", "东山区", "萝北县", "绥滨县"] + }, { + "name": "双鸭山", + "area": ["尖山区", "岭东区", "四方台区", "宝山区", "集贤县", "宝清县", "友谊县", "饶河县"] + }, { + "name": "鸡西市", + "area": ["鸡冠区", "恒山区", "城子河区", "滴道区", "梨树区", "麻山区", "密山市", "虎林市", "鸡东县"] + }, { + "name": "大庆市", + "area": ["萨尔图区", "红岗区", "龙凤区", "让胡路区", "大同区", "林甸县", "肇州县", "肇源县", "杜尔伯特蒙古族自治县"] + }, { + "name": "伊春市", + "area": ["伊春区", "带岭区", "南岔区", "金山屯区", "西林区", "美溪区", "乌马河区", "翠峦区", "友好区", "上甘岭区", "五营区", "红星区", "新青区", "汤旺河区", + "乌伊岭区", "铁力市", "嘉荫县" + ] + }, { + "name": "牡丹江市", + "area": ["爱民区", "东安区", "阳明区", "西安区", "绥芬河市", "宁安市", "海林市", "穆棱市", "林口县", "东宁县"] + }, { + "name": "佳木斯市", + "area": ["向阳区", "前进区", "东风区", "郊区", "同江市", "富锦市", "桦川县", "抚远县", "桦南县", "汤原县"] + }, { + "name": "七台河市", + "area": ["桃山区", "新兴区", "茄子河区", "勃利县"] + }, { + "name": "黑河市", + "area": ["爱辉区", "北安市", "五大连池市", "逊克县", "嫩江县", "孙吴县"] + }, { + "name": "绥化市", + "area": ["北林区", "安达市", "肇东市", "海伦市", "绥棱县", "兰西县", "明水县", "青冈县", "庆安县", "望奎县"] + }, { + "name": "大兴安岭地区", + "area": ["呼玛县", "塔河县", "漠河县", "大兴安岭辖区"] + }] +}, { + "name": "上海市", + "city": [{ + "name": "上海市", + "area": ["黄浦区", "卢湾区", "徐汇区", "长宁区", "静安区", "普陀区", "闸北区", "虹口区", "杨浦区", "宝山区", "闵行区", "嘉定区", "松江区", "金山区", + "青浦区", "南汇区", "奉贤区", "浦东新区", "崇明县" + ] + }] +}, { + "name": "江苏省", + "city": [{ + "name": "南京市", + "area": ["玄武区", "白下区", "秦淮区", "建邺区", "鼓楼区", "下关区", "栖霞区", "雨花台区", "浦口区", "江宁区", "六合区", "溧水县", "高淳县"] + }, { + "name": "苏州市", + "area": ["金阊区", "平江区", "沧浪区", "虎丘区", "吴中区", "相城区", "常熟市", "张家港市", "昆山市", "吴江市", "太仓市"] + }, { + "name": "无锡市", + "area": ["崇安区", "南长区", "北塘区", "滨湖区", "锡山区", "惠山区", "江阴市", "宜兴市"] + }, { + "name": "常州市", + "area": ["钟楼区", "天宁区", "戚墅堰区", "新北区", "武进区", "金坛市", "溧阳市"] + }, { + "name": "镇江市", + "area": ["京口区", "润州区", "丹徒区", "丹阳市", "扬中市", "句容市"] + }, { + "name": "南通市", + "area": ["崇川区", "港闸区", "通州市", "如皋", "海门市", "启东市", "海安县", "如东县"] + }, { + "name": "泰州市", + "area": ["海陵区", "高港区", "姜堰市", "泰兴市", "靖江市", "兴化市"] + }, { + "name": "扬州市", + "area": ["广陵区", "维扬区", "邗江区", "江都市", "仪征市", "高邮市", "宝应县"] + }, { + "name": "盐城市", + "area": ["亭湖区", "盐都区", "大丰市", "东台市", "建湖县", "射阳县", "阜宁县", "滨海县", "响水县"] + }, { + "name": "连云港市", + "area": ["新浦区", "海州区", "连云区", "东海县", "灌云县", "赣榆县", "灌南县"] + }, { + "name": "徐州市", + "area": ["云龙区", "鼓楼区", "九里区", "泉山区", "贾汪区", "邳州市", "新沂市", "铜山县", "睢宁县", "沛县", "丰县"] + }, { + "name": "淮安市", + "area": ["清河区", "清浦区", "楚州区", "淮阴区", "涟水县", "洪泽县", "金湖县", "盱眙县"] + }, { + "name": "宿迁市", + "area": ["宿城区", "宿豫区", "沭阳县", "泗阳县", "泗洪县"] + }] +}, { + "name": "浙江省", + "city": [{ + "name": "杭州市", + "area": ["拱墅区", "西湖区", "上城区", "下城区", "江干区", "滨区", "余杭区", "萧山区", "建德市", "富阳市", "临安市", "桐庐县", "淳安县"] + }, { + "name": "宁波市", + "area": ["海曙区", "江东区", "江北区", "镇海区", "北仑区", "鄞州区", "余姚市", "慈溪市", "奉化市", "宁海县", "象山县"] + }, { + "name": "温州市", + "area": ["鹿城区", "龙湾区", "瓯海区", "瑞安市", "乐清市", "永嘉县", "洞头县", "平阳县", "苍南县", "文成县", "泰顺县"] + }, { + "name": "嘉兴市", + "area": ["秀城区", "秀洲区", "海宁市", "平湖市", "桐乡", "嘉善县", "海盐县"] + }, { + "name": "湖州市", + "area": ["吴兴区", "南浔区", "长兴县", "德清县", "安吉县"] + }, { + "name": "绍兴市", + "area": ["越城区", "诸暨市", "上虞市", "嵊州市", "绍兴县", "新昌县"] + }, { + "name": "金华市", + "area": ["婺城区", "金东区", "兰溪市", "义乌市", "东阳市", "永康市", "武义县", "浦江县", "磐安县"] + }, { + "name": "衢州市", + "area": ["柯城区", "衢江区", "江山市", "龙游县", "常山县", "开化县"] + }, { + "name": "舟山市", + "area": ["定海区", "普陀区", "岱山县", "嵊泗县"] + }, { + "name": "台州市", + "area": ["椒江区", "黄岩区", "路桥区", "临海市", "温岭市", "玉环县", "天台县", "仙居县", "三门县"] + }, { + "name": "丽水市", + "area": ["莲都区", "龙泉市", "缙云县", "青田县", "云和县", "遂昌县", "松阳县", "庆元县", "景宁畲族自治县"] + }] +}, { + "name": "安徽省", + "city": [{ + "name": "合肥市", + "area": ["庐阳区", "瑶海区", "蜀山区", "包河区", "长丰县", "肥东县", "肥西县"] + }, { + "name": "芜湖市", + "area": ["镜湖区", "弋江区", "鸠江区", "三山区", "芜湖县", "南陵县", "繁昌县"] + }, { + "name": "蚌埠市", + "area": ["蚌山区", "龙子湖区", "禹会区", "淮上区", "怀远县", "固镇县", "五河县"] + }, { + "name": "淮南市", + "area": ["田家庵区", "大通区", "谢家集区", "八公山区", "潘集区", "凤台县"] + }, { + "name": "马鞍山市", + "area": ["雨山区", "花山区", "金家庄区", "当涂县"] + }, { + "name": "淮北市", + "area": ["相山区", "杜集区", "烈山区", "濉溪县"] + }, { + "name": "铜陵市", + "area": ["铜官山区", "狮子山区", "郊区", "铜陵县"] + }, { + "name": "安庆市", + "area": ["迎江区", "大观区", "宜秀区", "桐城市", "宿松县", "枞阳县", "太湖县", "怀宁县", "岳西县", "望江县", "潜山县"] + }, { + "name": "黄山市", + "area": ["屯溪区", "黄山区", "徽州区", "休宁县", "歙县", "祁门县", "黟县"] + }, { + "name": "滁州市", + "area": ["琅琊区", "南谯区", "天长市", "明光市", "全椒县", "来安县", "定远县", "凤阳县"] + }, { + "name": "阜阳市", + "area": ["颍州区", "颍东区", "颍泉区", "界首市", "临泉县", "颍上县", "阜南县", "太和县"] + }, { + "name": "宿州市", + "area": ["埇桥区", "萧县", "泗县", "砀山县", "灵璧县"] + }, { + "name": "巢湖市", + "area": ["居巢区", "含山县", "无为县", "庐江县", "和县"] + }, { + "name": "六安市", + "area": ["金安区", "裕安区", "寿县", "霍山县", "霍邱县", "舒城县", "金寨县"] + }, { + "name": "亳州市", + "area": ["谯城区", "利辛县", "涡阳县", "蒙城县"] + }, { + "name": "池州市", + "area": ["贵池区", "东至县", "石台县", "青阳县"] + }, { + "name": "宣城市", + "area": ["宣州区", "宁国市", "广德县", "郎溪县", "泾县", "旌德县", "绩溪县"] + }] +}, { + "name": "福建省", + "city": [{ + "name": "福州市", + "area": ["鼓楼区", "台江区", "仓山区", "马尾区", "晋安区", "福清市", "长乐市", "闽侯县", "闽清县", "永泰县", "连江县", "罗源县", "平潭县"] + }, { + "name": "厦门市", + "area": ["思明区", "海沧区", "湖里区", "集美区", "同安区", "翔安区"] + }, { + "name": "莆田市", + "area": ["城厢区", "涵江区", "荔城区", "秀屿区", "仙游县"] + }, { + "name": "三明市", + "area": ["梅列区", "三元区", "永安市", "明溪县", "将乐县", "大田县", "宁化县", "建宁县", "沙县", "尤溪县", "清流县", "泰宁县"] + }, { + "name": "泉州市", + "area": ["鲤城区", "丰泽区", "洛江区", "泉港区", "石狮市", "晋江市", "南安市", "惠安县", "永春县", "安溪县", "德化县", "金门县"] + }, { + "name": "漳州市", + "area": ["芗城区", "龙文区", "龙海市", "平和县", "南靖县", "诏安县", "漳浦县", "华安县", "东山县", "长泰县", "云霄县"] + }, { + "name": "南平市", + "area": ["延平区", "建瓯市", "邵武市", "武夷山市", "建阳市", "松溪县", "光泽县", "顺昌县", "浦城县", "政和县"] + }, { + "name": "龙岩市", + "area": ["新罗区", "漳平市", "长汀县", "武平县", "上杭县", "永定县", "连城县"] + }, { + "name": "宁德市", + "area": ["蕉城区", "福安市", "福鼎市", "寿宁县", "霞浦县", "柘荣县", "屏南县", "古田县", "周宁县"] + }] +}, { + "name": "江西省", + "city": [{ + "name": "南昌市", + "area": ["东湖区", "西湖区", "青云谱区", "湾里区", "青山湖区", "新建县", "南昌县", "进贤县", "安义县"] + }, { + "name": "景德镇市", + "area": ["珠山区", "昌江区", "乐平市", "浮梁县"] + }, { + "name": "萍乡市", + "area": ["安源区", "湘东区", "莲花县", "上栗县", "芦溪县"] + }, { + "name": "九江市", + "area": ["浔阳区", "庐山区", "瑞昌市", "九江县", "星子县", "武宁县", "彭泽县", "永修县", "修水县", "湖口县", "德安县", "都昌县"] + }, { + "name": "新余市", + "area": ["渝水区", "分宜县"] + }, { + "name": "鹰潭市", + "area": ["月湖区", "贵溪市", "余江县"] + }, { + "name": "赣州市", + "area": ["章贡区", "瑞金市", "南康市", "石城县", "安远县", "赣县", "宁都县", "寻乌县", "兴国县", "定南县", "上犹县", "于都县", "龙南县", "崇义县", + "信丰县", "全南县", "大余县", "会昌县" + ] + }, { + "name": "吉安市", + "area": ["吉州区", "青原区", "井冈山市", "吉安县", "永丰县", "永新县", "新干县", "泰和县", "峡江县", "遂川县", "安福县", "吉水县", "万安县"] + }, { + "name": "宜春市", + "area": ["袁州区", "丰城市", "樟树市", "高安市", "铜鼓县", "靖安县", "宜丰县", "奉新县", "万载县", "上高县"] + }, { + "name": "抚州市", + "area": ["临川区", "南丰县", "乐安县", "金溪县", "南城县", "东乡县", "资溪县", "宜黄县", "广昌县", "黎川县", "崇仁县"] + }, { + "name": "上饶市", + "area": ["信州区", "德兴市", "上饶县", "广丰县", "鄱阳县", "婺源县", "铅山县", "余干县", "横峰县", "弋阳县", "玉山县", "万年县"] + }] +}, { + "name": "山东省", + "city": [{ + "name": "济南市", + "area": ["市中区", "历下区", "天桥区", "槐荫区", "历城区", "长清区", "章丘市", "平阴县", "济阳县", "商河县"] + }, { + "name": "青岛市", + "area": ["市南区", "市北区", "城阳区", "四方区", "李沧区", "黄岛区", "崂山区", "胶南市", "胶州市", "平度市", "莱西市", "即墨市"] + }, { + "name": "淄博市", + "area": ["张店区", "临淄区", "淄川区", "博山区", "周村区", "桓台县", "高青县", "沂源县"] + }, { + "name": "枣庄市", + "area": ["市中区", "山亭区", "峄城区", "台儿庄区", "薛城区", "滕州市"] + }, { + "name": "东营市", + "area": ["东营区", "河口区", "垦利县", "广饶县", "利津县"] + }, { + "name": "烟台市", + "area": ["芝罘区", "福山区", "牟平区", "莱山区", "龙口市", "莱阳市", "莱州市", "招远市", "蓬莱市", "栖霞市", "海阳市", "长岛县"] + }, { + "name": "潍坊市", + "area": ["潍城区", "寒亭区", "坊子区", "奎文区", "青州市", "诸城市", "寿光市", "安丘市", "高密市", "昌邑市", "昌乐县", "临朐县"] + }, { + "name": "济宁市", + "area": ["市中区", "任城区", "曲阜市", "兖州市", "邹城市", "鱼台县", "金乡县", "嘉祥县", "微山县", "汶上县", "泗水县", "梁山县"] + }, { + "name": "泰安市", + "area": ["泰山区", "岱岳区", "新泰市", "肥城市", "宁阳县", "东平县"] + }, { + "name": "威海市", + "area": ["环翠区", "乳山市", "文登市", "荣成市"] + }, { + "name": "日照市", + "area": ["东港区", "岚山区", "五莲县", "莒县"] + }, { + "name": "莱芜市", + "area": ["莱城区", "钢城区"] + }, { + "name": "临沂市", + "area": ["兰山区", "罗庄区", "河东区", "沂南县", "郯城县", "沂水县", "苍山县", "费县", "平邑县", "莒南县", "蒙阴县", "临沭县"] + }, { + "name": "德州市", + "area": ["德城区", "乐陵市", "禹城市", "陵县", "宁津县", "齐河县", "武城县", "庆云县", "平原县", "夏津县", "临邑县"] + }, { + "name": "聊城市", + "area": ["东昌府区", "临清市", "高唐县", "阳谷县", "茌平县", "莘县", "东阿县", "冠县"] + }, { + "name": "滨州市", + "area": ["滨城区", "邹平县", "沾化县", "惠民县", "博兴县", "阳信县", "无棣县"] + }, { + "name": "菏泽市", + "area": ["牡丹区", "鄄城县", "单县", "郓城县", "曹县", "定陶县", "巨野县", "东明县", "成武县"] + }] +}, { + "name": "河南省", + "city": [{ + "name": "郑州市", + "area": ["中原区", "金水区", "二七区", "管城回族区", "上街区", "惠济区", "巩义市", "新郑市", "新密市", "登封市", "荥阳市", "中牟县"] + }, { + "name": "开封市", + "area": ["鼓楼区", "龙亭区", "顺河回族区", "禹王台区", "金明区", "开封县", "尉氏县", "兰考县", "杞县", "通许县"] + }, { + "name": "洛阳市", + "area": ["西工区", "老城区", "涧西区", "瀍河回族区", "洛龙区", "吉利区", "偃师市", "孟津县", "汝阳县", "伊川县", "洛宁县", "嵩县", "宜阳县", "新安县", + "栾川县" + ] + }, { + "name": "平顶山市", + "area": ["新华区", "卫东区", "湛河区", "石龙区", "汝州市", "舞钢市", "宝丰县", "叶县", "郏县", "鲁山县"] + }, { + "name": "安阳市", + "area": ["北关区", "文峰区", "殷都区", "龙安区", "林州市", "安阳县", "滑县", "内黄县", "汤阴县"] + }, { + "name": "鹤壁市", + "area": ["淇滨区", "山城区", "鹤山区", "浚县", "淇县"] + }, { + "name": "新乡市", + "area": ["卫滨区", "红旗区", "凤泉区", "牧野区", "卫辉市", "辉县市", "新乡县", "获嘉县", "原阳县", "长垣县", "封丘县", "延津县"] + }, { + "name": "焦作市", + "area": ["解放区", "中站区", "马村区", "山阳区", "沁阳市", "孟州市", "修武县", "温县", "武陟县", "博爱县"] + }, { + "name": "濮阳市", + "area": ["华龙区", "濮阳县", "南乐县", "台前县", "清丰县", "范县"] + }, { + "name": "许昌市", + "area": ["魏都区", "禹州市", "长葛市", "许昌县", "鄢陵县", "襄城县"] + }, { + "name": "漯河市", + "area": ["源汇区", "郾城区", "召陵区", "临颍县", "舞阳县"] + }, { + "name": "三门峡市", + "area": ["湖滨区", "义马市", "灵宝市", "渑池县", "卢氏县", "陕县"] + }, { + "name": "南阳市", + "area": ["卧龙区", "宛城区", "邓州市", "桐柏县", "方城县", "淅川县", "镇平县", "唐河县", "南召县", "内乡县", "新野县", "社旗县", "西峡县"] + }, { + "name": "商丘市", + "area": ["梁园区", "睢阳区", "永城市", "宁陵县", "虞城县", "民权县", "夏邑县", "柘城县", "睢县"] + }, { + "name": "信阳市", + "area": ["浉河区", "平桥区", "潢川县", "淮滨县", "息县", "新县", "商城县", "固始县", "罗山县", "光山县"] + }, { + "name": "周口市", + "area": ["川汇区", "项城市", "商水县", "淮阳县", "太康县", "鹿邑县", "西华县", "扶沟县", "沈丘县", "郸城县"] + }, { + "name": "驻马店市", + "area": ["驿城区", "确山县", "新蔡县", "上蔡县", "西平县", "泌阳县", "平舆县", "汝南县", "遂平县", "正阳县"] + }, { + "name": "焦作市", + "area": ["济源市"] + }] +}, { + "name": "湖北省", + "city": [{ + "name": "武汉市", + "area": ["江岸区", "武昌区", "江汉区", "硚口区", "汉阳区", "青山区", "洪山区", "东西湖区", "汉南区", "蔡甸区", "江夏区", "黄陂区", "新洲区"] + }, { + "name": "黄石市", + "area": ["黄石港区", "西塞山区", "下陆区", "铁山区", "大冶市", "阳新县"] + }, { + "name": "十堰市", + "area": ["张湾区", "茅箭区", "丹江口市", "郧县", "竹山县", "房县", "郧西县", "竹溪县"] + }, { + "name": "荆州市", + "area": ["沙市区", "荆州区", "洪湖市", "石首市", "松滋市", "监利县", "公安县", "江陵县"] + }, { + "name": "宜昌市", + "area": ["西陵区", "伍家岗区", "点军区", "猇亭区", "夷陵区", "宜都市", "当阳市", "枝江市", "秭归县", "远安县", "兴山县", "五峰土家族自治县", "长阳土家族自治县"] + }, { + "name": "襄樊市", + "area": ["襄城区", "樊城区", "襄阳区", "老河口市", "枣阳市", "宜城市", "南漳县", "谷城县", "保康县"] + }, { + "name": "鄂州市", + "area": ["鄂城区", "华容区", "梁子湖区"] + }, { + "name": "荆门市", + "area": ["东宝区", "掇刀区", "钟祥市", "京山县", "沙洋县"] + }, { + "name": "孝感市", + "area": ["孝南区", "应城市", "安陆市", "汉川市", "云梦县", "大悟县", "孝昌县"] + }, { + "name": "黄冈市", + "area": ["黄州区", "麻城市", "武穴市", "红安县", "罗田县", "浠水县", "蕲春县", "黄梅县", "英山县", "团风县"] + }, { + "name": "咸宁市", + "area": ["咸安区", "赤壁市", "嘉鱼县", "通山县", "崇阳县", "通城县"] + }, { + "name": "随州市", + "area": ["曾都区", "广水市"] + }, { + "name": "恩施土家族苗族自治州", + "area": ["恩施市", "利川市", "建始县", "来凤县", "巴东县", "鹤峰县", "宣恩县", "咸丰县"] + }, { + "name": "仙桃市", + "area": ["仙桃"] + }, { + "name": "天门市", + "area": ["天门"] + }, { + "name": "潜江市", + "area": ["潜江"] + }, { + "name": "神农架林区", + "area": ["神农架林区"] + }] +}, { + "name": "湖南省", + "city": [{ + "name": "长沙市", + "area": ["岳麓区", "芙蓉区", "天心区", "开福区", "雨花区", "浏阳市", "长沙县", "望城县", "宁乡县"] + }, { + "name": "株洲市", + "area": ["天元区", "荷塘区", "芦淞区", "石峰区", "醴陵市", "株洲县", "炎陵县", "茶陵县", "攸县"] + }, { + "name": "湘潭市", + "area": ["岳塘区", "雨湖区", "湘乡市", "韶山市", "湘潭县"] + }, { + "name": "衡阳市", + "area": ["雁峰区", "珠晖区", "石鼓区", "蒸湘区", "南岳区", "耒阳市", "常宁市", "衡阳县", "衡东县", "衡山县", "衡南县", "祁东县"] + }, { + "name": "邵阳市", + "area": ["双清区", "大祥区", "北塔区", "武冈市", "邵东县", "洞口县", "新邵县", "绥宁县", "新宁县", "邵阳县", "隆回县", "城步苗族自治县"] + }, { + "name": "岳阳市", + "area": ["岳阳楼区", "云溪区", "君山区", "临湘市", "汨罗市", "岳阳县", "湘阴县", "平江县", "华容县"] + }, { + "name": "常德市", + "area": ["武陵区", "鼎城区", "津市市", "澧县", "临澧县", "桃源县", "汉寿县", "安乡县", "石门县"] + }, { + "name": "张家界市", + "area": ["永定区", "武陵源区", "慈利县", "桑植县"] + }, { + "name": "益阳市", + "area": ["赫山区", "资阳区", "沅江市", "桃江县", "南县", "安化县"] + }, { + "name": "郴州市", + "area": ["北湖区", "苏仙区", "资兴市", "宜章县", "汝城县", "安仁县", "嘉禾县", "临武县", "桂东县", "永兴县", "桂阳县"] + }, { + "name": "永州市", + "area": ["冷水滩区", "零陵区", "祁阳县", "蓝山县", "宁远县", "新田县", "东安县", "江永县", "道县", "双牌县", "江华瑶族自治县"] + }, { + "name": "怀化市", + "area": ["鹤城区", "洪江市", "会同县", "沅陵县", "辰溪县", "溆浦县", "中方县", "新晃侗族自治县", "芷江侗族自治县", "通道侗族自治县", "靖州苗族侗族自治县", + "麻阳苗族自治县" + ] + }, { + "name": "娄底市", + "area": ["娄星区", "冷水江市", "涟源市", "新化县", "双峰县"] + }, { + "name": "湘西土家族苗族自治州", + "area": ["吉首市", "古丈县", "龙山县", "永顺县", "凤凰县", "泸溪县", "保靖县", "花垣县"] + }] +}, { + "name": "广东省", + "city": [{ + "name": "广州市", + "area": ["越秀区", "荔湾区", "海珠区", "天河区", "白云区", "黄埔区", "番禺区", "花都区", "南沙区", "萝岗区", "增城市", "从化市"] + }, { + "name": "深圳市", + "area": ["福田区", "罗湖区", "南山区", "宝安区", "龙岗区", "盐田区"] + }, { + "name": "东莞市", + "area": ["莞城", "常平", "塘厦", "塘厦", "塘厦"] + }, { + "name": "中山市", + "area": ["中山"] + }, { + "name": "潮州市", + "area": ["湘桥区", "潮安县", "饶平县"] + }, { + "name": "揭阳市", + "area": ["榕城区", "揭东县", "揭西县", "惠来县", "普宁市"] + }, { + "name": "云浮市", + "area": ["云城区", "新兴县", "郁南县", "云安县", "罗定市"] + }, { + "name": "珠海市", + "area": ["香洲区", "斗门区", "金湾区"] + }, { + "name": "汕头市", + "area": ["金平区", "濠江区", "龙湖区", "潮阳区", "潮南区", "澄海区", "南澳县"] + }, { + "name": "韶关市", + "area": ["浈江区", "武江区", "曲江区", "乐昌市", "南雄市", "始兴县", "仁化县", "翁源县", "新丰县", "乳源瑶族自治县"] + }, { + "name": "佛山市", + "area": ["禅城区", "南海区", "顺德区", "三水区", "高明区"] + }, { + "name": "江门市", + "area": ["蓬江区", "江海区", "新会区", "恩平市", "台山市", "开平市", "鹤山市"] + }, { + "name": "湛江市", + "area": ["赤坎区", "霞山区", "坡头区", "麻章区", "吴川市", "廉江市", "雷州市", "遂溪县", "徐闻县"] + }, { + "name": "茂名市", + "area": ["茂南区", "茂港区", "化州市", "信宜市", "高州市", "电白县"] + }, { + "name": "肇庆市", + "area": ["端州区", "鼎湖区", "高要市", "四会市", "广宁县", "怀集县", "封开县", "德庆县"] + }, { + "name": "惠州市", + "area": ["惠城区", "惠阳区", "博罗县", "惠东县", "龙门县"] + }, { + "name": "梅州市", + "area": ["梅江区", "兴宁市", "梅县", "大埔县", "丰顺县", "五华县", "平远县", "蕉岭县"] + }, { + "name": "汕尾市", + "area": ["城区", "陆丰市", "海丰县", "陆河县"] + }, { + "name": "河源市", + "area": ["源城区", "紫金县", "龙川县", "连平县", "和平县", "东源县"] + }, { + "name": "阳江市", + "area": ["江城区", "阳春市", "阳西县", "阳东县"] + }, { + "name": "清远市", + "area": ["清城区", "英德市", "连州市", "佛冈县", "阳山县", "清新县", "连山壮族瑶族自治县", "连南瑶族自治县"] + }] +}, { + "name": "广西", + "city": [{ + "name": "南宁市", + "area": ["青秀区", "兴宁区", "西乡塘区", "良庆区", "江南区", "邕宁区", "武鸣县", "隆安县", "马山县", "上林县", "宾阳县", "横县"] + }, { + "name": "柳州市", + "area": ["城中区", "鱼峰区", "柳北区", "柳南区", "柳江县", "柳城县", "鹿寨县", "融安县", "融水苗族自治县", "三江侗族自治县"] + }, { + "name": "桂林市", + "area": ["象山区", "秀峰区", "叠彩区", "七星区", "雁山区", "阳朔县", "临桂县", "灵川县", "全州县", "平乐县", "兴安县", "灌阳县", "荔浦县", "资源县", + "永福县", "龙胜各族自治县", "恭城瑶族自治县" + ] + }, { + "name": "梧州市", + "area": ["万秀区", "蝶山区", "长洲区", "岑溪市", "苍梧县", "藤县", "蒙山县"] + }, { + "name": "北海市", + "area": ["海城区", "银海区", "铁山港区", "合浦县"] + }, { + "name": "防城港市", + "area": ["港口区", "防城区", "东兴市", "上思县"] + }, { + "name": "钦州市", + "area": ["钦南区", "钦北区", "灵山县", "浦北县"] + }, { + "name": "贵港市", + "area": ["港北区", "港南区", "覃塘区", "桂平市", "平南县"] + }, { + "name": "玉林市", + "area": ["玉州区", "北流市", "容县", "陆川县", "博白县", "兴业县"] + }, { + "name": "百色市", + "area": ["右江区", "凌云县", "平果县", "西林县", "乐业县", "德保县", "田林县", "田阳县", "靖西县", "田东县", "那坡县", "隆林各族自治县"] + }, { + "name": "贺州市", + "area": ["八步区", "钟山县", "昭平县", "富川瑶族自治县"] + }, { + "name": "河池市", + "area": ["金城江区", "宜州市", "天峨县", "凤山县", "南丹县", "东兰县", "都安瑶族自治县", "罗城仫佬族自治县", "巴马瑶族自治县", "环江毛南族自治县", "大化瑶族自治县"] + }, { + "name": "来宾市", + "area": ["兴宾区", "合山市", "象州县", "武宣县", "忻城县", "金秀瑶族自治县"] + }, { + "name": "崇左市", + "area": ["江州区", "凭祥市", "宁明县", "扶绥县", "龙州县", "大新县", "天等县"] + }] +}, { + "name": "海南省", + "city": [{ + "name": "海口市", + "area": ["龙华区", "秀英区", "琼山区", "美兰区"] + }, { + "name": "三亚市", + "area": ["三亚市"] + }, { + "name": "五指山市", + "area": ["五指山"] + }, { + "name": "琼海市", + "area": ["琼海"] + }, { + "name": "儋州市", + "area": ["儋州"] + }, { + "name": "文昌市", + "area": ["文昌"] + }, { + "name": "万宁市", + "area": ["万宁"] + }, { + "name": "东方市", + "area": ["东方"] + }, { + "name": "澄迈县", + "area": ["澄迈县"] + }, { + "name": "定安县", + "area": ["定安县"] + }, { + "name": "屯昌县", + "area": ["屯昌县"] + }, { + "name": "临高县", + "area": ["临高县"] + }, { + "name": "白沙黎族自治县", + "area": ["白沙黎族自治县"] + }, { + "name": "昌江黎族自治县", + "area": ["昌江黎族自治县"] + }, { + "name": "乐东黎族自治县", + "area": ["乐东黎族自治县"] + }, { + "name": "陵水黎族自治县", + "area": ["陵水黎族自治县"] + }, { + "name": "保亭黎族苗族自治县", + "area": ["保亭黎族苗族自治县"] + }, { + "name": "琼中黎族苗族自治县", + "area": ["琼中黎族苗族自治县"] + }] +}, { + "name": "重庆市", + "city": [{ + "name": "重庆市", + "area": ["渝中区", "大渡口区", "江北区", "南岸区", "北碚区", "渝北区", "巴南区", "长寿区", "双桥区", "沙坪坝区", "万盛区", "万州区", "涪陵区", "黔江区", + "永川区", "合川区", "江津区", "九龙坡区", "南川区", "綦江县", "潼南县", "荣昌县", "璧山县", "大足县", "铜梁县", "梁平县", "开县", "忠县", "城口县", + "垫江县", "武隆县", "丰都县", "奉节县", "云阳县", "巫溪县", "巫山县", "石柱土家族自治县", "秀山土家族苗族自治县", "酉阳土家族苗族自治县", "彭水苗族土家族自治县" + ] + }] +}, { + "name": "四川省", + "city": [{ + "name": "成都市", + "area": ["青羊区", "锦江区", "金牛区", "武侯区", "成华区", "龙泉驿区", "青白江区", "新都区", "温江区", "都江堰市", "彭州市", "邛崃市", "崇州市", "金堂县", + "郫县", "新津县", "双流县", "蒲江县", "大邑县" + ] + }, { + "name": "自贡市", + "area": ["大安区", "自流井区", "贡井区", "沿滩区", "荣县", "富顺县"] + }, { + "name": "攀枝花市", + "area": ["仁和区", "米易县", "盐边县", "东区", "西区"] + }, { + "name": "泸州市", + "area": ["江阳区", "纳溪区", "龙马潭区", "泸县", "合江县", "叙永县", "古蔺县"] + }, { + "name": "德阳市", + "area": ["旌阳区", "广汉市", "什邡市", "绵竹市", "罗江县", "中江县"] + }, { + "name": "绵阳市", + "area": ["涪城区", "游仙区", "江油市", "盐亭县", "三台县", "平武县", "安县", "梓潼县", "北川羌族自治县"] + }, { + "name": "广元市", + "area": ["元坝区", "朝天区", "青川县", "旺苍县", "剑阁县", "苍溪县", "市中区"] + }, { + "name": "遂宁市", + "area": ["船山区", "安居区", "射洪县", "蓬溪县", "大英县"] + }, { + "name": "内江市", + "area": ["市中区", "东兴区", "资中县", "隆昌县", "威远县"] + }, { + "name": "乐山市", + "area": ["市中区", "五通桥区", "沙湾区", "金口河区", "峨眉山市", "夹江县", "井研县", "犍为县", "沐川县", "马边彝族自治县", "峨边彝族自治县"] + }, { + "name": "南充", + "area": ["顺庆区", "高坪区", "嘉陵区", "阆中市", "营山县", "蓬安县", "仪陇县", "南部县", "西充县"] + }, { + "name": "眉山市", + "area": ["东坡区", "仁寿县", "彭山县", "洪雅县", "丹棱县", "青神县"] + }, { + "name": "宜宾市", + "area": ["翠屏区", "宜宾县", "兴文县", "南溪县", "珙县", "长宁县", "高县", "江安县", "筠连县", "屏山县"] + }, { + "name": "广安市", + "area": ["广安区", "华蓥市", "岳池县", "邻水县", "武胜县"] + }, { + "name": "达州市", + "area": ["通川区", "万源市", "达县", "渠县", "宣汉县", "开江县", "大竹县"] + }, { + "name": "雅安市", + "area": ["雨城区", "芦山县", "石棉县", "名山县", "天全县", "荥经县", "宝兴县", "汉源县"] + }, { + "name": "巴中市", + "area": ["巴州区", "南江县", "平昌县", "通江县"] + }, { + "name": "资阳市", + "area": ["雁江区", "简阳市", "安岳县", "乐至县"] + }, { + "name": "阿坝藏族羌族自治州", + "area": ["马尔康县", "九寨沟县", "红原县", "汶川县", "阿坝县", "理县", "若尔盖县", "小金县", "黑水县", "金川县", "松潘县", "壤塘县", "茂县"] + }, { + "name": "甘孜藏族自治州", + "area": ["康定县", "丹巴县", "炉霍县", "九龙县", "甘孜县", "雅江县", "新龙县", "道孚县", "白玉县", "理塘县", "德格县", "乡城县", "石渠县", "稻城县", + "色达县", "巴塘县", "泸定县", "得荣县" + ] + }, { + "name": "凉山彝族自治州", + "area": ["西昌市", "美姑县", "昭觉县", "金阳县", "甘洛县", "布拖县", "雷波县", "普格县", "宁南县", "喜德县", "会东县", "越西县", "会理县", "盐源县", + "德昌县", "冕宁县", "木里藏族自治县" + ] + }] +}, { + "name": "贵州省", + "city": [{ + "name": "贵阳市", + "area": ["南明区", "云岩区", "花溪区", "乌当区", "白云区", "小河区", "清镇市", "开阳县", "修文县", "息烽县"] + }, { + "name": "六盘水市", + "area": ["钟山区", "水城县", "盘县", "六枝特区"] + }, { + "name": "遵义市", + "area": ["红花岗区", "汇川区", "赤水市", "仁怀市", "遵义县", "绥阳县", "桐梓县", "习水县", "凤冈县", "正安县", "余庆县", "湄潭县", "道真仡佬族苗族自治县", + "务川仡佬族苗族自治县" + ] + }, { + "name": "安顺市", + "area": ["西秀区", "普定县", "平坝县", "镇宁布依族苗族自治县", "紫云苗族布依族自治县", "关岭布依族苗族自治县"] + }, { + "name": "铜仁地区", + "area": ["铜仁市", "德江县", "江口县", "思南县", "石阡县", "玉屏侗族自治县", "松桃苗族自治县", "印江土家族苗族自治县", "沿河土家族自治县", "万山特区"] + }, { + "name": "毕节地区", + "area": ["毕节市", "黔西县", "大方县", "织金县", "金沙县", "赫章县", "纳雍县", "威宁彝族回族苗族自治县"] + }, { + "name": "黔西南布依族苗族自治州", + "area": ["兴义市", "望谟县", "兴仁县", "普安县", "册亨县", "晴隆县", "贞丰县", "安龙县"] + }, { + "name": "黔东南苗族侗族自治州", + "area": ["凯里市", "施秉县", "从江县", "锦屏县", "镇远县", "麻江县", "台江县", "天柱县", "黄平县", "榕江县", "剑河县", "三穗县", "雷山县", "黎平县", + "岑巩县", "丹寨县" + ] + }, { + "name": "黔南布依族苗族自治州", + "area": ["都匀市", "福泉市", "贵定县", "惠水县", "罗甸县", "瓮安县", "荔波县", "龙里县", "平塘县", "长顺县", "独山县", "三都水族自治县"] + }] +}, { + "name": "云南省", + "city": [{ + "name": "昆明市", + "area": ["盘龙区", "五华区", "官渡区", "西山区", "东川区", "安宁市", "呈贡县", "晋宁县", "富民县", "宜良县", "嵩明县", "石林彝族自治县", "禄劝彝族苗族自治县", + "寻甸回族彝族自治县" + ] + }, { + "name": "曲靖市", + "area": ["麒麟区", "宣威市", "马龙县", "沾益县", "富源县", "罗平县", "师宗县", "陆良县", "会泽县"] + }, { + "name": "玉溪市", + "area": ["红塔区", "江川县", "澄江县", "通海县", "华宁县", "易门县", "峨山彝族自治县", "新平彝族傣族自治县", "元江哈尼族彝族傣族自治县"] + }, { + "name": "保山市", + "area": ["隆阳区", "施甸县", "腾冲县", "龙陵县", "昌宁县"] + }, { + "name": "昭通市", + "area": ["昭阳区", "鲁甸县", "巧家县", "盐津县", "大关县", "永善县", "绥江县", "镇雄县", "彝良县", "威信县", "水富县"] + }, { + "name": "丽江市", + "area": ["古城区", "永胜县", "华坪县", "玉龙纳西族自治县", "宁蒗彝族自治县"] + }, { + "name": "普洱市", + "area": ["思茅区", "普洱哈尼族彝族自治县", "墨江哈尼族自治县", "景东彝族自治县", "景谷傣族彝族自治县", "镇沅彝族哈尼族拉祜族自治县", "江城哈尼族彝族自治县", + "孟连傣族拉祜族佤族自治县", "澜沧拉祜族自治县", "西盟佤族自治县" + ] + }, { + "name": "临沧市", + "area": ["临翔区", "凤庆县", "云县", "永德县", "镇康县", "双江拉祜族佤族布朗族傣族自治县", "耿马傣族佤族自治县", "沧源佤族自治县"] + }, { + "name": "德宏傣族景颇族自治州", + "area": ["潞西市", "瑞丽市", "梁河县", "盈江县", "陇川县"] + }, { + "name": "怒江傈僳族自治州", + "area": ["泸水县", "福贡县", "贡山独龙族怒族自治县", "兰坪白族普米族自治县"] + }, { + "name": "迪庆藏族自治州", + "area": ["香格里拉县", "德钦县", "维西傈僳族自治县"] + }, { + "name": "大理白族自治州", + "area": ["大理市", "祥云县", "宾川县", "弥渡县", "永平县", "云龙县", "洱源县", "剑川县", "鹤庆县", "漾濞彝族自治县", "南涧彝族自治县", "巍山彝族回族自治县"] + }, { + "name": "楚雄彝族自治州", + "area": ["楚雄市", "双柏县", "牟定县", "南华县", "姚安县", "大姚县", "永仁县", "元谋县", "武定县", "禄丰县"] + }, { + "name": "红河哈尼族彝族自治州", + "area": ["蒙自县", "个旧市", "开远市", "绿春县", "建水县", "石屏县", "弥勒县", "泸西县", "元阳县", "红河县", "金平苗族瑶族傣族自治县", "河口瑶族自治县", + "屏边苗族自治县" + ] + }, { + "name": "文山壮族苗族自治州", + "area": ["文山县", "砚山县", "西畴县", "麻栗坡县", "马关县", "丘北县", "广南县", "富宁县"] + }, { + "name": "西双版纳傣族自治州", + "area": ["景洪市", "勐海县", "勐腊县"] + }] +}, { + "name": "西藏", + "city": [{ + "name": "拉萨市", + "area": ["城关区", "林周县", "当雄县", "尼木县", "曲水县", "堆龙德庆县", "达孜县", "墨竹工卡县"] + }, { + "name": "那曲地区", + "area": ["那曲县", "嘉黎县", "比如县", "聂荣县", "安多县", "申扎县", "索县", "班戈县", "巴青县", "尼玛县"] + }, { + "name": "昌都地区", + "area": ["昌都县", "江达县", "贡觉县", "类乌齐县", "丁青县", "察雅县", "八宿县", "左贡县", "芒康县", "洛隆县", "边坝县"] + }, { + "name": "林芝地区", + "area": ["林芝县", "工布江达县", "米林县", "墨脱县", "波密县", "察隅县", "朗县"] + }, { + "name": "山南地区", + "area": ["乃东县", "扎囊县", "贡嘎县", "桑日县", "琼结县", "曲松县", "措美县", "洛扎县", "加查县", "隆子县", "错那县", "浪卡子县"] + }, { + "name": "日喀则地区", + "area": ["日喀则市", "南木林县", "江孜县", "定日县", "萨迦县", "拉孜县", "昂仁县", "谢通门县", "白朗县", "仁布县", "康马县", "定结县", "仲巴县", "亚东县", + "吉隆县", "聂拉木县", "萨嘎县", "岗巴县" + ] + }, { + "name": "阿里地区", + "area": ["噶尔县", "普兰县", "札达县", "日土县", "革吉县", "改则县", "措勤县"] + }] +}, { + "name": "陕西省", + "city": [{ + "name": "西安市", + "area": ["莲湖区", "新城区", "碑林区", "雁塔区", "灞桥区", "未央区", "阎良区", "临潼区", "长安区", "高陵县", "蓝田县", "户县", "周至县"] + }, { + "name": "铜川市", + "area": ["耀州区", "王益区", "印台区", "宜君县"] + }, { + "name": "宝鸡市", + "area": ["渭滨区", "金台区", "陈仓区", "岐山县", "凤翔县", "陇县", "太白县", "麟游县", "扶风县", "千阳县", "眉县", "凤县"] + }, { + "name": "咸阳市", + "area": ["秦都区", "渭城区", "杨陵区", "兴平市", "礼泉县", "泾阳县", "永寿县", "三原县", "彬县", "旬邑县", "长武县", "乾县", "武功县", "淳化县"] + }, { + "name": "渭南市", + "area": ["临渭区", "韩城市", "华阴市", "蒲城县", "潼关县", "白水县", "澄城县", "华县", "合阳县", "富平县", "大荔县"] + }, { + "name": "延安市", + "area": ["宝塔区", "安塞县", "洛川县", "子长县", "黄陵县", "延川县", "富县", "延长县", "甘泉县", "宜川县", "志丹县", "黄龙县", "吴起县"] + }, { + "name": "汉中市", + "area": ["汉台区", "留坝县", "镇巴县", "城固县", "南郑县", "洋县", "宁强县", "佛坪县", "勉县", "西乡县", "略阳县"] + }, { + "name": "榆林市", + "area": ["榆阳区", "清涧县", "绥德县", "神木县", "佳县", "府谷县", "子洲县", "靖边县", "横山县", "米脂县", "吴堡县", "定边县"] + }, { + "name": "安康市", + "area": ["汉滨区", "紫阳县", "岚皋县", "旬阳县", "镇坪县", "平利县", "石泉县", "宁陕县", "白河县", "汉阴县"] + }, { + "name": "商洛市", + "area": ["商州区", "镇安县", "山阳县", "洛南县", "商南县", "丹凤县", "柞水县"] + }] +}, { + "name": "甘肃省", + "city": [{ + "name": "兰州市", + "area": ["城关区", "七里河区", "西固区", "安宁区", "红古区", "永登县", "皋兰县", "榆中县"] + }, { + "name": "嘉峪关市", + "area": ["嘉峪关市"] + }, { + "name": "金昌市", + "area": ["金川区", "永昌县"] + }, { + "name": "白银市", + "area": ["白银区", "平川区", "靖远县", "会宁县", "景泰县"] + }, { + "name": "天水市", + "area": ["清水县", "秦安县", "甘谷县", "武山县", "张家川回族自治县", "北道区", "秦城区"] + }, { + "name": "武威市", + "area": ["凉州区", "民勤县", "古浪县", "天祝藏族自治县"] + }, { + "name": "酒泉市", + "area": ["肃州区", "玉门市", "敦煌市", "金塔县", "肃北蒙古族自治县", "阿克塞哈萨克族自治县", "安西县"] + }, { + "name": "张掖市", + "area": ["甘州区", "民乐县", "临泽县", "高台县", "山丹县", "肃南裕固族自治县"] + }, { + "name": "庆阳市", + "area": ["西峰区", "庆城县", "环县", "华池县", "合水县", "正宁县", "宁县", "镇原县"] + }, { + "name": "平凉市", + "area": ["崆峒区", "泾川县", "灵台县", "崇信县", "华亭县", "庄浪县", "静宁县"] + }, { + "name": "定西市", + "area": ["安定区", "通渭县", "临洮县", "漳县", "岷县", "渭源县", "陇西县"] + }, { + "name": "陇南市", + "area": ["武都区", "成县", "宕昌县", "康县", "文县", "西和县", "礼县", "两当县", "徽县"] + }, { + "name": "临夏回族自治州", + "area": ["临夏市", "临夏县", "康乐县", "永靖县", "广河县", "和政县", "东乡族自治县", "积石山保安族东乡族撒拉族自治县"] + }, { + "name": "甘南藏族自治州", + "area": ["合作市", "临潭县", "卓尼县", "舟曲县", "迭部县", "玛曲县", "碌曲县", "夏河县"] + }] +}, { + "name": "青海省", + "city": [{ + "name": "西宁市", + "area": ["城中区", "城东区", "城西区", "城北区", "湟源县", "湟中县", "大通回族土族自治县"] + }, { + "name": "海东地区", + "area": ["平安县", "乐都县", "民和回族土族自治县", "互助土族自治县", "化隆回族自治县", "循化撒拉族自治县"] + }, { + "name": "海北藏族自治州", + "area": ["海晏县", "祁连县", "刚察县", "门源回族自治县"] + }, { + "name": "海南藏族自治州", + "area": ["共和县", "同德县", "贵德县", "兴海县", "贵南县"] + }, { + "name": "黄南藏族自治州", + "area": ["同仁县", "尖扎县", "泽库县", "河南蒙古族自治县"] + }, { + "name": "果洛藏族自治州", + "area": ["玛沁县", "班玛县", "甘德县", "达日县", "久治县", "玛多县"] + }, { + "name": "玉树藏族自治州", + "area": ["玉树县", "杂多县", "称多县", "治多县", "囊谦县", "曲麻莱县"] + }, { + "name": "海西蒙古族藏族自治州", + "area": ["德令哈市", "格尔木市", "乌兰县", "都兰县", "天峻县"] + }] +}, { + "name": "宁夏", + "city": [{ + "name": "银川市", + "area": ["兴庆区", "西夏区", "金凤区", "灵武市", "永宁县", "贺兰县"] + }, { + "name": "石嘴山市", + "area": ["大武口区", "惠农区", "平罗县"] + }, { + "name": "吴忠市", + "area": ["利通区", "青铜峡市", "盐池县", "同心县"] + }, { + "name": "固原市", + "area": ["原州区", "西吉县", "隆德县", "泾源县", "彭阳县"] + }, { + "name": "中卫市", + "area": ["沙坡头区", "中宁县", "海原县"] + }] +}, { + "name": "新疆", + "city": [{ + "name": "乌鲁木齐市", + "area": ["天山区", "沙依巴克区", "新市区", "水磨沟区", "头屯河区", "达坂城区", "东山区", "乌鲁木齐县"] + }, { + "name": "克拉玛依市", + "area": ["克拉玛依区", "独山子区", "白碱滩区", "乌尔禾区"] + }, { + "name": "吐鲁番地区", + "area": ["吐鲁番市", "托克逊县", "鄯善县"] + }, { + "name": "哈密地区", + "area": ["哈密市", "伊吾县", "巴里坤哈萨克自治县"] + }, { + "name": "和田地区", + "area": ["和田市", "和田县", "洛浦县", "民丰县", "皮山县", "策勒县", "于田县", "墨玉县"] + }, { + "name": "阿克苏地区", + "area": ["阿克苏市", "温宿县", "沙雅县", "拜城县", "阿瓦提县", "库车县", "柯坪县", "新和县", "乌什县"] + }, { + "name": "喀什地区", + "area": ["喀什市", "巴楚县", "泽普县", "伽师县", "叶城县", "岳普湖县", "疏勒县", "麦盖提县", "英吉沙县", "莎车县", "疏附县", "塔什库尔干塔吉克自治县"] + }, { + "name": "克孜勒苏柯尔克孜自治州", + "area": ["阿图什市", "阿合奇县", "乌恰县", "阿克陶县"] + }, { + "name": "巴音郭楞蒙古自治州", + "area": ["库尔勒市", "和静县", "尉犁县", "和硕县", "且末县", "博湖县", "轮台县", "若羌县", "焉耆回族自治县"] + }, { + "name": "昌吉回族自治州", + "area": ["昌吉市", "阜康市", "奇台县", "玛纳斯县", "吉木萨尔县", "呼图壁县", "木垒哈萨克自治县", "米泉市"] + }, { + "name": "博尔塔拉蒙古自治州", + "area": ["博乐市", "精河县", "温泉县"] + }, { + "name": "石河子", + "area": ["石河子"] + }, { + "name": "阿拉尔", + "area": ["阿拉尔"] + }, { + "name": "图木舒克", + "area": ["图木舒克"] + }, { + "name": "五家渠", + "area": ["五家渠"] + }, { + "name": "伊犁哈萨克自治州", + "area": ["伊宁市", "奎屯市", "伊宁县", "特克斯县", "尼勒克县", "昭苏县", "新源县", "霍城县", "巩留县", "察布查尔锡伯自治县", "塔城地区", "阿勒泰地区"] + }] +}, { + "name": "台湾省", + "city": [{ + "name": "台北市", + "area": ["内湖区", "南港区", "中正区", "万华区", "大同区", "中山区", "松山区", "大安区", "信义区", "文山区", "士林区", "北投区"] + }, { + "name": "新北市", + "area": ["板桥区", "汐止区", "新店区"] + }, { + "name": "桃园市", + "area": ["其他"] + }, { + "name": "台中市", + "area": ["其他"] + }, { + "name": "台南市", + "area": ["其他"] + }, { + "name": "高雄市", + "area": ["其他"] + }] +}, { + "name": "澳门", + "city": [{ + "name": "澳门", + "area": ["花地玛堂区", "圣安多尼堂区", "大堂区", "望德堂区", "风顺堂区", "嘉模堂区", "圣方济各堂区", "路凼"] + }] +}, { + "name": "香港", + "city": [{ + "name": "香港", + "area": ["深水埗区", "油尖旺区", "九龙城区", "黄大仙区", "观塘区", "北区", "大埔区", "沙田区", "西贡区", "元朗区", "屯门区", "荃湾区", "葵青区", "离岛区", + "中西区", "湾仔区", "东区", "南区" + ] + }] +}] \ No newline at end of file diff --git a/pages/addrDetails/addrDetails.vue b/pages/addrDetails/addrDetails.vue new file mode 100644 index 0000000..77473aa --- /dev/null +++ b/pages/addrDetails/addrDetails.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/pages/address/address.vue b/pages/address/address.vue new file mode 100644 index 0000000..575551d --- /dev/null +++ b/pages/address/address.vue @@ -0,0 +1,303 @@ + + + + + \ No newline at end of file diff --git a/pages/agentBusiness/agentBusiness.vue b/pages/agentBusiness/agentBusiness.vue new file mode 100644 index 0000000..b222c7f --- /dev/null +++ b/pages/agentBusiness/agentBusiness.vue @@ -0,0 +1,251 @@ + + + + + \ No newline at end of file diff --git a/pages/aiChat/aiChat.vue b/pages/aiChat/aiChat.vue new file mode 100644 index 0000000..352612f --- /dev/null +++ b/pages/aiChat/aiChat.vue @@ -0,0 +1,402 @@ + + + + + \ No newline at end of file diff --git a/pages/confirmOrder/confirmOrder - 副本.vue b/pages/confirmOrder/confirmOrder - 副本.vue new file mode 100644 index 0000000..37aa6c3 --- /dev/null +++ b/pages/confirmOrder/confirmOrder - 副本.vue @@ -0,0 +1,418 @@ + + + + + \ No newline at end of file diff --git a/pages/confirmOrder/confirmOrder.vue b/pages/confirmOrder/confirmOrder.vue new file mode 100644 index 0000000..df6d139 --- /dev/null +++ b/pages/confirmOrder/confirmOrder.vue @@ -0,0 +1,595 @@ + + + + + \ No newline at end of file diff --git a/pages/consult/consult.vue b/pages/consult/consult.vue new file mode 100644 index 0000000..355b154 --- /dev/null +++ b/pages/consult/consult.vue @@ -0,0 +1,282 @@ + + + + + \ No newline at end of file diff --git a/pages/consult/index.vue b/pages/consult/index.vue new file mode 100644 index 0000000..376688a --- /dev/null +++ b/pages/consult/index.vue @@ -0,0 +1,261 @@ + + + + + \ No newline at end of file diff --git a/pages/coupon/coupon.vue b/pages/coupon/coupon.vue new file mode 100644 index 0000000..ee9f0ef --- /dev/null +++ b/pages/coupon/coupon.vue @@ -0,0 +1,178 @@ + + + + + \ No newline at end of file diff --git a/pages/editor-letter-manual/editor-letter-manual.vue b/pages/editor-letter-manual/editor-letter-manual.vue new file mode 100644 index 0000000..684726d --- /dev/null +++ b/pages/editor-letter-manual/editor-letter-manual.vue @@ -0,0 +1,269 @@ + + + + + \ No newline at end of file diff --git a/pages/editor-letter/editor-letter.vue b/pages/editor-letter/editor-letter.vue new file mode 100644 index 0000000..67a2098 --- /dev/null +++ b/pages/editor-letter/editor-letter.vue @@ -0,0 +1,285 @@ + + + + + \ No newline at end of file diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100644 index 0000000..477c9dd --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,262 @@ + + + + + \ No newline at end of file diff --git a/pages/letter-view/letter-view.vue b/pages/letter-view/letter-view.vue new file mode 100644 index 0000000..0b3ce4b --- /dev/null +++ b/pages/letter-view/letter-view.vue @@ -0,0 +1,77 @@ + + + + + \ No newline at end of file diff --git a/pages/login/login.vue b/pages/login/login.vue new file mode 100644 index 0000000..4972987 --- /dev/null +++ b/pages/login/login.vue @@ -0,0 +1,431 @@ + + + + + \ No newline at end of file diff --git a/pages/mine/components/MineHeader.vue b/pages/mine/components/MineHeader.vue new file mode 100644 index 0000000..f20daf5 --- /dev/null +++ b/pages/mine/components/MineHeader.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/pages/mine/mine.vue b/pages/mine/mine.vue new file mode 100644 index 0000000..c9c6c95 --- /dev/null +++ b/pages/mine/mine.vue @@ -0,0 +1,369 @@ + + + + + \ No newline at end of file diff --git a/pages/mine/mineOrder.vue b/pages/mine/mineOrder.vue new file mode 100644 index 0000000..625a462 --- /dev/null +++ b/pages/mine/mineOrder.vue @@ -0,0 +1,443 @@ + + + + + diff --git a/pages/mine/openMember.vue b/pages/mine/openMember.vue new file mode 100644 index 0000000..2818f50 --- /dev/null +++ b/pages/mine/openMember.vue @@ -0,0 +1,536 @@ + + + + + diff --git a/pages/payPage/payPage.vue b/pages/payPage/payPage.vue new file mode 100644 index 0000000..cf2c2a7 --- /dev/null +++ b/pages/payPage/payPage.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/pages/preview/preview.vue b/pages/preview/preview.vue new file mode 100644 index 0000000..2ffe43b --- /dev/null +++ b/pages/preview/preview.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/pages/queryAddr/addresData.js b/pages/queryAddr/addresData.js new file mode 100644 index 0000000..ccde380 --- /dev/null +++ b/pages/queryAddr/addresData.js @@ -0,0 +1,1297 @@ +export default [{ + "name": "北京市", + "city": [{ + "name": "北京市", + "area": ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", + "昌平区", "大兴区", "平谷区", "怀柔区", "密云县", "延庆县" + ] + }] +}, { + "name": "天津市", + "city": [{ + "name": "天津市", + "area": ["和平区", "河东区", "河西区", "南开区", "河北区", "红桥区", "塘沽区", "汉沽区", "大港区", "东丽区", "西青区", "津南区", "北辰区", + "武清区", "宝坻区", "宁河县", "静海县", "蓟 县" + ] + }] +}, { + "name": "河北省", + "city": [{ + "name": "石家庄市", + "area": ["长安区", "桥东区", "桥西区", "新华区", "郊 区", "井陉矿区", "井陉县", "正定县", "栾城县", "行唐县", "灵寿县", "高邑县", + "深泽县", "赞皇县", "无极县", "平山县", "元氏县", "赵 县", "辛集市", "藁", "晋州市", "新乐市", "鹿泉市" + ] + }, { + "name": "唐山市", + "area": ["路南区", "路北区", "古冶区", "开平区", "新 区", "丰润县", "滦 县", "滦南县", "乐亭县", "迁西县", "玉田县", "唐海县", + "遵化市", "丰南市", "迁安市" + ] + }, { + "name": "秦皇岛市", + "area": ["海港区", "山海关区", "北戴河区", "青龙满族自治县", "昌黎县", "抚宁县", "卢龙县"] + }, { + "name": "邯郸市", + "area": ["邯山区", "丛台区", "复兴区", "峰峰矿区", "邯郸县", "临漳县", "成安县", "大名县", "涉 县", "磁 县", "肥乡县", "永年县", + "邱 县", "鸡泽县", "广平县", "馆陶县", "魏 县", "曲周县", "武安市" + ] + }, { + "name": "邢台市", + "area": ["桥东区", "桥西区", "邢台县", "临城县", "内丘县", "柏乡县", "隆尧县", "任 县", "南和县", "宁晋县", "巨鹿县", "新河县", "广宗县", + "平乡县", "威 县", "清河县", "临西县", "南宫市", "沙河市" + ] + }, { + "name": "保定市", + "area": ["新市区", "北市区", "南市区", "满城县", "清苑县", "涞水县", "阜平县", "徐水县", "定兴县", "唐 县", "高阳县", "容城县", "涞源县", + "望都县", "安新县", "易 县", "曲阳县", "蠡 县", "顺平县", "博野", "雄县", "涿州市", "定州市", "安国市", "高碑店市" + ] + }, { + "name": "张家口", + "area": ["桥东区", "桥西区", "宣化区", "下花园区", "宣化县", "张北县", "康保县", "沽源县", "尚义县", "蔚 县", "阳原县", "怀安县", + "万全县", "怀来县", "涿鹿县", "赤城县", "崇礼县" + ] + }, { + "name": "承德市", + "area": ["双桥区", "双滦区", "鹰手营子矿区", "承德县", "兴隆县", "平泉县", "滦平县", "隆化县", "丰宁满族自治县", "宽城满族自治县", + "围场满族蒙古族自治县" + ] + }, { + "name": "沧州市", + "area": ["新华区", "运河区", "沧 县", "青 县", "东光县", "海兴县", "盐山县", "肃宁县", "南皮县", "吴桥县", "献 县", "孟村回族自治县", + "泊头市", "任丘市", "黄骅市", "河间市" + ] + }, { + "name": "廊坊市", + "area": ["安次区", "固安县", "永清县", "香河县", "大城县", "文安县", "大厂回族自治县", "霸州市", "三河市"] + }, { + "name": "衡水市", + "area": ["桃城区", "枣强县", "武邑县", "武强县", "饶阳县", "安平县", "故城县", "景 县", "阜城县", "冀州市", "深州市"] + }] +}, { + "name": "山西省", + "city": [{ + "name": "太原市", + "area": ["小店区", "迎泽区", "杏花岭区", "尖草坪区", "万柏林区", "晋源区", "清徐县", "阳曲县", "娄烦县", "古交市"] + }, { + "name": "大同市", + "area": ["城 区", "矿 区", "南郊区", "新荣区", "阳高县", "天镇县", "广灵县", "灵丘县", "浑源县", "左云县", "大同县"] + }, { + "name": "阳泉市", + "area": ["城 区", "矿 区", "郊 区", "平定县", "盂 县"] + }, { + "name": "长治市", + "area": ["城 区", "郊 区", "长治县", "襄垣县", "屯留县", "平顺县", "黎城县", "壶关县", "长子县", "武乡县", "沁 县", "沁源县", + "潞城市" + ] + }, { + "name": "晋城市", + "area": ["城 区", "沁水县", "阳城县", "陵川县", "泽州县", "高平市"] + }, { + "name": "朔州市", + "area": ["朔城区", "平鲁区", "山阴县", "应 县", "右玉县", "怀仁县"] + }, { + "name": "忻州市", + "area": ["忻府区", "原平市", "定襄县", "五台县", "代 县", "繁峙县", "宁武县", "静乐县", "神池县", "五寨县", "岢岚县", "河曲县", "保德县", + "偏关县" + ] + }, { + "name": "吕梁市", + "area": ["离石区", "孝义市", "汾阳市", "文水县", "交城县", "兴 县", "临 县", "柳林县", "石楼县", "岚 县", "方山县", "中阳县", + "交口县" + ] + }, { + "name": "晋中市", + "area": ["榆次市", "介休市", "榆社县", "左权县", "和顺县", "昔阳县", "寿阳县", "太谷县", "祁 县", "平遥县", "灵石县"] + }, { + "name": "临汾市", + "area": ["临汾市", "侯马市", "霍州市", "曲沃县", "翼城县", "襄汾县", "洪洞县", "古 县", "安泽县", "浮山县", "吉 县", "乡宁县", + "蒲 县", "大宁县", "永和县", "隰 县", "汾西县" + ] + }, { + "name": "运城市", + "area": ["运城市", "永济市", "河津市", "芮城县", "临猗县", "万荣县", "新绛县", "稷山县", "闻喜县", "夏 县", "绛 县", "平陆县", + "垣曲县" + ] + }] +}, { + "name": "内蒙古", + "city": [{ + "name": "呼和浩特市", + "area": ["新城区", "回民区", "玉泉区", "郊 区", "土默特左旗", "托克托县", "和林格尔县", "清水河县", "武川县"] + }, { + "name": "包头市", + "area": ["东河区", "昆都伦区", "青山区", "石拐矿区", "白云矿区", "郊 区", "土默特右旗", "固阳县", "达尔罕茂明安联合旗"] + }, { + "name": "乌海市", + "area": ["海勃湾区", "海南区", "乌达区"] + }, { + "name": "赤峰市", + "area": ["红山区", "元宝山区", "松山区", "阿鲁科尔沁旗", "巴林左旗", "巴林右旗", "林西县", "克什克腾旗", "翁牛特旗", "喀喇沁旗", "宁城县", + "敖汉旗" + ] + }, { + "name": "呼伦贝尔市", + "area": ["海拉尔市", "满洲里市", "扎兰屯市", "牙克石市", "根河市", "额尔古纳市", "阿荣旗", "莫力达瓦达斡尔族自治旗", "鄂伦春自治旗", "鄂温克族自治旗", + "新巴尔虎右旗", "新巴尔虎左旗", "陈巴尔虎旗" + ] + }, { + "name": "兴安盟", + "area": ["乌兰浩特市", "阿尔山市", "科尔沁右翼前旗", "科尔沁右翼中旗", "扎赉特旗", "突泉县"] + }, { + "name": "通辽市", + "area": ["科尔沁区", "霍林郭勒市", "科尔沁左翼中旗", "科尔沁左翼后旗", "开鲁县", "库伦旗", "奈曼旗", "扎鲁特旗"] + }, { + "name": "锡林郭勒盟", + "area": ["二连浩特市", "锡林浩特市", "阿巴嘎旗", "苏尼特左旗", "苏尼特右旗", "东乌珠穆沁旗", "西乌珠穆沁旗", "太仆寺旗", "镶黄旗", "正镶白旗", + "正蓝旗", "多伦县" + ] + }, { + "name": "乌兰察布盟", + "area": ["集宁市", "丰镇市", "卓资县", "化德县", "商都县", "兴和县", "凉城县", "察哈尔右翼前旗", "察哈尔右翼中旗", "察哈尔右翼后旗", "四子王旗"] + }, { + "name": "伊克昭盟", + "area": ["东胜市", "达拉特旗", "准格尔旗", "鄂托克前旗", "鄂托克旗", "杭锦旗", "乌审旗", "伊金霍洛旗"] + }, { + "name": "巴彦淖尔盟", + "area": ["临河市", "五原县", "磴口县", "乌拉特前旗", "乌拉特中旗", "乌拉特后旗", "杭锦后旗"] + }, { + "name": "阿拉善盟", + "area": ["阿拉善左旗", "阿拉善右旗", "额济纳旗"] + }] +}, { + "name": "辽宁省", + "city": [{ + "name": "沈阳市", + "area": ["沈河区", "皇姑区", "和平区", "大东区", "铁西区", "苏家屯区", "东陵区", "于洪区", "新民市", "法库县", "辽中县", "康平县", + "新城子区" + ] + }, { + "name": "大连市", + "area": ["西岗区", "中山区", "沙河口区", "甘井子区", "旅顺口区", "金州区", "瓦房店市", "普兰店市", "庄河市", "长海县"] + }, { + "name": "鞍山市", + "area": ["铁东区", "铁西区", "立山区", "千山区", "海城市", "台安县", "岫岩满族自治县"] + }, { + "name": "抚顺市", + "area": ["顺城区", "新抚区", "东洲区", "望花区", "抚顺县", "清原满族自治县", "新宾满族自治县"] + }, { + "name": "本溪市", + "area": ["平山区", "明山区", "溪湖区", "南芬区", "本溪满族自治县", "桓仁满族自治县"] + }, { + "name": "丹东市", + "area": ["振兴区", "元宝区", "振安区", "东港市", "凤城市", "宽甸满族自治县"] + }, { + "name": "锦州市", + "area": ["太和区", "古塔区", "凌河区", "凌海市", "黑山县", "义县", "北宁市"] + }, { + "name": "营口市", + "area": ["站前区", "西市区", "鲅鱼圈区", "老边区", "大石桥市", "盖州市"] + }, { + "name": "阜新市", + "area": ["海州区", "新邱区", "太平区", "清河门区", "细河区", "彰武县", "阜新蒙古族自治县"] + }, { + "name": "辽阳市", + "area": ["白塔区", "文圣区", "宏伟区", "太子河区", "弓长岭区", "灯塔市", "辽阳县"] + }, { + "name": "盘锦", + "area": ["双台子区", "兴隆台区", "盘山县", "大洼县"] + }, { + "name": "铁岭市", + "area": ["银州区", "清河区", "调兵山市", "开原市", "铁岭县", "昌图县", "西丰县"] + }, { + "name": "朝阳市", + "area": ["双塔区", "龙城区", "凌源市", "北票市", "朝阳县", "建平县", "喀喇沁左翼蒙古族自治县"] + }, { + "name": "葫芦岛市", + "area": ["龙港区", "南票区", "连山区", "兴城市", "绥中县", "建昌县"] + }] +}, { + "name": "吉林省", + "city": [{ + "name": "长春市", + "area": ["朝阳区", "宽城区", "二道区", "南关区", "绿园区", "双阳区", "九台市", "榆树市", "德惠市", "农安县"] + }, { + "name": "吉林市", + "area": ["船营区", "昌邑区", "龙潭区", "丰满区", "舒兰市", "桦甸市", "蛟河市", "磐石市", "永吉县"] + }, { + "name": "四平", + "area": ["铁西区", "铁东区", "公主岭市", "双辽市", "梨树县", "伊通满族自治县"] + }, { + "name": "辽源市", + "area": ["龙山区", "西安区", "东辽县", "东丰县"] + }, { + "name": "通化市", + "area": ["东昌区", "二道江区", "梅河口市", "集安市", "通化县", "辉南县", "柳河县"] + }, { + "name": "白山市", + "area": ["八道江区", "江源区", "临江市", "靖宇县", "抚松县", "长白朝鲜族自治县"] + }, { + "name": "松原市", + "area": ["宁江区", "乾安县", "长岭县", "扶余县", "前郭尔罗斯蒙古族自治县"] + }, { + "name": "白城市", + "area": ["洮北区", "大安市", "洮南市", "镇赉县", "通榆县"] + }, { + "name": "延边朝鲜族自治州", + "area": ["延吉市", "图们市", "敦化市", "龙井市", "珲春市", "和龙市", "安图县", "汪清县"] + }] +}, { + "name": "黑龙江省", + "city": [{ + "name": "哈尔滨市", + "area": ["松北区", "道里区", "南岗区", "平房区", "香坊区", "道外区", "呼兰区", "阿城区", "双城市", "尚志市", "五常市", "宾县", "方正县", + "通河县", "巴彦县", "延寿县", "木兰县", "依兰县" + ] + }, { + "name": "齐齐哈尔市", + "area": ["龙沙区", "昂昂溪区", "铁锋区", "建华区", "富拉尔基区", "碾子山区", "梅里斯达斡尔族区", "讷河市", "富裕县", "拜泉县", "甘南县", + "依安县", "克山县", "泰来县", "克东县", "龙江县" + ] + }, { + "name": "鹤岗市", + "area": ["兴山区", "工农区", "南山区", "兴安区", "向阳区", "东山区", "萝北县", "绥滨县"] + }, { + "name": "双鸭山", + "area": ["尖山区", "岭东区", "四方台区", "宝山区", "集贤县", "宝清县", "友谊县", "饶河县"] + }, { + "name": "鸡西市", + "area": ["鸡冠区", "恒山区", "城子河区", "滴道区", "梨树区", "麻山区", "密山市", "虎林市", "鸡东县"] + }, { + "name": "大庆市", + "area": ["萨尔图区", "红岗区", "龙凤区", "让胡路区", "大同区", "林甸县", "肇州县", "肇源县", "杜尔伯特蒙古族自治县"] + }, { + "name": "伊春市", + "area": ["伊春区", "带岭区", "南岔区", "金山屯区", "西林区", "美溪区", "乌马河区", "翠峦区", "友好区", "上甘岭区", "五营区", "红星区", + "新青区", "汤旺河区", "乌伊岭区", "铁力市", "嘉荫县" + ] + }, { + "name": "牡丹江市", + "area": ["爱民区", "东安区", "阳明区", "西安区", "绥芬河市", "宁安市", "海林市", "穆棱市", "林口县", "东宁县"] + }, { + "name": "佳木斯市", + "area": ["向阳区", "前进区", "东风区", "郊区", "同江市", "富锦市", "桦川县", "抚远县", "桦南县", "汤原县"] + }, { + "name": "七台河市", + "area": ["桃山区", "新兴区", "茄子河区", "勃利县"] + }, { + "name": "黑河市", + "area": ["爱辉区", "北安市", "五大连池市", "逊克县", "嫩江县", "孙吴县"] + }, { + "name": "绥化市", + "area": ["北林区", "安达市", "肇东市", "海伦市", "绥棱县", "兰西县", "明水县", "青冈县", "庆安县", "望奎县"] + }, { + "name": "大兴安岭地区", + "area": ["呼玛县", "塔河县", "漠河县", "大兴安岭辖区"] + }] +}, { + "name": "上海市", + "city": [{ + "name": "上海市", + "area": ["黄浦区", "卢湾区", "徐汇区", "长宁区", "静安区", "普陀区", "闸北区", "虹口区", "杨浦区", "宝山区", "闵行区", "嘉定区", "松江区", + "金山区", "青浦区", "南汇区", "奉贤区", "浦东新区", "崇明县" + ] + }] +}, { + "name": "江苏省", + "city": [{ + "name": "南京市", + "area": ["玄武区", "白下区", "秦淮区", "建邺区", "鼓楼区", "下关区", "栖霞区", "雨花台区", "浦口区", "江宁区", "六合区", "溧水县", "高淳县"] + }, { + "name": "苏州市", + "area": ["金阊区", "平江区", "沧浪区", "虎丘区", "吴中区", "相城区", "常熟市", "张家港市", "昆山市", "吴江市", "太仓市"] + }, { + "name": "无锡市", + "area": ["崇安区", "南长区", "北塘区", "滨湖区", "锡山区", "惠山区", "江阴市", "宜兴市"] + }, { + "name": "常州市", + "area": ["钟楼区", "天宁区", "戚墅堰区", "新北区", "武进区", "金坛市", "溧阳市"] + }, { + "name": "镇江市", + "area": ["京口区", "润州区", "丹徒区", "丹阳市", "扬中市", "句容市"] + }, { + "name": "南通市", + "area": ["崇川区", "港闸区", "通州市", "如皋", "海门市", "启东市", "海安县", "如东县"] + }, { + "name": "泰州市", + "area": ["海陵区", "高港区", "姜堰市", "泰兴市", "靖江市", "兴化市"] + }, { + "name": "扬州市", + "area": ["广陵区", "维扬区", "邗江区", "江都市", "仪征市", "高邮市", "宝应县"] + }, { + "name": "盐城市", + "area": ["亭湖区", "盐都区", "大丰市", "东台市", "建湖县", "射阳县", "阜宁县", "滨海县", "响水县"] + }, { + "name": "连云港市", + "area": ["新浦区", "海州区", "连云区", "东海县", "灌云县", "赣榆县", "灌南县"] + }, { + "name": "徐州市", + "area": ["云龙区", "鼓楼区", "九里区", "泉山区", "贾汪区", "邳州市", "新沂市", "铜山县", "睢宁县", "沛县", "丰县"] + }, { + "name": "淮安市", + "area": ["清河区", "清浦区", "楚州区", "淮阴区", "涟水县", "洪泽县", "金湖县", "盱眙县"] + }, { + "name": "宿迁市", + "area": ["宿城区", "宿豫区", "沭阳县", "泗阳县", "泗洪县"] + }] +}, { + "name": "浙江省", + "city": [{ + "name": "杭州市", + "area": ["拱墅区", "西湖区", "上城区", "下城区", "江干区", "滨区", "余杭区", "萧山区", "建德市", "富阳市", "临安市", "桐庐县", "淳安县"] + }, { + "name": "宁波市", + "area": ["海曙区", "江东区", "江北区", "镇海区", "北仑区", "鄞州区", "余姚市", "慈溪市", "奉化市", "宁海县", "象山县"] + }, { + "name": "温州市", + "area": ["鹿城区", "龙湾区", "瓯海区", "瑞安市", "乐清市", "永嘉县", "洞头县", "平阳县", "苍南县", "文成县", "泰顺县"] + }, { + "name": "嘉兴市", + "area": ["秀城区", "秀洲区", "海宁市", "平湖市", "桐乡", "嘉善县", "海盐县"] + }, { + "name": "湖州市", + "area": ["吴兴区", "南浔区", "长兴县", "德清县", "安吉县"] + }, { + "name": "绍兴市", + "area": ["越城区", "诸暨市", "上虞市", "嵊州市", "绍兴县", "新昌县"] + }, { + "name": "金华市", + "area": ["婺城区", "金东区", "兰溪市", "义乌市", "东阳市", "永康市", "武义县", "浦江县", "磐安县"] + }, { + "name": "衢州市", + "area": ["柯城区", "衢江区", "江山市", "龙游县", "常山县", "开化县"] + }, { + "name": "舟山市", + "area": ["定海区", "普陀区", "岱山县", "嵊泗县"] + }, { + "name": "台州市", + "area": ["椒江区", "黄岩区", "路桥区", "临海市", "温岭市", "玉环县", "天台县", "仙居县", "三门县"] + }, { + "name": "丽水市", + "area": ["莲都区", "龙泉市", "缙云县", "青田县", "云和县", "遂昌县", "松阳县", "庆元县", "景宁畲族自治县"] + }] +}, { + "name": "安徽省", + "city": [{ + "name": "合肥市", + "area": ["庐阳区", "瑶海区", "蜀山区", "包河区", "长丰县", "肥东县", "肥西县"] + }, { + "name": "芜湖市", + "area": ["镜湖区", "弋江区", "鸠江区", "三山区", "芜湖县", "南陵县", "繁昌县"] + }, { + "name": "蚌埠市", + "area": ["蚌山区", "龙子湖区", "禹会区", "淮上区", "怀远县", "固镇县", "五河县"] + }, { + "name": "淮南市", + "area": ["田家庵区", "大通区", "谢家集区", "八公山区", "潘集区", "凤台县"] + }, { + "name": "马鞍山市", + "area": ["雨山区", "花山区", "金家庄区", "当涂县"] + }, { + "name": "淮北市", + "area": ["相山区", "杜集区", "烈山区", "濉溪县"] + }, { + "name": "铜陵市", + "area": ["铜官山区", "狮子山区", "郊区", "铜陵县"] + }, { + "name": "安庆市", + "area": ["迎江区", "大观区", "宜秀区", "桐城市", "宿松县", "枞阳县", "太湖县", "怀宁县", "岳西县", "望江县", "潜山县"] + }, { + "name": "黄山市", + "area": ["屯溪区", "黄山区", "徽州区", "休宁县", "歙县", "祁门县", "黟县"] + }, { + "name": "滁州市", + "area": ["琅琊区", "南谯区", "天长市", "明光市", "全椒县", "来安县", "定远县", "凤阳县"] + }, { + "name": "阜阳市", + "area": ["颍州区", "颍东区", "颍泉区", "界首市", "临泉县", "颍上县", "阜南县", "太和县"] + }, { + "name": "宿州市", + "area": ["埇桥区", "萧县", "泗县", "砀山县", "灵璧县"] + }, { + "name": "巢湖市", + "area": ["居巢区", "含山县", "无为县", "庐江县", "和县"] + }, { + "name": "六安市", + "area": ["金安区", "裕安区", "寿县", "霍山县", "霍邱县", "舒城县", "金寨县"] + }, { + "name": "亳州市", + "area": ["谯城区", "利辛县", "涡阳县", "蒙城县"] + }, { + "name": "池州市", + "area": ["贵池区", "东至县", "石台县", "青阳县"] + }, { + "name": "宣城市", + "area": ["宣州区", "宁国市", "广德县", "郎溪县", "泾县", "旌德县", "绩溪县"] + }] +}, { + "name": "福建省", + "city": [{ + "name": "福州市", + "area": ["鼓楼区", "台江区", "仓山区", "马尾区", "晋安区", "福清市", "长乐市", "闽侯县", "闽清县", "永泰县", "连江县", "罗源县", "平潭县"] + }, { + "name": "厦门市", + "area": ["思明区", "海沧区", "湖里区", "集美区", "同安区", "翔安区"] + }, { + "name": "莆田市", + "area": ["城厢区", "涵江区", "荔城区", "秀屿区", "仙游县"] + }, { + "name": "三明市", + "area": ["梅列区", "三元区", "永安市", "明溪县", "将乐县", "大田县", "宁化县", "建宁县", "沙县", "尤溪县", "清流县", "泰宁县"] + }, { + "name": "泉州市", + "area": ["鲤城区", "丰泽区", "洛江区", "泉港区", "石狮市", "晋江市", "南安市", "惠安县", "永春县", "安溪县", "德化县", "金门县"] + }, { + "name": "漳州市", + "area": ["芗城区", "龙文区", "龙海市", "平和县", "南靖县", "诏安县", "漳浦县", "华安县", "东山县", "长泰县", "云霄县"] + }, { + "name": "南平市", + "area": ["延平区", "建瓯市", "邵武市", "武夷山市", "建阳市", "松溪县", "光泽县", "顺昌县", "浦城县", "政和县"] + }, { + "name": "龙岩市", + "area": ["新罗区", "漳平市", "长汀县", "武平县", "上杭县", "永定县", "连城县"] + }, { + "name": "宁德市", + "area": ["蕉城区", "福安市", "福鼎市", "寿宁县", "霞浦县", "柘荣县", "屏南县", "古田县", "周宁县"] + }] +}, { + "name": "江西省", + "city": [{ + "name": "南昌市", + "area": ["东湖区", "西湖区", "青云谱区", "湾里区", "青山湖区", "新建县", "南昌县", "进贤县", "安义县"] + }, { + "name": "景德镇市", + "area": ["珠山区", "昌江区", "乐平市", "浮梁县"] + }, { + "name": "萍乡市", + "area": ["安源区", "湘东区", "莲花县", "上栗县", "芦溪县"] + }, { + "name": "九江市", + "area": ["浔阳区", "庐山区", "瑞昌市", "九江县", "星子县", "武宁县", "彭泽县", "永修县", "修水县", "湖口县", "德安县", "都昌县"] + }, { + "name": "新余市", + "area": ["渝水区", "分宜县"] + }, { + "name": "鹰潭市", + "area": ["月湖区", "贵溪市", "余江县"] + }, { + "name": "赣州市", + "area": ["章贡区", "瑞金市", "南康市", "石城县", "安远县", "赣县", "宁都县", "寻乌县", "兴国县", "定南县", "上犹县", "于都县", "龙南县", + "崇义县", "信丰县", "全南县", "大余县", "会昌县" + ] + }, { + "name": "吉安市", + "area": ["吉州区", "青原区", "井冈山市", "吉安县", "永丰县", "永新县", "新干县", "泰和县", "峡江县", "遂川县", "安福县", "吉水县", "万安县"] + }, { + "name": "宜春市", + "area": ["袁州区", "丰城市", "樟树市", "高安市", "铜鼓县", "靖安县", "宜丰县", "奉新县", "万载县", "上高县"] + }, { + "name": "抚州市", + "area": ["临川区", "南丰县", "乐安县", "金溪县", "南城县", "东乡县", "资溪县", "宜黄县", "广昌县", "黎川县", "崇仁县"] + }, { + "name": "上饶市", + "area": ["信州区", "德兴市", "上饶县", "广丰县", "鄱阳县", "婺源县", "铅山县", "余干县", "横峰县", "弋阳县", "玉山县", "万年县"] + }] +}, { + "name": "山东省", + "city": [{ + "name": "济南市", + "area": ["市中区", "历下区", "天桥区", "槐荫区", "历城区", "长清区", "章丘市", "平阴县", "济阳县", "商河县"] + }, { + "name": "青岛市", + "area": ["市南区", "市北区", "城阳区", "四方区", "李沧区", "黄岛区", "崂山区", "胶南市", "胶州市", "平度市", "莱西市", "即墨市"] + }, { + "name": "淄博市", + "area": ["张店区", "临淄区", "淄川区", "博山区", "周村区", "桓台县", "高青县", "沂源县"] + }, { + "name": "枣庄市", + "area": ["市中区", "山亭区", "峄城区", "台儿庄区", "薛城区", "滕州市"] + }, { + "name": "东营市", + "area": ["东营区", "河口区", "垦利县", "广饶县", "利津县"] + }, { + "name": "烟台市", + "area": ["芝罘区", "福山区", "牟平区", "莱山区", "龙口市", "莱阳市", "莱州市", "招远市", "蓬莱市", "栖霞市", "海阳市", "长岛县"] + }, { + "name": "潍坊市", + "area": ["潍城区", "寒亭区", "坊子区", "奎文区", "青州市", "诸城市", "寿光市", "安丘市", "高密市", "昌邑市", "昌乐县", "临朐县"] + }, { + "name": "济宁市", + "area": ["市中区", "任城区", "曲阜市", "兖州市", "邹城市", "鱼台县", "金乡县", "嘉祥县", "微山县", "汶上县", "泗水县", "梁山县"] + }, { + "name": "泰安市", + "area": ["泰山区", "岱岳区", "新泰市", "肥城市", "宁阳县", "东平县"] + }, { + "name": "威海市", + "area": ["环翠区", "乳山市", "文登市", "荣成市"] + }, { + "name": "日照市", + "area": ["东港区", "岚山区", "五莲县", "莒县"] + }, { + "name": "莱芜市", + "area": ["莱城区", "钢城区"] + }, { + "name": "临沂市", + "area": ["兰山区", "罗庄区", "河东区", "沂南县", "郯城县", "沂水县", "苍山县", "费县", "平邑县", "莒南县", "蒙阴县", "临沭县"] + }, { + "name": "德州市", + "area": ["德城区", "乐陵市", "禹城市", "陵县", "宁津县", "齐河县", "武城县", "庆云县", "平原县", "夏津县", "临邑县"] + }, { + "name": "聊城市", + "area": ["东昌府区", "临清市", "高唐县", "阳谷县", "茌平县", "莘县", "东阿县", "冠县"] + }, { + "name": "滨州市", + "area": ["滨城区", "邹平县", "沾化县", "惠民县", "博兴县", "阳信县", "无棣县"] + }, { + "name": "菏泽市", + "area": ["牡丹区", "鄄城县", "单县", "郓城县", "曹县", "定陶县", "巨野县", "东明县", "成武县"] + }] +}, { + "name": "河南省", + "city": [{ + "name": "郑州市", + "area": ["中原区", "金水区", "二七区", "管城回族区", "上街区", "惠济区", "巩义市", "新郑市", "新密市", "登封市", "荥阳市", "中牟县"] + }, { + "name": "开封市", + "area": ["鼓楼区", "龙亭区", "顺河回族区", "禹王台区", "金明区", "开封县", "尉氏县", "兰考县", "杞县", "通许县"] + }, { + "name": "洛阳市", + "area": ["西工区", "老城区", "涧西区", "瀍河回族区", "洛龙区", "吉利区", "偃师市", "孟津县", "汝阳县", "伊川县", "洛宁县", "嵩县", "宜阳县", + "新安县", "栾川县" + ] + }, { + "name": "平顶山市", + "area": ["新华区", "卫东区", "湛河区", "石龙区", "汝州市", "舞钢市", "宝丰县", "叶县", "郏县", "鲁山县"] + }, { + "name": "安阳市", + "area": ["北关区", "文峰区", "殷都区", "龙安区", "林州市", "安阳县", "滑县", "内黄县", "汤阴县"] + }, { + "name": "鹤壁市", + "area": ["淇滨区", "山城区", "鹤山区", "浚县", "淇县"] + }, { + "name": "新乡市", + "area": ["卫滨区", "红旗区", "凤泉区", "牧野区", "卫辉市", "辉县市", "新乡县", "获嘉县", "原阳县", "长垣县", "封丘县", "延津县"] + }, { + "name": "焦作市", + "area": ["解放区", "中站区", "马村区", "山阳区", "沁阳市", "孟州市", "修武县", "温县", "武陟县", "博爱县"] + }, { + "name": "濮阳市", + "area": ["华龙区", "濮阳县", "南乐县", "台前县", "清丰县", "范县"] + }, { + "name": "许昌市", + "area": ["魏都区", "禹州市", "长葛市", "许昌县", "鄢陵县", "襄城县"] + }, { + "name": "漯河市", + "area": ["源汇区", "郾城区", "召陵区", "临颍县", "舞阳县"] + }, { + "name": "三门峡市", + "area": ["湖滨区", "义马市", "灵宝市", "渑池县", "卢氏县", "陕县"] + }, { + "name": "南阳市", + "area": ["卧龙区", "宛城区", "邓州市", "桐柏县", "方城县", "淅川县", "镇平县", "唐河县", "南召县", "内乡县", "新野县", "社旗县", "西峡县"] + }, { + "name": "商丘市", + "area": ["梁园区", "睢阳区", "永城市", "宁陵县", "虞城县", "民权县", "夏邑县", "柘城县", "睢县"] + }, { + "name": "信阳市", + "area": ["浉河区", "平桥区", "潢川县", "淮滨县", "息县", "新县", "商城县", "固始县", "罗山县", "光山县"] + }, { + "name": "周口市", + "area": ["川汇区", "项城市", "商水县", "淮阳县", "太康县", "鹿邑县", "西华县", "扶沟县", "沈丘县", "郸城县"] + }, { + "name": "驻马店市", + "area": ["驿城区", "确山县", "新蔡县", "上蔡县", "西平县", "泌阳县", "平舆县", "汝南县", "遂平县", "正阳县"] + }, { + "name": "焦作市", + "area": ["济源市"] + }] +}, { + "name": "湖北省", + "city": [{ + "name": "武汉市", + "area": ["江岸区", "武昌区", "江汉区", "硚口区", "汉阳区", "青山区", "洪山区", "东西湖区", "汉南区", "蔡甸区", "江夏区", "黄陂区", "新洲区"] + }, { + "name": "黄石市", + "area": ["黄石港区", "西塞山区", "下陆区", "铁山区", "大冶市", "阳新县"] + }, { + "name": "十堰市", + "area": ["张湾区", "茅箭区", "丹江口市", "郧县", "竹山县", "房县", "郧西县", "竹溪县"] + }, { + "name": "荆州市", + "area": ["沙市区", "荆州区", "洪湖市", "石首市", "松滋市", "监利县", "公安县", "江陵县"] + }, { + "name": "宜昌市", + "area": ["西陵区", "伍家岗区", "点军区", "猇亭区", "夷陵区", "宜都市", "当阳市", "枝江市", "秭归县", "远安县", "兴山县", "五峰土家族自治县", + "长阳土家族自治县" + ] + }, { + "name": "襄樊市", + "area": ["襄城区", "樊城区", "襄阳区", "老河口市", "枣阳市", "宜城市", "南漳县", "谷城县", "保康县"] + }, { + "name": "鄂州市", + "area": ["鄂城区", "华容区", "梁子湖区"] + }, { + "name": "荆门市", + "area": ["东宝区", "掇刀区", "钟祥市", "京山县", "沙洋县"] + }, { + "name": "孝感市", + "area": ["孝南区", "应城市", "安陆市", "汉川市", "云梦县", "大悟县", "孝昌县"] + }, { + "name": "黄冈市", + "area": ["黄州区", "麻城市", "武穴市", "红安县", "罗田县", "浠水县", "蕲春县", "黄梅县", "英山县", "团风县"] + }, { + "name": "咸宁市", + "area": ["咸安区", "赤壁市", "嘉鱼县", "通山县", "崇阳县", "通城县"] + }, { + "name": "随州市", + "area": ["曾都区", "广水市"] + }, { + "name": "恩施土家族苗族自治州", + "area": ["恩施市", "利川市", "建始县", "来凤县", "巴东县", "鹤峰县", "宣恩县", "咸丰县"] + }, { + "name": "仙桃市", + "area": ["仙桃"] + }, { + "name": "天门市", + "area": ["天门"] + }, { + "name": "潜江市", + "area": ["潜江"] + }, { + "name": "神农架林区", + "area": ["神农架林区"] + }] +}, { + "name": "湖南省", + "city": [{ + "name": "长沙市", + "area": ["岳麓区", "芙蓉区", "天心区", "开福区", "雨花区", "浏阳市", "长沙县", "望城县", "宁乡县"] + }, { + "name": "株洲市", + "area": ["天元区", "荷塘区", "芦淞区", "石峰区", "醴陵市", "株洲县", "炎陵县", "茶陵县", "攸县"] + }, { + "name": "湘潭市", + "area": ["岳塘区", "雨湖区", "湘乡市", "韶山市", "湘潭县"] + }, { + "name": "衡阳市", + "area": ["雁峰区", "珠晖区", "石鼓区", "蒸湘区", "南岳区", "耒阳市", "常宁市", "衡阳县", "衡东县", "衡山县", "衡南县", "祁东县"] + }, { + "name": "邵阳市", + "area": ["双清区", "大祥区", "北塔区", "武冈市", "邵东县", "洞口县", "新邵县", "绥宁县", "新宁县", "邵阳县", "隆回县", "城步苗族自治县"] + }, { + "name": "岳阳市", + "area": ["岳阳楼区", "云溪区", "君山区", "临湘市", "汨罗市", "岳阳县", "湘阴县", "平江县", "华容县"] + }, { + "name": "常德市", + "area": ["武陵区", "鼎城区", "津市市", "澧县", "临澧县", "桃源县", "汉寿县", "安乡县", "石门县"] + }, { + "name": "张家界市", + "area": ["永定区", "武陵源区", "慈利县", "桑植县"] + }, { + "name": "益阳市", + "area": ["赫山区", "资阳区", "沅江市", "桃江县", "南县", "安化县"] + }, { + "name": "郴州市", + "area": ["北湖区", "苏仙区", "资兴市", "宜章县", "汝城县", "安仁县", "嘉禾县", "临武县", "桂东县", "永兴县", "桂阳县"] + }, { + "name": "永州市", + "area": ["冷水滩区", "零陵区", "祁阳县", "蓝山县", "宁远县", "新田县", "东安县", "江永县", "道县", "双牌县", "江华瑶族自治县"] + }, { + "name": "怀化市", + "area": ["鹤城区", "洪江市", "会同县", "沅陵县", "辰溪县", "溆浦县", "中方县", "新晃侗族自治县", "芷江侗族自治县", "通道侗族自治县", + "靖州苗族侗族自治县", "麻阳苗族自治县" + ] + }, { + "name": "娄底市", + "area": ["娄星区", "冷水江市", "涟源市", "新化县", "双峰县"] + }, { + "name": "湘西土家族苗族自治州", + "area": ["吉首市", "古丈县", "龙山县", "永顺县", "凤凰县", "泸溪县", "保靖县", "花垣县"] + }] +}, { + "name": "广东省", + "city": [{ + "name": "广州市", + "area": ["越秀区", "荔湾区", "海珠区", "天河区", "白云区", "黄埔区", "番禺区", "花都区", "南沙区", "萝岗区", "增城市", "从化市"] + }, { + "name": "深圳市", + "area": ["福田区", "罗湖区", "南山区", "宝安区", "龙岗区", "盐田区"] + }, { + "name": "东莞市", + "area": ["莞城", "常平", "塘厦", "塘厦", "塘厦"] + }, { + "name": "中山市", + "area": ["中山"] + }, { + "name": "潮州市", + "area": ["湘桥区", "潮安县", "饶平县"] + }, { + "name": "揭阳市", + "area": ["榕城区", "揭东县", "揭西县", "惠来县", "普宁市"] + }, { + "name": "云浮市", + "area": ["云城区", "新兴县", "郁南县", "云安县", "罗定市"] + }, { + "name": "珠海市", + "area": ["香洲区", "斗门区", "金湾区"] + }, { + "name": "汕头市", + "area": ["金平区", "濠江区", "龙湖区", "潮阳区", "潮南区", "澄海区", "南澳县"] + }, { + "name": "韶关市", + "area": ["浈江区", "武江区", "曲江区", "乐昌市", "南雄市", "始兴县", "仁化县", "翁源县", "新丰县", "乳源瑶族自治县"] + }, { + "name": "佛山市", + "area": ["禅城区", "南海区", "顺德区", "三水区", "高明区"] + }, { + "name": "江门市", + "area": ["蓬江区", "江海区", "新会区", "恩平市", "台山市", "开平市", "鹤山市"] + }, { + "name": "湛江市", + "area": ["赤坎区", "霞山区", "坡头区", "麻章区", "吴川市", "廉江市", "雷州市", "遂溪县", "徐闻县"] + }, { + "name": "茂名市", + "area": ["茂南区", "茂港区", "化州市", "信宜市", "高州市", "电白县"] + }, { + "name": "肇庆市", + "area": ["端州区", "鼎湖区", "高要市", "四会市", "广宁县", "怀集县", "封开县", "德庆县"] + }, { + "name": "惠州市", + "area": ["惠城区", "惠阳区", "博罗县", "惠东县", "龙门县"] + }, { + "name": "梅州市", + "area": ["梅江区", "兴宁市", "梅县", "大埔县", "丰顺县", "五华县", "平远县", "蕉岭县"] + }, { + "name": "汕尾市", + "area": ["城区", "陆丰市", "海丰县", "陆河县"] + }, { + "name": "河源市", + "area": ["源城区", "紫金县", "龙川县", "连平县", "和平县", "东源县"] + }, { + "name": "阳江市", + "area": ["江城区", "阳春市", "阳西县", "阳东县"] + }, { + "name": "清远市", + "area": ["清城区", "英德市", "连州市", "佛冈县", "阳山县", "清新县", "连山壮族瑶族自治县", "连南瑶族自治县"] + }] +}, { + "name": "广西", + "city": [{ + "name": "南宁市", + "area": ["青秀区", "兴宁区", "西乡塘区", "良庆区", "江南区", "邕宁区", "武鸣县", "隆安县", "马山县", "上林县", "宾阳县", "横县"] + }, { + "name": "柳州市", + "area": ["城中区", "鱼峰区", "柳北区", "柳南区", "柳江县", "柳城县", "鹿寨县", "融安县", "融水苗族自治县", "三江侗族自治县"] + }, { + "name": "桂林市", + "area": ["象山区", "秀峰区", "叠彩区", "七星区", "雁山区", "阳朔县", "临桂县", "灵川县", "全州县", "平乐县", "兴安县", "灌阳县", "荔浦县", + "资源县", "永福县", "龙胜各族自治县", "恭城瑶族自治县" + ] + }, { + "name": "梧州市", + "area": ["万秀区", "蝶山区", "长洲区", "岑溪市", "苍梧县", "藤县", "蒙山县"] + }, { + "name": "北海市", + "area": ["海城区", "银海区", "铁山港区", "合浦县"] + }, { + "name": "防城港市", + "area": ["港口区", "防城区", "东兴市", "上思县"] + }, { + "name": "钦州市", + "area": ["钦南区", "钦北区", "灵山县", "浦北县"] + }, { + "name": "贵港市", + "area": ["港北区", "港南区", "覃塘区", "桂平市", "平南县"] + }, { + "name": "玉林市", + "area": ["玉州区", "北流市", "容县", "陆川县", "博白县", "兴业县"] + }, { + "name": "百色市", + "area": ["右江区", "凌云县", "平果县", "西林县", "乐业县", "德保县", "田林县", "田阳县", "靖西县", "田东县", "那坡县", "隆林各族自治县"] + }, { + "name": "贺州市", + "area": ["八步区", "钟山县", "昭平县", "富川瑶族自治县"] + }, { + "name": "河池市", + "area": ["金城江区", "宜州市", "天峨县", "凤山县", "南丹县", "东兰县", "都安瑶族自治县", "罗城仫佬族自治县", "巴马瑶族自治县", "环江毛南族自治县", + "大化瑶族自治县" + ] + }, { + "name": "来宾市", + "area": ["兴宾区", "合山市", "象州县", "武宣县", "忻城县", "金秀瑶族自治县"] + }, { + "name": "崇左市", + "area": ["江州区", "凭祥市", "宁明县", "扶绥县", "龙州县", "大新县", "天等县"] + }] +}, { + "name": "海南省", + "city": [{ + "name": "海口市", + "area": ["龙华区", "秀英区", "琼山区", "美兰区"] + }, { + "name": "三亚市", + "area": ["三亚市"] + }, { + "name": "五指山市", + "area": ["五指山"] + }, { + "name": "琼海市", + "area": ["琼海"] + }, { + "name": "儋州市", + "area": ["儋州"] + }, { + "name": "文昌市", + "area": ["文昌"] + }, { + "name": "万宁市", + "area": ["万宁"] + }, { + "name": "东方市", + "area": ["东方"] + }, { + "name": "澄迈县", + "area": ["澄迈县"] + }, { + "name": "定安县", + "area": ["定安县"] + }, { + "name": "屯昌县", + "area": ["屯昌县"] + }, { + "name": "临高县", + "area": ["临高县"] + }, { + "name": "白沙黎族自治县", + "area": ["白沙黎族自治县"] + }, { + "name": "昌江黎族自治县", + "area": ["昌江黎族自治县"] + }, { + "name": "乐东黎族自治县", + "area": ["乐东黎族自治县"] + }, { + "name": "陵水黎族自治县", + "area": ["陵水黎族自治县"] + }, { + "name": "保亭黎族苗族自治县", + "area": ["保亭黎族苗族自治县"] + }, { + "name": "琼中黎族苗族自治县", + "area": ["琼中黎族苗族自治县"] + }] +}, { + "name": "重庆市", + "city": [{ + "name": "重庆市", + "area": ["渝中区", "大渡口区", "江北区", "南岸区", "北碚区", "渝北区", "巴南区", "长寿区", "双桥区", "沙坪坝区", "万盛区", "万州区", + "涪陵区", "黔江区", "永川区", "合川区", "江津区", "九龙坡区", "南川区", "綦江县", "潼南县", "荣昌县", "璧山县", "大足县", "铜梁县", + "梁平县", "开县", "忠县", "城口县", "垫江县", "武隆县", "丰都县", "奉节县", "云阳县", "巫溪县", "巫山县", "石柱土家族自治县", + "秀山土家族苗族自治县", "酉阳土家族苗族自治县", "彭水苗族土家族自治县" + ] + }] +}, { + "name": "四川省", + "city": [{ + "name": "成都市", + "area": ["青羊区", "锦江区", "金牛区", "武侯区", "成华区", "龙泉驿区", "青白江区", "新都区", "温江区", "都江堰市", "彭州市", "邛崃市", + "崇州市", "金堂县", "郫县", "新津县", "双流县", "蒲江县", "大邑县" + ] + }, { + "name": "自贡市", + "area": ["大安区", "自流井区", "贡井区", "沿滩区", "荣县", "富顺县"] + }, { + "name": "攀枝花市", + "area": ["仁和区", "米易县", "盐边县", "东区", "西区"] + }, { + "name": "泸州市", + "area": ["江阳区", "纳溪区", "龙马潭区", "泸县", "合江县", "叙永县", "古蔺县"] + }, { + "name": "德阳市", + "area": ["旌阳区", "广汉市", "什邡市", "绵竹市", "罗江县", "中江县"] + }, { + "name": "绵阳市", + "area": ["涪城区", "游仙区", "江油市", "盐亭县", "三台县", "平武县", "安县", "梓潼县", "北川羌族自治县"] + }, { + "name": "广元市", + "area": ["元坝区", "朝天区", "青川县", "旺苍县", "剑阁县", "苍溪县", "市中区"] + }, { + "name": "遂宁市", + "area": ["船山区", "安居区", "射洪县", "蓬溪县", "大英县"] + }, { + "name": "内江市", + "area": ["市中区", "东兴区", "资中县", "隆昌县", "威远县"] + }, { + "name": "乐山市", + "area": ["市中区", "五通桥区", "沙湾区", "金口河区", "峨眉山市", "夹江县", "井研县", "犍为县", "沐川县", "马边彝族自治县", "峨边彝族自治县"] + }, { + "name": "南充", + "area": ["顺庆区", "高坪区", "嘉陵区", "阆中市", "营山县", "蓬安县", "仪陇县", "南部县", "西充县"] + }, { + "name": "眉山市", + "area": ["东坡区", "仁寿县", "彭山县", "洪雅县", "丹棱县", "青神县"] + }, { + "name": "宜宾市", + "area": ["翠屏区", "宜宾县", "兴文县", "南溪县", "珙县", "长宁县", "高县", "江安县", "筠连县", "屏山县"] + }, { + "name": "广安市", + "area": ["广安区", "华蓥市", "岳池县", "邻水县", "武胜县"] + }, { + "name": "达州市", + "area": ["通川区", "万源市", "达县", "渠县", "宣汉县", "开江县", "大竹县"] + }, { + "name": "雅安市", + "area": ["雨城区", "芦山县", "石棉县", "名山县", "天全县", "荥经县", "宝兴县", "汉源县"] + }, { + "name": "巴中市", + "area": ["巴州区", "南江县", "平昌县", "通江县"] + }, { + "name": "资阳市", + "area": ["雁江区", "简阳市", "安岳县", "乐至县"] + }, { + "name": "阿坝藏族羌族自治州", + "area": ["马尔康县", "九寨沟县", "红原县", "汶川县", "阿坝县", "理县", "若尔盖县", "小金县", "黑水县", "金川县", "松潘县", "壤塘县", "茂县"] + }, { + "name": "甘孜藏族自治州", + "area": ["康定县", "丹巴县", "炉霍县", "九龙县", "甘孜县", "雅江县", "新龙县", "道孚县", "白玉县", "理塘县", "德格县", "乡城县", "石渠县", + "稻城县", "色达县", "巴塘县", "泸定县", "得荣县" + ] + }, { + "name": "凉山彝族自治州", + "area": ["西昌市", "美姑县", "昭觉县", "金阳县", "甘洛县", "布拖县", "雷波县", "普格县", "宁南县", "喜德县", "会东县", "越西县", "会理县", + "盐源县", "德昌县", "冕宁县", "木里藏族自治县" + ] + }] +}, { + "name": "贵州省", + "city": [{ + "name": "贵阳市", + "area": ["南明区", "云岩区", "花溪区", "乌当区", "白云区", "小河区", "清镇市", "开阳县", "修文县", "息烽县"] + }, { + "name": "六盘水市", + "area": ["钟山区", "水城县", "盘县", "六枝特区"] + }, { + "name": "遵义市", + "area": ["红花岗区", "汇川区", "赤水市", "仁怀市", "遵义县", "绥阳县", "桐梓县", "习水县", "凤冈县", "正安县", "余庆县", "湄潭县", + "道真仡佬族苗族自治县", "务川仡佬族苗族自治县" + ] + }, { + "name": "安顺市", + "area": ["西秀区", "普定县", "平坝县", "镇宁布依族苗族自治县", "紫云苗族布依族自治县", "关岭布依族苗族自治县"] + }, { + "name": "铜仁地区", + "area": ["铜仁市", "德江县", "江口县", "思南县", "石阡县", "玉屏侗族自治县", "松桃苗族自治县", "印江土家族苗族自治县", "沿河土家族自治县", "万山特区"] + }, { + "name": "毕节地区", + "area": ["毕节市", "黔西县", "大方县", "织金县", "金沙县", "赫章县", "纳雍县", "威宁彝族回族苗族自治县"] + }, { + "name": "黔西南布依族苗族自治州", + "area": ["兴义市", "望谟县", "兴仁县", "普安县", "册亨县", "晴隆县", "贞丰县", "安龙县"] + }, { + "name": "黔东南苗族侗族自治州", + "area": ["凯里市", "施秉县", "从江县", "锦屏县", "镇远县", "麻江县", "台江县", "天柱县", "黄平县", "榕江县", "剑河县", "三穗县", "雷山县", + "黎平县", "岑巩县", "丹寨县" + ] + }, { + "name": "黔南布依族苗族自治州", + "area": ["都匀市", "福泉市", "贵定县", "惠水县", "罗甸县", "瓮安县", "荔波县", "龙里县", "平塘县", "长顺县", "独山县", "三都水族自治县"] + }] +}, { + "name": "云南省", + "city": [{ + "name": "昆明市", + "area": ["盘龙区", "五华区", "官渡区", "西山区", "东川区", "安宁市", "呈贡县", "晋宁县", "富民县", "宜良县", "嵩明县", "石林彝族自治县", + "禄劝彝族苗族自治县", "寻甸回族彝族自治县" + ] + }, { + "name": "曲靖市", + "area": ["麒麟区", "宣威市", "马龙县", "沾益县", "富源县", "罗平县", "师宗县", "陆良县", "会泽县"] + }, { + "name": "玉溪市", + "area": ["红塔区", "江川县", "澄江县", "通海县", "华宁县", "易门县", "峨山彝族自治县", "新平彝族傣族自治县", "元江哈尼族彝族傣族自治县"] + }, { + "name": "保山市", + "area": ["隆阳区", "施甸县", "腾冲县", "龙陵县", "昌宁县"] + }, { + "name": "昭通市", + "area": ["昭阳区", "鲁甸县", "巧家县", "盐津县", "大关县", "永善县", "绥江县", "镇雄县", "彝良县", "威信县", "水富县"] + }, { + "name": "丽江市", + "area": ["古城区", "永胜县", "华坪县", "玉龙纳西族自治县", "宁蒗彝族自治县"] + }, { + "name": "普洱市", + "area": ["思茅区", "普洱哈尼族彝族自治县", "墨江哈尼族自治县", "景东彝族自治县", "景谷傣族彝族自治县", "镇沅彝族哈尼族拉祜族自治县", "江城哈尼族彝族自治县", + "孟连傣族拉祜族佤族自治县", "澜沧拉祜族自治县", "西盟佤族自治县" + ] + }, { + "name": "临沧市", + "area": ["临翔区", "凤庆县", "云县", "永德县", "镇康县", "双江拉祜族佤族布朗族傣族自治县", "耿马傣族佤族自治县", "沧源佤族自治县"] + }, { + "name": "德宏傣族景颇族自治州", + "area": ["潞西市", "瑞丽市", "梁河县", "盈江县", "陇川县"] + }, { + "name": "怒江傈僳族自治州", + "area": ["泸水县", "福贡县", "贡山独龙族怒族自治县", "兰坪白族普米族自治县"] + }, { + "name": "迪庆藏族自治州", + "area": ["香格里拉县", "德钦县", "维西傈僳族自治县"] + }, { + "name": "大理白族自治州", + "area": ["大理市", "祥云县", "宾川县", "弥渡县", "永平县", "云龙县", "洱源县", "剑川县", "鹤庆县", "漾濞彝族自治县", "南涧彝族自治县", + "巍山彝族回族自治县" + ] + }, { + "name": "楚雄彝族自治州", + "area": ["楚雄市", "双柏县", "牟定县", "南华县", "姚安县", "大姚县", "永仁县", "元谋县", "武定县", "禄丰县"] + }, { + "name": "红河哈尼族彝族自治州", + "area": ["蒙自县", "个旧市", "开远市", "绿春县", "建水县", "石屏县", "弥勒县", "泸西县", "元阳县", "红河县", "金平苗族瑶族傣族自治县", + "河口瑶族自治县", "屏边苗族自治县" + ] + }, { + "name": "文山壮族苗族自治州", + "area": ["文山县", "砚山县", "西畴县", "麻栗坡县", "马关县", "丘北县", "广南县", "富宁县"] + }, { + "name": "西双版纳傣族自治州", + "area": ["景洪市", "勐海县", "勐腊县"] + }] +}, { + "name": "西藏", + "city": [{ + "name": "拉萨市", + "area": ["城关区", "林周县", "当雄县", "尼木县", "曲水县", "堆龙德庆县", "达孜县", "墨竹工卡县"] + }, { + "name": "那曲地区", + "area": ["那曲县", "嘉黎县", "比如县", "聂荣县", "安多县", "申扎县", "索县", "班戈县", "巴青县", "尼玛县"] + }, { + "name": "昌都地区", + "area": ["昌都县", "江达县", "贡觉县", "类乌齐县", "丁青县", "察雅县", "八宿县", "左贡县", "芒康县", "洛隆县", "边坝县"] + }, { + "name": "林芝地区", + "area": ["林芝县", "工布江达县", "米林县", "墨脱县", "波密县", "察隅县", "朗县"] + }, { + "name": "山南地区", + "area": ["乃东县", "扎囊县", "贡嘎县", "桑日县", "琼结县", "曲松县", "措美县", "洛扎县", "加查县", "隆子县", "错那县", "浪卡子县"] + }, { + "name": "日喀则地区", + "area": ["日喀则市", "南木林县", "江孜县", "定日县", "萨迦县", "拉孜县", "昂仁县", "谢通门县", "白朗县", "仁布县", "康马县", "定结县", + "仲巴县", "亚东县", "吉隆县", "聂拉木县", "萨嘎县", "岗巴县" + ] + }, { + "name": "阿里地区", + "area": ["噶尔县", "普兰县", "札达县", "日土县", "革吉县", "改则县", "措勤县"] + }] +}, { + "name": "陕西省", + "city": [{ + "name": "西安市", + "area": ["莲湖区", "新城区", "碑林区", "雁塔区", "灞桥区", "未央区", "阎良区", "临潼区", "长安区", "高陵县", "蓝田县", "户县", "周至县"] + }, { + "name": "铜川市", + "area": ["耀州区", "王益区", "印台区", "宜君县"] + }, { + "name": "宝鸡市", + "area": ["渭滨区", "金台区", "陈仓区", "岐山县", "凤翔县", "陇县", "太白县", "麟游县", "扶风县", "千阳县", "眉县", "凤县"] + }, { + "name": "咸阳市", + "area": ["秦都区", "渭城区", "杨陵区", "兴平市", "礼泉县", "泾阳县", "永寿县", "三原县", "彬县", "旬邑县", "长武县", "乾县", "武功县", + "淳化县" + ] + }, { + "name": "渭南市", + "area": ["临渭区", "韩城市", "华阴市", "蒲城县", "潼关县", "白水县", "澄城县", "华县", "合阳县", "富平县", "大荔县"] + }, { + "name": "延安市", + "area": ["宝塔区", "安塞县", "洛川县", "子长县", "黄陵县", "延川县", "富县", "延长县", "甘泉县", "宜川县", "志丹县", "黄龙县", "吴起县"] + }, { + "name": "汉中市", + "area": ["汉台区", "留坝县", "镇巴县", "城固县", "南郑县", "洋县", "宁强县", "佛坪县", "勉县", "西乡县", "略阳县"] + }, { + "name": "榆林市", + "area": ["榆阳区", "清涧县", "绥德县", "神木县", "佳县", "府谷县", "子洲县", "靖边县", "横山县", "米脂县", "吴堡县", "定边县"] + }, { + "name": "安康市", + "area": ["汉滨区", "紫阳县", "岚皋县", "旬阳县", "镇坪县", "平利县", "石泉县", "宁陕县", "白河县", "汉阴县"] + }, { + "name": "商洛市", + "area": ["商州区", "镇安县", "山阳县", "洛南县", "商南县", "丹凤县", "柞水县"] + }] +}, { + "name": "甘肃省", + "city": [{ + "name": "兰州市", + "area": ["城关区", "七里河区", "西固区", "安宁区", "红古区", "永登县", "皋兰县", "榆中县"] + }, { + "name": "嘉峪关市", + "area": ["嘉峪关市"] + }, { + "name": "金昌市", + "area": ["金川区", "永昌县"] + }, { + "name": "白银市", + "area": ["白银区", "平川区", "靖远县", "会宁县", "景泰县"] + }, { + "name": "天水市", + "area": ["清水县", "秦安县", "甘谷县", "武山县", "张家川回族自治县", "北道区", "秦城区"] + }, { + "name": "武威市", + "area": ["凉州区", "民勤县", "古浪县", "天祝藏族自治县"] + }, { + "name": "酒泉市", + "area": ["肃州区", "玉门市", "敦煌市", "金塔县", "肃北蒙古族自治县", "阿克塞哈萨克族自治县", "安西县"] + }, { + "name": "张掖市", + "area": ["甘州区", "民乐县", "临泽县", "高台县", "山丹县", "肃南裕固族自治县"] + }, { + "name": "庆阳市", + "area": ["西峰区", "庆城县", "环县", "华池县", "合水县", "正宁县", "宁县", "镇原县"] + }, { + "name": "平凉市", + "area": ["崆峒区", "泾川县", "灵台县", "崇信县", "华亭县", "庄浪县", "静宁县"] + }, { + "name": "定西市", + "area": ["安定区", "通渭县", "临洮县", "漳县", "岷县", "渭源县", "陇西县"] + }, { + "name": "陇南市", + "area": ["武都区", "成县", "宕昌县", "康县", "文县", "西和县", "礼县", "两当县", "徽县"] + }, { + "name": "临夏回族自治州", + "area": ["临夏市", "临夏县", "康乐县", "永靖县", "广河县", "和政县", "东乡族自治县", "积石山保安族东乡族撒拉族自治县"] + }, { + "name": "甘南藏族自治州", + "area": ["合作市", "临潭县", "卓尼县", "舟曲县", "迭部县", "玛曲县", "碌曲县", "夏河县"] + }] +}, { + "name": "青海省", + "city": [{ + "name": "西宁市", + "area": ["城中区", "城东区", "城西区", "城北区", "湟源县", "湟中县", "大通回族土族自治县"] + }, { + "name": "海东地区", + "area": ["平安县", "乐都县", "民和回族土族自治县", "互助土族自治县", "化隆回族自治县", "循化撒拉族自治县"] + }, { + "name": "海北藏族自治州", + "area": ["海晏县", "祁连县", "刚察县", "门源回族自治县"] + }, { + "name": "海南藏族自治州", + "area": ["共和县", "同德县", "贵德县", "兴海县", "贵南县"] + }, { + "name": "黄南藏族自治州", + "area": ["同仁县", "尖扎县", "泽库县", "河南蒙古族自治县"] + }, { + "name": "果洛藏族自治州", + "area": ["玛沁县", "班玛县", "甘德县", "达日县", "久治县", "玛多县"] + }, { + "name": "玉树藏族自治州", + "area": ["玉树县", "杂多县", "称多县", "治多县", "囊谦县", "曲麻莱县"] + }, { + "name": "海西蒙古族藏族自治州", + "area": ["德令哈市", "格尔木市", "乌兰县", "都兰县", "天峻县"] + }] +}, { + "name": "宁夏", + "city": [{ + "name": "银川市", + "area": ["兴庆区", "西夏区", "金凤区", "灵武市", "永宁县", "贺兰县"] + }, { + "name": "石嘴山市", + "area": ["大武口区", "惠农区", "平罗县"] + }, { + "name": "吴忠市", + "area": ["利通区", "青铜峡市", "盐池县", "同心县"] + }, { + "name": "固原市", + "area": ["原州区", "西吉县", "隆德县", "泾源县", "彭阳县"] + }, { + "name": "中卫市", + "area": ["沙坡头区", "中宁县", "海原县"] + }] +}, { + "name": "新疆", + "city": [{ + "name": "乌鲁木齐市", + "area": ["天山区", "沙依巴克区", "新市区", "水磨沟区", "头屯河区", "达坂城区", "东山区", "乌鲁木齐县"] + }, { + "name": "克拉玛依市", + "area": ["克拉玛依区", "独山子区", "白碱滩区", "乌尔禾区"] + }, { + "name": "吐鲁番地区", + "area": ["吐鲁番市", "托克逊县", "鄯善县"] + }, { + "name": "哈密地区", + "area": ["哈密市", "伊吾县", "巴里坤哈萨克自治县"] + }, { + "name": "和田地区", + "area": ["和田市", "和田县", "洛浦县", "民丰县", "皮山县", "策勒县", "于田县", "墨玉县"] + }, { + "name": "阿克苏地区", + "area": ["阿克苏市", "温宿县", "沙雅县", "拜城县", "阿瓦提县", "库车县", "柯坪县", "新和县", "乌什县"] + }, { + "name": "喀什地区", + "area": ["喀什市", "巴楚县", "泽普县", "伽师县", "叶城县", "岳普湖县", "疏勒县", "麦盖提县", "英吉沙县", "莎车县", "疏附县", + "塔什库尔干塔吉克自治县" + ] + }, { + "name": "克孜勒苏柯尔克孜自治州", + "area": ["阿图什市", "阿合奇县", "乌恰县", "阿克陶县"] + }, { + "name": "巴音郭楞蒙古自治州", + "area": ["库尔勒市", "和静县", "尉犁县", "和硕县", "且末县", "博湖县", "轮台县", "若羌县", "焉耆回族自治县"] + }, { + "name": "昌吉回族自治州", + "area": ["昌吉市", "阜康市", "奇台县", "玛纳斯县", "吉木萨尔县", "呼图壁县", "木垒哈萨克自治县", "米泉市"] + }, { + "name": "博尔塔拉蒙古自治州", + "area": ["博乐市", "精河县", "温泉县"] + }, { + "name": "石河子", + "area": ["石河子"] + }, { + "name": "阿拉尔", + "area": ["阿拉尔"] + }, { + "name": "图木舒克", + "area": ["图木舒克"] + }, { + "name": "五家渠", + "area": ["五家渠"] + }, { + "name": "伊犁哈萨克自治州", + "area": ["伊宁市", "奎屯市", "伊宁县", "特克斯县", "尼勒克县", "昭苏县", "新源县", "霍城县", "巩留县", "察布查尔锡伯自治县", "塔城地区", + "阿勒泰地区" + ] + }] +}, { + "name": "台湾省", + "city": [{ + "name": "台北市", + "area": ["内湖区", "南港区", "中正区", "万华区", "大同区", "中山区", "松山区", "大安区", "信义区", "文山区", "士林区", "北投区"] + }, { + "name": "新北市", + "area": ["板桥区", "汐止区", "新店区"] + }, { + "name": "桃园市", + "area": ["其他"] + }, { + "name": "台中市", + "area": ["其他"] + }, { + "name": "台南市", + "area": ["其他"] + }, { + "name": "高雄市", + "area": ["其他"] + }] +}, { + "name": "澳门", + "city": [{ + "name": "澳门", + "area": ["花地玛堂区", "圣安多尼堂区", "大堂区", "望德堂区", "风顺堂区", "嘉模堂区", "圣方济各堂区", "路凼"] + }] +}, { + "name": "香港", + "city": [{ + "name": "香港", + "area": ["深水埗区", "油尖旺区", "九龙城区", "黄大仙区", "观塘区", "北区", "大埔区", "沙田区", "西贡区", "元朗区", "屯门区", "荃湾区", + "葵青区", "离岛区", "中西区", "湾仔区", "东区", "南区" + ] + }] +}] \ No newline at end of file diff --git a/pages/queryAddr/queryAddr.vue b/pages/queryAddr/queryAddr.vue new file mode 100644 index 0000000..d3849c3 --- /dev/null +++ b/pages/queryAddr/queryAddr.vue @@ -0,0 +1,270 @@ + + + + + \ No newline at end of file diff --git a/pages/register/register.vue b/pages/register/register.vue new file mode 100644 index 0000000..41f5997 --- /dev/null +++ b/pages/register/register.vue @@ -0,0 +1,355 @@ + + + + + \ No newline at end of file diff --git a/pages/replyLetterQuery/replyLetterQuery.vue b/pages/replyLetterQuery/replyLetterQuery.vue new file mode 100644 index 0000000..7497d5a --- /dev/null +++ b/pages/replyLetterQuery/replyLetterQuery.vue @@ -0,0 +1,42 @@ + + + + + \ No newline at end of file diff --git a/pages/setting/setting.vue b/pages/setting/setting.vue new file mode 100644 index 0000000..3ddafb6 --- /dev/null +++ b/pages/setting/setting.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/pages/waybill-info/waybill-info.vue b/pages/waybill-info/waybill-info.vue new file mode 100644 index 0000000..c1ab132 --- /dev/null +++ b/pages/waybill-info/waybill-info.vue @@ -0,0 +1,63 @@ + + + + + \ No newline at end of file diff --git a/request/api.js b/request/api.js new file mode 100644 index 0000000..e26069c --- /dev/null +++ b/request/api.js @@ -0,0 +1,85 @@ +// 存放接口处 +import http from './request.js'; + +/** + * 账号密码登录 + * @param{account:string ,password: string} params + */ +export const userLogin = (data) => http.request({ + method: "POST", + url: '/user/login', + data +}); + +/** + * 微信code登录 + * @param{platform:string ,code: 微信code} data + */ +export const thirdLogin = (data) => http.request({ + method: "POST", + url: '/user/third', + data +}) + +/** + * 手机验证码登录 + * @param{mobile:string ,captcha: 验证码} data + */ +export const phonenumberLogin = (data) => http.request({ + method: "POST", + url: '/user/mobilelogin', + data +}) + + +/** + * 重置密码 + * @param{mobile:string ,captcha: 验证码,newpassword:string} data + */ +export const retrievePassword = (data) => http.request({ + method: "POST", + url: '/user/resetpwd', + data +}) + + +/** + * 发送验证码 + * @param{mobile:手机号码 ,event: [register:'注册',login:'登录',bind:'绑定手机号',修改:'savepwd']} data + */ +export const sendVerifyCode = (data) => http.request({ + method: "POST", + url: '/sms/send', + data +}) + + +// /** +// * 上传文件 +// * @param{file} file +// */ +// export const uploadFile = (files) => { +// uni.uploadFile({ +// url: 'https://jx.xiaolinghou.com/api/common/upload', //仅为示例,非真实的接口地址 +// header: { +// token: uni.getStorageSync('token'), +// }, +// files, +// name: 'file', +// success: (res) => { +// console.log(res); +// }, +// fail: (err) => { +// console.log(err); +// } +// }); +// } + + +/** + * 上传 + */ +export const uploadFile = (filePath) => http.upload('/common/upload', { + filePath, + name: 'file' +}) diff --git a/request/baseUrl.js b/request/baseUrl.js new file mode 100644 index 0000000..060242c --- /dev/null +++ b/request/baseUrl.js @@ -0,0 +1 @@ +export const baseUrl = 'https://jx.xiaolinghou.com/api'; \ No newline at end of file diff --git a/request/request.js b/request/request.js new file mode 100644 index 0000000..e69c730 --- /dev/null +++ b/request/request.js @@ -0,0 +1,52 @@ +import Request from 'luch-request' // https://www.quanzhan.co/luch-request/guide/3.x/#npm +import { + baseUrl +} from './baseUrl.js'; +const http = new Request(); + +http.setConfig((config) => { + console.log(12313123123); + /* config 为默认全局配置*/ + config.baseURL = baseUrl; /* 根域名 */ + config.timeout = 100000; + // config.header['Access-Control-Allow-Origin'] = "*" + // config.header['Origin']='*' + return config +}) + +// 在请求之前拦截 +http.interceptors.request.use((config) => { + console.log(config); + config.header = { + token:uni.getStorageSync('token'), + ...config.header, + } + + return config +}, config => { // 可使用async await 做异步操作 + console.log(config); + return Promise.reject(config) +}) + +// 在请求之后拦截 +http.interceptors.response.use((response) => { + /* 对响应成功做点什么 可使用async await 做异步操作*/ + + return response +}, (response) => { + console.log(response,'1111111111'); + if(response.data?.code===401){ + uni.navigateTo({ + url:'pages/login/login' + }) + } + uni.showToast({ + title:'请求错误', + icon:'error' + }) + // uni.showToast({title:response.data?.message||response.errMsg}) + /* 对响应错误做点什么*/ + // console.log(response) + return Promise.reject(response) +}) +export default http; diff --git a/request/wm.js b/request/wm.js new file mode 100644 index 0000000..a96e403 --- /dev/null +++ b/request/wm.js @@ -0,0 +1,200 @@ +// 存放接口处 +import http from './request.js'; + +// #ifdef MP-WEIXIN +import { + TextDecoder +} from '@/utils/text-encoding-0.6.3/index.js' +// #endif + + +// 获取聊天记录 +export const getMessageList = (data) => http.request({ + method: "GET", + url: '/chat/history' +}); + +/** + * 微信code登录 + * @param{platform:string ,code: 微信code} data + */ +export const thirdLogin = (data) => http.request({ + method: "POST", + url: '/user/third', + data +}) + +// 发送消息 +// export const sendMessageApi = (data) => http.request({ +// method: "POST", +// url: '/chat/random', +// data +// }) + + +// 发送消息 +// export const sendMessageApi = (data) => { +// const requestTask = uni.request({ +// url: "https://jx.xiaolinghou.com/api/chat/random", +// timeout: 150000, +// responseType: "text", +// method: "POST", +// header: { +// token: 'ccef1fb8-c85c-4144-9e69-00a4f279f9ab' +// }, +// enableChunked: true, //配置这里 +// data, +// success: response => { +// console.log(response) +// }, +// fail: error => {} +// }) +// requestTask.onChunkReceived(function(res) { +// const uint8Array = new Uint8Array(res.data); +// // 尝试使用多个字符编码进行解码 +// const encodings = ['utf-8', 'gbk', 'big5']; // 按照你的需求添加更多的编码方式 +// let text = ''; +// for (const encoding of encodings) { +// try { +// const textDecoder = new TextDecoder(encoding); +// text = textDecoder.decode(uint8Array); +// break; +// } catch (error) { +// console.log(`Decoding failed with ${encoding}: ${error}`); +// } +// } + +// console.log(text); +// }) +// } + +// 发送消息 +export const sendMessageApi = async (data, that) => { + let token = uni.getStorageSync('token') + if (!token) { + uni.navigateTo({ + url: '/pages/login/login' + }) + return + } + // #ifdef H5 + const response = await fetch('https://jx.xiaolinghou.com/api/chat/random', { + method: "POST", + headers: { + "Content-Type": "application/json", + token, + }, + body: JSON.stringify(data) + }, ); + const reader = response.body.getReader(); + const decoder = new TextDecoder("utf-8"); + + let read = () => { + return reader.read().then(({ + done, + value + }) => { + if (done) { + that.isSnedMsg = false + return; + } + // 将已下载部分的内容展示出来 + let text = decoder.decode(value, { + stream: true + }); + const match = text.match(/"(.*?)"/); + if (match) { + text = match[1]; + } + console.log(text); + that.messageList[that.messageList.length - 1].message += text + // 继续读取下一部分 + return read(); + }); + } + + read() + // #endif + + + + // #ifdef MP-WEIXIN + const requestTask = uni.request({ + url: "https://jx.xiaolinghou.com/api/chat/random", + timeout: 150000, + responseType: "text", + method: "POST", + header: { + token + }, + enableChunked: true, //配置这里 + data, + success: response => { + console.log(response) + }, + fail: error => {} + }) + const decoder = new TextDecoder("utf8"); + requestTask.onChunkReceived(function(response) { + const uint8Array = new Uint8Array(response.data); + let text = String.fromCharCode.apply(null, uint8Array); + text = decodeURIComponent(escape(text)); + const match = text.match(/"(.*?)"/); + if (match) { + text = match[1] + } + console.log(text); + that.messageList[that.messageList.length - 1].message += text + }) + // #endif +} + + + + +// 获取问题列表 +export const getQuestionApi = () => http.request({ + method: "GET", + url: '/index/article' +}) + +// 获取价格区间 +export const getPhotoPriceApi = () => http.request({ + method: "GET", + url: '/index/photo' +}) + +// 支付 +export const toPay = (data) => http.request({ + method: "POST", + url: '/order/pay', + data +}) +// 快递方式列表 +export const getPostList = () => http.request({ + method: "GET", + url: '/order/express' +}) + + +// 代收信件信息 +export const getAgentBusinessInfoApi = () => http.request({ + method: "GET", + url: '/user/write_back' +}) + + +// 保存代收信息 +export const setAgentBusinessInfoApi = (data) => http.request({ + method: "POST", + url: '/user/set_back', + data +}) + +// 查询订单详情 + +export const getOrderInfo = (params) => http.request({ + method: "GET", + url: '/order/info', + params +}) \ No newline at end of file diff --git a/request/yyf.js b/request/yyf.js new file mode 100644 index 0000000..945401b --- /dev/null +++ b/request/yyf.js @@ -0,0 +1,121 @@ +// 存放接口处 +import http from './request.js'; + +// 获取用户信息 +export const getUserInfo = () => http.request({ + method: "GET", + url: '/user/get_info', +}); + +// 删除地址 +export const delAddress = (data) => http.request({ + method: "POST", + url: '/user/address_del', + data +}); + +// 修改地址 +export const editAddress = (data) => http.request({ + method: "POST", + url: '/user/address_edit', + data +}); + +// 添加地址 +export const addAddress = (data) => http.request({ + method: "POST", + url: '/user/address_add', + data +}); + +// 收货地址列表 +export const getAddressList = (data) => http.request({ + method: "GET", + url: '/user/address_list', + data +}); + + +// 下单记录 +export const getOrderList = (data) => http.request({ + method: "GET", + url: '/order/list', + data +}) + +// 订单详情 +export const getOrderDetails = (data) => http.request({ + method: "GET", + url: '/order/info', + data +}) + +// 订单数量 +export const getOrderNum = (data) => http.request({ + method: "GET", + url: '/order/count', + data +}) + +// 查询优惠券 +export const getCouponList = (data) => http.request({ + method: "GET", + url: '/coupon/list', + data +}) + +// 重新支付 +export const cancelPayment = (data) => http.request({ + method: "GET", + url: '/order/close', + data +}) + +// 重新支付 +export const rePayment = (data) => http.request({ + method: "GET", + url: '/order/pays', + data +}) + +// 看守所列表 +export const getJailListApi = (params) => http.request({ + method: "GET", + url: '/index/city', + params, +}) + +// 看守所详情 +export const getAddrDetails = (params) => http.request({ + method: "GET", + url: '/index/city_info', + params, +}) + +// 看守所详情 +export const onLogout = (params) => http.request({ + method: "POST", + url: '/user/logout', + params, +}) + +// 充值列表 +export const getPayList = (params) => http.request({ + method: "POST", + url: '/pay/list', + params, +}) + +// 检查是否支付成功 +export const checkPayStatus = (params) => http.request({ + method: "GET", + url: '/pay/check', + params, +}) + +// 下单 +export const onPayment = (params) => http.request({ + method: "POST", + url: '/pay/pay', + params, +}) \ No newline at end of file diff --git a/router/index.js b/router/index.js new file mode 100644 index 0000000..7779bb8 --- /dev/null +++ b/router/index.js @@ -0,0 +1,41 @@ +// router.js + +// https://www.hhyang.cn/v2/start/cross/codeRoute.html +import { + RouterMount, + createRouter +} from 'uni-simple-router'; + +const router = createRouter({ + platform: process.env.VUE_APP_PLATFORM, + routes: [...ROUTES] +}); + +let baseRoute = ['/pages/index/index', '/pages/login/login','/pages/register/register'] +//全局路由前置守卫 +router.beforeEach((to, from, next) => { + console.log(to.path); + if (baseRoute.includes(to.path)) { + next() + return + } + uni.getStorage({ + key: 'token', + success: (res) => { + next(); + }, + fail: (res) => { + next('/pages/login/login'); + } + }); +}); + +// 全局路由后置守卫 +router.afterEach((to, from) => { + console.log('跳转结束') +}) + +export { + router, + RouterMount +} \ No newline at end of file diff --git a/static/01-1写信.png b/static/01-1写信.png new file mode 100644 index 0000000..8844958 Binary files /dev/null and b/static/01-1写信.png differ diff --git a/static/01-1写信@2x.png b/static/01-1写信@2x.png new file mode 100644 index 0000000..7c922db Binary files /dev/null and b/static/01-1写信@2x.png differ diff --git a/static/01-1写信@3x.png b/static/01-1写信@3x.png new file mode 100644 index 0000000..cb10eb6 Binary files /dev/null and b/static/01-1写信@3x.png differ diff --git a/static/01-2寄信.png b/static/01-2寄信.png new file mode 100644 index 0000000..682a3b2 Binary files /dev/null and b/static/01-2寄信.png differ diff --git a/static/01-2寄信@2x.png b/static/01-2寄信@2x.png new file mode 100644 index 0000000..65f5320 Binary files /dev/null and b/static/01-2寄信@2x.png differ diff --git a/static/01-2寄信@3x.png b/static/01-2寄信@3x.png new file mode 100644 index 0000000..87bbe73 Binary files /dev/null and b/static/01-2寄信@3x.png differ diff --git a/static/01-3代收.png b/static/01-3代收.png new file mode 100644 index 0000000..b8becc2 Binary files /dev/null and b/static/01-3代收.png differ diff --git a/static/01-3代收@2x.png b/static/01-3代收@2x.png new file mode 100644 index 0000000..90c635c Binary files /dev/null and b/static/01-3代收@2x.png differ diff --git a/static/01-3代收@3x.png b/static/01-3代收@3x.png new file mode 100644 index 0000000..9740371 Binary files /dev/null and b/static/01-3代收@3x.png differ diff --git a/static/01-4回信.png b/static/01-4回信.png new file mode 100644 index 0000000..fb31793 Binary files /dev/null and b/static/01-4回信.png differ diff --git a/static/01-4回信@2x.png b/static/01-4回信@2x.png new file mode 100644 index 0000000..b7fe04f Binary files /dev/null and b/static/01-4回信@2x.png differ diff --git a/static/01-4回信@3x.png b/static/01-4回信@3x.png new file mode 100644 index 0000000..afae4b0 Binary files /dev/null and b/static/01-4回信@3x.png differ diff --git a/static/01AI.png b/static/01AI.png new file mode 100644 index 0000000..77cc084 Binary files /dev/null and b/static/01AI.png differ diff --git a/static/01AI@2x.png b/static/01AI@2x.png new file mode 100644 index 0000000..71efc08 Binary files /dev/null and b/static/01AI@2x.png differ diff --git a/static/01AI@3x.png b/static/01AI@3x.png new file mode 100644 index 0000000..ba7c236 Binary files /dev/null and b/static/01AI@3x.png differ diff --git a/static/01banner.png b/static/01banner.png new file mode 100644 index 0000000..1c71a50 Binary files /dev/null and b/static/01banner.png differ diff --git a/static/01banner@2x.png b/static/01banner@2x.png new file mode 100644 index 0000000..d4b1dbe Binary files /dev/null and b/static/01banner@2x.png differ diff --git a/static/01banner@3x.png b/static/01banner@3x.png new file mode 100644 index 0000000..d64dc04 Binary files /dev/null and b/static/01banner@3x.png differ diff --git a/static/01tab首页1.png b/static/01tab首页1.png new file mode 100644 index 0000000..ee8a26c Binary files /dev/null and b/static/01tab首页1.png differ diff --git a/static/01tab首页1@2x.png b/static/01tab首页1@2x.png new file mode 100644 index 0000000..1b4d616 Binary files /dev/null and b/static/01tab首页1@2x.png differ diff --git a/static/01tab首页1@3x.png b/static/01tab首页1@3x.png new file mode 100644 index 0000000..2dd8e9d Binary files /dev/null and b/static/01tab首页1@3x.png differ diff --git a/static/01填写.png b/static/01填写.png new file mode 100644 index 0000000..53a453d Binary files /dev/null and b/static/01填写.png differ diff --git a/static/01填写@2x.png b/static/01填写@2x.png new file mode 100644 index 0000000..204f9b8 Binary files /dev/null and b/static/01填写@2x.png differ diff --git a/static/01填写@3x.png b/static/01填写@3x.png new file mode 100644 index 0000000..45bfc96 Binary files /dev/null and b/static/01填写@3x.png differ diff --git a/static/01跳转.png b/static/01跳转.png new file mode 100644 index 0000000..06feab6 Binary files /dev/null and b/static/01跳转.png differ diff --git a/static/01跳转@2x.png b/static/01跳转@2x.png new file mode 100644 index 0000000..718575e Binary files /dev/null and b/static/01跳转@2x.png differ diff --git a/static/01跳转@3x.png b/static/01跳转@3x.png new file mode 100644 index 0000000..23e919f Binary files /dev/null and b/static/01跳转@3x.png differ diff --git a/static/01首页.png b/static/01首页.png new file mode 100644 index 0000000..d17a779 Binary files /dev/null and b/static/01首页.png differ diff --git a/static/03tab客服.png b/static/03tab客服.png new file mode 100644 index 0000000..0af79b3 Binary files /dev/null and b/static/03tab客服.png differ diff --git a/static/03tab客服@2x.png b/static/03tab客服@2x.png new file mode 100644 index 0000000..636941b Binary files /dev/null and b/static/03tab客服@2x.png differ diff --git a/static/03tab客服@3x.png b/static/03tab客服@3x.png new file mode 100644 index 0000000..8234ab0 Binary files /dev/null and b/static/03tab客服@3x.png differ diff --git a/static/03头像.png b/static/03头像.png new file mode 100644 index 0000000..85e64cb Binary files /dev/null and b/static/03头像.png differ diff --git a/static/03头像@2x.png b/static/03头像@2x.png new file mode 100644 index 0000000..beb2178 Binary files /dev/null and b/static/03头像@2x.png differ diff --git a/static/03客服1@2x.png b/static/03客服1@2x.png new file mode 100644 index 0000000..17196fe Binary files /dev/null and b/static/03客服1@2x.png differ diff --git a/static/04tab我的.png b/static/04tab我的.png new file mode 100644 index 0000000..2830ab1 Binary files /dev/null and b/static/04tab我的.png differ diff --git a/static/04tab我的@2x.png b/static/04tab我的@2x.png new file mode 100644 index 0000000..35306ce Binary files /dev/null and b/static/04tab我的@2x.png differ diff --git a/static/04tab我的@3x.png b/static/04tab我的@3x.png new file mode 100644 index 0000000..047e977 Binary files /dev/null and b/static/04tab我的@3x.png differ diff --git a/static/04我的4@2x.png b/static/04我的4@2x.png new file mode 100644 index 0000000..9b190ba Binary files /dev/null and b/static/04我的4@2x.png differ diff --git a/static/10箭头@2x.png b/static/10箭头@2x.png new file mode 100644 index 0000000..90b40e6 Binary files /dev/null and b/static/10箭头@2x.png differ diff --git a/static/11快递@2x.png b/static/11快递@2x.png new file mode 100644 index 0000000..5ee57dc Binary files /dev/null and b/static/11快递@2x.png differ diff --git a/static/12余额支付@2x.png b/static/12余额支付@2x.png new file mode 100644 index 0000000..0245347 Binary files /dev/null and b/static/12余额支付@2x.png differ diff --git a/static/12微信支付@2x.png b/static/12微信支付@2x.png new file mode 100644 index 0000000..95dda9e Binary files /dev/null and b/static/12微信支付@2x.png differ diff --git a/static/12活动@2x.png b/static/12活动@2x.png new file mode 100644 index 0000000..1fe169e Binary files /dev/null and b/static/12活动@2x.png differ diff --git a/static/24bac@2x.png b/static/24bac@2x.png new file mode 100644 index 0000000..082748f Binary files /dev/null and b/static/24bac@2x.png differ diff --git a/static/25发送.png b/static/25发送.png new file mode 100644 index 0000000..790fcc9 Binary files /dev/null and b/static/25发送.png differ diff --git a/static/25发送@2x.png b/static/25发送@2x.png new file mode 100644 index 0000000..83f53a8 Binary files /dev/null and b/static/25发送@2x.png differ diff --git a/static/caisemenghuanjingyu.ttf b/static/caisemenghuanjingyu.ttf new file mode 100644 index 0000000..ccbb238 Binary files /dev/null and b/static/caisemenghuanjingyu.ttf differ diff --git a/static/icons/清除_clear.svg b/static/icons/清除_clear.svg new file mode 100644 index 0000000..8375204 --- /dev/null +++ b/static/icons/清除_clear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/logo.png b/static/logo.png new file mode 100644 index 0000000..b5771e2 Binary files /dev/null and b/static/logo.png differ diff --git a/static/mine/m_avatar.png b/static/mine/m_avatar.png new file mode 100644 index 0000000..f7baf0e Binary files /dev/null and b/static/mine/m_avatar.png differ diff --git a/static/mine/m_gorden_member.png b/static/mine/m_gorden_member.png new file mode 100644 index 0000000..2715e9f Binary files /dev/null and b/static/mine/m_gorden_member.png differ diff --git a/static/mine/m_member_1.png b/static/mine/m_member_1.png new file mode 100644 index 0000000..5062565 Binary files /dev/null and b/static/mine/m_member_1.png differ diff --git a/static/mine/m_member_2.png b/static/mine/m_member_2.png new file mode 100644 index 0000000..d2ee21f Binary files /dev/null and b/static/mine/m_member_2.png differ diff --git a/static/mine/m_member_3.png b/static/mine/m_member_3.png new file mode 100644 index 0000000..7b68b55 Binary files /dev/null and b/static/mine/m_member_3.png differ diff --git a/static/mine/m_member_4.png b/static/mine/m_member_4.png new file mode 100644 index 0000000..2ec1cb6 Binary files /dev/null and b/static/mine/m_member_4.png differ diff --git a/static/mine/m_member_bg.png b/static/mine/m_member_bg.png new file mode 100644 index 0000000..06f0a23 Binary files /dev/null and b/static/mine/m_member_bg.png differ diff --git a/static/mine/m_member_vip.png b/static/mine/m_member_vip.png new file mode 100644 index 0000000..3f79e3b Binary files /dev/null and b/static/mine/m_member_vip.png differ diff --git a/static/mine/m_normal_member.png b/static/mine/m_normal_member.png new file mode 100644 index 0000000..032d14e Binary files /dev/null and b/static/mine/m_normal_member.png differ diff --git a/static/mine/m_open_not_select.png b/static/mine/m_open_not_select.png new file mode 100644 index 0000000..4ebb2f9 Binary files /dev/null and b/static/mine/m_open_not_select.png differ diff --git a/static/mine/m_open_select.png b/static/mine/m_open_select.png new file mode 100644 index 0000000..e6f0408 Binary files /dev/null and b/static/mine/m_open_select.png differ diff --git a/static/mine/m_order_arrow.png b/static/mine/m_order_arrow.png new file mode 100644 index 0000000..f432dfe Binary files /dev/null and b/static/mine/m_order_arrow.png differ diff --git a/static/mine/preview_bg.png b/static/mine/preview_bg.png new file mode 100644 index 0000000..082748f Binary files /dev/null and b/static/mine/preview_bg.png differ diff --git a/static/tab地址1@2x.png b/static/tab地址1@2x.png new file mode 100644 index 0000000..b2492fd Binary files /dev/null and b/static/tab地址1@2x.png differ diff --git a/store/index.js b/store/index.js new file mode 100644 index 0000000..8be805d --- /dev/null +++ b/store/index.js @@ -0,0 +1,40 @@ +import Vue from 'vue' +export const store = Vue.observable({ + userInfo: uni.getStorageSync('userInfo'), + letterInfo: null, + productionType: [{ + id: 0, + title: '普通打印', + explain: '编辑内容普通A4纸打印 此方式免费', + price: 0, + key:'photo_general' + }, { + id: 1, + title: '人工代写', + explain: '人工使用中性笔手写,此方式', + price: 2, + key:'photo_artificial' + }, { + id: 2, + title: '手写拍照', + explain: '自己熟悉得字迹,富有温度', + price: 2, + key:'photo_write' + }], + photoPrice: null, + letterViewInfo: {} + +}) +export const mutations = { + setUserInfo(data) { + store.userInfo = data + }, + setLetterInfo(data) { + store.letterInfo = data + }, + setPhotoPrice(data) { + Vue.set(store, 'photoPrice', data) + } +} +Vue.prototype.$store = store +Vue.prototype.$mutations = mutations \ No newline at end of file diff --git a/store/mine.js b/store/mine.js new file mode 100644 index 0000000..e739b6a --- /dev/null +++ b/store/mine.js @@ -0,0 +1,71 @@ +import Vue from 'vue' +import { getUserInfo, getAddressList, getOrderList, getOrderNum } from '@/request/yyf.js'; + +export const store = Vue.observable({ + userInfo: uni.getStorageSync('userInfo'), + addrList: [], + orderList: [], + orderNum: {}, + sendAddrList: [], + targetAddrList: [] +}) + +export const mutations = { + setUserInfo(data) { + store.userInfo = data; + }, + setAddrList(type, data) { + store.addrList = data; + }, + setOderList(data) { + store.orderList = data; + }, + setOrderNum(data) { + store.orderNum = data; + }, +} + +export const actions = { + async onGetuserInfo() { + const { data } = await getUserInfo(); + if(data.code === 1) { + let info = data.data; + mutations.setUserInfo(info); + } + }, + async onGetAddrList() { + // const { data } = await getAddressList({ + // type: 1, + // }); + // if(data.code === 1) { + // let info = data.data.data; + // mutations.setAddrList(info); + // } + }, + async onGetOrderList() { + const { data } = await getOrderList({ + page: 3, + status: 1 + }); + if(data.code === 1) { + let info = data.data.data; + // console.log(data.data.data.length); + mutations.setOderList(info); + } + }, + async onGetOrderNum() { + const { data } = await getOrderNum({}); + if(data.code === 1) { + let info = data.data; + let obj = {}; + data.data.forEach(item=> { + obj[item.status] = item.sum + }) + mutations.setOrderNum(obj); + } + }, +} + +Vue.prototype.$storeMine = store +Vue.prototype.$mutationsMine = mutations +Vue.prototype.$actionsMine = actions \ No newline at end of file diff --git a/uni.promisify.adaptor.js b/uni.promisify.adaptor.js new file mode 100644 index 0000000..47fbce1 --- /dev/null +++ b/uni.promisify.adaptor.js @@ -0,0 +1,10 @@ +uni.addInterceptor({ + returnValue (res) { + if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) { + return res; + } + return new Promise((resolve, reject) => { + res.then((res) => res[0] ? reject(res[0]) : resolve(res[1])); + }); + }, +}); \ No newline at end of file diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..b8e6ace --- /dev/null +++ b/uni.scss @@ -0,0 +1,44 @@ +@import 'uview-ui/theme.scss'; + +/** + * 这里是uni-app内置的常用样式变量 + */ + +/* 颜色变量 */ + + +/* 行为相关颜色 */ + + +/* 文字基本颜色 */ + + +/* 背景颜色 */ + + +/* 边框颜色 */ + + +/* 尺寸变量 */ + + +/* 文字尺寸 */ + + +/* 图片尺寸 */ + + +/* Border Radius */ + + +/* 水平间距 */ + + +/* 垂直间距 */ + + +/* 透明度 */ + + +/* 文章场景相关 */ + diff --git a/uni_modules/uview-ui/LICENSE b/uni_modules/uview-ui/LICENSE new file mode 100644 index 0000000..4db40ef --- /dev/null +++ b/uni_modules/uview-ui/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 www.uviewui.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uni_modules/uview-ui/README.md b/uni_modules/uview-ui/README.md new file mode 100644 index 0000000..c78ff47 --- /dev/null +++ b/uni_modules/uview-ui/README.md @@ -0,0 +1,66 @@ +

+ logo +

+

uView 2.0

+

多平台快速开发的UI框架

+ +[![stars](https://img.shields.io/github/stars/umicro/uView2.0?style=flat-square&logo=GitHub)](https://github.com/umicro/uView2.0) +[![forks](https://img.shields.io/github/forks/umicro/uView2.0?style=flat-square&logo=GitHub)](https://github.com/umicro/uView2.0) +[![issues](https://img.shields.io/github/issues/umicro/uView2.0?style=flat-square&logo=GitHub)](https://github.com/umicro/uView2.0/issues) +[![Website](https://img.shields.io/badge/uView-up-blue?style=flat-square)](https://uviewui.com) +[![release](https://img.shields.io/github/v/release/umicro/uView2.0?style=flat-square)](https://gitee.com/umicro/uView2.0/releases) +[![license](https://img.shields.io/github/license/umicro/uView2.0?style=flat-square)](https://en.wikipedia.org/wiki/MIT_License) + +## 说明 + +uView UI,是[uni-app](https://uniapp.dcloud.io/)全面兼容nvue的uni-app生态框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水 + +## [官方文档:https://uviewui.com](https://uviewui.com) + + +## 预览 + +您可以通过**微信**扫码,查看最佳的演示效果。 +
+
+ + + +## 链接 + +- [官方文档](https://www.uviewui.com/) +- [更新日志](https://www.uviewui.com/components/changelog.html) +- [升级指南](https://www.uviewui.com/components/changeGuide.html) +- [关于我们](https://www.uviewui.com/cooperation/about.html) + +## 交流反馈 + +欢迎加入我们的QQ群交流反馈:[点此跳转](https://www.uviewui.com/components/addQQGroup.html) + +## 关于PR + +> 我们非常乐意接受各位的优质PR,但在此之前我希望您了解uView2.0是一个需要兼容多个平台的(小程序、h5、ios app、android app)包括nvue页面、vue页面。 +> 所以希望在您修复bug并提交之前尽可能的去这些平台测试一下兼容性。最好能携带测试截图以方便审核。非常感谢! + +## 安装 + +#### **uni-app插件市场链接** —— [https://ext.dcloud.net.cn/plugin?id=1593](https://ext.dcloud.net.cn/plugin?id=1593) + +请通过[官网安装文档](https://www.uviewui.com/components/install.html)了解更详细的内容 + +## 快速上手 + +请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容 + +## 使用方法 +配置easycom规则后,自动按需引入,无需`import`组件,直接引用即可。 + +```html + +``` + +## 版权信息 +uView遵循[MIT](https://en.wikipedia.org/wiki/MIT_License)开源协议,意味着您无需支付任何费用,也无需授权,即可将uView应用到您的产品中。 + diff --git a/uni_modules/uview-ui/changelog.md b/uni_modules/uview-ui/changelog.md new file mode 100644 index 0000000..f2bae72 --- /dev/null +++ b/uni_modules/uview-ui/changelog.md @@ -0,0 +1,362 @@ +## 2.0.36(2023-03-27) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 重构`deepClone` & `deepMerge`方法 +2. 其他优化 +## 2.0.34(2022-09-24) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. `u-input`、`u-textarea`增加`ignoreCompositionEvent`属性 +2. 修复`route`方法调用可能报错的问题 +3. 修复`u-no-network`组件`z-index`无效的问题 +4. 修复`textarea`组件在h5上confirmType=""报错的问题 +5. `u-rate`适配`nvue` +6. 优化验证手机号码的正则表达式(根据工信部发布的《电信网编号计划(2017年版)》进行修改。) +7. `form-item`添加`labelPosition`属性 +8. `u-calendar`修复`maxDate`设置为当前日期,并且当前时间大于08:00时无法显示日期列表的问题 (#724) +9. `u-radio`增加一个默认插槽用于自定义修改label内容 (#680) +10. 修复`timeFormat`函数在safari重的兼容性问题 (#664) +## 2.0.33(2022-06-17) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复`loadmore`组件`lineColor`类型错误问题 +2. 修复`u-parse`组件`imgtap`、`linktap`不生效问题 +## 2.0.32(2022-06-16) +# uView2.0重磅发布,利剑出鞘,一统江湖 +1. `u-loadmore`新增自定义颜色、虚/实线 +2. 修复`u-swiper-action`组件部分平台不能上下滑动的问题 +3. 修复`u-list`回弹问题 +4. 修复`notice-bar`组件动画在低端安卓机可能会抖动的问题 +5. `u-loading-page`添加控制图标大小的属性`iconSize` +6. 修复`u-tooltip`组件`color`参数不生效的问题 +7. 修复`u--input`组件使用`blur`事件输出为`undefined`的bug +8. `u-code-input`组件新增键盘弹起时,是否自动上推页面参数`adjustPosition` +9. 修复`image`组件`load`事件无回调对象问题 +10. 修复`button`组件`loadingSize`设置无效问题 +10. 其他修复 +## 2.0.31(2022-04-19) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复`upload`在`vue`页面上传成功后没有成功标志的问题 +2. 解决演示项目中微信小程序模拟上传图片一直出于上传中问题 +3. 修复`u-code-input`组件在`nvue`页面编译到`app`平台上光标异常问题(`app`去除此功能) +4. 修复`actionSheet`组件标题关闭按钮点击事件名称错误的问题 +5. 其他修复 +## 2.0.30(2022-04-04) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. `u-rate`增加`readonly`属性 +2. `tabs`滑块支持设置背景图片 +3. 修复`u-subsection` `mode`为`subsection`时,滑块样式不正确的问题 +4. `u-code-input`添加光标效果动画 +5. 修复`popup`的`open`事件不触发 +6. 修复`u-flex-column`无效的问题 +7. 修复`u-datetime-picker`索引在特定场合异常问题 +8. 修复`u-datetime-picker`最小时间字符串模板错误问题 +9. `u-swiper`添加`m3u8`验证 +10. `u-swiper`修改判断image和video逻辑 +11. 修复`swiper`无法使用本地图片问题,增加`type`参数 +12. 修复`u-row-notice`格式错误问题 +13. 修复`u-switch`组件当`unit`为`rpx`时,`nodeStyle`消失的问题 +14. 修复`datetime-picker`组件`showToolbar`与`visibleItemCount`属性无效的问题 +15. 修复`upload`组件条件编译位置判断错误,导致`previewImage`属性设置为`false`时,整个组件都会被隐藏的问题 +16. 修复`u-checkbox-group`设置`shape`属性无效的问题 +17. 修复`u-upload`的`capture`传入字符串的时候不生效的问题 +18. 修复`u-action-sheet`组件,关闭事件逻辑错误的问题 +19. 修复`u-list`触顶事件的触发错误的问题 +20. 修复`u-text`只有手机号可拨打的问题 +21. 修复`u-textarea`不能换行的问题 +22. 其他修复 +## 2.0.29(2022-03-13) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复`u--text`组件设置`decoration`属性未生效的问题 +2. 修复`u-datetime-picker`使用`formatter`后返回值不正确 +3. 修复`u-datetime-picker` `intercept` 可能为undefined +4. 修复已设置单位 uni..config.unit = 'rpx'时,线型指示器 `transform` 的位置翻倍,导致指示器超出宽度 +5. 修复mixin中bem方法生成的类名在支付宝和字节小程序中失效 +6. 修复默认值传值为空的时候,打开`u-datetime-picker`报错,不能选中第一列时间的bug +7. 修复`u-datetime-picker`使用`formatter`后返回值不正确 +8. 修复`u-image`组件`loading`无效果的问题 +9. 修复`config.unit`属性设为`rpx`时,导航栏占用高度不足导致塌陷的问题 +10. 修复`u-datetime-picker`组件`itemHeight`无效问题 +11. 其他修复 +## 2.0.28(2022-02-22) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. search组件新增searchIconSize属性 +2. 兼容Safari/Webkit中传入时间格式如2022-02-17 12:00:56 +3. 修复text value.js 判断日期出format错误问题 +4. priceFormat格式化金额出现精度错误 +5. priceFormat在部分情况下出现精度损失问题 +6. 优化表单rules提示 +7. 修复avatar组件src为空时,展示状态不对 +8. 其他修复 +## 2.0.27(2022-01-28) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1.样式修复 +## 2.0.26(2022-01-28) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1.样式修复 +## 2.0.25(2022-01-27) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复text组件mode=price时,可能会导致精度错误的问题 +2. 添加$u.setConfig()方法,可设置uView内置的config, props, zIndex, color属性,详见:[修改uView内置配置方案](https://uviewui.com/components/setting.html#%E9%BB%98%E8%AE%A4%E5%8D%95%E4%BD%8D%E9%85%8D%E7%BD%AE) +3. 优化form组件在errorType=toast时,如果输入错误页面会有抖动的问题 +4. 修复$u.addUnit()对配置默认单位可能无效的问题 +## 2.0.24(2022-01-25) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复swiper在current指定非0时缩放有误 +2. 修复u-icon添加stop属性的时候报错 +3. 优化遗留的通过正则判断rpx单位的问题 +4. 优化Layout布局 vue使用gutter时,会超出固定区域 +5. 优化search组件高度单位问题(rpx -> px) +6. 修复u-image slot 加载和错误的图片失去了高度 +7. 修复u-index-list中footer插槽与header插槽存在性判断错误 +8. 修复部分机型下u-popup关闭时会闪烁 +9. 修复u-image在nvue-app下失去宽高 +10. 修复u-popup运行报错 +11. 修复u-tooltip报错 +12. 修复box-sizing在app下的警告 +13. 修复u-navbar在小程序中报运行时错误 +14. 其他修复 +## 2.0.23(2022-01-24) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复image组件在hx3.3.9的nvue下可能会显示异常的问题 +2. 修复col组件gutter参数带rpx单位处理不正确的问题 +3. 修复text组件单行时无法显示省略号的问题 +4. navbar添加titleStyle参数 +5. 升级到hx3.3.9可消除nvue下控制台样式警告的问题 +## 2.0.22(2022-01-19) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. $u.page()方法优化,避免在特殊场景可能报错的问题 +2. picker组件添加immediateChange参数 +3. 新增$u.pages()方法 +## 2.0.21(2022-01-19) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 优化:form组件在用户设置rules的时候提示用户model必传 +2. 优化遗留的通过正则判断rpx单位的问题 +3. 修复微信小程序环境中tabbar组件开启safeAreaInsetBottom属性后,placeholder高度填充不正确 +4. 修复swiper在current指定非0时缩放有误 +5. 修复u-icon添加stop属性的时候报错 +6. 修复upload组件在accept=all的时候没有作用 +7. 修复在text组件mode为phone时call属性无效的问题 +8. 处理u-form clearValidate方法 +9. 其他修复 +## 2.0.20(2022-01-14) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复calendar默认会选择一个日期,如果直接点确定的话,无法取到值的问题 +2. 修复Slider缺少disabled props 还有注释 +3. 修复u-notice-bar点击事件无法拿到index索引值的问题 +4. 修复u-collapse-item在vue文件下,app端自定义插槽不生效的问题 +5. 优化头像为空时显示默认头像 +6. 修复图片地址赋值后判断加载状态为完成问题 +7. 修复日历滚动到默认日期月份区域 +8. search组件暴露点击左边icon事件 +9. 修复u-form clearValidate方法不生效 +10. upload h5端增加返回文件参数(文件的name参数) +11. 处理upload选择文件后url为blob类型无法预览的问题 +12. u-code-input 修复输入框没有往左移出一半屏幕 +13. 修复Upload上传 disabled为true时,控制台报hoverClass类型错误 +14. 临时处理ios app下grid点击坍塌问题 +15. 其他修复 +## 2.0.19(2021-12-29) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 优化微信小程序包体积可在微信中预览,请升级HbuilderX3.3.4,同时在“运行->运行到小程序模拟器”中勾选“运行时是否压缩代码” +2. 优化微信小程序setData性能,处理某些方法如$u.route()无法在模板中使用的问题 +3. navbar添加autoBack参数 +4. 允许avatar组件的事件冒泡 +5. 修复cell组件报错问题 +6. 其他修复 +## 2.0.18(2021-12-28) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复app端编译报错问题 +2. 重新处理微信小程序端setData过大的性能问题 +3. 修复边框问题 +4. 修复最大最小月份不大于0则没有数据出现的问题 +5. 修复SwipeAction微信小程序端无法上下滑动问题 +6. 修复input的placeholder在小程序端默认显示为true问题 +7. 修复divider组件click事件无效问题 +8. 修复u-code-input maxlength 属性值为 String 类型时显示异常 +9. 修复当 grid只有 1到2时 在小程序端algin设置无效的问题 +10. 处理form-item的label为top时,取消错误提示的左边距 +11. 其他修复 +## 2.0.17(2021-12-26) +## uView正在参与开源中国的“年度最佳项目”评选,之前投过票的现在也可以投票,恳请同学们投一票,[点此帮助uView](https://www.oschina.net/project/top_cn_2021/?id=583) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 解决HBuilderX3.3.3.20211225版本导致的样式问题 +2. calendar日历添加monthNum参数 +3. navbar添加center slot +## 2.0.16(2021-12-25) +## uView正在参与开源中国的“年度最佳项目”评选,之前投过票的现在也可以投票,恳请同学们投一票,[点此帮助uView](https://www.oschina.net/project/top_cn_2021/?id=583) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 解决微信小程序setData性能问题 +2. 修复count-down组件change事件不触发问题 +## 2.0.15(2021-12-21) +## uView正在参与开源中国的“年度最佳项目”评选,之前投过票的现在也可以投票,恳请同学们投一票,[点此帮助uView](https://www.oschina.net/project/top_cn_2021/?id=583) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复Cell单元格titleWidth无效 +2. 修复cheakbox组件ischecked不更新 +3. 修复keyboard是否显示"."按键默认值问题 +4. 修复number-keyboard是否显示键盘的"."符号问题 +5. 修复Input输入框 readonly无效 +6. 修复u-avatar 导致打包app、H5时候报错问题 +7. 修复Upload上传deletable无效 +8. 修复upload当设置maxSize时无效的问题 +9. 修复tabs lineWidth传入带单位的字符串的时候偏移量计算错误问题 +10. 修复rate组件在有padding的view内,显示的星星位置和可触摸区域不匹配,无法正常选中星星 +## 2.0.13(2021-12-14) +## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复配置默认单位为rpx可能会导致自定义导航栏高度异常的问题 +## 2.0.12(2021-12-14) +## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复tabs组件在vue环境下划线消失的问题 +2. 修复upload组件在安卓小程序无法选择视频的问题 +3. 添加uni.$u.config.unit配置,用于配置参数默认单位,详见:[默认单位配置](https://www.uviewui.com/components/setting.html#%E9%BB%98%E8%AE%A4%E5%8D%95%E4%BD%8D%E9%85%8D%E7%BD%AE) +4. 修复textarea组件在没绑定v-model时,字符统计不生效问题 +5. 修复nvue下控制是否出现滚动条失效问题 +## 2.0.11(2021-12-13) +## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. text组件align参数无效的问题 +2. subsection组件添加keyName参数 +3. upload组件无法判断[Object file]类型的问题 +4. 处理notify层级过低问题 +5. codeInput组件添加disabledDot参数 +6. 处理actionSheet组件round参数无效的问题 +7. calendar组件添加round参数用于控制圆角值 +8. 处理swipeAction组件在vue环境下默认被打开的问题 +9. button组件的throttleTime节流参数无效的问题 +10. 解决u-notify手动关闭方法close()无效的问题 +11. input组件readonly不生效问题 +12. tag组件type参数为info不生效问题 +## 2.0.10(2021-12-08) +## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复button sendMessagePath属性不生效 +2. 修复DatetimePicker选择器title无效 +3. 修复u-toast设置loading=true不生效 +4. 修复u-text金额模式传0报错 +5. 修复u-toast组件的icon属性配置不生效 +6. button的icon在特殊场景下的颜色优化 +7. IndexList优化,增加# +## 2.0.9(2021-12-01) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 优化swiper的height支持100%值(仅vue有效),修复嵌入视频时click事件无法触发的问题 +2. 优化tabs组件对list值为空的判断,或者动态变化list时重新计算相关尺寸的问题 +3. 优化datetime-picker组件逻辑,让其后续打开的默认值为上一次的选中值,需要通过v-model绑定值才有效 +4. 修复upload内嵌在其他组件中,选择图片可能不会换行的问题 +## 2.0.8(2021-12-01) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复toast的position参数无效问题 +2. 处理input在ios nvue上无法获得焦点的问题 +3. avatar-group组件添加extraValue参数,让剩余展示数量可手动控制 +4. tabs组件添加keyName参数用于配置从对象中读取的键名 +5. 处理text组件名字脱敏默认配置无效的问题 +6. 处理picker组件item文本太长换行问题 +## 2.0.7(2021-11-30) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复radio和checkbox动态改变v-model无效的问题。 +2. 优化form规则validator在微信小程序用法 +3. 修复backtop组件mode参数在微信小程序无效的问题 +4. 处理Album的previewFullImage属性无效的问题 +5. 处理u-datetime-picker组件mode='time'在选择改变时间时,控制台报错的问题 +## 2.0.6(2021-11-27) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 处理tag组件在vue下边框无效的问题。 +2. 处理popup组件圆角参数可能无效的问题。 +3. 处理tabs组件lineColor参数可能无效的问题。 +4. propgress组件在值很小时,显示异常的问题。 +## 2.0.5(2021-11-25) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. calendar在vue下显示异常问题。 +2. form组件labelPosition和errorType参数无效的问题 +3. input组件inputAlign无效的问题 +4. 其他一些修复 +## 2.0.4(2021-11-23) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +0. input组件缺失@confirm事件,以及subfix和prefix无效问题 +1. component.scss文件样式在vue下干扰全局布局问题 +2. 修复subsection在vue环境下表现异常的问题 +3. tag组件的bgColor等参数无效的问题 +4. upload组件不换行的问题 +5. 其他的一些修复处理 +## 2.0.3(2021-11-16) +## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. uView2.0已实现全面兼容nvue +2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升 +3. 目前uView2.0为公测阶段,相关细节可能会有变动 +4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html) +5. 处理modal的confirm回调事件拼写错误问题 +6. 处理input组件@input事件参数错误问题 +7. 其他一些修复 +## 2.0.2(2021-11-16) +## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. uView2.0已实现全面兼容nvue +2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升 +3. 目前uView2.0为公测阶段,相关细节可能会有变动 +4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html) +5. 修复input组件formatter参数缺失问题 +6. 优化loading-icon组件的scss写法问题,防止不兼容新版本scss +## 2.0.0(2020-11-15) +## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. uView2.0已实现全面兼容nvue +2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升 +3. 目前uView2.0为公测阶段,相关细节可能会有变动 +4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html) +5. 修复input组件formatter参数缺失问题 + + diff --git a/uni_modules/uview-ui/components/u--form/u--form.vue b/uni_modules/uview-ui/components/u--form/u--form.vue new file mode 100644 index 0000000..fdfc212 --- /dev/null +++ b/uni_modules/uview-ui/components/u--form/u--form.vue @@ -0,0 +1,78 @@ + + + diff --git a/uni_modules/uview-ui/components/u--image/u--image.vue b/uni_modules/uview-ui/components/u--image/u--image.vue new file mode 100644 index 0000000..21b7ab1 --- /dev/null +++ b/uni_modules/uview-ui/components/u--image/u--image.vue @@ -0,0 +1,47 @@ + + + \ No newline at end of file diff --git a/uni_modules/uview-ui/components/u--input/u--input.vue b/uni_modules/uview-ui/components/u--input/u--input.vue new file mode 100644 index 0000000..1e58b01 --- /dev/null +++ b/uni_modules/uview-ui/components/u--input/u--input.vue @@ -0,0 +1,73 @@ + + + \ No newline at end of file diff --git a/uni_modules/uview-ui/components/u--text/u--text.vue b/uni_modules/uview-ui/components/u--text/u--text.vue new file mode 100644 index 0000000..44ee52a --- /dev/null +++ b/uni_modules/uview-ui/components/u--text/u--text.vue @@ -0,0 +1,44 @@ + + + diff --git a/uni_modules/uview-ui/components/u--textarea/u--textarea.vue b/uni_modules/uview-ui/components/u--textarea/u--textarea.vue new file mode 100644 index 0000000..f4df0b9 --- /dev/null +++ b/uni_modules/uview-ui/components/u--textarea/u--textarea.vue @@ -0,0 +1,48 @@ + + + diff --git a/uni_modules/uview-ui/components/u-action-sheet/props.js b/uni_modules/uview-ui/components/u-action-sheet/props.js new file mode 100644 index 0000000..e96e04f --- /dev/null +++ b/uni_modules/uview-ui/components/u-action-sheet/props.js @@ -0,0 +1,54 @@ +export default { + props: { + // 操作菜单是否展示 (默认false) + show: { + type: Boolean, + default: uni.$u.props.actionSheet.show + }, + // 标题 + title: { + type: String, + default: uni.$u.props.actionSheet.title + }, + // 选项上方的描述信息 + description: { + type: String, + default: uni.$u.props.actionSheet.description + }, + // 数据 + actions: { + type: Array, + default: uni.$u.props.actionSheet.actions + }, + // 取消按钮的文字,不为空时显示按钮 + cancelText: { + type: String, + default: uni.$u.props.actionSheet.cancelText + }, + // 点击某个菜单项时是否关闭弹窗 + closeOnClickAction: { + type: Boolean, + default: uni.$u.props.actionSheet.closeOnClickAction + }, + // 处理底部安全区(默认true) + safeAreaInsetBottom: { + type: Boolean, + default: uni.$u.props.actionSheet.safeAreaInsetBottom + }, + // 小程序的打开方式 + openType: { + type: String, + default: uni.$u.props.actionSheet.openType + }, + // 点击遮罩是否允许关闭 (默认true) + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.actionSheet.closeOnClickOverlay + }, + // 圆角值 + round: { + type: [Boolean, String, Number], + default: uni.$u.props.actionSheet.round + } + } +} diff --git a/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue b/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue new file mode 100644 index 0000000..26d5d8d --- /dev/null +++ b/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue @@ -0,0 +1,278 @@ + + + + + + diff --git a/uni_modules/uview-ui/components/u-album/props.js b/uni_modules/uview-ui/components/u-album/props.js new file mode 100644 index 0000000..75cdb37 --- /dev/null +++ b/uni_modules/uview-ui/components/u-album/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 图片地址,Array|Array形式 + urls: { + type: Array, + default: uni.$u.props.album.urls + }, + // 指定从数组的对象元素中读取哪个属性作为图片地址 + keyName: { + type: String, + default: uni.$u.props.album.keyName + }, + // 单图时,图片长边的长度 + singleSize: { + type: [String, Number], + default: uni.$u.props.album.singleSize + }, + // 多图时,图片边长 + multipleSize: { + type: [String, Number], + default: uni.$u.props.album.multipleSize + }, + // 多图时,图片水平和垂直之间的间隔 + space: { + type: [String, Number], + default: uni.$u.props.album.space + }, + // 单图时,图片缩放裁剪的模式 + singleMode: { + type: String, + default: uni.$u.props.album.singleMode + }, + // 多图时,图片缩放裁剪的模式 + multipleMode: { + type: String, + default: uni.$u.props.album.multipleMode + }, + // 最多展示的图片数量,超出时最后一个位置将会显示剩余图片数量 + maxCount: { + type: [String, Number], + default: uni.$u.props.album.maxCount + }, + // 是否可以预览图片 + previewFullImage: { + type: Boolean, + default: uni.$u.props.album.previewFullImage + }, + // 每行展示图片数量,如设置,singleSize和multipleSize将会无效 + rowCount: { + type: [String, Number], + default: uni.$u.props.album.rowCount + }, + // 超出maxCount时是否显示查看更多的提示 + showMore: { + type: Boolean, + default: uni.$u.props.album.showMore + } + } +} diff --git a/uni_modules/uview-ui/components/u-album/u-album.vue b/uni_modules/uview-ui/components/u-album/u-album.vue new file mode 100644 index 0000000..687e2d5 --- /dev/null +++ b/uni_modules/uview-ui/components/u-album/u-album.vue @@ -0,0 +1,259 @@ + + + + + \ No newline at end of file diff --git a/uni_modules/uview-ui/components/u-alert/props.js b/uni_modules/uview-ui/components/u-alert/props.js new file mode 100644 index 0000000..4297e2c --- /dev/null +++ b/uni_modules/uview-ui/components/u-alert/props.js @@ -0,0 +1,44 @@ +export default { + props: { + // 显示文字 + title: { + type: String, + default: uni.$u.props.alert.title + }, + // 主题,success/warning/info/error + type: { + type: String, + default: uni.$u.props.alert.type + }, + // 辅助性文字 + description: { + type: String, + default: uni.$u.props.alert.description + }, + // 是否可关闭 + closable: { + type: Boolean, + default: uni.$u.props.alert.closable + }, + // 是否显示图标 + showIcon: { + type: Boolean, + default: uni.$u.props.alert.showIcon + }, + // 浅或深色调,light-浅色,dark-深色 + effect: { + type: String, + default: uni.$u.props.alert.effect + }, + // 文字是否居中 + center: { + type: Boolean, + default: uni.$u.props.alert.center + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.alert.fontSize + } + } +} diff --git a/uni_modules/uview-ui/components/u-alert/u-alert.vue b/uni_modules/uview-ui/components/u-alert/u-alert.vue new file mode 100644 index 0000000..81f7d43 --- /dev/null +++ b/uni_modules/uview-ui/components/u-alert/u-alert.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-avatar-group/props.js b/uni_modules/uview-ui/components/u-avatar-group/props.js new file mode 100644 index 0000000..58b42ac --- /dev/null +++ b/uni_modules/uview-ui/components/u-avatar-group/props.js @@ -0,0 +1,52 @@ +export default { + props: { + // 头像图片组 + urls: { + type: Array, + default: uni.$u.props.avatarGroup.urls + }, + // 最多展示的头像数量 + maxCount: { + type: [String, Number], + default: uni.$u.props.avatarGroup.maxCount + }, + // 头像形状 + shape: { + type: String, + default: uni.$u.props.avatarGroup.shape + }, + // 图片裁剪模式 + mode: { + type: String, + default: uni.$u.props.avatarGroup.mode + }, + // 超出maxCount时是否显示查看更多的提示 + showMore: { + type: Boolean, + default: uni.$u.props.avatarGroup.showMore + }, + // 头像大小 + size: { + type: [String, Number], + default: uni.$u.props.avatarGroup.size + }, + // 指定从数组的对象元素中读取哪个属性作为图片地址 + keyName: { + type: String, + default: uni.$u.props.avatarGroup.keyName + }, + // 头像之间的遮挡比例 + gap: { + type: [String, Number], + validator(value) { + return value >= 0 && value <= 1 + }, + default: uni.$u.props.avatarGroup.gap + }, + // 需额外显示的值 + extraValue: { + type: [Number, String], + default: uni.$u.props.avatarGroup.extraValue + } + } +} diff --git a/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue b/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue new file mode 100644 index 0000000..7e996d7 --- /dev/null +++ b/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-avatar/props.js b/uni_modules/uview-ui/components/u-avatar/props.js new file mode 100644 index 0000000..34ca0f2 --- /dev/null +++ b/uni_modules/uview-ui/components/u-avatar/props.js @@ -0,0 +1,78 @@ +export default { + props: { + // 头像图片路径(不能为相对路径) + src: { + type: String, + default: uni.$u.props.avatar.src + }, + // 头像形状,circle-圆形,square-方形 + shape: { + type: String, + default: uni.$u.props.avatar.shape + }, + // 头像尺寸 + size: { + type: [String, Number], + default: uni.$u.props.avatar.size + }, + // 裁剪模式 + mode: { + type: String, + default: uni.$u.props.avatar.mode + }, + // 显示的文字 + text: { + type: String, + default: uni.$u.props.avatar.text + }, + // 背景色 + bgColor: { + type: String, + default: uni.$u.props.avatar.bgColor + }, + // 文字颜色 + color: { + type: String, + default: uni.$u.props.avatar.color + }, + // 文字大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.avatar.fontSize + }, + // 显示的图标 + icon: { + type: String, + default: uni.$u.props.avatar.icon + }, + // 显示小程序头像,只对百度,微信,QQ小程序有效 + mpAvatar: { + type: Boolean, + default: uni.$u.props.avatar.mpAvatar + }, + // 是否使用随机背景色 + randomBgColor: { + type: Boolean, + default: uni.$u.props.avatar.randomBgColor + }, + // 加载失败的默认头像(组件有内置默认图片) + defaultUrl: { + type: String, + default: uni.$u.props.avatar.defaultUrl + }, + // 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间 + colorIndex: { + type: [String, Number], + // 校验参数规则,索引在0-19之间 + validator(n) { + return uni.$u.test.range(n, [0, 19]) || n === '' + }, + default: uni.$u.props.avatar.colorIndex + }, + // 组件标识符 + name: { + type: String, + default: uni.$u.props.avatar.name + } + } +} diff --git a/uni_modules/uview-ui/components/u-avatar/u-avatar.vue b/uni_modules/uview-ui/components/u-avatar/u-avatar.vue new file mode 100644 index 0000000..3319be5 --- /dev/null +++ b/uni_modules/uview-ui/components/u-avatar/u-avatar.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-back-top/props.js b/uni_modules/uview-ui/components/u-back-top/props.js new file mode 100644 index 0000000..6c702c2 --- /dev/null +++ b/uni_modules/uview-ui/components/u-back-top/props.js @@ -0,0 +1,54 @@ +export default { + props: { + // 返回顶部的形状,circle-圆形,square-方形 + mode: { + type: String, + default: uni.$u.props.backtop.mode + }, + // 自定义图标 + icon: { + type: String, + default: uni.$u.props.backtop.icon + }, + // 提示文字 + text: { + type: String, + default: uni.$u.props.backtop.text + }, + // 返回顶部滚动时间 + duration: { + type: [String, Number], + default: uni.$u.props.backtop.duration + }, + // 滚动距离 + scrollTop: { + type: [String, Number], + default: uni.$u.props.backtop.scrollTop + }, + // 距离顶部多少距离显示,单位px + top: { + type: [String, Number], + default: uni.$u.props.backtop.top + }, + // 返回顶部按钮到底部的距离,单位px + bottom: { + type: [String, Number], + default: uni.$u.props.backtop.bottom + }, + // 返回顶部按钮到右边的距离,单位px + right: { + type: [String, Number], + default: uni.$u.props.backtop.right + }, + // 层级 + zIndex: { + type: [String, Number], + default: uni.$u.props.backtop.zIndex + }, + // 图标的样式,对象形式 + iconStyle: { + type: Object, + default: uni.$u.props.backtop.iconStyle + } + } +} diff --git a/uni_modules/uview-ui/components/u-back-top/u-back-top.vue b/uni_modules/uview-ui/components/u-back-top/u-back-top.vue new file mode 100644 index 0000000..2d07566 --- /dev/null +++ b/uni_modules/uview-ui/components/u-back-top/u-back-top.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-badge/props.js b/uni_modules/uview-ui/components/u-badge/props.js new file mode 100644 index 0000000..74c032c --- /dev/null +++ b/uni_modules/uview-ui/components/u-badge/props.js @@ -0,0 +1,72 @@ +export default { + props: { + // 是否显示圆点 + isDot: { + type: Boolean, + default: uni.$u.props.badge.isDot + }, + // 显示的内容 + value: { + type: [Number, String], + default: uni.$u.props.badge.value + }, + // 是否显示 + show: { + type: Boolean, + default: uni.$u.props.badge.show + }, + // 最大值,超过最大值会显示 '{max}+' + max: { + type: [Number, String], + default: uni.$u.props.badge.max + }, + // 主题类型,error|warning|success|primary + type: { + type: String, + default: uni.$u.props.badge.type + }, + // 当数值为 0 时,是否展示 Badge + showZero: { + type: Boolean, + default: uni.$u.props.badge.showZero + }, + // 背景颜色,优先级比type高,如设置,type参数会失效 + bgColor: { + type: [String, null], + default: uni.$u.props.badge.bgColor + }, + // 字体颜色 + color: { + type: [String, null], + default: uni.$u.props.badge.color + }, + // 徽标形状,circle-四角均为圆角,horn-左下角为直角 + shape: { + type: String, + default: uni.$u.props.badge.shape + }, + // 设置数字的显示方式,overflow|ellipsis|limit + // overflow会根据max字段判断,超出显示`${max}+` + // ellipsis会根据max判断,超出显示`${max}...` + // limit会依据1000作为判断条件,超出1000,显示`${value/1000}K`,比如2.2k、3.34w,最多保留2位小数 + numberType: { + type: String, + default: uni.$u.props.badge.numberType + }, + // 设置badge的位置偏移,格式为 [x, y],也即设置的为top和right的值,absolute为true时有效 + offset: { + type: Array, + default: uni.$u.props.badge.offset + }, + // 是否反转背景和字体颜色 + inverted: { + type: Boolean, + default: uni.$u.props.badge.inverted + }, + // 是否绝对定位 + absolute: { + type: Boolean, + default: uni.$u.props.badge.absolute + } + } +} diff --git a/uni_modules/uview-ui/components/u-badge/u-badge.vue b/uni_modules/uview-ui/components/u-badge/u-badge.vue new file mode 100644 index 0000000..53cfc81 --- /dev/null +++ b/uni_modules/uview-ui/components/u-badge/u-badge.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-button/nvue.scss b/uni_modules/uview-ui/components/u-button/nvue.scss new file mode 100644 index 0000000..490db7d --- /dev/null +++ b/uni_modules/uview-ui/components/u-button/nvue.scss @@ -0,0 +1,46 @@ +$u-button-active-opacity:0.75 !default; +$u-button-loading-text-margin-left:4px !default; +$u-button-text-color: #FFFFFF !default; +$u-button-text-plain-error-color:$u-error !default; +$u-button-text-plain-warning-color:$u-warning !default; +$u-button-text-plain-success-color:$u-success !default; +$u-button-text-plain-info-color:$u-info !default; +$u-button-text-plain-primary-color:$u-primary !default; +.u-button { + &--active { + opacity: $u-button-active-opacity; + } + + &--active--plain { + background-color: rgb(217, 217, 217); + } + + &__loading-text { + margin-left:$u-button-loading-text-margin-left; + } + + &__text, + &__loading-text { + color:$u-button-text-color; + } + + &__text--plain--error { + color:$u-button-text-plain-error-color; + } + + &__text--plain--warning { + color:$u-button-text-plain-warning-color; + } + + &__text--plain--success{ + color:$u-button-text-plain-success-color; + } + + &__text--plain--info { + color:$u-button-text-plain-info-color; + } + + &__text--plain--primary { + color:$u-button-text-plain-primary-color; + } +} \ No newline at end of file diff --git a/uni_modules/uview-ui/components/u-button/props.js b/uni_modules/uview-ui/components/u-button/props.js new file mode 100644 index 0000000..07fd844 --- /dev/null +++ b/uni_modules/uview-ui/components/u-button/props.js @@ -0,0 +1,161 @@ +/* + * @Author : LQ + * @Description : + * @version : 1.0 + * @Date : 2021-08-16 10:04:04 + * @LastAuthor : LQ + * @lastTime : 2021-08-16 10:04:24 + * @FilePath : /u-view2.0/uview-ui/components/u-button/props.js + */ +export default { + props: { + // 是否细边框 + hairline: { + type: Boolean, + default: uni.$u.props.button.hairline + }, + // 按钮的预置样式,info,primary,error,warning,success + type: { + type: String, + default: uni.$u.props.button.type + }, + // 按钮尺寸,large,normal,small,mini + size: { + type: String, + default: uni.$u.props.button.size + }, + // 按钮形状,circle(两边为半圆),square(带圆角) + shape: { + type: String, + default: uni.$u.props.button.shape + }, + // 按钮是否镂空 + plain: { + type: Boolean, + default: uni.$u.props.button.plain + }, + // 是否禁止状态 + disabled: { + type: Boolean, + default: uni.$u.props.button.disabled + }, + // 是否加载中 + loading: { + type: Boolean, + default: uni.$u.props.button.loading + }, + // 加载中提示文字 + loadingText: { + type: [String, Number], + default: uni.$u.props.button.loadingText + }, + // 加载状态图标类型 + loadingMode: { + type: String, + default: uni.$u.props.button.loadingMode + }, + // 加载图标大小 + loadingSize: { + type: [String, Number], + default: uni.$u.props.button.loadingSize + }, + // 开放能力,具体请看uniapp稳定关于button组件部分说明 + // https://uniapp.dcloud.io/component/button + openType: { + type: String, + default: uni.$u.props.button.openType + }, + // 用于
组件,点击分别会触发 组件的 submit/reset 事件 + // 取值为submit(提交表单),reset(重置表单) + formType: { + type: String, + default: uni.$u.props.button.formType + }, + // 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 + // 只微信小程序、QQ小程序有效 + appParameter: { + type: String, + default: uni.$u.props.button.appParameter + }, + // 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效 + hoverStopPropagation: { + type: Boolean, + default: uni.$u.props.button.hoverStopPropagation + }, + // 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。只微信小程序有效 + lang: { + type: String, + default: uni.$u.props.button.lang + }, + // 会话来源,open-type="contact"时有效。只微信小程序有效 + sessionFrom: { + type: String, + default: uni.$u.props.button.sessionFrom + }, + // 会话内消息卡片标题,open-type="contact"时有效 + // 默认当前标题,只微信小程序有效 + sendMessageTitle: { + type: String, + default: uni.$u.props.button.sendMessageTitle + }, + // 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效 + // 默认当前分享路径,只微信小程序有效 + sendMessagePath: { + type: String, + default: uni.$u.props.button.sendMessagePath + }, + // 会话内消息卡片图片,open-type="contact"时有效 + // 默认当前页面截图,只微信小程序有效 + sendMessageImg: { + type: String, + default: uni.$u.props.button.sendMessageImg + }, + // 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示, + // 用户点击后可以快速发送小程序消息,open-type="contact"时有效 + showMessageCard: { + type: Boolean, + default: uni.$u.props.button.showMessageCard + }, + // 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取 + dataName: { + type: String, + default: uni.$u.props.button.dataName + }, + // 节流,一定时间内只能触发一次 + throttleTime: { + type: [String, Number], + default: uni.$u.props.button.throttleTime + }, + // 按住后多久出现点击态,单位毫秒 + hoverStartTime: { + type: [String, Number], + default: uni.$u.props.button.hoverStartTime + }, + // 手指松开后点击态保留时间,单位毫秒 + hoverStayTime: { + type: [String, Number], + default: uni.$u.props.button.hoverStayTime + }, + // 按钮文字,之所以通过props传入,是因为slot传入的话 + // nvue中无法控制文字的样式 + text: { + type: [String, Number], + default: uni.$u.props.button.text + }, + // 按钮图标 + icon: { + type: String, + default: uni.$u.props.button.icon + }, + // 按钮图标 + iconColor: { + type: String, + default: uni.$u.props.button.icon + }, + // 按钮颜色,支持传入linear-gradient渐变色 + color: { + type: String, + default: uni.$u.props.button.color + } + } +} diff --git a/uni_modules/uview-ui/components/u-button/u-button.vue b/uni_modules/uview-ui/components/u-button/u-button.vue new file mode 100644 index 0000000..5494351 --- /dev/null +++ b/uni_modules/uview-ui/components/u-button/u-button.vue @@ -0,0 +1,490 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-button/vue.scss b/uni_modules/uview-ui/components/u-button/vue.scss new file mode 100644 index 0000000..32019b2 --- /dev/null +++ b/uni_modules/uview-ui/components/u-button/vue.scss @@ -0,0 +1,80 @@ +// nvue下hover-class无效 +$u-button-before-top:50% !default; +$u-button-before-left:50% !default; +$u-button-before-width:100% !default; +$u-button-before-height:100% !default; +$u-button-before-transform:translate(-50%, -50%) !default; +$u-button-before-opacity:0 !default; +$u-button-before-background-color:#000 !default; +$u-button-before-border-color:#000 !default; +$u-button-active-before-opacity:.15 !default; +$u-button-icon-margin-left:4px !default; +$u-button-plain-u-button-info-color:$u-info; +$u-button-plain-u-button-success-color:$u-success; +$u-button-plain-u-button-error-color:$u-error; +$u-button-plain-u-button-warning-color:$u-error; + +.u-button { + width: 100%; + + &__text { + white-space: nowrap; + line-height: 1; + } + + &:before { + position: absolute; + top:$u-button-before-top; + left:$u-button-before-left; + width:$u-button-before-width; + height:$u-button-before-height; + border: inherit; + border-radius: inherit; + transform:$u-button-before-transform; + opacity:$u-button-before-opacity; + content: " "; + background-color:$u-button-before-background-color; + border-color:$u-button-before-border-color; + } + + &--active { + &:before { + opacity: .15 + } + } + + &__icon+&__text:not(:empty), + &__loading-text { + margin-left:$u-button-icon-margin-left; + } + + &--plain { + &.u-button--primary { + color: $u-primary; + } + } + + &--plain { + &.u-button--info { + color:$u-button-plain-u-button-info-color; + } + } + + &--plain { + &.u-button--success { + color:$u-button-plain-u-button-success-color; + } + } + + &--plain { + &.u-button--error { + color:$u-button-plain-u-button-error-color; + } + } + + &--plain { + &.u-button--warning { + color:$u-button-plain-u-button-warning-color; + } + } +} diff --git a/uni_modules/uview-ui/components/u-calendar/header.vue b/uni_modules/uview-ui/components/u-calendar/header.vue new file mode 100644 index 0000000..dc4f7d0 --- /dev/null +++ b/uni_modules/uview-ui/components/u-calendar/header.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-calendar/month.vue b/uni_modules/uview-ui/components/u-calendar/month.vue new file mode 100644 index 0000000..c20937f --- /dev/null +++ b/uni_modules/uview-ui/components/u-calendar/month.vue @@ -0,0 +1,579 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-calendar/props.js b/uni_modules/uview-ui/components/u-calendar/props.js new file mode 100644 index 0000000..2ad7bc7 --- /dev/null +++ b/uni_modules/uview-ui/components/u-calendar/props.js @@ -0,0 +1,144 @@ +export default { + props: { + // 日历顶部标题 + title: { + type: String, + default: uni.$u.props.calendar.title + }, + // 是否显示标题 + showTitle: { + type: Boolean, + default: uni.$u.props.calendar.showTitle + }, + // 是否显示副标题 + showSubtitle: { + type: Boolean, + default: uni.$u.props.calendar.showSubtitle + }, + // 日期类型选择,single-选择单个日期,multiple-可以选择多个日期,range-选择日期范围 + mode: { + type: String, + default: uni.$u.props.calendar.mode + }, + // mode=range时,第一个日期底部的提示文字 + startText: { + type: String, + default: uni.$u.props.calendar.startText + }, + // mode=range时,最后一个日期底部的提示文字 + endText: { + type: String, + default: uni.$u.props.calendar.endText + }, + // 自定义列表 + customList: { + type: Array, + default: uni.$u.props.calendar.customList + }, + // 主题色,对底部按钮和选中日期有效 + color: { + type: String, + default: uni.$u.props.calendar.color + }, + // 最小的可选日期 + minDate: { + type: [String, Number], + default: uni.$u.props.calendar.minDate + }, + // 最大可选日期 + maxDate: { + type: [String, Number], + default: uni.$u.props.calendar.maxDate + }, + // 默认选中的日期,mode为multiple或range是必须为数组格式 + defaultDate: { + type: [Array, String, Date, null], + default: uni.$u.props.calendar.defaultDate + }, + // mode=multiple时,最多可选多少个日期 + maxCount: { + type: [String, Number], + default: uni.$u.props.calendar.maxCount + }, + // 日期行高 + rowHeight: { + type: [String, Number], + default: uni.$u.props.calendar.rowHeight + }, + // 日期格式化函数 + formatter: { + type: [Function, null], + default: uni.$u.props.calendar.formatter + }, + // 是否显示农历 + showLunar: { + type: Boolean, + default: uni.$u.props.calendar.showLunar + }, + // 是否显示月份背景色 + showMark: { + type: Boolean, + default: uni.$u.props.calendar.showMark + }, + // 确定按钮的文字 + confirmText: { + type: String, + default: uni.$u.props.calendar.confirmText + }, + // 确认按钮处于禁用状态时的文字 + confirmDisabledText: { + type: String, + default: uni.$u.props.calendar.confirmDisabledText + }, + // 是否显示日历弹窗 + show: { + type: Boolean, + default: uni.$u.props.calendar.show + }, + // 是否允许点击遮罩关闭日历 + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.calendar.closeOnClickOverlay + }, + // 是否为只读状态,只读状态下禁止选择日期 + readonly: { + type: Boolean, + default: uni.$u.props.calendar.readonly + }, + // 是否展示确认按钮 + showConfirm: { + type: Boolean, + default: uni.$u.props.calendar.showConfirm + }, + // 日期区间最多可选天数,默认无限制,mode = range时有效 + maxRange: { + type: [Number, String], + default: uni.$u.props.calendar.maxRange + }, + // 范围选择超过最多可选天数时的提示文案,mode = range时有效 + rangePrompt: { + type: String, + default: uni.$u.props.calendar.rangePrompt + }, + // 范围选择超过最多可选天数时,是否展示提示文案,mode = range时有效 + showRangePrompt: { + type: Boolean, + default: uni.$u.props.calendar.showRangePrompt + }, + // 是否允许日期范围的起止时间为同一天,mode = range时有效 + allowSameDay: { + type: Boolean, + default: uni.$u.props.calendar.allowSameDay + }, + // 圆角值 + round: { + type: [Boolean, String, Number], + default: uni.$u.props.calendar.round + }, + // 最多展示月份数量 + monthNum: { + type: [Number, String], + default: 3 + } + } +} diff --git a/uni_modules/uview-ui/components/u-calendar/u-calendar.vue b/uni_modules/uview-ui/components/u-calendar/u-calendar.vue new file mode 100644 index 0000000..511f993 --- /dev/null +++ b/uni_modules/uview-ui/components/u-calendar/u-calendar.vue @@ -0,0 +1,384 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-calendar/util.js b/uni_modules/uview-ui/components/u-calendar/util.js new file mode 100644 index 0000000..ca4736b --- /dev/null +++ b/uni_modules/uview-ui/components/u-calendar/util.js @@ -0,0 +1,85 @@ +export default { + methods: { + // 设置月份数据 + setMonth() { + // 月初是周几 + const day = dayjs(this.date).date(1).day() + const start = day == 0 ? 6 : day - 1 + + // 本月天数 + const days = dayjs(this.date).endOf('month').format('D') + + // 上个月天数 + const prevDays = dayjs(this.date).endOf('month').subtract(1, 'month').format('D') + + // 日期数据 + const arr = [] + // 清空表格 + this.month = [] + + // 添加上月数据 + arr.push( + ...new Array(start).fill(1).map((e, i) => { + const day = prevDays - start + i + 1 + + return { + value: day, + disabled: true, + date: dayjs(this.date).subtract(1, 'month').date(day).format('YYYY-MM-DD') + } + }) + ) + + // 添加本月数据 + arr.push( + ...new Array(days - 0).fill(1).map((e, i) => { + const day = i + 1 + + return { + value: day, + date: dayjs(this.date).date(day).format('YYYY-MM-DD') + } + }) + ) + + // 添加下个月 + arr.push( + ...new Array(42 - days - start).fill(1).map((e, i) => { + const day = i + 1 + + return { + value: day, + disabled: true, + date: dayjs(this.date).add(1, 'month').date(day).format('YYYY-MM-DD') + } + }) + ) + + // 分割数组 + for (let n = 0; n < arr.length; n += 7) { + this.month.push( + arr.slice(n, n + 7).map((e, i) => { + e.index = i + n + + // 自定义信息 + const custom = this.customList.find((c) => c.date == e.date) + + // 农历 + if (this.lunar) { + const { + IDayCn, + IMonthCn + } = this.getLunar(e.date) + e.lunar = IDayCn == '初一' ? IMonthCn : IDayCn + } + + return { + ...e, + ...custom + } + }) + ) + } + } + } +} diff --git a/uni_modules/uview-ui/components/u-car-keyboard/props.js b/uni_modules/uview-ui/components/u-car-keyboard/props.js new file mode 100644 index 0000000..3553647 --- /dev/null +++ b/uni_modules/uview-ui/components/u-car-keyboard/props.js @@ -0,0 +1,14 @@ +export default { + props: { + // 是否打乱键盘按键的顺序 + random: { + type: Boolean, + default: false + }, + // 输入一个中文后,是否自动切换到英文 + autoChange: { + type: Boolean, + default: false + } + } +} diff --git a/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue b/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue new file mode 100644 index 0000000..51175b5 --- /dev/null +++ b/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue @@ -0,0 +1,311 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-cell-group/props.js b/uni_modules/uview-ui/components/u-cell-group/props.js new file mode 100644 index 0000000..350ef40 --- /dev/null +++ b/uni_modules/uview-ui/components/u-cell-group/props.js @@ -0,0 +1,14 @@ +export default { + props: { + // 分组标题 + title: { + type: String, + default: uni.$u.props.cellGroup.title + }, + // 是否显示外边框 + border: { + type: Boolean, + default: uni.$u.props.cellGroup.border + } + } +} diff --git a/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue b/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue new file mode 100644 index 0000000..a9508c0 --- /dev/null +++ b/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue @@ -0,0 +1,61 @@ + + + + + + diff --git a/uni_modules/uview-ui/components/u-cell/props.js b/uni_modules/uview-ui/components/u-cell/props.js new file mode 100644 index 0000000..da03330 --- /dev/null +++ b/uni_modules/uview-ui/components/u-cell/props.js @@ -0,0 +1,110 @@ +export default { + props: { + // 标题 + title: { + type: [String, Number], + default: uni.$u.props.cell.title + }, + // 标题下方的描述信息 + label: { + type: [String, Number], + default: uni.$u.props.cell.label + }, + // 右侧的内容 + value: { + type: [String, Number], + default: uni.$u.props.cell.value + }, + // 左侧图标名称,或者图片链接(本地文件建议使用绝对地址) + icon: { + type: String, + default: uni.$u.props.cell.icon + }, + // 是否禁用cell + disabled: { + type: Boolean, + default: uni.$u.props.cell.disabled + }, + // 是否显示下边框 + border: { + type: Boolean, + default: uni.$u.props.cell.border + }, + // 内容是否垂直居中(主要是针对右侧的value部分) + center: { + type: Boolean, + default: uni.$u.props.cell.center + }, + // 点击后跳转的URL地址 + url: { + type: String, + default: uni.$u.props.cell.url + }, + // 链接跳转的方式,内部使用的是uView封装的route方法,可能会进行拦截操作 + linkType: { + type: String, + default: uni.$u.props.cell.linkType + }, + // 是否开启点击反馈(表现为点击时加上灰色背景) + clickable: { + type: Boolean, + default: uni.$u.props.cell.clickable + }, + // 是否展示右侧箭头并开启点击反馈 + isLink: { + type: Boolean, + default: uni.$u.props.cell.isLink + }, + // 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件) + required: { + type: Boolean, + default: uni.$u.props.cell.required + }, + // 右侧的图标箭头 + rightIcon: { + type: String, + default: uni.$u.props.cell.rightIcon + }, + // 右侧箭头的方向,可选值为:left,up,down + arrowDirection: { + type: String, + default: uni.$u.props.cell.arrowDirection + }, + // 左侧图标样式 + iconStyle: { + type: [Object, String], + default: () => { + return uni.$u.props.cell.iconStyle + } + }, + // 右侧箭头图标的样式 + rightIconStyle: { + type: [Object, String], + default: () => { + return uni.$u.props.cell.rightIconStyle + } + }, + // 标题的样式 + titleStyle: { + type: [Object, String], + default: () => { + return uni.$u.props.cell.titleStyle + } + }, + // 单位元的大小,可选值为large + size: { + type: String, + default: uni.$u.props.cell.size + }, + // 点击cell是否阻止事件传播 + stop: { + type: Boolean, + default: uni.$u.props.cell.stop + }, + // 标识符,cell被点击时返回 + name: { + type: [Number, String], + default: uni.$u.props.cell.name + } + } +} diff --git a/uni_modules/uview-ui/components/u-cell/u-cell.vue b/uni_modules/uview-ui/components/u-cell/u-cell.vue new file mode 100644 index 0000000..b099c90 --- /dev/null +++ b/uni_modules/uview-ui/components/u-cell/u-cell.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-checkbox-group/props.js b/uni_modules/uview-ui/components/u-checkbox-group/props.js new file mode 100644 index 0000000..2f818a1 --- /dev/null +++ b/uni_modules/uview-ui/components/u-checkbox-group/props.js @@ -0,0 +1,82 @@ +export default { + props: { + // 标识符 + name: { + type: String, + default: uni.$u.props.checkboxGroup.name + }, + // 绑定的值 + value: { + type: Array, + default: uni.$u.props.checkboxGroup.value + }, + // 形状,circle-圆形,square-方形 + shape: { + type: String, + default: uni.$u.props.checkboxGroup.shape + }, + // 是否禁用全部checkbox + disabled: { + type: Boolean, + default: uni.$u.props.checkboxGroup.disabled + }, + + // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值 + activeColor: { + type: String, + default: uni.$u.props.checkboxGroup.activeColor + }, + // 未选中的颜色 + inactiveColor: { + type: String, + default: uni.$u.props.checkboxGroup.inactiveColor + }, + + // 整个组件的尺寸,默认px + size: { + type: [String, Number], + default: uni.$u.props.checkboxGroup.size + }, + // 布局方式,row-横向,column-纵向 + placement: { + type: String, + default: uni.$u.props.checkboxGroup.placement + }, + // label的字体大小,px单位 + labelSize: { + type: [String, Number], + default: uni.$u.props.checkboxGroup.labelSize + }, + // label的字体颜色 + labelColor: { + type: [String], + default: uni.$u.props.checkboxGroup.labelColor + }, + // 是否禁止点击文本操作 + labelDisabled: { + type: Boolean, + default: uni.$u.props.checkboxGroup.labelDisabled + }, + // 图标颜色 + iconColor: { + type: String, + default: uni.$u.props.checkboxGroup.iconColor + }, + // 图标的大小,单位px + iconSize: { + type: [String, Number], + default: uni.$u.props.checkboxGroup.iconSize + }, + // 勾选图标的对齐方式,left-左边,right-右边 + iconPlacement: { + type: String, + default: uni.$u.props.checkboxGroup.iconPlacement + }, + // 竖向配列时,是否显示下划线 + borderBottom: { + type: Boolean, + default: uni.$u.props.checkboxGroup.borderBottom + } + + } +} diff --git a/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue b/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue new file mode 100644 index 0000000..7a6b4fa --- /dev/null +++ b/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-checkbox/props.js b/uni_modules/uview-ui/components/u-checkbox/props.js new file mode 100644 index 0000000..93f4fd9 --- /dev/null +++ b/uni_modules/uview-ui/components/u-checkbox/props.js @@ -0,0 +1,69 @@ +export default { + props: { + // checkbox的名称 + name: { + type: [String, Number, Boolean], + default: uni.$u.props.checkbox.name + }, + // 形状,square为方形,circle为圆型 + shape: { + type: String, + default: uni.$u.props.checkbox.shape + }, + // 整体的大小 + size: { + type: [String, Number], + default: uni.$u.props.checkbox.size + }, + // 是否默认选中 + checked: { + type: Boolean, + default: uni.$u.props.checkbox.checked + }, + // 是否禁用 + disabled: { + type: [String, Boolean], + default: uni.$u.props.checkbox.disabled + }, + // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值 + activeColor: { + type: String, + default: uni.$u.props.checkbox.activeColor + }, + // 未选中的颜色 + inactiveColor: { + type: String, + default: uni.$u.props.checkbox.inactiveColor + }, + // 图标的大小,单位px + iconSize: { + type: [String, Number], + default: uni.$u.props.checkbox.iconSize + }, + // 图标颜色 + iconColor: { + type: String, + default: uni.$u.props.checkbox.iconColor + }, + // label提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式 + label: { + type: [String, Number], + default: uni.$u.props.checkbox.label + }, + // label的字体大小,px单位 + labelSize: { + type: [String, Number], + default: uni.$u.props.checkbox.labelSize + }, + // label的颜色 + labelColor: { + type: String, + default: uni.$u.props.checkbox.labelColor + }, + // 是否禁止点击提示语选中复选框 + labelDisabled: { + type: [String, Boolean], + default: uni.$u.props.checkbox.labelDisabled + } + } +} diff --git a/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue b/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue new file mode 100644 index 0000000..6429cca --- /dev/null +++ b/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue @@ -0,0 +1,344 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-circle-progress/props.js b/uni_modules/uview-ui/components/u-circle-progress/props.js new file mode 100644 index 0000000..d776cfb --- /dev/null +++ b/uni_modules/uview-ui/components/u-circle-progress/props.js @@ -0,0 +1,8 @@ +export default { + props: { + percentage: { + type: [String, Number], + default: uni.$u.props.circleProgress.percentage + } + } +} diff --git a/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue b/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue new file mode 100644 index 0000000..d1ee286 --- /dev/null +++ b/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-code-input/props.js b/uni_modules/uview-ui/components/u-code-input/props.js new file mode 100644 index 0000000..0f016ee --- /dev/null +++ b/uni_modules/uview-ui/components/u-code-input/props.js @@ -0,0 +1,79 @@ +export default { + props: { + // 键盘弹起时,是否自动上推页面 + adjustPosition: { + type: Boolean, + default: uni.$u.props.codeInput.adjustPosition + }, + // 最大输入长度 + maxlength: { + type: [String, Number], + default: uni.$u.props.codeInput.maxlength + }, + // 是否用圆点填充 + dot: { + type: Boolean, + default: uni.$u.props.codeInput.dot + }, + // 显示模式,box-盒子模式,line-底部横线模式 + mode: { + type: String, + default: uni.$u.props.codeInput.mode + }, + // 是否细边框 + hairline: { + type: Boolean, + default: uni.$u.props.codeInput.hairline + }, + // 字符间的距离 + space: { + type: [String, Number], + default: uni.$u.props.codeInput.space + }, + // 预置值 + value: { + type: [String, Number], + default: uni.$u.props.codeInput.value + }, + // 是否自动获取焦点 + focus: { + type: Boolean, + default: uni.$u.props.codeInput.focus + }, + // 字体是否加粗 + bold: { + type: Boolean, + default: uni.$u.props.codeInput.bold + }, + // 字体颜色 + color: { + type: String, + default: uni.$u.props.codeInput.color + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.codeInput.fontSize + }, + // 输入框的大小,宽等于高 + size: { + type: [String, Number], + default: uni.$u.props.codeInput.size + }, + // 是否隐藏原生键盘,如果想用自定义键盘的话,需设置此参数为true + disabledKeyboard: { + type: Boolean, + default: uni.$u.props.codeInput.disabledKeyboard + }, + // 边框和线条颜色 + borderColor: { + type: String, + default: uni.$u.props.codeInput.borderColor + }, + // 是否禁止输入"."符号 + disabledDot: { + type: Boolean, + default: uni.$u.props.codeInput.disabledDot + } + } +} diff --git a/uni_modules/uview-ui/components/u-code-input/u-code-input.vue b/uni_modules/uview-ui/components/u-code-input/u-code-input.vue new file mode 100644 index 0000000..96241cf --- /dev/null +++ b/uni_modules/uview-ui/components/u-code-input/u-code-input.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-code/props.js b/uni_modules/uview-ui/components/u-code/props.js new file mode 100644 index 0000000..eaf80d0 --- /dev/null +++ b/uni_modules/uview-ui/components/u-code/props.js @@ -0,0 +1,34 @@ +export default { + props: { + // 倒计时总秒数 + seconds: { + type: [String, Number], + default: uni.$u.props.code.seconds + }, + // 尚未开始时提示 + startText: { + type: String, + default: uni.$u.props.code.startText + }, + // 正在倒计时中的提示 + changeText: { + type: String, + default: uni.$u.props.code.changeText + }, + // 倒计时结束时的提示 + endText: { + type: String, + default: uni.$u.props.code.endText + }, + // 是否在H5刷新或各端返回再进入时继续倒计时 + keepRunning: { + type: Boolean, + default: uni.$u.props.code.keepRunning + }, + // 为了区分多个页面,或者一个页面多个倒计时组件本地存储的继续倒计时变了 + uniqueKey: { + type: String, + default: uni.$u.props.code.uniqueKey + } + } +} diff --git a/uni_modules/uview-ui/components/u-code/u-code.vue b/uni_modules/uview-ui/components/u-code/u-code.vue new file mode 100644 index 0000000..f79a09a --- /dev/null +++ b/uni_modules/uview-ui/components/u-code/u-code.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-col/props.js b/uni_modules/uview-ui/components/u-col/props.js new file mode 100644 index 0000000..0622251 --- /dev/null +++ b/uni_modules/uview-ui/components/u-col/props.js @@ -0,0 +1,29 @@ +export default { + props: { + // 占父容器宽度的多少等分,总分为12份 + span: { + type: [String, Number], + default: uni.$u.props.col.span + }, + // 指定栅格左侧的间隔数(总12栏) + offset: { + type: [String, Number], + default: uni.$u.props.col.offset + }, + // 水平排列方式,可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`) + justify: { + type: String, + default: uni.$u.props.col.justify + }, + // 垂直对齐方式,可选值为top、center、bottom、stretch + align: { + type: String, + default: uni.$u.props.col.align + }, + // 文字对齐方式 + textAlign: { + type: String, + default: uni.$u.props.col.textAlign + } + } +} diff --git a/uni_modules/uview-ui/components/u-col/u-col.vue b/uni_modules/uview-ui/components/u-col/u-col.vue new file mode 100644 index 0000000..8be1517 --- /dev/null +++ b/uni_modules/uview-ui/components/u-col/u-col.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-collapse-item/props.js b/uni_modules/uview-ui/components/u-collapse-item/props.js new file mode 100644 index 0000000..bd5749b --- /dev/null +++ b/uni_modules/uview-ui/components/u-collapse-item/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 标题 + title: { + type: String, + default: uni.$u.props.collapseItem.title + }, + // 标题右侧内容 + value: { + type: String, + default: uni.$u.props.collapseItem.value + }, + // 标题下方的描述信息 + label: { + type: String, + default: uni.$u.props.collapseItem.label + }, + // 是否禁用折叠面板 + disabled: { + type: Boolean, + default: uni.$u.props.collapseItem.disabled + }, + // 是否展示右侧箭头并开启点击反馈 + isLink: { + type: Boolean, + default: uni.$u.props.collapseItem.isLink + }, + // 是否开启点击反馈 + clickable: { + type: Boolean, + default: uni.$u.props.collapseItem.clickable + }, + // 是否显示内边框 + border: { + type: Boolean, + default: uni.$u.props.collapseItem.border + }, + // 标题的对齐方式 + align: { + type: String, + default: uni.$u.props.collapseItem.align + }, + // 唯一标识符 + name: { + type: [String, Number], + default: uni.$u.props.collapseItem.name + }, + // 标题左侧图片,可为绝对路径的图片或内置图标 + icon: { + type: String, + default: uni.$u.props.collapseItem.icon + }, + // 面板展开收起的过渡时间,单位ms + duration: { + type: Number, + default: uni.$u.props.collapseItem.duration + } + } +} diff --git a/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue b/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue new file mode 100644 index 0000000..0e1b703 --- /dev/null +++ b/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-collapse/props.js b/uni_modules/uview-ui/components/u-collapse/props.js new file mode 100644 index 0000000..7ee6d31 --- /dev/null +++ b/uni_modules/uview-ui/components/u-collapse/props.js @@ -0,0 +1,19 @@ +export default { + props: { + // 当前展开面板的name,非手风琴模式:[],手风琴模式:string | number + value: { + type: [String, Number, Array, null], + default: uni.$u.props.collapse.value + }, + // 是否手风琴模式 + accordion: { + type: Boolean, + default: uni.$u.props.collapse.accordion + }, + // 是否显示外边框 + border: { + type: Boolean, + default: uni.$u.props.collapse.border + } + } +} diff --git a/uni_modules/uview-ui/components/u-collapse/u-collapse.vue b/uni_modules/uview-ui/components/u-collapse/u-collapse.vue new file mode 100644 index 0000000..fc188a2 --- /dev/null +++ b/uni_modules/uview-ui/components/u-collapse/u-collapse.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-column-notice/props.js b/uni_modules/uview-ui/components/u-column-notice/props.js new file mode 100644 index 0000000..4809154 --- /dev/null +++ b/uni_modules/uview-ui/components/u-column-notice/props.js @@ -0,0 +1,55 @@ +export default { + props: { + // 显示的内容,字符串 + text: { + type: [Array], + default: uni.$u.props.columnNotice.text + }, + // 是否显示左侧的音量图标 + icon: { + type: String, + default: uni.$u.props.columnNotice.icon + }, + // 通告模式,link-显示右箭头,closable-显示右侧关闭图标 + mode: { + type: String, + default: uni.$u.props.columnNotice.mode + }, + // 文字颜色,各图标也会使用文字颜色 + color: { + type: String, + default: uni.$u.props.columnNotice.color + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.columnNotice.bgColor + }, + // 字体大小,单位px + fontSize: { + type: [String, Number], + default: uni.$u.props.columnNotice.fontSize + }, + // 水平滚动时的滚动速度,即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度 + speed: { + type: [String, Number], + default: uni.$u.props.columnNotice.speed + }, + // direction = row时,是否使用步进形式滚动 + step: { + type: Boolean, + default: uni.$u.props.columnNotice.step + }, + // 滚动一个周期的时间长,单位ms + duration: { + type: [String, Number], + default: uni.$u.props.columnNotice.duration + }, + // 是否禁止用手滑动切换 + // 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 + disableTouch: { + type: Boolean, + default: uni.$u.props.columnNotice.disableTouch + } + } +} diff --git a/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue b/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue new file mode 100644 index 0000000..fc39532 --- /dev/null +++ b/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-count-down/props.js b/uni_modules/uview-ui/components/u-count-down/props.js new file mode 100644 index 0000000..d62f025 --- /dev/null +++ b/uni_modules/uview-ui/components/u-count-down/props.js @@ -0,0 +1,24 @@ +export default { + props: { + // 倒计时时长,单位ms + time: { + type: [String, Number], + default: uni.$u.props.countDown.time + }, + // 时间格式,DD-日,HH-时,mm-分,ss-秒,SSS-毫秒 + format: { + type: String, + default: uni.$u.props.countDown.format + }, + // 是否自动开始倒计时 + autoStart: { + type: Boolean, + default: uni.$u.props.countDown.autoStart + }, + // 是否展示毫秒倒计时 + millisecond: { + type: Boolean, + default: uni.$u.props.countDown.millisecond + } + } +} diff --git a/uni_modules/uview-ui/components/u-count-down/u-count-down.vue b/uni_modules/uview-ui/components/u-count-down/u-count-down.vue new file mode 100644 index 0000000..b5e85a6 --- /dev/null +++ b/uni_modules/uview-ui/components/u-count-down/u-count-down.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-count-down/utils.js b/uni_modules/uview-ui/components/u-count-down/utils.js new file mode 100644 index 0000000..8c75005 --- /dev/null +++ b/uni_modules/uview-ui/components/u-count-down/utils.js @@ -0,0 +1,62 @@ +// 补0,如1 -> 01 +function padZero(num, targetLength = 2) { + let str = `${num}` + while (str.length < targetLength) { + str = `0${str}` + } + return str +} +const SECOND = 1000 +const MINUTE = 60 * SECOND +const HOUR = 60 * MINUTE +const DAY = 24 * HOUR +export function parseTimeData(time) { + const days = Math.floor(time / DAY) + const hours = Math.floor((time % DAY) / HOUR) + const minutes = Math.floor((time % HOUR) / MINUTE) + const seconds = Math.floor((time % MINUTE) / SECOND) + const milliseconds = Math.floor(time % SECOND) + return { + days, + hours, + minutes, + seconds, + milliseconds + } +} +export function parseFormat(format, timeData) { + let { + days, + hours, + minutes, + seconds, + milliseconds + } = timeData + // 如果格式化字符串中不存在DD(天),则将天的时间转为小时中去 + if (format.indexOf('DD') === -1) { + hours += days * 24 + } else { + // 对天补0 + format = format.replace('DD', padZero(days)) + } + // 其他同理于DD的格式化处理方式 + if (format.indexOf('HH') === -1) { + minutes += hours * 60 + } else { + format = format.replace('HH', padZero(hours)) + } + if (format.indexOf('mm') === -1) { + seconds += minutes * 60 + } else { + format = format.replace('mm', padZero(minutes)) + } + if (format.indexOf('ss') === -1) { + milliseconds += seconds * 1000 + } else { + format = format.replace('ss', padZero(seconds)) + } + return format.replace('SSS', padZero(milliseconds, 3)) +} +export function isSameSecond(time1, time2) { + return Math.floor(time1 / 1000) === Math.floor(time2 / 1000) +} diff --git a/uni_modules/uview-ui/components/u-count-to/props.js b/uni_modules/uview-ui/components/u-count-to/props.js new file mode 100644 index 0000000..86873c1 --- /dev/null +++ b/uni_modules/uview-ui/components/u-count-to/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 开始的数值,默认从0增长到某一个数 + startVal: { + type: [String, Number], + default: uni.$u.props.countTo.startVal + }, + // 要滚动的目标数值,必须 + endVal: { + type: [String, Number], + default: uni.$u.props.countTo.endVal + }, + // 滚动到目标数值的动画持续时间,单位为毫秒(ms) + duration: { + type: [String, Number], + default: uni.$u.props.countTo.duration + }, + // 设置数值后是否自动开始滚动 + autoplay: { + type: Boolean, + default: uni.$u.props.countTo.autoplay + }, + // 要显示的小数位数 + decimals: { + type: [String, Number], + default: uni.$u.props.countTo.decimals + }, + // 是否在即将到达目标数值的时候,使用缓慢滚动的效果 + useEasing: { + type: Boolean, + default: uni.$u.props.countTo.useEasing + }, + // 十进制分割 + decimal: { + type: [String, Number], + default: uni.$u.props.countTo.decimal + }, + // 字体颜色 + color: { + type: String, + default: uni.$u.props.countTo.color + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.countTo.fontSize + }, + // 是否加粗字体 + bold: { + type: Boolean, + default: uni.$u.props.countTo.bold + }, + // 千位分隔符,类似金额的分割(¥23,321.05中的",") + separator: { + type: String, + default: uni.$u.props.countTo.separator + } + } +} diff --git a/uni_modules/uview-ui/components/u-count-to/u-count-to.vue b/uni_modules/uview-ui/components/u-count-to/u-count-to.vue new file mode 100644 index 0000000..417b732 --- /dev/null +++ b/uni_modules/uview-ui/components/u-count-to/u-count-to.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-datetime-picker/props.js b/uni_modules/uview-ui/components/u-datetime-picker/props.js new file mode 100644 index 0000000..f44c0f9 --- /dev/null +++ b/uni_modules/uview-ui/components/u-datetime-picker/props.js @@ -0,0 +1,116 @@ +export default { + props: { + // 是否打开组件 + show: { + type: Boolean, + default: uni.$u.props.datetimePicker.show + }, + // 是否展示顶部的操作栏 + showToolbar: { + type: Boolean, + default: uni.$u.props.datetimePicker.showToolbar + }, + // 绑定值 + value: { + type: [String, Number], + default: uni.$u.props.datetimePicker.value + }, + // 顶部标题 + title: { + type: String, + default: uni.$u.props.datetimePicker.title + }, + // 展示格式,mode=date为日期选择,mode=time为时间选择,mode=year-month为年月选择,mode=datetime为日期时间选择 + mode: { + type: String, + default: uni.$u.props.datetimePicker.mode + }, + // 可选的最大时间 + maxDate: { + type: Number, + // 最大默认值为后10年 + default: uni.$u.props.datetimePicker.maxDate + }, + // 可选的最小时间 + minDate: { + type: Number, + // 最小默认值为前10年 + default: uni.$u.props.datetimePicker.minDate + }, + // 可选的最小小时,仅mode=time有效 + minHour: { + type: Number, + default: uni.$u.props.datetimePicker.minHour + }, + // 可选的最大小时,仅mode=time有效 + maxHour: { + type: Number, + default: uni.$u.props.datetimePicker.maxHour + }, + // 可选的最小分钟,仅mode=time有效 + minMinute: { + type: Number, + default: uni.$u.props.datetimePicker.minMinute + }, + // 可选的最大分钟,仅mode=time有效 + maxMinute: { + type: Number, + default: uni.$u.props.datetimePicker.maxMinute + }, + // 选项过滤函数 + filter: { + type: [Function, null], + default: uni.$u.props.datetimePicker.filter + }, + // 选项格式化函数 + formatter: { + type: [Function, null], + default: uni.$u.props.datetimePicker.formatter + }, + // 是否显示加载中状态 + loading: { + type: Boolean, + default: uni.$u.props.datetimePicker.loading + }, + // 各列中,单个选项的高度 + itemHeight: { + type: [String, Number], + default: uni.$u.props.datetimePicker.itemHeight + }, + // 取消按钮的文字 + cancelText: { + type: String, + default: uni.$u.props.datetimePicker.cancelText + }, + // 确认按钮的文字 + confirmText: { + type: String, + default: uni.$u.props.datetimePicker.confirmText + }, + // 取消按钮的颜色 + cancelColor: { + type: String, + default: uni.$u.props.datetimePicker.cancelColor + }, + // 确认按钮的颜色 + confirmColor: { + type: String, + default: uni.$u.props.datetimePicker.confirmColor + }, + // 每列中可见选项的数量 + visibleItemCount: { + type: [String, Number], + default: uni.$u.props.datetimePicker.visibleItemCount + }, + // 是否允许点击遮罩关闭选择器 + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.datetimePicker.closeOnClickOverlay + }, + // 各列的默认索引 + defaultIndex: { + type: Array, + default: uni.$u.props.datetimePicker.defaultIndex + } + } +} diff --git a/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue b/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue new file mode 100644 index 0000000..18d8dcc --- /dev/null +++ b/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue @@ -0,0 +1,360 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-divider/props.js b/uni_modules/uview-ui/components/u-divider/props.js new file mode 100644 index 0000000..1fa8359 --- /dev/null +++ b/uni_modules/uview-ui/components/u-divider/props.js @@ -0,0 +1,44 @@ +export default { + props: { + // 是否虚线 + dashed: { + type: Boolean, + default: uni.$u.props.divider.dashed + }, + // 是否细线 + hairline: { + type: Boolean, + default: uni.$u.props.divider.hairline + }, + // 是否以点替代文字,优先于text字段起作用 + dot: { + type: Boolean, + default: uni.$u.props.divider.dot + }, + // 内容文本的位置,left-左边,center-中间,right-右边 + textPosition: { + type: String, + default: uni.$u.props.divider.textPosition + }, + // 文本内容 + text: { + type: [String, Number], + default: uni.$u.props.divider.text + }, + // 文本大小 + textSize: { + type: [String, Number], + default: uni.$u.props.divider.textSize + }, + // 文本颜色 + textColor: { + type: String, + default: uni.$u.props.divider.textColor + }, + // 线条颜色 + lineColor: { + type: String, + default: uni.$u.props.divider.lineColor + } + } +} diff --git a/uni_modules/uview-ui/components/u-divider/u-divider.vue b/uni_modules/uview-ui/components/u-divider/u-divider.vue new file mode 100644 index 0000000..b629da6 --- /dev/null +++ b/uni_modules/uview-ui/components/u-divider/u-divider.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-dropdown-item/props.js b/uni_modules/uview-ui/components/u-dropdown-item/props.js new file mode 100644 index 0000000..501a1f0 --- /dev/null +++ b/uni_modules/uview-ui/components/u-dropdown-item/props.js @@ -0,0 +1,36 @@ +export default { + props: { + // 当前选中项的value值 + value: { + type: [Number, String, Array], + default: '' + }, + // 菜单项标题 + title: { + type: [String, Number], + default: '' + }, + // 选项数据,如果传入了默认slot,此参数无效 + options: { + type: Array, + default() { + return [] + } + }, + // 是否禁用此菜单项 + disabled: { + type: Boolean, + default: false + }, + // 下拉弹窗的高度 + height: { + type: [Number, String], + default: 'auto' + }, + // 点击遮罩是否可以收起弹窗 + closeOnClickOverlay: { + type: Boolean, + default: true + } + } +} diff --git a/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue b/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue new file mode 100644 index 0000000..f830291 --- /dev/null +++ b/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-dropdown/props.js b/uni_modules/uview-ui/components/u-dropdown/props.js new file mode 100644 index 0000000..5f8465e --- /dev/null +++ b/uni_modules/uview-ui/components/u-dropdown/props.js @@ -0,0 +1,65 @@ +export default { + props: { + // 标题选中时的样式 + activeStyle: { + type: [String, Object], + default: () => ({ + color: '#2979ff', + fontSize: '14px' + }) + }, + // 标题未选中时的样式 + inactiveStyle: { + type: [String, Object], + default: () => ({ + color: '#606266', + fontSize: '14px' + }) + }, + // 点击遮罩是否关闭菜单 + closeOnClickMask: { + type: Boolean, + default: true + }, + // 点击当前激活项标题是否关闭菜单 + closeOnClickSelf: { + type: Boolean, + default: true + }, + // 过渡时间 + duration: { + type: [Number, String], + default: 300 + }, + // 标题菜单的高度 + height: { + type: [Number, String], + default: 40 + }, + // 是否显示下边框 + borderBottom: { + type: Boolean, + default: false + }, + // 标题的字体大小 + titleSize: { + type: [Number, String], + default: 14 + }, + // 下拉出来的内容部分的圆角值 + borderRadius: { + type: [Number, String], + default: 0 + }, + // 菜单右侧的icon图标 + menuIcon: { + type: String, + default: 'arrow-down' + }, + // 菜单右侧图标的大小 + menuIconSize: { + type: [Number, String], + default: 14 + } + } +} diff --git a/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue b/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue new file mode 100644 index 0000000..f830291 --- /dev/null +++ b/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-empty/props.js b/uni_modules/uview-ui/components/u-empty/props.js new file mode 100644 index 0000000..78662f8 --- /dev/null +++ b/uni_modules/uview-ui/components/u-empty/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 内置图标名称,或图片路径,建议绝对路径 + icon: { + type: String, + default: uni.$u.props.empty.icon + }, + // 提示文字 + text: { + type: String, + default: uni.$u.props.empty.text + }, + // 文字颜色 + textColor: { + type: String, + default: uni.$u.props.empty.textColor + }, + // 文字大小 + textSize: { + type: [String, Number], + default: uni.$u.props.empty.textSize + }, + // 图标的颜色 + iconColor: { + type: String, + default: uni.$u.props.empty.iconColor + }, + // 图标的大小 + iconSize: { + type: [String, Number], + default: uni.$u.props.empty.iconSize + }, + // 选择预置的图标类型 + mode: { + type: String, + default: uni.$u.props.empty.mode + }, + // 图标宽度,单位px + width: { + type: [String, Number], + default: uni.$u.props.empty.width + }, + // 图标高度,单位px + height: { + type: [String, Number], + default: uni.$u.props.empty.height + }, + // 是否显示组件 + show: { + type: Boolean, + default: uni.$u.props.empty.show + }, + // 组件距离上一个元素之间的距离,默认px单位 + marginTop: { + type: [String, Number], + default: uni.$u.props.empty.marginTop + } + } +} diff --git a/uni_modules/uview-ui/components/u-empty/u-empty.vue b/uni_modules/uview-ui/components/u-empty/u-empty.vue new file mode 100644 index 0000000..03d6a27 --- /dev/null +++ b/uni_modules/uview-ui/components/u-empty/u-empty.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-form-item/props.js b/uni_modules/uview-ui/components/u-form-item/props.js new file mode 100644 index 0000000..7b16655 --- /dev/null +++ b/uni_modules/uview-ui/components/u-form-item/props.js @@ -0,0 +1,48 @@ +export default { + props: { + // input的label提示语 + label: { + type: String, + default: uni.$u.props.formItem.label + }, + // 绑定的值 + prop: { + type: String, + default: uni.$u.props.formItem.prop + }, + // 是否显示表单域的下划线边框 + borderBottom: { + type: [String, Boolean], + default: uni.$u.props.formItem.borderBottom + }, + // label的位置,left-左边,top-上边 + labelPosition: { + type: String, + default: uni.$u.props.formItem.labelPosition + }, + // label的宽度,单位px + labelWidth: { + type: [String, Number], + default: uni.$u.props.formItem.labelWidth + }, + // 右侧图标 + rightIcon: { + type: String, + default: uni.$u.props.formItem.rightIcon + }, + // 左侧图标 + leftIcon: { + type: String, + default: uni.$u.props.formItem.leftIcon + }, + // 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置 + required: { + type: Boolean, + default: uni.$u.props.formItem.required + }, + leftIconStyle: { + type: [String, Object], + default: uni.$u.props.formItem.leftIconStyle, + } + } +} diff --git a/uni_modules/uview-ui/components/u-form-item/u-form-item.vue b/uni_modules/uview-ui/components/u-form-item/u-form-item.vue new file mode 100644 index 0000000..6aa8d69 --- /dev/null +++ b/uni_modules/uview-ui/components/u-form-item/u-form-item.vue @@ -0,0 +1,235 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-form/props.js b/uni_modules/uview-ui/components/u-form/props.js new file mode 100644 index 0000000..f2a629c --- /dev/null +++ b/uni_modules/uview-ui/components/u-form/props.js @@ -0,0 +1,45 @@ +export default { + props: { + // 当前form的需要验证字段的集合 + model: { + type: Object, + default: uni.$u.props.form.model + }, + // 验证规则 + rules: { + type: [Object, Function, Array], + default: uni.$u.props.form.rules + }, + // 有错误时的提示方式,message-提示信息,toast-进行toast提示 + // border-bottom-下边框呈现红色,none-无提示 + errorType: { + type: String, + default: uni.$u.props.form.errorType + }, + // 是否显示表单域的下划线边框 + borderBottom: { + type: Boolean, + default: uni.$u.props.form.borderBottom + }, + // label的位置,left-左边,top-上边 + labelPosition: { + type: String, + default: uni.$u.props.form.labelPosition + }, + // label的宽度,单位px + labelWidth: { + type: [String, Number], + default: uni.$u.props.form.labelWidth + }, + // lable字体的对齐方式 + labelAlign: { + type: String, + default: uni.$u.props.form.labelAlign + }, + // lable的样式,对象形式 + labelStyle: { + type: Object, + default: uni.$u.props.form.labelStyle + } + } +} diff --git a/uni_modules/uview-ui/components/u-form/u-form.vue b/uni_modules/uview-ui/components/u-form/u-form.vue new file mode 100644 index 0000000..fe2dde2 --- /dev/null +++ b/uni_modules/uview-ui/components/u-form/u-form.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-gap/props.js b/uni_modules/uview-ui/components/u-gap/props.js new file mode 100644 index 0000000..89953e3 --- /dev/null +++ b/uni_modules/uview-ui/components/u-gap/props.js @@ -0,0 +1,24 @@ +export default { + props: { + // 背景颜色(默认transparent) + bgColor: { + type: String, + default: uni.$u.props.gap.bgColor + }, + // 分割槽高度,单位px(默认30) + height: { + type: [String, Number], + default: uni.$u.props.gap.height + }, + // 与上一个组件的距离 + marginTop: { + type: [String, Number], + default: uni.$u.props.gap.marginTop + }, + // 与下一个组件的距离 + marginBottom: { + type: [String, Number], + default: uni.$u.props.gap.marginBottom + } + } +} diff --git a/uni_modules/uview-ui/components/u-gap/u-gap.vue b/uni_modules/uview-ui/components/u-gap/u-gap.vue new file mode 100644 index 0000000..e4429f0 --- /dev/null +++ b/uni_modules/uview-ui/components/u-gap/u-gap.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-grid-item/props.js b/uni_modules/uview-ui/components/u-grid-item/props.js new file mode 100644 index 0000000..06c3c66 --- /dev/null +++ b/uni_modules/uview-ui/components/u-grid-item/props.js @@ -0,0 +1,14 @@ +export default { + props: { + // 宫格的name + name: { + type: [String, Number, null], + default: uni.$u.props.gridItem.name + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.gridItem.bgColor + } + } +} diff --git a/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue b/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue new file mode 100644 index 0000000..fc0c7cf --- /dev/null +++ b/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-grid/props.js b/uni_modules/uview-ui/components/u-grid/props.js new file mode 100644 index 0000000..87b0f6a --- /dev/null +++ b/uni_modules/uview-ui/components/u-grid/props.js @@ -0,0 +1,19 @@ +export default { + props: { + // 分成几列 + col: { + type: [String, Number], + default: uni.$u.props.grid.col + }, + // 是否显示边框 + border: { + type: Boolean, + default: uni.$u.props.grid.border + }, + // 宫格对齐方式,表现为数量少的时候,靠左,居中,还是靠右 + align: { + type: String, + default: uni.$u.props.grid.align + } + } +} diff --git a/uni_modules/uview-ui/components/u-grid/u-grid.vue b/uni_modules/uview-ui/components/u-grid/u-grid.vue new file mode 100644 index 0000000..b43cc27 --- /dev/null +++ b/uni_modules/uview-ui/components/u-grid/u-grid.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-icon/icons.js b/uni_modules/uview-ui/components/u-icon/icons.js new file mode 100644 index 0000000..f4d0fe2 --- /dev/null +++ b/uni_modules/uview-ui/components/u-icon/icons.js @@ -0,0 +1,214 @@ +export default { + 'uicon-level': '\ue693', + 'uicon-column-line': '\ue68e', + 'uicon-checkbox-mark': '\ue807', + 'uicon-folder': '\ue7f5', + 'uicon-movie': '\ue7f6', + 'uicon-star-fill': '\ue669', + 'uicon-star': '\ue65f', + 'uicon-phone-fill': '\ue64f', + 'uicon-phone': '\ue622', + 'uicon-apple-fill': '\ue881', + 'uicon-chrome-circle-fill': '\ue885', + 'uicon-backspace': '\ue67b', + 'uicon-attach': '\ue632', + 'uicon-cut': '\ue948', + 'uicon-empty-car': '\ue602', + 'uicon-empty-coupon': '\ue682', + 'uicon-empty-address': '\ue646', + 'uicon-empty-favor': '\ue67c', + 'uicon-empty-permission': '\ue686', + 'uicon-empty-news': '\ue687', + 'uicon-empty-search': '\ue664', + 'uicon-github-circle-fill': '\ue887', + 'uicon-rmb': '\ue608', + 'uicon-person-delete-fill': '\ue66a', + 'uicon-reload': '\ue788', + 'uicon-order': '\ue68f', + 'uicon-server-man': '\ue6bc', + 'uicon-search': '\ue62a', + 'uicon-fingerprint': '\ue955', + 'uicon-more-dot-fill': '\ue630', + 'uicon-scan': '\ue662', + 'uicon-share-square': '\ue60b', + 'uicon-map': '\ue61d', + 'uicon-map-fill': '\ue64e', + 'uicon-tags': '\ue629', + 'uicon-tags-fill': '\ue651', + 'uicon-bookmark-fill': '\ue63b', + 'uicon-bookmark': '\ue60a', + 'uicon-eye': '\ue613', + 'uicon-eye-fill': '\ue641', + 'uicon-mic': '\ue64a', + 'uicon-mic-off': '\ue649', + 'uicon-calendar': '\ue66e', + 'uicon-calendar-fill': '\ue634', + 'uicon-trash': '\ue623', + 'uicon-trash-fill': '\ue658', + 'uicon-play-left': '\ue66d', + 'uicon-play-right': '\ue610', + 'uicon-minus': '\ue618', + 'uicon-plus': '\ue62d', + 'uicon-info': '\ue653', + 'uicon-info-circle': '\ue7d2', + 'uicon-info-circle-fill': '\ue64b', + 'uicon-question': '\ue715', + 'uicon-error': '\ue6d3', + 'uicon-close': '\ue685', + 'uicon-checkmark': '\ue6a8', + 'uicon-android-circle-fill': '\ue67e', + 'uicon-android-fill': '\ue67d', + 'uicon-ie': '\ue87b', + 'uicon-IE-circle-fill': '\ue889', + 'uicon-google': '\ue87a', + 'uicon-google-circle-fill': '\ue88a', + 'uicon-setting-fill': '\ue872', + 'uicon-setting': '\ue61f', + 'uicon-minus-square-fill': '\ue855', + 'uicon-plus-square-fill': '\ue856', + 'uicon-heart': '\ue7df', + 'uicon-heart-fill': '\ue851', + 'uicon-camera': '\ue7d7', + 'uicon-camera-fill': '\ue870', + 'uicon-more-circle': '\ue63e', + 'uicon-more-circle-fill': '\ue645', + 'uicon-chat': '\ue620', + 'uicon-chat-fill': '\ue61e', + 'uicon-bag-fill': '\ue617', + 'uicon-bag': '\ue619', + 'uicon-error-circle-fill': '\ue62c', + 'uicon-error-circle': '\ue624', + 'uicon-close-circle': '\ue63f', + 'uicon-close-circle-fill': '\ue637', + 'uicon-checkmark-circle': '\ue63d', + 'uicon-checkmark-circle-fill': '\ue635', + 'uicon-question-circle-fill': '\ue666', + 'uicon-question-circle': '\ue625', + 'uicon-share': '\ue631', + 'uicon-share-fill': '\ue65e', + 'uicon-shopping-cart': '\ue621', + 'uicon-shopping-cart-fill': '\ue65d', + 'uicon-bell': '\ue609', + 'uicon-bell-fill': '\ue640', + 'uicon-list': '\ue650', + 'uicon-list-dot': '\ue616', + 'uicon-zhihu': '\ue6ba', + 'uicon-zhihu-circle-fill': '\ue709', + 'uicon-zhifubao': '\ue6b9', + 'uicon-zhifubao-circle-fill': '\ue6b8', + 'uicon-weixin-circle-fill': '\ue6b1', + 'uicon-weixin-fill': '\ue6b2', + 'uicon-twitter-circle-fill': '\ue6ab', + 'uicon-twitter': '\ue6aa', + 'uicon-taobao-circle-fill': '\ue6a7', + 'uicon-taobao': '\ue6a6', + 'uicon-weibo-circle-fill': '\ue6a5', + 'uicon-weibo': '\ue6a4', + 'uicon-qq-fill': '\ue6a1', + 'uicon-qq-circle-fill': '\ue6a0', + 'uicon-moments-circel-fill': '\ue69a', + 'uicon-moments': '\ue69b', + 'uicon-qzone': '\ue695', + 'uicon-qzone-circle-fill': '\ue696', + 'uicon-baidu-circle-fill': '\ue680', + 'uicon-baidu': '\ue681', + 'uicon-facebook-circle-fill': '\ue68a', + 'uicon-facebook': '\ue689', + 'uicon-car': '\ue60c', + 'uicon-car-fill': '\ue636', + 'uicon-warning-fill': '\ue64d', + 'uicon-warning': '\ue694', + 'uicon-clock-fill': '\ue638', + 'uicon-clock': '\ue60f', + 'uicon-edit-pen': '\ue612', + 'uicon-edit-pen-fill': '\ue66b', + 'uicon-email': '\ue611', + 'uicon-email-fill': '\ue642', + 'uicon-minus-circle': '\ue61b', + 'uicon-minus-circle-fill': '\ue652', + 'uicon-plus-circle': '\ue62e', + 'uicon-plus-circle-fill': '\ue661', + 'uicon-file-text': '\ue663', + 'uicon-file-text-fill': '\ue665', + 'uicon-pushpin': '\ue7e3', + 'uicon-pushpin-fill': '\ue86e', + 'uicon-grid': '\ue673', + 'uicon-grid-fill': '\ue678', + 'uicon-play-circle': '\ue647', + 'uicon-play-circle-fill': '\ue655', + 'uicon-pause-circle-fill': '\ue654', + 'uicon-pause': '\ue8fa', + 'uicon-pause-circle': '\ue643', + 'uicon-eye-off': '\ue648', + 'uicon-eye-off-outline': '\ue62b', + 'uicon-gift-fill': '\ue65c', + 'uicon-gift': '\ue65b', + 'uicon-rmb-circle-fill': '\ue657', + 'uicon-rmb-circle': '\ue677', + 'uicon-kefu-ermai': '\ue656', + 'uicon-server-fill': '\ue751', + 'uicon-coupon-fill': '\ue8c4', + 'uicon-coupon': '\ue8ae', + 'uicon-integral': '\ue704', + 'uicon-integral-fill': '\ue703', + 'uicon-home-fill': '\ue964', + 'uicon-home': '\ue965', + 'uicon-hourglass-half-fill': '\ue966', + 'uicon-hourglass': '\ue967', + 'uicon-account': '\ue628', + 'uicon-plus-people-fill': '\ue626', + 'uicon-minus-people-fill': '\ue615', + 'uicon-account-fill': '\ue614', + 'uicon-thumb-down-fill': '\ue726', + 'uicon-thumb-down': '\ue727', + 'uicon-thumb-up': '\ue733', + 'uicon-thumb-up-fill': '\ue72f', + 'uicon-lock-fill': '\ue979', + 'uicon-lock-open': '\ue973', + 'uicon-lock-opened-fill': '\ue974', + 'uicon-lock': '\ue97a', + 'uicon-red-packet-fill': '\ue690', + 'uicon-photo-fill': '\ue98b', + 'uicon-photo': '\ue98d', + 'uicon-volume-off-fill': '\ue659', + 'uicon-volume-off': '\ue644', + 'uicon-volume-fill': '\ue670', + 'uicon-volume': '\ue633', + 'uicon-red-packet': '\ue691', + 'uicon-download': '\ue63c', + 'uicon-arrow-up-fill': '\ue6b0', + 'uicon-arrow-down-fill': '\ue600', + 'uicon-play-left-fill': '\ue675', + 'uicon-play-right-fill': '\ue676', + 'uicon-rewind-left-fill': '\ue679', + 'uicon-rewind-right-fill': '\ue67a', + 'uicon-arrow-downward': '\ue604', + 'uicon-arrow-leftward': '\ue601', + 'uicon-arrow-rightward': '\ue603', + 'uicon-arrow-upward': '\ue607', + 'uicon-arrow-down': '\ue60d', + 'uicon-arrow-right': '\ue605', + 'uicon-arrow-left': '\ue60e', + 'uicon-arrow-up': '\ue606', + 'uicon-skip-back-left': '\ue674', + 'uicon-skip-forward-right': '\ue672', + 'uicon-rewind-right': '\ue66f', + 'uicon-rewind-left': '\ue671', + 'uicon-arrow-right-double': '\ue68d', + 'uicon-arrow-left-double': '\ue68c', + 'uicon-wifi-off': '\ue668', + 'uicon-wifi': '\ue667', + 'uicon-empty-data': '\ue62f', + 'uicon-empty-history': '\ue684', + 'uicon-empty-list': '\ue68b', + 'uicon-empty-page': '\ue627', + 'uicon-empty-order': '\ue639', + 'uicon-man': '\ue697', + 'uicon-woman': '\ue69c', + 'uicon-man-add': '\ue61c', + 'uicon-man-add-fill': '\ue64c', + 'uicon-man-delete': '\ue61a', + 'uicon-man-delete-fill': '\ue66a', + 'uicon-zh': '\ue70a', + 'uicon-en': '\ue692' +} diff --git a/uni_modules/uview-ui/components/u-icon/props.js b/uni_modules/uview-ui/components/u-icon/props.js new file mode 100644 index 0000000..71845b7 --- /dev/null +++ b/uni_modules/uview-ui/components/u-icon/props.js @@ -0,0 +1,89 @@ +export default { + props: { + // 图标类名 + name: { + type: String, + default: uni.$u.props.icon.name + }, + // 图标颜色,可接受主题色 + color: { + type: String, + default: uni.$u.props.icon.color + }, + // 字体大小,单位px + size: { + type: [String, Number], + default: uni.$u.props.icon.size + }, + // 是否显示粗体 + bold: { + type: Boolean, + default: uni.$u.props.icon.bold + }, + // 点击图标的时候传递事件出去的index(用于区分点击了哪一个) + index: { + type: [String, Number], + default: uni.$u.props.icon.index + }, + // 触摸图标时的类名 + hoverClass: { + type: String, + default: uni.$u.props.icon.hoverClass + }, + // 自定义扩展前缀,方便用户扩展自己的图标库 + customPrefix: { + type: String, + default: uni.$u.props.icon.customPrefix + }, + // 图标右边或者下面的文字 + label: { + type: [String, Number], + default: uni.$u.props.icon.label + }, + // label的位置,只能右边或者下边 + labelPos: { + type: String, + default: uni.$u.props.icon.labelPos + }, + // label的大小 + labelSize: { + type: [String, Number], + default: uni.$u.props.icon.labelSize + }, + // label的颜色 + labelColor: { + type: String, + default: uni.$u.props.icon.labelColor + }, + // label与图标的距离 + space: { + type: [String, Number], + default: uni.$u.props.icon.space + }, + // 图片的mode + imgMode: { + type: String, + default: uni.$u.props.icon.imgMode + }, + // 用于显示图片小图标时,图片的宽度 + width: { + type: [String, Number], + default: uni.$u.props.icon.width + }, + // 用于显示图片小图标时,图片的高度 + height: { + type: [String, Number], + default: uni.$u.props.icon.height + }, + // 用于解决某些情况下,让图标垂直居中的用途 + top: { + type: [String, Number], + default: uni.$u.props.icon.top + }, + // 是否阻止事件传播 + stop: { + type: Boolean, + default: uni.$u.props.icon.stop + } + } +} diff --git a/uni_modules/uview-ui/components/u-icon/u-icon.vue b/uni_modules/uview-ui/components/u-icon/u-icon.vue new file mode 100644 index 0000000..9340328 --- /dev/null +++ b/uni_modules/uview-ui/components/u-icon/u-icon.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-image/props.js b/uni_modules/uview-ui/components/u-image/props.js new file mode 100644 index 0000000..2eabb74 --- /dev/null +++ b/uni_modules/uview-ui/components/u-image/props.js @@ -0,0 +1,84 @@ +export default { + props: { + // 图片地址 + src: { + type: String, + default: uni.$u.props.image.src + }, + // 裁剪模式 + mode: { + type: String, + default: uni.$u.props.image.mode + }, + // 宽度,单位任意 + width: { + type: [String, Number], + default: uni.$u.props.image.width + }, + // 高度,单位任意 + height: { + type: [String, Number], + default: uni.$u.props.image.height + }, + // 图片形状,circle-圆形,square-方形 + shape: { + type: String, + default: uni.$u.props.image.shape + }, + // 圆角,单位任意 + radius: { + type: [String, Number], + default: uni.$u.props.image.radius + }, + // 是否懒加载,微信小程序、App、百度小程序、字节跳动小程序 + lazyLoad: { + type: Boolean, + default: uni.$u.props.image.lazyLoad + }, + // 开启长按图片显示识别微信小程序码菜单 + showMenuByLongpress: { + type: Boolean, + default: uni.$u.props.image.showMenuByLongpress + }, + // 加载中的图标,或者小图片 + loadingIcon: { + type: String, + default: uni.$u.props.image.loadingIcon + }, + // 加载失败的图标,或者小图片 + errorIcon: { + type: String, + default: uni.$u.props.image.errorIcon + }, + // 是否显示加载中的图标或者自定义的slot + showLoading: { + type: Boolean, + default: uni.$u.props.image.showLoading + }, + // 是否显示加载错误的图标或者自定义的slot + showError: { + type: Boolean, + default: uni.$u.props.image.showError + }, + // 是否需要淡入效果 + fade: { + type: Boolean, + default: uni.$u.props.image.fade + }, + // 只支持网络资源,只对微信小程序有效 + webp: { + type: Boolean, + default: uni.$u.props.image.webp + }, + // 过渡时间,单位ms + duration: { + type: [String, Number], + default: uni.$u.props.image.duration + }, + // 背景颜色,用于深色页面加载图片时,为了和背景色融合 + bgColor: { + type: String, + default: uni.$u.props.image.bgColor + } + } +} diff --git a/uni_modules/uview-ui/components/u-image/u-image.vue b/uni_modules/uview-ui/components/u-image/u-image.vue new file mode 100644 index 0000000..473e35b --- /dev/null +++ b/uni_modules/uview-ui/components/u-image/u-image.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-index-anchor/props.js b/uni_modules/uview-ui/components/u-index-anchor/props.js new file mode 100644 index 0000000..6d8b59a --- /dev/null +++ b/uni_modules/uview-ui/components/u-index-anchor/props.js @@ -0,0 +1,29 @@ +export default { + props: { + // 列表锚点文本内容 + text: { + type: [String, Number], + default: uni.$u.props.indexAnchor.text + }, + // 列表锚点文字颜色 + color: { + type: String, + default: uni.$u.props.indexAnchor.color + }, + // 列表锚点文字大小,单位默认px + size: { + type: [String, Number], + default: uni.$u.props.indexAnchor.size + }, + // 列表锚点背景颜色 + bgColor: { + type: String, + default: uni.$u.props.indexAnchor.bgColor + }, + // 列表锚点高度,单位默认px + height: { + type: [String, Number], + default: uni.$u.props.indexAnchor.height + } + } +} diff --git a/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue b/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue new file mode 100644 index 0000000..b95ddef --- /dev/null +++ b/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-index-item/props.js b/uni_modules/uview-ui/components/u-index-item/props.js new file mode 100644 index 0000000..7c11331 --- /dev/null +++ b/uni_modules/uview-ui/components/u-index-item/props.js @@ -0,0 +1,5 @@ +export default { + props: { + + } +} diff --git a/uni_modules/uview-ui/components/u-index-item/u-index-item.vue b/uni_modules/uview-ui/components/u-index-item/u-index-item.vue new file mode 100644 index 0000000..0bc7fb3 --- /dev/null +++ b/uni_modules/uview-ui/components/u-index-item/u-index-item.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-index-list/props.js b/uni_modules/uview-ui/components/u-index-list/props.js new file mode 100644 index 0000000..354d459 --- /dev/null +++ b/uni_modules/uview-ui/components/u-index-list/props.js @@ -0,0 +1,29 @@ +export default { + props: { + // 右边锚点非激活的颜色 + inactiveColor: { + type: String, + default: uni.$u.props.indexList.inactiveColor + }, + // 右边锚点激活的颜色 + activeColor: { + type: String, + default: uni.$u.props.indexList.activeColor + }, + // 索引字符列表,数组形式 + indexList: { + type: Array, + default: uni.$u.props.indexList.indexList + }, + // 是否开启锚点自动吸顶 + sticky: { + type: Boolean, + default: uni.$u.props.indexList.sticky + }, + // 自定义导航栏的高度 + customNavHeight: { + type: [String, Number], + default: uni.$u.props.indexList.customNavHeight + } + } +} diff --git a/uni_modules/uview-ui/components/u-index-list/u-index-list.vue b/uni_modules/uview-ui/components/u-index-list/u-index-list.vue new file mode 100644 index 0000000..d712618 --- /dev/null +++ b/uni_modules/uview-ui/components/u-index-list/u-index-list.vue @@ -0,0 +1,440 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-input/props.js b/uni_modules/uview-ui/components/u-input/props.js new file mode 100644 index 0000000..2c50870 --- /dev/null +++ b/uni_modules/uview-ui/components/u-input/props.js @@ -0,0 +1,187 @@ +export default { + props: { + // 输入的值 + value: { + type: [String, Number], + default: uni.$u.props.input.value + }, + // 输入框类型 + // number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数 + // idcard-身份证输入键盘,微信、支付宝、百度、QQ小程序 + // digit-带小数点的数字键盘,App的nvue页面、微信、支付宝、百度、头条、QQ小程序 + // text-文本输入键盘 + type: { + type: String, + default: uni.$u.props.input.type + }, + // 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true, + // 兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序 + fixed: { + type: Boolean, + default: uni.$u.props.input.fixed + }, + // 是否禁用输入框 + disabled: { + type: Boolean, + default: uni.$u.props.input.disabled + }, + // 禁用状态时的背景色 + disabledColor: { + type: String, + default: uni.$u.props.input.disabledColor + }, + // 是否显示清除控件 + clearable: { + type: Boolean, + default: uni.$u.props.input.clearable + }, + // 是否密码类型 + password: { + type: Boolean, + default: uni.$u.props.input.password + }, + // 最大输入长度,设置为 -1 的时候不限制最大长度 + maxlength: { + type: [String, Number], + default: uni.$u.props.input.maxlength + }, + // 输入框为空时的占位符 + placeholder: { + type: String, + default: uni.$u.props.input.placeholder + }, + // 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ + placeholderClass: { + type: String, + default: uni.$u.props.input.placeholderClass + }, + // 指定placeholder的样式 + placeholderStyle: { + type: [String, Object], + default: uni.$u.props.input.placeholderStyle + }, + // 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效 + showWordLimit: { + type: Boolean, + default: uni.$u.props.input.showWordLimit + }, + // 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档 + // https://uniapp.dcloud.io/component/input + // https://uniapp.dcloud.io/component/textarea + confirmType: { + type: String, + default: uni.$u.props.input.confirmType + }, + // 点击键盘右下角按钮时是否保持键盘不收起,H5无效 + confirmHold: { + type: Boolean, + default: uni.$u.props.input.confirmHold + }, + // focus时,点击页面的时候不收起键盘,微信小程序有效 + holdKeyboard: { + type: Boolean, + default: uni.$u.props.input.holdKeyboard + }, + // 自动获取焦点 + // 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点 + focus: { + type: Boolean, + default: uni.$u.props.input.focus + }, + // 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效 + autoBlur: { + type: Boolean, + default: uni.$u.props.input.autoBlur + }, + // 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效 + disableDefaultPadding: { + type: Boolean, + default: uni.$u.props.input.disableDefaultPadding + }, + // 指定focus时光标的位置 + cursor: { + type: [String, Number], + default: uni.$u.props.input.cursor + }, + // 输入框聚焦时底部与键盘的距离 + cursorSpacing: { + type: [String, Number], + default: uni.$u.props.input.cursorSpacing + }, + // 光标起始位置,自动聚集时有效,需与selection-end搭配使用 + selectionStart: { + type: [String, Number], + default: uni.$u.props.input.selectionStart + }, + // 光标结束位置,自动聚集时有效,需与selection-start搭配使用 + selectionEnd: { + type: [String, Number], + default: uni.$u.props.input.selectionEnd + }, + // 键盘弹起时,是否自动上推页面 + adjustPosition: { + type: Boolean, + default: uni.$u.props.input.adjustPosition + }, + // 输入框内容对齐方式,可选值为:left|center|right + inputAlign: { + type: String, + default: uni.$u.props.input.inputAlign + }, + // 输入框字体的大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.input.fontSize + }, + // 输入框字体颜色 + color: { + type: String, + default: uni.$u.props.input.color + }, + // 输入框前置图标 + prefixIcon: { + type: String, + default: uni.$u.props.input.prefixIcon + }, + // 前置图标样式,对象或字符串 + prefixIconStyle: { + type: [String, Object], + default: uni.$u.props.input.prefixIconStyle + }, + // 输入框后置图标 + suffixIcon: { + type: String, + default: uni.$u.props.input.suffixIcon + }, + // 后置图标样式,对象或字符串 + suffixIconStyle: { + type: [String, Object], + default: uni.$u.props.input.suffixIconStyle + }, + // 边框类型,surround-四周边框,bottom-底部边框,none-无边框 + border: { + type: String, + default: uni.$u.props.input.border + }, + // 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会 + readonly: { + type: Boolean, + default: uni.$u.props.input.readonly + }, + // 输入框形状,circle-圆形,square-方形 + shape: { + type: String, + default: uni.$u.props.input.shape + }, + // 用于处理或者过滤输入框内容的方法 + formatter: { + type: [Function, null], + default: uni.$u.props.input.formatter + }, + // 是否忽略组件内对文本合成系统事件的处理 + ignoreCompositionEvent: { + type: Boolean, + default: true + } + } +} diff --git a/uni_modules/uview-ui/components/u-input/u-input.vue b/uni_modules/uview-ui/components/u-input/u-input.vue new file mode 100644 index 0000000..30073eb --- /dev/null +++ b/uni_modules/uview-ui/components/u-input/u-input.vue @@ -0,0 +1,354 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-keyboard/props.js b/uni_modules/uview-ui/components/u-keyboard/props.js new file mode 100644 index 0000000..cfdb00a --- /dev/null +++ b/uni_modules/uview-ui/components/u-keyboard/props.js @@ -0,0 +1,84 @@ +export default { + props: { + // 键盘的类型,number-数字键盘,card-身份证键盘,car-车牌号键盘 + mode: { + type: String, + default: uni.$u.props.keyboard.mode + }, + // 是否显示键盘的"."符号 + dotDisabled: { + type: Boolean, + default: uni.$u.props.keyboard.dotDisabled + }, + // 是否显示顶部工具条 + tooltip: { + type: Boolean, + default: uni.$u.props.keyboard.tooltip + }, + // 是否显示工具条中间的提示 + showTips: { + type: Boolean, + default: uni.$u.props.keyboard.showTips + }, + // 工具条中间的提示文字 + tips: { + type: String, + default: uni.$u.props.keyboard.tips + }, + // 是否显示工具条左边的"取消"按钮 + showCancel: { + type: Boolean, + default: uni.$u.props.keyboard.showCancel + }, + // 是否显示工具条右边的"完成"按钮 + showConfirm: { + type: Boolean, + default: uni.$u.props.keyboard.showConfirm + }, + // 是否打乱键盘按键的顺序 + random: { + type: Boolean, + default: uni.$u.props.keyboard.random + }, + // 是否开启底部安全区适配,开启的话,会在iPhoneX机型底部添加一定的内边距 + safeAreaInsetBottom: { + type: Boolean, + default: uni.$u.props.keyboard.safeAreaInsetBottom + }, + // 是否允许通过点击遮罩关闭键盘 + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.keyboard.closeOnClickOverlay + }, + // 控制键盘的弹出与收起 + show: { + type: Boolean, + default: uni.$u.props.keyboard.show + }, + // 是否显示遮罩,某些时候数字键盘时,用户希望看到自己的数值,所以可能不想要遮罩 + overlay: { + type: Boolean, + default: uni.$u.props.keyboard.overlay + }, + // z-index值 + zIndex: { + type: [String, Number], + default: uni.$u.props.keyboard.zIndex + }, + // 取消按钮的文字 + cancelText: { + type: String, + default: uni.$u.props.keyboard.cancelText + }, + // 确认按钮的文字 + confirmText: { + type: String, + default: uni.$u.props.keyboard.confirmText + }, + // 输入一个中文后,是否自动切换到英文 + autoChange: { + type: Boolean, + default: uni.$u.props.keyboard.autoChange + } + } +} diff --git a/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue b/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue new file mode 100644 index 0000000..14228cb --- /dev/null +++ b/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-line-progress/props.js b/uni_modules/uview-ui/components/u-line-progress/props.js new file mode 100644 index 0000000..a4210bd --- /dev/null +++ b/uni_modules/uview-ui/components/u-line-progress/props.js @@ -0,0 +1,28 @@ +export default { + props: { + // 激活部分的颜色 + activeColor: { + type: String, + default: uni.$u.props.lineProgress.activeColor + }, + inactiveColor: { + type: String, + default: uni.$u.props.lineProgress.color + }, + // 进度百分比,数值 + percentage: { + type: [String, Number], + default: uni.$u.props.lineProgress.inactiveColor + }, + // 是否在进度条内部显示百分比的值 + showText: { + type: Boolean, + default: uni.$u.props.lineProgress.showText + }, + // 进度条的高度,单位px + height: { + type: [String, Number], + default: uni.$u.props.lineProgress.height + } + } +} diff --git a/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue b/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue new file mode 100644 index 0000000..4e27931 --- /dev/null +++ b/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-line/props.js b/uni_modules/uview-ui/components/u-line/props.js new file mode 100644 index 0000000..2308cc3 --- /dev/null +++ b/uni_modules/uview-ui/components/u-line/props.js @@ -0,0 +1,33 @@ +export default { + props: { + color: { + type: String, + default: uni.$u.props.line.color + }, + // 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等 + length: { + type: [String, Number], + default: uni.$u.props.line.length + }, + // 线条方向,col-竖向,row-横向 + direction: { + type: String, + default: uni.$u.props.line.direction + }, + // 是否显示细边框 + hairline: { + type: Boolean, + default: uni.$u.props.line.hairline + }, + // 线条与上下左右元素的间距,字符串形式,如"30px"、"20px 30px" + margin: { + type: [String, Number], + default: uni.$u.props.line.margin + }, + // 是否虚线,true-虚线,false-实线 + dashed: { + type: Boolean, + default: uni.$u.props.line.dashed + } + } +} diff --git a/uni_modules/uview-ui/components/u-line/u-line.vue b/uni_modules/uview-ui/components/u-line/u-line.vue new file mode 100644 index 0000000..e0a6d92 --- /dev/null +++ b/uni_modules/uview-ui/components/u-line/u-line.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-link/props.js b/uni_modules/uview-ui/components/u-link/props.js new file mode 100644 index 0000000..d39353f --- /dev/null +++ b/uni_modules/uview-ui/components/u-link/props.js @@ -0,0 +1,39 @@ +export default { + props: { + // 文字颜色 + color: { + type: String, + default: uni.$u.props.link.color + }, + // 字体大小,单位px + fontSize: { + type: [String, Number], + default: uni.$u.props.link.fontSize + }, + // 是否显示下划线 + underLine: { + type: Boolean, + default: uni.$u.props.link.underLine + }, + // 要跳转的链接 + href: { + type: String, + default: uni.$u.props.link.href + }, + // 小程序中复制到粘贴板的提示语 + mpTips: { + type: String, + default: uni.$u.props.link.mpTips + }, + // 下划线颜色 + lineColor: { + type: String, + default: uni.$u.props.link.lineColor + }, + // 超链接的问题,不使用slot形式传入,是因为nvue下无法修改颜色 + text: { + type: String, + default: uni.$u.props.link.text + } + } +} diff --git a/uni_modules/uview-ui/components/u-link/u-link.vue b/uni_modules/uview-ui/components/u-link/u-link.vue new file mode 100644 index 0000000..c6802a5 --- /dev/null +++ b/uni_modules/uview-ui/components/u-link/u-link.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-list-item/props.js b/uni_modules/uview-ui/components/u-list-item/props.js new file mode 100644 index 0000000..58ddc49 --- /dev/null +++ b/uni_modules/uview-ui/components/u-list-item/props.js @@ -0,0 +1,9 @@ +export default { + props: { + // 用于滚动到指定item + anchor: { + type: [String, Number], + default: uni.$u.props.listItem.anchor + } + } +} diff --git a/uni_modules/uview-ui/components/u-list-item/u-list-item.vue b/uni_modules/uview-ui/components/u-list-item/u-list-item.vue new file mode 100644 index 0000000..1a25db6 --- /dev/null +++ b/uni_modules/uview-ui/components/u-list-item/u-list-item.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-list/props.js b/uni_modules/uview-ui/components/u-list/props.js new file mode 100644 index 0000000..25406f4 --- /dev/null +++ b/uni_modules/uview-ui/components/u-list/props.js @@ -0,0 +1,76 @@ +export default { + props: { + // 控制是否出现滚动条,仅nvue有效 + showScrollbar: { + type: Boolean, + default: uni.$u.props.list.showScrollbar + }, + // 距底部多少时触发scrolltolower事件 + lowerThreshold: { + type: [String, Number], + default: uni.$u.props.list.lowerThreshold + }, + // 距顶部多少时触发scrolltoupper事件,非nvue有效 + upperThreshold: { + type: [String, Number], + default: uni.$u.props.list.upperThreshold + }, + // 设置竖向滚动条位置 + scrollTop: { + type: [String, Number], + default: uni.$u.props.list.scrollTop + }, + // 控制 onscroll 事件触发的频率,仅nvue有效 + offsetAccuracy: { + type: [String, Number], + default: uni.$u.props.list.offsetAccuracy + }, + // 启用 flexbox 布局。开启后,当前节点声明了display: flex就会成为flex container,并作用于其孩子节点,仅微信小程序有效 + enableFlex: { + type: Boolean, + default: uni.$u.props.list.enableFlex + }, + // 是否按分页模式显示List,默认值false + pagingEnabled: { + type: Boolean, + default: uni.$u.props.list.pagingEnabled + }, + // 是否允许List滚动 + scrollable: { + type: Boolean, + default: uni.$u.props.list.scrollable + }, + // 值应为某子元素id(id不能以数字开头) + scrollIntoView: { + type: String, + default: uni.$u.props.list.scrollIntoView + }, + // 在设置滚动条位置时使用动画过渡 + scrollWithAnimation: { + type: Boolean, + default: uni.$u.props.list.scrollWithAnimation + }, + // iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只对微信小程序有效 + enableBackToTop: { + type: Boolean, + default: uni.$u.props.list.enableBackToTop + }, + // 列表的高度 + height: { + type: [String, Number], + default: uni.$u.props.list.height + }, + // 列表宽度 + width: { + type: [String, Number], + default: uni.$u.props.list.width + }, + // 列表前后预渲染的屏数,1代表一个屏幕的高度,1.5代表1个半屏幕高度 + preLoadScreen: { + type: [String, Number], + default: uni.$u.props.list.preLoadScreen + } + // vue下,是否开启虚拟列表 + + } +} diff --git a/uni_modules/uview-ui/components/u-list/u-list.vue b/uni_modules/uview-ui/components/u-list/u-list.vue new file mode 100644 index 0000000..4447cab --- /dev/null +++ b/uni_modules/uview-ui/components/u-list/u-list.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-loading-icon/props.js b/uni_modules/uview-ui/components/u-loading-icon/props.js new file mode 100644 index 0000000..c35524e --- /dev/null +++ b/uni_modules/uview-ui/components/u-loading-icon/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 是否显示组件 + show: { + type: Boolean, + default: uni.$u.props.loadingIcon.show + }, + // 颜色 + color: { + type: String, + default: uni.$u.props.loadingIcon.color + }, + // 提示文字颜色 + textColor: { + type: String, + default: uni.$u.props.loadingIcon.textColor + }, + // 文字和图标是否垂直排列 + vertical: { + type: Boolean, + default: uni.$u.props.loadingIcon.vertical + }, + // 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形 + mode: { + type: String, + default: uni.$u.props.loadingIcon.mode + }, + // 图标大小,单位默认px + size: { + type: [String, Number], + default: uni.$u.props.loadingIcon.size + }, + // 文字大小 + textSize: { + type: [String, Number], + default: uni.$u.props.loadingIcon.textSize + }, + // 文字内容 + text: { + type: [String, Number], + default: uni.$u.props.loadingIcon.text + }, + // 动画模式 + timingFunction: { + type: String, + default: uni.$u.props.loadingIcon.timingFunction + }, + // 动画执行周期时间 + duration: { + type: [String, Number], + default: uni.$u.props.loadingIcon.duration + }, + // mode=circle时的暗边颜色 + inactiveColor: { + type: String, + default: uni.$u.props.loadingIcon.inactiveColor + } + } +} diff --git a/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue b/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue new file mode 100644 index 0000000..2ede5c3 --- /dev/null +++ b/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue @@ -0,0 +1,343 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-loading-page/props.js b/uni_modules/uview-ui/components/u-loading-page/props.js new file mode 100644 index 0000000..e239b61 --- /dev/null +++ b/uni_modules/uview-ui/components/u-loading-page/props.js @@ -0,0 +1,49 @@ +export default { + props: { + // 提示内容 + loadingText: { + type: [String, Number], + default: uni.$u.props.loadingPage.loadingText + }, + // 文字上方用于替换loading动画的图片 + image: { + type: String, + default: uni.$u.props.loadingPage.image + }, + // 加载动画的模式,circle-圆形,spinner-花朵形,semicircle-半圆形 + loadingMode: { + type: String, + default: uni.$u.props.loadingPage.loadingMode + }, + // 是否加载中 + loading: { + type: Boolean, + default: uni.$u.props.loadingPage.loading + }, + // 背景色 + bgColor: { + type: String, + default: uni.$u.props.loadingPage.bgColor + }, + // 文字颜色 + color: { + type: String, + default: uni.$u.props.loadingPage.color + }, + // 文字大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.loadingPage.fontSize + }, + // 图标大小 + iconSize: { + type: [String, Number], + default: uni.$u.props.loadingPage.fontSize + }, + // 加载中图标的颜色,只能rgb或者十六进制颜色值 + loadingColor: { + type: String, + default: uni.$u.props.loadingPage.loadingColor + } + } +} diff --git a/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue b/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue new file mode 100644 index 0000000..03a78ad --- /dev/null +++ b/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-loadmore/props.js b/uni_modules/uview-ui/components/u-loadmore/props.js new file mode 100644 index 0000000..1e67d89 --- /dev/null +++ b/uni_modules/uview-ui/components/u-loadmore/props.js @@ -0,0 +1,94 @@ +export default { + props: { + // 组件状态,loadmore-加载前的状态,loading-加载中的状态,nomore-没有更多的状态 + status: { + type: String, + default: uni.$u.props.loadmore.status + }, + // 组件背景色 + bgColor: { + type: String, + default: uni.$u.props.loadmore.bgColor + }, + // 是否显示加载中的图标 + icon: { + type: Boolean, + default: uni.$u.props.loadmore.icon + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.loadmore.fontSize + }, + // 图标大小 + iconSize: { + type: [String, Number], + default: uni.$u.props.loadmore.iconSize + }, + // 字体颜色 + color: { + type: String, + default: uni.$u.props.loadmore.color + }, + // 加载中状态的图标,spinner-花朵状图标,circle-圆圈状,semicircle-半圆 + loadingIcon: { + type: String, + default: uni.$u.props.loadmore.loadingIcon + }, + // 加载前的提示语 + loadmoreText: { + type: String, + default: uni.$u.props.loadmore.loadmoreText + }, + // 加载中提示语 + loadingText: { + type: String, + default: uni.$u.props.loadmore.loadingText + }, + // 没有更多的提示语 + nomoreText: { + type: String, + default: uni.$u.props.loadmore.nomoreText + }, + // 在“没有更多”状态下,是否显示粗点 + isDot: { + type: Boolean, + default: uni.$u.props.loadmore.isDot + }, + // 加载中图标的颜色 + iconColor: { + type: String, + default: uni.$u.props.loadmore.iconColor + }, + // 上边距 + marginTop: { + type: [String, Number], + default: uni.$u.props.loadmore.marginTop + }, + // 下边距 + marginBottom: { + type: [String, Number], + default: uni.$u.props.loadmore.marginBottom + }, + // 高度,单位px + height: { + type: [String, Number], + default: uni.$u.props.loadmore.height + }, + // 是否显示左边分割线 + line: { + type: Boolean, + default: uni.$u.props.loadmore.line + }, + // 线条颜色 + lineColor: { + type: String, + default: uni.$u.props.loadmore.lineColor + }, + // 是否虚线,true-虚线,false-实线 + dashed: { + type: Boolean, + default: uni.$u.props.loadmore.dashed + } + } +} diff --git a/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue b/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue new file mode 100644 index 0000000..73c79fe --- /dev/null +++ b/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-modal/props.js b/uni_modules/uview-ui/components/u-modal/props.js new file mode 100644 index 0000000..f76672c --- /dev/null +++ b/uni_modules/uview-ui/components/u-modal/props.js @@ -0,0 +1,84 @@ +export default { + props: { + // 是否展示modal + show: { + type: Boolean, + default: uni.$u.props.modal.show + }, + // 标题 + title: { + type: [String], + default: uni.$u.props.modal.title + }, + // 弹窗内容 + content: { + type: String, + default: uni.$u.props.modal.content + }, + // 确认文案 + confirmText: { + type: String, + default: uni.$u.props.modal.confirmText + }, + // 取消文案 + cancelText: { + type: String, + default: uni.$u.props.modal.cancelText + }, + // 是否显示确认按钮 + showConfirmButton: { + type: Boolean, + default: uni.$u.props.modal.showConfirmButton + }, + // 是否显示取消按钮 + showCancelButton: { + type: Boolean, + default: uni.$u.props.modal.showCancelButton + }, + // 确认按钮颜色 + confirmColor: { + type: String, + default: uni.$u.props.modal.confirmColor + }, + // 取消文字颜色 + cancelColor: { + type: String, + default: uni.$u.props.modal.cancelColor + }, + // 对调确认和取消的位置 + buttonReverse: { + type: Boolean, + default: uni.$u.props.modal.buttonReverse + }, + // 是否开启缩放效果 + zoom: { + type: Boolean, + default: uni.$u.props.modal.zoom + }, + // 是否异步关闭,只对确定按钮有效 + asyncClose: { + type: Boolean, + default: uni.$u.props.modal.asyncClose + }, + // 是否允许点击遮罩关闭modal + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.modal.closeOnClickOverlay + }, + // 给一个负的margin-top,往上偏移,避免和键盘重合的情况 + negativeTop: { + type: [String, Number], + default: uni.$u.props.modal.negativeTop + }, + // modal宽度,不支持百分比,可以数值,px,rpx单位 + width: { + type: [String, Number], + default: uni.$u.props.modal.width + }, + // 确认按钮的样式,circle-圆形,square-方形,如设置,将不会显示取消按钮 + confirmButtonShape: { + type: String, + default: uni.$u.props.modal.confirmButtonShape + } + } +} diff --git a/uni_modules/uview-ui/components/u-modal/u-modal.vue b/uni_modules/uview-ui/components/u-modal/u-modal.vue new file mode 100644 index 0000000..2cbc737 --- /dev/null +++ b/uni_modules/uview-ui/components/u-modal/u-modal.vue @@ -0,0 +1,227 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-navbar/props.js b/uni_modules/uview-ui/components/u-navbar/props.js new file mode 100644 index 0000000..5398de2 --- /dev/null +++ b/uni_modules/uview-ui/components/u-navbar/props.js @@ -0,0 +1,84 @@ +export default { + props: { + // 是否开启顶部安全区适配 + safeAreaInsetTop: { + type: Boolean, + default: uni.$u.props.navbar.safeAreaInsetTop + }, + // 固定在顶部时,是否生成一个等高元素,以防止塌陷 + placeholder: { + type: Boolean, + default: uni.$u.props.navbar.placeholder + }, + // 是否固定在顶部 + fixed: { + type: Boolean, + default: uni.$u.props.navbar.fixed + }, + // 是否显示下边框 + border: { + type: Boolean, + default: uni.$u.props.navbar.border + }, + // 左边的图标 + leftIcon: { + type: String, + default: uni.$u.props.navbar.leftIcon + }, + // 左边的提示文字 + leftText: { + type: String, + default: uni.$u.props.navbar.leftText + }, + // 左右的提示文字 + rightText: { + type: String, + default: uni.$u.props.navbar.rightText + }, + // 右边的图标 + rightIcon: { + type: String, + default: uni.$u.props.navbar.rightIcon + }, + // 标题 + title: { + type: [String, Number], + default: uni.$u.props.navbar.title + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.navbar.bgColor + }, + // 标题的宽度 + titleWidth: { + type: [String, Number], + default: uni.$u.props.navbar.titleWidth + }, + // 导航栏高度 + height: { + type: [String, Number], + default: uni.$u.props.navbar.height + }, + // 左侧返回图标的大小 + leftIconSize: { + type: [String, Number], + default: uni.$u.props.navbar.leftIconSize + }, + // 左侧返回图标的颜色 + leftIconColor: { + type: String, + default: uni.$u.props.navbar.leftIconColor + }, + // 点击左侧区域(返回图标),是否自动返回上一页 + autoBack: { + type: Boolean, + default: uni.$u.props.navbar.autoBack + }, + // 标题的样式,对象或字符串 + titleStyle: { + type: [String, Object], + default: uni.$u.props.navbar.titleStyle + } + } +} diff --git a/uni_modules/uview-ui/components/u-navbar/u-navbar.vue b/uni_modules/uview-ui/components/u-navbar/u-navbar.vue new file mode 100644 index 0000000..2b206b7 --- /dev/null +++ b/uni_modules/uview-ui/components/u-navbar/u-navbar.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-no-network/props.js b/uni_modules/uview-ui/components/u-no-network/props.js new file mode 100644 index 0000000..9f3af62 --- /dev/null +++ b/uni_modules/uview-ui/components/u-no-network/props.js @@ -0,0 +1,19 @@ +export default { + props: { + // 页面文字提示 + tips: { + type: String, + default: uni.$u.props.noNetwork.tips + }, + // 一个z-index值,用于设置没有网络这个组件的层次,因为页面可能会有其他定位的元素层级过高,导致此组件被覆盖 + zIndex: { + type: [String, Number], + default: uni.$u.props.noNetwork.zIndex + }, + // image 没有网络的图片提示 + image: { + type: String, + default: uni.$u.props.noNetwork.image + } + } +} diff --git a/uni_modules/uview-ui/components/u-no-network/u-no-network.vue b/uni_modules/uview-ui/components/u-no-network/u-no-network.vue new file mode 100644 index 0000000..9710729 --- /dev/null +++ b/uni_modules/uview-ui/components/u-no-network/u-no-network.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-notice-bar/props.js b/uni_modules/uview-ui/components/u-notice-bar/props.js new file mode 100644 index 0000000..7040c29 --- /dev/null +++ b/uni_modules/uview-ui/components/u-notice-bar/props.js @@ -0,0 +1,70 @@ +export default { + props: { + // 显示的内容,数组 + text: { + type: [Array, String], + default: uni.$u.props.noticeBar.text + }, + // 通告滚动模式,row-横向滚动,column-竖向滚动 + direction: { + type: String, + default: uni.$u.props.noticeBar.direction + }, + // direction = row时,是否使用步进形式滚动 + step: { + type: Boolean, + default: uni.$u.props.noticeBar.step + }, + // 是否显示左侧的音量图标 + icon: { + type: String, + default: uni.$u.props.noticeBar.icon + }, + // 通告模式,link-显示右箭头,closable-显示右侧关闭图标 + mode: { + type: String, + default: uni.$u.props.noticeBar.mode + }, + // 文字颜色,各图标也会使用文字颜色 + color: { + type: String, + default: uni.$u.props.noticeBar.color + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.noticeBar.bgColor + }, + // 水平滚动时的滚动速度,即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度 + speed: { + type: [String, Number], + default: uni.$u.props.noticeBar.speed + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.noticeBar.fontSize + }, + // 滚动一个周期的时间长,单位ms + duration: { + type: [String, Number], + default: uni.$u.props.noticeBar.duration + }, + // 是否禁止用手滑动切换 + // 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 + disableTouch: { + type: Boolean, + default: uni.$u.props.noticeBar.disableTouch + }, + // 跳转的页面路径 + url: { + type: String, + default: uni.$u.props.noticeBar.url + }, + // 页面跳转的类型 + linkType: { + type: String, + default: uni.$u.props.noticeBar.linkType + } + } +} diff --git a/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue b/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue new file mode 100644 index 0000000..a06eb39 --- /dev/null +++ b/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue @@ -0,0 +1,101 @@ + + + + diff --git a/uni_modules/uview-ui/components/u-notify/props.js b/uni_modules/uview-ui/components/u-notify/props.js new file mode 100644 index 0000000..57a9d71 --- /dev/null +++ b/uni_modules/uview-ui/components/u-notify/props.js @@ -0,0 +1,49 @@ +export default { + props: { + // 到顶部的距离 + top: { + type: [String, Number], + default: uni.$u.props.notify.top + }, + // 是否展示组件 + // show: { + // type: Boolean, + // default: uni.$u.props.notify.show + // }, + // type主题,primary,success,warning,error + type: { + type: String, + default: uni.$u.props.notify.type + }, + // 字体颜色 + color: { + type: String, + default: uni.$u.props.notify.color + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.notify.bgColor + }, + // 展示的文字内容 + message: { + type: String, + default: uni.$u.props.notify.message + }, + // 展示时长,为0时不消失,单位ms + duration: { + type: [String, Number], + default: uni.$u.props.notify.duration + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.notify.fontSize + }, + // 是否留出顶部安全距离(状态栏高度) + safeAreaInsetTop: { + type: Boolean, + default: uni.$u.props.notify.safeAreaInsetTop + } + } +} diff --git a/uni_modules/uview-ui/components/u-notify/u-notify.vue b/uni_modules/uview-ui/components/u-notify/u-notify.vue new file mode 100644 index 0000000..30adb72 --- /dev/null +++ b/uni_modules/uview-ui/components/u-notify/u-notify.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-number-box/props.js b/uni_modules/uview-ui/components/u-number-box/props.js new file mode 100644 index 0000000..fb0fa94 --- /dev/null +++ b/uni_modules/uview-ui/components/u-number-box/props.js @@ -0,0 +1,109 @@ +export default { + props: { + // 步进器标识符,在change回调返回 + name: { + type: [String, Number], + default: uni.$u.props.numberBox.name + }, + // 用于双向绑定的值,初始化时设置设为默认min值(最小值) + value: { + type: [String, Number], + default: uni.$u.props.numberBox.value + }, + // 最小值 + min: { + type: [String, Number], + default: uni.$u.props.numberBox.min + }, + // 最大值 + max: { + type: [String, Number], + default: uni.$u.props.numberBox.max + }, + // 加减的步长,可为小数 + step: { + type: [String, Number], + default: uni.$u.props.numberBox.step + }, + // 是否只允许输入整数 + integer: { + type: Boolean, + default: uni.$u.props.numberBox.integer + }, + // 是否禁用,包括输入框,加减按钮 + disabled: { + type: Boolean, + default: uni.$u.props.numberBox.disabled + }, + // 是否禁用输入框 + disabledInput: { + type: Boolean, + default: uni.$u.props.numberBox.disabledInput + }, + // 是否开启异步变更,开启后需要手动控制输入值 + asyncChange: { + type: Boolean, + default: uni.$u.props.numberBox.asyncChange + }, + // 输入框宽度,单位为px + inputWidth: { + type: [String, Number], + default: uni.$u.props.numberBox.inputWidth + }, + // 是否显示减少按钮 + showMinus: { + type: Boolean, + default: uni.$u.props.numberBox.showMinus + }, + // 是否显示增加按钮 + showPlus: { + type: Boolean, + default: uni.$u.props.numberBox.showPlus + }, + // 显示的小数位数 + decimalLength: { + type: [String, Number, null], + default: uni.$u.props.numberBox.decimalLength + }, + // 是否开启长按加减手势 + longPress: { + type: Boolean, + default: uni.$u.props.numberBox.longPress + }, + // 输入框文字和加减按钮图标的颜色 + color: { + type: String, + default: uni.$u.props.numberBox.color + }, + // 按钮大小,宽高等于此值,单位px,输入框高度和此值保持一致 + buttonSize: { + type: [String, Number], + default: uni.$u.props.numberBox.buttonSize + }, + // 输入框和按钮的背景颜色 + bgColor: { + type: String, + default: uni.$u.props.numberBox.bgColor + }, + // 指定光标于键盘的距离,避免键盘遮挡输入框,单位px + cursorSpacing: { + type: [String, Number], + default: uni.$u.props.numberBox.cursorSpacing + }, + // 是否禁用增加按钮 + disablePlus: { + type: Boolean, + default: uni.$u.props.numberBox.disablePlus + }, + // 是否禁用减少按钮 + disableMinus: { + type: Boolean, + default: uni.$u.props.numberBox.disableMinus + }, + // 加减按钮图标的样式 + iconStyle: { + type: [Object, String], + default: uni.$u.props.numberBox.iconStyle + } + } +} diff --git a/uni_modules/uview-ui/components/u-number-box/u-number-box.vue b/uni_modules/uview-ui/components/u-number-box/u-number-box.vue new file mode 100644 index 0000000..69211c5 --- /dev/null +++ b/uni_modules/uview-ui/components/u-number-box/u-number-box.vue @@ -0,0 +1,416 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-number-keyboard/props.js b/uni_modules/uview-ui/components/u-number-keyboard/props.js new file mode 100644 index 0000000..5e3bf55 --- /dev/null +++ b/uni_modules/uview-ui/components/u-number-keyboard/props.js @@ -0,0 +1,19 @@ +export default { + props: { + // 键盘的类型,number-数字键盘,card-身份证键盘 + mode: { + type: String, + default: uni.$u.props.numberKeyboard.value + }, + // 是否显示键盘的"."符号 + dotDisabled: { + type: Boolean, + default: uni.$u.props.numberKeyboard.dotDisabled + }, + // 是否打乱键盘按键的顺序 + random: { + type: Boolean, + default: uni.$u.props.numberKeyboard.random + } + } +} diff --git a/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue b/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue new file mode 100644 index 0000000..4f505c6 --- /dev/null +++ b/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-overlay/props.js b/uni_modules/uview-ui/components/u-overlay/props.js new file mode 100644 index 0000000..e6974df --- /dev/null +++ b/uni_modules/uview-ui/components/u-overlay/props.js @@ -0,0 +1,24 @@ +export default { + props: { + // 是否显示遮罩 + show: { + type: Boolean, + default: uni.$u.props.overlay.show + }, + // 层级z-index + zIndex: { + type: [String, Number], + default: uni.$u.props.overlay.zIndex + }, + // 遮罩的过渡时间,单位为ms + duration: { + type: [String, Number], + default: uni.$u.props.overlay.duration + }, + // 不透明度值,当做rgba的第四个参数 + opacity: { + type: [String, Number], + default: uni.$u.props.overlay.opacity + } + } +} diff --git a/uni_modules/uview-ui/components/u-overlay/u-overlay.vue b/uni_modules/uview-ui/components/u-overlay/u-overlay.vue new file mode 100644 index 0000000..92de4e9 --- /dev/null +++ b/uni_modules/uview-ui/components/u-overlay/u-overlay.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/uni_modules/uview-ui/components/u-parse/node/node.vue b/uni_modules/uview-ui/components/u-parse/node/node.vue new file mode 100644 index 0000000..73e30fd --- /dev/null +++ b/uni_modules/uview-ui/components/u-parse/node/node.vue @@ -0,0 +1,499 @@ +