commit 2a49a6ce4f87c50034c4df2ba59c39fc5afbfec9
Author: whitechiina <1293616053@qq.com>
Date: Thu May 21 14:51:57 2026 +0800
first commit
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
new file mode 100644
index 0000000..dd4ad0b
--- /dev/null
+++ b/.hbuilderx/launch.json
@@ -0,0 +1,16 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version": "0.0",
+ "configurations": [{
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-weixin" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ }
+ ]
+}
diff --git a/.svn/entries b/.svn/entries
new file mode 100644
index 0000000..48082f7
--- /dev/null
+++ b/.svn/entries
@@ -0,0 +1 @@
+12
diff --git a/.svn/format b/.svn/format
new file mode 100644
index 0000000..48082f7
--- /dev/null
+++ b/.svn/format
@@ -0,0 +1 @@
+12
diff --git a/.svn/pristine/00/0012e00d64471668e96420f8dd3d8cef70c5b41c.svn-base b/.svn/pristine/00/0012e00d64471668e96420f8dd3d8cef70c5b41c.svn-base
new file mode 100644
index 0000000..f1195b1
--- /dev/null
+++ b/.svn/pristine/00/0012e00d64471668e96420f8dd3d8cef70c5b41c.svn-base
@@ -0,0 +1,90 @@
+{
+ "id": "uni-easyinput",
+ "displayName": "uni-easyinput 增强输入框",
+ "version": "1.0.2",
+ "description": "Easyinput 组件是对原生input组件的增强",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "input",
+ "uni-easyinput",
+ "输入框"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.svn/pristine/00/0095dcda4b2350edcb8550022202053a36618d03.svn-base b/.svn/pristine/00/0095dcda4b2350edcb8550022202053a36618d03.svn-base
new file mode 100644
index 0000000..eae7b5c
--- /dev/null
+++ b/.svn/pristine/00/0095dcda4b2350edcb8550022202053a36618d03.svn-base
@@ -0,0 +1,12 @@
+
+
+## Rate 评分
+> **组件名:uni-rate**
+> 代码块: `uRate`
+> 关联组件:`uni-icons`
+
+
+评分组件,多用于购买商品后,对商品进行评价等场景
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/.svn/pristine/00/00dd55855d976caaf4f67d46eb7c7d117ec25099.svn-base b/.svn/pristine/00/00dd55855d976caaf4f67d46eb7c7d117ec25099.svn-base
new file mode 100644
index 0000000..4d3f398
--- /dev/null
+++ b/.svn/pristine/00/00dd55855d976caaf4f67d46eb7c7d117ec25099.svn-base
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ {{ separator }}
+
+
+
+
diff --git a/.svn/pristine/01/0121f4c9e97f3ee56b0f8a8e3e49df47436da357.svn-base b/.svn/pristine/01/0121f4c9e97f3ee56b0f8a8e3e49df47436da357.svn-base
new file mode 100644
index 0000000..27b7db3
--- /dev/null
+++ b/.svn/pristine/01/0121f4c9e97f3ee56b0f8a8e3e49df47436da357.svn-base
@@ -0,0 +1,4914 @@
+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/.svn/pristine/01/0127e37367193d20be11b03bd392a7631a8ce74c.svn-base b/.svn/pristine/01/0127e37367193d20be11b03bd392a7631a8ce74c.svn-base
new file mode 100644
index 0000000..0c4fba4
Binary files /dev/null and b/.svn/pristine/01/0127e37367193d20be11b03bd392a7631a8ce74c.svn-base differ
diff --git a/.svn/pristine/02/02f22a47a4d959b8c2deec868acb743465ebe572.svn-base b/.svn/pristine/02/02f22a47a4d959b8c2deec868acb743465ebe572.svn-base
new file mode 100644
index 0000000..cfc1c4c
--- /dev/null
+++ b/.svn/pristine/02/02f22a47a4d959b8c2deec868acb743465ebe572.svn-base
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.svn/pristine/03/03b6ac2a2ea9f6252c06d7e10cd489fe665ff94e.svn-base b/.svn/pristine/03/03b6ac2a2ea9f6252c06d7e10cd489fe665ff94e.svn-base
new file mode 100644
index 0000000..1878088
--- /dev/null
+++ b/.svn/pristine/03/03b6ac2a2ea9f6252c06d7e10cd489fe665ff94e.svn-base
@@ -0,0 +1,87 @@
+{
+ "id": "uni-tag",
+ "displayName": "uni-tag 标签",
+ "version": "2.1.0",
+ "description": "Tag 组件,用于展示1个或多个文字标签,可点击切换选中、不选中的状态。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "",
+ "tag",
+ "标签"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.svn/pristine/04/040eeb6c3005187486201161f37fc2d8753bf903.svn-base b/.svn/pristine/04/040eeb6c3005187486201161f37fc2d8753bf903.svn-base
new file mode 100644
index 0000000..3672e2d
--- /dev/null
+++ b/.svn/pristine/04/040eeb6c3005187486201161f37fc2d8753bf903.svn-base
@@ -0,0 +1,55 @@
+import tools from '@/common/tools.js'
+
+let token
+//页面黑名单
+const blackList = [
+
+]
+//未登录黑名单
+const tokenList = [
+ 'mallDet/mallDet',
+ 'qushi/pushQuShi',
+ 'quDet'
+]
+//回调处理
+function isNext(back,login) {
+ console.log(back,login)
+ if (!back) {//如果是黑名单中的路径
+ tools.showtt('该功能暂未开放')
+ }
+
+ if (!login) {//如果是登录名单中的路径,并且没登陆
+ uni.showModal({
+ content: "请先授权登录再进行此操作",
+ title: "未登录",
+ success(res) {
+ if (res.confirm) {
+ tools.goNext('/pages/login/login')
+ }
+ }
+ })
+ }
+}
+//拦截器
+// e.url == pagesOne/order/orderlist
+uni.addInterceptor('navigateTo', {
+ invoke(e) {
+ console.log(e)
+ token = uni.getStorageSync('token')
+ //黑名单判断
+ let back = blackList.every(val => val !== e.url)
+ //登录名单判断
+ let login = tokenList.every(val => e.url.indexOf(val) == -1 || token)
+ //白名单
+ // let back = !blackList.every(val => val !== e.url)
+ //拦截回调
+ isNext(back,login)
+ return login && back
+ },
+ success(e) {
+ console.log(e,'拦截器成功回调')
+ },
+ fail(e) {
+ console.log(e,'拦截器失败回调')
+ }
+})
diff --git a/.svn/pristine/04/046dd73a6e6aa7a4478c3b6c63699ffce6466b30.svn-base b/.svn/pristine/04/046dd73a6e6aa7a4478c3b6c63699ffce6466b30.svn-base
new file mode 100644
index 0000000..a971234
--- /dev/null
+++ b/.svn/pristine/04/046dd73a6e6aa7a4478c3b6c63699ffce6466b30.svn-base
@@ -0,0 +1,144 @@
+
+
+
+ {{ list.key }}
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/06/0620041dce886a5914aabfa6e5d26206d17c63d7.svn-base b/.svn/pristine/06/0620041dce886a5914aabfa6e5d26206d17c63d7.svn-base
new file mode 100644
index 0000000..bdf175d
--- /dev/null
+++ b/.svn/pristine/06/0620041dce886a5914aabfa6e5d26206d17c63d7.svn-base
@@ -0,0 +1,10 @@
+## Badge 数字角标
+> **组件名:uni-badge**
+> 代码块: `uBadge`
+
+数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景,
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-badge)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git a/.svn/pristine/06/06b87f6e153a2f508846bfde6a1ca34507edf91e.svn-base b/.svn/pristine/06/06b87f6e153a2f508846bfde6a1ca34507edf91e.svn-base
new file mode 100644
index 0000000..043078e
Binary files /dev/null and b/.svn/pristine/06/06b87f6e153a2f508846bfde6a1ca34507edf91e.svn-base differ
diff --git a/.svn/pristine/06/06d23a8f245070f7dccd9c668743ee419c57f0bb.svn-base b/.svn/pristine/06/06d23a8f245070f7dccd9c668743ee419c57f0bb.svn-base
new file mode 100644
index 0000000..284233a
--- /dev/null
+++ b/.svn/pristine/06/06d23a8f245070f7dccd9c668743ee419c57f0bb.svn-base
@@ -0,0 +1,269 @@
+
+
+
+
+
+ {{item.title}}
+ {{item.desc}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/07/070fc4b243cc7189a5b2bc642d99d9de07f3779c.svn-base b/.svn/pristine/07/070fc4b243cc7189a5b2bc642d99d9de07f3779c.svn-base
new file mode 100644
index 0000000..90097ee
Binary files /dev/null and b/.svn/pristine/07/070fc4b243cc7189a5b2bc642d99d9de07f3779c.svn-base differ
diff --git a/.svn/pristine/08/08120e3d6f075d133d84e361e74116c45607ef6b.svn-base b/.svn/pristine/08/08120e3d6f075d133d84e361e74116c45607ef6b.svn-base
new file mode 100644
index 0000000..c18587c
--- /dev/null
+++ b/.svn/pristine/08/08120e3d6f075d133d84e361e74116c45607ef6b.svn-base
@@ -0,0 +1,6 @@
+{
+ "uni-countdown.day": "day",
+ "uni-countdown.h": "h",
+ "uni-countdown.m": "m",
+ "uni-countdown.s": "s"
+}
diff --git a/.svn/pristine/08/0813144a82c867572d6d1ca79c4d250a8d8a0f79.svn-base b/.svn/pristine/08/0813144a82c867572d6d1ca79c4d250a8d8a0f79.svn-base
new file mode 100644
index 0000000..4f3ca0e
--- /dev/null
+++ b/.svn/pristine/08/0813144a82c867572d6d1ca79c4d250a8d8a0f79.svn-base
@@ -0,0 +1,103 @@
+
+
+## Calendar 日历
+> **组件名:uni-calendar**
+> 代码块: `uCalendar`
+
+
+日历组件
+
+> **注意事项**
+> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。
+> - 本组件农历转换使用的js是 [@1900-2100区间内的公历、农历互转](https://github.com/jjonline/calendar.js)
+> - 仅支持自定义组件模式
+> - `date`属性传入的应该是一个 String ,如: 2019-06-27 ,而不是 new Date()
+> - 通过 `insert` 属性来确定当前的事件是 @change 还是 @confirm 。理应合并为一个事件,但是为了区分模式,现使用两个事件,这里需要注意
+> - 弹窗模式下无法阻止后面的元素滚动,如有需要阻止,请在弹窗弹出后,手动设置滚动元素为不可滚动
+
+
+### 安装方式
+
+本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
+
+如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
+
+### 基本用法
+
+在 ``template`` 中使用组件
+
+```html
+
+
+
+```
+
+### 通过方法打开日历
+
+需要设置 `insert` 为 `false`
+
+```html
+
+
+
+
+```
+
+```javascript
+
+export default {
+ data() {
+ return {};
+ },
+ methods: {
+ open(){
+ this.$refs.calendar.open();
+ },
+ confirm(e) {
+ console.log(e);
+ }
+ }
+};
+
+```
+
+
+## API
+
+### Calendar Props
+
+| 属性名 | 类型 | 默认值| 说明 |
+| | |
+| date | String |- | 自定义当前时间,默认为今天 |
+| lunar | Boolean | false | 显示农历 |
+| startDate | String |- | 日期选择范围-开始日期 |
+| endDate | String |- | 日期选择范围-结束日期 |
+| range | Boolean | false | 范围选择 |
+| insert | Boolean | false | 插入模式,可选值,ture:插入模式;false:弹窗模式;默认为插入模式 |
+|clearDate |Boolean |true |弹窗模式是否清空上次选择内容 |
+| selected | Array |- | 打点,期待格式[{date: '2019-06-27', info: '签到', data: { custom: '自定义信息', name: '自定义消息头',xxx:xxx... }}] |
+|showMonth | Boolean | true | 是否显示月份为背景 |
+
+### Calendar Events
+
+| 事件名 | 说明 |返回值|
+| | | |
+| open | 弹出日历组件,`insert :false` 时生效|- |
+
+
+
+
+
+## 组件示例
+
+点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar](https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar)
\ No newline at end of file
diff --git a/.svn/pristine/08/081887d682a572b8d465d3d55a23dff01bbed5e1.svn-base b/.svn/pristine/08/081887d682a572b8d465d3d55a23dff01bbed5e1.svn-base
new file mode 100644
index 0000000..3a14ca0
--- /dev/null
+++ b/.svn/pristine/08/081887d682a572b8d465d3d55a23dff01bbed5e1.svn-base
@@ -0,0 +1,5 @@
+{
+ "uni-load-more.contentdown": "上拉显示更多",
+ "uni-load-more.contentrefresh": "正在加载...",
+ "uni-load-more.contentnomore": "没有更多数据了"
+}
diff --git a/.svn/pristine/08/08958bc73e74623fb5099b7ce56c32cb681dd039.svn-base b/.svn/pristine/08/08958bc73e74623fb5099b7ce56c32cb681dd039.svn-base
new file mode 100644
index 0000000..c12fd54
--- /dev/null
+++ b/.svn/pristine/08/08958bc73e74623fb5099b7ce56c32cb681dd039.svn-base
@@ -0,0 +1,563 @@
+export default {
+ props: {
+ localdata: {
+ type: [Array, Object],
+ default () {
+ return []
+ }
+ },
+ spaceInfo: {
+ type: Object,
+ default () {
+ return {}
+ }
+ },
+ collection: {
+ type: String,
+ default: ''
+ },
+ action: {
+ type: String,
+ default: ''
+ },
+ field: {
+ type: String,
+ default: ''
+ },
+ orderby: {
+ type: String,
+ default: ''
+ },
+ where: {
+ type: [String, Object],
+ default: ''
+ },
+ pageData: {
+ type: String,
+ default: 'add'
+ },
+ pageCurrent: {
+ type: Number,
+ default: 1
+ },
+ pageSize: {
+ type: Number,
+ default: 20
+ },
+ getcount: {
+ type: [Boolean, String],
+ default: false
+ },
+ getone: {
+ type: [Boolean, String],
+ default: false
+ },
+ gettree: {
+ type: [Boolean, String],
+ default: false
+ },
+ manual: {
+ type: Boolean,
+ default: false
+ },
+ value: {
+ type: [Array, String, Number],
+ default () {
+ return []
+ }
+ },
+ modelValue: {
+ type: [Array, String, Number],
+ default () {
+ return []
+ }
+ },
+ preload: {
+ type: Boolean,
+ default: false
+ },
+ stepSearh: {
+ type: Boolean,
+ default: true
+ },
+ selfField: {
+ type: String,
+ default: ''
+ },
+ parentField: {
+ type: String,
+ default: ''
+ },
+ multiple: {
+ type: Boolean,
+ default: false
+ },
+ map: {
+ type: Object,
+ default() {
+ return {
+ text: "text",
+ value: "value"
+ }
+ }
+ }
+ },
+ data() {
+ return {
+ loading: false,
+ errorMessage: '',
+ loadMore: {
+ contentdown: '',
+ contentrefresh: '',
+ contentnomore: ''
+ },
+ dataList: [],
+ selected: [],
+ selectedIndex: 0,
+ page: {
+ current: this.pageCurrent,
+ size: this.pageSize,
+ count: 0
+ }
+ }
+ },
+ computed: {
+ isLocaldata() {
+ return !this.collection.length
+ },
+ postField() {
+ let fields = [this.field];
+ if (this.parentField) {
+ fields.push(`${this.parentField} as parent_value`);
+ }
+ return fields.join(',');
+ },
+ dataValue() {
+ let isModelValue = Array.isArray(this.modelValue) ? (this.modelValue.length > 0) : (this.modelValue !== null || this.modelValue !== undefined)
+ return isModelValue ? this.modelValue : this.value
+ },
+ hasValue() {
+ if (typeof this.dataValue === 'number') {
+ return true
+ }
+ return (this.dataValue != null) && (this.dataValue.length > 0)
+ }
+ },
+ created() {
+ this.$watch(() => {
+ var al = [];
+ ['pageCurrent',
+ 'pageSize',
+ 'spaceInfo',
+ 'value',
+ 'modelValue',
+ 'localdata',
+ 'collection',
+ 'action',
+ 'field',
+ 'orderby',
+ 'where',
+ 'getont',
+ 'getcount',
+ 'gettree'
+ ].forEach(key => {
+ al.push(this[key])
+ });
+ return al
+ }, (newValue, oldValue) => {
+ let needReset = false
+ for (let i = 2; i < newValue.length; i++) {
+ if (newValue[i] != oldValue[i]) {
+ needReset = true
+ break
+ }
+ }
+ if (newValue[0] != oldValue[0]) {
+ this.page.current = this.pageCurrent
+ }
+ this.page.size = this.pageSize
+
+ this.onPropsChange()
+ })
+ this._treeData = []
+ },
+ methods: {
+ onPropsChange() {
+ this._treeData = []
+ },
+ getCommand(options = {}) {
+ /* eslint-disable no-undef */
+ let db = uniCloud.database(this.spaceInfo)
+
+ const action = options.action || this.action
+ if (action) {
+ db = db.action(action)
+ }
+
+ const collection = options.collection || this.collection
+ db = db.collection(collection)
+
+ const where = options.where || this.where
+ if (!(!where || !Object.keys(where).length)) {
+ db = db.where(where)
+ }
+
+ const field = options.field || this.field
+ if (field) {
+ db = db.field(field)
+ }
+
+ const orderby = options.orderby || this.orderby
+ if (orderby) {
+ db = db.orderBy(orderby)
+ }
+
+ const current = options.pageCurrent !== undefined ? options.pageCurrent : this.page.current
+ const size = options.pageSize !== undefined ? options.pageSize : this.page.size
+ const getCount = options.getcount !== undefined ? options.getcount : this.getcount
+ const getTree = options.gettree !== undefined ? options.gettree : this.gettree
+
+ const getOptions = {
+ getCount,
+ getTree
+ }
+ if (options.getTreePath) {
+ getOptions.getTreePath = options.getTreePath
+ }
+
+ db = db.skip(size * (current - 1)).limit(size).get(getOptions)
+
+ return db
+ },
+ getNodeData(callback) {
+ if (this.loading) {
+ return
+ }
+ this.loading = true
+ this.getCommand({
+ field: this.postField,
+ where: this._pathWhere()
+ }).then((res) => {
+ this.loading = false
+ this.selected = res.result.data
+ callback && callback()
+ }).catch((err) => {
+ this.loading = false
+ this.errorMessage = err
+ })
+ },
+ getTreePath(callback) {
+ if (this.loading) {
+ return
+ }
+ this.loading = true
+
+ this.getCommand({
+ field: this.postField,
+ getTreePath: {
+ startWith: `${this.selfField}=='${this.dataValue}'`
+ }
+ }).then((res) => {
+ this.loading = false
+ let treePath = []
+ this._extractTreePath(res.result.data, treePath)
+ this.selected = treePath
+ callback && callback()
+ }).catch((err) => {
+ this.loading = false
+ this.errorMessage = err
+ })
+ },
+ loadData() {
+ if (this.isLocaldata) {
+ this._processLocalData()
+ return
+ }
+
+ if (this.dataValue != null) {
+ this._loadNodeData((data) => {
+ this._treeData = data
+ this._updateBindData()
+ this._updateSelected()
+ })
+ return
+ }
+
+ if (this.stepSearh) {
+ this._loadNodeData((data) => {
+ this._treeData = data
+ this._updateBindData()
+ })
+ } else {
+ this._loadAllData((data) => {
+ this._treeData = []
+ this._extractTree(data, this._treeData, null)
+ this._updateBindData()
+ })
+ }
+ },
+ _loadAllData(callback) {
+ if (this.loading) {
+ return
+ }
+ this.loading = true
+
+ this.getCommand({
+ field: this.postField,
+ gettree: true,
+ startwith: `${this.selfField}=='${this.dataValue}'`
+ }).then((res) => {
+ this.loading = false
+ callback(res.result.data)
+ this.onDataChange()
+ }).catch((err) => {
+ this.loading = false
+ this.errorMessage = err
+ })
+ },
+ _loadNodeData(callback, pw) {
+ if (this.loading) {
+ return
+ }
+ this.loading = true
+
+ this.getCommand({
+ field: this.postField,
+ where: pw || this._postWhere(),
+ pageSize: 500
+ }).then((res) => {
+ this.loading = false
+ callback(res.result.data)
+ this.onDataChange()
+ }).catch((err) => {
+ this.loading = false
+ this.errorMessage = err
+ })
+ },
+ _pathWhere() {
+ let result = []
+ let where_field = this._getParentNameByField();
+ if (where_field) {
+ result.push(`${where_field} == '${this.dataValue}'`)
+ }
+
+ if (this.where) {
+ return `(${this.where}) && (${result.join(' || ')})`
+ }
+
+ return result.join(' || ')
+ },
+ _postWhere() {
+ let result = []
+ let selected = this.selected
+ let parentField = this.parentField
+ if (parentField) {
+ result.push(`${parentField} == null || ${parentField} == ""`)
+ }
+ if (selected.length) {
+ for (var i = 0; i < selected.length - 1; i++) {
+ result.push(`${parentField} == '${selected[i].value}'`)
+ }
+ }
+
+ let where = []
+ if (this.where) {
+ where.push(`(${this.where})`)
+ }
+ if (result.length) {
+ where.push(`(${result.join(' || ')})`)
+ }
+
+ return where.join(' && ')
+ },
+ _nodeWhere() {
+ let result = []
+ let selected = this.selected
+ if (selected.length) {
+ result.push(`${this.parentField} == '${selected[selected.length - 1].value}'`)
+ }
+
+ if (this.where) {
+ return `(${this.where}) && (${result.join(' || ')})`
+ }
+
+ return result.join(' || ')
+ },
+ _getParentNameByField() {
+ const fields = this.field.split(',');
+ let where_field = null;
+ for (let i = 0; i < fields.length; i++) {
+ const items = fields[i].split('as');
+ if (items.length < 2) {
+ continue;
+ }
+ if (items[1].trim() === 'value') {
+ where_field = items[0].trim();
+ break;
+ }
+ }
+ return where_field
+ },
+ _isTreeView() {
+ return (this.parentField && this.selfField)
+ },
+ _updateSelected() {
+ var dl = this.dataList
+ var sl = this.selected
+ let textField = this.map.text
+ let valueField = this.map.value
+ for (var i = 0; i < sl.length; i++) {
+ var value = sl[i].value
+ var dl2 = dl[i]
+ for (var j = 0; j < dl2.length; j++) {
+ var item2 = dl2[j]
+ if (item2[valueField] === value) {
+ sl[i].text = item2[textField]
+ break
+ }
+ }
+ }
+ },
+ _updateBindData(node) {
+ const {
+ dataList,
+ hasNodes
+ } = this._filterData(this._treeData, this.selected)
+
+ let isleaf = this._stepSearh === false && !hasNodes
+
+ if (node) {
+ node.isleaf = isleaf
+ }
+
+ this.dataList = dataList
+ this.selectedIndex = dataList.length - 1
+
+ if (!isleaf && this.selected.length < dataList.length) {
+ this.selected.push({
+ value: null,
+ text: "请选择"
+ })
+ }
+
+ return {
+ isleaf,
+ hasNodes
+ }
+ },
+ _filterData(data, paths) {
+ let dataList = []
+ let hasNodes = true
+
+ dataList.push(data.filter((item) => {
+ return (item.parent_value === null || item.parent_value === undefined || item.parent_value === '')
+ }))
+ for (let i = 0; i < paths.length; i++) {
+ var value = paths[i].value
+ var nodes = data.filter((item) => {
+ return item.parent_value === value
+ })
+
+ if (nodes.length) {
+ dataList.push(nodes)
+ } else {
+ hasNodes = false
+ }
+ }
+
+ return {
+ dataList,
+ hasNodes
+ }
+ },
+ _extractTree(nodes, result, parent_value) {
+ let list = result || []
+ let valueField = this.map.value
+ for (let i = 0; i < nodes.length; i++) {
+ let node = nodes[i]
+
+ let child = {}
+ for (let key in node) {
+ if (key !== 'children') {
+ child[key] = node[key]
+ }
+ }
+ if (parent_value !== null && parent_value !== undefined && parent_value !== '') {
+ child.parent_value = parent_value
+ }
+ result.push(child)
+
+ let children = node.children
+ if (children) {
+ this._extractTree(children, result, node[valueField])
+ }
+ }
+ },
+ _extractTreePath(nodes, result) {
+ let list = result || []
+ for (let i = 0; i < nodes.length; i++) {
+ let node = nodes[i]
+
+ let child = {}
+ for (let key in node) {
+ if (key !== 'children') {
+ child[key] = node[key]
+ }
+ }
+ result.push(child)
+
+ let children = node.children
+ if (children) {
+ this._extractTreePath(children, result)
+ }
+ }
+ },
+ _findNodePath(key, nodes, path = []) {
+ let textField = this.map.text
+ let valueField = this.map.value
+ for (let i = 0; i < nodes.length; i++) {
+ let node = nodes[i]
+ let children = node.children
+ let text = node[textField]
+ let value = node[valueField]
+
+ path.push({
+ value,
+ text
+ })
+
+ if (value === key) {
+ return path
+ }
+
+ if (children) {
+ const p = this._findNodePath(key, children, path)
+ if (p.length) {
+ return p
+ }
+ }
+
+ path.pop()
+ }
+ return []
+ },
+ _processLocalData() {
+ this._treeData = []
+ this._extractTree(this.localdata, this._treeData)
+
+ var inputValue = this.dataValue
+ if (inputValue === undefined) {
+ return
+ }
+
+ if (Array.isArray(inputValue)) {
+ inputValue = inputValue[inputValue.length - 1]
+ if (typeof inputValue === 'object' && inputValue[this.map.value]) {
+ inputValue = inputValue[this.map.value]
+ }
+ }
+
+ this.selected = this._findNodePath(inputValue, this.localdata)
+ }
+ }
+}
diff --git a/.svn/pristine/08/08bd4114a37cf003f5baa1dab7bb52c59c8d8b9f.svn-base b/.svn/pristine/08/08bd4114a37cf003f5baa1dab7bb52c59c8d8b9f.svn-base
new file mode 100644
index 0000000..6cda224
--- /dev/null
+++ b/.svn/pristine/08/08bd4114a37cf003f5baa1dab7bb52c59c8d8b9f.svn-base
@@ -0,0 +1,22 @@
+## DataPicker 级联选择
+> **组件名:uni-data-picker**
+> 代码块: `uDataPicker`
+> 关联组件:`uni-data-pickerview`、`uni-load-more`。
+
+
+`` 是一个选择类[datacom组件](https://uniapp.dcloud.net.cn/component/datacom)。
+
+支持单列、和多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。
+
+候选数据支持一次性加载完毕,也支持懒加载,比如示例图中,选择了“北京”后,动态加载北京的区县数据。
+
+`` 组件尤其适用于地址选择、分类选择等选择类。
+
+`` 支持本地数据、云端静态数据(json),uniCloud云数据库数据。
+
+`` 可以通过JQL直连uniCloud云数据库,配套[DB Schema](https://uniapp.dcloud.net.cn/uniCloud/schema),可在schema2code中自动生成前端页面,还支持服务器端校验。
+
+在uniCloud数据表中新建表“uni-id-address”和“opendb-city-china”,这2个表的schema自带foreignKey关联。在“uni-id-address”表的表结构页面使用schema2code生成前端页面,会自动生成地址管理的维护页面,自动从“opendb-city-china”表包含的中国所有省市区信息里选择地址。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-picker)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/.svn/pristine/09/09c937aef50e336f24afc1f33c7c11eeefd82e98.svn-base b/.svn/pristine/09/09c937aef50e336f24afc1f33c7c11eeefd82e98.svn-base
new file mode 100644
index 0000000..9afd04b
--- /dev/null
+++ b/.svn/pristine/09/09c937aef50e336f24afc1f33c7c11eeefd82e98.svn-base
@@ -0,0 +1,9 @@
+{
+ "filter-dropdown.reset": "Reiniciar",
+ "filter-dropdown.search": "Búsqueda",
+ "filter-dropdown.submit": "Entregar",
+ "filter-dropdown.filter": "Filtrar",
+ "filter-dropdown.gt": "Mayor o igual a",
+ "filter-dropdown.lt": "Menos que o igual a",
+ "filter-dropdown.date": "Fecha"
+}
diff --git a/.svn/pristine/0a/0a5e6b55f1110acce48360417d76ff903ef1a07a.svn-base b/.svn/pristine/0a/0a5e6b55f1110acce48360417d76ff903ef1a07a.svn-base
new file mode 100644
index 0000000..ad1b4bf
--- /dev/null
+++ b/.svn/pristine/0a/0a5e6b55f1110acce48360417d76ff903ef1a07a.svn-base
@@ -0,0 +1,14 @@
+
+
+## Title 章节标题
+> **组件名:uni-title**
+> 代码块: `uTitle`
+
+
+章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-title)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
+
diff --git a/.svn/pristine/0a/0a8dd7b932e8596e5e8212cda5fb4b1e6165e9ae.svn-base b/.svn/pristine/0a/0a8dd7b932e8596e5e8212cda5fb4b1e6165e9ae.svn-base
new file mode 100644
index 0000000..3093b95
Binary files /dev/null and b/.svn/pristine/0a/0a8dd7b932e8596e5e8212cda5fb4b1e6165e9ae.svn-base differ
diff --git a/.svn/pristine/0a/0add93dea847502a563fa2af040c599600e9a760.svn-base b/.svn/pristine/0a/0add93dea847502a563fa2af040c599600e9a760.svn-base
new file mode 100644
index 0000000..28d665d
Binary files /dev/null and b/.svn/pristine/0a/0add93dea847502a563fa2af040c599600e9a760.svn-base differ
diff --git a/.svn/pristine/0a/0af0b555f036414932b457e8f8adaa9e8f732bdc.svn-base b/.svn/pristine/0a/0af0b555f036414932b457e8f8adaa9e8f732bdc.svn-base
new file mode 100644
index 0000000..d68fd78
--- /dev/null
+++ b/.svn/pristine/0a/0af0b555f036414932b457e8f8adaa9e8f732bdc.svn-base
@@ -0,0 +1,171 @@
+
+
+ {{title}}
+
+
+
+
+
+
diff --git a/.svn/pristine/0b/0b927ce7f8c93696a7275daa527338018f3a0461.svn-base b/.svn/pristine/0b/0b927ce7f8c93696a7275daa527338018f3a0461.svn-base
new file mode 100644
index 0000000..2469dd0
--- /dev/null
+++ b/.svn/pristine/0b/0b927ce7f8c93696a7275daa527338018f3a0461.svn-base
@@ -0,0 +1,12 @@
+import en from './en.json'
+import es from './es.json'
+import fr from './fr.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ es,
+ fr,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git a/.svn/pristine/0b/0b9fbe0584931c0c35521ef0f8e7bc4b4e6e9f85.svn-base b/.svn/pristine/0b/0b9fbe0584931c0c35521ef0f8e7bc4b4e6e9f85.svn-base
new file mode 100644
index 0000000..bc758eb
--- /dev/null
+++ b/.svn/pristine/0b/0b9fbe0584931c0c35521ef0f8e7bc4b4e6e9f85.svn-base
@@ -0,0 +1,12 @@
+
+
+## Collapse 折叠面板
+> **组件名:uni-collapse**
+> 代码块: `uCollapse`
+> 关联组件:`uni-collapse-item`、`uni-icons`。
+
+
+折叠面板用来折叠/显示过长的内容或者是列表。通常是在多内容分类项使用,折叠不重要的内容,显示重要内容。点击可以展开折叠部分。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-collapse)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/.svn/pristine/0c/0cba3d49f4cea3549f20aa813d7d233025eff107.svn-base b/.svn/pristine/0c/0cba3d49f4cea3549f20aa813d7d233025eff107.svn-base
new file mode 100644
index 0000000..544ecc1
--- /dev/null
+++ b/.svn/pristine/0c/0cba3d49f4cea3549f20aa813d7d233025eff107.svn-base
@@ -0,0 +1,29 @@
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-badge](https://uniapp.dcloud.io/component/uniui/uni-badge)
+## 1.1.7(2021-11-08)
+- 优化 升级ui
+- 修改 size 属性默认值调整为 small
+- 修改 type 属性,默认值调整为 error,info 替换 default
+## 1.1.6(2021-09-22)
+- 修复 在字节小程序上样式不生效的 bug
+## 1.1.5(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.4(2021-07-29)
+- 修复 去掉 nvue 不支持css 的 align-self 属性,nvue 下不暂支持 absolute 属性
+## 1.1.3(2021-06-24)
+- 优化 示例项目
+## 1.1.1(2021-05-12)
+- 新增 组件示例地址
+## 1.1.0(2021-05-12)
+- 新增 uni-badge 的 absolute 属性,支持定位
+- 新增 uni-badge 的 offset 属性,支持定位偏移
+- 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点
+- 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+
+- 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式
+## 1.0.7(2021-05-07)
+- 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug
+- 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug
+- 新增 uni-badge 属性 custom-style, 支持自定义样式
+## 1.0.6(2021-02-04)
+- 调整为uni_modules目录规范
diff --git a/.svn/pristine/0d/0d04ecab3c9e2e722c8b8885ce834c230b11617e.svn-base b/.svn/pristine/0d/0d04ecab3c9e2e722c8b8885ce834c230b11617e.svn-base
new file mode 100644
index 0000000..6143a05
--- /dev/null
+++ b/.svn/pristine/0d/0d04ecab3c9e2e722c8b8885ce834c230b11617e.svn-base
@@ -0,0 +1,475 @@
+
+
+
+
+
+
+
+ {{ item.text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/10/10578dc3c26d696c2d52ab62623e984d737e8e52.svn-base b/.svn/pristine/10/10578dc3c26d696c2d52ab62623e984d737e8e52.svn-base
new file mode 100644
index 0000000..1744a5f
--- /dev/null
+++ b/.svn/pristine/10/10578dc3c26d696c2d52ab62623e984d737e8e52.svn-base
@@ -0,0 +1 @@
+@import './styles/index.scss';
diff --git a/.svn/pristine/10/10ec95b7980a27b233086659590c3447f192da24.svn-base b/.svn/pristine/10/10ec95b7980a27b233086659590c3447f192da24.svn-base
new file mode 100644
index 0000000..840a9e6
--- /dev/null
+++ b/.svn/pristine/10/10ec95b7980a27b233086659590c3447f192da24.svn-base
@@ -0,0 +1,61 @@
+## 1.0.1(2021-11-23)
+- 修复 参数为对象的情况下,url在某些情况显示错误的bug
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-file-picker](https://uniapp.dcloud.io/component/uniui/uni-file-picker)
+## 0.2.16(2021-11-08)
+- 修复 传入空对象 ,显示错误的Bug
+## 0.2.15(2021-08-30)
+- 修复 return-type="object" 时且存在v-model时,无法删除文件的Bug
+## 0.2.14(2021-08-23)
+- 新增 参数中返回 fileID 字段
+## 0.2.13(2021-08-23)
+- 修复 腾讯云传入fileID 不能回显的bug
+- 修复 选择图片后,不能放大的问题
+## 0.2.12(2021-08-17)
+- 修复 由于 0.2.11 版本引起的不能回显图片的Bug
+## 0.2.11(2021-08-16)
+- 新增 clearFiles(index) 方法,可以手动删除指定文件
+- 修复 v-model 值设为 null 报错的Bug
+## 0.2.10(2021-08-13)
+- 修复 return-type="object" 时,无法删除文件的Bug
+## 0.2.9(2021-08-03)
+- 修复 auto-upload 属性失效的Bug
+## 0.2.8(2021-07-31)
+- 修复 fileExtname属性不指定值报错的Bug
+## 0.2.7(2021-07-31)
+- 修复 在某种场景下图片不回显的Bug
+## 0.2.6(2021-07-30)
+- 修复 return-type为object下,返回值不正确的Bug
+## 0.2.5(2021-07-30)
+- 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题
+## 0.2.3(2021-07-28)
+- 优化 调整示例代码
+## 0.2.2(2021-07-27)
+- 修复 vue3 下赋值错误的Bug
+- 优化 h5平台下上传文件导致页面卡死的问题
+## 0.2.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 0.1.1(2021-07-02)
+- 修复 sourceType 缺少默认值导致 ios 无法选择文件
+## 0.1.0(2021-06-30)
+- 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改
+## 0.0.11(2021-06-30)
+- 修复 由 0.0.10 版本引发的 returnType 属性失效的问题
+## 0.0.10(2021-06-29)
+- 优化 文件上传后进度条消失时机
+## 0.0.9(2021-06-29)
+- 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug
+## 0.0.8(2021-06-15)
+- 修复 删除文件时无法触发 v-model 的Bug
+## 0.0.7(2021-05-12)
+- 新增 组件示例地址
+## 0.0.6(2021-04-09)
+- 修复 选择的文件非 file-extname 字段指定的扩展名报错的Bug
+## 0.0.5(2021-04-09)
+- 优化 更新组件示例
+## 0.0.4(2021-04-09)
+- 优化 file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔
+## 0.0.3(2021-02-05)
+- 调整为uni_modules目录规范
+- 修复 微信小程序不指定 fileExtname 属性选择失败的Bug
diff --git a/.svn/pristine/11/11749df2c0b98a41dbb51350aeae941d5f1f7de9.svn-base b/.svn/pristine/11/11749df2c0b98a41dbb51350aeae941d5f1f7de9.svn-base
new file mode 100644
index 0000000..39c9137
--- /dev/null
+++ b/.svn/pristine/11/11749df2c0b98a41dbb51350aeae941d5f1f7de9.svn-base
@@ -0,0 +1,4 @@
+{
+ "uni-pagination.prevText": "上一頁",
+ "uni-pagination.nextText": "下一頁"
+}
diff --git a/.svn/pristine/11/11d48d069b1b1a77842d626e230898a6ede7472b.svn-base b/.svn/pristine/11/11d48d069b1b1a77842d626e230898a6ede7472b.svn-base
new file mode 100644
index 0000000..d8f420b
--- /dev/null
+++ b/.svn/pristine/11/11d48d069b1b1a77842d626e230898a6ede7472b.svn-base
@@ -0,0 +1,41 @@
+## 1.0.1(2022-02-07)
+- 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-checkbox](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox)
+## 0.2.5(2021-08-23)
+- 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题
+## 0.2.4(2021-08-17)
+- 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题
+## 0.2.3(2021-08-11)
+- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题
+## 0.2.2(2021-07-30)
+- 优化 在uni-forms组件,与label不对齐的问题
+## 0.2.1(2021-07-27)
+- 修复 单选默认值为0不能选中的Bug
+## 0.2.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 0.1.11(2021-07-06)
+- 优化 删除无用日志
+## 0.1.10(2021-07-05)
+- 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题
+## 0.1.9(2021-07-05)
+- 修复 nvue 黑框样式问题
+## 0.1.8(2021-06-28)
+- 修复 selectedTextColor 属性不生效的Bug
+## 0.1.7(2021-06-02)
+- 新增 map 属性,可以方便映射text/value属性
+## 0.1.6(2021-05-26)
+- 修复 不关联服务空间的情况下组件报错的Bug
+## 0.1.5(2021-05-12)
+- 新增 组件示例地址
+## 0.1.4(2021-04-09)
+- 修复 nvue 下无法选中的问题
+## 0.1.3(2021-03-22)
+- 新增 disabled属性
+## 0.1.2(2021-02-24)
+- 优化 默认颜色显示
+## 0.1.1(2021-02-24)
+- 新增 支持nvue
+## 0.1.0(2021-02-18)
+- “暂无数据”显示居中
diff --git a/.svn/pristine/12/12951ab86f63fa480dcf5a1daa4a1f6a77194a8d.svn-base b/.svn/pristine/12/12951ab86f63fa480dcf5a1daa4a1f6a77194a8d.svn-base
new file mode 100644
index 0000000..a93f735
--- /dev/null
+++ b/.svn/pristine/12/12951ab86f63fa480dcf5a1daa4a1f6a77194a8d.svn-base
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
diff --git a/.svn/pristine/12/12ee42179bada23ea55e008d403d2eb9e8a5b052.svn-base b/.svn/pristine/12/12ee42179bada23ea55e008d403d2eb9e8a5b052.svn-base
new file mode 100644
index 0000000..229e02b
--- /dev/null
+++ b/.svn/pristine/12/12ee42179bada23ea55e008d403d2eb9e8a5b052.svn-base
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+ 默认
+
+ 销量
+
+
+
+
+
+
+
+ 价格
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/12/12fb41b0de8ae702f2b49ad7ba789df2cfb462e3.svn-base b/.svn/pristine/12/12fb41b0de8ae702f2b49ad7ba789df2cfb462e3.svn-base
new file mode 100644
index 0000000..54dc1fa
--- /dev/null
+++ b/.svn/pristine/12/12fb41b0de8ae702f2b49ad7ba789df2cfb462e3.svn-base
@@ -0,0 +1,14 @@
+
+
+### LoadMore 加载更多
+> **组件名:uni-load-more**
+> 代码块: `uLoadMore`
+
+
+用于列表中,做滚动加载使用,展示 loading 的各种状态。
+
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
diff --git a/.svn/pristine/13/134794dcad601db2b08d7d876e0aa2fe09f73885.svn-base b/.svn/pristine/13/134794dcad601db2b08d7d876e0aa2fe09f73885.svn-base
new file mode 100644
index 0000000..adce670
--- /dev/null
+++ b/.svn/pristine/13/134794dcad601db2b08d7d876e0aa2fe09f73885.svn-base
@@ -0,0 +1,86 @@
+{
+ "id": "uni-pagination",
+ "displayName": "uni-pagination 分页器",
+ "version": "1.2.1",
+ "description": "Pagination 分页器组件,用于展示页码、请求数据等。",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "分页器",
+ "页码"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss","uni-icons"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.svn/pristine/13/13f516d867d2e24388c8c7436c3e234340fc263a.svn-base b/.svn/pristine/13/13f516d867d2e24388c8c7436c3e234340fc263a.svn-base
new file mode 100644
index 0000000..987bba6
--- /dev/null
+++ b/.svn/pristine/13/13f516d867d2e24388c8c7436c3e234340fc263a.svn-base
@@ -0,0 +1,997 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{rangeSeparator}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/15/151404f98f44987476e532af43d56efb4623e36e.svn-base b/.svn/pristine/15/151404f98f44987476e532af43d56efb4623e36e.svn-base
new file mode 100644
index 0000000..1979c55
--- /dev/null
+++ b/.svn/pristine/15/151404f98f44987476e532af43d56efb4623e36e.svn-base
@@ -0,0 +1,81 @@
+{
+ "name" : "太极",
+ "appid" : "__UNI__73F0D10",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "wxbcce181903c8097f",
+ "setting" : {
+ "urlCheck" : false,
+ "es6" : false,
+ "minified" : false,
+ "postcss" : false
+ },
+ "usingComponents" : true,
+ "requiredPrivateInfos" : [ "getLocation", "chooseLocation" ],
+ "permission" : {
+ "scope.userLocation" : {
+ "desc" : "用于获取您附近的商家"
+ }
+ }
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "2"
+}
diff --git a/.svn/pristine/15/1524e32a74efcad7d6c2f967d95ef69d33a3d271.svn-base b/.svn/pristine/15/1524e32a74efcad7d6c2f967d95ef69d33a3d271.svn-base
new file mode 100644
index 0000000..9117f19
--- /dev/null
+++ b/.svn/pristine/15/1524e32a74efcad7d6c2f967d95ef69d33a3d271.svn-base
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.svn/pristine/15/15a49b6337fb6bfc053fac0669ffe8c54dc0be07.svn-base b/.svn/pristine/15/15a49b6337fb6bfc053fac0669ffe8c54dc0be07.svn-base
new file mode 100644
index 0000000..c4e6b45
--- /dev/null
+++ b/.svn/pristine/15/15a49b6337fb6bfc053fac0669ffe8c54dc0be07.svn-base
@@ -0,0 +1,169 @@
+## 插件说明
+
+> 这是 `v-tabs` 插件的升级版本,参数上有很大变动,支持 `H5` `小程序` `手机端`,如果是在之前的插件上升级的话,请注意参数的变更,触发的事件没有变更。
+
+## 使用说明
+
+### 1、最基本用法
+
+- 视图文件
+
+```html
+
+```
+
+- 脚本文件
+
+```js
+export default {
+ data() {
+ return {
+ current: 0,
+ tabs: [
+ '军事',
+ '国内',
+ '新闻新闻',
+ '军事',
+ '国内',
+ '新闻',
+ '军事',
+ '国内',
+ '新闻',
+ ],
+ }
+ },
+ methods: {
+ changeTab(index) {
+ console.log('当前选中的项:' + index)
+ },
+ },
+}
+```
+
+### 2、平铺整个屏幕
+
+- 视图文件
+
+```html
+
+```
+
+- 脚本文件
+
+```js
+export default {
+ data() {
+ return {
+ activeTab: 0,
+ }
+ },
+}
+```
+
+### 3、胶囊用法
+
+- 视图文件
+
+```html
+
+```
+
+- 脚本文件
+
+```js
+data() {
+ return {
+ current: 2,
+ tabs: [
+ '军事',
+ '国内',
+ '新闻新闻',
+ '军事',
+ '国内',
+ '新闻',
+ '军事',
+ '国内',
+ '新闻',
+ ],
+ },
+ methods: {
+ changeTab(index) {
+ console.log('当前选中索引:' + index)
+ }
+ }
+}
+```
+
+## 文档说明
+
+### 1、属性说明
+
+| 参数 | 类型 | 默认值 | 说明 |
+| :---------------: | :-----: | :-------: | :--------------------------------------: |
+| value | Number | 0 | 必传(双向绑定的值) |
+| color | String | '#333' | 默认文字颜色 |
+| activeColor | String | '#2979ff' | 选中文字的颜色 |
+| fontSize | String | '28rpx' | 默认文字大小(rpx 或 px) |
+| bold | Boolean | true | 是否加粗选中项 |
+| scroll | Boolean | true | 是否显示滚动条,平铺设置 false |
+| height | String | '70rpx' | tab 高度(rpx 或 px) |
+| lineHeight | String | '10rpx' | 滑块高度(rpx 或 px) |
+| lineColor | String | '#2979ff' | 滑块的颜色 |
+| lineScale | Number | 0.5 | 滑块宽度缩放值 |
+| lineRadius | String | '10rpx' | 滑块圆角宽度(rpx 或 px) |
+| pills | Boolean | false | 是否开启胶囊 |
+| pillsColor | String | '#2979ff' | 胶囊背景颜色(rpx 或 px) |
+| pillsBorderRadius | String | '10rpx' | 胶囊圆角宽度(rpx 或 px) |
+| field | String | '' | 如果 tabs 子项是对象,输入需要展示的键名 |
+| bgColor | String | '#fff' | 背景色,支持 linear-gradient 渐变 |
+| padding | String | '0' | 整个 tab padding 属性 |
+
+### 2、事件说明
+
+| 名称 | 参数 | 说明 |
+| :----: | :---: | :--------------------------------: |
+| change | index | 改变选中项触发, index 选中项的下标 |
+
+## 更新日志
+
+### 2020-08-29
+
+1. 优化异步改变 `tabs` 后,下划线不初始化问题
+2. `github` 地址上有图 2 的源码,需要的自行下载,页面路径:`pages/tabs/order.vue`
+
+### 2020-08-20
+
+1. 优化 `节点查询` 和 `选中渲染`
+2. 优化支付宝中 `createSelectorQuery()` 的影响
+
+### 2020-08-19
+
+1. 优化 `change` 事件触发机制
+
+### 2020-08-16
+
+1. 修改默认高度为 `70rpx`
+2. 新增属性 `bgColor`,可设置背景颜色,默认 `#fff`
+3. 新增整个 `tab` 的 `padding` 属性,默认 `0`
+
+### 2020-08-13
+
+1. 全新的 `v-tabs 2.0`
+2. 支持 `H5` `小程序` `APP`
+3. 属性高度可配置
+
+## 预览
+
+
+
diff --git a/.svn/pristine/15/15ea6e3353c783fe697b0c3ae04136b5401e3d7b.svn-base b/.svn/pristine/15/15ea6e3353c783fe697b0c3ae04136b5401e3d7b.svn-base
new file mode 100644
index 0000000..24e26b1
--- /dev/null
+++ b/.svn/pristine/15/15ea6e3353c783fe697b0c3ae04136b5401e3d7b.svn-base
@@ -0,0 +1,17 @@
+## 1.2.2(2021-12-29)
+- 更新 组件依赖
+## 1.2.1(2021-11-19)
+- 修复 阴影颜色不正确的bug
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fab](https://uniapp.dcloud.io/component/uniui/uni-fab)
+## 1.1.1(2021-11-09)
+- 新增 提供组件设计资源,组件样式调整
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.7(2021-05-12)
+- 新增 组件示例地址
+## 1.0.6(2021-02-05)
+- 调整为uni_modules目录规范
+- 优化 按钮背景色调整
+- 优化 兼容pc端
diff --git a/.svn/pristine/17/178db22e76698ba76abc7f2ff66c18bcf0f30840.svn-base b/.svn/pristine/17/178db22e76698ba76abc7f2ff66c18bcf0f30840.svn-base
new file mode 100644
index 0000000..d551d7b
--- /dev/null
+++ b/.svn/pristine/17/178db22e76698ba76abc7f2ff66c18bcf0f30840.svn-base
@@ -0,0 +1,10 @@
+## 1.0.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat)
+## 0.0.5(2021-07-08)
+- 调整 默认时间不再是当前时间,而是显示'-'字符
+## 0.0.4(2021-05-12)
+- 新增 组件示例地址
+## 0.0.3(2021-02-04)
+- 调整为uni_modules目录规范
+- 修复 iOS 平台日期格式化出错的问题
diff --git a/.svn/pristine/18/180fdba499f81d9e959b2948c63ee735a91a0c8d.svn-base b/.svn/pristine/18/180fdba499f81d9e959b2948c63ee735a91a0c8d.svn-base
new file mode 100644
index 0000000..2e5d2fb
--- /dev/null
+++ b/.svn/pristine/18/180fdba499f81d9e959b2948c63ee735a91a0c8d.svn-base
@@ -0,0 +1,53 @@
+
+
+ 账号取消后:
+ 以下信息将被清空且无法找回
+
+ 1、身份,账号信息等权限
+ 2、图片库所有信息
+ 3、所有投放订单信息
+ 4、请确保所有交易已完结且无纠纷,账号删除后,历史交易可能产生资金退出将视为自动放弃
+
+
+ 立即注销
+
+
+
+
+
+
+
diff --git a/.svn/pristine/18/181e56c7b3d56119df6506e7a28ab73dca09b31d.svn-base b/.svn/pristine/18/181e56c7b3d56119df6506e7a28ab73dca09b31d.svn-base
new file mode 100644
index 0000000..ed42f1b
--- /dev/null
+++ b/.svn/pristine/18/181e56c7b3d56119df6506e7a28ab73dca09b31d.svn-base
@@ -0,0 +1,270 @@
+const MIN_DISTANCE = 10;
+export default {
+ showWatch(newVal, oldVal, ownerInstance, instance,self) {
+ var state = self.state
+ var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el
+ if(!$el) return
+ this.getDom(instance, ownerInstance,self)
+ if (newVal && newVal !== 'none') {
+ this.openState(newVal, instance, ownerInstance,self)
+ return
+ }
+
+ if (state.left) {
+ this.openState('none', instance, ownerInstance,self)
+ }
+ this.resetTouchStatus(instance,self)
+ },
+
+ /**
+ * 开始触摸操作
+ * @param {Object} e
+ * @param {Object} ins
+ */
+ touchstart(e, ownerInstance, self) {
+ let instance = e.instance;
+ let disabled = instance.getDataset().disabled
+ let state = self.state;
+ this.getDom(instance, ownerInstance, self)
+ // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复
+ disabled = this.getDisabledType(disabled)
+ if (disabled) return
+ // 开始触摸时移除动画类
+ instance.requestAnimationFrame(function() {
+ instance.removeClass('ani');
+ ownerInstance.callMethod('closeSwipe');
+ })
+
+ // 记录上次的位置
+ state.x = state.left || 0
+ // 计算滑动开始位置
+ this.stopTouchStart(e, ownerInstance, self)
+ },
+
+ /**
+ * 开始滑动操作
+ * @param {Object} e
+ * @param {Object} ownerInstance
+ */
+ touchmove(e, ownerInstance, self) {
+ let instance = e.instance;
+ // 删除之后已经那不到实例了
+ if(!instance) return;
+ let disabled = instance.getDataset().disabled
+ let state = self.state
+ // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复
+ disabled = this.getDisabledType(disabled)
+ if (disabled) return
+ // 是否可以滑动页面
+ this.stopTouchMove(e, self);
+ if (state.direction !== 'horizontal') {
+ return;
+ }
+ if (e.preventDefault) {
+ // 阻止页面滚动
+ e.preventDefault()
+ }
+ let x = state.x + state.deltaX
+ this.move(x, instance, ownerInstance, self)
+ },
+
+ /**
+ * 结束触摸操作
+ * @param {Object} e
+ * @param {Object} ownerInstance
+ */
+ touchend(e, ownerInstance, self) {
+ let instance = e.instance;
+ let disabled = instance.getDataset().disabled
+ let state = self.state
+ // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复
+ disabled = this.getDisabledType(disabled)
+
+ if (disabled) return
+ // 滑动过程中触摸结束,通过阙值判断是开启还是关闭
+ // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13
+ this.moveDirection(state.left, instance, ownerInstance, self)
+
+ },
+
+ /**
+ * 设置移动距离
+ * @param {Object} value
+ * @param {Object} instance
+ * @param {Object} ownerInstance
+ */
+ move(value, instance, ownerInstance, self) {
+ value = value || 0
+ let state = self.state
+ let leftWidth = state.leftWidth
+ let rightWidth = state.rightWidth
+ // 获取可滑动范围
+ state.left = this.range(value, -rightWidth, leftWidth);
+ instance.requestAnimationFrame(function() {
+ instance.setStyle({
+ transform: 'translateX(' + state.left + 'px)',
+ '-webkit-transform': 'translateX(' + state.left + 'px)'
+ })
+ })
+
+ },
+
+ /**
+ * 获取元素信息
+ * @param {Object} instance
+ * @param {Object} ownerInstance
+ */
+ getDom(instance, ownerInstance, self) {
+ var state = self.state
+ var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el
+ var leftDom = $el.querySelector('.button-group--left')
+ var rightDom = $el.querySelector('.button-group--right')
+
+ state.leftWidth = leftDom.offsetWidth || 0
+ state.rightWidth = rightDom.offsetWidth || 0
+ state.threshold = instance.getDataset().threshold
+ },
+
+ getDisabledType(value) {
+ return (typeof(value) === 'string' ? JSON.parse(value) : value) || false;
+ },
+
+ /**
+ * 获取范围
+ * @param {Object} num
+ * @param {Object} min
+ * @param {Object} max
+ */
+ range(num, min, max) {
+ return Math.min(Math.max(num, min), max);
+ },
+
+
+ /**
+ * 移动方向判断
+ * @param {Object} left
+ * @param {Object} value
+ * @param {Object} ownerInstance
+ * @param {Object} ins
+ */
+ moveDirection(left, ins, ownerInstance, self) {
+ var state = self.state
+ var threshold = state.threshold
+ var position = state.position
+ var isopen = state.isopen || 'none'
+ var leftWidth = state.leftWidth
+ var rightWidth = state.rightWidth
+ if (state.deltaX === 0) {
+ this.openState('none', ins, ownerInstance, self)
+ return
+ }
+ if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 &&
+ rightWidth +
+ left < threshold)) {
+ // right
+ this.openState('right', ins, ownerInstance, self)
+ } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 &&
+ leftWidth - left < threshold)) {
+ // left
+ this.openState('left', ins, ownerInstance, self)
+ } else {
+ // default
+ this.openState('none', ins, ownerInstance, self)
+ }
+ },
+
+
+ /**
+ * 开启状态
+ * @param {Boolean} type
+ * @param {Object} ins
+ * @param {Object} ownerInstance
+ */
+ openState(type, ins, ownerInstance, self) {
+ let state = self.state
+ let leftWidth = state.leftWidth
+ let rightWidth = state.rightWidth
+ let left = ''
+ state.isopen = state.isopen ? state.isopen : 'none'
+ switch (type) {
+ case "left":
+ left = leftWidth
+ break
+ case "right":
+ left = -rightWidth
+ break
+ default:
+ left = 0
+ }
+
+ // && !state.throttle
+
+ if (state.isopen !== type) {
+ state.throttle = true
+ ownerInstance.callMethod('change', {
+ open: type
+ })
+
+ }
+
+ state.isopen = type
+ // 添加动画类
+ ins.requestAnimationFrame(()=> {
+ ins.addClass('ani');
+ this.move(left, ins, ownerInstance, self)
+ })
+ },
+
+
+ getDirection(x, y) {
+ if (x > y && x > MIN_DISTANCE) {
+ return 'horizontal';
+ }
+ if (y > x && y > MIN_DISTANCE) {
+ return 'vertical';
+ }
+ return '';
+ },
+
+ /**
+ * 重置滑动状态
+ * @param {Object} event
+ */
+ resetTouchStatus(instance, self) {
+ let state = self.state;
+ state.direction = '';
+ state.deltaX = 0;
+ state.deltaY = 0;
+ state.offsetX = 0;
+ state.offsetY = 0;
+ },
+
+ /**
+ * 设置滑动开始位置
+ * @param {Object} event
+ */
+ stopTouchStart(event, ownerInstance, self) {
+ let instance = event.instance;
+ let state = self.state
+ this.resetTouchStatus(instance, self);
+ var touch = event.touches[0];
+ state.startX = touch.clientX;
+ state.startY = touch.clientY;
+ },
+
+ /**
+ * 滑动中,是否禁止打开
+ * @param {Object} event
+ */
+ stopTouchMove(event, self) {
+ let instance = event.instance;
+ let state = self.state;
+ let touch = event.touches[0];
+
+ state.deltaX = touch.clientX - state.startX;
+ state.deltaY = touch.clientY - state.startY;
+ state.offsetY = Math.abs(state.deltaY);
+ state.offsetX = Math.abs(state.deltaX);
+ state.direction = state.direction || this.getDirection(state.offsetX, state.offsetY);
+ }
+}
diff --git a/.svn/pristine/18/1870fbf84d279150a88aff7f89e0d6adb1c9d14f.svn-base b/.svn/pristine/18/1870fbf84d279150a88aff7f89e0d6adb1c9d14f.svn-base
new file mode 100644
index 0000000..775a3ec
--- /dev/null
+++ b/.svn/pristine/18/1870fbf84d279150a88aff7f89e0d6adb1c9d14f.svn-base
@@ -0,0 +1,145 @@
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/19/19f85259cef6b96b70035c912b69f315e0cd79ac.svn-base b/.svn/pristine/19/19f85259cef6b96b70035c912b69f315e0cd79ac.svn-base
new file mode 100644
index 0000000..28a5ae7
--- /dev/null
+++ b/.svn/pristine/19/19f85259cef6b96b70035c912b69f315e0cd79ac.svn-base
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+ 王唤七
+
+
+ 好评
+
+
+
+
+ 我是评价信息,我是评价信息,我是评价信息,我是评价信息,我是评价信息,我是评价信息,我是评价信息。
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/1a/1af91e6e031bf908a07a09b134d4582102c3155a.svn-base b/.svn/pristine/1a/1af91e6e031bf908a07a09b134d4582102c3155a.svn-base
new file mode 100644
index 0000000..c80aad7
Binary files /dev/null and b/.svn/pristine/1a/1af91e6e031bf908a07a09b134d4582102c3155a.svn-base differ
diff --git a/.svn/pristine/1b/1b4a1a8ca0e1ece1e518dfc0570c5410ce008332.svn-base b/.svn/pristine/1b/1b4a1a8ca0e1ece1e518dfc0570c5410ce008332.svn-base
new file mode 100644
index 0000000..4bcb1aa
--- /dev/null
+++ b/.svn/pristine/1b/1b4a1a8ca0e1ece1e518dfc0570c5410ce008332.svn-base
@@ -0,0 +1,10 @@
+
+
+## CountDown 倒计时
+> **组件名:uni-countdown**
+> 代码块: `uCountDown`
+
+倒计时组件。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-countdown)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/.svn/pristine/1c/1cf7293068b1a957d6c436f212f0f900ae4ad963.svn-base b/.svn/pristine/1c/1cf7293068b1a957d6c436f212f0f900ae4ad963.svn-base
new file mode 100644
index 0000000..ebc28df
--- /dev/null
+++ b/.svn/pristine/1c/1cf7293068b1a957d6c436f212f0f900ae4ad963.svn-base
@@ -0,0 +1,73 @@
+
+
+
+
+ 姓名
+
+
+
+ 身份证号
+
+
+
+ 银行开户行
+
+
+
+ 卡号
+
+
+
+ 预留手机号
+
+
+
+ 提现金额(提现手续费1%)
+
+
+
+
+ 立即提现
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.svn/pristine/1d/1d59bf114549a94854d281319a33af8b1efd2548.svn-base b/.svn/pristine/1d/1d59bf114549a94854d281319a33af8b1efd2548.svn-base
new file mode 100644
index 0000000..ad737ce
--- /dev/null
+++ b/.svn/pristine/1d/1d59bf114549a94854d281319a33af8b1efd2548.svn-base
@@ -0,0 +1,193 @@
+export default {
+ data() {
+ return {
+ x: 0,
+ transition: false,
+ width: 0,
+ viewWidth: 0,
+ swipeShow: 0
+ }
+ },
+ watch: {
+ show(newVal) {
+ if (this.autoClose) return
+ if (newVal && newVal !== 'none' ) {
+ this.transition = true
+ this.open(newVal)
+ } else {
+ this.close()
+ }
+ }
+ },
+ created() {
+ this.swipeaction = this.getSwipeAction()
+ if (this.swipeaction.children !== undefined) {
+ this.swipeaction.children.push(this)
+ }
+ },
+ mounted() {
+ this.isopen = false
+ setTimeout(() => {
+ this.getQuerySelect()
+ }, 50)
+ },
+ methods: {
+ appTouchStart(e) {
+ const {
+ clientX
+ } = e.changedTouches[0]
+ this.clientX = clientX
+ this.timestamp = new Date().getTime()
+ },
+ appTouchEnd(e, index, item, position) {
+ const {
+ clientX
+ } = e.changedTouches[0]
+ // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题
+ let diff = Math.abs(this.clientX - clientX)
+ let time = (new Date().getTime()) - this.timestamp
+ if (diff < 40 && time < 300) {
+ this.$emit('click', {
+ content: item,
+ index,
+ position
+ })
+ }
+ },
+ /**
+ * 移动触发
+ * @param {Object} e
+ */
+ onChange(e) {
+ this.moveX = e.detail.x
+ this.isclose = false
+ },
+ touchstart(e) {
+ this.transition = false
+ this.isclose = true
+ this.autoClose && this.swipeaction.closeOther(this)
+ },
+ touchmove(e) {},
+ touchend(e) {
+ // 0的位置什么都不执行
+ if (this.isclose && this.isopen === 'none') return
+ if (this.isclose && this.isopen !== 'none') {
+ this.transition = true
+ this.close()
+ } else {
+ this.move(this.moveX + this.leftWidth)
+ }
+ },
+
+ /**
+ * 移动
+ * @param {Object} moveX
+ */
+ move(moveX) {
+ // 打开关闭的处理逻辑不太一样
+ this.transition = true
+ // 未打开状态
+ if (!this.isopen || this.isopen === 'none') {
+ if (moveX > this.threshold) {
+ this.open('left')
+ } else if (moveX < -this.threshold) {
+ this.open('right')
+ } else {
+ this.close()
+ }
+ } else {
+ if (moveX < 0 && moveX < this.rightWidth) {
+ const rightX = this.rightWidth + moveX
+ if (rightX < this.threshold) {
+ this.open('right')
+ } else {
+ this.close()
+ }
+ } else if (moveX > 0 && moveX < this.leftWidth) {
+ const leftX = this.leftWidth - moveX
+ if (leftX < this.threshold) {
+ this.open('left')
+ } else {
+ this.close()
+ }
+ }
+
+ }
+
+ },
+
+ /**
+ * 打开
+ */
+ open(type) {
+ this.x = this.moveX
+ this.animation(type)
+ },
+
+ /**
+ * 关闭
+ */
+ close() {
+ this.x = this.moveX
+ // TODO 解决 x 值不更新的问题,所以会多触发一次 nextTick ,待优化
+ this.$nextTick(() => {
+ this.x = -this.leftWidth
+ if(this.isopen!=='none'){
+ this.$emit('change', 'none')
+ }
+ this.isopen = 'none'
+ })
+ },
+
+ /**
+ * 执行结束动画
+ * @param {Object} type
+ */
+ animation(type) {
+ this.$nextTick(() => {
+ if (type === 'left') {
+ this.x = 0
+ } else {
+ this.x = -this.rightWidth - this.leftWidth
+ }
+
+ if(this.isopen!==type){
+ this.$emit('change', type)
+ }
+ this.isopen = type
+ })
+
+ },
+ getSlide(x) {},
+ getQuerySelect() {
+ const query = uni.createSelectorQuery().in(this);
+ query.selectAll('.movable-view--hock').boundingClientRect(data => {
+ this.leftWidth = data[1].width
+ this.rightWidth = data[2].width
+ this.width = data[0].width
+ this.viewWidth = this.width + this.rightWidth + this.leftWidth
+ if (this.leftWidth === 0) {
+ // TODO 疑似bug ,初始化的时候如果x 是0,会导致移动位置错误,所以让元素超出一点
+ this.x = -0.1
+ } else {
+ this.x = -this.leftWidth
+ }
+ this.moveX = this.x
+ this.$nextTick(() => {
+ this.swipeShow = 1
+ })
+
+ if (!this.buttonWidth) {
+ this.disabledView = true
+ }
+
+ if (this.autoClose) return
+ if (this.show !== 'none') {
+ this.transition = true
+ this.open(this.shows)
+ }
+ }).exec();
+
+ }
+ }
+}
diff --git a/.svn/pristine/1d/1dcfb8fa0775749a58d246f6879f6ddc15548b5e.svn-base b/.svn/pristine/1d/1dcfb8fa0775749a58d246f6879f6ddc15548b5e.svn-base
new file mode 100644
index 0000000..94ecb6a
Binary files /dev/null and b/.svn/pristine/1d/1dcfb8fa0775749a58d246f6879f6ddc15548b5e.svn-base differ
diff --git a/.svn/pristine/1d/1dd57f8a50674ab32c1549ffca3ad32e3f016866.svn-base b/.svn/pristine/1d/1dd57f8a50674ab32c1549ffca3ad32e3f016866.svn-base
new file mode 100644
index 0000000..77b1986
--- /dev/null
+++ b/.svn/pristine/1d/1dd57f8a50674ab32c1549ffca3ad32e3f016866.svn-base
@@ -0,0 +1,87 @@
+{
+ "id": "uni-link",
+ "displayName": "uni-link 超链接",
+ "version": "1.0.0",
+ "description": "uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "link",
+ "超链接",
+ ""
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-scss"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "y",
+ "联盟": "y"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.svn/pristine/1e/1e2803e436e12dd61e72a42a03ae66f353107826.svn-base b/.svn/pristine/1e/1e2803e436e12dd61e72a42a03ae66f353107826.svn-base
new file mode 100644
index 0000000..ededbc2
--- /dev/null
+++ b/.svn/pristine/1e/1e2803e436e12dd61e72a42a03ae66f353107826.svn-base
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ status === 'more' ? contentdownText : status === 'loading' ? contentrefreshText : contentnomoreText }}
+
+
+
+
+
+
diff --git a/.svn/pristine/1e/1e3c87e4e01051010a640c806cdcc045d9172df6.svn-base b/.svn/pristine/1e/1e3c87e4e01051010a640c806cdcc045d9172df6.svn-base
new file mode 100644
index 0000000..62dda46
--- /dev/null
+++ b/.svn/pristine/1e/1e3c87e4e01051010a640c806cdcc045d9172df6.svn-base
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ // this.$once('hook:beforeDestroy', () => {
+ // document.removeEventListener('keyup', listener)
+ // })
+ },
+ render: () => {}
+}
+// #endif
diff --git a/.svn/pristine/1e/1eae0dfdfb3312aafb46f1444cf4946f56e7f6f7.svn-base b/.svn/pristine/1e/1eae0dfdfb3312aafb46f1444cf4946f56e7f6f7.svn-base
new file mode 100644
index 0000000..caa248c
Binary files /dev/null and b/.svn/pristine/1e/1eae0dfdfb3312aafb46f1444cf4946f56e7f6f7.svn-base differ
diff --git a/.svn/pristine/1e/1ec0e8c2bb1375c8401c599f269f3be09106f45d.svn-base b/.svn/pristine/1e/1ec0e8c2bb1375c8401c599f269f3be09106f45d.svn-base
new file mode 100644
index 0000000..93a5cac
--- /dev/null
+++ b/.svn/pristine/1e/1ec0e8c2bb1375c8401c599f269f3be09106f45d.svn-base
@@ -0,0 +1,11 @@
+
+
+## SwipeAction 滑动操作
+> **组件名:uni-swipe-action**
+> 代码块: `uSwipeAction`、`uSwipeActionItem`
+
+
+通过滑动触发选项的容器
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swipe-action)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/.svn/pristine/20/209bcb92b241f7554ec2c0927ff9884e7aa0a70e.svn-base b/.svn/pristine/20/209bcb92b241f7554ec2c0927ff9884e7aa0a70e.svn-base
new file mode 100644
index 0000000..fbbedbf
--- /dev/null
+++ b/.svn/pristine/20/209bcb92b241f7554ec2c0927ff9884e7aa0a70e.svn-base
@@ -0,0 +1,130 @@
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/20/20ac5caee570da04b546a8720bb0b91589e01700.svn-base b/.svn/pristine/20/20ac5caee570da04b546a8720bb0b91589e01700.svn-base
new file mode 100644
index 0000000..ffa2cc8
--- /dev/null
+++ b/.svn/pristine/20/20ac5caee570da04b546a8720bb0b91589e01700.svn-base
@@ -0,0 +1,11 @@
+
+
+## Combox 组合框
+> **组件名:uni-combox**
+> 代码块: `uCombox`
+
+
+组合框组件。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-combox)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/.svn/pristine/20/20b5609e66d5b1e7d0dcd287ef95ca9e9edade8b.svn-base b/.svn/pristine/20/20b5609e66d5b1e7d0dcd287ef95ca9e9edade8b.svn-base
new file mode 100644
index 0000000..9a0428b
--- /dev/null
+++ b/.svn/pristine/20/20b5609e66d5b1e7d0dcd287ef95ca9e9edade8b.svn-base
@@ -0,0 +1,55 @@
+@mixin radius($r,$d:null ,$important: false){
+ $radius-value:map-get($uni-radius, $r) if($important, !important, null);
+ // Key exists within the $uni-radius variable
+ @if (map-has-key($uni-radius, $r) and $d){
+ @if $d == t {
+ border-top-left-radius:$radius-value;
+ border-top-right-radius:$radius-value;
+ }@else if $d == r {
+ border-top-right-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == b {
+ border-bottom-left-radius:$radius-value;
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == l {
+ border-top-left-radius:$radius-value;
+ border-bottom-left-radius:$radius-value;
+ }@else if $d == tl {
+ border-top-left-radius:$radius-value;
+ }@else if $d == tr {
+ border-top-right-radius:$radius-value;
+ }@else if $d == br {
+ border-bottom-right-radius:$radius-value;
+ }@else if $d == bl {
+ border-bottom-left-radius:$radius-value;
+ }
+ }@else{
+ border-radius:$radius-value;
+ }
+}
+
+@each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $key} {
+ @include radius($key)
+ }
+ }@else{
+ .uni-radius {
+ @include radius($key)
+ }
+ }
+}
+
+@each $direction in t, r, b, l,tl, tr, br, bl {
+ @each $key, $child in $uni-radius {
+ @if($key){
+ .uni-radius-#{"" + $direction}-#{"" + $key} {
+ @include radius($key,$direction,false)
+ }
+ }@else{
+ .uni-radius-#{$direction} {
+ @include radius($key,$direction,false)
+ }
+ }
+ }
+}
diff --git a/.svn/pristine/21/21212c35f9d43e67e378fbe439aa07497dfc1509.svn-base b/.svn/pristine/21/21212c35f9d43e67e378fbe439aa07497dfc1509.svn-base
new file mode 100644
index 0000000..6eb253d
--- /dev/null
+++ b/.svn/pristine/21/21212c35f9d43e67e378fbe439aa07497dfc1509.svn-base
@@ -0,0 +1,18 @@
+
+
+## DataCheckbox 数据驱动的单选复选框
+> **组件名:uni-data-checkbox**
+> 代码块: `uDataCheckbox`
+
+
+本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括:
+
+1. 数据绑定型组件:给本组件绑定一个data,会自动渲染一组候选内容。再以往,开发者需要编写不少代码实现类似功能
+2. 自动的表单校验:组件绑定了data,且符合[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)组件的表单校验规范,搭配使用会自动实现表单校验
+3. 本组件合并了单选多选
+4. 本组件有若干风格选择,如普通的单选多选框、并列button风格、tag风格。开发者可以快速选择需要的风格。但作为一个封装组件,样式代码虽然不用自己写了,却会牺牲一定的样式自定义性
+
+在uniCloud开发中,`DB Schema`中配置了enum枚举等类型后,在web控制台的[自动生成表单](https://uniapp.dcloud.io/uniCloud/schema?id=autocode)功能中,会自动生成``uni-data-checkbox``组件并绑定好data
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/.svn/pristine/21/218e5a4d53079fb08461f06a49f6ea786ce920f7.svn-base b/.svn/pristine/21/218e5a4d53079fb08461f06a49f6ea786ce920f7.svn-base
new file mode 100644
index 0000000..e7685c5
--- /dev/null
+++ b/.svn/pristine/21/218e5a4d53079fb08461f06a49f6ea786ce920f7.svn-base
@@ -0,0 +1,395 @@
+
+
+
+
+
+ {{text}}
+
+
+
+ {{ moreText }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/21/2193085d3cbc1aa9ea2658a155e3be4a31f4b861.svn-base b/.svn/pristine/21/2193085d3cbc1aa9ea2658a155e3be4a31f4b861.svn-base
new file mode 100644
index 0000000..3be48bc
--- /dev/null
+++ b/.svn/pristine/21/2193085d3cbc1aa9ea2658a155e3be4a31f4b861.svn-base
@@ -0,0 +1,31 @@
+## 1.2.2(2022-05-06)
+- 修复 vue3 input 事件不生效的bug
+## 1.2.1(2022-05-06)
+- 修复 多余代码导致的bug
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-search-bar](https://uniapp.dcloud.io/component/uniui/uni-search-bar)
+## 1.1.2(2021-08-30)
+- 修复 value 属性与 modelValue 属性不兼容的Bug
+## 1.1.1(2021-08-24)
+- 新增 支持国际化
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.9(2021-05-12)
+- 新增 项目示例地址
+## 1.0.8(2021-04-21)
+- 优化 添加依赖 uni-icons, 导入后自动下载依赖
+## 1.0.7(2021-04-15)
+- uni-ui 新增 uni-search-bar 的 focus 事件
+
+## 1.0.6(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+
+## 1.0.5(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 支持双向绑定
+- 更改 input 事件的返回值,e={value:Number} --> e=value
+- 新增 支持图标插槽
+- 新增 支持 clear、blur 事件
+- 新增 支持 focus 属性
+- 去掉组件背景色
diff --git a/.svn/pristine/21/21cfac9565dcc84e9b8017a902c18752ef50741e.svn-base b/.svn/pristine/21/21cfac9565dcc84e9b8017a902c18752ef50741e.svn-base
new file mode 100644
index 0000000..a34d08f
--- /dev/null
+++ b/.svn/pristine/21/21cfac9565dcc84e9b8017a902c18752ef50741e.svn-base
@@ -0,0 +1,24 @@
+@mixin get-styles($k,$c) {
+ @if $k == size or $k == weight{
+ font-#{$k}:#{$c}
+ }@else{
+ #{$k}:#{$c}
+ }
+}
+
+@each $key, $child in $uni-headings {
+ /* #ifndef APP-NVUE */
+ .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+ /* #ifdef APP-NVUE */
+ .container .uni-#{$key} {
+ @each $k, $c in $child {
+ @include get-styles($k,$c)
+ }
+ }
+ /* #endif */
+}
diff --git a/.svn/pristine/22/223f9850ba0a902aa9f43c91ae48ef40bd22104c.svn-base b/.svn/pristine/22/223f9850ba0a902aa9f43c91ae48ef40bd22104c.svn-base
new file mode 100644
index 0000000..2f56eab
--- /dev/null
+++ b/.svn/pristine/22/223f9850ba0a902aa9f43c91ae48ef40bd22104c.svn-base
@@ -0,0 +1,663 @@
+.uniui-color:before {
+ content: "\e6cf";
+}
+
+.uniui-wallet:before {
+ content: "\e6b1";
+}
+
+.uniui-settings-filled:before {
+ content: "\e6ce";
+}
+
+.uniui-auth-filled:before {
+ content: "\e6cc";
+}
+
+.uniui-shop-filled:before {
+ content: "\e6cd";
+}
+
+.uniui-staff-filled:before {
+ content: "\e6cb";
+}
+
+.uniui-vip-filled:before {
+ content: "\e6c6";
+}
+
+.uniui-plus-filled:before {
+ content: "\e6c7";
+}
+
+.uniui-folder-add-filled:before {
+ content: "\e6c8";
+}
+
+.uniui-color-filled:before {
+ content: "\e6c9";
+}
+
+.uniui-tune-filled:before {
+ content: "\e6ca";
+}
+
+.uniui-calendar-filled:before {
+ content: "\e6c0";
+}
+
+.uniui-notification-filled:before {
+ content: "\e6c1";
+}
+
+.uniui-wallet-filled:before {
+ content: "\e6c2";
+}
+
+.uniui-medal-filled:before {
+ content: "\e6c3";
+}
+
+.uniui-gift-filled:before {
+ content: "\e6c4";
+}
+
+.uniui-fire-filled:before {
+ content: "\e6c5";
+}
+
+.uniui-refreshempty:before {
+ content: "\e6bf";
+}
+
+.uniui-location-filled:before {
+ content: "\e6af";
+}
+
+.uniui-person-filled:before {
+ content: "\e69d";
+}
+
+.uniui-personadd-filled:before {
+ content: "\e698";
+}
+
+.uniui-back:before {
+ content: "\e6b9";
+}
+
+.uniui-forward:before {
+ content: "\e6ba";
+}
+
+.uniui-arrow-right:before {
+ content: "\e6bb";
+}
+
+.uniui-arrowthinright:before {
+ content: "\e6bb";
+}
+
+.uniui-arrow-left:before {
+ content: "\e6bc";
+}
+
+.uniui-arrowthinleft:before {
+ content: "\e6bc";
+}
+
+.uniui-arrow-up:before {
+ content: "\e6bd";
+}
+
+.uniui-arrowthinup:before {
+ content: "\e6bd";
+}
+
+.uniui-arrow-down:before {
+ content: "\e6be";
+}
+
+.uniui-arrowthindown:before {
+ content: "\e6be";
+}
+
+.uniui-bottom:before {
+ content: "\e6b8";
+}
+
+.uniui-arrowdown:before {
+ content: "\e6b8";
+}
+
+.uniui-right:before {
+ content: "\e6b5";
+}
+
+.uniui-arrowright:before {
+ content: "\e6b5";
+}
+
+.uniui-top:before {
+ content: "\e6b6";
+}
+
+.uniui-arrowup:before {
+ content: "\e6b6";
+}
+
+.uniui-left:before {
+ content: "\e6b7";
+}
+
+.uniui-arrowleft:before {
+ content: "\e6b7";
+}
+
+.uniui-eye:before {
+ content: "\e651";
+}
+
+.uniui-eye-filled:before {
+ content: "\e66a";
+}
+
+.uniui-eye-slash:before {
+ content: "\e6b3";
+}
+
+.uniui-eye-slash-filled:before {
+ content: "\e6b4";
+}
+
+.uniui-info-filled:before {
+ content: "\e649";
+}
+
+.uniui-reload:before {
+ content: "\e6b2";
+}
+
+.uniui-micoff-filled:before {
+ content: "\e6b0";
+}
+
+.uniui-map-pin-ellipse:before {
+ content: "\e6ac";
+}
+
+.uniui-map-pin:before {
+ content: "\e6ad";
+}
+
+.uniui-location:before {
+ content: "\e6ae";
+}
+
+.uniui-starhalf:before {
+ content: "\e683";
+}
+
+.uniui-star:before {
+ content: "\e688";
+}
+
+.uniui-star-filled:before {
+ content: "\e68f";
+}
+
+.uniui-calendar:before {
+ content: "\e6a0";
+}
+
+.uniui-fire:before {
+ content: "\e6a1";
+}
+
+.uniui-medal:before {
+ content: "\e6a2";
+}
+
+.uniui-font:before {
+ content: "\e6a3";
+}
+
+.uniui-gift:before {
+ content: "\e6a4";
+}
+
+.uniui-link:before {
+ content: "\e6a5";
+}
+
+.uniui-notification:before {
+ content: "\e6a6";
+}
+
+.uniui-staff:before {
+ content: "\e6a7";
+}
+
+.uniui-vip:before {
+ content: "\e6a8";
+}
+
+.uniui-folder-add:before {
+ content: "\e6a9";
+}
+
+.uniui-tune:before {
+ content: "\e6aa";
+}
+
+.uniui-auth:before {
+ content: "\e6ab";
+}
+
+.uniui-person:before {
+ content: "\e699";
+}
+
+.uniui-email-filled:before {
+ content: "\e69a";
+}
+
+.uniui-phone-filled:before {
+ content: "\e69b";
+}
+
+.uniui-phone:before {
+ content: "\e69c";
+}
+
+.uniui-email:before {
+ content: "\e69e";
+}
+
+.uniui-personadd:before {
+ content: "\e69f";
+}
+
+.uniui-chatboxes-filled:before {
+ content: "\e692";
+}
+
+.uniui-contact:before {
+ content: "\e693";
+}
+
+.uniui-chatbubble-filled:before {
+ content: "\e694";
+}
+
+.uniui-contact-filled:before {
+ content: "\e695";
+}
+
+.uniui-chatboxes:before {
+ content: "\e696";
+}
+
+.uniui-chatbubble:before {
+ content: "\e697";
+}
+
+.uniui-upload-filled:before {
+ content: "\e68e";
+}
+
+.uniui-upload:before {
+ content: "\e690";
+}
+
+.uniui-weixin:before {
+ content: "\e691";
+}
+
+.uniui-compose:before {
+ content: "\e67f";
+}
+
+.uniui-qq:before {
+ content: "\e680";
+}
+
+.uniui-download-filled:before {
+ content: "\e681";
+}
+
+.uniui-pyq:before {
+ content: "\e682";
+}
+
+.uniui-sound:before {
+ content: "\e684";
+}
+
+.uniui-trash-filled:before {
+ content: "\e685";
+}
+
+.uniui-sound-filled:before {
+ content: "\e686";
+}
+
+.uniui-trash:before {
+ content: "\e687";
+}
+
+.uniui-videocam-filled:before {
+ content: "\e689";
+}
+
+.uniui-spinner-cycle:before {
+ content: "\e68a";
+}
+
+.uniui-weibo:before {
+ content: "\e68b";
+}
+
+.uniui-videocam:before {
+ content: "\e68c";
+}
+
+.uniui-download:before {
+ content: "\e68d";
+}
+
+.uniui-help:before {
+ content: "\e679";
+}
+
+.uniui-navigate-filled:before {
+ content: "\e67a";
+}
+
+.uniui-plusempty:before {
+ content: "\e67b";
+}
+
+.uniui-smallcircle:before {
+ content: "\e67c";
+}
+
+.uniui-minus-filled:before {
+ content: "\e67d";
+}
+
+.uniui-micoff:before {
+ content: "\e67e";
+}
+
+.uniui-closeempty:before {
+ content: "\e66c";
+}
+
+.uniui-clear:before {
+ content: "\e66d";
+}
+
+.uniui-navigate:before {
+ content: "\e66e";
+}
+
+.uniui-minus:before {
+ content: "\e66f";
+}
+
+.uniui-image:before {
+ content: "\e670";
+}
+
+.uniui-mic:before {
+ content: "\e671";
+}
+
+.uniui-paperplane:before {
+ content: "\e672";
+}
+
+.uniui-close:before {
+ content: "\e673";
+}
+
+.uniui-help-filled:before {
+ content: "\e674";
+}
+
+.uniui-paperplane-filled:before {
+ content: "\e675";
+}
+
+.uniui-plus:before {
+ content: "\e676";
+}
+
+.uniui-mic-filled:before {
+ content: "\e677";
+}
+
+.uniui-image-filled:before {
+ content: "\e678";
+}
+
+.uniui-locked-filled:before {
+ content: "\e668";
+}
+
+.uniui-info:before {
+ content: "\e669";
+}
+
+.uniui-locked:before {
+ content: "\e66b";
+}
+
+.uniui-camera-filled:before {
+ content: "\e658";
+}
+
+.uniui-chat-filled:before {
+ content: "\e659";
+}
+
+.uniui-camera:before {
+ content: "\e65a";
+}
+
+.uniui-circle:before {
+ content: "\e65b";
+}
+
+.uniui-checkmarkempty:before {
+ content: "\e65c";
+}
+
+.uniui-chat:before {
+ content: "\e65d";
+}
+
+.uniui-circle-filled:before {
+ content: "\e65e";
+}
+
+.uniui-flag:before {
+ content: "\e65f";
+}
+
+.uniui-flag-filled:before {
+ content: "\e660";
+}
+
+.uniui-gear-filled:before {
+ content: "\e661";
+}
+
+.uniui-home:before {
+ content: "\e662";
+}
+
+.uniui-home-filled:before {
+ content: "\e663";
+}
+
+.uniui-gear:before {
+ content: "\e664";
+}
+
+.uniui-smallcircle-filled:before {
+ content: "\e665";
+}
+
+.uniui-map-filled:before {
+ content: "\e666";
+}
+
+.uniui-map:before {
+ content: "\e667";
+}
+
+.uniui-refresh-filled:before {
+ content: "\e656";
+}
+
+.uniui-refresh:before {
+ content: "\e657";
+}
+
+.uniui-cloud-upload:before {
+ content: "\e645";
+}
+
+.uniui-cloud-download-filled:before {
+ content: "\e646";
+}
+
+.uniui-cloud-download:before {
+ content: "\e647";
+}
+
+.uniui-cloud-upload-filled:before {
+ content: "\e648";
+}
+
+.uniui-redo:before {
+ content: "\e64a";
+}
+
+.uniui-images-filled:before {
+ content: "\e64b";
+}
+
+.uniui-undo-filled:before {
+ content: "\e64c";
+}
+
+.uniui-more:before {
+ content: "\e64d";
+}
+
+.uniui-more-filled:before {
+ content: "\e64e";
+}
+
+.uniui-undo:before {
+ content: "\e64f";
+}
+
+.uniui-images:before {
+ content: "\e650";
+}
+
+.uniui-paperclip:before {
+ content: "\e652";
+}
+
+.uniui-settings:before {
+ content: "\e653";
+}
+
+.uniui-search:before {
+ content: "\e654";
+}
+
+.uniui-redo-filled:before {
+ content: "\e655";
+}
+
+.uniui-list:before {
+ content: "\e644";
+}
+
+.uniui-mail-open-filled:before {
+ content: "\e63a";
+}
+
+.uniui-hand-down-filled:before {
+ content: "\e63c";
+}
+
+.uniui-hand-down:before {
+ content: "\e63d";
+}
+
+.uniui-hand-up-filled:before {
+ content: "\e63e";
+}
+
+.uniui-hand-up:before {
+ content: "\e63f";
+}
+
+.uniui-heart-filled:before {
+ content: "\e641";
+}
+
+.uniui-mail-open:before {
+ content: "\e643";
+}
+
+.uniui-heart:before {
+ content: "\e639";
+}
+
+.uniui-loop:before {
+ content: "\e633";
+}
+
+.uniui-pulldown:before {
+ content: "\e632";
+}
+
+.uniui-scan:before {
+ content: "\e62a";
+}
+
+.uniui-bars:before {
+ content: "\e627";
+}
+
+.uniui-cart-filled:before {
+ content: "\e629";
+}
+
+.uniui-checkbox:before {
+ content: "\e62b";
+}
+
+.uniui-checkbox-filled:before {
+ content: "\e62c";
+}
+
+.uniui-shop:before {
+ content: "\e62f";
+}
+
+.uniui-headphones:before {
+ content: "\e630";
+}
+
+.uniui-cart:before {
+ content: "\e631";
+}
diff --git a/.svn/pristine/23/23202b461b734c26671959e91cff0078fd3df488.svn-base b/.svn/pristine/23/23202b461b734c26671959e91cff0078fd3df488.svn-base
new file mode 100644
index 0000000..374323a
Binary files /dev/null and b/.svn/pristine/23/23202b461b734c26671959e91cff0078fd3df488.svn-base differ
diff --git a/.svn/pristine/23/2322c6b4be17e81c8df63fd350bf66b4279b75c9.svn-base b/.svn/pristine/23/2322c6b4be17e81c8df63fd350bf66b4279b75c9.svn-base
new file mode 100644
index 0000000..552407e
Binary files /dev/null and b/.svn/pristine/23/2322c6b4be17e81c8df63fd350bf66b4279b75c9.svn-base differ
diff --git a/.svn/pristine/23/235d3f57fbd78dd9365e5fedd4bc34f2818e1ea5.svn-base b/.svn/pristine/23/235d3f57fbd78dd9365e5fedd4bc34f2818e1ea5.svn-base
new file mode 100644
index 0000000..58b7398
--- /dev/null
+++ b/.svn/pristine/23/235d3f57fbd78dd9365e5fedd4bc34f2818e1ea5.svn-base
@@ -0,0 +1,48 @@
+
+
+
+
+
+ 暂无相关优惠券
+ 确认选择
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.svn/pristine/23/23f258afab249160d232e6c107c15ee28a922b7f.svn-base b/.svn/pristine/23/23f258afab249160d232e6c107c15ee28a922b7f.svn-base
new file mode 100644
index 0000000..9bf1a8f
Binary files /dev/null and b/.svn/pristine/23/23f258afab249160d232e6c107c15ee28a922b7f.svn-base differ
diff --git a/.svn/pristine/24/24cae05a6ceefd927591cf069b07c46c6406e974.svn-base b/.svn/pristine/24/24cae05a6ceefd927591cf069b07c46c6406e974.svn-base
new file mode 100644
index 0000000..01986f1
--- /dev/null
+++ b/.svn/pristine/24/24cae05a6ceefd927591cf069b07c46c6406e974.svn-base
@@ -0,0 +1,12 @@
+import en from './en.json'
+import es from './es.json'
+import fr from './fr.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ es,
+ fr,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git a/.svn/pristine/24/24d0ba3ab9cc2d0beba23fda05dc5fbd05564a70.svn-base b/.svn/pristine/24/24d0ba3ab9cc2d0beba23fda05dc5fbd05564a70.svn-base
new file mode 100644
index 0000000..c5ed030
--- /dev/null
+++ b/.svn/pristine/24/24d0ba3ab9cc2d0beba23fda05dc5fbd05564a70.svn-base
@@ -0,0 +1,88 @@
+
+ {{dateShow}}
+
+
+
+
+
diff --git a/.svn/pristine/26/265ca5e5aaa34d6e1bae3bac9fcd10c074066881.svn-base b/.svn/pristine/26/265ca5e5aaa34d6e1bae3bac9fcd10c074066881.svn-base
new file mode 100644
index 0000000..64f8061
--- /dev/null
+++ b/.svn/pristine/26/265ca5e5aaa34d6e1bae3bac9fcd10c074066881.svn-base
@@ -0,0 +1,9 @@
+{
+ "filter-dropdown.reset": "重置",
+ "filter-dropdown.search": "搜索",
+ "filter-dropdown.submit": "確定",
+ "filter-dropdown.filter": "篩選",
+ "filter-dropdown.gt": "大於等於",
+ "filter-dropdown.lt": "小於等於",
+ "filter-dropdown.date": "日期範圍"
+}
diff --git a/.svn/pristine/26/26f78f778abff80dd39e8206f7dd8f665e3597a1.svn-base b/.svn/pristine/26/26f78f778abff80dd39e8206f7dd8f665e3597a1.svn-base
new file mode 100644
index 0000000..1c95c68
--- /dev/null
+++ b/.svn/pristine/26/26f78f778abff80dd39e8206f7dd8f665e3597a1.svn-base
@@ -0,0 +1,185 @@
+
+
+
+
+ {{weeks.date}}
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/27/27c75335706f4186feb6f99b04d7fdf9c6a783b2.svn-base b/.svn/pristine/27/27c75335706f4186feb6f99b04d7fdf9c6a783b2.svn-base
new file mode 100644
index 0000000..d5cdee6
--- /dev/null
+++ b/.svn/pristine/27/27c75335706f4186feb6f99b04d7fdf9c6a783b2.svn-base
@@ -0,0 +1,171 @@
+
+
+
+ |
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/2a/2ab141441496b91b7e4b04cf29b3da3b5c7a1409.svn-base b/.svn/pristine/2a/2ab141441496b91b7e4b04cf29b3da3b5c7a1409.svn-base
new file mode 100644
index 0000000..22b0f87
Binary files /dev/null and b/.svn/pristine/2a/2ab141441496b91b7e4b04cf29b3da3b5c7a1409.svn-base differ
diff --git a/.svn/pristine/2a/2ab1d3cc5b0759f253e2d0bed47d7ea4b9d2f0a1.svn-base b/.svn/pristine/2a/2ab1d3cc5b0759f253e2d0bed47d7ea4b9d2f0a1.svn-base
new file mode 100644
index 0000000..02a7352
Binary files /dev/null and b/.svn/pristine/2a/2ab1d3cc5b0759f253e2d0bed47d7ea4b9d2f0a1.svn-base differ
diff --git a/.svn/pristine/2b/2be0392f6644ec96f59b75442d3e048678bc4d86.svn-base b/.svn/pristine/2b/2be0392f6644ec96f59b75442d3e048678bc4d86.svn-base
new file mode 100644
index 0000000..fa01c76
Binary files /dev/null and b/.svn/pristine/2b/2be0392f6644ec96f59b75442d3e048678bc4d86.svn-base differ
diff --git a/.svn/pristine/2c/2c1dfc247bd9694a3a44523be2f5cb28fd39334b.svn-base b/.svn/pristine/2c/2c1dfc247bd9694a3a44523be2f5cb28fd39334b.svn-base
new file mode 100644
index 0000000..e298d32
--- /dev/null
+++ b/.svn/pristine/2c/2c1dfc247bd9694a3a44523be2f5cb28fd39334b.svn-base
@@ -0,0 +1,104 @@
+
+
+
+
+ {{ item.business.busname }}
+ {{ status[item.status] }}
+
+
+
+
+
+ {{ goods.name }}
+
+
+
+ 共{{ item.goods.length }}件
+
+
+ 订单时间:{{ item.createtime }}
+ 合计¥{{ item.price }}
+
+
+
+
+
+
+
+ 取消订单
+ 去付款
+
+
+
+ 催发货
+
+
+
+ 确认收货
+
+
+
+ 查看详情
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/2c/2c487b3287045adde2de77e9e155b81ed7e4e56f.svn-base b/.svn/pristine/2c/2c487b3287045adde2de77e9e155b81ed7e4e56f.svn-base
new file mode 100644
index 0000000..66e8bef
--- /dev/null
+++ b/.svn/pristine/2c/2c487b3287045adde2de77e9e155b81ed7e4e56f.svn-base
@@ -0,0 +1,91 @@
+{
+ "id": "uni-list",
+ "displayName": "uni-list 列表",
+ "version": "1.2.1",
+ "description": "List 组件 ,帮助使用者快速构建列表。",
+ "keywords": [
+ "",
+ "uni-ui",
+ "uniui",
+ "列表",
+ "",
+ "list"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-badge",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.svn/pristine/2c/2cd6a6a7cc0b88e0e6ec85965966bf663e76ae1c.svn-base b/.svn/pristine/2c/2cd6a6a7cc0b88e0e6ec85965966bf663e76ae1c.svn-base
new file mode 100644
index 0000000..0c72ffb
--- /dev/null
+++ b/.svn/pristine/2c/2cd6a6a7cc0b88e0e6ec85965966bf663e76ae1c.svn-base
@@ -0,0 +1,4 @@
+{
+ "uni-search-bar.cancel": "cancel",
+ "uni-search-bar.placeholder": "Search enter content"
+}
\ No newline at end of file
diff --git a/.svn/pristine/2e/2e2999f0fe48730b0d95d25fbf2b68fe21a38aeb.svn-base b/.svn/pristine/2e/2e2999f0fe48730b0d95d25fbf2b68fe21a38aeb.svn-base
new file mode 100644
index 0000000..ab4029e
--- /dev/null
+++ b/.svn/pristine/2e/2e2999f0fe48730b0d95d25fbf2b68fe21a38aeb.svn-base
@@ -0,0 +1,92 @@
+{
+ "id": "uni-data-picker",
+ "displayName": "uni-data-picker 数据驱动的picker选择器",
+ "version": "1.0.4",
+ "description": "单列、多列级联选择器,常用于省市区城市选择、公司部门选择、多级分类等场景",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "picker",
+ "级联",
+ "省市区",
+ ""
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-load-more",
+ "uni-icons",
+ "uni-scss"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.svn/pristine/2e/2e36226a933d21442815a635e36500ab0fcb3cba.svn-base b/.svn/pristine/2e/2e36226a933d21442815a635e36500ab0fcb3cba.svn-base
new file mode 100644
index 0000000..c6cf294
Binary files /dev/null and b/.svn/pristine/2e/2e36226a933d21442815a635e36500ab0fcb3cba.svn-base differ
diff --git a/.svn/pristine/2f/2f51ce3ebcccf71c619a6205317a5de4f4e28dc0.svn-base b/.svn/pristine/2f/2f51ce3ebcccf71c619a6205317a5de4f4e28dc0.svn-base
new file mode 100644
index 0000000..c9f08cc
--- /dev/null
+++ b/.svn/pristine/2f/2f51ce3ebcccf71c619a6205317a5de4f4e28dc0.svn-base
@@ -0,0 +1,189 @@
+
+
+
+
+ 昵称(最多6个字)
+
+
+
+ 手机号
+
+
+
+ 验证码
+
+
+ {{verifications?`倒计时${times}s` : '获取验证码' }}
+
+
+
+ 密码
+
+
+
+
+
+ 确认密码
+
+
+
+ 立即注册
+
+ 已有账号
+ 登录
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/30/303bfba03ff2ccff8eccc224a83aa5618f85b340.svn-base b/.svn/pristine/30/303bfba03ff2ccff8eccc224a83aa5618f85b340.svn-base
new file mode 100644
index 0000000..3d6b657
Binary files /dev/null and b/.svn/pristine/30/303bfba03ff2ccff8eccc224a83aa5618f85b340.svn-base differ
diff --git a/.svn/pristine/30/304870bfe769a7b3fa12fc7d0a9e5a735ec2d4b3.svn-base b/.svn/pristine/30/304870bfe769a7b3fa12fc7d0a9e5a735ec2d4b3.svn-base
new file mode 100644
index 0000000..f8b700c
Binary files /dev/null and b/.svn/pristine/30/304870bfe769a7b3fa12fc7d0a9e5a735ec2d4b3.svn-base differ
diff --git a/.svn/pristine/31/315fe6c7a559391770ab569d07078dbc88be740d.svn-base b/.svn/pristine/31/315fe6c7a559391770ab569d07078dbc88be740d.svn-base
new file mode 100644
index 0000000..99c3c58
Binary files /dev/null and b/.svn/pristine/31/315fe6c7a559391770ab569d07078dbc88be740d.svn-base differ
diff --git a/.svn/pristine/31/318cb6de7ececf41491c9b1fe0085af1349088a2.svn-base b/.svn/pristine/31/318cb6de7ececf41491c9b1fe0085af1349088a2.svn-base
new file mode 100644
index 0000000..a87f68e
--- /dev/null
+++ b/.svn/pristine/31/318cb6de7ececf41491c9b1fe0085af1349088a2.svn-base
@@ -0,0 +1,96 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/32/32c21782f525982cb928f00e814b97330913a728.svn-base b/.svn/pristine/32/32c21782f525982cb928f00e814b97330913a728.svn-base
new file mode 100644
index 0000000..a9e2d66
--- /dev/null
+++ b/.svn/pristine/32/32c21782f525982cb928f00e814b97330913a728.svn-base
@@ -0,0 +1,60 @@
+## 1.7.9(2022-04-02)
+- 修复 弹出层内部无法滚动的bug
+## 1.7.8(2022-03-28)
+- 修复 小程序中高度错误的bug
+## 1.7.7(2022-03-17)
+- 修复 快速调用open出现问题的Bug
+## 1.7.6(2022-02-14)
+- 修复 safeArea 属性不能设置为false的bug
+## 1.7.5(2022-01-19)
+- 修复 isMaskClick 失效的bug
+## 1.7.4(2022-01-19)
+- 新增 cancelText \ confirmText 属性 ,可自定义文本
+- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色
+- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题
+## 1.7.3(2022-01-13)
+- 修复 设置 safeArea 属性不生效的bug
+## 1.7.2(2021-11-26)
+- 优化 组件示例
+## 1.7.1(2021-11-26)
+- 修复 vuedoc 文字错误
+## 1.7.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup)
+## 1.6.2(2021-08-24)
+- 新增 支持国际化
+## 1.6.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.6.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.5.0(2021-06-23)
+- 新增 mask-click 遮罩层点击事件
+## 1.4.5(2021-06-22)
+- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.4(2021-06-18)
+- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.3(2021-06-08)
+- 修复 错误的 watch 字段
+- 修复 safeArea 属性不生效的问题
+- 修复 点击内容,再点击遮罩无法关闭的Bug
+## 1.4.2(2021-05-12)
+- 新增 组件示例地址
+## 1.4.1(2021-04-29)
+- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题
+## 1.4.0 (2021-04-29)
+- 新增 type 属性的 left\right 值,支持左右弹出
+- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗
+- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色
+- 新增 safeArea 属性,是否适配底部安全区
+- 修复 App\h5\微信小程序底部安全区占位不对的Bug
+- 修复 App 端弹出等待的Bug
+- 优化 提升低配设备性能,优化动画卡顿问题
+- 优化 更简单的组件自定义方式
+## 1.2.9(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+## 1.2.8(2021-02-05)
+- 调整为uni_modules目录规范
+## 1.2.7(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 支持 PC 端
+- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端
diff --git a/.svn/pristine/32/32d23384072ae277d26e6bb44ae069fa1253519a.svn-base b/.svn/pristine/32/32d23384072ae277d26e6bb44ae069fa1253519a.svn-base
new file mode 100644
index 0000000..7f09e94
--- /dev/null
+++ b/.svn/pristine/32/32d23384072ae277d26e6bb44ae069fa1253519a.svn-base
@@ -0,0 +1,11 @@
+
+
+## Link 链接
+> **组件名:uni-link**
+> 代码块: `uLink`
+
+
+uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打开新网页。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-link)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/.svn/pristine/34/3427f3aef8a287142e86a216971de118ebc90936.svn-base b/.svn/pristine/34/3427f3aef8a287142e86a216971de118ebc90936.svn-base
new file mode 100644
index 0000000..c3cd8c4
--- /dev/null
+++ b/.svn/pristine/34/3427f3aef8a287142e86a216971de118ebc90936.svn-base
@@ -0,0 +1,26 @@
+## 1.3.1(2021-12-20)
+- 修复 在vue页面下略缩图显示不正常的bug
+## 1.3.0(2021-11-19)
+- 重构插槽的用法 ,header 替换为 title
+- 新增 actions 插槽
+- 新增 cover 封面图属性和插槽
+- 新增 padding 内容默认内边距离
+- 新增 margin 卡片默认外边距离
+- 新增 spacing 卡片默认内边距
+- 新增 shadow 卡片阴影属性
+- 取消 mode 属性,可使用组合插槽代替
+- 取消 note 属性 ,使用actions插槽代替
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-card](https://uniapp.dcloud.io/component/uniui/uni-card)
+## 1.2.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.2.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.8(2021-07-01)
+- 优化 图文卡片无图片加载时,提供占位图标
+- 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持)
+- 修复 thumbnail 不存在仍然占位的 bug
+## 1.1.7(2021-05-12)
+- 新增 组件示例地址
+## 1.1.6(2021-02-04)
+- 调整为uni_modules目录规范
diff --git a/.svn/pristine/34/342bd81ed56286eefb98cd87b883a61c2f39c805.svn-base b/.svn/pristine/34/342bd81ed56286eefb98cd87b883a61c2f39c805.svn-base
new file mode 100644
index 0000000..cb9d367
--- /dev/null
+++ b/.svn/pristine/34/342bd81ed56286eefb98cd87b883a61c2f39c805.svn-base
@@ -0,0 +1,16 @@
+## 1.1.1(2021-11-22)
+- 修复 vue3中某些scss变量无法找到的问题
+## 1.1.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-steps](https://uniapp.dcloud.io/component/uniui/uni-steps)
+## 1.0.8(2021-05-12)
+- 新增 项目示例地址
+## 1.0.7(2021-05-06)
+- 修复 uni-steps 横向布局时,多行文字高度不合理的 bug
+## 1.0.6(2021-04-21)
+- 优化 添加依赖 uni-icons, 导入后自动下载依赖
+## 1.0.5(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+
+## 1.0.4(2021-02-05)
+- 调整为uni_modules目录规范
diff --git a/.svn/pristine/35/358a4a277a54c2e6166cc9f50bd145a72fe2c4f5.svn-base b/.svn/pristine/35/358a4a277a54c2e6166cc9f50bd145a72fe2c4f5.svn-base
new file mode 100644
index 0000000..60bbab0
Binary files /dev/null and b/.svn/pristine/35/358a4a277a54c2e6166cc9f50bd145a72fe2c4f5.svn-base differ
diff --git a/.svn/pristine/35/35ac1d8af97ec1b350d48762071dd80068dd96c4.svn-base b/.svn/pristine/35/35ac1d8af97ec1b350d48762071dd80068dd96c4.svn-base
new file mode 100644
index 0000000..7940afc
--- /dev/null
+++ b/.svn/pristine/35/35ac1d8af97ec1b350d48762071dd80068dd96c4.svn-base
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/35/35fa4ec99a2d317d5a2bad1bf32d7ba1244a9381.svn-base b/.svn/pristine/35/35fa4ec99a2d317d5a2bad1bf32d7ba1244a9381.svn-base
new file mode 100644
index 0000000..8b59e4a
--- /dev/null
+++ b/.svn/pristine/35/35fa4ec99a2d317d5a2bad1bf32d7ba1244a9381.svn-base
@@ -0,0 +1,8 @@
+## Badge 数字角标
+> **组件名:uni-data-select**
+> 代码块: `uDataSelect`
+
+数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景,
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-select)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
diff --git a/.svn/pristine/36/362ff5570f551e5d504f300411b3eb8a6dcfaa6b.svn-base b/.svn/pristine/36/362ff5570f551e5d504f300411b3eb8a6dcfaa6b.svn-base
new file mode 100644
index 0000000..cb00d1f
--- /dev/null
+++ b/.svn/pristine/36/362ff5570f551e5d504f300411b3eb8a6dcfaa6b.svn-base
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/37/376fcecc68a5ee195ad3277bc0f616ebfb4a5b83.svn-base b/.svn/pristine/37/376fcecc68a5ee195ad3277bc0f616ebfb4a5b83.svn-base
new file mode 100644
index 0000000..74f2b65
--- /dev/null
+++ b/.svn/pristine/37/376fcecc68a5ee195ad3277bc0f616ebfb4a5b83.svn-base
@@ -0,0 +1,1206 @@
+let QRCode = {};
+(function () {
+ /**
+ * 获取单个字符的utf8编码
+ * unicode BMP平面约65535个字符
+ * @param {num} code
+ * return {array}
+ */
+ function unicodeFormat8(code) {
+ // 1 byte
+ var c0, c1, c2;
+ if (code < 128) {
+ return [code];
+ // 2 bytes
+ } else if (code < 2048) {
+ c0 = 192 + (code >> 6);
+ c1 = 128 + (code & 63);
+ return [c0, c1];
+ // 3 bytes
+ } else {
+ c0 = 224 + (code >> 12);
+ c1 = 128 + (code >> 6 & 63);
+ c2 = 128 + (code & 63);
+ return [c0, c1, c2];
+ }
+ }
+ /**
+ * 获取字符串的utf8编码字节串
+ * @param {string} string
+ * @return {array}
+ */
+ function getUTF8Bytes(string) {
+ var utf8codes = [];
+ for (var i = 0; i < string.length; i++) {
+ var code = string.charCodeAt(i);
+ var utf8 = unicodeFormat8(code);
+ for (var j = 0; j < utf8.length; j++) {
+ utf8codes.push(utf8[j]);
+ }
+ }
+ return utf8codes;
+ }
+ /**
+ * 二维码算法实现
+ * @param {string} data 要编码的信息字符串
+ * @param {num} errorCorrectLevel 纠错等级
+ */
+ function QRCodeAlg(data, errorCorrectLevel) {
+ this.typeNumber = -1; //版本
+ this.errorCorrectLevel = errorCorrectLevel;
+ this.modules = null; //二维矩阵,存放最终结果
+ this.moduleCount = 0; //矩阵大小
+ this.dataCache = null; //数据缓存
+ this.rsBlocks = null; //版本数据信息
+ this.totalDataCount = -1; //可使用的数据量
+ this.data = data;
+ this.utf8bytes = getUTF8Bytes(data);
+ this.make();
+ }
+ QRCodeAlg.prototype = {
+ constructor: QRCodeAlg,
+ /**
+ * 获取二维码矩阵大小
+ * @return {num} 矩阵大小
+ */
+ getModuleCount: function () {
+ return this.moduleCount;
+ },
+ /**
+ * 编码
+ */
+ make: function () {
+ this.getRightType();
+ this.dataCache = this.createData();
+ this.createQrcode();
+ },
+ /**
+ * 设置二位矩阵功能图形
+ * @param {bool} test 表示是否在寻找最好掩膜阶段
+ * @param {num} maskPattern 掩膜的版本
+ */
+ makeImpl: function (maskPattern) {
+ this.moduleCount = this.typeNumber * 4 + 17;
+ this.modules = new Array(this.moduleCount);
+ for (var row = 0; row < this.moduleCount; row++) {
+ this.modules[row] = new Array(this.moduleCount);
+ }
+ this.setupPositionProbePattern(0, 0);
+ this.setupPositionProbePattern(this.moduleCount - 7, 0);
+ this.setupPositionProbePattern(0, this.moduleCount - 7);
+ this.setupPositionAdjustPattern();
+ this.setupTimingPattern();
+ this.setupTypeInfo(true, maskPattern);
+ if (this.typeNumber >= 7) {
+ this.setupTypeNumber(true);
+ }
+ this.mapData(this.dataCache, maskPattern);
+ },
+ /**
+ * 设置二维码的位置探测图形
+ * @param {num} row 探测图形的中心横坐标
+ * @param {num} col 探测图形的中心纵坐标
+ */
+ setupPositionProbePattern: function (row, col) {
+ for (var r = -1; r <= 7; r++) {
+ if (row + r <= -1 || this.moduleCount <= row + r) continue;
+ for (var c = -1; c <= 7; c++) {
+ if (col + c <= -1 || this.moduleCount <= col + c) continue;
+ if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) {
+ this.modules[row + r][col + c] = true;
+ } else {
+ this.modules[row + r][col + c] = false;
+ }
+ }
+ }
+ },
+ /**
+ * 创建二维码
+ * @return {[type]} [description]
+ */
+ createQrcode: function () {
+ var minLostPoint = 0;
+ var pattern = 0;
+ var bestModules = null;
+ for (var i = 0; i < 8; i++) {
+ this.makeImpl(i);
+ var lostPoint = QRUtil.getLostPoint(this);
+ if (i == 0 || minLostPoint > lostPoint) {
+ minLostPoint = lostPoint;
+ pattern = i;
+ bestModules = this.modules;
+ }
+ }
+ this.modules = bestModules;
+ this.setupTypeInfo(false, pattern);
+ if (this.typeNumber >= 7) {
+ this.setupTypeNumber(false);
+ }
+ },
+ /**
+ * 设置定位图形
+ * @return {[type]} [description]
+ */
+ setupTimingPattern: function () {
+ for (var r = 8; r < this.moduleCount - 8; r++) {
+ if (this.modules[r][6] != null) {
+ continue;
+ }
+ this.modules[r][6] = (r % 2 == 0);
+ if (this.modules[6][r] != null) {
+ continue;
+ }
+ this.modules[6][r] = (r % 2 == 0);
+ }
+ },
+ /**
+ * 设置矫正图形
+ * @return {[type]} [description]
+ */
+ setupPositionAdjustPattern: function () {
+ var pos = QRUtil.getPatternPosition(this.typeNumber);
+ for (var i = 0; i < pos.length; i++) {
+ for (var j = 0; j < pos.length; j++) {
+ var row = pos[i];
+ var col = pos[j];
+ if (this.modules[row][col] != null) {
+ continue;
+ }
+ for (var r = -2; r <= 2; r++) {
+ for (var c = -2; c <= 2; c++) {
+ if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) {
+ this.modules[row + r][col + c] = true;
+ } else {
+ this.modules[row + r][col + c] = false;
+ }
+ }
+ }
+ }
+ }
+ },
+ /**
+ * 设置版本信息(7以上版本才有)
+ * @param {bool} test 是否处于判断最佳掩膜阶段
+ * @return {[type]} [description]
+ */
+ setupTypeNumber: function (test) {
+ var bits = QRUtil.getBCHTypeNumber(this.typeNumber);
+ for (var i = 0; i < 18; i++) {
+ var mod = (!test && ((bits >> i) & 1) == 1);
+ this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;
+ this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;
+ }
+ },
+ /**
+ * 设置格式信息(纠错等级和掩膜版本)
+ * @param {bool} test
+ * @param {num} maskPattern 掩膜版本
+ * @return {}
+ */
+ setupTypeInfo: function (test, maskPattern) {
+ var data = (QRErrorCorrectLevel[this.errorCorrectLevel] << 3) | maskPattern;
+ var bits = QRUtil.getBCHTypeInfo(data);
+ // vertical
+ for (var i = 0; i < 15; i++) {
+ var mod = (!test && ((bits >> i) & 1) == 1);
+ if (i < 6) {
+ this.modules[i][8] = mod;
+ } else if (i < 8) {
+ this.modules[i + 1][8] = mod;
+ } else {
+ this.modules[this.moduleCount - 15 + i][8] = mod;
+ }
+ // horizontal
+ var mod = (!test && ((bits >> i) & 1) == 1);
+ if (i < 8) {
+ this.modules[8][this.moduleCount - i - 1] = mod;
+ } else if (i < 9) {
+ this.modules[8][15 - i - 1 + 1] = mod;
+ } else {
+ this.modules[8][15 - i - 1] = mod;
+ }
+ }
+ // fixed module
+ this.modules[this.moduleCount - 8][8] = (!test);
+ },
+ /**
+ * 数据编码
+ * @return {[type]} [description]
+ */
+ createData: function () {
+ var buffer = new QRBitBuffer();
+ var lengthBits = this.typeNumber > 9 ? 16 : 8;
+ buffer.put(4, 4); //添加模式
+ buffer.put(this.utf8bytes.length, lengthBits);
+ for (var i = 0, l = this.utf8bytes.length; i < l; i++) {
+ buffer.put(this.utf8bytes[i], 8);
+ }
+ if (buffer.length + 4 <= this.totalDataCount * 8) {
+ buffer.put(0, 4);
+ }
+ // padding
+ while (buffer.length % 8 != 0) {
+ buffer.putBit(false);
+ }
+ // padding
+ while (true) {
+ if (buffer.length >= this.totalDataCount * 8) {
+ break;
+ }
+ buffer.put(QRCodeAlg.PAD0, 8);
+ if (buffer.length >= this.totalDataCount * 8) {
+ break;
+ }
+ buffer.put(QRCodeAlg.PAD1, 8);
+ }
+ return this.createBytes(buffer);
+ },
+ /**
+ * 纠错码编码
+ * @param {buffer} buffer 数据编码
+ * @return {[type]}
+ */
+ createBytes: function (buffer) {
+ var offset = 0;
+ var maxDcCount = 0;
+ var maxEcCount = 0;
+ var length = this.rsBlock.length / 3;
+ var rsBlocks = new Array();
+ for (var i = 0; i < length; i++) {
+ var count = this.rsBlock[i * 3 + 0];
+ var totalCount = this.rsBlock[i * 3 + 1];
+ var dataCount = this.rsBlock[i * 3 + 2];
+ for (var j = 0; j < count; j++) {
+ rsBlocks.push([dataCount, totalCount]);
+ }
+ }
+ var dcdata = new Array(rsBlocks.length);
+ var ecdata = new Array(rsBlocks.length);
+ for (var r = 0; r < rsBlocks.length; r++) {
+ var dcCount = rsBlocks[r][0];
+ var ecCount = rsBlocks[r][1] - dcCount;
+ maxDcCount = Math.max(maxDcCount, dcCount);
+ maxEcCount = Math.max(maxEcCount, ecCount);
+ dcdata[r] = new Array(dcCount);
+ for (var i = 0; i < dcdata[r].length; i++) {
+ dcdata[r][i] = 0xff & buffer.buffer[i + offset];
+ }
+ offset += dcCount;
+ var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
+ var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);
+ var modPoly = rawPoly.mod(rsPoly);
+ ecdata[r] = new Array(rsPoly.getLength() - 1);
+ for (var i = 0; i < ecdata[r].length; i++) {
+ var modIndex = i + modPoly.getLength() - ecdata[r].length;
+ ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0;
+ }
+ }
+ var data = new Array(this.totalDataCount);
+ var index = 0;
+ for (var i = 0; i < maxDcCount; i++) {
+ for (var r = 0; r < rsBlocks.length; r++) {
+ if (i < dcdata[r].length) {
+ data[index++] = dcdata[r][i];
+ }
+ }
+ }
+ for (var i = 0; i < maxEcCount; i++) {
+ for (var r = 0; r < rsBlocks.length; r++) {
+ if (i < ecdata[r].length) {
+ data[index++] = ecdata[r][i];
+ }
+ }
+ }
+ return data;
+
+ },
+ /**
+ * 布置模块,构建最终信息
+ * @param {} data
+ * @param {} maskPattern
+ * @return {}
+ */
+ mapData: function (data, maskPattern) {
+ var inc = -1;
+ var row = this.moduleCount - 1;
+ var bitIndex = 7;
+ var byteIndex = 0;
+ for (var col = this.moduleCount - 1; col > 0; col -= 2) {
+ if (col == 6) col--;
+ while (true) {
+ for (var c = 0; c < 2; c++) {
+ if (this.modules[row][col - c] == null) {
+ var dark = false;
+ if (byteIndex < data.length) {
+ dark = (((data[byteIndex] >>> bitIndex) & 1) == 1);
+ }
+ var mask = QRUtil.getMask(maskPattern, row, col - c);
+ if (mask) {
+ dark = !dark;
+ }
+ this.modules[row][col - c] = dark;
+ bitIndex--;
+ if (bitIndex == -1) {
+ byteIndex++;
+ bitIndex = 7;
+ }
+ }
+ }
+ row += inc;
+ if (row < 0 || this.moduleCount <= row) {
+ row -= inc;
+ inc = -inc;
+ break;
+ }
+ }
+ }
+ }
+ };
+ /**
+ * 填充字段
+ */
+ QRCodeAlg.PAD0 = 0xEC;
+ QRCodeAlg.PAD1 = 0x11;
+ //---------------------------------------------------------------------
+ // 纠错等级对应的编码
+ //---------------------------------------------------------------------
+ var QRErrorCorrectLevel = [1, 0, 3, 2];
+ //---------------------------------------------------------------------
+ // 掩膜版本
+ //---------------------------------------------------------------------
+ var QRMaskPattern = {
+ PATTERN000: 0,
+ PATTERN001: 1,
+ PATTERN010: 2,
+ PATTERN011: 3,
+ PATTERN100: 4,
+ PATTERN101: 5,
+ PATTERN110: 6,
+ PATTERN111: 7
+ };
+ //---------------------------------------------------------------------
+ // 工具类
+ //---------------------------------------------------------------------
+ var QRUtil = {
+ /*
+ 每个版本矫正图形的位置
+ */
+ PATTERN_POSITION_TABLE: [
+ [],
+ [6, 18],
+ [6, 22],
+ [6, 26],
+ [6, 30],
+ [6, 34],
+ [6, 22, 38],
+ [6, 24, 42],
+ [6, 26, 46],
+ [6, 28, 50],
+ [6, 30, 54],
+ [6, 32, 58],
+ [6, 34, 62],
+ [6, 26, 46, 66],
+ [6, 26, 48, 70],
+ [6, 26, 50, 74],
+ [6, 30, 54, 78],
+ [6, 30, 56, 82],
+ [6, 30, 58, 86],
+ [6, 34, 62, 90],
+ [6, 28, 50, 72, 94],
+ [6, 26, 50, 74, 98],
+ [6, 30, 54, 78, 102],
+ [6, 28, 54, 80, 106],
+ [6, 32, 58, 84, 110],
+ [6, 30, 58, 86, 114],
+ [6, 34, 62, 90, 118],
+ [6, 26, 50, 74, 98, 122],
+ [6, 30, 54, 78, 102, 126],
+ [6, 26, 52, 78, 104, 130],
+ [6, 30, 56, 82, 108, 134],
+ [6, 34, 60, 86, 112, 138],
+ [6, 30, 58, 86, 114, 142],
+ [6, 34, 62, 90, 118, 146],
+ [6, 30, 54, 78, 102, 126, 150],
+ [6, 24, 50, 76, 102, 128, 154],
+ [6, 28, 54, 80, 106, 132, 158],
+ [6, 32, 58, 84, 110, 136, 162],
+ [6, 26, 54, 82, 110, 138, 166],
+ [6, 30, 58, 86, 114, 142, 170]
+ ],
+ G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),
+ G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),
+ G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),
+ /*
+ BCH编码格式信息
+ */
+ getBCHTypeInfo: function (data) {
+ var d = data << 10;
+ while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {
+ d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15)));
+ }
+ return ((data << 10) | d) ^ QRUtil.G15_MASK;
+ },
+ /*
+ BCH编码版本信息
+ */
+ getBCHTypeNumber: function (data) {
+ var d = data << 12;
+ while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {
+ d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18)));
+ }
+ return (data << 12) | d;
+ },
+ /*
+ 获取BCH位信息
+ */
+ getBCHDigit: function (data) {
+ var digit = 0;
+ while (data != 0) {
+ digit++;
+ data >>>= 1;
+ }
+ return digit;
+ },
+ /*
+ 获取版本对应的矫正图形位置
+ */
+ getPatternPosition: function (typeNumber) {
+ return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];
+ },
+ /*
+ 掩膜算法
+ */
+ getMask: function (maskPattern, i, j) {
+ switch (maskPattern) {
+ case QRMaskPattern.PATTERN000:
+ return (i + j) % 2 == 0;
+ case QRMaskPattern.PATTERN001:
+ return i % 2 == 0;
+ case QRMaskPattern.PATTERN010:
+ return j % 3 == 0;
+ case QRMaskPattern.PATTERN011:
+ return (i + j) % 3 == 0;
+ case QRMaskPattern.PATTERN100:
+ return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0;
+ case QRMaskPattern.PATTERN101:
+ return (i * j) % 2 + (i * j) % 3 == 0;
+ case QRMaskPattern.PATTERN110:
+ return ((i * j) % 2 + (i * j) % 3) % 2 == 0;
+ case QRMaskPattern.PATTERN111:
+ return ((i * j) % 3 + (i + j) % 2) % 2 == 0;
+ default:
+ throw new Error("bad maskPattern:" + maskPattern);
+ }
+ },
+ /*
+ 获取RS的纠错多项式
+ */
+ getErrorCorrectPolynomial: function (errorCorrectLength) {
+ var a = new QRPolynomial([1], 0);
+ for (var i = 0; i < errorCorrectLength; i++) {
+ a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0));
+ }
+ return a;
+ },
+ /*
+ 获取评价
+ */
+ getLostPoint: function (qrCode) {
+ var moduleCount = qrCode.getModuleCount(),
+ lostPoint = 0,
+ darkCount = 0;
+ for (var row = 0; row < moduleCount; row++) {
+ var sameCount = 0;
+ var head = qrCode.modules[row][0];
+ for (var col = 0; col < moduleCount; col++) {
+ var current = qrCode.modules[row][col];
+ //level 3 评价
+ if (col < moduleCount - 6) {
+ if (current && !qrCode.modules[row][col + 1] && qrCode.modules[row][col + 2] && qrCode.modules[row][col + 3] && qrCode.modules[row][col + 4] && !qrCode.modules[row][col + 5] && qrCode.modules[row][col + 6]) {
+ if (col < moduleCount - 10) {
+ if (qrCode.modules[row][col + 7] && qrCode.modules[row][col + 8] && qrCode.modules[row][col + 9] && qrCode.modules[row][col + 10]) {
+ lostPoint += 40;
+ }
+ } else if (col > 3) {
+ if (qrCode.modules[row][col - 1] && qrCode.modules[row][col - 2] && qrCode.modules[row][col - 3] && qrCode.modules[row][col - 4]) {
+ lostPoint += 40;
+ }
+ }
+ }
+ }
+ //level 2 评价
+ if ((row < moduleCount - 1) && (col < moduleCount - 1)) {
+ var count = 0;
+ if (current) count++;
+ if (qrCode.modules[row + 1][col]) count++;
+ if (qrCode.modules[row][col + 1]) count++;
+ if (qrCode.modules[row + 1][col + 1]) count++;
+ if (count == 0 || count == 4) {
+ lostPoint += 3;
+ }
+ }
+ //level 1 评价
+ if (head ^ current) {
+ sameCount++;
+ } else {
+ head = current;
+ if (sameCount >= 5) {
+ lostPoint += (3 + sameCount - 5);
+ }
+ sameCount = 1;
+ }
+ //level 4 评价
+ if (current) {
+ darkCount++;
+ }
+ }
+ }
+ for (var col = 0; col < moduleCount; col++) {
+ var sameCount = 0;
+ var head = qrCode.modules[0][col];
+ for (var row = 0; row < moduleCount; row++) {
+ var current = qrCode.modules[row][col];
+ //level 3 评价
+ if (row < moduleCount - 6) {
+ if (current && !qrCode.modules[row + 1][col] && qrCode.modules[row + 2][col] && qrCode.modules[row + 3][col] && qrCode.modules[row + 4][col] && !qrCode.modules[row + 5][col] && qrCode.modules[row + 6][col]) {
+ if (row < moduleCount - 10) {
+ if (qrCode.modules[row + 7][col] && qrCode.modules[row + 8][col] && qrCode.modules[row + 9][col] && qrCode.modules[row + 10][col]) {
+ lostPoint += 40;
+ }
+ } else if (row > 3) {
+ if (qrCode.modules[row - 1][col] && qrCode.modules[row - 2][col] && qrCode.modules[row - 3][col] && qrCode.modules[row - 4][col]) {
+ lostPoint += 40;
+ }
+ }
+ }
+ }
+ //level 1 评价
+ if (head ^ current) {
+ sameCount++;
+ } else {
+ head = current;
+ if (sameCount >= 5) {
+ lostPoint += (3 + sameCount - 5);
+ }
+ sameCount = 1;
+ }
+ }
+ }
+ // LEVEL4
+ var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;
+ lostPoint += ratio * 10;
+ return lostPoint;
+ }
+
+ };
+ //---------------------------------------------------------------------
+ // QRMath使用的数学工具
+ //---------------------------------------------------------------------
+ var QRMath = {
+ /*
+ 将n转化为a^m
+ */
+ glog: function (n) {
+ if (n < 1) {
+ throw new Error("glog(" + n + ")");
+ }
+ return QRMath.LOG_TABLE[n];
+ },
+ /*
+ 将a^m转化为n
+ */
+ gexp: function (n) {
+ while (n < 0) {
+ n += 255;
+ }
+ while (n >= 256) {
+ n -= 255;
+ }
+ return QRMath.EXP_TABLE[n];
+ },
+ EXP_TABLE: new Array(256),
+ LOG_TABLE: new Array(256)
+
+ };
+ for (var i = 0; i < 8; i++) {
+ QRMath.EXP_TABLE[i] = 1 << i;
+ }
+ for (var i = 8; i < 256; i++) {
+ QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8];
+ }
+ for (var i = 0; i < 255; i++) {
+ QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i;
+ }
+ //---------------------------------------------------------------------
+ // QRPolynomial 多项式
+ //---------------------------------------------------------------------
+ /**
+ * 多项式类
+ * @param {Array} num 系数
+ * @param {num} shift a^shift
+ */
+ function QRPolynomial(num, shift) {
+ if (num.length == undefined) {
+ throw new Error(num.length + "/" + shift);
+ }
+ var offset = 0;
+ while (offset < num.length && num[offset] == 0) {
+ offset++;
+ }
+ this.num = new Array(num.length - offset + shift);
+ for (var i = 0; i < num.length - offset; i++) {
+ this.num[i] = num[i + offset];
+ }
+ }
+ QRPolynomial.prototype = {
+ get: function (index) {
+ return this.num[index];
+ },
+ getLength: function () {
+ return this.num.length;
+ },
+ /**
+ * 多项式乘法
+ * @param {QRPolynomial} e 被乘多项式
+ * @return {[type]} [description]
+ */
+ multiply: function (e) {
+ var num = new Array(this.getLength() + e.getLength() - 1);
+ for (var i = 0; i < this.getLength(); i++) {
+ for (var j = 0; j < e.getLength(); j++) {
+ num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)));
+ }
+ }
+ return new QRPolynomial(num, 0);
+ },
+ /**
+ * 多项式模运算
+ * @param {QRPolynomial} e 模多项式
+ * @return {}
+ */
+ mod: function (e) {
+ var tl = this.getLength(),
+ el = e.getLength();
+ if (tl - el < 0) {
+ return this;
+ }
+ var num = new Array(tl);
+ for (var i = 0; i < tl; i++) {
+ num[i] = this.get(i);
+ }
+ while (num.length >= el) {
+ var ratio = QRMath.glog(num[0]) - QRMath.glog(e.get(0));
+
+ for (var i = 0; i < e.getLength(); i++) {
+ num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio);
+ }
+ while (num[0] == 0) {
+ num.shift();
+ }
+ }
+ return new QRPolynomial(num, 0);
+ }
+ };
+
+ //---------------------------------------------------------------------
+ // RS_BLOCK_TABLE
+ //---------------------------------------------------------------------
+ /*
+ 二维码各个版本信息[块数, 每块中的数据块数, 每块中的信息块数]
+ */
+ var RS_BLOCK_TABLE = [
+ // L
+ // M
+ // Q
+ // H
+ // 1
+ [1, 26, 19],
+ [1, 26, 16],
+ [1, 26, 13],
+ [1, 26, 9],
+
+ // 2
+ [1, 44, 34],
+ [1, 44, 28],
+ [1, 44, 22],
+ [1, 44, 16],
+
+ // 3
+ [1, 70, 55],
+ [1, 70, 44],
+ [2, 35, 17],
+ [2, 35, 13],
+
+ // 4
+ [1, 100, 80],
+ [2, 50, 32],
+ [2, 50, 24],
+ [4, 25, 9],
+
+ // 5
+ [1, 134, 108],
+ [2, 67, 43],
+ [2, 33, 15, 2, 34, 16],
+ [2, 33, 11, 2, 34, 12],
+
+ // 6
+ [2, 86, 68],
+ [4, 43, 27],
+ [4, 43, 19],
+ [4, 43, 15],
+
+ // 7
+ [2, 98, 78],
+ [4, 49, 31],
+ [2, 32, 14, 4, 33, 15],
+ [4, 39, 13, 1, 40, 14],
+
+ // 8
+ [2, 121, 97],
+ [2, 60, 38, 2, 61, 39],
+ [4, 40, 18, 2, 41, 19],
+ [4, 40, 14, 2, 41, 15],
+
+ // 9
+ [2, 146, 116],
+ [3, 58, 36, 2, 59, 37],
+ [4, 36, 16, 4, 37, 17],
+ [4, 36, 12, 4, 37, 13],
+
+ // 10
+ [2, 86, 68, 2, 87, 69],
+ [4, 69, 43, 1, 70, 44],
+ [6, 43, 19, 2, 44, 20],
+ [6, 43, 15, 2, 44, 16],
+
+ // 11
+ [4, 101, 81],
+ [1, 80, 50, 4, 81, 51],
+ [4, 50, 22, 4, 51, 23],
+ [3, 36, 12, 8, 37, 13],
+
+ // 12
+ [2, 116, 92, 2, 117, 93],
+ [6, 58, 36, 2, 59, 37],
+ [4, 46, 20, 6, 47, 21],
+ [7, 42, 14, 4, 43, 15],
+
+ // 13
+ [4, 133, 107],
+ [8, 59, 37, 1, 60, 38],
+ [8, 44, 20, 4, 45, 21],
+ [12, 33, 11, 4, 34, 12],
+
+ // 14
+ [3, 145, 115, 1, 146, 116],
+ [4, 64, 40, 5, 65, 41],
+ [11, 36, 16, 5, 37, 17],
+ [11, 36, 12, 5, 37, 13],
+
+ // 15
+ [5, 109, 87, 1, 110, 88],
+ [5, 65, 41, 5, 66, 42],
+ [5, 54, 24, 7, 55, 25],
+ [11, 36, 12],
+
+ // 16
+ [5, 122, 98, 1, 123, 99],
+ [7, 73, 45, 3, 74, 46],
+ [15, 43, 19, 2, 44, 20],
+ [3, 45, 15, 13, 46, 16],
+
+ // 17
+ [1, 135, 107, 5, 136, 108],
+ [10, 74, 46, 1, 75, 47],
+ [1, 50, 22, 15, 51, 23],
+ [2, 42, 14, 17, 43, 15],
+
+ // 18
+ [5, 150, 120, 1, 151, 121],
+ [9, 69, 43, 4, 70, 44],
+ [17, 50, 22, 1, 51, 23],
+ [2, 42, 14, 19, 43, 15],
+
+ // 19
+ [3, 141, 113, 4, 142, 114],
+ [3, 70, 44, 11, 71, 45],
+ [17, 47, 21, 4, 48, 22],
+ [9, 39, 13, 16, 40, 14],
+
+ // 20
+ [3, 135, 107, 5, 136, 108],
+ [3, 67, 41, 13, 68, 42],
+ [15, 54, 24, 5, 55, 25],
+ [15, 43, 15, 10, 44, 16],
+
+ // 21
+ [4, 144, 116, 4, 145, 117],
+ [17, 68, 42],
+ [17, 50, 22, 6, 51, 23],
+ [19, 46, 16, 6, 47, 17],
+
+ // 22
+ [2, 139, 111, 7, 140, 112],
+ [17, 74, 46],
+ [7, 54, 24, 16, 55, 25],
+ [34, 37, 13],
+
+ // 23
+ [4, 151, 121, 5, 152, 122],
+ [4, 75, 47, 14, 76, 48],
+ [11, 54, 24, 14, 55, 25],
+ [16, 45, 15, 14, 46, 16],
+
+ // 24
+ [6, 147, 117, 4, 148, 118],
+ [6, 73, 45, 14, 74, 46],
+ [11, 54, 24, 16, 55, 25],
+ [30, 46, 16, 2, 47, 17],
+
+ // 25
+ [8, 132, 106, 4, 133, 107],
+ [8, 75, 47, 13, 76, 48],
+ [7, 54, 24, 22, 55, 25],
+ [22, 45, 15, 13, 46, 16],
+
+ // 26
+ [10, 142, 114, 2, 143, 115],
+ [19, 74, 46, 4, 75, 47],
+ [28, 50, 22, 6, 51, 23],
+ [33, 46, 16, 4, 47, 17],
+
+ // 27
+ [8, 152, 122, 4, 153, 123],
+ [22, 73, 45, 3, 74, 46],
+ [8, 53, 23, 26, 54, 24],
+ [12, 45, 15, 28, 46, 16],
+
+ // 28
+ [3, 147, 117, 10, 148, 118],
+ [3, 73, 45, 23, 74, 46],
+ [4, 54, 24, 31, 55, 25],
+ [11, 45, 15, 31, 46, 16],
+
+ // 29
+ [7, 146, 116, 7, 147, 117],
+ [21, 73, 45, 7, 74, 46],
+ [1, 53, 23, 37, 54, 24],
+ [19, 45, 15, 26, 46, 16],
+
+ // 30
+ [5, 145, 115, 10, 146, 116],
+ [19, 75, 47, 10, 76, 48],
+ [15, 54, 24, 25, 55, 25],
+ [23, 45, 15, 25, 46, 16],
+
+ // 31
+ [13, 145, 115, 3, 146, 116],
+ [2, 74, 46, 29, 75, 47],
+ [42, 54, 24, 1, 55, 25],
+ [23, 45, 15, 28, 46, 16],
+
+ // 32
+ [17, 145, 115],
+ [10, 74, 46, 23, 75, 47],
+ [10, 54, 24, 35, 55, 25],
+ [19, 45, 15, 35, 46, 16],
+
+ // 33
+ [17, 145, 115, 1, 146, 116],
+ [14, 74, 46, 21, 75, 47],
+ [29, 54, 24, 19, 55, 25],
+ [11, 45, 15, 46, 46, 16],
+
+ // 34
+ [13, 145, 115, 6, 146, 116],
+ [14, 74, 46, 23, 75, 47],
+ [44, 54, 24, 7, 55, 25],
+ [59, 46, 16, 1, 47, 17],
+
+ // 35
+ [12, 151, 121, 7, 152, 122],
+ [12, 75, 47, 26, 76, 48],
+ [39, 54, 24, 14, 55, 25],
+ [22, 45, 15, 41, 46, 16],
+
+ // 36
+ [6, 151, 121, 14, 152, 122],
+ [6, 75, 47, 34, 76, 48],
+ [46, 54, 24, 10, 55, 25],
+ [2, 45, 15, 64, 46, 16],
+
+ // 37
+ [17, 152, 122, 4, 153, 123],
+ [29, 74, 46, 14, 75, 47],
+ [49, 54, 24, 10, 55, 25],
+ [24, 45, 15, 46, 46, 16],
+
+ // 38
+ [4, 152, 122, 18, 153, 123],
+ [13, 74, 46, 32, 75, 47],
+ [48, 54, 24, 14, 55, 25],
+ [42, 45, 15, 32, 46, 16],
+
+ // 39
+ [20, 147, 117, 4, 148, 118],
+ [40, 75, 47, 7, 76, 48],
+ [43, 54, 24, 22, 55, 25],
+ [10, 45, 15, 67, 46, 16],
+
+ // 40
+ [19, 148, 118, 6, 149, 119],
+ [18, 75, 47, 31, 76, 48],
+ [34, 54, 24, 34, 55, 25],
+ [20, 45, 15, 61, 46, 16]
+ ];
+
+ /**
+ * 根据数据获取对应版本
+ * @return {[type]} [description]
+ */
+ QRCodeAlg.prototype.getRightType = function () {
+ for (var typeNumber = 1; typeNumber < 41; typeNumber++) {
+ var rsBlock = RS_BLOCK_TABLE[(typeNumber - 1) * 4 + this.errorCorrectLevel];
+ if (rsBlock == undefined) {
+ throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + this.errorCorrectLevel);
+ }
+ var length = rsBlock.length / 3;
+ var totalDataCount = 0;
+ for (var i = 0; i < length; i++) {
+ var count = rsBlock[i * 3 + 0];
+ var dataCount = rsBlock[i * 3 + 2];
+ totalDataCount += dataCount * count;
+ }
+ var lengthBytes = typeNumber > 9 ? 2 : 1;
+ if (this.utf8bytes.length + lengthBytes < totalDataCount || typeNumber == 40) {
+ this.typeNumber = typeNumber;
+ this.rsBlock = rsBlock;
+ this.totalDataCount = totalDataCount;
+ break;
+ }
+ }
+ };
+
+ //---------------------------------------------------------------------
+ // QRBitBuffer
+ //---------------------------------------------------------------------
+ function QRBitBuffer() {
+ this.buffer = new Array();
+ this.length = 0;
+ }
+ QRBitBuffer.prototype = {
+ get: function (index) {
+ var bufIndex = Math.floor(index / 8);
+ return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1);
+ },
+ put: function (num, length) {
+ for (var i = 0; i < length; i++) {
+ this.putBit(((num >>> (length - i - 1)) & 1));
+ }
+ },
+ putBit: function (bit) {
+ var bufIndex = Math.floor(this.length / 8);
+ if (this.buffer.length <= bufIndex) {
+ this.buffer.push(0);
+ }
+ if (bit) {
+ this.buffer[bufIndex] |= (0x80 >>> (this.length % 8));
+ }
+ this.length++;
+ }
+ };
+
+
+
+ // xzedit
+ let qrcodeAlgObjCache = [];
+ /**
+ * 二维码构造函数,主要用于绘制
+ * @param {参数列表} opt 传递参数
+ * @return {}
+ */
+ QRCode = function (opt) {
+ //设置默认参数
+ this.options = {
+ text: '',
+ size: 256,
+ correctLevel: 3,
+ background: '#ffffff',
+ foreground: '#000000',
+ pdground: '#000000',
+ image: '',
+ imageSize: 30,
+ canvasId: opt.canvasId,
+ context: opt.context,
+ usingComponents: opt.usingComponents,
+ showLoading: opt.showLoading,
+ loadingText: opt.loadingText,
+ };
+ if (typeof opt === 'string') { // 只编码ASCII字符串
+ opt = {
+ text: opt
+ };
+ }
+ if (opt) {
+ for (var i in opt) {
+ this.options[i] = opt[i];
+ }
+ }
+ //使用QRCodeAlg创建二维码结构
+ var qrCodeAlg = null;
+ for (var i = 0, l = qrcodeAlgObjCache.length; i < l; i++) {
+ if (qrcodeAlgObjCache[i].text == this.options.text && qrcodeAlgObjCache[i].text.correctLevel == this.options.correctLevel) {
+ qrCodeAlg = qrcodeAlgObjCache[i].obj;
+ break;
+ }
+ }
+ if (i == l) {
+ qrCodeAlg = new QRCodeAlg(this.options.text, this.options.correctLevel);
+ qrcodeAlgObjCache.push({
+ text: this.options.text,
+ correctLevel: this.options.correctLevel,
+ obj: qrCodeAlg
+ });
+ }
+ /**
+ * 计算矩阵点的前景色
+ * @param {Obj} config
+ * @param {Number} config.row 点x坐标
+ * @param {Number} config.col 点y坐标
+ * @param {Number} config.count 矩阵大小
+ * @param {Number} config.options 组件的options
+ * @return {String}
+ */
+ let getForeGround = function (config) {
+ var options = config.options;
+ if (options.pdground && (
+ (config.row > 1 && config.row < 5 && config.col > 1 && config.col < 5) ||
+ (config.row > (config.count - 6) && config.row < (config.count - 2) && config.col > 1 && config.col < 5) ||
+ (config.row > 1 && config.row < 5 && config.col > (config.count - 6) && config.col < (config.count - 2))
+ )) {
+ return options.pdground;
+ }
+ return options.foreground;
+ }
+ // 创建canvas
+ let createCanvas = function (options) {
+ if(options.showLoading){
+ uni.showLoading({
+ title: options.loadingText,
+ mask: true
+ });
+ }
+ var ctx = uni.createCanvasContext(options.canvasId, options.context);
+ var count = qrCodeAlg.getModuleCount();
+ var ratioSize = options.size;
+ var ratioImgSize = options.imageSize;
+ //计算每个点的长宽
+ var tileW = (ratioSize / count).toPrecision(4);
+ var tileH = (ratioSize / count).toPrecision(4);
+ //绘制
+ for (var row = 0; row < count; row++) {
+ for (var col = 0; col < count; col++) {
+ var w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW));
+ var h = (Math.ceil((row + 1) * tileW) - Math.floor(row * tileW));
+ var foreground = getForeGround({
+ row: row,
+ col: col,
+ count: count,
+ options: options
+ });
+ ctx.setFillStyle(qrCodeAlg.modules[row][col] ? foreground : options.background);
+ ctx.fillRect(Math.round(col * tileW), Math.round(row * tileH), w, h);
+ }
+ }
+ if (options.image) {
+ var x = Number(((ratioSize - ratioImgSize) / 2).toFixed(2));
+ var y = Number(((ratioSize - ratioImgSize) / 2).toFixed(2));
+ drawRoundedRect(ctx, x, y, ratioImgSize, ratioImgSize, 2, 6, true, true)
+ ctx.drawImage(options.image, x, y, ratioImgSize, ratioImgSize);
+ // 画圆角矩形
+ function drawRoundedRect(ctxi, x, y, width, height, r, lineWidth, fill, stroke) {
+ ctxi.setLineWidth(lineWidth);
+ ctxi.setFillStyle(options.background);
+ ctxi.setStrokeStyle(options.background);
+ ctxi.beginPath(); // draw top and top right corner
+ ctxi.moveTo(x + r, y);
+ ctxi.arcTo(x + width, y, x + width, y + r, r); // draw right side and bottom right corner
+ ctxi.arcTo(x + width, y + height, x + width - r, y + height, r); // draw bottom and bottom left corner
+ ctxi.arcTo(x, y + height, x, y + height - r, r); // draw left and top left corner
+ ctxi.arcTo(x, y, x + r, y, r);
+ ctxi.closePath();
+ if (fill) {
+ ctxi.fill();
+ }
+ if (stroke) {
+ ctxi.stroke();
+ }
+ }
+ }
+ setTimeout(() => {
+ ctx.draw(true, () => {
+ // 保存到临时区域
+ setTimeout(() => {
+ uni.canvasToTempFilePath({
+ width: options.width,
+ height: options.height,
+ destWidth: options.width,
+ destHeight: options.height,
+ canvasId: options.canvasId,
+ quality: Number(1),
+ success: function (res) {
+ if (options.cbResult) {
+ // 由于官方还没有统一此接口的输出字段,所以先判定下 支付宝为 res.apFilePath
+ if (!empty(res.tempFilePath)) {
+ options.cbResult(res.tempFilePath)
+ } else if (!empty(res.apFilePath)) {
+ options.cbResult(res.apFilePath)
+ } else {
+ options.cbResult(res.tempFilePath)
+ }
+ }
+ },
+ fail: function (res) {
+ if (options.cbResult) {
+ options.cbResult(res)
+ }
+ },
+ complete: function () {
+ uni.hideLoading();
+ },
+ }, options.context);
+ }, options.text.length + 100);
+ });
+ }, options.usingComponents ? 0 : 150);
+ }
+ createCanvas(this.options);
+ // 空判定
+ let empty = function (v) {
+ let tp = typeof v,
+ rt = false;
+ if (tp == "number" && String(v) == "") {
+ rt = true
+ } else if (tp == "undefined") {
+ rt = true
+ } else if (tp == "object") {
+ if (JSON.stringify(v) == "{}" || JSON.stringify(v) == "[]" || v == null) rt = true
+ } else if (tp == "string") {
+ if (v == "" || v == "undefined" || v == "null" || v == "{}" || v == "[]") rt = true
+ } else if (tp == "function") {
+ rt = false
+ }
+ return rt
+ }
+ };
+ QRCode.prototype.clear = function (fn) {
+ var ctx = uni.createCanvasContext(this.options.canvasId, this.options.context)
+ ctx.clearRect(0, 0, this.options.size, this.options.size)
+ ctx.draw(false, () => {
+ if (fn) {
+ fn()
+ }
+ })
+ };
+})()
+
+export default QRCode
\ No newline at end of file
diff --git a/.svn/pristine/38/386ef0c6958610351679f6b5f929c7421c0dce2c.svn-base b/.svn/pristine/38/386ef0c6958610351679f6b5f929c7421c0dce2c.svn-base
new file mode 100644
index 0000000..125c0e7
--- /dev/null
+++ b/.svn/pristine/38/386ef0c6958610351679f6b5f929c7421c0dce2c.svn-base
@@ -0,0 +1,89 @@
+{
+ "id": "uni-indexed-list",
+ "displayName": "uni-indexed-list 索引列表",
+ "version": "1.2.1",
+ "description": "索引列表组件,右侧带索引的列表,方便快速定位到具体内容,通常用于城市/机场选择等场景",
+ "keywords": [
+ "uni-ui",
+ "索引列表",
+ "索引",
+ "列表"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git a/.svn/pristine/38/38d70dacc22b7467f74fa8c63b946fc3d244d641.svn-base b/.svn/pristine/38/38d70dacc22b7467f74fa8c63b946fc3d244d641.svn-base
new file mode 100644
index 0000000..74db9af
--- /dev/null
+++ b/.svn/pristine/38/38d70dacc22b7467f74fa8c63b946fc3d244d641.svn-base
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+ {{item.monthDay}}
+ {{item.hourMinute}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.status}}
+ {{item.context}}
+ {{item.createTime}}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.svn/pristine/3a/3a3dbb0655040bc47ffbece717d9b5e58b7ce9b9.svn-base b/.svn/pristine/3a/3a3dbb0655040bc47ffbece717d9b5e58b7ce9b9.svn-base
new file mode 100644
index 0000000..4b3f8c2
--- /dev/null
+++ b/.svn/pristine/3a/3a3dbb0655040bc47ffbece717d9b5e58b7ce9b9.svn-base
@@ -0,0 +1,17 @@
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fav](https://uniapp.dcloud.io/component/uniui/uni-fav)
+## 1.1.1(2021-08-24)
+- 新增 支持国际化
+## 1.1.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.6(2021-05-12)
+- 新增 组件示例地址
+## 1.0.5(2021-04-21)
+- 优化 添加依赖 uni-icons, 导入后自动下载依赖
+## 1.0.4(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+## 1.0.3(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+## 1.0.2(2021-02-05)
+- 调整为uni_modules目录规范
diff --git a/.svn/pristine/3a/3a514e699f9d976f2328a74921563486dc6748f2.svn-base b/.svn/pristine/3a/3a514e699f9d976f2328a74921563486dc6748f2.svn-base
new file mode 100644
index 0000000..718d6ef
--- /dev/null
+++ b/.svn/pristine/3a/3a514e699f9d976f2328a74921563486dc6748f2.svn-base
@@ -0,0 +1,31 @@
+function AMapWX(a){this.key=a.key;this.requestConfig={key:a.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};this.MeRequestConfig={key:a.key,serviceName:"https://restapi.amap.com/rest/me"}}
+AMapWX.prototype.getWxLocation=function(a,b){wx.getLocation({type:"gcj02",success:function(c){c=c.longitude+","+c.latitude;wx.setStorage({key:"userLocation",data:c});b(c)},fail:function(c){wx.getStorage({key:"userLocation",success:function(d){d.data&&b(d.data)}});a.fail({errCode:"0",errMsg:c.errMsg||""})}})};
+AMapWX.prototype.getMEKeywordsSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.city&&(d.city=b.city);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize);b.sig&&(d.sig=
+b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/local",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
+AMapWX.prototype.getMEIdSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.id&&(d.id=b.id);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/id",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&
+0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
+AMapWX.prototype.getMEPolygonSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.polygon&&(d.polygon=b.polygon);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize);
+b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/polygon",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
+AMapWX.prototype.getMEaroundSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.center&&(d.center=b.center);b.radius&&(d.radius=b.radius);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&
+(d.pageSize=b.pageSize);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/around",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})};
+AMapWX.prototype.getGeo=function(a){var b=this.requestConfig,c=a.options;b={key:this.key,extensions:"all",s:b.s,platform:b.platform,appname:this.key,sdkversion:b.sdkversion,logversion:b.logversion};c.address&&(b.address=c.address);c.city&&(b.city=c.city);c.batch&&(b.batch=c.batch);c.sig&&(b.sig=c.sig);wx.request({url:"https://restapi.amap.com/v3/geocode/geo",data:b,method:"GET",header:{"content-type":"application/json"},success:function(d){(d=d.data)&&d.status&&"1"===d.status?a.success(d):a.fail({errCode:"0",
+errMsg:d})},fail:function(d){a.fail({errCode:"0",errMsg:d.errMsg||""})}})};
+AMapWX.prototype.getRegeo=function(a){function b(d){var e=c.requestConfig;wx.request({url:"https://restapi.amap.com/v3/geocode/regeo",data:{key:c.key,location:d,extensions:"all",s:e.s,platform:e.platform,appname:c.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(g){if(g.data.status&&"1"==g.data.status){g=g.data.regeocode;var h=g.addressComponent,f=[],k=g.roads[0].name+"\u9644\u8fd1",m=d.split(",")[0],n=d.split(",")[1];if(g.pois&&
+g.pois[0]){k=g.pois[0].name+"\u9644\u8fd1";var l=g.pois[0].location;l&&(m=parseFloat(l.split(",")[0]),n=parseFloat(l.split(",")[1]))}h.provice&&f.push(h.provice);h.city&&f.push(h.city);h.district&&f.push(h.district);h.streetNumber&&h.streetNumber.street&&h.streetNumber.number?(f.push(h.streetNumber.street),f.push(h.streetNumber.number)):f.push(g.roads[0].name);f=f.join("");a.success([{iconPath:a.iconPath,width:a.iconWidth,height:a.iconHeight,name:f,desc:k,longitude:m,latitude:n,id:0,regeocodeData:g}])}else a.fail({errCode:g.data.infocode,
+errMsg:g.data.info})},fail:function(g){a.fail({errCode:"0",errMsg:g.errMsg||""})}})}var c=this;a.location?b(a.location):c.getWxLocation(a,function(d){b(d)})};
+AMapWX.prototype.getWeather=function(a){function b(g){var h="base";a.type&&"forecast"==a.type&&(h="all");wx.request({url:"https://restapi.amap.com/v3/weather/weatherInfo",data:{key:d.key,city:g,extensions:h,s:e.s,platform:e.platform,appname:d.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(f){if(f.data.status&&"1"==f.data.status)if(f.data.lives){if((f=f.data.lives)&&0
+
+
+ {{displayValue}}
+
+
+
+
+
+
diff --git a/.svn/pristine/3b/3b650d90e0593ceec6ac0aca276328791d71a29c.svn-base b/.svn/pristine/3b/3b650d90e0593ceec6ac0aca276328791d71a29c.svn-base
new file mode 100644
index 0000000..63d5a04
--- /dev/null
+++ b/.svn/pristine/3b/3b650d90e0593ceec6ac0aca276328791d71a29c.svn-base
@@ -0,0 +1,23 @@
+
+
+## Forms 表单
+
+> **组件名:uni-forms**
+> 代码块: `uForms`、`uni-forms-item`
+> 关联组件:`uni-forms-item`、`uni-easyinput`、`uni-data-checkbox`、`uni-group`。
+
+
+uni-app的内置组件已经有了 `