hwq 2 years ago
parent
commit
06b5207833
100 changed files with 23322 additions and 1730 deletions
  1. 99 0
      api/merchant.js
  2. 29 10
      api/order.js
  3. 16 17
      api/product.js
  4. 89 0
      api/shop.js
  5. 19 0
      api/user.js
  6. 20 4
      api/wallet.js
  7. 14402 0
      components/lee-select-city/city.json
  8. 14 0
      components/lee-select-city/hot-cities.json
  9. 83 0
      components/lee-select-city/lee-latter-list.vue
  10. 434 0
      components/lee-select-city/lee-select-city.vue
  11. 24 6
      manifest.json
  12. 111 49
      pages.json
  13. 375 361
      pages/cart/cart.vue
  14. 478 152
      pages/category/category.vue
  15. 29 6
      pages/contract/privacy.vue
  16. 105 427
      pages/index/index.vue
  17. 371 0
      pages/merchant/finance.vue
  18. 572 0
      pages/merchant/hexiao.vue
  19. 446 0
      pages/merchant/merchant.vue
  20. 147 0
      pages/merchant/money.vue
  21. 213 0
      pages/merchant/order.vue
  22. 121 0
      pages/merchant/orderDetail.vue
  23. 376 0
      pages/merchant/withdrawal.vue
  24. 49 22
      pages/money/pay.vue
  25. 38 26
      pages/money/recharge.vue
  26. 11 11
      pages/money/wallet.vue
  27. 73 66
      pages/order/createOrder.vue
  28. 34 13
      pages/order/orderDetail.vue
  29. 4 4
      pages/product/common/productBottom.vue
  30. 9 3
      pages/product/product.vue
  31. 28 7
      pages/public/login.vue
  32. 31 8
      pages/set/addressManage.vue
  33. 99 102
      pages/set/set.vue
  34. 7 6
      pages/set/userinfo.vue
  35. 403 0
      pages/store/createOrder.vue
  36. 1520 0
      pages/store/index.vue
  37. 381 0
      pages/store/pay.vue
  38. 900 0
      pages/store/shopDetail.vue
  39. 419 0
      pages/store/shopList.vue
  40. 194 0
      pages/store/vipShop.vue
  41. 3 3
      pages/user/about.vue
  42. 267 0
      pages/user/barter.vue
  43. 1 9
      pages/user/scoreAccumulate.vue
  44. 4 5
      pages/user/shareQrCode.vue
  45. 11 5
      pages/user/team.vue
  46. 242 387
      pages/user/user.vue
  47. 21 21
      pages/user/withdrawal.vue
  48. BIN
      static/icon/c3.png
  49. BIN
      static/icon/c5.png
  50. BIN
      static/icon/c6.png
  51. BIN
      static/icon/c7.png
  52. BIN
      static/icon/c8.png
  53. BIN
      static/icon/call.png
  54. BIN
      static/icon/close.png
  55. BIN
      static/icon/daydd.png
  56. BIN
      static/icon/dayget.png
  57. BIN
      static/icon/dh.png
  58. BIN
      static/icon/dianpu.png
  59. BIN
      static/icon/dingwei.png
  60. BIN
      static/icon/dw.png
  61. BIN
      static/icon/i1.png
  62. BIN
      static/icon/i2.png
  63. BIN
      static/icon/i3.png
  64. BIN
      static/icon/i4.png
  65. BIN
      static/icon/i5.png
  66. BIN
      static/icon/i6.png
  67. BIN
      static/icon/i7.png
  68. BIN
      static/icon/img02.png
  69. BIN
      static/icon/img10.png
  70. BIN
      static/icon/img11.png
  71. BIN
      static/icon/img12.png
  72. BIN
      static/icon/index-gou.png
  73. BIN
      static/icon/money.png
  74. BIN
      static/icon/moneyget.png
  75. BIN
      static/icon/order.png
  76. BIN
      static/icon/saoma.png
  77. BIN
      static/icon/search-h.png
  78. BIN
      static/icon/sm.png
  79. BIN
      static/icon/sr.png
  80. BIN
      static/icon/u1.png
  81. BIN
      static/icon/u10.png
  82. BIN
      static/icon/u2.png
  83. BIN
      static/icon/u3.png
  84. BIN
      static/icon/u4.png
  85. BIN
      static/icon/u5.png
  86. BIN
      static/icon/u6.png
  87. BIN
      static/icon/u7.png
  88. BIN
      static/icon/u8.png
  89. BIN
      static/icon/u9.png
  90. BIN
      static/img/banner.png
  91. BIN
      static/img/hxbg.png
  92. BIN
      static/img/img10.png
  93. BIN
      static/img/img14.jpg
  94. BIN
      static/img/title.png
  95. BIN
      static/img/vip-card-bg.png
  96. BIN
      static/img/vip.png
  97. BIN
      static/img/vipxy.png
  98. BIN
      static/img/yszc.png
  99. BIN
      static/tabBar/tab-cart-current.png
  100. BIN
      static/tabBar/tab-cart.png

+ 99 - 0
api/merchant.js

@@ -0,0 +1,99 @@
+import request from '@/utils/request'
+
+//店铺订单列表
+export function merchantList(data) {
+	return request({
+		url: '/api/admin/order/list',
+		method: 'get',
+		data
+	});
+}
+
+//店铺订单详情
+export function detail(data, id) {
+	return request({
+		url: '/api/admin/order/detail/' + id,
+		method: 'get',
+		data
+	});
+}
+
+// 店铺订单每月统计数据
+export function shop_data(data) {
+	return request({
+		url: '/api/admin/order/month',
+		method: 'get',
+		data
+	});
+}
+
+// 店铺信息
+export function my(data) {
+	return request({
+		url: '/api/store/mystore',
+		method: 'post',
+		data
+	});
+}
+
+// 店铺会员列表
+export function member(data) {
+	return request({
+		url: '/api/store/member',
+		method: 'post',
+		data
+	});
+}
+
+// 店铺商品列表
+export function goods(data) {
+	return request({
+		url: '/api/store/goods',
+		method: 'post',
+		data
+	});
+}
+
+//订单核销
+export function verific(data) {
+	return request({
+		url: '/api/order/order_verific',
+		method: 'post',
+		data
+	});
+}
+
+//卡片兑换
+export function verification(data) {
+	return request({
+		url: '/api/user/verification',
+		method: 'post',
+		data
+	});
+}
+
+// 提现
+export function extractCash(data) {
+	return request({
+		url: '/api/store/cash',
+		method: 'post',
+		data
+	});
+}
+
+// 提现
+export function exchangeCash(data) {
+	return request({
+		url: '/api/store/brokerage',
+		method: 'post',
+		data
+	});
+}
+// 提现信息
+export function extractBank(data) {
+	return request({
+		url: '/api/store/bank',
+		method: 'get',
+		data
+	});
+}

+ 29 - 10
api/order.js

@@ -1,5 +1,7 @@
 import request from '@/utils/request'
-import {upFilse} from '@/utils/request'
+import {
+	upFilse
+} from '@/utils/request'
 // 订单确认
 export function confirm(data) {
 	return request({
@@ -9,18 +11,18 @@ export function confirm(data) {
 	});
 }
 //获取可使用优惠券
-export function couponsOrder(data,price) {
+export function couponsOrder(data, price) {
 	return request({
-		url: '/api/coupons/order/'+price,
+		url: '/api/coupons/order/' + price,
 		method: 'get',
 		data
 	});
 }
 //获取优惠券列表
-export function getCouponsList(data,types) {
+export function getCouponsList(data, types) {
 	//优惠券状态 0全部 1未使用 2已使用
 	return request({
-		url: '/api/coupons/user/'+types,
+		url: '/api/coupons/user/' + types,
 		method: 'get',
 		data
 	});
@@ -66,9 +68,9 @@ export function orderList(data) {
 	});
 }
 // 订单详细
-export function orderDetail(data,orderid) {
+export function orderDetail(data, orderid) {
 	return request({
-		url: '/api/order/detail/'+orderid,
+		url: '/api/order/detail/' + orderid,
 		method: 'get',
 		data
 	});
@@ -127,9 +129,9 @@ export function orderPay(data) {
 }
 
 // 创建订单
-export function createOrderkey(data,key) {
+export function createOrderkey(data, key) {
 	return request({
-		url: '/api/order/create/'+key,
+		url: '/api/order/create/' + key,
 		method: 'post',
 		data
 	});
@@ -138,9 +140,26 @@ export function createOrderkey(data,key) {
 // 统计订单金额
 export function computedOrderkey(data) {
 	return request({
-		url: '/api/order/computed/'+data.orderkey,
+		url: '/api/order/computed/' + data.orderkey,
 		method: 'post',
 		data
 	});
 }
 
+// 商店计算
+export function calculation(data) {
+	return request({
+		url: '/api/shop/calculation',
+		method: 'get',
+		data
+	});
+}
+
+// 商店创建订单
+export function create(data) {
+	return request({
+		url: '/api/shop/create',
+		method: 'post',
+		data
+	});
+}

+ 16 - 17
api/product.js

@@ -73,10 +73,10 @@ export function searchKeyword(data) {
 }
 
 // 获取热门分类信息
-export function groomList(data,type) {
+export function groomList(data, type) {
 	// 获取产品类型 1 精品推荐 2 热门榜单 3首发新品 4促销单品
 	return request({
-		url: '/api/groom/list/'+type,
+		url: '/api/groom/list/' + type,
 		method: 'get',
 		data
 	});
@@ -84,18 +84,18 @@ export function groomList(data,type) {
 
 
 // 获取秒杀商品详细
-export function seckillGoods(data,id) {
+export function seckillGoods(data, id) {
 	return request({
-		url: '/api/seckill/detail/'+id,
+		url: '/api/seckill/detail/' + id,
 		method: 'get',
 		data
 	});
 }
 
 // 获取拼团商品详细
-export function groupGoods(data,id) {
+export function groupGoods(data, id) {
 	return request({
-		url: '/api/combination/detail/'+id,
+		url: '/api/combination/detail/' + id,
 		method: 'get',
 		data
 	});
@@ -122,18 +122,18 @@ export function getCombinationList(data) {
 }
 
 //取消拼团
-export function getCombinationLisRemove(data,id) {
+export function getCombinationLisRemove(data, id) {
 	return request({
-		url: '/api/combination/remove'+id,
+		url: '/api/combination/remove' + id,
 		method: 'get',
 		data
 	});
 }
 
 //拼团开团页面数据
-export function getCombinationLisPink(data,id) {
+export function getCombinationLisPink(data, id) {
 	return request({
-		url: '/api/combination/pink/'+id,
+		url: '/api/combination/pink/' + id,
 		method: 'get',
 		data
 	});
@@ -158,9 +158,9 @@ export function getSeckillClass(data) {
 	});
 }
 // 获取秒杀列表
-export function getSeckillList(data,id) {
+export function getSeckillList(data, id) {
 	return request({
-		url: '/api/seckill/list/'+id,
+		url: '/api/seckill/list/' + id,
 		method: 'get',
 		data
 	});
@@ -168,19 +168,18 @@ export function getSeckillList(data,id) {
 
 
 // 产品评价数量和好评度
-export function reply_config(data,id) {
+export function reply_config(data, id) {
 	return request({
-		url: '/api/reply/config/'+id,
+		url: '/api/reply/config/' + id,
 		method: 'get',
 		data
 	});
 }
 // 获取产品评论
-export function reply_list(data,id) {
+export function reply_list(data, id) {
 	return request({
-		url: '/api/reply/list/'+id,
+		url: '/api/reply/list/' + id,
 		method: 'get',
 		data
 	});
 }
-

+ 89 - 0
api/shop.js

@@ -0,0 +1,89 @@
+import request from "@/utils/request.js";
+
+//获取店铺分类
+export function store_cate(data) {
+	return request({
+		url: '/api/store_cate',
+		method: 'get',
+		data
+	});
+}
+//获取店铺列表
+export function getStoreList(data) {
+	return request({
+		url: '/api/coustore',
+		method: 'get',
+		data
+	});
+}
+
+//获取店铺详情
+export function getStoreDetail(data, id) {
+	return request({
+		url: '/api/store_details/' + id,
+		method: 'get',
+		data
+	});
+}
+
+// 获取优惠券详情
+export function getYhqDetail(data) {
+	return request({
+		url: '/api/coupon_datalis',
+		method: 'get',
+		data
+	})
+}
+
+export function getGift(data) {
+	return request({
+		url: '/api/share',
+		method: 'post',
+		data
+	})
+}
+
+// 地址逆解析/api/address
+export function getCity(data) {
+	return request({
+		url: '/api/address',
+		method: 'get',
+		data
+	})
+}
+
+//兑换
+export function goDh(data) {
+	return request({
+		url: '/api/exchange',
+		method: 'post',
+		data
+	})
+}
+
+//转赠
+export function gozz(data) {
+	return request({
+		url: '/api/donation',
+		method: 'post',
+		data
+	})
+}
+
+// 发布优惠券
+export function storeCoupon(data) {
+	return request({
+		url: '/api/store_coupon',
+		method: 'post',
+		data
+	})
+}
+
+// 充值记录 
+export function order(data) {
+	return request({
+		url: '/api/shop/order',
+		method: 'get',
+		data
+	})
+}

+ 19 - 0
api/user.js

@@ -43,6 +43,16 @@ export function addressEdit(data) {
 		data
 	});
 }
+
+// 镇列表
+export function city_lists(data) {
+	return request({
+		url: '/api/city_lists',
+		method: 'get',
+		data
+	});
+}
+
 // 删除地址
 export function addressDel(data) {
 	return request({
@@ -109,3 +119,12 @@ export function spread(data) {
 		data
 	});
 }
+
+//扫码核销
+export function orderVerific(data) {
+	return request({
+		url: '/api/order/order_verific',
+		method: 'POST',
+		data
+	});
+}

+ 20 - 4
api/wallet.js

@@ -1,9 +1,18 @@
 import request from '@/utils/request'
 
 // 获取用户消费记录
-export function spreadCommission(data,state) {
+export function spreadCommission(data, state) {
 	return request({
-		url: '/api/spread/commission/'+state,
+		url: '/api/spread/commission/' + state,
+		method: 'get',
+		data
+	});
+}
+
+// 获取赠送倍数
+export function barter(data) {
+	return request({
+		url: '/api/barter',
 		method: 'get',
 		data
 	});
@@ -118,9 +127,16 @@ export function balance(data) {
 
 export function integral(data) {
 	return request({
-		url:'/api/integral/list',
-		method:'get',
+		url: '/api/integral/list',
+		method: 'get',
 		data
 	})
 }
 
+export function barter_integral(data) {
+	return request({
+		url: '/api/barter_integral/list',
+		method: 'get',
+		data
+	})
+}

+ 14402 - 0
components/lee-select-city/city.json

@@ -0,0 +1,14402 @@
+[{
+		"name": "北京市",
+		"latter": "B",
+		"children": [{
+			"name": "北京市",
+			"children": [{
+					"name": "东城区",
+					"latter": "D"
+				},
+				{
+					"name": "西城区",
+					"latter": "X"
+				},
+				{
+					"name": "朝阳区",
+					"latter": "Z"
+				},
+				{
+					"name": "丰台区",
+					"latter": "F"
+				},
+				{
+					"name": "石景山区",
+					"latter": "S"
+				},
+				{
+					"name": "海淀区",
+					"latter": "H"
+				},
+				{
+					"name": "门头沟区",
+					"latter": "M"
+				},
+				{
+					"name": "房山区",
+					"latter": "F"
+				},
+				{
+					"name": "通州区",
+					"latter": "T"
+				},
+				{
+					"name": "顺义区",
+					"latter": "S"
+				},
+				{
+					"name": "昌平区",
+					"latter": "C"
+				},
+				{
+					"name": "大兴区",
+					"latter": "D"
+				},
+				{
+					"name": "怀柔区",
+					"latter": "H"
+				},
+				{
+					"name": "平谷区",
+					"latter": "P"
+				},
+				{
+					"name": "密云县",
+					"latter": "M"
+				},
+				{
+					"name": "延庆县",
+					"latter": "Y"
+				}
+			],
+			"latter": "B"
+		}]
+	},
+	{
+		"name": "天津市",
+		"latter": "T",
+		"children":[
+			{
+				"name": "天津市",
+				"children": [{
+						"name": "和平区",
+						"latter": "H"
+					},
+					{
+						"name": "河东区",
+						"latter": "H"
+					},
+					{
+						"name": "河西区",
+						"latter": "H"
+					},
+					{
+						"name": "南开区",
+						"latter": "N"
+					},
+					{
+						"name": "河北区",
+						"latter": "H"
+					},
+					{
+						"name": "红桥区",
+						"latter": "H"
+					},
+					{
+						"name": "东丽区",
+						"latter": "D"
+					},
+					{
+						"name": "西青区",
+						"latter": "X"
+					},
+					{
+						"name": "津南区",
+						"latter": "J"
+					},
+					{
+						"name": "北辰区",
+						"latter": "B"
+					},
+					{
+						"name": "武清区",
+						"latter": "W"
+					},
+					{
+						"name": "宝坻区",
+						"latter": "B"
+					},
+					{
+						"name": "滨海新区",
+						"latter": "B"
+					},
+					{
+						"name": "宁河县",
+						"latter": "N"
+					},
+					{
+						"name": "静海县",
+						"latter": "J"
+					},
+					{
+						"name": "蓟县",
+						"latter": "J"
+					}
+				],
+				"latter": "T"
+			}
+		]
+	},
+	{
+		"name": "河北省",
+		"children": [{
+				"name": "石家庄市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "长安区",
+						"latter": "C"
+					},
+					{
+						"name": "桥东区",
+						"latter": "Q"
+					},
+					{
+						"name": "桥西区",
+						"latter": "Q"
+					},
+					{
+						"name": "新华区",
+						"latter": "X"
+					},
+					{
+						"name": "井陉矿区",
+						"latter": "J"
+					},
+					{
+						"name": "裕华区",
+						"latter": "Y"
+					},
+					{
+						"name": "井陉县",
+						"latter": "J"
+					},
+					{
+						"name": "正定县",
+						"latter": "Z"
+					},
+					{
+						"name": "栾城县",
+						"latter": "L"
+					},
+					{
+						"name": "行唐县",
+						"latter": "H"
+					},
+					{
+						"name": "灵寿县",
+						"latter": "L"
+					},
+					{
+						"name": "高邑县",
+						"latter": "G"
+					},
+					{
+						"name": "深泽县",
+						"latter": "S"
+					},
+					{
+						"name": "赞皇县",
+						"latter": "Z"
+					},
+					{
+						"name": "无极县",
+						"latter": "W"
+					},
+					{
+						"name": "平山县",
+						"latter": "P"
+					},
+					{
+						"name": "元氏县",
+						"latter": "Y"
+					},
+					{
+						"name": "赵县",
+						"latter": "Z"
+					},
+					{
+						"name": "辛集市",
+						"latter": "X"
+					},
+					{
+						"name": "藁城市",
+						"latter": "G"
+					},
+					{
+						"name": "晋州市",
+						"latter": "J"
+					},
+					{
+						"name": "新乐市",
+						"latter": "X"
+					},
+					{
+						"name": "鹿泉市",
+						"latter": "L"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "唐山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "路南区",
+						"latter": "L"
+					},
+					{
+						"name": "路北区",
+						"latter": "L"
+					},
+					{
+						"name": "古冶区",
+						"latter": "G"
+					},
+					{
+						"name": "开平区",
+						"latter": "K"
+					},
+					{
+						"name": "丰南区",
+						"latter": "F"
+					},
+					{
+						"name": "丰润区",
+						"latter": "F"
+					},
+					{
+						"name": "曹妃甸区",
+						"latter": "C"
+					},
+					{
+						"name": "滦县",
+						"latter": "L"
+					},
+					{
+						"name": "滦南县",
+						"latter": "L"
+					},
+					{
+						"name": "乐亭县",
+						"latter": "L"
+					},
+					{
+						"name": "迁西县",
+						"latter": "Q"
+					},
+					{
+						"name": "玉田县",
+						"latter": "Y"
+					},
+					{
+						"name": "遵化市",
+						"latter": "Z"
+					},
+					{
+						"name": "迁安市",
+						"latter": "Q"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "秦皇岛市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "海港区",
+						"latter": "H"
+					},
+					{
+						"name": "山海关区",
+						"latter": "S"
+					},
+					{
+						"name": "北戴河区",
+						"latter": "B"
+					},
+					{
+						"name": "青龙满族自治县",
+						"latter": "Q"
+					},
+					{
+						"name": "昌黎县",
+						"latter": "C"
+					},
+					{
+						"name": "抚宁县",
+						"latter": "F"
+					},
+					{
+						"name": "卢龙县",
+						"latter": "L"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "邯郸市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "邯山区",
+						"latter": "H"
+					},
+					{
+						"name": "丛台区",
+						"latter": "C"
+					},
+					{
+						"name": "复兴区",
+						"latter": "F"
+					},
+					{
+						"name": "峰峰矿区",
+						"latter": "F"
+					},
+					{
+						"name": "邯郸县",
+						"latter": "H"
+					},
+					{
+						"name": "临漳县",
+						"latter": "L"
+					},
+					{
+						"name": "成安县",
+						"latter": "C"
+					},
+					{
+						"name": "大名县",
+						"latter": "D"
+					},
+					{
+						"name": "涉县",
+						"latter": "S"
+					},
+					{
+						"name": "磁县",
+						"latter": "C"
+					},
+					{
+						"name": "肥乡县",
+						"latter": "F"
+					},
+					{
+						"name": "永年县",
+						"latter": "Y"
+					},
+					{
+						"name": "邱县",
+						"latter": "Q"
+					},
+					{
+						"name": "鸡泽县",
+						"latter": "J"
+					},
+					{
+						"name": "广平县",
+						"latter": "G"
+					},
+					{
+						"name": "馆陶县",
+						"latter": "G"
+					},
+					{
+						"name": "魏县",
+						"latter": "W"
+					},
+					{
+						"name": "曲周县",
+						"latter": "Q"
+					},
+					{
+						"name": "武安市",
+						"latter": "W"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "邢台市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "桥东区",
+						"latter": "Q"
+					},
+					{
+						"name": "桥西区",
+						"latter": "Q"
+					},
+					{
+						"name": "邢台县",
+						"latter": "X"
+					},
+					{
+						"name": "临城县",
+						"latter": "L"
+					},
+					{
+						"name": "内丘县",
+						"latter": "N"
+					},
+					{
+						"name": "柏乡县",
+						"latter": "B"
+					},
+					{
+						"name": "隆尧县",
+						"latter": "L"
+					},
+					{
+						"name": "任县",
+						"latter": "R"
+					},
+					{
+						"name": "南和县",
+						"latter": "N"
+					},
+					{
+						"name": "宁晋县",
+						"latter": "N"
+					},
+					{
+						"name": "巨鹿县",
+						"latter": "J"
+					},
+					{
+						"name": "新河县",
+						"latter": "X"
+					},
+					{
+						"name": "广宗县",
+						"latter": "G"
+					},
+					{
+						"name": "平乡县",
+						"latter": "P"
+					},
+					{
+						"name": "威县",
+						"latter": "W"
+					},
+					{
+						"name": "清河县",
+						"latter": "Q"
+					},
+					{
+						"name": "临西县",
+						"latter": "L"
+					},
+					{
+						"name": "南宫市",
+						"latter": "N"
+					},
+					{
+						"name": "沙河市",
+						"latter": "S"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "保定市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "新市区",
+						"latter": "X"
+					},
+					{
+						"name": "北市区",
+						"latter": "B"
+					},
+					{
+						"name": "南市区",
+						"latter": "N"
+					},
+					{
+						"name": "满城县",
+						"latter": "M"
+					},
+					{
+						"name": "清苑县",
+						"latter": "Q"
+					},
+					{
+						"name": "涞水县",
+						"latter": "L"
+					},
+					{
+						"name": "阜平县",
+						"latter": "F"
+					},
+					{
+						"name": "徐水县",
+						"latter": "X"
+					},
+					{
+						"name": "定兴县",
+						"latter": "D"
+					},
+					{
+						"name": "唐县",
+						"latter": "T"
+					},
+					{
+						"name": "高阳县",
+						"latter": "G"
+					},
+					{
+						"name": "容城县",
+						"latter": "R"
+					},
+					{
+						"name": "涞源县",
+						"latter": "L"
+					},
+					{
+						"name": "望都县",
+						"latter": "W"
+					},
+					{
+						"name": "安新县",
+						"latter": "A"
+					},
+					{
+						"name": "易县",
+						"latter": "Y"
+					},
+					{
+						"name": "曲阳县",
+						"latter": "Q"
+					},
+					{
+						"name": "蠡县",
+						"latter": "L"
+					},
+					{
+						"name": "顺平县",
+						"latter": "S"
+					},
+					{
+						"name": "博野县",
+						"latter": "B"
+					},
+					{
+						"name": "雄县",
+						"latter": "X"
+					},
+					{
+						"name": "涿州市",
+						"latter": "Z"
+					},
+					{
+						"name": "定州市",
+						"latter": "D"
+					},
+					{
+						"name": "安国市",
+						"latter": "A"
+					},
+					{
+						"name": "高碑店市",
+						"latter": "G"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "张家口市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "桥东区",
+						"latter": "Q"
+					},
+					{
+						"name": "桥西区",
+						"latter": "Q"
+					},
+					{
+						"name": "宣化区",
+						"latter": "X"
+					},
+					{
+						"name": "下花园区",
+						"latter": "X"
+					},
+					{
+						"name": "宣化县",
+						"latter": "X"
+					},
+					{
+						"name": "张北县",
+						"latter": "Z"
+					},
+					{
+						"name": "康保县",
+						"latter": "K"
+					},
+					{
+						"name": "沽源县",
+						"latter": "G"
+					},
+					{
+						"name": "尚义县",
+						"latter": "S"
+					},
+					{
+						"name": "蔚县",
+						"latter": "W"
+					},
+					{
+						"name": "阳原县",
+						"latter": "Y"
+					},
+					{
+						"name": "怀安县",
+						"latter": "H"
+					},
+					{
+						"name": "万全县",
+						"latter": "W"
+					},
+					{
+						"name": "怀来县",
+						"latter": "H"
+					},
+					{
+						"name": "涿鹿县",
+						"latter": "Z"
+					},
+					{
+						"name": "赤城县",
+						"latter": "C"
+					},
+					{
+						"name": "崇礼县",
+						"latter": "C"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "承德市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "双桥区",
+						"latter": "S"
+					},
+					{
+						"name": "双滦区",
+						"latter": "S"
+					},
+					{
+						"name": "鹰手营子矿区",
+						"latter": "Y"
+					},
+					{
+						"name": "承德县",
+						"latter": "C"
+					},
+					{
+						"name": "兴隆县",
+						"latter": "X"
+					},
+					{
+						"name": "平泉县",
+						"latter": "P"
+					},
+					{
+						"name": "滦平县",
+						"latter": "L"
+					},
+					{
+						"name": "隆化县",
+						"latter": "L"
+					},
+					{
+						"name": "丰宁满族自治县",
+						"latter": "F"
+					},
+					{
+						"name": "宽城满族自治县",
+						"latter": "K"
+					},
+					{
+						"name": "围场满族蒙古族自治县",
+						"latter": "W"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "沧州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "新华区",
+						"latter": "X"
+					},
+					{
+						"name": "运河区",
+						"latter": "Y"
+					},
+					{
+						"name": "沧县",
+						"latter": "C"
+					},
+					{
+						"name": "青县",
+						"latter": "Q"
+					},
+					{
+						"name": "东光县",
+						"latter": "D"
+					},
+					{
+						"name": "海兴县",
+						"latter": "H"
+					},
+					{
+						"name": "盐山县",
+						"latter": "Y"
+					},
+					{
+						"name": "肃宁县",
+						"latter": "S"
+					},
+					{
+						"name": "南皮县",
+						"latter": "N"
+					},
+					{
+						"name": "吴桥县",
+						"latter": "W"
+					},
+					{
+						"name": "献县",
+						"latter": "X"
+					},
+					{
+						"name": "孟村回族自治县",
+						"latter": "M"
+					},
+					{
+						"name": "泊头市",
+						"latter": "B"
+					},
+					{
+						"name": "任丘市",
+						"latter": "R"
+					},
+					{
+						"name": "黄骅市",
+						"latter": "H"
+					},
+					{
+						"name": "河间市",
+						"latter": "H"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "廊坊市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "安次区",
+						"latter": "A"
+					},
+					{
+						"name": "广阳区",
+						"latter": "G"
+					},
+					{
+						"name": "固安县",
+						"latter": "G"
+					},
+					{
+						"name": "永清县",
+						"latter": "Y"
+					},
+					{
+						"name": "香河县",
+						"latter": "X"
+					},
+					{
+						"name": "大城县",
+						"latter": "D"
+					},
+					{
+						"name": "文安县",
+						"latter": "W"
+					},
+					{
+						"name": "大厂回族自治县",
+						"latter": "D"
+					},
+					{
+						"name": "霸州市",
+						"latter": "B"
+					},
+					{
+						"name": "三河市",
+						"latter": "S"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "衡水市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "桃城区",
+						"latter": "T"
+					},
+					{
+						"name": "枣强县",
+						"latter": "Z"
+					},
+					{
+						"name": "武邑县",
+						"latter": "W"
+					},
+					{
+						"name": "武强县",
+						"latter": "W"
+					},
+					{
+						"name": "饶阳县",
+						"latter": "R"
+					},
+					{
+						"name": "安平县",
+						"latter": "A"
+					},
+					{
+						"name": "故城县",
+						"latter": "G"
+					},
+					{
+						"name": "景县",
+						"latter": "J"
+					},
+					{
+						"name": "阜城县",
+						"latter": "F"
+					},
+					{
+						"name": "冀州市",
+						"latter": "J"
+					},
+					{
+						"name": "深州市",
+						"latter": "S"
+					}
+				],
+				"latter": "H"
+			}
+		],
+		"latter": "H"
+	},
+	{
+		"name": "山西省",
+		"children": [{
+				"name": "太原市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "小店区",
+						"latter": "X"
+					},
+					{
+						"name": "迎泽区",
+						"latter": "Y"
+					},
+					{
+						"name": "杏花岭区",
+						"latter": "X"
+					},
+					{
+						"name": "尖草坪区",
+						"latter": "J"
+					},
+					{
+						"name": "万柏林区",
+						"latter": "W"
+					},
+					{
+						"name": "晋源区",
+						"latter": "J"
+					},
+					{
+						"name": "清徐县",
+						"latter": "Q"
+					},
+					{
+						"name": "阳曲县",
+						"latter": "Y"
+					},
+					{
+						"name": "娄烦县",
+						"latter": "L"
+					},
+					{
+						"name": "古交市",
+						"latter": "G"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "大同市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城区",
+						"latter": "C"
+					},
+					{
+						"name": "矿区",
+						"latter": "K"
+					},
+					{
+						"name": "南郊区",
+						"latter": "N"
+					},
+					{
+						"name": "新荣区",
+						"latter": "X"
+					},
+					{
+						"name": "阳高县",
+						"latter": "Y"
+					},
+					{
+						"name": "天镇县",
+						"latter": "T"
+					},
+					{
+						"name": "广灵县",
+						"latter": "G"
+					},
+					{
+						"name": "灵丘县",
+						"latter": "L"
+					},
+					{
+						"name": "浑源县",
+						"latter": "H"
+					},
+					{
+						"name": "左云县",
+						"latter": "Z"
+					},
+					{
+						"name": "大同县",
+						"latter": "D"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "阳泉市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城区",
+						"latter": "C"
+					},
+					{
+						"name": "矿区",
+						"latter": "K"
+					},
+					{
+						"name": "郊区",
+						"latter": "J"
+					},
+					{
+						"name": "平定县",
+						"latter": "P"
+					},
+					{
+						"name": "盂县",
+						"latter": "Y"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "长治市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城区",
+						"latter": "C"
+					},
+					{
+						"name": "郊区",
+						"latter": "J"
+					},
+					{
+						"name": "长治县",
+						"latter": "C"
+					},
+					{
+						"name": "襄垣县",
+						"latter": "X"
+					},
+					{
+						"name": "屯留县",
+						"latter": "T"
+					},
+					{
+						"name": "平顺县",
+						"latter": "P"
+					},
+					{
+						"name": "黎城县",
+						"latter": "L"
+					},
+					{
+						"name": "壶关县",
+						"latter": "H"
+					},
+					{
+						"name": "长子县",
+						"latter": "C"
+					},
+					{
+						"name": "武乡县",
+						"latter": "W"
+					},
+					{
+						"name": "沁县",
+						"latter": "Q"
+					},
+					{
+						"name": "沁源县",
+						"latter": "Q"
+					},
+					{
+						"name": "潞城市",
+						"latter": "L"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "晋城市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城区",
+						"latter": "C"
+					},
+					{
+						"name": "沁水县",
+						"latter": "Q"
+					},
+					{
+						"name": "阳城县",
+						"latter": "Y"
+					},
+					{
+						"name": "陵川县",
+						"latter": "L"
+					},
+					{
+						"name": "泽州县",
+						"latter": "Z"
+					},
+					{
+						"name": "高平市",
+						"latter": "G"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "朔州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "朔城区",
+						"latter": "S"
+					},
+					{
+						"name": "平鲁区",
+						"latter": "P"
+					},
+					{
+						"name": "山阴县",
+						"latter": "S"
+					},
+					{
+						"name": "应县",
+						"latter": "Y"
+					},
+					{
+						"name": "右玉县",
+						"latter": "Y"
+					},
+					{
+						"name": "怀仁县",
+						"latter": "H"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "晋中市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "榆次区",
+						"latter": "Y"
+					},
+					{
+						"name": "榆社县",
+						"latter": "Y"
+					},
+					{
+						"name": "左权县",
+						"latter": "Z"
+					},
+					{
+						"name": "和顺县",
+						"latter": "H"
+					},
+					{
+						"name": "昔阳县",
+						"latter": "X"
+					},
+					{
+						"name": "寿阳县",
+						"latter": "S"
+					},
+					{
+						"name": "太谷县",
+						"latter": "T"
+					},
+					{
+						"name": "祁县",
+						"latter": "Q"
+					},
+					{
+						"name": "平遥县",
+						"latter": "P"
+					},
+					{
+						"name": "灵石县",
+						"latter": "L"
+					},
+					{
+						"name": "介休市",
+						"latter": "J"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "运城市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "盐湖区",
+						"latter": "Y"
+					},
+					{
+						"name": "临猗县",
+						"latter": "L"
+					},
+					{
+						"name": "万荣县",
+						"latter": "W"
+					},
+					{
+						"name": "闻喜县",
+						"latter": "W"
+					},
+					{
+						"name": "稷山县",
+						"latter": "J"
+					},
+					{
+						"name": "新绛县",
+						"latter": "X"
+					},
+					{
+						"name": "绛县",
+						"latter": "J"
+					},
+					{
+						"name": "垣曲县",
+						"latter": "Y"
+					},
+					{
+						"name": "夏县",
+						"latter": "X"
+					},
+					{
+						"name": "平陆县",
+						"latter": "P"
+					},
+					{
+						"name": "芮城县",
+						"latter": "R"
+					},
+					{
+						"name": "永济市",
+						"latter": "Y"
+					},
+					{
+						"name": "河津市",
+						"latter": "H"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "忻州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "忻府区",
+						"latter": "X"
+					},
+					{
+						"name": "定襄县",
+						"latter": "D"
+					},
+					{
+						"name": "五台县",
+						"latter": "W"
+					},
+					{
+						"name": "代县",
+						"latter": "D"
+					},
+					{
+						"name": "繁峙县",
+						"latter": "F"
+					},
+					{
+						"name": "宁武县",
+						"latter": "N"
+					},
+					{
+						"name": "静乐县",
+						"latter": "J"
+					},
+					{
+						"name": "神池县",
+						"latter": "S"
+					},
+					{
+						"name": "五寨县",
+						"latter": "W"
+					},
+					{
+						"name": "岢岚县",
+						"latter": "K"
+					},
+					{
+						"name": "河曲县",
+						"latter": "H"
+					},
+					{
+						"name": "保德县",
+						"latter": "B"
+					},
+					{
+						"name": "偏关县",
+						"latter": "P"
+					},
+					{
+						"name": "原平市",
+						"latter": "Y"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "临汾市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "尧都区",
+						"latter": "Y"
+					},
+					{
+						"name": "曲沃县",
+						"latter": "Q"
+					},
+					{
+						"name": "翼城县",
+						"latter": "Y"
+					},
+					{
+						"name": "襄汾县",
+						"latter": "X"
+					},
+					{
+						"name": "洪洞县",
+						"latter": "H"
+					},
+					{
+						"name": "古县",
+						"latter": "G"
+					},
+					{
+						"name": "安泽县",
+						"latter": "A"
+					},
+					{
+						"name": "浮山县",
+						"latter": "F"
+					},
+					{
+						"name": "吉县",
+						"latter": "J"
+					},
+					{
+						"name": "乡宁县",
+						"latter": "X"
+					},
+					{
+						"name": "大宁县",
+						"latter": "D"
+					},
+					{
+						"name": "隰县",
+						"latter": "X"
+					},
+					{
+						"name": "永和县",
+						"latter": "Y"
+					},
+					{
+						"name": "蒲县",
+						"latter": "P"
+					},
+					{
+						"name": "汾西县",
+						"latter": "F"
+					},
+					{
+						"name": "侯马市",
+						"latter": "H"
+					},
+					{
+						"name": "霍州市",
+						"latter": "H"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "吕梁市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "离石区",
+						"latter": "L"
+					},
+					{
+						"name": "文水县",
+						"latter": "W"
+					},
+					{
+						"name": "交城县",
+						"latter": "J"
+					},
+					{
+						"name": "兴县",
+						"latter": "X"
+					},
+					{
+						"name": "临县",
+						"latter": "L"
+					},
+					{
+						"name": "柳林县",
+						"latter": "L"
+					},
+					{
+						"name": "石楼县",
+						"latter": "S"
+					},
+					{
+						"name": "岚县",
+						"latter": "L"
+					},
+					{
+						"name": "方山县",
+						"latter": "F"
+					},
+					{
+						"name": "中阳县",
+						"latter": "Z"
+					},
+					{
+						"name": "交口县",
+						"latter": "J"
+					},
+					{
+						"name": "孝义市",
+						"latter": "X"
+					},
+					{
+						"name": "汾阳市",
+						"latter": "F"
+					}
+				],
+				"latter": "L"
+			}
+		],
+		"latter": "S"
+	},
+	{
+		"name": "内蒙古自治区",
+		"children": [{
+				"name": "呼和浩特市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "新城区",
+						"latter": "X"
+					},
+					{
+						"name": "回民区",
+						"latter": "H"
+					},
+					{
+						"name": "玉泉区",
+						"latter": "Y"
+					},
+					{
+						"name": "赛罕区",
+						"latter": "S"
+					},
+					{
+						"name": "土默特左旗",
+						"latter": "T"
+					},
+					{
+						"name": "托克托县",
+						"latter": "T"
+					},
+					{
+						"name": "和林格尔县",
+						"latter": "H"
+					},
+					{
+						"name": "清水河县",
+						"latter": "Q"
+					},
+					{
+						"name": "武川县",
+						"latter": "W"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "包头市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东河区",
+						"latter": "D"
+					},
+					{
+						"name": "昆都仑区",
+						"latter": "K"
+					},
+					{
+						"name": "青山区",
+						"latter": "Q"
+					},
+					{
+						"name": "石拐区",
+						"latter": "S"
+					},
+					{
+						"name": "白云鄂博矿区",
+						"latter": "B"
+					},
+					{
+						"name": "九原区",
+						"latter": "J"
+					},
+					{
+						"name": "土默特右旗",
+						"latter": "T"
+					},
+					{
+						"name": "固阳县",
+						"latter": "G"
+					},
+					{
+						"name": "达尔罕茂明安联合旗",
+						"latter": "D"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "乌海市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "海勃湾区",
+						"latter": "H"
+					},
+					{
+						"name": "海南区",
+						"latter": "H"
+					},
+					{
+						"name": "乌达区",
+						"latter": "W"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "赤峰市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "红山区",
+						"latter": "H"
+					},
+					{
+						"name": "元宝山区",
+						"latter": "Y"
+					},
+					{
+						"name": "松山区",
+						"latter": "S"
+					},
+					{
+						"name": "阿鲁科尔沁旗",
+						"latter": "A"
+					},
+					{
+						"name": "巴林左旗",
+						"latter": "B"
+					},
+					{
+						"name": "巴林右旗",
+						"latter": "B"
+					},
+					{
+						"name": "林西县",
+						"latter": "L"
+					},
+					{
+						"name": "克什克腾旗",
+						"latter": "K"
+					},
+					{
+						"name": "翁牛特旗",
+						"latter": "W"
+					},
+					{
+						"name": "喀喇沁旗",
+						"latter": "K"
+					},
+					{
+						"name": "宁城县",
+						"latter": "N"
+					},
+					{
+						"name": "敖汉旗",
+						"latter": "A"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "通辽市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "科尔沁区",
+						"latter": "K"
+					},
+					{
+						"name": "科尔沁左翼中旗",
+						"latter": "K"
+					},
+					{
+						"name": "科尔沁左翼后旗",
+						"latter": "K"
+					},
+					{
+						"name": "开鲁县",
+						"latter": "K"
+					},
+					{
+						"name": "库伦旗",
+						"latter": "K"
+					},
+					{
+						"name": "奈曼旗",
+						"latter": "N"
+					},
+					{
+						"name": "扎鲁特旗",
+						"latter": "Z"
+					},
+					{
+						"name": "霍林郭勒市",
+						"latter": "H"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "鄂尔多斯市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东胜区",
+						"latter": "D"
+					},
+					{
+						"name": "达拉特旗",
+						"latter": "D"
+					},
+					{
+						"name": "准格尔旗",
+						"latter": "Z"
+					},
+					{
+						"name": "鄂托克前旗",
+						"latter": "E"
+					},
+					{
+						"name": "鄂托克旗",
+						"latter": "E"
+					},
+					{
+						"name": "杭锦旗",
+						"latter": "H"
+					},
+					{
+						"name": "乌审旗",
+						"latter": "W"
+					},
+					{
+						"name": "伊金霍洛旗",
+						"latter": "Y"
+					}
+				],
+				"latter": "E"
+			},
+			{
+				"name": "呼伦贝尔市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "海拉尔区",
+						"latter": "H"
+					},
+					{
+						"name": "扎赉诺尔区",
+						"latter": "Z"
+					},
+					{
+						"name": "阿荣旗",
+						"latter": "A"
+					},
+					{
+						"name": "莫力达瓦达斡尔族自治旗",
+						"latter": "M"
+					},
+					{
+						"name": "鄂伦春自治旗",
+						"latter": "E"
+					},
+					{
+						"name": "鄂温克族自治旗",
+						"latter": "E"
+					},
+					{
+						"name": "陈巴尔虎旗",
+						"latter": "C"
+					},
+					{
+						"name": "新巴尔虎左旗",
+						"latter": "X"
+					},
+					{
+						"name": "新巴尔虎右旗",
+						"latter": "X"
+					},
+					{
+						"name": "满洲里市",
+						"latter": "M"
+					},
+					{
+						"name": "牙克石市",
+						"latter": "Y"
+					},
+					{
+						"name": "扎兰屯市",
+						"latter": "Z"
+					},
+					{
+						"name": "额尔古纳市",
+						"latter": "E"
+					},
+					{
+						"name": "根河市",
+						"latter": "G"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "巴彦淖尔市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "临河区",
+						"latter": "L"
+					},
+					{
+						"name": "五原县",
+						"latter": "W"
+					},
+					{
+						"name": "磴口县",
+						"latter": "D"
+					},
+					{
+						"name": "乌拉特前旗",
+						"latter": "W"
+					},
+					{
+						"name": "乌拉特中旗",
+						"latter": "W"
+					},
+					{
+						"name": "乌拉特后旗",
+						"latter": "W"
+					},
+					{
+						"name": "杭锦后旗",
+						"latter": "H"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "乌兰察布市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "集宁区",
+						"latter": "J"
+					},
+					{
+						"name": "卓资县",
+						"latter": "Z"
+					},
+					{
+						"name": "化德县",
+						"latter": "H"
+					},
+					{
+						"name": "商都县",
+						"latter": "S"
+					},
+					{
+						"name": "兴和县",
+						"latter": "X"
+					},
+					{
+						"name": "凉城县",
+						"latter": "L"
+					},
+					{
+						"name": "察哈尔右翼前旗",
+						"latter": "C"
+					},
+					{
+						"name": "察哈尔右翼中旗",
+						"latter": "C"
+					},
+					{
+						"name": "察哈尔右翼后旗",
+						"latter": "C"
+					},
+					{
+						"name": "四子王旗",
+						"latter": "S"
+					},
+					{
+						"name": "丰镇市",
+						"latter": "F"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "兴安盟",
+				"children": [{
+						"name": "乌兰浩特市",
+						"latter": "W"
+					},
+					{
+						"name": "阿尔山市",
+						"latter": "A"
+					},
+					{
+						"name": "科尔沁右翼前旗",
+						"latter": "K"
+					},
+					{
+						"name": "科尔沁右翼中旗",
+						"latter": "K"
+					},
+					{
+						"name": "扎赉特旗",
+						"latter": "Z"
+					},
+					{
+						"name": "突泉县",
+						"latter": "T"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "锡林郭勒盟",
+				"children": [{
+						"name": "二连浩特市",
+						"latter": "E"
+					},
+					{
+						"name": "锡林浩特市",
+						"latter": "X"
+					},
+					{
+						"name": "阿巴嘎旗",
+						"latter": "A"
+					},
+					{
+						"name": "苏尼特左旗",
+						"latter": "S"
+					},
+					{
+						"name": "苏尼特右旗",
+						"latter": "S"
+					},
+					{
+						"name": "东乌珠穆沁旗",
+						"latter": "D"
+					},
+					{
+						"name": "西乌珠穆沁旗",
+						"latter": "X"
+					},
+					{
+						"name": "太仆寺旗",
+						"latter": "T"
+					},
+					{
+						"name": "镶黄旗",
+						"latter": "X"
+					},
+					{
+						"name": "正镶白旗",
+						"latter": "Z"
+					},
+					{
+						"name": "正蓝旗",
+						"latter": "Z"
+					},
+					{
+						"name": "多伦县",
+						"latter": "D"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "阿拉善盟",
+				"children": [{
+						"name": "阿拉善左旗",
+						"latter": "A"
+					},
+					{
+						"name": "阿拉善右旗",
+						"latter": "A"
+					},
+					{
+						"name": "额济纳旗",
+						"latter": "E"
+					}
+				],
+				"latter": "A"
+			}
+		],
+		"latter": "N"
+	},
+	{
+		"name": "辽宁省",
+		"children": [{
+				"name": "沈阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "和平区",
+						"latter": "H"
+					},
+					{
+						"name": "沈河区",
+						"latter": "S"
+					},
+					{
+						"name": "大东区",
+						"latter": "D"
+					},
+					{
+						"name": "皇姑区",
+						"latter": "H"
+					},
+					{
+						"name": "铁西区",
+						"latter": "T"
+					},
+					{
+						"name": "苏家屯区",
+						"latter": "S"
+					},
+					{
+						"name": "东陵区",
+						"latter": "D"
+					},
+					{
+						"name": "沈北新区",
+						"latter": "S"
+					},
+					{
+						"name": "于洪区",
+						"latter": "Y"
+					},
+					{
+						"name": "辽中县",
+						"latter": "L"
+					},
+					{
+						"name": "康平县",
+						"latter": "K"
+					},
+					{
+						"name": "法库县",
+						"latter": "F"
+					},
+					{
+						"name": "新民市",
+						"latter": "X"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "大连市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "中山区",
+						"latter": "Z"
+					},
+					{
+						"name": "西岗区",
+						"latter": "X"
+					},
+					{
+						"name": "沙河口区",
+						"latter": "S"
+					},
+					{
+						"name": "甘井子区",
+						"latter": "G"
+					},
+					{
+						"name": "旅顺口区",
+						"latter": "L"
+					},
+					{
+						"name": "金州区",
+						"latter": "J"
+					},
+					{
+						"name": "长海县",
+						"latter": "C"
+					},
+					{
+						"name": "瓦房店市",
+						"latter": "W"
+					},
+					{
+						"name": "普兰店市",
+						"latter": "P"
+					},
+					{
+						"name": "庄河市",
+						"latter": "Z"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "鞍山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "铁东区",
+						"latter": "T"
+					},
+					{
+						"name": "铁西区",
+						"latter": "T"
+					},
+					{
+						"name": "立山区",
+						"latter": "L"
+					},
+					{
+						"name": "千山区",
+						"latter": "Q"
+					},
+					{
+						"name": "台安县",
+						"latter": "T"
+					},
+					{
+						"name": "岫岩满族自治县",
+						"latter": "X"
+					},
+					{
+						"name": "海城市",
+						"latter": "H"
+					}
+				],
+				"latter": "A"
+			},
+			{
+				"name": "抚顺市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "新抚区",
+						"latter": "X"
+					},
+					{
+						"name": "东洲区",
+						"latter": "D"
+					},
+					{
+						"name": "望花区",
+						"latter": "W"
+					},
+					{
+						"name": "顺城区",
+						"latter": "S"
+					},
+					{
+						"name": "抚顺县",
+						"latter": "F"
+					},
+					{
+						"name": "新宾满族自治县",
+						"latter": "X"
+					},
+					{
+						"name": "清原满族自治县",
+						"latter": "Q"
+					}
+				],
+				"latter": "F"
+			},
+			{
+				"name": "本溪市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "平山区",
+						"latter": "P"
+					},
+					{
+						"name": "溪湖区",
+						"latter": "X"
+					},
+					{
+						"name": "明山区",
+						"latter": "M"
+					},
+					{
+						"name": "南芬区",
+						"latter": "N"
+					},
+					{
+						"name": "本溪满族自治县",
+						"latter": "B"
+					},
+					{
+						"name": "桓仁满族自治县",
+						"latter": "H"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "丹东市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "元宝区",
+						"latter": "Y"
+					},
+					{
+						"name": "振兴区",
+						"latter": "Z"
+					},
+					{
+						"name": "振安区",
+						"latter": "Z"
+					},
+					{
+						"name": "宽甸满族自治县",
+						"latter": "K"
+					},
+					{
+						"name": "东港市",
+						"latter": "D"
+					},
+					{
+						"name": "凤城市",
+						"latter": "F"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "锦州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "古塔区",
+						"latter": "G"
+					},
+					{
+						"name": "凌河区",
+						"latter": "L"
+					},
+					{
+						"name": "太和区",
+						"latter": "T"
+					},
+					{
+						"name": "黑山县",
+						"latter": "H"
+					},
+					{
+						"name": "义县",
+						"latter": "Y"
+					},
+					{
+						"name": "凌海市",
+						"latter": "L"
+					},
+					{
+						"name": "北镇市",
+						"latter": "B"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "营口市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "站前区",
+						"latter": "Z"
+					},
+					{
+						"name": "西市区",
+						"latter": "X"
+					},
+					{
+						"name": "鲅鱼圈区",
+						"latter": "B"
+					},
+					{
+						"name": "老边区",
+						"latter": "L"
+					},
+					{
+						"name": "盖州市",
+						"latter": "G"
+					},
+					{
+						"name": "大石桥市",
+						"latter": "D"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "阜新市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "海州区",
+						"latter": "H"
+					},
+					{
+						"name": "新邱区",
+						"latter": "X"
+					},
+					{
+						"name": "太平区",
+						"latter": "T"
+					},
+					{
+						"name": "清河门区",
+						"latter": "Q"
+					},
+					{
+						"name": "细河区",
+						"latter": "X"
+					},
+					{
+						"name": "阜新蒙古族自治县",
+						"latter": "F"
+					},
+					{
+						"name": "彰武县",
+						"latter": "Z"
+					}
+				],
+				"latter": "F"
+			},
+			{
+				"name": "辽阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "白塔区",
+						"latter": "B"
+					},
+					{
+						"name": "文圣区",
+						"latter": "W"
+					},
+					{
+						"name": "宏伟区",
+						"latter": "H"
+					},
+					{
+						"name": "弓长岭区",
+						"latter": "G"
+					},
+					{
+						"name": "太子河区",
+						"latter": "T"
+					},
+					{
+						"name": "辽阳县",
+						"latter": "L"
+					},
+					{
+						"name": "灯塔市",
+						"latter": "D"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "盘锦市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "双台子区",
+						"latter": "S"
+					},
+					{
+						"name": "兴隆台区",
+						"latter": "X"
+					},
+					{
+						"name": "大洼县",
+						"latter": "D"
+					},
+					{
+						"name": "盘山县",
+						"latter": "P"
+					}
+				],
+				"latter": "P"
+			},
+			{
+				"name": "铁岭市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "银州区",
+						"latter": "Y"
+					},
+					{
+						"name": "清河区",
+						"latter": "Q"
+					},
+					{
+						"name": "铁岭县",
+						"latter": "T"
+					},
+					{
+						"name": "西丰县",
+						"latter": "X"
+					},
+					{
+						"name": "昌图县",
+						"latter": "C"
+					},
+					{
+						"name": "调兵山市",
+						"latter": "T"
+					},
+					{
+						"name": "开原市",
+						"latter": "K"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "朝阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "双塔区",
+						"latter": "S"
+					},
+					{
+						"name": "龙城区",
+						"latter": "L"
+					},
+					{
+						"name": "朝阳县",
+						"latter": "Z"
+					},
+					{
+						"name": "建平县",
+						"latter": "J"
+					},
+					{
+						"name": "喀喇沁左翼蒙古族自治县",
+						"latter": "K"
+					},
+					{
+						"name": "北票市",
+						"latter": "B"
+					},
+					{
+						"name": "凌源市",
+						"latter": "L"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "葫芦岛市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "连山区",
+						"latter": "L"
+					},
+					{
+						"name": "龙港区",
+						"latter": "L"
+					},
+					{
+						"name": "南票区",
+						"latter": "N"
+					},
+					{
+						"name": "绥中县",
+						"latter": "S"
+					},
+					{
+						"name": "建昌县",
+						"latter": "J"
+					},
+					{
+						"name": "兴城市",
+						"latter": "X"
+					}
+				],
+				"latter": "H"
+			}
+		],
+		"latter": "L"
+	},
+	{
+		"name": "吉林省",
+		"children": [{
+				"name": "长春市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "南关区",
+						"latter": "N"
+					},
+					{
+						"name": "宽城区",
+						"latter": "K"
+					},
+					{
+						"name": "朝阳区",
+						"latter": "Z"
+					},
+					{
+						"name": "二道区",
+						"latter": "E"
+					},
+					{
+						"name": "绿园区",
+						"latter": "L"
+					},
+					{
+						"name": "双阳区",
+						"latter": "S"
+					},
+					{
+						"name": "农安县",
+						"latter": "N"
+					},
+					{
+						"name": "九台市",
+						"latter": "J"
+					},
+					{
+						"name": "榆树市",
+						"latter": "Y"
+					},
+					{
+						"name": "德惠市",
+						"latter": "D"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "吉林市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "昌邑区",
+						"latter": "C"
+					},
+					{
+						"name": "龙潭区",
+						"latter": "L"
+					},
+					{
+						"name": "船营区",
+						"latter": "C"
+					},
+					{
+						"name": "丰满区",
+						"latter": "F"
+					},
+					{
+						"name": "永吉县",
+						"latter": "Y"
+					},
+					{
+						"name": "蛟河市",
+						"latter": "J"
+					},
+					{
+						"name": "桦甸市",
+						"latter": "H"
+					},
+					{
+						"name": "舒兰市",
+						"latter": "S"
+					},
+					{
+						"name": "磐石市",
+						"latter": "P"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "四平市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "铁西区",
+						"latter": "T"
+					},
+					{
+						"name": "铁东区",
+						"latter": "T"
+					},
+					{
+						"name": "梨树县",
+						"latter": "L"
+					},
+					{
+						"name": "伊通满族自治县",
+						"latter": "Y"
+					},
+					{
+						"name": "公主岭市",
+						"latter": "G"
+					},
+					{
+						"name": "双辽市",
+						"latter": "S"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "辽源市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "龙山区",
+						"latter": "L"
+					},
+					{
+						"name": "西安区",
+						"latter": "X"
+					},
+					{
+						"name": "东丰县",
+						"latter": "D"
+					},
+					{
+						"name": "东辽县",
+						"latter": "D"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "通化市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东昌区",
+						"latter": "D"
+					},
+					{
+						"name": "二道江区",
+						"latter": "E"
+					},
+					{
+						"name": "通化县",
+						"latter": "T"
+					},
+					{
+						"name": "辉南县",
+						"latter": "H"
+					},
+					{
+						"name": "柳河县",
+						"latter": "L"
+					},
+					{
+						"name": "梅河口市",
+						"latter": "M"
+					},
+					{
+						"name": "集安市",
+						"latter": "J"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "白山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "浑江区",
+						"latter": "H"
+					},
+					{
+						"name": "江源区",
+						"latter": "J"
+					},
+					{
+						"name": "抚松县",
+						"latter": "F"
+					},
+					{
+						"name": "靖宇县",
+						"latter": "J"
+					},
+					{
+						"name": "长白朝鲜族自治县",
+						"latter": "C"
+					},
+					{
+						"name": "临江市",
+						"latter": "L"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "松原市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "宁江区",
+						"latter": "N"
+					},
+					{
+						"name": "前郭尔罗斯蒙古族自治县",
+						"latter": "Q"
+					},
+					{
+						"name": "长岭县",
+						"latter": "C"
+					},
+					{
+						"name": "乾安县",
+						"latter": "Q"
+					},
+					{
+						"name": "扶余市",
+						"latter": "F"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "白城市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "洮北区",
+						"latter": "T"
+					},
+					{
+						"name": "镇赉县",
+						"latter": "Z"
+					},
+					{
+						"name": "通榆县",
+						"latter": "T"
+					},
+					{
+						"name": "洮南市",
+						"latter": "T"
+					},
+					{
+						"name": "大安市",
+						"latter": "D"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "延边朝鲜族自治州",
+				"children": [{
+						"name": "延吉市",
+						"latter": "Y"
+					},
+					{
+						"name": "图们市",
+						"latter": "T"
+					},
+					{
+						"name": "敦化市",
+						"latter": "D"
+					},
+					{
+						"name": "珲春市",
+						"latter": "H"
+					},
+					{
+						"name": "龙井市",
+						"latter": "L"
+					},
+					{
+						"name": "和龙市",
+						"latter": "H"
+					},
+					{
+						"name": "汪清县",
+						"latter": "W"
+					},
+					{
+						"name": "安图县",
+						"latter": "A"
+					}
+				],
+				"latter": "Y"
+			}
+		],
+		"latter": "J"
+	},
+	{
+		"name": "黑龙江省",
+		"children": [{
+				"name": "哈尔滨市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "道里区",
+						"latter": "D"
+					},
+					{
+						"name": "南岗区",
+						"latter": "N"
+					},
+					{
+						"name": "道外区",
+						"latter": "D"
+					},
+					{
+						"name": "平房区",
+						"latter": "P"
+					},
+					{
+						"name": "松北区",
+						"latter": "S"
+					},
+					{
+						"name": "香坊区",
+						"latter": "X"
+					},
+					{
+						"name": "呼兰区",
+						"latter": "H"
+					},
+					{
+						"name": "阿城区",
+						"latter": "A"
+					},
+					{
+						"name": "依兰县",
+						"latter": "Y"
+					},
+					{
+						"name": "方正县",
+						"latter": "F"
+					},
+					{
+						"name": "宾县",
+						"latter": "B"
+					},
+					{
+						"name": "巴彦县",
+						"latter": "B"
+					},
+					{
+						"name": "木兰县",
+						"latter": "M"
+					},
+					{
+						"name": "通河县",
+						"latter": "T"
+					},
+					{
+						"name": "延寿县",
+						"latter": "Y"
+					},
+					{
+						"name": "双城市",
+						"latter": "S"
+					},
+					{
+						"name": "尚志市",
+						"latter": "S"
+					},
+					{
+						"name": "五常市",
+						"latter": "W"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "齐齐哈尔市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "龙沙区",
+						"latter": "L"
+					},
+					{
+						"name": "建华区",
+						"latter": "J"
+					},
+					{
+						"name": "铁锋区",
+						"latter": "T"
+					},
+					{
+						"name": "昂昂溪区",
+						"latter": "A"
+					},
+					{
+						"name": "富拉尔基区",
+						"latter": "F"
+					},
+					{
+						"name": "碾子山区",
+						"latter": "N"
+					},
+					{
+						"name": "梅里斯达斡尔族区",
+						"latter": "M"
+					},
+					{
+						"name": "龙江县",
+						"latter": "L"
+					},
+					{
+						"name": "依安县",
+						"latter": "Y"
+					},
+					{
+						"name": "泰来县",
+						"latter": "T"
+					},
+					{
+						"name": "甘南县",
+						"latter": "G"
+					},
+					{
+						"name": "富裕县",
+						"latter": "F"
+					},
+					{
+						"name": "克山县",
+						"latter": "K"
+					},
+					{
+						"name": "克东县",
+						"latter": "K"
+					},
+					{
+						"name": "拜泉县",
+						"latter": "B"
+					},
+					{
+						"name": "讷河市",
+						"latter": "N"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "鸡西市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "鸡冠区",
+						"latter": "J"
+					},
+					{
+						"name": "恒山区",
+						"latter": "H"
+					},
+					{
+						"name": "滴道区",
+						"latter": "D"
+					},
+					{
+						"name": "梨树区",
+						"latter": "L"
+					},
+					{
+						"name": "城子河区",
+						"latter": "C"
+					},
+					{
+						"name": "麻山区",
+						"latter": "M"
+					},
+					{
+						"name": "鸡东县",
+						"latter": "J"
+					},
+					{
+						"name": "虎林市",
+						"latter": "H"
+					},
+					{
+						"name": "密山市",
+						"latter": "M"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "鹤岗市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "向阳区",
+						"latter": "X"
+					},
+					{
+						"name": "工农区",
+						"latter": "G"
+					},
+					{
+						"name": "南山区",
+						"latter": "N"
+					},
+					{
+						"name": "兴安区",
+						"latter": "X"
+					},
+					{
+						"name": "东山区",
+						"latter": "D"
+					},
+					{
+						"name": "兴山区",
+						"latter": "X"
+					},
+					{
+						"name": "萝北县",
+						"latter": "L"
+					},
+					{
+						"name": "绥滨县",
+						"latter": "S"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "双鸭山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "尖山区",
+						"latter": "J"
+					},
+					{
+						"name": "岭东区",
+						"latter": "L"
+					},
+					{
+						"name": "四方台区",
+						"latter": "S"
+					},
+					{
+						"name": "宝山区",
+						"latter": "B"
+					},
+					{
+						"name": "集贤县",
+						"latter": "J"
+					},
+					{
+						"name": "友谊县",
+						"latter": "Y"
+					},
+					{
+						"name": "宝清县",
+						"latter": "B"
+					},
+					{
+						"name": "饶河县",
+						"latter": "R"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "大庆市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "萨尔图区",
+						"latter": "S"
+					},
+					{
+						"name": "龙凤区",
+						"latter": "L"
+					},
+					{
+						"name": "让胡路区",
+						"latter": "R"
+					},
+					{
+						"name": "红岗区",
+						"latter": "H"
+					},
+					{
+						"name": "大同区",
+						"latter": "D"
+					},
+					{
+						"name": "肇州县",
+						"latter": "Z"
+					},
+					{
+						"name": "肇源县",
+						"latter": "Z"
+					},
+					{
+						"name": "林甸县",
+						"latter": "L"
+					},
+					{
+						"name": "杜尔伯特蒙古族自治县",
+						"latter": "D"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "伊春市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "伊春区",
+						"latter": "Y"
+					},
+					{
+						"name": "南岔区",
+						"latter": "N"
+					},
+					{
+						"name": "友好区",
+						"latter": "Y"
+					},
+					{
+						"name": "西林区",
+						"latter": "X"
+					},
+					{
+						"name": "翠峦区",
+						"latter": "C"
+					},
+					{
+						"name": "新青区",
+						"latter": "X"
+					},
+					{
+						"name": "美溪区",
+						"latter": "M"
+					},
+					{
+						"name": "金山屯区",
+						"latter": "J"
+					},
+					{
+						"name": "五营区",
+						"latter": "W"
+					},
+					{
+						"name": "乌马河区",
+						"latter": "W"
+					},
+					{
+						"name": "汤旺河区",
+						"latter": "T"
+					},
+					{
+						"name": "带岭区",
+						"latter": "D"
+					},
+					{
+						"name": "乌伊岭区",
+						"latter": "W"
+					},
+					{
+						"name": "红星区",
+						"latter": "H"
+					},
+					{
+						"name": "上甘岭区",
+						"latter": "S"
+					},
+					{
+						"name": "嘉荫县",
+						"latter": "J"
+					},
+					{
+						"name": "铁力市",
+						"latter": "T"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "佳木斯市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "向阳区",
+						"latter": "X"
+					},
+					{
+						"name": "前进区",
+						"latter": "Q"
+					},
+					{
+						"name": "东风区",
+						"latter": "D"
+					},
+					{
+						"name": "郊区",
+						"latter": "J"
+					},
+					{
+						"name": "桦南县",
+						"latter": "H"
+					},
+					{
+						"name": "桦川县",
+						"latter": "H"
+					},
+					{
+						"name": "汤原县",
+						"latter": "T"
+					},
+					{
+						"name": "抚远县",
+						"latter": "F"
+					},
+					{
+						"name": "同江市",
+						"latter": "T"
+					},
+					{
+						"name": "富锦市",
+						"latter": "F"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "七台河市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "新兴区",
+						"latter": "X"
+					},
+					{
+						"name": "桃山区",
+						"latter": "T"
+					},
+					{
+						"name": "茄子河区",
+						"latter": "Q"
+					},
+					{
+						"name": "勃利县",
+						"latter": "B"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "牡丹江市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东安区",
+						"latter": "D"
+					},
+					{
+						"name": "阳明区",
+						"latter": "Y"
+					},
+					{
+						"name": "爱民区",
+						"latter": "A"
+					},
+					{
+						"name": "西安区",
+						"latter": "X"
+					},
+					{
+						"name": "东宁县",
+						"latter": "D"
+					},
+					{
+						"name": "林口县",
+						"latter": "L"
+					},
+					{
+						"name": "绥芬河市",
+						"latter": "S"
+					},
+					{
+						"name": "海林市",
+						"latter": "H"
+					},
+					{
+						"name": "宁安市",
+						"latter": "N"
+					},
+					{
+						"name": "穆棱市",
+						"latter": "M"
+					}
+				],
+				"latter": "M"
+			},
+			{
+				"name": "黑河市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "爱辉区",
+						"latter": "A"
+					},
+					{
+						"name": "嫩江县",
+						"latter": "N"
+					},
+					{
+						"name": "逊克县",
+						"latter": "X"
+					},
+					{
+						"name": "孙吴县",
+						"latter": "S"
+					},
+					{
+						"name": "北安市",
+						"latter": "B"
+					},
+					{
+						"name": "五大连池市",
+						"latter": "W"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "绥化市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "北林区",
+						"latter": "B"
+					},
+					{
+						"name": "望奎县",
+						"latter": "W"
+					},
+					{
+						"name": "兰西县",
+						"latter": "L"
+					},
+					{
+						"name": "青冈县",
+						"latter": "Q"
+					},
+					{
+						"name": "庆安县",
+						"latter": "Q"
+					},
+					{
+						"name": "明水县",
+						"latter": "M"
+					},
+					{
+						"name": "绥棱县",
+						"latter": "S"
+					},
+					{
+						"name": "安达市",
+						"latter": "A"
+					},
+					{
+						"name": "肇东市",
+						"latter": "Z"
+					},
+					{
+						"name": "海伦市",
+						"latter": "H"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "大兴安岭地区",
+				"children": [{
+						"name": "呼玛县",
+						"latter": "H"
+					},
+					{
+						"name": "塔河县",
+						"latter": "T"
+					},
+					{
+						"name": "漠河县",
+						"latter": "M"
+					}
+				],
+				"latter": "D"
+			}
+		],
+		"latter": "H"
+	},
+	{
+		"name": "上海",
+		"latter": "S",
+		"children": [
+			{
+				"name": "上海市",
+				"children": [{
+						"name": "黄浦区",
+						"latter": "H"
+					},
+					{
+						"name": "徐汇区",
+						"latter": "X"
+					},
+					{
+						"name": "长宁区",
+						"latter": "C"
+					},
+					{
+						"name": "静安区",
+						"latter": "J"
+					},
+					{
+						"name": "普陀区",
+						"latter": "P"
+					},
+					{
+						"name": "闸北区",
+						"latter": "Z"
+					},
+					{
+						"name": "虹口区",
+						"latter": "H"
+					},
+					{
+						"name": "杨浦区",
+						"latter": "Y"
+					},
+					{
+						"name": "闵行区",
+						"latter": "M"
+					},
+					{
+						"name": "宝山区",
+						"latter": "B"
+					},
+					{
+						"name": "嘉定区",
+						"latter": "J"
+					},
+					{
+						"name": "浦东新区",
+						"latter": "P"
+					},
+					{
+						"name": "金山区",
+						"latter": "J"
+					},
+					{
+						"name": "松江区",
+						"latter": "S"
+					},
+					{
+						"name": "青浦区",
+						"latter": "Q"
+					},
+					{
+						"name": "奉贤区",
+						"latter": "F"
+					},
+					{
+						"name": "崇明县",
+						"latter": "C"
+					}
+				],
+				"latter": "S"
+			}
+		]
+	},
+	{
+		"name": "江苏省",
+		"children": [{
+				"name": "南京市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "玄武区",
+						"latter": "X"
+					},
+					{
+						"name": "秦淮区",
+						"latter": "Q"
+					},
+					{
+						"name": "建邺区",
+						"latter": "J"
+					},
+					{
+						"name": "鼓楼区",
+						"latter": "G"
+					},
+					{
+						"name": "浦口区",
+						"latter": "P"
+					},
+					{
+						"name": "栖霞区",
+						"latter": "Q"
+					},
+					{
+						"name": "雨花台区",
+						"latter": "Y"
+					},
+					{
+						"name": "江宁区",
+						"latter": "J"
+					},
+					{
+						"name": "六合区",
+						"latter": "L"
+					},
+					{
+						"name": "溧水区",
+						"latter": "L"
+					},
+					{
+						"name": "高淳区",
+						"latter": "G"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "无锡市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "崇安区",
+						"latter": "C"
+					},
+					{
+						"name": "南长区",
+						"latter": "N"
+					},
+					{
+						"name": "北塘区",
+						"latter": "B"
+					},
+					{
+						"name": "锡山区",
+						"latter": "X"
+					},
+					{
+						"name": "惠山区",
+						"latter": "H"
+					},
+					{
+						"name": "滨湖区",
+						"latter": "B"
+					},
+					{
+						"name": "江阴市",
+						"latter": "J"
+					},
+					{
+						"name": "宜兴市",
+						"latter": "Y"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "徐州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "鼓楼区",
+						"latter": "G"
+					},
+					{
+						"name": "云龙区",
+						"latter": "Y"
+					},
+					{
+						"name": "贾汪区",
+						"latter": "J"
+					},
+					{
+						"name": "泉山区",
+						"latter": "Q"
+					},
+					{
+						"name": "铜山区",
+						"latter": "T"
+					},
+					{
+						"name": "丰县",
+						"latter": "F"
+					},
+					{
+						"name": "沛县",
+						"latter": "P"
+					},
+					{
+						"name": "睢宁县",
+						"latter": "H"
+					},
+					{
+						"name": "新沂市",
+						"latter": "X"
+					},
+					{
+						"name": "邳州市",
+						"latter": "P"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "常州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "天宁区",
+						"latter": "T"
+					},
+					{
+						"name": "钟楼区",
+						"latter": "Z"
+					},
+					{
+						"name": "戚墅堰区",
+						"latter": "Q"
+					},
+					{
+						"name": "新北区",
+						"latter": "X"
+					},
+					{
+						"name": "武进区",
+						"latter": "W"
+					},
+					{
+						"name": "溧阳市",
+						"latter": "L"
+					},
+					{
+						"name": "金坛市",
+						"latter": "J"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "苏州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "虎丘区",
+						"latter": "H"
+					},
+					{
+						"name": "吴中区",
+						"latter": "W"
+					},
+					{
+						"name": "相城区",
+						"latter": "X"
+					},
+					{
+						"name": "姑苏区",
+						"latter": "G"
+					},
+					{
+						"name": "吴江区",
+						"latter": "W"
+					},
+					{
+						"name": "常熟市",
+						"latter": "C"
+					},
+					{
+						"name": "张家港市",
+						"latter": "Z"
+					},
+					{
+						"name": "昆山市",
+						"latter": "K"
+					},
+					{
+						"name": "太仓市",
+						"latter": "T"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "南通市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "崇川区",
+						"latter": "C"
+					},
+					{
+						"name": "港闸区",
+						"latter": "G"
+					},
+					{
+						"name": "通州区",
+						"latter": "T"
+					},
+					{
+						"name": "海安县",
+						"latter": "H"
+					},
+					{
+						"name": "如东县",
+						"latter": "R"
+					},
+					{
+						"name": "启东市",
+						"latter": "Q"
+					},
+					{
+						"name": "如皋市",
+						"latter": "R"
+					},
+					{
+						"name": "海门市",
+						"latter": "H"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "连云港市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "连云区",
+						"latter": "L"
+					},
+					{
+						"name": "新浦区",
+						"latter": "X"
+					},
+					{
+						"name": "海州区",
+						"latter": "H"
+					},
+					{
+						"name": "赣榆县",
+						"latter": "G"
+					},
+					{
+						"name": "东海县",
+						"latter": "D"
+					},
+					{
+						"name": "灌云县",
+						"latter": "G"
+					},
+					{
+						"name": "灌南县",
+						"latter": "G"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "淮安市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "清河区",
+						"latter": "Q"
+					},
+					{
+						"name": "淮安区",
+						"latter": "H"
+					},
+					{
+						"name": "淮阴区",
+						"latter": "H"
+					},
+					{
+						"name": "清浦区",
+						"latter": "Q"
+					},
+					{
+						"name": "涟水县",
+						"latter": "L"
+					},
+					{
+						"name": "洪泽县",
+						"latter": "H"
+					},
+					{
+						"name": "盱眙县",
+						"latter": "X"
+					},
+					{
+						"name": "金湖县",
+						"latter": "J"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "盐城市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "亭湖区",
+						"latter": "T"
+					},
+					{
+						"name": "盐都区",
+						"latter": "Y"
+					},
+					{
+						"name": "响水县",
+						"latter": "X"
+					},
+					{
+						"name": "滨海县",
+						"latter": "B"
+					},
+					{
+						"name": "阜宁县",
+						"latter": "F"
+					},
+					{
+						"name": "射阳县",
+						"latter": "S"
+					},
+					{
+						"name": "建湖县",
+						"latter": "J"
+					},
+					{
+						"name": "东台市",
+						"latter": "D"
+					},
+					{
+						"name": "大丰市",
+						"latter": "D"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "扬州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "广陵区",
+						"latter": "G"
+					},
+					{
+						"name": "邗江区",
+						"latter": "H"
+					},
+					{
+						"name": "江都区",
+						"latter": "J"
+					},
+					{
+						"name": "宝应县",
+						"latter": "B"
+					},
+					{
+						"name": "仪征市",
+						"latter": "Y"
+					},
+					{
+						"name": "高邮市",
+						"latter": "G"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "镇江市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "京口区",
+						"latter": "J"
+					},
+					{
+						"name": "润州区",
+						"latter": "R"
+					},
+					{
+						"name": "丹徒区",
+						"latter": "D"
+					},
+					{
+						"name": "丹阳市",
+						"latter": "D"
+					},
+					{
+						"name": "扬中市",
+						"latter": "Y"
+					},
+					{
+						"name": "句容市",
+						"latter": "J"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "泰州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "海陵区",
+						"latter": "H"
+					},
+					{
+						"name": "高港区",
+						"latter": "G"
+					},
+					{
+						"name": "姜堰区",
+						"latter": "J"
+					},
+					{
+						"name": "兴化市",
+						"latter": "X"
+					},
+					{
+						"name": "靖江市",
+						"latter": "J"
+					},
+					{
+						"name": "泰兴市",
+						"latter": "T"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "宿迁市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "宿城区",
+						"latter": "S"
+					},
+					{
+						"name": "宿豫区",
+						"latter": "S"
+					},
+					{
+						"name": "沭阳县",
+						"latter": "S"
+					},
+					{
+						"name": "泗阳县",
+						"latter": "S"
+					},
+					{
+						"name": "泗洪县",
+						"latter": "S"
+					}
+				],
+				"latter": "S"
+			}
+		],
+		"latter": "J"
+	},
+	{
+		"name": "浙江省",
+		"children": [{
+				"name": "杭州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "上城区",
+						"latter": "S"
+					},
+					{
+						"name": "下城区",
+						"latter": "X"
+					},
+					{
+						"name": "江干区",
+						"latter": "J"
+					},
+					{
+						"name": "拱墅区",
+						"latter": "G"
+					},
+					{
+						"name": "西湖区",
+						"latter": "X"
+					},
+					{
+						"name": "滨江区",
+						"latter": "B"
+					},
+					{
+						"name": "萧山区",
+						"latter": "X"
+					},
+					{
+						"name": "余杭区",
+						"latter": "Y"
+					},
+					{
+						"name": "桐庐县",
+						"latter": "T"
+					},
+					{
+						"name": "淳安县",
+						"latter": "C"
+					},
+					{
+						"name": "建德市",
+						"latter": "J"
+					},
+					{
+						"name": "富阳市",
+						"latter": "F"
+					},
+					{
+						"name": "临安市",
+						"latter": "L"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "宁波市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "海曙区",
+						"latter": "H"
+					},
+					{
+						"name": "江东区",
+						"latter": "J"
+					},
+					{
+						"name": "江北区",
+						"latter": "J"
+					},
+					{
+						"name": "北仑区",
+						"latter": "B"
+					},
+					{
+						"name": "镇海区",
+						"latter": "Z"
+					},
+					{
+						"name": "鄞州区",
+						"latter": "Y"
+					},
+					{
+						"name": "象山县",
+						"latter": "X"
+					},
+					{
+						"name": "宁海县",
+						"latter": "N"
+					},
+					{
+						"name": "余姚市",
+						"latter": "Y"
+					},
+					{
+						"name": "慈溪市",
+						"latter": "C"
+					},
+					{
+						"name": "奉化市",
+						"latter": "F"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "温州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "鹿城区",
+						"latter": "L"
+					},
+					{
+						"name": "龙湾区",
+						"latter": "L"
+					},
+					{
+						"name": "瓯海区",
+						"latter": "O"
+					},
+					{
+						"name": "洞头县",
+						"latter": "D"
+					},
+					{
+						"name": "永嘉县",
+						"latter": "Y"
+					},
+					{
+						"name": "平阳县",
+						"latter": "P"
+					},
+					{
+						"name": "苍南县",
+						"latter": "C"
+					},
+					{
+						"name": "文成县",
+						"latter": "W"
+					},
+					{
+						"name": "泰顺县",
+						"latter": "T"
+					},
+					{
+						"name": "瑞安市",
+						"latter": "R"
+					},
+					{
+						"name": "乐清市",
+						"latter": "L"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "嘉兴市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "南湖区",
+						"latter": "N"
+					},
+					{
+						"name": "秀洲区",
+						"latter": "X"
+					},
+					{
+						"name": "嘉善县",
+						"latter": "J"
+					},
+					{
+						"name": "海盐县",
+						"latter": "H"
+					},
+					{
+						"name": "海宁市",
+						"latter": "H"
+					},
+					{
+						"name": "平湖市",
+						"latter": "P"
+					},
+					{
+						"name": "桐乡市",
+						"latter": "T"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "湖州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "吴兴区",
+						"latter": "W"
+					},
+					{
+						"name": "南浔区",
+						"latter": "N"
+					},
+					{
+						"name": "德清县",
+						"latter": "D"
+					},
+					{
+						"name": "长兴县",
+						"latter": "C"
+					},
+					{
+						"name": "安吉县",
+						"latter": "A"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "绍兴市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "越城区",
+						"latter": "Y"
+					},
+					{
+						"name": "绍兴县",
+						"latter": "S"
+					},
+					{
+						"name": "新昌县",
+						"latter": "X"
+					},
+					{
+						"name": "诸暨市",
+						"latter": "Z"
+					},
+					{
+						"name": "上虞市",
+						"latter": "S"
+					},
+					{
+						"name": "嵊州市",
+						"latter": "S"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "金华市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "婺城区",
+						"latter": "W"
+					},
+					{
+						"name": "金东区",
+						"latter": "J"
+					},
+					{
+						"name": "武义县",
+						"latter": "W"
+					},
+					{
+						"name": "浦江县",
+						"latter": "P"
+					},
+					{
+						"name": "磐安县",
+						"latter": "P"
+					},
+					{
+						"name": "兰溪市",
+						"latter": "L"
+					},
+					{
+						"name": "义乌市",
+						"latter": "Y"
+					},
+					{
+						"name": "东阳市",
+						"latter": "D"
+					},
+					{
+						"name": "永康市",
+						"latter": "Y"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "衢州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "柯城区",
+						"latter": "K"
+					},
+					{
+						"name": "衢江区",
+						"latter": "Q"
+					},
+					{
+						"name": "常山县",
+						"latter": "C"
+					},
+					{
+						"name": "开化县",
+						"latter": "K"
+					},
+					{
+						"name": "龙游县",
+						"latter": "L"
+					},
+					{
+						"name": "江山市",
+						"latter": "J"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "舟山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "定海区",
+						"latter": "D"
+					},
+					{
+						"name": "普陀区",
+						"latter": "P"
+					},
+					{
+						"name": "岱山县",
+						"latter": "D"
+					},
+					{
+						"name": "嵊泗县",
+						"latter": "S"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "台州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "椒江区",
+						"latter": "J"
+					},
+					{
+						"name": "黄岩区",
+						"latter": "H"
+					},
+					{
+						"name": "路桥区",
+						"latter": "L"
+					},
+					{
+						"name": "玉环县",
+						"latter": "Y"
+					},
+					{
+						"name": "三门县",
+						"latter": "S"
+					},
+					{
+						"name": "天台县",
+						"latter": "T"
+					},
+					{
+						"name": "仙居县",
+						"latter": "X"
+					},
+					{
+						"name": "温岭市",
+						"latter": "W"
+					},
+					{
+						"name": "临海市",
+						"latter": "L"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "丽水市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "莲都区",
+						"latter": "L"
+					},
+					{
+						"name": "青田县",
+						"latter": "Q"
+					},
+					{
+						"name": "缙云县",
+						"latter": "J"
+					},
+					{
+						"name": "遂昌县",
+						"latter": "S"
+					},
+					{
+						"name": "松阳县",
+						"latter": "S"
+					},
+					{
+						"name": "云和县",
+						"latter": "Y"
+					},
+					{
+						"name": "庆元县",
+						"latter": "Q"
+					},
+					{
+						"name": "景宁畲族自治县",
+						"latter": "J"
+					},
+					{
+						"name": "龙泉市",
+						"latter": "L"
+					}
+				],
+				"latter": "L"
+			}
+		],
+		"latter": "Z"
+	},
+	{
+		"name": "安徽省",
+		"children": [{
+				"name": "合肥市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "瑶海区",
+						"latter": "Y"
+					},
+					{
+						"name": "庐阳区",
+						"latter": "L"
+					},
+					{
+						"name": "蜀山区",
+						"latter": "S"
+					},
+					{
+						"name": "包河区",
+						"latter": "B"
+					},
+					{
+						"name": "长丰县",
+						"latter": "C"
+					},
+					{
+						"name": "肥东县",
+						"latter": "F"
+					},
+					{
+						"name": "肥西县",
+						"latter": "F"
+					},
+					{
+						"name": "庐江县",
+						"latter": "L"
+					},
+					{
+						"name": "巢湖市",
+						"latter": "C"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "芜湖市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "镜湖区",
+						"latter": "J"
+					},
+					{
+						"name": "弋江区",
+						"latter": "Y"
+					},
+					{
+						"name": "鸠江区",
+						"latter": "J"
+					},
+					{
+						"name": "三山区",
+						"latter": "S"
+					},
+					{
+						"name": "芜湖县",
+						"latter": "W"
+					},
+					{
+						"name": "繁昌县",
+						"latter": "F"
+					},
+					{
+						"name": "南陵县",
+						"latter": "N"
+					},
+					{
+						"name": "无为县",
+						"latter": "W"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "蚌埠市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "龙子湖区",
+						"latter": "L"
+					},
+					{
+						"name": "蚌山区",
+						"latter": "B"
+					},
+					{
+						"name": "禹会区",
+						"latter": "Y"
+					},
+					{
+						"name": "淮上区",
+						"latter": "H"
+					},
+					{
+						"name": "怀远县",
+						"latter": "H"
+					},
+					{
+						"name": "五河县",
+						"latter": "W"
+					},
+					{
+						"name": "固镇县",
+						"latter": "G"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "淮南市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "大通区",
+						"latter": "D"
+					},
+					{
+						"name": "田家庵区",
+						"latter": "T"
+					},
+					{
+						"name": "谢家集区",
+						"latter": "X"
+					},
+					{
+						"name": "八公山区",
+						"latter": "B"
+					},
+					{
+						"name": "潘集区",
+						"latter": "P"
+					},
+					{
+						"name": "凤台县",
+						"latter": "F"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "马鞍山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "花山区",
+						"latter": "H"
+					},
+					{
+						"name": "雨山区",
+						"latter": "Y"
+					},
+					{
+						"name": "博望区",
+						"latter": "B"
+					},
+					{
+						"name": "当涂县",
+						"latter": "D"
+					},
+					{
+						"name": "含山县",
+						"latter": "H"
+					},
+					{
+						"name": "和县",
+						"latter": "H"
+					}
+				],
+				"latter": "M"
+			},
+			{
+				"name": "淮北市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "杜集区",
+						"latter": "D"
+					},
+					{
+						"name": "相山区",
+						"latter": "X"
+					},
+					{
+						"name": "烈山区",
+						"latter": "L"
+					},
+					{
+						"name": "濉溪县",
+						"latter": "S"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "铜陵市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "铜官山区",
+						"latter": "T"
+					},
+					{
+						"name": "狮子山区",
+						"latter": "S"
+					},
+					{
+						"name": "郊区",
+						"latter": "J"
+					},
+					{
+						"name": "铜陵县",
+						"latter": "T"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "安庆市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "迎江区",
+						"latter": "Y"
+					},
+					{
+						"name": "大观区",
+						"latter": "D"
+					},
+					{
+						"name": "宜秀区",
+						"latter": "Y"
+					},
+					{
+						"name": "怀宁县",
+						"latter": "H"
+					},
+					{
+						"name": "枞阳县",
+						"latter": "C"
+					},
+					{
+						"name": "潜山县",
+						"latter": "Q"
+					},
+					{
+						"name": "太湖县",
+						"latter": "T"
+					},
+					{
+						"name": "宿松县",
+						"latter": "S"
+					},
+					{
+						"name": "望江县",
+						"latter": "W"
+					},
+					{
+						"name": "岳西县",
+						"latter": "Y"
+					},
+					{
+						"name": "桐城市",
+						"latter": "T"
+					}
+				],
+				"latter": "A"
+			},
+			{
+				"name": "黄山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "屯溪区",
+						"latter": "T"
+					},
+					{
+						"name": "黄山区",
+						"latter": "H"
+					},
+					{
+						"name": "徽州区",
+						"latter": "H"
+					},
+					{
+						"name": "歙县",
+						"latter": "X"
+					},
+					{
+						"name": "休宁县",
+						"latter": "X"
+					},
+					{
+						"name": "黟县",
+						"latter": "Y"
+					},
+					{
+						"name": "祁门县",
+						"latter": "Q"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "滁州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "琅琊区",
+						"latter": "L"
+					},
+					{
+						"name": "南谯区",
+						"latter": "N"
+					},
+					{
+						"name": "来安县",
+						"latter": "L"
+					},
+					{
+						"name": "全椒县",
+						"latter": "Q"
+					},
+					{
+						"name": "定远县",
+						"latter": "D"
+					},
+					{
+						"name": "凤阳县",
+						"latter": "F"
+					},
+					{
+						"name": "天长市",
+						"latter": "T"
+					},
+					{
+						"name": "明光市",
+						"latter": "M"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "阜阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "颍州区",
+						"latter": "Y"
+					},
+					{
+						"name": "颍东区",
+						"latter": "Y"
+					},
+					{
+						"name": "颍泉区",
+						"latter": "Y"
+					},
+					{
+						"name": "临泉县",
+						"latter": "L"
+					},
+					{
+						"name": "太和县",
+						"latter": "T"
+					},
+					{
+						"name": "阜南县",
+						"latter": "F"
+					},
+					{
+						"name": "颍上县",
+						"latter": "Y"
+					},
+					{
+						"name": "界首市",
+						"latter": "J"
+					}
+				],
+				"latter": "F"
+			},
+			{
+				"name": "宿州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "埇桥区",
+						"latter": "Y"
+					},
+					{
+						"name": "砀山县",
+						"latter": "D"
+					},
+					{
+						"name": "萧县",
+						"latter": "X"
+					},
+					{
+						"name": "灵璧县",
+						"latter": "L"
+					},
+					{
+						"name": "泗县",
+						"latter": "S"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "六安市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "金安区",
+						"latter": "J"
+					},
+					{
+						"name": "裕安区",
+						"latter": "Y"
+					},
+					{
+						"name": "寿县",
+						"latter": "S"
+					},
+					{
+						"name": "霍邱县",
+						"latter": "H"
+					},
+					{
+						"name": "舒城县",
+						"latter": "S"
+					},
+					{
+						"name": "金寨县",
+						"latter": "J"
+					},
+					{
+						"name": "霍山县",
+						"latter": "H"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "亳州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "谯城区",
+						"latter": "Q"
+					},
+					{
+						"name": "涡阳县",
+						"latter": "W"
+					},
+					{
+						"name": "蒙城县",
+						"latter": "M"
+					},
+					{
+						"name": "利辛县",
+						"latter": "L"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "池州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "贵池区",
+						"latter": "G"
+					},
+					{
+						"name": "东至县",
+						"latter": "D"
+					},
+					{
+						"name": "石台县",
+						"latter": "S"
+					},
+					{
+						"name": "青阳县",
+						"latter": "Q"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "宣城市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "宣州区",
+						"latter": "X"
+					},
+					{
+						"name": "郎溪县",
+						"latter": "L"
+					},
+					{
+						"name": "广德县",
+						"latter": "G"
+					},
+					{
+						"name": "泾县",
+						"latter": "J"
+					},
+					{
+						"name": "绩溪县",
+						"latter": "J"
+					},
+					{
+						"name": "旌德县",
+						"latter": "J"
+					},
+					{
+						"name": "宁国市",
+						"latter": "N"
+					}
+				],
+				"latter": "X"
+			}
+		],
+		"latter": "A"
+	},
+	{
+		"name": "福建省",
+		"children": [{
+				"name": "福州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "鼓楼区",
+						"latter": "G"
+					},
+					{
+						"name": "台江区",
+						"latter": "T"
+					},
+					{
+						"name": "仓山区",
+						"latter": "C"
+					},
+					{
+						"name": "马尾区",
+						"latter": "M"
+					},
+					{
+						"name": "晋安区",
+						"latter": "J"
+					},
+					{
+						"name": "闽侯县",
+						"latter": "M"
+					},
+					{
+						"name": "连江县",
+						"latter": "L"
+					},
+					{
+						"name": "罗源县",
+						"latter": "L"
+					},
+					{
+						"name": "闽清县",
+						"latter": "M"
+					},
+					{
+						"name": "永泰县",
+						"latter": "Y"
+					},
+					{
+						"name": "平潭县",
+						"latter": "P"
+					},
+					{
+						"name": "福清市",
+						"latter": "F"
+					},
+					{
+						"name": "长乐市",
+						"latter": "C"
+					}
+				],
+				"latter": "F"
+			},
+			{
+				"name": "厦门市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "思明区",
+						"latter": "S"
+					},
+					{
+						"name": "海沧区",
+						"latter": "H"
+					},
+					{
+						"name": "湖里区",
+						"latter": "H"
+					},
+					{
+						"name": "集美区",
+						"latter": "J"
+					},
+					{
+						"name": "同安区",
+						"latter": "T"
+					},
+					{
+						"name": "翔安区",
+						"latter": "X"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "莆田市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城厢区",
+						"latter": "C"
+					},
+					{
+						"name": "涵江区",
+						"latter": "H"
+					},
+					{
+						"name": "荔城区",
+						"latter": "L"
+					},
+					{
+						"name": "秀屿区",
+						"latter": "X"
+					},
+					{
+						"name": "仙游县",
+						"latter": "X"
+					}
+				],
+				"latter": "P"
+			},
+			{
+				"name": "三明市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "梅列区",
+						"latter": "M"
+					},
+					{
+						"name": "三元区",
+						"latter": "S"
+					},
+					{
+						"name": "明溪县",
+						"latter": "M"
+					},
+					{
+						"name": "清流县",
+						"latter": "Q"
+					},
+					{
+						"name": "宁化县",
+						"latter": "N"
+					},
+					{
+						"name": "大田县",
+						"latter": "D"
+					},
+					{
+						"name": "尤溪县",
+						"latter": "Y"
+					},
+					{
+						"name": "沙县",
+						"latter": "S"
+					},
+					{
+						"name": "将乐县",
+						"latter": "J"
+					},
+					{
+						"name": "泰宁县",
+						"latter": "T"
+					},
+					{
+						"name": "建宁县",
+						"latter": "J"
+					},
+					{
+						"name": "永安市",
+						"latter": "Y"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "泉州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "鲤城区",
+						"latter": "L"
+					},
+					{
+						"name": "丰泽区",
+						"latter": "F"
+					},
+					{
+						"name": "洛江区",
+						"latter": "L"
+					},
+					{
+						"name": "泉港区",
+						"latter": "Q"
+					},
+					{
+						"name": "惠安县",
+						"latter": "H"
+					},
+					{
+						"name": "安溪县",
+						"latter": "A"
+					},
+					{
+						"name": "永春县",
+						"latter": "Y"
+					},
+					{
+						"name": "德化县",
+						"latter": "D"
+					},
+					{
+						"name": "金门县",
+						"latter": "J"
+					},
+					{
+						"name": "石狮市",
+						"latter": "S"
+					},
+					{
+						"name": "晋江市",
+						"latter": "J"
+					},
+					{
+						"name": "南安市",
+						"latter": "N"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "漳州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "芗城区",
+						"latter": "X"
+					},
+					{
+						"name": "龙文区",
+						"latter": "L"
+					},
+					{
+						"name": "云霄县",
+						"latter": "Y"
+					},
+					{
+						"name": "漳浦县",
+						"latter": "Z"
+					},
+					{
+						"name": "诏安县",
+						"latter": "Z"
+					},
+					{
+						"name": "长泰县",
+						"latter": "C"
+					},
+					{
+						"name": "东山县",
+						"latter": "D"
+					},
+					{
+						"name": "南靖县",
+						"latter": "N"
+					},
+					{
+						"name": "平和县",
+						"latter": "P"
+					},
+					{
+						"name": "华安县",
+						"latter": "H"
+					},
+					{
+						"name": "龙海市",
+						"latter": "L"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "南平市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "延平区",
+						"latter": "Y"
+					},
+					{
+						"name": "顺昌县",
+						"latter": "S"
+					},
+					{
+						"name": "浦城县",
+						"latter": "P"
+					},
+					{
+						"name": "光泽县",
+						"latter": "G"
+					},
+					{
+						"name": "松溪县",
+						"latter": "S"
+					},
+					{
+						"name": "政和县",
+						"latter": "Z"
+					},
+					{
+						"name": "邵武市",
+						"latter": "S"
+					},
+					{
+						"name": "武夷山市",
+						"latter": "W"
+					},
+					{
+						"name": "建瓯市",
+						"latter": "J"
+					},
+					{
+						"name": "建阳市",
+						"latter": "J"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "龙岩市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "新罗区",
+						"latter": "X"
+					},
+					{
+						"name": "长汀县",
+						"latter": "C"
+					},
+					{
+						"name": "永定县",
+						"latter": "Y"
+					},
+					{
+						"name": "上杭县",
+						"latter": "S"
+					},
+					{
+						"name": "武平县",
+						"latter": "W"
+					},
+					{
+						"name": "连城县",
+						"latter": "L"
+					},
+					{
+						"name": "漳平市",
+						"latter": "Z"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "宁德市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "蕉城区",
+						"latter": "J"
+					},
+					{
+						"name": "霞浦县",
+						"latter": "X"
+					},
+					{
+						"name": "古田县",
+						"latter": "G"
+					},
+					{
+						"name": "屏南县",
+						"latter": "P"
+					},
+					{
+						"name": "寿宁县",
+						"latter": "S"
+					},
+					{
+						"name": "周宁县",
+						"latter": "Z"
+					},
+					{
+						"name": "柘荣县",
+						"latter": "Z"
+					},
+					{
+						"name": "福安市",
+						"latter": "F"
+					},
+					{
+						"name": "福鼎市",
+						"latter": "F"
+					}
+				],
+				"latter": "N"
+			}
+		],
+		"latter": "F"
+	},
+	{
+		"name": "江西省",
+		"children": [{
+				"name": "南昌市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东湖区",
+						"latter": "D"
+					},
+					{
+						"name": "西湖区",
+						"latter": "X"
+					},
+					{
+						"name": "青云谱区",
+						"latter": "Q"
+					},
+					{
+						"name": "湾里区",
+						"latter": "W"
+					},
+					{
+						"name": "青山湖区",
+						"latter": "Q"
+					},
+					{
+						"name": "南昌县",
+						"latter": "N"
+					},
+					{
+						"name": "新建县",
+						"latter": "X"
+					},
+					{
+						"name": "安义县",
+						"latter": "A"
+					},
+					{
+						"name": "进贤县",
+						"latter": "J"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "景德镇市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "昌江区",
+						"latter": "C"
+					},
+					{
+						"name": "珠山区",
+						"latter": "Z"
+					},
+					{
+						"name": "浮梁县",
+						"latter": "F"
+					},
+					{
+						"name": "乐平市",
+						"latter": "L"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "萍乡市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "安源区",
+						"latter": "A"
+					},
+					{
+						"name": "湘东区",
+						"latter": "X"
+					},
+					{
+						"name": "莲花县",
+						"latter": "L"
+					},
+					{
+						"name": "上栗县",
+						"latter": "S"
+					},
+					{
+						"name": "芦溪县",
+						"latter": "L"
+					}
+				],
+				"latter": "P"
+			},
+			{
+				"name": "九江市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "庐山区",
+						"latter": "L"
+					},
+					{
+						"name": "浔阳区",
+						"latter": "X"
+					},
+					{
+						"name": "九江县",
+						"latter": "J"
+					},
+					{
+						"name": "武宁县",
+						"latter": "W"
+					},
+					{
+						"name": "修水县",
+						"latter": "X"
+					},
+					{
+						"name": "永修县",
+						"latter": "Y"
+					},
+					{
+						"name": "德安县",
+						"latter": "D"
+					},
+					{
+						"name": "星子县",
+						"latter": "X"
+					},
+					{
+						"name": "都昌县",
+						"latter": "D"
+					},
+					{
+						"name": "湖口县",
+						"latter": "H"
+					},
+					{
+						"name": "彭泽县",
+						"latter": "P"
+					},
+					{
+						"name": "瑞昌市",
+						"latter": "R"
+					},
+					{
+						"name": "共青城市",
+						"latter": "G"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "新余市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "渝水区",
+						"latter": "Y"
+					},
+					{
+						"name": "分宜县",
+						"latter": "F"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "鹰潭市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "月湖区",
+						"latter": "Y"
+					},
+					{
+						"name": "余江县",
+						"latter": "Y"
+					},
+					{
+						"name": "贵溪市",
+						"latter": "G"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "赣州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "章贡区",
+						"latter": "Z"
+					},
+					{
+						"name": "赣县",
+						"latter": "G"
+					},
+					{
+						"name": "信丰县",
+						"latter": "X"
+					},
+					{
+						"name": "大余县",
+						"latter": "D"
+					},
+					{
+						"name": "上犹县",
+						"latter": "S"
+					},
+					{
+						"name": "崇义县",
+						"latter": "C"
+					},
+					{
+						"name": "安远县",
+						"latter": "A"
+					},
+					{
+						"name": "龙南县",
+						"latter": "L"
+					},
+					{
+						"name": "定南县",
+						"latter": "D"
+					},
+					{
+						"name": "全南县",
+						"latter": "Q"
+					},
+					{
+						"name": "宁都县",
+						"latter": "N"
+					},
+					{
+						"name": "于都县",
+						"latter": "Y"
+					},
+					{
+						"name": "兴国县",
+						"latter": "X"
+					},
+					{
+						"name": "会昌县",
+						"latter": "H"
+					},
+					{
+						"name": "寻乌县",
+						"latter": "X"
+					},
+					{
+						"name": "石城县",
+						"latter": "S"
+					},
+					{
+						"name": "瑞金市",
+						"latter": "R"
+					},
+					{
+						"name": "南康市",
+						"latter": "N"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "吉安市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "吉州区",
+						"latter": "J"
+					},
+					{
+						"name": "青原区",
+						"latter": "Q"
+					},
+					{
+						"name": "吉安县",
+						"latter": "J"
+					},
+					{
+						"name": "吉水县",
+						"latter": "J"
+					},
+					{
+						"name": "峡江县",
+						"latter": "X"
+					},
+					{
+						"name": "新干县",
+						"latter": "X"
+					},
+					{
+						"name": "永丰县",
+						"latter": "Y"
+					},
+					{
+						"name": "泰和县",
+						"latter": "T"
+					},
+					{
+						"name": "遂川县",
+						"latter": "S"
+					},
+					{
+						"name": "万安县",
+						"latter": "W"
+					},
+					{
+						"name": "安福县",
+						"latter": "A"
+					},
+					{
+						"name": "永新县",
+						"latter": "Y"
+					},
+					{
+						"name": "井冈山市",
+						"latter": "J"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "宜春市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "袁州区",
+						"latter": "Y"
+					},
+					{
+						"name": "奉新县",
+						"latter": "F"
+					},
+					{
+						"name": "万载县",
+						"latter": "W"
+					},
+					{
+						"name": "上高县",
+						"latter": "S"
+					},
+					{
+						"name": "宜丰县",
+						"latter": "Y"
+					},
+					{
+						"name": "靖安县",
+						"latter": "J"
+					},
+					{
+						"name": "铜鼓县",
+						"latter": "T"
+					},
+					{
+						"name": "丰城市",
+						"latter": "F"
+					},
+					{
+						"name": "樟树市",
+						"latter": "Z"
+					},
+					{
+						"name": "高安市",
+						"latter": "G"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "抚州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "临川区",
+						"latter": "L"
+					},
+					{
+						"name": "南城县",
+						"latter": "N"
+					},
+					{
+						"name": "黎川县",
+						"latter": "L"
+					},
+					{
+						"name": "南丰县",
+						"latter": "N"
+					},
+					{
+						"name": "崇仁县",
+						"latter": "C"
+					},
+					{
+						"name": "乐安县",
+						"latter": "L"
+					},
+					{
+						"name": "宜黄县",
+						"latter": "Y"
+					},
+					{
+						"name": "金溪县",
+						"latter": "J"
+					},
+					{
+						"name": "资溪县",
+						"latter": "Z"
+					},
+					{
+						"name": "东乡县",
+						"latter": "D"
+					},
+					{
+						"name": "广昌县",
+						"latter": "G"
+					}
+				],
+				"latter": "F"
+			},
+			{
+				"name": "上饶市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "信州区",
+						"latter": "X"
+					},
+					{
+						"name": "上饶县",
+						"latter": "S"
+					},
+					{
+						"name": "广丰县",
+						"latter": "G"
+					},
+					{
+						"name": "玉山县",
+						"latter": "Y"
+					},
+					{
+						"name": "铅山县",
+						"latter": "Q"
+					},
+					{
+						"name": "横峰县",
+						"latter": "H"
+					},
+					{
+						"name": "弋阳县",
+						"latter": "Y"
+					},
+					{
+						"name": "余干县",
+						"latter": "Y"
+					},
+					{
+						"name": "鄱阳县",
+						"latter": "P"
+					},
+					{
+						"name": "万年县",
+						"latter": "W"
+					},
+					{
+						"name": "婺源县",
+						"latter": "W"
+					},
+					{
+						"name": "德兴市",
+						"latter": "D"
+					}
+				],
+				"latter": "S"
+			}
+		],
+		"latter": "J"
+	},
+	{
+		"name": "山东省",
+		"children": [{
+				"name": "济南市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "历下区",
+						"latter": "L"
+					},
+					{
+						"name": "市中区",
+						"latter": "S"
+					},
+					{
+						"name": "槐荫区",
+						"latter": "H"
+					},
+					{
+						"name": "天桥区",
+						"latter": "T"
+					},
+					{
+						"name": "历城区",
+						"latter": "L"
+					},
+					{
+						"name": "长清区",
+						"latter": "C"
+					},
+					{
+						"name": "平阴县",
+						"latter": "P"
+					},
+					{
+						"name": "济阳县",
+						"latter": "J"
+					},
+					{
+						"name": "商河县",
+						"latter": "S"
+					},
+					{
+						"name": "章丘市",
+						"latter": "Z"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "青岛市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "市南区",
+						"latter": "S"
+					},
+					{
+						"name": "市北区",
+						"latter": "S"
+					},
+					{
+						"name": "黄岛区",
+						"latter": "H"
+					},
+					{
+						"name": "崂山区",
+						"latter": "L"
+					},
+					{
+						"name": "李沧区",
+						"latter": "L"
+					},
+					{
+						"name": "城阳区",
+						"latter": "C"
+					},
+					{
+						"name": "胶州市",
+						"latter": "J"
+					},
+					{
+						"name": "即墨市",
+						"latter": "J"
+					},
+					{
+						"name": "平度市",
+						"latter": "P"
+					},
+					{
+						"name": "莱西市",
+						"latter": "L"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "淄博市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "淄川区",
+						"latter": "Z"
+					},
+					{
+						"name": "张店区",
+						"latter": "Z"
+					},
+					{
+						"name": "博山区",
+						"latter": "B"
+					},
+					{
+						"name": "临淄区",
+						"latter": "L"
+					},
+					{
+						"name": "周村区",
+						"latter": "Z"
+					},
+					{
+						"name": "桓台县",
+						"latter": "H"
+					},
+					{
+						"name": "高青县",
+						"latter": "G"
+					},
+					{
+						"name": "沂源县",
+						"latter": "Y"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "枣庄市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "市中区",
+						"latter": "S"
+					},
+					{
+						"name": "薛城区",
+						"latter": "X"
+					},
+					{
+						"name": "峄城区",
+						"latter": "Y"
+					},
+					{
+						"name": "台儿庄区",
+						"latter": "T"
+					},
+					{
+						"name": "山亭区",
+						"latter": "S"
+					},
+					{
+						"name": "滕州市",
+						"latter": "T"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "东营市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东营区",
+						"latter": "D"
+					},
+					{
+						"name": "河口区",
+						"latter": "H"
+					},
+					{
+						"name": "垦利县",
+						"latter": "K"
+					},
+					{
+						"name": "利津县",
+						"latter": "L"
+					},
+					{
+						"name": "广饶县",
+						"latter": "G"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "烟台市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "芝罘区",
+						"latter": "Z"
+					},
+					{
+						"name": "福山区",
+						"latter": "F"
+					},
+					{
+						"name": "牟平区",
+						"latter": "M"
+					},
+					{
+						"name": "莱山区",
+						"latter": "L"
+					},
+					{
+						"name": "长岛县",
+						"latter": "C"
+					},
+					{
+						"name": "龙口市",
+						"latter": "L"
+					},
+					{
+						"name": "莱阳市",
+						"latter": "L"
+					},
+					{
+						"name": "莱州市",
+						"latter": "L"
+					},
+					{
+						"name": "蓬莱市",
+						"latter": "P"
+					},
+					{
+						"name": "招远市",
+						"latter": "Z"
+					},
+					{
+						"name": "栖霞市",
+						"latter": "Q"
+					},
+					{
+						"name": "海阳市",
+						"latter": "H"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "潍坊市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "潍城区",
+						"latter": "W"
+					},
+					{
+						"name": "寒亭区",
+						"latter": "H"
+					},
+					{
+						"name": "坊子区",
+						"latter": "F"
+					},
+					{
+						"name": "奎文区",
+						"latter": "K"
+					},
+					{
+						"name": "临朐县",
+						"latter": "L"
+					},
+					{
+						"name": "昌乐县",
+						"latter": "C"
+					},
+					{
+						"name": "青州市",
+						"latter": "Q"
+					},
+					{
+						"name": "诸城市",
+						"latter": "Z"
+					},
+					{
+						"name": "寿光市",
+						"latter": "S"
+					},
+					{
+						"name": "安丘市",
+						"latter": "A"
+					},
+					{
+						"name": "高密市",
+						"latter": "G"
+					},
+					{
+						"name": "昌邑市",
+						"latter": "C"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "济宁市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "市中区",
+						"latter": "S"
+					},
+					{
+						"name": "任城区",
+						"latter": "R"
+					},
+					{
+						"name": "微山县",
+						"latter": "W"
+					},
+					{
+						"name": "鱼台县",
+						"latter": "Y"
+					},
+					{
+						"name": "金乡县",
+						"latter": "J"
+					},
+					{
+						"name": "嘉祥县",
+						"latter": "J"
+					},
+					{
+						"name": "汶上县",
+						"latter": "W"
+					},
+					{
+						"name": "泗水县",
+						"latter": "S"
+					},
+					{
+						"name": "梁山县",
+						"latter": "L"
+					},
+					{
+						"name": "曲阜市",
+						"latter": "Q"
+					},
+					{
+						"name": "兖州市",
+						"latter": "Y"
+					},
+					{
+						"name": "邹城市",
+						"latter": "Z"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "泰安市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "泰山区",
+						"latter": "T"
+					},
+					{
+						"name": "岱岳区",
+						"latter": "D"
+					},
+					{
+						"name": "宁阳县",
+						"latter": "N"
+					},
+					{
+						"name": "东平县",
+						"latter": "D"
+					},
+					{
+						"name": "新泰市",
+						"latter": "X"
+					},
+					{
+						"name": "肥城市",
+						"latter": "F"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "威海市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "环翠区",
+						"latter": "H"
+					},
+					{
+						"name": "文登市",
+						"latter": "W"
+					},
+					{
+						"name": "荣成市",
+						"latter": "R"
+					},
+					{
+						"name": "乳山市",
+						"latter": "R"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "日照市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东港区",
+						"latter": "D"
+					},
+					{
+						"name": "岚山区",
+						"latter": "L"
+					},
+					{
+						"name": "五莲县",
+						"latter": "W"
+					},
+					{
+						"name": "莒县",
+						"latter": "J"
+					}
+				],
+				"latter": "R"
+			},
+			{
+				"name": "莱芜市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "莱城区",
+						"latter": "L"
+					},
+					{
+						"name": "钢城区",
+						"latter": "G"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "临沂市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "兰山区",
+						"latter": "L"
+					},
+					{
+						"name": "罗庄区",
+						"latter": "L"
+					},
+					{
+						"name": "河东区",
+						"latter": "H"
+					},
+					{
+						"name": "沂南县",
+						"latter": "Y"
+					},
+					{
+						"name": "郯城县",
+						"latter": "T"
+					},
+					{
+						"name": "沂水县",
+						"latter": "Y"
+					},
+					{
+						"name": "苍山县",
+						"latter": "C"
+					},
+					{
+						"name": "费县",
+						"latter": "F"
+					},
+					{
+						"name": "平邑县",
+						"latter": "P"
+					},
+					{
+						"name": "莒南县",
+						"latter": "J"
+					},
+					{
+						"name": "蒙阴县",
+						"latter": "M"
+					},
+					{
+						"name": "临沭县",
+						"latter": "L"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "德州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "德城区",
+						"latter": "D"
+					},
+					{
+						"name": "陵县",
+						"latter": "L"
+					},
+					{
+						"name": "宁津县",
+						"latter": "N"
+					},
+					{
+						"name": "庆云县",
+						"latter": "Q"
+					},
+					{
+						"name": "临邑县",
+						"latter": "L"
+					},
+					{
+						"name": "齐河县",
+						"latter": "Q"
+					},
+					{
+						"name": "平原县",
+						"latter": "P"
+					},
+					{
+						"name": "夏津县",
+						"latter": "X"
+					},
+					{
+						"name": "武城县",
+						"latter": "W"
+					},
+					{
+						"name": "乐陵市",
+						"latter": "L"
+					},
+					{
+						"name": "禹城市",
+						"latter": "Y"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "聊城市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东昌府区",
+						"latter": "D"
+					},
+					{
+						"name": "阳谷县",
+						"latter": "Y"
+					},
+					{
+						"name": "莘县",
+						"latter": "S"
+					},
+					{
+						"name": "茌平县",
+						"latter": "C"
+					},
+					{
+						"name": "东阿县",
+						"latter": "D"
+					},
+					{
+						"name": "冠县",
+						"latter": "G"
+					},
+					{
+						"name": "高唐县",
+						"latter": "G"
+					},
+					{
+						"name": "临清市",
+						"latter": "L"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "滨州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "滨城区",
+						"latter": "B"
+					},
+					{
+						"name": "惠民县",
+						"latter": "H"
+					},
+					{
+						"name": "阳信县",
+						"latter": "Y"
+					},
+					{
+						"name": "无棣县",
+						"latter": "W"
+					},
+					{
+						"name": "沾化县",
+						"latter": "Z"
+					},
+					{
+						"name": "博兴县",
+						"latter": "B"
+					},
+					{
+						"name": "邹平县",
+						"latter": "Z"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "菏泽市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "牡丹区",
+						"latter": "M"
+					},
+					{
+						"name": "曹县",
+						"latter": "C"
+					},
+					{
+						"name": "单县",
+						"latter": "D"
+					},
+					{
+						"name": "成武县",
+						"latter": "C"
+					},
+					{
+						"name": "巨野县",
+						"latter": "J"
+					},
+					{
+						"name": "郓城县",
+						"latter": "Y"
+					},
+					{
+						"name": "鄄城县",
+						"latter": "J"
+					},
+					{
+						"name": "定陶县",
+						"latter": "D"
+					},
+					{
+						"name": "东明县",
+						"latter": "D"
+					}
+				],
+				"latter": "H"
+			}
+		],
+		"latter": "S"
+	},
+	{
+		"name": "河南省",
+		"children": [{
+				"name": "郑州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "中原区",
+						"latter": "Z"
+					},
+					{
+						"name": "二七区",
+						"latter": "E"
+					},
+					{
+						"name": "管城回族区",
+						"latter": "G"
+					},
+					{
+						"name": "金水区",
+						"latter": "J"
+					},
+					{
+						"name": "上街区",
+						"latter": "S"
+					},
+					{
+						"name": "惠济区",
+						"latter": "H"
+					},
+					{
+						"name": "中牟县",
+						"latter": "Z"
+					},
+					{
+						"name": "巩义市",
+						"latter": "G"
+					},
+					{
+						"name": "荥阳市",
+						"latter": "X"
+					},
+					{
+						"name": "新密市",
+						"latter": "X"
+					},
+					{
+						"name": "新郑市",
+						"latter": "X"
+					},
+					{
+						"name": "登封市",
+						"latter": "D"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "开封市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "龙亭区",
+						"latter": "L"
+					},
+					{
+						"name": "顺河回族区",
+						"latter": "S"
+					},
+					{
+						"name": "鼓楼区",
+						"latter": "G"
+					},
+					{
+						"name": "禹王台区",
+						"latter": "Y"
+					},
+					{
+						"name": "金明区",
+						"latter": "J"
+					},
+					{
+						"name": "杞县",
+						"latter": "Q"
+					},
+					{
+						"name": "通许县",
+						"latter": "T"
+					},
+					{
+						"name": "尉氏县",
+						"latter": "W"
+					},
+					{
+						"name": "开封县",
+						"latter": "K"
+					},
+					{
+						"name": "兰考县",
+						"latter": "L"
+					}
+				],
+				"latter": "K"
+			},
+			{
+				"name": "洛阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "老城区",
+						"latter": "L"
+					},
+					{
+						"name": "西工区",
+						"latter": "X"
+					},
+					{
+						"name": "瀍河回族区",
+						"latter": "C"
+					},
+					{
+						"name": "涧西区",
+						"latter": "J"
+					},
+					{
+						"name": "吉利区",
+						"latter": "J"
+					},
+					{
+						"name": "洛龙区",
+						"latter": "L"
+					},
+					{
+						"name": "孟津县",
+						"latter": "M"
+					},
+					{
+						"name": "新安县",
+						"latter": "X"
+					},
+					{
+						"name": "栾川县",
+						"latter": "L"
+					},
+					{
+						"name": "嵩县",
+						"latter": "S"
+					},
+					{
+						"name": "汝阳县",
+						"latter": "R"
+					},
+					{
+						"name": "宜阳县",
+						"latter": "Y"
+					},
+					{
+						"name": "洛宁县",
+						"latter": "L"
+					},
+					{
+						"name": "伊川县",
+						"latter": "Y"
+					},
+					{
+						"name": "偃师市",
+						"latter": "Y"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "平顶山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "新华区",
+						"latter": "X"
+					},
+					{
+						"name": "卫东区",
+						"latter": "W"
+					},
+					{
+						"name": "石龙区",
+						"latter": "S"
+					},
+					{
+						"name": "湛河区",
+						"latter": "Z"
+					},
+					{
+						"name": "宝丰县",
+						"latter": "B"
+					},
+					{
+						"name": "叶县",
+						"latter": "Y"
+					},
+					{
+						"name": "鲁山县",
+						"latter": "L"
+					},
+					{
+						"name": "郏县",
+						"latter": "J"
+					},
+					{
+						"name": "舞钢市",
+						"latter": "W"
+					},
+					{
+						"name": "汝州市",
+						"latter": "R"
+					}
+				],
+				"latter": "P"
+			},
+			{
+				"name": "安阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "文峰区",
+						"latter": "W"
+					},
+					{
+						"name": "北关区",
+						"latter": "B"
+					},
+					{
+						"name": "殷都区",
+						"latter": "Y"
+					},
+					{
+						"name": "龙安区",
+						"latter": "L"
+					},
+					{
+						"name": "安阳县",
+						"latter": "A"
+					},
+					{
+						"name": "汤阴县",
+						"latter": "T"
+					},
+					{
+						"name": "滑县",
+						"latter": "H"
+					},
+					{
+						"name": "内黄县",
+						"latter": "N"
+					},
+					{
+						"name": "林州市",
+						"latter": "L"
+					}
+				],
+				"latter": "A"
+			},
+			{
+				"name": "鹤壁市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "鹤山区",
+						"latter": "H"
+					},
+					{
+						"name": "山城区",
+						"latter": "S"
+					},
+					{
+						"name": "淇滨区",
+						"latter": "Q"
+					},
+					{
+						"name": "浚县",
+						"latter": "J"
+					},
+					{
+						"name": "淇县",
+						"latter": "Q"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "新乡市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "红旗区",
+						"latter": "H"
+					},
+					{
+						"name": "卫滨区",
+						"latter": "W"
+					},
+					{
+						"name": "凤泉区",
+						"latter": "F"
+					},
+					{
+						"name": "牧野区",
+						"latter": "M"
+					},
+					{
+						"name": "新乡县",
+						"latter": "X"
+					},
+					{
+						"name": "获嘉县",
+						"latter": "H"
+					},
+					{
+						"name": "原阳县",
+						"latter": "Y"
+					},
+					{
+						"name": "延津县",
+						"latter": "Y"
+					},
+					{
+						"name": "封丘县",
+						"latter": "F"
+					},
+					{
+						"name": "长垣县",
+						"latter": "C"
+					},
+					{
+						"name": "卫辉市",
+						"latter": "W"
+					},
+					{
+						"name": "辉县市",
+						"latter": "H"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "焦作市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "解放区",
+						"latter": "J"
+					},
+					{
+						"name": "中站区",
+						"latter": "Z"
+					},
+					{
+						"name": "马村区",
+						"latter": "M"
+					},
+					{
+						"name": "山阳区",
+						"latter": "S"
+					},
+					{
+						"name": "修武县",
+						"latter": "X"
+					},
+					{
+						"name": "博爱县",
+						"latter": "B"
+					},
+					{
+						"name": "武陟县",
+						"latter": "W"
+					},
+					{
+						"name": "温县",
+						"latter": "W"
+					},
+					{
+						"name": "沁阳市",
+						"latter": "Q"
+					},
+					{
+						"name": "孟州市",
+						"latter": "M"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "濮阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "华龙区",
+						"latter": "H"
+					},
+					{
+						"name": "清丰县",
+						"latter": "Q"
+					},
+					{
+						"name": "南乐县",
+						"latter": "N"
+					},
+					{
+						"name": "范县",
+						"latter": "F"
+					},
+					{
+						"name": "台前县",
+						"latter": "T"
+					},
+					{
+						"name": "濮阳县",
+						"latter": "P"
+					}
+				],
+				"latter": "P"
+			},
+			{
+				"name": "许昌市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "魏都区",
+						"latter": "W"
+					},
+					{
+						"name": "许昌县",
+						"latter": "X"
+					},
+					{
+						"name": "鄢陵县",
+						"latter": "Y"
+					},
+					{
+						"name": "襄城县",
+						"latter": "X"
+					},
+					{
+						"name": "禹州市",
+						"latter": "Y"
+					},
+					{
+						"name": "长葛市",
+						"latter": "C"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "漯河市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "源汇区",
+						"latter": "Y"
+					},
+					{
+						"name": "郾城区",
+						"latter": "Y"
+					},
+					{
+						"name": "召陵区",
+						"latter": "Z"
+					},
+					{
+						"name": "舞阳县",
+						"latter": "W"
+					},
+					{
+						"name": "临颍县",
+						"latter": "L"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "三门峡市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "湖滨区",
+						"latter": "H"
+					},
+					{
+						"name": "渑池县",
+						"latter": "M"
+					},
+					{
+						"name": "陕县",
+						"latter": "S"
+					},
+					{
+						"name": "卢氏县",
+						"latter": "L"
+					},
+					{
+						"name": "义马市",
+						"latter": "Y"
+					},
+					{
+						"name": "灵宝市",
+						"latter": "L"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "南阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "宛城区",
+						"latter": "W"
+					},
+					{
+						"name": "卧龙区",
+						"latter": "W"
+					},
+					{
+						"name": "南召县",
+						"latter": "N"
+					},
+					{
+						"name": "方城县",
+						"latter": "F"
+					},
+					{
+						"name": "西峡县",
+						"latter": "X"
+					},
+					{
+						"name": "镇平县",
+						"latter": "Z"
+					},
+					{
+						"name": "内乡县",
+						"latter": "N"
+					},
+					{
+						"name": "淅川县",
+						"latter": "X"
+					},
+					{
+						"name": "社旗县",
+						"latter": "S"
+					},
+					{
+						"name": "唐河县",
+						"latter": "T"
+					},
+					{
+						"name": "新野县",
+						"latter": "X"
+					},
+					{
+						"name": "桐柏县",
+						"latter": "T"
+					},
+					{
+						"name": "邓州市",
+						"latter": "D"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "商丘市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "梁园区",
+						"latter": "L"
+					},
+					{
+						"name": "睢阳区",
+						"latter": "H"
+					},
+					{
+						"name": "民权县",
+						"latter": "M"
+					},
+					{
+						"name": "睢县",
+						"latter": "H"
+					},
+					{
+						"name": "宁陵县",
+						"latter": "N"
+					},
+					{
+						"name": "柘城县",
+						"latter": "Z"
+					},
+					{
+						"name": "虞城县",
+						"latter": "Y"
+					},
+					{
+						"name": "夏邑县",
+						"latter": "X"
+					},
+					{
+						"name": "永城市",
+						"latter": "Y"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "信阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "浉河区",
+						"latter": "S"
+					},
+					{
+						"name": "平桥区",
+						"latter": "P"
+					},
+					{
+						"name": "罗山县",
+						"latter": "L"
+					},
+					{
+						"name": "光山县",
+						"latter": "G"
+					},
+					{
+						"name": "新县",
+						"latter": "X"
+					},
+					{
+						"name": "商城县",
+						"latter": "S"
+					},
+					{
+						"name": "固始县",
+						"latter": "G"
+					},
+					{
+						"name": "潢川县",
+						"latter": "H"
+					},
+					{
+						"name": "淮滨县",
+						"latter": "H"
+					},
+					{
+						"name": "息县",
+						"latter": "X"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "周口市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "川汇区",
+						"latter": "C"
+					},
+					{
+						"name": "扶沟县",
+						"latter": "F"
+					},
+					{
+						"name": "西华县",
+						"latter": "X"
+					},
+					{
+						"name": "商水县",
+						"latter": "S"
+					},
+					{
+						"name": "沈丘县",
+						"latter": "S"
+					},
+					{
+						"name": "郸城县",
+						"latter": "D"
+					},
+					{
+						"name": "淮阳县",
+						"latter": "H"
+					},
+					{
+						"name": "太康县",
+						"latter": "T"
+					},
+					{
+						"name": "鹿邑县",
+						"latter": "L"
+					},
+					{
+						"name": "项城市",
+						"latter": "X"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "驻马店市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "驿城区",
+						"latter": "Y"
+					},
+					{
+						"name": "西平县",
+						"latter": "X"
+					},
+					{
+						"name": "上蔡县",
+						"latter": "S"
+					},
+					{
+						"name": "平舆县",
+						"latter": "P"
+					},
+					{
+						"name": "正阳县",
+						"latter": "Z"
+					},
+					{
+						"name": "确山县",
+						"latter": "Q"
+					},
+					{
+						"name": "泌阳县",
+						"latter": "M"
+					},
+					{
+						"name": "汝南县",
+						"latter": "R"
+					},
+					{
+						"name": "遂平县",
+						"latter": "S"
+					},
+					{
+						"name": "新蔡县",
+						"latter": "X"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "省直辖县级行政区划",
+				"children": [{
+					"name": "济源市",
+					"latter": "J"
+				}],
+				"latter": "S"
+			}
+		],
+		"latter": "H"
+	},
+	{
+		"name": "湖北省",
+		"children": [{
+				"name": "武汉市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "江岸区",
+						"latter": "J"
+					},
+					{
+						"name": "江汉区",
+						"latter": "J"
+					},
+					{
+						"name": "硚口区",
+						"latter": "Q"
+					},
+					{
+						"name": "汉阳区",
+						"latter": "H"
+					},
+					{
+						"name": "武昌区",
+						"latter": "W"
+					},
+					{
+						"name": "青山区",
+						"latter": "Q"
+					},
+					{
+						"name": "洪山区",
+						"latter": "H"
+					},
+					{
+						"name": "东西湖区",
+						"latter": "D"
+					},
+					{
+						"name": "汉南区",
+						"latter": "H"
+					},
+					{
+						"name": "蔡甸区",
+						"latter": "C"
+					},
+					{
+						"name": "江夏区",
+						"latter": "J"
+					},
+					{
+						"name": "黄陂区",
+						"latter": "H"
+					},
+					{
+						"name": "新洲区",
+						"latter": "X"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "黄石市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "黄石港区",
+						"latter": "H"
+					},
+					{
+						"name": "西塞山区",
+						"latter": "X"
+					},
+					{
+						"name": "下陆区",
+						"latter": "X"
+					},
+					{
+						"name": "铁山区",
+						"latter": "T"
+					},
+					{
+						"name": "阳新县",
+						"latter": "Y"
+					},
+					{
+						"name": "大冶市",
+						"latter": "D"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "十堰市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "茅箭区",
+						"latter": "M"
+					},
+					{
+						"name": "张湾区",
+						"latter": "Z"
+					},
+					{
+						"name": "郧县",
+						"latter": "Y"
+					},
+					{
+						"name": "郧西县",
+						"latter": "Y"
+					},
+					{
+						"name": "竹山县",
+						"latter": "Z"
+					},
+					{
+						"name": "竹溪县",
+						"latter": "Z"
+					},
+					{
+						"name": "房县",
+						"latter": "F"
+					},
+					{
+						"name": "丹江口市",
+						"latter": "D"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "宜昌市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "西陵区",
+						"latter": "X"
+					},
+					{
+						"name": "伍家岗区",
+						"latter": "W"
+					},
+					{
+						"name": "点军区",
+						"latter": "D"
+					},
+					{
+						"name": "猇亭区",
+						"latter": "X"
+					},
+					{
+						"name": "夷陵区",
+						"latter": "Y"
+					},
+					{
+						"name": "远安县",
+						"latter": "Y"
+					},
+					{
+						"name": "兴山县",
+						"latter": "X"
+					},
+					{
+						"name": "秭归县",
+						"latter": "Z"
+					},
+					{
+						"name": "长阳土家族自治县",
+						"latter": "C"
+					},
+					{
+						"name": "五峰土家族自治县",
+						"latter": "W"
+					},
+					{
+						"name": "宜都市",
+						"latter": "Y"
+					},
+					{
+						"name": "当阳市",
+						"latter": "D"
+					},
+					{
+						"name": "枝江市",
+						"latter": "Z"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "襄阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "襄城区",
+						"latter": "X"
+					},
+					{
+						"name": "樊城区",
+						"latter": "F"
+					},
+					{
+						"name": "襄州区",
+						"latter": "X"
+					},
+					{
+						"name": "南漳县",
+						"latter": "N"
+					},
+					{
+						"name": "谷城县",
+						"latter": "G"
+					},
+					{
+						"name": "保康县",
+						"latter": "B"
+					},
+					{
+						"name": "老河口市",
+						"latter": "L"
+					},
+					{
+						"name": "枣阳市",
+						"latter": "Z"
+					},
+					{
+						"name": "宜城市",
+						"latter": "Y"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "鄂州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "梁子湖区",
+						"latter": "L"
+					},
+					{
+						"name": "华容区",
+						"latter": "H"
+					},
+					{
+						"name": "鄂城区",
+						"latter": "E"
+					}
+				],
+				"latter": "E"
+			},
+			{
+				"name": "荆门市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东宝区",
+						"latter": "D"
+					},
+					{
+						"name": "掇刀区",
+						"latter": "D"
+					},
+					{
+						"name": "京山县",
+						"latter": "J"
+					},
+					{
+						"name": "沙洋县",
+						"latter": "S"
+					},
+					{
+						"name": "钟祥市",
+						"latter": "Z"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "孝感市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "孝南区",
+						"latter": "X"
+					},
+					{
+						"name": "孝昌县",
+						"latter": "X"
+					},
+					{
+						"name": "大悟县",
+						"latter": "D"
+					},
+					{
+						"name": "云梦县",
+						"latter": "Y"
+					},
+					{
+						"name": "应城市",
+						"latter": "Y"
+					},
+					{
+						"name": "安陆市",
+						"latter": "A"
+					},
+					{
+						"name": "汉川市",
+						"latter": "H"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "荆州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "沙市区",
+						"latter": "S"
+					},
+					{
+						"name": "荆州区",
+						"latter": "J"
+					},
+					{
+						"name": "公安县",
+						"latter": "G"
+					},
+					{
+						"name": "监利县",
+						"latter": "J"
+					},
+					{
+						"name": "江陵县",
+						"latter": "J"
+					},
+					{
+						"name": "石首市",
+						"latter": "S"
+					},
+					{
+						"name": "洪湖市",
+						"latter": "H"
+					},
+					{
+						"name": "松滋市",
+						"latter": "S"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "黄冈市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "黄州区",
+						"latter": "H"
+					},
+					{
+						"name": "团风县",
+						"latter": "T"
+					},
+					{
+						"name": "红安县",
+						"latter": "H"
+					},
+					{
+						"name": "罗田县",
+						"latter": "L"
+					},
+					{
+						"name": "英山县",
+						"latter": "Y"
+					},
+					{
+						"name": "浠水县",
+						"latter": "X"
+					},
+					{
+						"name": "蕲春县",
+						"latter": "Q"
+					},
+					{
+						"name": "黄梅县",
+						"latter": "H"
+					},
+					{
+						"name": "麻城市",
+						"latter": "M"
+					},
+					{
+						"name": "武穴市",
+						"latter": "W"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "咸宁市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "咸安区",
+						"latter": "X"
+					},
+					{
+						"name": "嘉鱼县",
+						"latter": "J"
+					},
+					{
+						"name": "通城县",
+						"latter": "T"
+					},
+					{
+						"name": "崇阳县",
+						"latter": "C"
+					},
+					{
+						"name": "通山县",
+						"latter": "T"
+					},
+					{
+						"name": "赤壁市",
+						"latter": "C"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "随州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "曾都区",
+						"latter": "Z"
+					},
+					{
+						"name": "随县",
+						"latter": "S"
+					},
+					{
+						"name": "广水市",
+						"latter": "G"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "恩施土家族苗族自治州",
+				"children": [{
+						"name": "恩施市",
+						"latter": "E"
+					},
+					{
+						"name": "利川市",
+						"latter": "L"
+					},
+					{
+						"name": "建始县",
+						"latter": "J"
+					},
+					{
+						"name": "巴东县",
+						"latter": "B"
+					},
+					{
+						"name": "宣恩县",
+						"latter": "X"
+					},
+					{
+						"name": "咸丰县",
+						"latter": "X"
+					},
+					{
+						"name": "来凤县",
+						"latter": "L"
+					},
+					{
+						"name": "鹤峰县",
+						"latter": "H"
+					}
+				],
+				"latter": "E"
+			},
+			{
+				"name": "省直辖县级行政区划",
+				"children": [{
+						"name": "仙桃市",
+						"latter": "X"
+					},
+					{
+						"name": "潜江市",
+						"latter": "Q"
+					},
+					{
+						"name": "天门市",
+						"latter": "T"
+					},
+					{
+						"name": "神农架林区",
+						"latter": "S"
+					}
+				],
+				"latter": "S"
+			}
+		],
+		"latter": "H"
+	},
+	{
+		"name": "湖南省",
+		"children": [{
+				"name": "长沙市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "芙蓉区",
+						"latter": "F"
+					},
+					{
+						"name": "天心区",
+						"latter": "T"
+					},
+					{
+						"name": "岳麓区",
+						"latter": "Y"
+					},
+					{
+						"name": "开福区",
+						"latter": "K"
+					},
+					{
+						"name": "雨花区",
+						"latter": "Y"
+					},
+					{
+						"name": "望城区",
+						"latter": "W"
+					},
+					{
+						"name": "长沙县",
+						"latter": "C"
+					},
+					{
+						"name": "宁乡县",
+						"latter": "N"
+					},
+					{
+						"name": "浏阳市",
+						"latter": "L"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "株洲市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "荷塘区",
+						"latter": "H"
+					},
+					{
+						"name": "芦淞区",
+						"latter": "L"
+					},
+					{
+						"name": "石峰区",
+						"latter": "S"
+					},
+					{
+						"name": "天元区",
+						"latter": "T"
+					},
+					{
+						"name": "株洲县",
+						"latter": "Z"
+					},
+					{
+						"name": "攸县",
+						"latter": "Y"
+					},
+					{
+						"name": "茶陵县",
+						"latter": "C"
+					},
+					{
+						"name": "炎陵县",
+						"latter": "Y"
+					},
+					{
+						"name": "醴陵市",
+						"latter": "L"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "湘潭市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "雨湖区",
+						"latter": "Y"
+					},
+					{
+						"name": "岳塘区",
+						"latter": "Y"
+					},
+					{
+						"name": "湘潭县",
+						"latter": "X"
+					},
+					{
+						"name": "湘乡市",
+						"latter": "X"
+					},
+					{
+						"name": "韶山市",
+						"latter": "S"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "衡阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "珠晖区",
+						"latter": "Z"
+					},
+					{
+						"name": "雁峰区",
+						"latter": "Y"
+					},
+					{
+						"name": "石鼓区",
+						"latter": "S"
+					},
+					{
+						"name": "蒸湘区",
+						"latter": "Z"
+					},
+					{
+						"name": "南岳区",
+						"latter": "N"
+					},
+					{
+						"name": "衡阳县",
+						"latter": "H"
+					},
+					{
+						"name": "衡南县",
+						"latter": "H"
+					},
+					{
+						"name": "衡山县",
+						"latter": "H"
+					},
+					{
+						"name": "衡东县",
+						"latter": "H"
+					},
+					{
+						"name": "祁东县",
+						"latter": "Q"
+					},
+					{
+						"name": "耒阳市",
+						"latter": "L"
+					},
+					{
+						"name": "常宁市",
+						"latter": "C"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "邵阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "双清区",
+						"latter": "S"
+					},
+					{
+						"name": "大祥区",
+						"latter": "D"
+					},
+					{
+						"name": "北塔区",
+						"latter": "B"
+					},
+					{
+						"name": "邵东县",
+						"latter": "S"
+					},
+					{
+						"name": "新邵县",
+						"latter": "X"
+					},
+					{
+						"name": "邵阳县",
+						"latter": "S"
+					},
+					{
+						"name": "隆回县",
+						"latter": "L"
+					},
+					{
+						"name": "洞口县",
+						"latter": "D"
+					},
+					{
+						"name": "绥宁县",
+						"latter": "S"
+					},
+					{
+						"name": "新宁县",
+						"latter": "X"
+					},
+					{
+						"name": "城步苗族自治县",
+						"latter": "C"
+					},
+					{
+						"name": "武冈市",
+						"latter": "W"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "岳阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "岳阳楼区",
+						"latter": "Y"
+					},
+					{
+						"name": "云溪区",
+						"latter": "Y"
+					},
+					{
+						"name": "君山区",
+						"latter": "J"
+					},
+					{
+						"name": "岳阳县",
+						"latter": "Y"
+					},
+					{
+						"name": "华容县",
+						"latter": "H"
+					},
+					{
+						"name": "湘阴县",
+						"latter": "X"
+					},
+					{
+						"name": "平江县",
+						"latter": "P"
+					},
+					{
+						"name": "汨罗市",
+						"latter": "M"
+					},
+					{
+						"name": "临湘市",
+						"latter": "L"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "常德市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "武陵区",
+						"latter": "W"
+					},
+					{
+						"name": "鼎城区",
+						"latter": "D"
+					},
+					{
+						"name": "安乡县",
+						"latter": "A"
+					},
+					{
+						"name": "汉寿县",
+						"latter": "H"
+					},
+					{
+						"name": "澧县",
+						"latter": "L"
+					},
+					{
+						"name": "临澧县",
+						"latter": "L"
+					},
+					{
+						"name": "桃源县",
+						"latter": "T"
+					},
+					{
+						"name": "石门县",
+						"latter": "S"
+					},
+					{
+						"name": "津市市",
+						"latter": "J"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "张家界市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "永定区",
+						"latter": "Y"
+					},
+					{
+						"name": "武陵源区",
+						"latter": "W"
+					},
+					{
+						"name": "慈利县",
+						"latter": "C"
+					},
+					{
+						"name": "桑植县",
+						"latter": "S"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "益阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "资阳区",
+						"latter": "Z"
+					},
+					{
+						"name": "赫山区",
+						"latter": "H"
+					},
+					{
+						"name": "南县",
+						"latter": "N"
+					},
+					{
+						"name": "桃江县",
+						"latter": "T"
+					},
+					{
+						"name": "安化县",
+						"latter": "A"
+					},
+					{
+						"name": "沅江市",
+						"latter": "Y"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "郴州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "北湖区",
+						"latter": "B"
+					},
+					{
+						"name": "苏仙区",
+						"latter": "S"
+					},
+					{
+						"name": "桂阳县",
+						"latter": "G"
+					},
+					{
+						"name": "宜章县",
+						"latter": "Y"
+					},
+					{
+						"name": "永兴县",
+						"latter": "Y"
+					},
+					{
+						"name": "嘉禾县",
+						"latter": "J"
+					},
+					{
+						"name": "临武县",
+						"latter": "L"
+					},
+					{
+						"name": "汝城县",
+						"latter": "R"
+					},
+					{
+						"name": "桂东县",
+						"latter": "G"
+					},
+					{
+						"name": "安仁县",
+						"latter": "A"
+					},
+					{
+						"name": "资兴市",
+						"latter": "Z"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "永州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "零陵区",
+						"latter": "L"
+					},
+					{
+						"name": "冷水滩区",
+						"latter": "L"
+					},
+					{
+						"name": "祁阳县",
+						"latter": "Q"
+					},
+					{
+						"name": "东安县",
+						"latter": "D"
+					},
+					{
+						"name": "双牌县",
+						"latter": "S"
+					},
+					{
+						"name": "道县",
+						"latter": "D"
+					},
+					{
+						"name": "江永县",
+						"latter": "J"
+					},
+					{
+						"name": "宁远县",
+						"latter": "N"
+					},
+					{
+						"name": "蓝山县",
+						"latter": "L"
+					},
+					{
+						"name": "新田县",
+						"latter": "X"
+					},
+					{
+						"name": "江华瑶族自治县",
+						"latter": "J"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "怀化市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "鹤城区",
+						"latter": "H"
+					},
+					{
+						"name": "中方县",
+						"latter": "Z"
+					},
+					{
+						"name": "沅陵县",
+						"latter": "Y"
+					},
+					{
+						"name": "辰溪县",
+						"latter": "C"
+					},
+					{
+						"name": "溆浦县",
+						"latter": "X"
+					},
+					{
+						"name": "会同县",
+						"latter": "H"
+					},
+					{
+						"name": "麻阳苗族自治县",
+						"latter": "M"
+					},
+					{
+						"name": "新晃侗族自治县",
+						"latter": "X"
+					},
+					{
+						"name": "芷江侗族自治县",
+						"latter": "Z"
+					},
+					{
+						"name": "靖州苗族侗族自治县",
+						"latter": "J"
+					},
+					{
+						"name": "通道侗族自治县",
+						"latter": "T"
+					},
+					{
+						"name": "洪江市",
+						"latter": "H"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "娄底市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "娄星区",
+						"latter": "L"
+					},
+					{
+						"name": "双峰县",
+						"latter": "S"
+					},
+					{
+						"name": "新化县",
+						"latter": "X"
+					},
+					{
+						"name": "冷水江市",
+						"latter": "L"
+					},
+					{
+						"name": "涟源市",
+						"latter": "L"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "湘西土家族苗族自治州",
+				"children": [{
+						"name": "吉首市",
+						"latter": "J"
+					},
+					{
+						"name": "泸溪县",
+						"latter": "L"
+					},
+					{
+						"name": "凤凰县",
+						"latter": "F"
+					},
+					{
+						"name": "花垣县",
+						"latter": "H"
+					},
+					{
+						"name": "保靖县",
+						"latter": "B"
+					},
+					{
+						"name": "古丈县",
+						"latter": "G"
+					},
+					{
+						"name": "永顺县",
+						"latter": "Y"
+					},
+					{
+						"name": "龙山县",
+						"latter": "L"
+					}
+				],
+				"latter": "X"
+			}
+		],
+		"latter": "H"
+	},
+	{
+		"name": "广东省",
+		"children": [{
+				"name": "广州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "荔湾区",
+						"latter": "L"
+					},
+					{
+						"name": "越秀区",
+						"latter": "Y"
+					},
+					{
+						"name": "海珠区",
+						"latter": "H"
+					},
+					{
+						"name": "天河区",
+						"latter": "T"
+					},
+					{
+						"name": "白云区",
+						"latter": "B"
+					},
+					{
+						"name": "黄埔区",
+						"latter": "H"
+					},
+					{
+						"name": "番禺区",
+						"latter": "F"
+					},
+					{
+						"name": "花都区",
+						"latter": "H"
+					},
+					{
+						"name": "南沙区",
+						"latter": "N"
+					},
+					{
+						"name": "萝岗区",
+						"latter": "L"
+					},
+					{
+						"name": "增城市",
+						"latter": "Z"
+					},
+					{
+						"name": "从化市",
+						"latter": "C"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "韶关市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "武江区",
+						"latter": "W"
+					},
+					{
+						"name": "浈江区",
+						"latter": "Z"
+					},
+					{
+						"name": "曲江区",
+						"latter": "Q"
+					},
+					{
+						"name": "始兴县",
+						"latter": "S"
+					},
+					{
+						"name": "仁化县",
+						"latter": "R"
+					},
+					{
+						"name": "翁源县",
+						"latter": "W"
+					},
+					{
+						"name": "乳源瑶族自治县",
+						"latter": "R"
+					},
+					{
+						"name": "新丰县",
+						"latter": "X"
+					},
+					{
+						"name": "乐昌市",
+						"latter": "L"
+					},
+					{
+						"name": "南雄市",
+						"latter": "N"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "深圳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "罗湖区",
+						"latter": "L"
+					},
+					{
+						"name": "福田区",
+						"latter": "F"
+					},
+					{
+						"name": "南山区",
+						"latter": "N"
+					},
+					{
+						"name": "宝安区",
+						"latter": "B"
+					},
+					{
+						"name": "龙岗区",
+						"latter": "L"
+					},
+					{
+						"name": "盐田区",
+						"latter": "Y"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "珠海市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "香洲区",
+						"latter": "X"
+					},
+					{
+						"name": "斗门区",
+						"latter": "D"
+					},
+					{
+						"name": "金湾区",
+						"latter": "J"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "汕头市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "龙湖区",
+						"latter": "L"
+					},
+					{
+						"name": "金平区",
+						"latter": "J"
+					},
+					{
+						"name": "濠江区",
+						"latter": "H"
+					},
+					{
+						"name": "潮阳区",
+						"latter": "C"
+					},
+					{
+						"name": "潮南区",
+						"latter": "C"
+					},
+					{
+						"name": "澄海区",
+						"latter": "C"
+					},
+					{
+						"name": "南澳县",
+						"latter": "N"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "佛山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "禅城区",
+						"latter": "C"
+					},
+					{
+						"name": "南海区",
+						"latter": "N"
+					},
+					{
+						"name": "顺德区",
+						"latter": "S"
+					},
+					{
+						"name": "三水区",
+						"latter": "S"
+					},
+					{
+						"name": "高明区",
+						"latter": "G"
+					}
+				],
+				"latter": "F"
+			},
+			{
+				"name": "江门市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "蓬江区",
+						"latter": "P"
+					},
+					{
+						"name": "江海区",
+						"latter": "J"
+					},
+					{
+						"name": "新会区",
+						"latter": "X"
+					},
+					{
+						"name": "台山市",
+						"latter": "T"
+					},
+					{
+						"name": "开平市",
+						"latter": "K"
+					},
+					{
+						"name": "鹤山市",
+						"latter": "H"
+					},
+					{
+						"name": "恩平市",
+						"latter": "E"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "湛江市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "赤坎区",
+						"latter": "C"
+					},
+					{
+						"name": "霞山区",
+						"latter": "X"
+					},
+					{
+						"name": "坡头区",
+						"latter": "P"
+					},
+					{
+						"name": "麻章区",
+						"latter": "M"
+					},
+					{
+						"name": "遂溪县",
+						"latter": "S"
+					},
+					{
+						"name": "徐闻县",
+						"latter": "X"
+					},
+					{
+						"name": "廉江市",
+						"latter": "L"
+					},
+					{
+						"name": "雷州市",
+						"latter": "L"
+					},
+					{
+						"name": "吴川市",
+						"latter": "W"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "茂名市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "茂南区",
+						"latter": "M"
+					},
+					{
+						"name": "茂港区",
+						"latter": "M"
+					},
+					{
+						"name": "电白县",
+						"latter": "D"
+					},
+					{
+						"name": "高州市",
+						"latter": "G"
+					},
+					{
+						"name": "化州市",
+						"latter": "H"
+					},
+					{
+						"name": "信宜市",
+						"latter": "X"
+					}
+				],
+				"latter": "M"
+			},
+			{
+				"name": "肇庆市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "端州区",
+						"latter": "D"
+					},
+					{
+						"name": "鼎湖区",
+						"latter": "D"
+					},
+					{
+						"name": "广宁县",
+						"latter": "G"
+					},
+					{
+						"name": "怀集县",
+						"latter": "H"
+					},
+					{
+						"name": "封开县",
+						"latter": "F"
+					},
+					{
+						"name": "德庆县",
+						"latter": "D"
+					},
+					{
+						"name": "高要市",
+						"latter": "G"
+					},
+					{
+						"name": "四会市",
+						"latter": "S"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "惠州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "惠城区",
+						"latter": "H"
+					},
+					{
+						"name": "惠阳区",
+						"latter": "H"
+					},
+					{
+						"name": "博罗县",
+						"latter": "B"
+					},
+					{
+						"name": "惠东县",
+						"latter": "H"
+					},
+					{
+						"name": "龙门县",
+						"latter": "L"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "梅州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "梅江区",
+						"latter": "M"
+					},
+					{
+						"name": "梅县",
+						"latter": "M"
+					},
+					{
+						"name": "大埔县",
+						"latter": "D"
+					},
+					{
+						"name": "丰顺县",
+						"latter": "F"
+					},
+					{
+						"name": "五华县",
+						"latter": "W"
+					},
+					{
+						"name": "平远县",
+						"latter": "P"
+					},
+					{
+						"name": "蕉岭县",
+						"latter": "J"
+					},
+					{
+						"name": "兴宁市",
+						"latter": "X"
+					}
+				],
+				"latter": "M"
+			},
+			{
+				"name": "汕尾市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城区",
+						"latter": "C"
+					},
+					{
+						"name": "海丰县",
+						"latter": "H"
+					},
+					{
+						"name": "陆河县",
+						"latter": "L"
+					},
+					{
+						"name": "陆丰市",
+						"latter": "L"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "河源市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "源城区",
+						"latter": "Y"
+					},
+					{
+						"name": "紫金县",
+						"latter": "Z"
+					},
+					{
+						"name": "龙川县",
+						"latter": "L"
+					},
+					{
+						"name": "连平县",
+						"latter": "L"
+					},
+					{
+						"name": "和平县",
+						"latter": "H"
+					},
+					{
+						"name": "东源县",
+						"latter": "D"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "阳江市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "江城区",
+						"latter": "J"
+					},
+					{
+						"name": "阳西县",
+						"latter": "Y"
+					},
+					{
+						"name": "阳东县",
+						"latter": "Y"
+					},
+					{
+						"name": "阳春市",
+						"latter": "Y"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "清远市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "清城区",
+						"latter": "Q"
+					},
+					{
+						"name": "清新区",
+						"latter": "Q"
+					},
+					{
+						"name": "佛冈县",
+						"latter": "F"
+					},
+					{
+						"name": "阳山县",
+						"latter": "Y"
+					},
+					{
+						"name": "连山壮族瑶族自治县",
+						"latter": "L"
+					},
+					{
+						"name": "连南瑶族自治县",
+						"latter": "L"
+					},
+					{
+						"name": "英德市",
+						"latter": "Y"
+					},
+					{
+						"name": "连州市",
+						"latter": "L"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "东莞市",
+				"latter": "D"
+			},
+			{
+				"name": "中山市",
+				"latter": "Z"
+			},
+			{
+				"name": "潮州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "湘桥区",
+						"latter": "X"
+					},
+					{
+						"name": "潮安区",
+						"latter": "C"
+					},
+					{
+						"name": "饶平县",
+						"latter": "R"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "揭阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "榕城区",
+						"latter": "R"
+					},
+					{
+						"name": "揭东区",
+						"latter": "J"
+					},
+					{
+						"name": "揭西县",
+						"latter": "J"
+					},
+					{
+						"name": "惠来县",
+						"latter": "H"
+					},
+					{
+						"name": "普宁市",
+						"latter": "P"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "云浮市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "云城区",
+						"latter": "Y"
+					},
+					{
+						"name": "新兴县",
+						"latter": "X"
+					},
+					{
+						"name": "郁南县",
+						"latter": "Y"
+					},
+					{
+						"name": "云安县",
+						"latter": "Y"
+					},
+					{
+						"name": "罗定市",
+						"latter": "L"
+					}
+				],
+				"latter": "Y"
+			}
+		],
+		"latter": "G"
+	},
+	{
+		"name": "广西壮族自治区",
+		"children": [{
+				"name": "南宁市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "兴宁区",
+						"latter": "X"
+					},
+					{
+						"name": "青秀区",
+						"latter": "Q"
+					},
+					{
+						"name": "江南区",
+						"latter": "J"
+					},
+					{
+						"name": "西乡塘区",
+						"latter": "X"
+					},
+					{
+						"name": "良庆区",
+						"latter": "L"
+					},
+					{
+						"name": "邕宁区",
+						"latter": "Y"
+					},
+					{
+						"name": "武鸣县",
+						"latter": "W"
+					},
+					{
+						"name": "隆安县",
+						"latter": "L"
+					},
+					{
+						"name": "马山县",
+						"latter": "M"
+					},
+					{
+						"name": "上林县",
+						"latter": "S"
+					},
+					{
+						"name": "宾阳县",
+						"latter": "B"
+					},
+					{
+						"name": "横县",
+						"latter": "H"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "柳州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城中区",
+						"latter": "C"
+					},
+					{
+						"name": "鱼峰区",
+						"latter": "Y"
+					},
+					{
+						"name": "柳南区",
+						"latter": "L"
+					},
+					{
+						"name": "柳北区",
+						"latter": "L"
+					},
+					{
+						"name": "柳江县",
+						"latter": "L"
+					},
+					{
+						"name": "柳城县",
+						"latter": "L"
+					},
+					{
+						"name": "鹿寨县",
+						"latter": "L"
+					},
+					{
+						"name": "融安县",
+						"latter": "R"
+					},
+					{
+						"name": "融水苗族自治县",
+						"latter": "R"
+					},
+					{
+						"name": "三江侗族自治县",
+						"latter": "S"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "桂林市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "秀峰区",
+						"latter": "X"
+					},
+					{
+						"name": "叠彩区",
+						"latter": "D"
+					},
+					{
+						"name": "象山区",
+						"latter": "X"
+					},
+					{
+						"name": "七星区",
+						"latter": "Q"
+					},
+					{
+						"name": "雁山区",
+						"latter": "Y"
+					},
+					{
+						"name": "临桂区",
+						"latter": "L"
+					},
+					{
+						"name": "阳朔县",
+						"latter": "Y"
+					},
+					{
+						"name": "灵川县",
+						"latter": "L"
+					},
+					{
+						"name": "全州县",
+						"latter": "Q"
+					},
+					{
+						"name": "兴安县",
+						"latter": "X"
+					},
+					{
+						"name": "永福县",
+						"latter": "Y"
+					},
+					{
+						"name": "灌阳县",
+						"latter": "G"
+					},
+					{
+						"name": "龙胜各族自治县",
+						"latter": "L"
+					},
+					{
+						"name": "资源县",
+						"latter": "Z"
+					},
+					{
+						"name": "平乐县",
+						"latter": "P"
+					},
+					{
+						"name": "荔浦县",
+						"latter": "L"
+					},
+					{
+						"name": "恭城瑶族自治县",
+						"latter": "G"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "梧州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "万秀区",
+						"latter": "W"
+					},
+					{
+						"name": "长洲区",
+						"latter": "C"
+					},
+					{
+						"name": "龙圩区",
+						"latter": "L"
+					},
+					{
+						"name": "苍梧县",
+						"latter": "C"
+					},
+					{
+						"name": "藤县",
+						"latter": "T"
+					},
+					{
+						"name": "蒙山县",
+						"latter": "M"
+					},
+					{
+						"name": "岑溪市",
+						"latter": "C"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "北海市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "海城区",
+						"latter": "H"
+					},
+					{
+						"name": "银海区",
+						"latter": "Y"
+					},
+					{
+						"name": "铁山港区",
+						"latter": "T"
+					},
+					{
+						"name": "合浦县",
+						"latter": "H"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "防城港市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "港口区",
+						"latter": "G"
+					},
+					{
+						"name": "防城区",
+						"latter": "F"
+					},
+					{
+						"name": "上思县",
+						"latter": "S"
+					},
+					{
+						"name": "东兴市",
+						"latter": "D"
+					}
+				],
+				"latter": "F"
+			},
+			{
+				"name": "钦州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "钦南区",
+						"latter": "Q"
+					},
+					{
+						"name": "钦北区",
+						"latter": "Q"
+					},
+					{
+						"name": "灵山县",
+						"latter": "L"
+					},
+					{
+						"name": "浦北县",
+						"latter": "P"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "贵港市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "港北区",
+						"latter": "G"
+					},
+					{
+						"name": "港南区",
+						"latter": "G"
+					},
+					{
+						"name": "覃塘区",
+						"latter": "T"
+					},
+					{
+						"name": "平南县",
+						"latter": "P"
+					},
+					{
+						"name": "桂平市",
+						"latter": "G"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "玉林市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "玉州区",
+						"latter": "Y"
+					},
+					{
+						"name": "福绵区",
+						"latter": "F"
+					},
+					{
+						"name": "容县",
+						"latter": "R"
+					},
+					{
+						"name": "陆川县",
+						"latter": "L"
+					},
+					{
+						"name": "博白县",
+						"latter": "B"
+					},
+					{
+						"name": "兴业县",
+						"latter": "X"
+					},
+					{
+						"name": "北流市",
+						"latter": "B"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "百色市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "右江区",
+						"latter": "Y"
+					},
+					{
+						"name": "田阳县",
+						"latter": "T"
+					},
+					{
+						"name": "田东县",
+						"latter": "T"
+					},
+					{
+						"name": "平果县",
+						"latter": "P"
+					},
+					{
+						"name": "德保县",
+						"latter": "D"
+					},
+					{
+						"name": "靖西县",
+						"latter": "J"
+					},
+					{
+						"name": "那坡县",
+						"latter": "N"
+					},
+					{
+						"name": "凌云县",
+						"latter": "L"
+					},
+					{
+						"name": "乐业县",
+						"latter": "L"
+					},
+					{
+						"name": "田林县",
+						"latter": "T"
+					},
+					{
+						"name": "西林县",
+						"latter": "X"
+					},
+					{
+						"name": "隆林各族自治县",
+						"latter": "L"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "贺州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "八步区",
+						"latter": "B"
+					},
+					{
+						"name": "昭平县",
+						"latter": "Z"
+					},
+					{
+						"name": "钟山县",
+						"latter": "Z"
+					},
+					{
+						"name": "富川瑶族自治县",
+						"latter": "F"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "河池市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "金城江区",
+						"latter": "J"
+					},
+					{
+						"name": "南丹县",
+						"latter": "N"
+					},
+					{
+						"name": "天峨县",
+						"latter": "T"
+					},
+					{
+						"name": "凤山县",
+						"latter": "F"
+					},
+					{
+						"name": "东兰县",
+						"latter": "D"
+					},
+					{
+						"name": "罗城仫佬族自治县",
+						"latter": "L"
+					},
+					{
+						"name": "环江毛南族自治县",
+						"latter": "H"
+					},
+					{
+						"name": "巴马瑶族自治县",
+						"latter": "B"
+					},
+					{
+						"name": "都安瑶族自治县",
+						"latter": "D"
+					},
+					{
+						"name": "大化瑶族自治县",
+						"latter": "D"
+					},
+					{
+						"name": "宜州市",
+						"latter": "Y"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "来宾市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "兴宾区",
+						"latter": "X"
+					},
+					{
+						"name": "忻城县",
+						"latter": "X"
+					},
+					{
+						"name": "象州县",
+						"latter": "X"
+					},
+					{
+						"name": "武宣县",
+						"latter": "W"
+					},
+					{
+						"name": "金秀瑶族自治县",
+						"latter": "J"
+					},
+					{
+						"name": "合山市",
+						"latter": "H"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "崇左市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "江州区",
+						"latter": "J"
+					},
+					{
+						"name": "扶绥县",
+						"latter": "F"
+					},
+					{
+						"name": "宁明县",
+						"latter": "N"
+					},
+					{
+						"name": "龙州县",
+						"latter": "L"
+					},
+					{
+						"name": "大新县",
+						"latter": "D"
+					},
+					{
+						"name": "天等县",
+						"latter": "T"
+					},
+					{
+						"name": "凭祥市",
+						"latter": "P"
+					}
+				],
+				"latter": "C"
+			}
+		],
+		"latter": "G"
+	},
+	{
+		"name": "海南省",
+		"children": [{
+				"name": "海口市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "秀英区",
+						"latter": "X"
+					},
+					{
+						"name": "龙华区",
+						"latter": "L"
+					},
+					{
+						"name": "琼山区",
+						"latter": "Q"
+					},
+					{
+						"name": "美兰区",
+						"latter": "M"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "三亚市",
+				"children": [{
+					"name": "市辖区",
+					"latter": "S"
+				}],
+				"latter": "S"
+			},
+			{
+				"name": "三沙市",
+				"children": [{
+						"name": "西沙群岛",
+						"latter": "X"
+					},
+					{
+						"name": "南沙群岛",
+						"latter": "N"
+					},
+					{
+						"name": "中沙群岛的岛礁及其海域",
+						"latter": "Z"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "省直辖县级行政区划",
+				"children": [{
+						"name": "五指山市",
+						"latter": "W"
+					},
+					{
+						"name": "琼海市",
+						"latter": "Q"
+					},
+					{
+						"name": "儋州市",
+						"latter": "D"
+					},
+					{
+						"name": "文昌市",
+						"latter": "W"
+					},
+					{
+						"name": "万宁市",
+						"latter": "W"
+					},
+					{
+						"name": "东方市",
+						"latter": "D"
+					},
+					{
+						"name": "定安县",
+						"latter": "D"
+					},
+					{
+						"name": "屯昌县",
+						"latter": "T"
+					},
+					{
+						"name": "澄迈县",
+						"latter": "C"
+					},
+					{
+						"name": "临高县",
+						"latter": "L"
+					},
+					{
+						"name": "白沙黎族自治县",
+						"latter": "B"
+					},
+					{
+						"name": "昌江黎族自治县",
+						"latter": "C"
+					},
+					{
+						"name": "乐东黎族自治县",
+						"latter": "L"
+					},
+					{
+						"name": "陵水黎族自治县",
+						"latter": "L"
+					},
+					{
+						"name": "保亭黎族苗族自治县",
+						"latter": "B"
+					},
+					{
+						"name": "琼中黎族苗族自治县",
+						"latter": "Q"
+					}
+				],
+				"latter": "S"
+			}
+		],
+		"latter": "H"
+	},
+	{
+		"name": "重庆市",
+		"latter": "C",
+		"children":[
+			{
+				"name": "重庆市",
+				"children": [{
+						"name": "万州区",
+						"latter": "W"
+					},
+					{
+						"name": "涪陵区",
+						"latter": "F"
+					},
+					{
+						"name": "渝中区",
+						"latter": "Y"
+					},
+					{
+						"name": "大渡口区",
+						"latter": "D"
+					},
+					{
+						"name": "江北区",
+						"latter": "J"
+					},
+					{
+						"name": "沙坪坝区",
+						"latter": "S"
+					},
+					{
+						"name": "九龙坡区",
+						"latter": "J"
+					},
+					{
+						"name": "南岸区",
+						"latter": "N"
+					},
+					{
+						"name": "北碚区",
+						"latter": "B"
+					},
+					{
+						"name": "綦江区",
+						"latter": "Q"
+					},
+					{
+						"name": "大足区",
+						"latter": "D"
+					},
+					{
+						"name": "渝北区",
+						"latter": "Y"
+					},
+					{
+						"name": "巴南区",
+						"latter": "B"
+					},
+					{
+						"name": "黔江区",
+						"latter": "Q"
+					},
+					{
+						"name": "长寿区",
+						"latter": "C"
+					},
+					{
+						"name": "江津区",
+						"latter": "J"
+					},
+					{
+						"name": "合川区",
+						"latter": "H"
+					},
+					{
+						"name": "永川区",
+						"latter": "Y"
+					},
+					{
+						"name": "南川区",
+						"latter": "N"
+					},
+					{
+						"name": "潼南县",
+						"latter": "T"
+					},
+					{
+						"name": "铜梁县",
+						"latter": "T"
+					},
+					{
+						"name": "荣昌县",
+						"latter": "R"
+					},
+					{
+						"name": "璧山县",
+						"latter": "B"
+					},
+					{
+						"name": "梁平县",
+						"latter": "L"
+					},
+					{
+						"name": "城口县",
+						"latter": "C"
+					},
+					{
+						"name": "丰都县",
+						"latter": "F"
+					},
+					{
+						"name": "垫江县",
+						"latter": "D"
+					},
+					{
+						"name": "武隆县",
+						"latter": "W"
+					},
+					{
+						"name": "忠县",
+						"latter": "Z"
+					},
+					{
+						"name": "开县",
+						"latter": "K"
+					},
+					{
+						"name": "云阳县",
+						"latter": "Y"
+					},
+					{
+						"name": "奉节县",
+						"latter": "F"
+					},
+					{
+						"name": "巫山县",
+						"latter": "W"
+					},
+					{
+						"name": "巫溪县",
+						"latter": "W"
+					},
+					{
+						"name": "石柱土家族自治县",
+						"latter": "S"
+					},
+					{
+						"name": "秀山土家族苗族自治县",
+						"latter": "X"
+					},
+					{
+						"name": "酉阳土家族苗族自治县",
+						"latter": "Y"
+					},
+					{
+						"name": "彭水苗族土家族自治县",
+						"latter": "P"
+					}
+				],
+				"latter": "Z"
+			}
+		]
+	},
+	{
+		"name": "四川省",
+		"children": [{
+				"name": "成都市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "锦江区",
+						"latter": "J"
+					},
+					{
+						"name": "青羊区",
+						"latter": "Q"
+					},
+					{
+						"name": "金牛区",
+						"latter": "J"
+					},
+					{
+						"name": "武侯区",
+						"latter": "W"
+					},
+					{
+						"name": "成华区",
+						"latter": "C"
+					},
+					{
+						"name": "龙泉驿区",
+						"latter": "L"
+					},
+					{
+						"name": "青白江区",
+						"latter": "Q"
+					},
+					{
+						"name": "新都区",
+						"latter": "X"
+					},
+					{
+						"name": "温江区",
+						"latter": "W"
+					},
+					{
+						"name": "金堂县",
+						"latter": "J"
+					},
+					{
+						"name": "双流县",
+						"latter": "S"
+					},
+					{
+						"name": "郫县",
+						"latter": "P"
+					},
+					{
+						"name": "大邑县",
+						"latter": "D"
+					},
+					{
+						"name": "蒲江县",
+						"latter": "P"
+					},
+					{
+						"name": "新津县",
+						"latter": "X"
+					},
+					{
+						"name": "都江堰市",
+						"latter": "D"
+					},
+					{
+						"name": "彭州市",
+						"latter": "P"
+					},
+					{
+						"name": "邛崃市",
+						"latter": "Q"
+					},
+					{
+						"name": "崇州市",
+						"latter": "C"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "自贡市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "自流井区",
+						"latter": "Z"
+					},
+					{
+						"name": "贡井区",
+						"latter": "G"
+					},
+					{
+						"name": "大安区",
+						"latter": "D"
+					},
+					{
+						"name": "沿滩区",
+						"latter": "Y"
+					},
+					{
+						"name": "荣县",
+						"latter": "R"
+					},
+					{
+						"name": "富顺县",
+						"latter": "F"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "攀枝花市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东区",
+						"latter": "D"
+					},
+					{
+						"name": "西区",
+						"latter": "X"
+					},
+					{
+						"name": "仁和区",
+						"latter": "R"
+					},
+					{
+						"name": "米易县",
+						"latter": "M"
+					},
+					{
+						"name": "盐边县",
+						"latter": "Y"
+					}
+				],
+				"latter": "P"
+			},
+			{
+				"name": "泸州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "江阳区",
+						"latter": "J"
+					},
+					{
+						"name": "纳溪区",
+						"latter": "N"
+					},
+					{
+						"name": "龙马潭区",
+						"latter": "L"
+					},
+					{
+						"name": "泸县",
+						"latter": "L"
+					},
+					{
+						"name": "合江县",
+						"latter": "H"
+					},
+					{
+						"name": "叙永县",
+						"latter": "X"
+					},
+					{
+						"name": "古蔺县",
+						"latter": "G"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "德阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "旌阳区",
+						"latter": "J"
+					},
+					{
+						"name": "中江县",
+						"latter": "Z"
+					},
+					{
+						"name": "罗江县",
+						"latter": "L"
+					},
+					{
+						"name": "广汉市",
+						"latter": "G"
+					},
+					{
+						"name": "什邡市",
+						"latter": "S"
+					},
+					{
+						"name": "绵竹市",
+						"latter": "M"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "绵阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "涪城区",
+						"latter": "F"
+					},
+					{
+						"name": "游仙区",
+						"latter": "Y"
+					},
+					{
+						"name": "三台县",
+						"latter": "S"
+					},
+					{
+						"name": "盐亭县",
+						"latter": "Y"
+					},
+					{
+						"name": "安县",
+						"latter": "A"
+					},
+					{
+						"name": "梓潼县",
+						"latter": "Z"
+					},
+					{
+						"name": "北川羌族自治县",
+						"latter": "B"
+					},
+					{
+						"name": "平武县",
+						"latter": "P"
+					},
+					{
+						"name": "江油市",
+						"latter": "J"
+					}
+				],
+				"latter": "M"
+			},
+			{
+				"name": "广元市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "利州区",
+						"latter": "L"
+					},
+					{
+						"name": "元坝区",
+						"latter": "Y"
+					},
+					{
+						"name": "朝天区",
+						"latter": "Z"
+					},
+					{
+						"name": "旺苍县",
+						"latter": "W"
+					},
+					{
+						"name": "青川县",
+						"latter": "Q"
+					},
+					{
+						"name": "剑阁县",
+						"latter": "J"
+					},
+					{
+						"name": "苍溪县",
+						"latter": "C"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "遂宁市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "船山区",
+						"latter": "C"
+					},
+					{
+						"name": "安居区",
+						"latter": "A"
+					},
+					{
+						"name": "蓬溪县",
+						"latter": "P"
+					},
+					{
+						"name": "射洪县",
+						"latter": "S"
+					},
+					{
+						"name": "大英县",
+						"latter": "D"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "内江市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "市中区",
+						"latter": "S"
+					},
+					{
+						"name": "东兴区",
+						"latter": "D"
+					},
+					{
+						"name": "威远县",
+						"latter": "W"
+					},
+					{
+						"name": "资中县",
+						"latter": "Z"
+					},
+					{
+						"name": "隆昌县",
+						"latter": "L"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "乐山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "市中区",
+						"latter": "S"
+					},
+					{
+						"name": "沙湾区",
+						"latter": "S"
+					},
+					{
+						"name": "五通桥区",
+						"latter": "W"
+					},
+					{
+						"name": "金口河区",
+						"latter": "J"
+					},
+					{
+						"name": "犍为县",
+						"latter": "J"
+					},
+					{
+						"name": "井研县",
+						"latter": "J"
+					},
+					{
+						"name": "夹江县",
+						"latter": "J"
+					},
+					{
+						"name": "沐川县",
+						"latter": "M"
+					},
+					{
+						"name": "峨边彝族自治县",
+						"latter": "E"
+					},
+					{
+						"name": "马边彝族自治县",
+						"latter": "M"
+					},
+					{
+						"name": "峨眉山市",
+						"latter": "E"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "南充市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "顺庆区",
+						"latter": "S"
+					},
+					{
+						"name": "高坪区",
+						"latter": "G"
+					},
+					{
+						"name": "嘉陵区",
+						"latter": "J"
+					},
+					{
+						"name": "南部县",
+						"latter": "N"
+					},
+					{
+						"name": "营山县",
+						"latter": "Y"
+					},
+					{
+						"name": "蓬安县",
+						"latter": "P"
+					},
+					{
+						"name": "仪陇县",
+						"latter": "Y"
+					},
+					{
+						"name": "西充县",
+						"latter": "X"
+					},
+					{
+						"name": "阆中市",
+						"latter": "L"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "眉山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "东坡区",
+						"latter": "D"
+					},
+					{
+						"name": "仁寿县",
+						"latter": "R"
+					},
+					{
+						"name": "彭山县",
+						"latter": "P"
+					},
+					{
+						"name": "洪雅县",
+						"latter": "H"
+					},
+					{
+						"name": "丹棱县",
+						"latter": "D"
+					},
+					{
+						"name": "青神县",
+						"latter": "Q"
+					}
+				],
+				"latter": "M"
+			},
+			{
+				"name": "宜宾市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "翠屏区",
+						"latter": "C"
+					},
+					{
+						"name": "南溪区",
+						"latter": "N"
+					},
+					{
+						"name": "宜宾县",
+						"latter": "Y"
+					},
+					{
+						"name": "江安县",
+						"latter": "J"
+					},
+					{
+						"name": "长宁县",
+						"latter": "C"
+					},
+					{
+						"name": "高县",
+						"latter": "G"
+					},
+					{
+						"name": "珙县",
+						"latter": "G"
+					},
+					{
+						"name": "筠连县",
+						"latter": "Y"
+					},
+					{
+						"name": "兴文县",
+						"latter": "X"
+					},
+					{
+						"name": "屏山县",
+						"latter": "P"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "广安市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "广安区",
+						"latter": "G"
+					},
+					{
+						"name": "前锋区",
+						"latter": "Q"
+					},
+					{
+						"name": "岳池县",
+						"latter": "Y"
+					},
+					{
+						"name": "武胜县",
+						"latter": "W"
+					},
+					{
+						"name": "邻水县",
+						"latter": "L"
+					},
+					{
+						"name": "华蓥市",
+						"latter": "H"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "达州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "通川区",
+						"latter": "T"
+					},
+					{
+						"name": "达川区",
+						"latter": "D"
+					},
+					{
+						"name": "宣汉县",
+						"latter": "X"
+					},
+					{
+						"name": "开江县",
+						"latter": "K"
+					},
+					{
+						"name": "大竹县",
+						"latter": "D"
+					},
+					{
+						"name": "渠县",
+						"latter": "Q"
+					},
+					{
+						"name": "万源市",
+						"latter": "W"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "雅安市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "雨城区",
+						"latter": "Y"
+					},
+					{
+						"name": "名山区",
+						"latter": "M"
+					},
+					{
+						"name": "荥经县",
+						"latter": "X"
+					},
+					{
+						"name": "汉源县",
+						"latter": "H"
+					},
+					{
+						"name": "石棉县",
+						"latter": "S"
+					},
+					{
+						"name": "天全县",
+						"latter": "T"
+					},
+					{
+						"name": "芦山县",
+						"latter": "L"
+					},
+					{
+						"name": "宝兴县",
+						"latter": "B"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "巴中市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "巴州区",
+						"latter": "B"
+					},
+					{
+						"name": "恩阳区",
+						"latter": "E"
+					},
+					{
+						"name": "通江县",
+						"latter": "T"
+					},
+					{
+						"name": "南江县",
+						"latter": "N"
+					},
+					{
+						"name": "平昌县",
+						"latter": "P"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "资阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "雁江区",
+						"latter": "Y"
+					},
+					{
+						"name": "安岳县",
+						"latter": "A"
+					},
+					{
+						"name": "乐至县",
+						"latter": "L"
+					},
+					{
+						"name": "简阳市",
+						"latter": "J"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "阿坝藏族羌族自治州",
+				"children": [{
+						"name": "汶川县",
+						"latter": "W"
+					},
+					{
+						"name": "理县",
+						"latter": "L"
+					},
+					{
+						"name": "茂县",
+						"latter": "M"
+					},
+					{
+						"name": "松潘县",
+						"latter": "S"
+					},
+					{
+						"name": "九寨沟县",
+						"latter": "J"
+					},
+					{
+						"name": "金川县",
+						"latter": "J"
+					},
+					{
+						"name": "小金县",
+						"latter": "X"
+					},
+					{
+						"name": "黑水县",
+						"latter": "H"
+					},
+					{
+						"name": "马尔康县",
+						"latter": "M"
+					},
+					{
+						"name": "壤塘县",
+						"latter": "R"
+					},
+					{
+						"name": "阿坝县",
+						"latter": "A"
+					},
+					{
+						"name": "若尔盖县",
+						"latter": "R"
+					},
+					{
+						"name": "红原县",
+						"latter": "H"
+					}
+				],
+				"latter": "A"
+			},
+			{
+				"name": "甘孜藏族自治州",
+				"children": [{
+						"name": "康定县",
+						"latter": "K"
+					},
+					{
+						"name": "泸定县",
+						"latter": "L"
+					},
+					{
+						"name": "丹巴县",
+						"latter": "D"
+					},
+					{
+						"name": "九龙县",
+						"latter": "J"
+					},
+					{
+						"name": "雅江县",
+						"latter": "Y"
+					},
+					{
+						"name": "道孚县",
+						"latter": "D"
+					},
+					{
+						"name": "炉霍县",
+						"latter": "L"
+					},
+					{
+						"name": "甘孜县",
+						"latter": "G"
+					},
+					{
+						"name": "新龙县",
+						"latter": "X"
+					},
+					{
+						"name": "德格县",
+						"latter": "D"
+					},
+					{
+						"name": "白玉县",
+						"latter": "B"
+					},
+					{
+						"name": "石渠县",
+						"latter": "S"
+					},
+					{
+						"name": "色达县",
+						"latter": "S"
+					},
+					{
+						"name": "理塘县",
+						"latter": "L"
+					},
+					{
+						"name": "巴塘县",
+						"latter": "B"
+					},
+					{
+						"name": "乡城县",
+						"latter": "X"
+					},
+					{
+						"name": "稻城县",
+						"latter": "D"
+					},
+					{
+						"name": "得荣县",
+						"latter": "D"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "凉山彝族自治州",
+				"children": [{
+						"name": "西昌市",
+						"latter": "X"
+					},
+					{
+						"name": "木里藏族自治县",
+						"latter": "M"
+					},
+					{
+						"name": "盐源县",
+						"latter": "Y"
+					},
+					{
+						"name": "德昌县",
+						"latter": "D"
+					},
+					{
+						"name": "会理县",
+						"latter": "H"
+					},
+					{
+						"name": "会东县",
+						"latter": "H"
+					},
+					{
+						"name": "宁南县",
+						"latter": "N"
+					},
+					{
+						"name": "普格县",
+						"latter": "P"
+					},
+					{
+						"name": "布拖县",
+						"latter": "B"
+					},
+					{
+						"name": "金阳县",
+						"latter": "J"
+					},
+					{
+						"name": "昭觉县",
+						"latter": "Z"
+					},
+					{
+						"name": "喜德县",
+						"latter": "X"
+					},
+					{
+						"name": "冕宁县",
+						"latter": "M"
+					},
+					{
+						"name": "越西县",
+						"latter": "Y"
+					},
+					{
+						"name": "甘洛县",
+						"latter": "G"
+					},
+					{
+						"name": "美姑县",
+						"latter": "M"
+					},
+					{
+						"name": "雷波县",
+						"latter": "L"
+					}
+				],
+				"latter": "L"
+			}
+		],
+		"latter": "S"
+	},
+	{
+		"name": "贵州省",
+		"children": [{
+				"name": "贵阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "南明区",
+						"latter": "N"
+					},
+					{
+						"name": "云岩区",
+						"latter": "Y"
+					},
+					{
+						"name": "花溪区",
+						"latter": "H"
+					},
+					{
+						"name": "乌当区",
+						"latter": "W"
+					},
+					{
+						"name": "白云区",
+						"latter": "B"
+					},
+					{
+						"name": "观山湖区",
+						"latter": "G"
+					},
+					{
+						"name": "开阳县",
+						"latter": "K"
+					},
+					{
+						"name": "息烽县",
+						"latter": "X"
+					},
+					{
+						"name": "修文县",
+						"latter": "X"
+					},
+					{
+						"name": "清镇市",
+						"latter": "Q"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "六盘水市",
+				"children": [{
+						"name": "钟山区",
+						"latter": "Z"
+					},
+					{
+						"name": "六枝特区",
+						"latter": "L"
+					},
+					{
+						"name": "水城县",
+						"latter": "S"
+					},
+					{
+						"name": "盘县",
+						"latter": "P"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "遵义市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "红花岗区",
+						"latter": "H"
+					},
+					{
+						"name": "汇川区",
+						"latter": "H"
+					},
+					{
+						"name": "遵义县",
+						"latter": "Z"
+					},
+					{
+						"name": "桐梓县",
+						"latter": "T"
+					},
+					{
+						"name": "绥阳县",
+						"latter": "S"
+					},
+					{
+						"name": "正安县",
+						"latter": "Z"
+					},
+					{
+						"name": "道真仡佬族苗族自治县",
+						"latter": "D"
+					},
+					{
+						"name": "务川仡佬族苗族自治县",
+						"latter": "W"
+					},
+					{
+						"name": "凤冈县",
+						"latter": "F"
+					},
+					{
+						"name": "湄潭县",
+						"latter": "M"
+					},
+					{
+						"name": "余庆县",
+						"latter": "Y"
+					},
+					{
+						"name": "习水县",
+						"latter": "X"
+					},
+					{
+						"name": "赤水市",
+						"latter": "C"
+					},
+					{
+						"name": "仁怀市",
+						"latter": "R"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "安顺市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "西秀区",
+						"latter": "X"
+					},
+					{
+						"name": "平坝县",
+						"latter": "P"
+					},
+					{
+						"name": "普定县",
+						"latter": "P"
+					},
+					{
+						"name": "镇宁布依族苗族自治县",
+						"latter": "Z"
+					},
+					{
+						"name": "关岭布依族苗族自治县",
+						"latter": "G"
+					},
+					{
+						"name": "紫云苗族布依族自治县",
+						"latter": "Z"
+					}
+				],
+				"latter": "A"
+			},
+			{
+				"name": "毕节市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "七星关区",
+						"latter": "Q"
+					},
+					{
+						"name": "大方县",
+						"latter": "D"
+					},
+					{
+						"name": "黔西县",
+						"latter": "Q"
+					},
+					{
+						"name": "金沙县",
+						"latter": "J"
+					},
+					{
+						"name": "织金县",
+						"latter": "Z"
+					},
+					{
+						"name": "纳雍县",
+						"latter": "N"
+					},
+					{
+						"name": "威宁彝族回族苗族自治县",
+						"latter": "W"
+					},
+					{
+						"name": "赫章县",
+						"latter": "H"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "铜仁市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "碧江区",
+						"latter": "B"
+					},
+					{
+						"name": "万山区",
+						"latter": "W"
+					},
+					{
+						"name": "江口县",
+						"latter": "J"
+					},
+					{
+						"name": "玉屏侗族自治县",
+						"latter": "Y"
+					},
+					{
+						"name": "石阡县",
+						"latter": "S"
+					},
+					{
+						"name": "思南县",
+						"latter": "S"
+					},
+					{
+						"name": "印江土家族苗族自治县",
+						"latter": "Y"
+					},
+					{
+						"name": "德江县",
+						"latter": "D"
+					},
+					{
+						"name": "沿河土家族自治县",
+						"latter": "Y"
+					},
+					{
+						"name": "松桃苗族自治县",
+						"latter": "S"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "黔西南布依族苗族自治州",
+				"children": [{
+						"name": "兴义市",
+						"latter": "X"
+					},
+					{
+						"name": "兴仁县",
+						"latter": "X"
+					},
+					{
+						"name": "普安县",
+						"latter": "P"
+					},
+					{
+						"name": "晴隆县",
+						"latter": "Q"
+					},
+					{
+						"name": "贞丰县",
+						"latter": "Z"
+					},
+					{
+						"name": "望谟县",
+						"latter": "W"
+					},
+					{
+						"name": "册亨县",
+						"latter": "C"
+					},
+					{
+						"name": "安龙县",
+						"latter": "A"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "黔东南苗族侗族自治州",
+				"children": [{
+						"name": "凯里市",
+						"latter": "K"
+					},
+					{
+						"name": "黄平县",
+						"latter": "H"
+					},
+					{
+						"name": "施秉县",
+						"latter": "S"
+					},
+					{
+						"name": "三穗县",
+						"latter": "S"
+					},
+					{
+						"name": "镇远县",
+						"latter": "Z"
+					},
+					{
+						"name": "岑巩县",
+						"latter": "C"
+					},
+					{
+						"name": "天柱县",
+						"latter": "T"
+					},
+					{
+						"name": "锦屏县",
+						"latter": "J"
+					},
+					{
+						"name": "剑河县",
+						"latter": "J"
+					},
+					{
+						"name": "台江县",
+						"latter": "T"
+					},
+					{
+						"name": "黎平县",
+						"latter": "L"
+					},
+					{
+						"name": "榕江县",
+						"latter": "R"
+					},
+					{
+						"name": "从江县",
+						"latter": "C"
+					},
+					{
+						"name": "雷山县",
+						"latter": "L"
+					},
+					{
+						"name": "麻江县",
+						"latter": "M"
+					},
+					{
+						"name": "丹寨县",
+						"latter": "D"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "黔南布依族苗族自治州",
+				"children": [{
+						"name": "都匀市",
+						"latter": "D"
+					},
+					{
+						"name": "福泉市",
+						"latter": "F"
+					},
+					{
+						"name": "荔波县",
+						"latter": "L"
+					},
+					{
+						"name": "贵定县",
+						"latter": "G"
+					},
+					{
+						"name": "瓮安县",
+						"latter": "W"
+					},
+					{
+						"name": "独山县",
+						"latter": "D"
+					},
+					{
+						"name": "平塘县",
+						"latter": "P"
+					},
+					{
+						"name": "罗甸县",
+						"latter": "L"
+					},
+					{
+						"name": "长顺县",
+						"latter": "C"
+					},
+					{
+						"name": "龙里县",
+						"latter": "L"
+					},
+					{
+						"name": "惠水县",
+						"latter": "H"
+					},
+					{
+						"name": "三都水族自治县",
+						"latter": "S"
+					}
+				],
+				"latter": "Q"
+			}
+		],
+		"latter": "G"
+	},
+	{
+		"name": "云南省",
+		"children": [{
+				"name": "昆明市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "五华区",
+						"latter": "W"
+					},
+					{
+						"name": "盘龙区",
+						"latter": "P"
+					},
+					{
+						"name": "官渡区",
+						"latter": "G"
+					},
+					{
+						"name": "西山区",
+						"latter": "X"
+					},
+					{
+						"name": "东川区",
+						"latter": "D"
+					},
+					{
+						"name": "呈贡区",
+						"latter": "C"
+					},
+					{
+						"name": "晋宁县",
+						"latter": "J"
+					},
+					{
+						"name": "富民县",
+						"latter": "F"
+					},
+					{
+						"name": "宜良县",
+						"latter": "Y"
+					},
+					{
+						"name": "石林彝族自治县",
+						"latter": "S"
+					},
+					{
+						"name": "嵩明县",
+						"latter": "S"
+					},
+					{
+						"name": "禄劝彝族苗族自治县",
+						"latter": "L"
+					},
+					{
+						"name": "寻甸回族彝族自治县",
+						"latter": "X"
+					},
+					{
+						"name": "安宁市",
+						"latter": "A"
+					}
+				],
+				"latter": "K"
+			},
+			{
+				"name": "曲靖市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "麒麟区",
+						"latter": "Q"
+					},
+					{
+						"name": "马龙县",
+						"latter": "M"
+					},
+					{
+						"name": "陆良县",
+						"latter": "L"
+					},
+					{
+						"name": "师宗县",
+						"latter": "S"
+					},
+					{
+						"name": "罗平县",
+						"latter": "L"
+					},
+					{
+						"name": "富源县",
+						"latter": "F"
+					},
+					{
+						"name": "会泽县",
+						"latter": "H"
+					},
+					{
+						"name": "沾益县",
+						"latter": "Z"
+					},
+					{
+						"name": "宣威市",
+						"latter": "X"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "玉溪市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "红塔区",
+						"latter": "H"
+					},
+					{
+						"name": "江川县",
+						"latter": "J"
+					},
+					{
+						"name": "澄江县",
+						"latter": "C"
+					},
+					{
+						"name": "通海县",
+						"latter": "T"
+					},
+					{
+						"name": "华宁县",
+						"latter": "H"
+					},
+					{
+						"name": "易门县",
+						"latter": "Y"
+					},
+					{
+						"name": "峨山彝族自治县",
+						"latter": "E"
+					},
+					{
+						"name": "新平彝族傣族自治县",
+						"latter": "X"
+					},
+					{
+						"name": "元江哈尼族彝族傣族自治县",
+						"latter": "Y"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "保山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "隆阳区",
+						"latter": "L"
+					},
+					{
+						"name": "施甸县",
+						"latter": "S"
+					},
+					{
+						"name": "腾冲县",
+						"latter": "T"
+					},
+					{
+						"name": "龙陵县",
+						"latter": "L"
+					},
+					{
+						"name": "昌宁县",
+						"latter": "C"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "昭通市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "昭阳区",
+						"latter": "Z"
+					},
+					{
+						"name": "鲁甸县",
+						"latter": "L"
+					},
+					{
+						"name": "巧家县",
+						"latter": "Q"
+					},
+					{
+						"name": "盐津县",
+						"latter": "Y"
+					},
+					{
+						"name": "大关县",
+						"latter": "D"
+					},
+					{
+						"name": "永善县",
+						"latter": "Y"
+					},
+					{
+						"name": "绥江县",
+						"latter": "S"
+					},
+					{
+						"name": "镇雄县",
+						"latter": "Z"
+					},
+					{
+						"name": "彝良县",
+						"latter": "Y"
+					},
+					{
+						"name": "威信县",
+						"latter": "W"
+					},
+					{
+						"name": "水富县",
+						"latter": "S"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "丽江市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "古城区",
+						"latter": "G"
+					},
+					{
+						"name": "玉龙纳西族自治县",
+						"latter": "Y"
+					},
+					{
+						"name": "永胜县",
+						"latter": "Y"
+					},
+					{
+						"name": "华坪县",
+						"latter": "H"
+					},
+					{
+						"name": "宁蒗彝族自治县",
+						"latter": "N"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "普洱市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "思茅区",
+						"latter": "S"
+					},
+					{
+						"name": "宁洱哈尼族彝族自治县",
+						"latter": "N"
+					},
+					{
+						"name": "墨江哈尼族自治县",
+						"latter": "M"
+					},
+					{
+						"name": "景东彝族自治县",
+						"latter": "J"
+					},
+					{
+						"name": "景谷傣族彝族自治县",
+						"latter": "J"
+					},
+					{
+						"name": "镇沅彝族哈尼族拉祜族自治县",
+						"latter": "Z"
+					},
+					{
+						"name": "江城哈尼族彝族自治县",
+						"latter": "J"
+					},
+					{
+						"name": "孟连傣族拉祜族佤族自治县",
+						"latter": "M"
+					},
+					{
+						"name": "澜沧拉祜族自治县",
+						"latter": "L"
+					},
+					{
+						"name": "西盟佤族自治县",
+						"latter": "X"
+					}
+				],
+				"latter": "P"
+			},
+			{
+				"name": "临沧市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "临翔区",
+						"latter": "L"
+					},
+					{
+						"name": "凤庆县",
+						"latter": "F"
+					},
+					{
+						"name": "云县",
+						"latter": "Y"
+					},
+					{
+						"name": "永德县",
+						"latter": "Y"
+					},
+					{
+						"name": "镇康县",
+						"latter": "Z"
+					},
+					{
+						"name": "双江拉祜族佤族布朗族傣族自治县",
+						"latter": "S"
+					},
+					{
+						"name": "耿马傣族佤族自治县",
+						"latter": "G"
+					},
+					{
+						"name": "沧源佤族自治县",
+						"latter": "C"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "楚雄彝族自治州",
+				"children": [{
+						"name": "楚雄市",
+						"latter": "C"
+					},
+					{
+						"name": "双柏县",
+						"latter": "S"
+					},
+					{
+						"name": "牟定县",
+						"latter": "M"
+					},
+					{
+						"name": "南华县",
+						"latter": "N"
+					},
+					{
+						"name": "姚安县",
+						"latter": "Y"
+					},
+					{
+						"name": "大姚县",
+						"latter": "D"
+					},
+					{
+						"name": "永仁县",
+						"latter": "Y"
+					},
+					{
+						"name": "元谋县",
+						"latter": "Y"
+					},
+					{
+						"name": "武定县",
+						"latter": "W"
+					},
+					{
+						"name": "禄丰县",
+						"latter": "L"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "红河哈尼族彝族自治州",
+				"children": [{
+						"name": "个旧市",
+						"latter": "G"
+					},
+					{
+						"name": "开远市",
+						"latter": "K"
+					},
+					{
+						"name": "蒙自市",
+						"latter": "M"
+					},
+					{
+						"name": "弥勒市",
+						"latter": "M"
+					},
+					{
+						"name": "屏边苗族自治县",
+						"latter": "P"
+					},
+					{
+						"name": "建水县",
+						"latter": "J"
+					},
+					{
+						"name": "石屏县",
+						"latter": "S"
+					},
+					{
+						"name": "泸西县",
+						"latter": "L"
+					},
+					{
+						"name": "元阳县",
+						"latter": "Y"
+					},
+					{
+						"name": "红河县",
+						"latter": "H"
+					},
+					{
+						"name": "金平苗族瑶族傣族自治县",
+						"latter": "J"
+					},
+					{
+						"name": "绿春县",
+						"latter": "L"
+					},
+					{
+						"name": "河口瑶族自治县",
+						"latter": "H"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "文山壮族苗族自治州",
+				"children": [{
+						"name": "文山市",
+						"latter": "W"
+					},
+					{
+						"name": "砚山县",
+						"latter": "Y"
+					},
+					{
+						"name": "西畴县",
+						"latter": "X"
+					},
+					{
+						"name": "麻栗坡县",
+						"latter": "M"
+					},
+					{
+						"name": "马关县",
+						"latter": "M"
+					},
+					{
+						"name": "丘北县",
+						"latter": "Q"
+					},
+					{
+						"name": "广南县",
+						"latter": "G"
+					},
+					{
+						"name": "富宁县",
+						"latter": "F"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "西双版纳傣族自治州",
+				"children": [{
+						"name": "景洪市",
+						"latter": "J"
+					},
+					{
+						"name": "勐海县",
+						"latter": "M"
+					},
+					{
+						"name": "勐腊县",
+						"latter": "M"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "大理白族自治州",
+				"children": [{
+						"name": "大理市",
+						"latter": "D"
+					},
+					{
+						"name": "漾濞彝族自治县",
+						"latter": "Y"
+					},
+					{
+						"name": "祥云县",
+						"latter": "X"
+					},
+					{
+						"name": "宾川县",
+						"latter": "B"
+					},
+					{
+						"name": "弥渡县",
+						"latter": "M"
+					},
+					{
+						"name": "南涧彝族自治县",
+						"latter": "N"
+					},
+					{
+						"name": "巍山彝族回族自治县",
+						"latter": "W"
+					},
+					{
+						"name": "永平县",
+						"latter": "Y"
+					},
+					{
+						"name": "云龙县",
+						"latter": "Y"
+					},
+					{
+						"name": "洱源县",
+						"latter": "E"
+					},
+					{
+						"name": "剑川县",
+						"latter": "J"
+					},
+					{
+						"name": "鹤庆县",
+						"latter": "H"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "德宏傣族景颇族自治州",
+				"children": [{
+						"name": "瑞丽市",
+						"latter": "R"
+					},
+					{
+						"name": "芒市",
+						"latter": "M"
+					},
+					{
+						"name": "梁河县",
+						"latter": "L"
+					},
+					{
+						"name": "盈江县",
+						"latter": "Y"
+					},
+					{
+						"name": "陇川县",
+						"latter": "L"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "怒江傈僳族自治州",
+				"children": [{
+						"name": "泸水县",
+						"latter": "L"
+					},
+					{
+						"name": "福贡县",
+						"latter": "F"
+					},
+					{
+						"name": "贡山独龙族怒族自治县",
+						"latter": "G"
+					},
+					{
+						"name": "兰坪白族普米族自治县",
+						"latter": "L"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "迪庆藏族自治州",
+				"children": [{
+						"name": "香格里拉县",
+						"latter": "X"
+					},
+					{
+						"name": "德钦县",
+						"latter": "D"
+					},
+					{
+						"name": "维西傈僳族自治县",
+						"latter": "W"
+					}
+				],
+				"latter": "D"
+			}
+		],
+		"latter": "Y"
+	},
+	{
+		"name": "西藏自治区",
+		"children": [{
+				"name": "拉萨市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城关区",
+						"latter": "C"
+					},
+					{
+						"name": "林周县",
+						"latter": "L"
+					},
+					{
+						"name": "当雄县",
+						"latter": "D"
+					},
+					{
+						"name": "尼木县",
+						"latter": "N"
+					},
+					{
+						"name": "曲水县",
+						"latter": "Q"
+					},
+					{
+						"name": "堆龙德庆县",
+						"latter": "D"
+					},
+					{
+						"name": "达孜县",
+						"latter": "D"
+					},
+					{
+						"name": "墨竹工卡县",
+						"latter": "M"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "昌都地区",
+				"children": [{
+						"name": "昌都县",
+						"latter": "C"
+					},
+					{
+						"name": "江达县",
+						"latter": "J"
+					},
+					{
+						"name": "贡觉县",
+						"latter": "G"
+					},
+					{
+						"name": "类乌齐县",
+						"latter": "L"
+					},
+					{
+						"name": "丁青县",
+						"latter": "D"
+					},
+					{
+						"name": "察雅县",
+						"latter": "C"
+					},
+					{
+						"name": "八宿县",
+						"latter": "B"
+					},
+					{
+						"name": "左贡县",
+						"latter": "Z"
+					},
+					{
+						"name": "芒康县",
+						"latter": "M"
+					},
+					{
+						"name": "洛隆县",
+						"latter": "L"
+					},
+					{
+						"name": "边坝县",
+						"latter": "B"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "山南地区",
+				"children": [{
+						"name": "乃东县",
+						"latter": "N"
+					},
+					{
+						"name": "扎囊县",
+						"latter": "Z"
+					},
+					{
+						"name": "贡嘎县",
+						"latter": "G"
+					},
+					{
+						"name": "桑日县",
+						"latter": "S"
+					},
+					{
+						"name": "琼结县",
+						"latter": "Q"
+					},
+					{
+						"name": "曲松县",
+						"latter": "Q"
+					},
+					{
+						"name": "措美县",
+						"latter": "C"
+					},
+					{
+						"name": "洛扎县",
+						"latter": "L"
+					},
+					{
+						"name": "加查县",
+						"latter": "J"
+					},
+					{
+						"name": "隆子县",
+						"latter": "L"
+					},
+					{
+						"name": "错那县",
+						"latter": "C"
+					},
+					{
+						"name": "浪卡子县",
+						"latter": "L"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "日喀则地区",
+				"children": [{
+						"name": "日喀则市",
+						"latter": "R"
+					},
+					{
+						"name": "南木林县",
+						"latter": "N"
+					},
+					{
+						"name": "江孜县",
+						"latter": "J"
+					},
+					{
+						"name": "定日县",
+						"latter": "D"
+					},
+					{
+						"name": "萨迦县",
+						"latter": "S"
+					},
+					{
+						"name": "拉孜县",
+						"latter": "L"
+					},
+					{
+						"name": "昂仁县",
+						"latter": "A"
+					},
+					{
+						"name": "谢通门县",
+						"latter": "X"
+					},
+					{
+						"name": "白朗县",
+						"latter": "B"
+					},
+					{
+						"name": "仁布县",
+						"latter": "R"
+					},
+					{
+						"name": "康马县",
+						"latter": "K"
+					},
+					{
+						"name": "定结县",
+						"latter": "D"
+					},
+					{
+						"name": "仲巴县",
+						"latter": "Z"
+					},
+					{
+						"name": "亚东县",
+						"latter": "Y"
+					},
+					{
+						"name": "吉隆县",
+						"latter": "J"
+					},
+					{
+						"name": "聂拉木县",
+						"latter": "N"
+					},
+					{
+						"name": "萨嘎县",
+						"latter": "S"
+					},
+					{
+						"name": "岗巴县",
+						"latter": "G"
+					}
+				],
+				"latter": "R"
+			},
+			{
+				"name": "那曲地区",
+				"children": [{
+						"name": "那曲县",
+						"latter": "N"
+					},
+					{
+						"name": "嘉黎县",
+						"latter": "J"
+					},
+					{
+						"name": "比如县",
+						"latter": "B"
+					},
+					{
+						"name": "聂荣县",
+						"latter": "N"
+					},
+					{
+						"name": "安多县",
+						"latter": "A"
+					},
+					{
+						"name": "申扎县",
+						"latter": "S"
+					},
+					{
+						"name": "索县",
+						"latter": "S"
+					},
+					{
+						"name": "班戈县",
+						"latter": "B"
+					},
+					{
+						"name": "巴青县",
+						"latter": "B"
+					},
+					{
+						"name": "尼玛县",
+						"latter": "N"
+					},
+					{
+						"name": "双湖县",
+						"latter": "S"
+					}
+				],
+				"latter": "N"
+			},
+			{
+				"name": "阿里地区",
+				"children": [{
+						"name": "普兰县",
+						"latter": "P"
+					},
+					{
+						"name": "札达县",
+						"latter": "Z"
+					},
+					{
+						"name": "噶尔县",
+						"latter": "G"
+					},
+					{
+						"name": "日土县",
+						"latter": "R"
+					},
+					{
+						"name": "革吉县",
+						"latter": "G"
+					},
+					{
+						"name": "改则县",
+						"latter": "G"
+					},
+					{
+						"name": "措勤县",
+						"latter": "C"
+					}
+				],
+				"latter": "A"
+			},
+			{
+				"name": "林芝地区",
+				"children": [{
+						"name": "林芝县",
+						"latter": "L"
+					},
+					{
+						"name": "工布江达县",
+						"latter": "G"
+					},
+					{
+						"name": "米林县",
+						"latter": "M"
+					},
+					{
+						"name": "墨脱县",
+						"latter": "M"
+					},
+					{
+						"name": "波密县",
+						"latter": "B"
+					},
+					{
+						"name": "察隅县",
+						"latter": "C"
+					},
+					{
+						"name": "朗县",
+						"latter": "L"
+					}
+				],
+				"latter": "L"
+			}
+		],
+		"latter": "X"
+	},
+	{
+		"name": "陕西省",
+		"children": [{
+				"name": "西安市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "新城区",
+						"latter": "X"
+					},
+					{
+						"name": "碑林区",
+						"latter": "B"
+					},
+					{
+						"name": "莲湖区",
+						"latter": "L"
+					},
+					{
+						"name": "灞桥区",
+						"latter": "B"
+					},
+					{
+						"name": "未央区",
+						"latter": "W"
+					},
+					{
+						"name": "雁塔区",
+						"latter": "Y"
+					},
+					{
+						"name": "阎良区",
+						"latter": "Y"
+					},
+					{
+						"name": "临潼区",
+						"latter": "L"
+					},
+					{
+						"name": "长安区",
+						"latter": "C"
+					},
+					{
+						"name": "蓝田县",
+						"latter": "L"
+					},
+					{
+						"name": "周至县",
+						"latter": "Z"
+					},
+					{
+						"name": "户县",
+						"latter": "H"
+					},
+					{
+						"name": "高陵县",
+						"latter": "G"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "铜川市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "王益区",
+						"latter": "W"
+					},
+					{
+						"name": "印台区",
+						"latter": "Y"
+					},
+					{
+						"name": "耀州区",
+						"latter": "Y"
+					},
+					{
+						"name": "宜君县",
+						"latter": "Y"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "宝鸡市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "渭滨区",
+						"latter": "W"
+					},
+					{
+						"name": "金台区",
+						"latter": "J"
+					},
+					{
+						"name": "陈仓区",
+						"latter": "C"
+					},
+					{
+						"name": "凤翔县",
+						"latter": "F"
+					},
+					{
+						"name": "岐山县",
+						"latter": "Q"
+					},
+					{
+						"name": "扶风县",
+						"latter": "F"
+					},
+					{
+						"name": "眉县",
+						"latter": "M"
+					},
+					{
+						"name": "陇县",
+						"latter": "L"
+					},
+					{
+						"name": "千阳县",
+						"latter": "Q"
+					},
+					{
+						"name": "麟游县",
+						"latter": "L"
+					},
+					{
+						"name": "凤县",
+						"latter": "F"
+					},
+					{
+						"name": "太白县",
+						"latter": "T"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "咸阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "秦都区",
+						"latter": "Q"
+					},
+					{
+						"name": "杨陵区",
+						"latter": "Y"
+					},
+					{
+						"name": "渭城区",
+						"latter": "W"
+					},
+					{
+						"name": "三原县",
+						"latter": "S"
+					},
+					{
+						"name": "泾阳县",
+						"latter": "J"
+					},
+					{
+						"name": "乾县",
+						"latter": "Q"
+					},
+					{
+						"name": "礼泉县",
+						"latter": "L"
+					},
+					{
+						"name": "永寿县",
+						"latter": "Y"
+					},
+					{
+						"name": "彬县",
+						"latter": "B"
+					},
+					{
+						"name": "长武县",
+						"latter": "C"
+					},
+					{
+						"name": "旬邑县",
+						"latter": "X"
+					},
+					{
+						"name": "淳化县",
+						"latter": "C"
+					},
+					{
+						"name": "武功县",
+						"latter": "W"
+					},
+					{
+						"name": "兴平市",
+						"latter": "X"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "渭南市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "临渭区",
+						"latter": "L"
+					},
+					{
+						"name": "华县",
+						"latter": "H"
+					},
+					{
+						"name": "潼关县",
+						"latter": "T"
+					},
+					{
+						"name": "大荔县",
+						"latter": "D"
+					},
+					{
+						"name": "合阳县",
+						"latter": "H"
+					},
+					{
+						"name": "澄城县",
+						"latter": "C"
+					},
+					{
+						"name": "蒲城县",
+						"latter": "P"
+					},
+					{
+						"name": "白水县",
+						"latter": "B"
+					},
+					{
+						"name": "富平县",
+						"latter": "F"
+					},
+					{
+						"name": "韩城市",
+						"latter": "H"
+					},
+					{
+						"name": "华阴市",
+						"latter": "H"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "延安市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "宝塔区",
+						"latter": "B"
+					},
+					{
+						"name": "延长县",
+						"latter": "Y"
+					},
+					{
+						"name": "延川县",
+						"latter": "Y"
+					},
+					{
+						"name": "子长县",
+						"latter": "Z"
+					},
+					{
+						"name": "安塞县",
+						"latter": "A"
+					},
+					{
+						"name": "志丹县",
+						"latter": "Z"
+					},
+					{
+						"name": "吴起县",
+						"latter": "W"
+					},
+					{
+						"name": "甘泉县",
+						"latter": "G"
+					},
+					{
+						"name": "富县",
+						"latter": "F"
+					},
+					{
+						"name": "洛川县",
+						"latter": "L"
+					},
+					{
+						"name": "宜川县",
+						"latter": "Y"
+					},
+					{
+						"name": "黄龙县",
+						"latter": "H"
+					},
+					{
+						"name": "黄陵县",
+						"latter": "H"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "汉中市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "汉台区",
+						"latter": "H"
+					},
+					{
+						"name": "南郑县",
+						"latter": "N"
+					},
+					{
+						"name": "城固县",
+						"latter": "C"
+					},
+					{
+						"name": "洋县",
+						"latter": "Y"
+					},
+					{
+						"name": "西乡县",
+						"latter": "X"
+					},
+					{
+						"name": "勉县",
+						"latter": "M"
+					},
+					{
+						"name": "宁强县",
+						"latter": "N"
+					},
+					{
+						"name": "略阳县",
+						"latter": "L"
+					},
+					{
+						"name": "镇巴县",
+						"latter": "Z"
+					},
+					{
+						"name": "留坝县",
+						"latter": "L"
+					},
+					{
+						"name": "佛坪县",
+						"latter": "F"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "榆林市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "榆阳区",
+						"latter": "Y"
+					},
+					{
+						"name": "神木县",
+						"latter": "S"
+					},
+					{
+						"name": "府谷县",
+						"latter": "F"
+					},
+					{
+						"name": "横山县",
+						"latter": "H"
+					},
+					{
+						"name": "靖边县",
+						"latter": "J"
+					},
+					{
+						"name": "定边县",
+						"latter": "D"
+					},
+					{
+						"name": "绥德县",
+						"latter": "S"
+					},
+					{
+						"name": "米脂县",
+						"latter": "M"
+					},
+					{
+						"name": "佳县",
+						"latter": "J"
+					},
+					{
+						"name": "吴堡县",
+						"latter": "W"
+					},
+					{
+						"name": "清涧县",
+						"latter": "Q"
+					},
+					{
+						"name": "子洲县",
+						"latter": "Z"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "安康市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "汉滨区",
+						"latter": "H"
+					},
+					{
+						"name": "汉阴县",
+						"latter": "H"
+					},
+					{
+						"name": "石泉县",
+						"latter": "S"
+					},
+					{
+						"name": "宁陕县",
+						"latter": "N"
+					},
+					{
+						"name": "紫阳县",
+						"latter": "Z"
+					},
+					{
+						"name": "岚皋县",
+						"latter": "L"
+					},
+					{
+						"name": "平利县",
+						"latter": "P"
+					},
+					{
+						"name": "镇坪县",
+						"latter": "Z"
+					},
+					{
+						"name": "旬阳县",
+						"latter": "X"
+					},
+					{
+						"name": "白河县",
+						"latter": "B"
+					}
+				],
+				"latter": "A"
+			},
+			{
+				"name": "商洛市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "商州区",
+						"latter": "S"
+					},
+					{
+						"name": "洛南县",
+						"latter": "L"
+					},
+					{
+						"name": "丹凤县",
+						"latter": "D"
+					},
+					{
+						"name": "商南县",
+						"latter": "S"
+					},
+					{
+						"name": "山阳县",
+						"latter": "S"
+					},
+					{
+						"name": "镇安县",
+						"latter": "Z"
+					},
+					{
+						"name": "柞水县",
+						"latter": "Z"
+					}
+				],
+				"latter": "S"
+			}
+		],
+		"latter": "S"
+	},
+	{
+		"name": "甘肃省",
+		"children": [{
+				"name": "兰州市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城关区",
+						"latter": "C"
+					},
+					{
+						"name": "七里河区",
+						"latter": "Q"
+					},
+					{
+						"name": "西固区",
+						"latter": "X"
+					},
+					{
+						"name": "安宁区",
+						"latter": "A"
+					},
+					{
+						"name": "红古区",
+						"latter": "H"
+					},
+					{
+						"name": "永登县",
+						"latter": "Y"
+					},
+					{
+						"name": "皋兰县",
+						"latter": "G"
+					},
+					{
+						"name": "榆中县",
+						"latter": "Y"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "嘉峪关市",
+				"children": [{
+					"name": "市辖区",
+					"latter": "S"
+				}],
+				"latter": "J"
+			},
+			{
+				"name": "金昌市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "金川区",
+						"latter": "J"
+					},
+					{
+						"name": "永昌县",
+						"latter": "Y"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "白银市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "白银区",
+						"latter": "B"
+					},
+					{
+						"name": "平川区",
+						"latter": "P"
+					},
+					{
+						"name": "靖远县",
+						"latter": "J"
+					},
+					{
+						"name": "会宁县",
+						"latter": "H"
+					},
+					{
+						"name": "景泰县",
+						"latter": "J"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "天水市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "秦州区",
+						"latter": "Q"
+					},
+					{
+						"name": "麦积区",
+						"latter": "M"
+					},
+					{
+						"name": "清水县",
+						"latter": "Q"
+					},
+					{
+						"name": "秦安县",
+						"latter": "Q"
+					},
+					{
+						"name": "甘谷县",
+						"latter": "G"
+					},
+					{
+						"name": "武山县",
+						"latter": "W"
+					},
+					{
+						"name": "张家川回族自治县",
+						"latter": "Z"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "武威市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "凉州区",
+						"latter": "L"
+					},
+					{
+						"name": "民勤县",
+						"latter": "M"
+					},
+					{
+						"name": "古浪县",
+						"latter": "G"
+					},
+					{
+						"name": "天祝藏族自治县",
+						"latter": "T"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "张掖市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "甘州区",
+						"latter": "G"
+					},
+					{
+						"name": "肃南裕固族自治县",
+						"latter": "S"
+					},
+					{
+						"name": "民乐县",
+						"latter": "M"
+					},
+					{
+						"name": "临泽县",
+						"latter": "L"
+					},
+					{
+						"name": "高台县",
+						"latter": "G"
+					},
+					{
+						"name": "山丹县",
+						"latter": "S"
+					}
+				],
+				"latter": "Z"
+			},
+			{
+				"name": "平凉市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "崆峒区",
+						"latter": "K"
+					},
+					{
+						"name": "泾川县",
+						"latter": "J"
+					},
+					{
+						"name": "灵台县",
+						"latter": "L"
+					},
+					{
+						"name": "崇信县",
+						"latter": "C"
+					},
+					{
+						"name": "华亭县",
+						"latter": "H"
+					},
+					{
+						"name": "庄浪县",
+						"latter": "Z"
+					},
+					{
+						"name": "静宁县",
+						"latter": "J"
+					}
+				],
+				"latter": "P"
+			},
+			{
+				"name": "酒泉市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "肃州区",
+						"latter": "S"
+					},
+					{
+						"name": "金塔县",
+						"latter": "J"
+					},
+					{
+						"name": "瓜州县",
+						"latter": "G"
+					},
+					{
+						"name": "肃北蒙古族自治县",
+						"latter": "S"
+					},
+					{
+						"name": "阿克塞哈萨克族自治县",
+						"latter": "A"
+					},
+					{
+						"name": "玉门市",
+						"latter": "Y"
+					},
+					{
+						"name": "敦煌市",
+						"latter": "D"
+					}
+				],
+				"latter": "J"
+			},
+			{
+				"name": "庆阳市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "西峰区",
+						"latter": "X"
+					},
+					{
+						"name": "庆城县",
+						"latter": "Q"
+					},
+					{
+						"name": "环县",
+						"latter": "H"
+					},
+					{
+						"name": "华池县",
+						"latter": "H"
+					},
+					{
+						"name": "合水县",
+						"latter": "H"
+					},
+					{
+						"name": "正宁县",
+						"latter": "Z"
+					},
+					{
+						"name": "宁县",
+						"latter": "N"
+					},
+					{
+						"name": "镇原县",
+						"latter": "Z"
+					}
+				],
+				"latter": "Q"
+			},
+			{
+				"name": "定西市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "安定区",
+						"latter": "A"
+					},
+					{
+						"name": "通渭县",
+						"latter": "T"
+					},
+					{
+						"name": "陇西县",
+						"latter": "L"
+					},
+					{
+						"name": "渭源县",
+						"latter": "W"
+					},
+					{
+						"name": "临洮县",
+						"latter": "L"
+					},
+					{
+						"name": "漳县",
+						"latter": "Z"
+					},
+					{
+						"name": "岷县",
+						"latter": "M"
+					}
+				],
+				"latter": "D"
+			},
+			{
+				"name": "陇南市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "武都区",
+						"latter": "W"
+					},
+					{
+						"name": "成县",
+						"latter": "C"
+					},
+					{
+						"name": "文县",
+						"latter": "W"
+					},
+					{
+						"name": "宕昌县",
+						"latter": "D"
+					},
+					{
+						"name": "康县",
+						"latter": "K"
+					},
+					{
+						"name": "西和县",
+						"latter": "X"
+					},
+					{
+						"name": "礼县",
+						"latter": "L"
+					},
+					{
+						"name": "徽县",
+						"latter": "H"
+					},
+					{
+						"name": "两当县",
+						"latter": "L"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "临夏回族自治州",
+				"children": [{
+						"name": "临夏市",
+						"latter": "L"
+					},
+					{
+						"name": "临夏县",
+						"latter": "L"
+					},
+					{
+						"name": "康乐县",
+						"latter": "K"
+					},
+					{
+						"name": "永靖县",
+						"latter": "Y"
+					},
+					{
+						"name": "广河县",
+						"latter": "G"
+					},
+					{
+						"name": "和政县",
+						"latter": "H"
+					},
+					{
+						"name": "东乡族自治县",
+						"latter": "D"
+					},
+					{
+						"name": "积石山保安族东乡族撒拉族自治县",
+						"latter": "J"
+					}
+				],
+				"latter": "L"
+			},
+			{
+				"name": "甘南藏族自治州",
+				"children": [{
+						"name": "合作市",
+						"latter": "H"
+					},
+					{
+						"name": "临潭县",
+						"latter": "L"
+					},
+					{
+						"name": "卓尼县",
+						"latter": "Z"
+					},
+					{
+						"name": "舟曲县",
+						"latter": "Z"
+					},
+					{
+						"name": "迭部县",
+						"latter": "D"
+					},
+					{
+						"name": "玛曲县",
+						"latter": "M"
+					},
+					{
+						"name": "碌曲县",
+						"latter": "L"
+					},
+					{
+						"name": "夏河县",
+						"latter": "X"
+					}
+				],
+				"latter": "G"
+			}
+		],
+		"latter": "G"
+	},
+	{
+		"name": "青海省",
+		"children": [{
+				"name": "西宁市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "城东区",
+						"latter": "C"
+					},
+					{
+						"name": "城中区",
+						"latter": "C"
+					},
+					{
+						"name": "城西区",
+						"latter": "C"
+					},
+					{
+						"name": "城北区",
+						"latter": "C"
+					},
+					{
+						"name": "大通回族土族自治县",
+						"latter": "D"
+					},
+					{
+						"name": "湟中县",
+						"latter": "H"
+					},
+					{
+						"name": "湟源县",
+						"latter": "H"
+					}
+				],
+				"latter": "X"
+			},
+			{
+				"name": "海东市",
+				"children": [{
+						"name": "乐都区",
+						"latter": "L"
+					},
+					{
+						"name": "平安县",
+						"latter": "P"
+					},
+					{
+						"name": "民和回族土族自治县",
+						"latter": "M"
+					},
+					{
+						"name": "互助土族自治县",
+						"latter": "H"
+					},
+					{
+						"name": "化隆回族自治县",
+						"latter": "H"
+					},
+					{
+						"name": "循化撒拉族自治县",
+						"latter": "X"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "海北藏族自治州",
+				"children": [{
+						"name": "门源回族自治县",
+						"latter": "M"
+					},
+					{
+						"name": "祁连县",
+						"latter": "Q"
+					},
+					{
+						"name": "海晏县",
+						"latter": "H"
+					},
+					{
+						"name": "刚察县",
+						"latter": "G"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "黄南藏族自治州",
+				"children": [{
+						"name": "同仁县",
+						"latter": "T"
+					},
+					{
+						"name": "尖扎县",
+						"latter": "J"
+					},
+					{
+						"name": "泽库县",
+						"latter": "Z"
+					},
+					{
+						"name": "河南蒙古族自治县",
+						"latter": "H"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "海南藏族自治州",
+				"children": [{
+						"name": "共和县",
+						"latter": "G"
+					},
+					{
+						"name": "同德县",
+						"latter": "T"
+					},
+					{
+						"name": "贵德县",
+						"latter": "G"
+					},
+					{
+						"name": "兴海县",
+						"latter": "X"
+					},
+					{
+						"name": "贵南县",
+						"latter": "G"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "果洛藏族自治州",
+				"children": [{
+						"name": "玛沁县",
+						"latter": "M"
+					},
+					{
+						"name": "班玛县",
+						"latter": "B"
+					},
+					{
+						"name": "甘德县",
+						"latter": "G"
+					},
+					{
+						"name": "达日县",
+						"latter": "D"
+					},
+					{
+						"name": "久治县",
+						"latter": "J"
+					},
+					{
+						"name": "玛多县",
+						"latter": "M"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "玉树藏族自治州",
+				"children": [{
+						"name": "玉树市",
+						"latter": "Y"
+					},
+					{
+						"name": "杂多县",
+						"latter": "Z"
+					},
+					{
+						"name": "称多县",
+						"latter": "C"
+					},
+					{
+						"name": "治多县",
+						"latter": "Z"
+					},
+					{
+						"name": "囊谦县",
+						"latter": "N"
+					},
+					{
+						"name": "曲麻莱县",
+						"latter": "Q"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "海西蒙古族藏族自治州",
+				"children": [{
+						"name": "格尔木市",
+						"latter": "G"
+					},
+					{
+						"name": "德令哈市",
+						"latter": "D"
+					},
+					{
+						"name": "乌兰县",
+						"latter": "W"
+					},
+					{
+						"name": "都兰县",
+						"latter": "D"
+					},
+					{
+						"name": "天峻县",
+						"latter": "T"
+					}
+				],
+				"latter": "H"
+			}
+		],
+		"latter": "Q"
+	},
+	{
+		"name": "宁夏回族自治区",
+		"children": [{
+				"name": "银川市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "兴庆区",
+						"latter": "X"
+					},
+					{
+						"name": "西夏区",
+						"latter": "X"
+					},
+					{
+						"name": "金凤区",
+						"latter": "J"
+					},
+					{
+						"name": "永宁县",
+						"latter": "Y"
+					},
+					{
+						"name": "贺兰县",
+						"latter": "H"
+					},
+					{
+						"name": "灵武市",
+						"latter": "L"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "石嘴山市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "大武口区",
+						"latter": "D"
+					},
+					{
+						"name": "惠农区",
+						"latter": "H"
+					},
+					{
+						"name": "平罗县",
+						"latter": "P"
+					}
+				],
+				"latter": "S"
+			},
+			{
+				"name": "吴忠市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "利通区",
+						"latter": "L"
+					},
+					{
+						"name": "红寺堡区",
+						"latter": "H"
+					},
+					{
+						"name": "盐池县",
+						"latter": "Y"
+					},
+					{
+						"name": "同心县",
+						"latter": "T"
+					},
+					{
+						"name": "青铜峡市",
+						"latter": "Q"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "固原市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "原州区",
+						"latter": "Y"
+					},
+					{
+						"name": "西吉县",
+						"latter": "X"
+					},
+					{
+						"name": "隆德县",
+						"latter": "L"
+					},
+					{
+						"name": "泾源县",
+						"latter": "J"
+					},
+					{
+						"name": "彭阳县",
+						"latter": "P"
+					}
+				],
+				"latter": "G"
+			},
+			{
+				"name": "中卫市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "沙坡头区",
+						"latter": "S"
+					},
+					{
+						"name": "中宁县",
+						"latter": "Z"
+					},
+					{
+						"name": "海原县",
+						"latter": "H"
+					}
+				],
+				"latter": "Z"
+			}
+		],
+		"latter": "N"
+	},
+	{
+		"name": "新疆维吾尔自治区",
+		"children": [{
+				"name": "乌鲁木齐市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "天山区",
+						"latter": "T"
+					},
+					{
+						"name": "沙依巴克区",
+						"latter": "S"
+					},
+					{
+						"name": "新市区",
+						"latter": "X"
+					},
+					{
+						"name": "水磨沟区",
+						"latter": "S"
+					},
+					{
+						"name": "头屯河区",
+						"latter": "T"
+					},
+					{
+						"name": "达坂城区",
+						"latter": "D"
+					},
+					{
+						"name": "米东区",
+						"latter": "M"
+					},
+					{
+						"name": "乌鲁木齐县",
+						"latter": "W"
+					}
+				],
+				"latter": "W"
+			},
+			{
+				"name": "克拉玛依市",
+				"children": [{
+						"name": "市辖区",
+						"latter": "S"
+					},
+					{
+						"name": "独山子区",
+						"latter": "D"
+					},
+					{
+						"name": "克拉玛依区",
+						"latter": "K"
+					},
+					{
+						"name": "白碱滩区",
+						"latter": "B"
+					},
+					{
+						"name": "乌尔禾区",
+						"latter": "W"
+					}
+				],
+				"latter": "K"
+			},
+			{
+				"name": "吐鲁番地区",
+				"children": [{
+						"name": "吐鲁番市",
+						"latter": "T"
+					},
+					{
+						"name": "鄯善县",
+						"latter": "S"
+					},
+					{
+						"name": "托克逊县",
+						"latter": "T"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "哈密地区",
+				"children": [{
+						"name": "哈密市",
+						"latter": "H"
+					},
+					{
+						"name": "巴里坤哈萨克自治县",
+						"latter": "B"
+					},
+					{
+						"name": "伊吾县",
+						"latter": "Y"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "昌吉回族自治州",
+				"children": [{
+						"name": "昌吉市",
+						"latter": "C"
+					},
+					{
+						"name": "阜康市",
+						"latter": "F"
+					},
+					{
+						"name": "呼图壁县",
+						"latter": "H"
+					},
+					{
+						"name": "玛纳斯县",
+						"latter": "M"
+					},
+					{
+						"name": "奇台县",
+						"latter": "Q"
+					},
+					{
+						"name": "吉木萨尔县",
+						"latter": "J"
+					},
+					{
+						"name": "木垒哈萨克自治县",
+						"latter": "M"
+					}
+				],
+				"latter": "C"
+			},
+			{
+				"name": "博尔塔拉蒙古自治州",
+				"children": [{
+						"name": "博乐市",
+						"latter": "B"
+					},
+					{
+						"name": "阿拉山口市",
+						"latter": "A"
+					},
+					{
+						"name": "精河县",
+						"latter": "J"
+					},
+					{
+						"name": "温泉县",
+						"latter": "W"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "巴音郭楞蒙古自治州",
+				"children": [{
+						"name": "库尔勒市",
+						"latter": "K"
+					},
+					{
+						"name": "轮台县",
+						"latter": "L"
+					},
+					{
+						"name": "尉犁县",
+						"latter": "W"
+					},
+					{
+						"name": "若羌县",
+						"latter": "R"
+					},
+					{
+						"name": "且末县",
+						"latter": "Q"
+					},
+					{
+						"name": "焉耆回族自治县",
+						"latter": "Y"
+					},
+					{
+						"name": "和静县",
+						"latter": "H"
+					},
+					{
+						"name": "和硕县",
+						"latter": "H"
+					},
+					{
+						"name": "博湖县",
+						"latter": "B"
+					}
+				],
+				"latter": "B"
+			},
+			{
+				"name": "阿克苏地区",
+				"children": [{
+						"name": "阿克苏市",
+						"latter": "A"
+					},
+					{
+						"name": "温宿县",
+						"latter": "W"
+					},
+					{
+						"name": "库车县",
+						"latter": "K"
+					},
+					{
+						"name": "沙雅县",
+						"latter": "S"
+					},
+					{
+						"name": "新和县",
+						"latter": "X"
+					},
+					{
+						"name": "拜城县",
+						"latter": "B"
+					},
+					{
+						"name": "乌什县",
+						"latter": "W"
+					},
+					{
+						"name": "阿瓦提县",
+						"latter": "A"
+					},
+					{
+						"name": "柯坪县",
+						"latter": "K"
+					}
+				],
+				"latter": "A"
+			},
+			{
+				"name": "克孜勒苏柯尔克孜自治州",
+				"children": [{
+						"name": "阿图什市",
+						"latter": "A"
+					},
+					{
+						"name": "阿克陶县",
+						"latter": "A"
+					},
+					{
+						"name": "阿合奇县",
+						"latter": "A"
+					},
+					{
+						"name": "乌恰县",
+						"latter": "W"
+					}
+				],
+				"latter": "K"
+			},
+			{
+				"name": "喀什地区",
+				"children": [{
+						"name": "喀什市",
+						"latter": "K"
+					},
+					{
+						"name": "疏附县",
+						"latter": "S"
+					},
+					{
+						"name": "疏勒县",
+						"latter": "S"
+					},
+					{
+						"name": "英吉沙县",
+						"latter": "Y"
+					},
+					{
+						"name": "泽普县",
+						"latter": "Z"
+					},
+					{
+						"name": "莎车县",
+						"latter": "S"
+					},
+					{
+						"name": "叶城县",
+						"latter": "Y"
+					},
+					{
+						"name": "麦盖提县",
+						"latter": "M"
+					},
+					{
+						"name": "岳普湖县",
+						"latter": "Y"
+					},
+					{
+						"name": "伽师县",
+						"latter": "Q"
+					},
+					{
+						"name": "巴楚县",
+						"latter": "B"
+					},
+					{
+						"name": "塔什库尔干塔吉克自治县",
+						"latter": "T"
+					}
+				],
+				"latter": "K"
+			},
+			{
+				"name": "和田地区",
+				"children": [{
+						"name": "和田市",
+						"latter": "H"
+					},
+					{
+						"name": "和田县",
+						"latter": "H"
+					},
+					{
+						"name": "墨玉县",
+						"latter": "M"
+					},
+					{
+						"name": "皮山县",
+						"latter": "P"
+					},
+					{
+						"name": "洛浦县",
+						"latter": "L"
+					},
+					{
+						"name": "策勒县",
+						"latter": "C"
+					},
+					{
+						"name": "于田县",
+						"latter": "Y"
+					},
+					{
+						"name": "民丰县",
+						"latter": "M"
+					}
+				],
+				"latter": "H"
+			},
+			{
+				"name": "伊犁哈萨克自治州",
+				"children": [{
+						"name": "伊宁市",
+						"latter": "Y"
+					},
+					{
+						"name": "奎屯市",
+						"latter": "K"
+					},
+					{
+						"name": "伊宁县",
+						"latter": "Y"
+					},
+					{
+						"name": "察布查尔锡伯自治县",
+						"latter": "C"
+					},
+					{
+						"name": "霍城县",
+						"latter": "H"
+					},
+					{
+						"name": "巩留县",
+						"latter": "G"
+					},
+					{
+						"name": "新源县",
+						"latter": "X"
+					},
+					{
+						"name": "昭苏县",
+						"latter": "Z"
+					},
+					{
+						"name": "特克斯县",
+						"latter": "T"
+					},
+					{
+						"name": "尼勒克县",
+						"latter": "N"
+					}
+				],
+				"latter": "Y"
+			},
+			{
+				"name": "塔城地区",
+				"children": [{
+						"name": "塔城市",
+						"latter": "T"
+					},
+					{
+						"name": "乌苏市",
+						"latter": "W"
+					},
+					{
+						"name": "额敏县",
+						"latter": "E"
+					},
+					{
+						"name": "沙湾县",
+						"latter": "S"
+					},
+					{
+						"name": "托里县",
+						"latter": "T"
+					},
+					{
+						"name": "裕民县",
+						"latter": "Y"
+					},
+					{
+						"name": "和布克赛尔蒙古自治县",
+						"latter": "H"
+					}
+				],
+				"latter": "T"
+			},
+			{
+				"name": "阿勒泰地区",
+				"children": [{
+						"name": "阿勒泰市",
+						"latter": "A"
+					},
+					{
+						"name": "布尔津县",
+						"latter": "B"
+					},
+					{
+						"name": "富蕴县",
+						"latter": "F"
+					},
+					{
+						"name": "福海县",
+						"latter": "F"
+					},
+					{
+						"name": "哈巴河县",
+						"latter": "H"
+					},
+					{
+						"name": "青河县",
+						"latter": "Q"
+					},
+					{
+						"name": "吉木乃县",
+						"latter": "J"
+					}
+				],
+				"latter": "A"
+			},
+			{
+				"name": "自治区直辖县级行政区划",
+				"children": [{
+						"name": "石河子市",
+						"latter": "S"
+					},
+					{
+						"name": "阿拉尔市",
+						"latter": "A"
+					},
+					{
+						"name": "图木舒克市",
+						"latter": "T"
+					},
+					{
+						"name": "五家渠市",
+						"latter": "W"
+					}
+				],
+				"latter": "Z"
+			}
+		],
+		"latter": "X"
+	}
+]

+ 14 - 0
components/lee-select-city/hot-cities.json

@@ -0,0 +1,14 @@
+[["台州",["浙江省","台州市"]],
+	["北京", ["北京市"]],
+	["上海", ["上海"]],
+	["广州", ["广东省", "广州市"]],
+	["深圳", ["广东省", "深圳市"]],
+	["杭州", ["浙江省", "杭州市"]],
+	["南京", ["江苏省", "南京市"]],
+	["苏州", ["江苏省", "苏州市"]],
+	["天津", ["天津市"]],
+	["武汉", ["湖北省", "武汉市"]],
+	["长沙", ["湖南省", "长沙市"]],
+	["重庆", ["重庆市"]],
+	["成都", ["四川省", "成都市"]]
+]

+ 83 - 0
components/lee-select-city/lee-latter-list.vue

@@ -0,0 +1,83 @@
+<template>
+	<view class="latter-list">
+		<view class="latter-list-item" v-for="(v, k) in data" :key="k">
+			<view class="latter-list-latter">{{ v[0] }}</view>
+			<view class="plist">
+				<view class="plist-item"
+					v-for="(m, n) of v[1]"
+					:key="n"
+					:class="{ selected: selected === m }"
+					@click="selectHandler(m)"
+				>
+					<text>{{ m.name }}</text>
+					<text class="select-icon">✔</text>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			data: {
+				type: Array,
+				required: true
+			},
+			selected: Object
+		},
+		methods: {
+			selectHandler(item) {
+				this.$emit('select', item)
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	$lee-spacing-base: 30upx;
+	$lee-spacing-large: 40upx;
+	$lee-font-size-caption: 28upx;
+	$lee-text-height: 60upx;
+	
+	.latter-list {
+		&-item {
+			display: flex;
+			&:not(:last-child) {
+				margin-bottom: $lee-spacing-large;
+			}
+		}
+		
+		&-latter {
+			$width: 60upx;
+			width: $width;
+			font-size: $lee-font-size-caption;
+			color: $uni-text-color-grey;
+			line-height: $lee-text-height;
+		}
+	}
+	
+	.plist {
+		flex: 1;
+		width: 0;
+		
+		&-item {
+			height: $lee-text-height;
+			line-height: $lee-text-height;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			
+			&:not(:last-child) {
+				margin-bottom: $lee-spacing-base;
+			}
+			
+			&.selected {
+				color: $uni-color-primary;
+			}
+			&:not(.selected) > .select-icon {
+				display: none;
+			}
+		}
+	}
+</style>

+ 434 - 0
components/lee-select-city/lee-select-city.vue

@@ -0,0 +1,434 @@
+<template>
+	<view class="lee-select-city" :style="{ height }">
+		<!-- 选择提示 -->
+		<view class="lee-select-display" v-if="currentSelected.length">
+			<view class="lee-select-display-item"
+				v-for="(v, k) of currentSelected"
+				:key="k"
+				:class="{ active: currentLevel === k }"
+				@click="skipLevel(k)"
+			>{{ v.name }}</view>
+			<view class="lee-select-display-item"
+				v-if="placeholder">{{ placeholder }}</view>
+		</view>
+		<!-- 选择提示END -->
+		
+		<view class="swiper">
+			<view class="swiper-wrapper" :style="{
+				transform: `translateX(-${100 * currentLevel/3}%)`
+			}">
+				<!-- 省级 -->
+				<scroll-view class="swiper-item" scroll-y>
+					<view class="swiper-content">
+						<!-- 当前定位 -->
+						<block v-if="currentPosition">
+							<view class="caption">
+								<text>当前定位</text>
+								<text class="action" @click="getNewPosition">重新定位</text>
+							</view>
+							<view class="current-position"
+								@click="selectCurrentPosition">
+								{{ currentPosition }}
+							</view>
+						</block>
+						<!-- 当前定位END -->
+						
+						<!-- 热门城市 -->
+						<block v-if="hotCities.length">
+							<view class="caption">热门城市</view>
+							<view class="gird">
+								<view class="gird-item"
+									v-for="(v, k) of hotCities"
+									:key="k"
+								>
+									<view @click="hotCitySelectHandler(v)">{{ v[0] }}</view>
+								</view>
+							</view>
+						</block>
+						<!-- 热门城市END -->
+						<view class="caption">选择省份/地区</view>
+						<lee-latter-list
+							:data="dataByLetter"
+							:selected="currentSelected[0]"
+							@select="selectPro"
+						/>
+					</view>
+				</scroll-view>
+				<!-- 省级END -->
+				
+				<!-- 市级 -->
+				<scroll-view class="swiper-item" scroll-y>
+					<view class="swiper-content">
+						<view class="caption">选择城市</view>
+						<lee-latter-list
+							:data="level2Data"
+							:selected="currentSelected[1]"
+							@select="selectCity"
+						/>
+					</view>
+				</scroll-view>
+				<!-- 市级END -->
+				
+				<!-- 市级 -->
+				<scroll-view class="swiper-item" scroll-y>
+					<view class="swiper-content">
+						<view class="caption">选择区/县</view>
+						<lee-latter-list
+							:data="level3Data"
+							:selected="currentSelected[2]"
+							@select="selectQu"
+						/>
+					</view>
+				</scroll-view>
+				<!-- 市级END -->
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import LeeLatterList from './lee-latter-list.vue'
+	import cityData from './city.json'
+	import hotCities from './hot-cities.json'
+	
+	export default {
+		components: {
+			LeeLatterList
+		},
+		props: {
+			// 容器高度
+			height: {
+				type: String,
+				default: '100%'
+				// default: '100px'
+			},
+			
+			// 城市级联数据
+			data: {
+				type: Array,
+				default: () => JSON.parse(JSON.stringify(cityData))
+			},
+			
+			// 热门城市
+			hotCities: {
+				type: Array,
+				default: () => JSON.parse(JSON.stringify(hotCities))
+			},
+			
+			// 重新定位
+			getPosition: Function,
+			
+			// 默认选择
+			defaultSelected: {
+				type: Array,
+				default: () => []
+			},
+		},
+		data() {
+			const currentSelected = []
+			if (this.defaultSelected) {
+				let current = this.data
+				for (const name of this.defaultSelected) {
+					const item = current.find(v => v.name === name)
+					if (!item) {
+						currentSelected = []
+						break
+					}
+					currentSelected.push(item)
+					current = item.children || []
+				}
+			}
+			
+			return {
+				currentLevel: Math.min(2, this.defaultSelected.length),
+				currentSelected,
+				showPlaceholder: true,
+				currentPosition: null
+			}
+		},
+		computed: {
+			// 获取按Letter分组后的一级列表
+			dataByLetter() {
+				return this.formatByLatter(this.data)
+			},
+			
+			// 当前二级列表
+			level2Data() {
+				const lastLevel = this.currentSelected[0]
+				if (!lastLevel) return []
+				return this.formatByLatter(lastLevel.children || [])
+			},
+			
+			// 当前三级列表
+			level3Data() {
+				const lastLevel = this.currentSelected[1]
+				if (!lastLevel) return []
+				return this.formatByLatter(lastLevel.children || [])
+			},
+			
+			placeholder() {
+				const ln = this.currentSelected.length
+				if (ln === 0) return '请选择地区'
+				if (ln === 1) return '请选择城市'
+				if (ln === 2) return '请选择县'
+				return ''
+			}
+		},
+		async created() {
+			await this.getNewPosition()
+			console.log(this.data)
+		},
+		methods: {
+			// 选择省份
+			selectPro(item) {
+				this.currentSelected = [item]
+				console.log()
+				if (this.level2Data.length) {
+					this.currentLevel = 1
+				} else {
+					this.submit()
+				}
+			},
+			
+			// 选择城市
+			selectCity(item) {
+				this.currentSelected.splice(1)
+				this.$set(this.currentSelected, 1, item)
+				if (this.level3Data.length) {
+					this.currentLevel = 2
+				} else {
+					this.submit()
+				}
+			},
+			
+			// 选择区/县
+			selectQu(item) {
+				this.currentSelected.splice(2)
+				this.$set(this.currentSelected, 2, item)
+				this.submit()
+				this.$store.commit('setChoose',{
+						chooseProvince: this.currentSelected[0].name,
+						chooseCity: this.currentSelected[1].name,
+						chooseDistrict: this.currentSelected[2].name,
+				})
+				// this.$api.prePage().reGetStoreList();
+				
+				uni.switchTab({
+					url: '/pages/index/index'
+				})
+			},
+			
+			// 跳转到指定级数
+			skipLevel(level) {
+				this.currentLevel = level
+			},
+			
+			// 提交当前选择
+			submit() {
+				const selected = this.currentSelected.slice(0)
+				const simple = selected.map(v => v.name)
+				this.$emit('submit', { simple, selected })
+			},
+			
+			// 点击热门城市
+			hotCitySelectHandler(item) {
+				let current = this.data
+				const selected = []
+				for (const v of item[1]) {
+					const node = current.find(m => m.name === v)
+					if (!node) return
+					current = node.children
+					if (!current || current.length === 0) return
+					selected.push(node)
+				}
+				this.currentSelected = selected
+				const nextLevel = selected.length
+				if (
+					(nextLevel === 1 && this.level2Data.length) ||
+					(nextLevel === 2 && this.level3Data.length)
+				) {
+					this.currentLevel = nextLevel
+				} else {
+					this.submit()
+				}
+			},
+			
+			// 使用当前定位
+			selectCurrentPosition() {
+				this.$emit('select-current', this.currentPosition)
+			},
+			// 重新定位
+			async getNewPosition() {
+				if (typeof this.getPosition === 'function') {
+					this.currentPosition = await this.getPosition()
+				}
+			},
+			
+			// 按latter格式化
+			formatByLatter(list) {
+				return list.reduce((map, item) => {
+					if (!item.latter) return map
+					let tmp = map.find(v => v[0] === item.latter)
+					if (!tmp) {
+						tmp = [item.latter, []]
+						map.push(tmp)
+					}
+					tmp[1].push(item)
+					tmp[1].sort((a, b) => {
+						return a.name - b.name
+					})
+					return map
+				}, []).sort((a, b) => {
+					return a[0].charCodeAt(0) - b[0].charCodeAt(0)
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	$lee-spacing-small: 10upx;
+	$lee-spacing-base: 30upx;
+	$lee-spacing-large: 40upx;
+	$lee-font-size-caption: 28upx;
+	$lee-text-height: 60upx;
+	
+	.lee-select-city {
+		display: flex;
+		flex-direction: column;
+		position: relative;
+		background-color: $uni-bg-color;
+	}
+	
+	.swiper {
+		flex: 1;
+		width: 100%;
+		height: 0;
+		overflow: hidden;
+		position: relative;
+		&-wrapper {
+			width: 300%;
+			height: 100%;
+			display: flex;
+			position: relative;
+		}
+		&-item {
+			width: calc(100% / 3);
+			height: 100%;
+			position: relative;
+			box-sizing: border-box;
+		}
+		
+		&-content {
+			position: relative;
+			box-sizing: border-box;
+			padding: $lee-spacing-base;
+			
+			> .caption {
+				color: $uni-text-color-grey;
+				font-size: $lee-font-size-caption;
+				margin-bottom: $lee-spacing-base;
+				
+				> .action {
+					float: right;
+				}
+			}
+		}
+	}
+	
+	// 已选择显示
+	.lee-select-display {
+		padding: $lee-spacing-base;
+		box-shadow: 0 2upx 2upx rgba(0, 0, 0, .15);
+		
+		&-item {
+			$height: 80upx;
+			height: $height;
+			line-height: $height;
+			box-sizing: border-box;
+			padding: 0 $lee-spacing-base;
+			font-size: $lee-font-size-caption;
+			border-left: 1px solid $uni-color-primary;
+			position: relative;
+			
+			&.active {
+				color: $uni-color-primary;
+			}
+			
+			&::before {
+				content: '';
+				top: 0;
+				left: -4upx;
+				width: 8upx;
+				height: 50%;
+				background-color: $uni-bg-color;
+				position: absolute;
+				display: none;
+			}
+			&:first-child::before,
+			&:last-child::before {
+				display: block;
+			}
+			&:last-child::before {
+				top: 50%;
+			}
+			
+			&::after {
+				$size: 14upx;
+				top: 50%;
+				left: 0;
+				content: '';
+				width: $size;
+				height: $size;
+				border-radius: 50%;
+				position: absolute;
+				background-color: $uni-color-primary;
+				transform: translate(-50%, -50%);
+			}
+			&:last-child::after {
+				background-color: $uni-text-color-grey;
+			}
+		}
+	}
+	
+	// 热门城市
+	.gird {
+		$height: 80upx;
+		
+		display: flex;
+		flex-wrap: wrap;
+		position: relative;
+		margin-bottom: $lee-spacing-base;
+		
+		&-item {
+			width: 20%;
+			height: $height;
+			box-sizing: border-box;
+			padding: $lee-spacing-small;
+			
+			> view {
+				width: 100%;
+				height: 100%;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				font-size: $lee-font-size-caption;
+				background-color: $uni-bg-color-hover;
+				border-radius: 8upx;
+			}
+		}
+	}
+	
+	// 当前定位
+	.current-position {
+		$height: 80upx;
+		height: $height;
+		line-height: $height;
+		text-align: center;
+		font-size: $lee-font-size-caption;
+		margin-bottom: $lee-spacing-base;
+		color: $uni-color-primary;
+		background-color: lighten($uni-color-primary, 40%);
+		border-radius: 8upx;
+	}
+</style>

+ 24 - 6
manifest.json

@@ -2,8 +2,8 @@
     "name" : "云力商城",
     "appid" : "__UNI__CB06659",
     "description" : "",
-    "versionName" : "1.3.9",
-    "versionCode" : 139,
+    "versionName" : "1.5.3",
+    "versionCode" : 153,
     "transformPx" : false,
     "app-plus" : {
         /* 5+App特有相关 */
@@ -15,7 +15,8 @@
             "delay" : 0
         },
         "modules" : {
-            "Payment" : {}
+            "Payment" : {},
+            "Maps" : {}
         },
         /* 模块配置 */
         "distribute" : {
@@ -23,10 +24,13 @@
             "android" : {
                 /* android打包配置 */
                 "permissions" : [
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                     "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
                     "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                     "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.INTERNET\"/>",
                     "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
@@ -35,6 +39,12 @@
                     "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                     "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>"
                 ],
+                "permissionExternalStorage" : {
+                    "request" : "none"
+                },
+                "permissionPhoneState" : {
+                    "request" : "none"
+                },
                 "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
                 "autoSdkPermissions" : true
             },
@@ -42,13 +52,21 @@
                 "idfa" : false,
                 "privacyDescription" : {
                     "NSPhotoLibraryUsageDescription" : "使您上传个性化头像",
-                    "NSPhotoLibraryAddUsageDescription" : "使您上传个性化头像"
-                }
+                    "NSPhotoLibraryAddUsageDescription" : "使您上传个性化头像",
+                    "NSCameraUsageDescription" : "使用摄像头可以让你更好的上传个性化头像"
+                },
+                "dSYMs" : false
             },
             /* ios打包配置 */
             "sdkConfigs" : {
                 "maps" : {},
-                "oauth" : {},
+                "oauth" : {
+                    "weixin" : {
+                        "appid" : "wxf5df6dcc18834a18",
+                        "appsecret" : "",
+                        "UniversalLinks" : ""
+                    }
+                },
                 "geolocation" : {},
                 "payment" : {
                     "alipay" : {

+ 111 - 49
pages.json

@@ -1,27 +1,48 @@
 {
 	"pages": [{
+			"path": "pages/store/index",
+			"style": {
+				"navigationBarTitleText": "同城好店"
+			}
+		},
+		{
+			"path": "pages/store/createOrder",
+			"style": {
+				"navigationBarTitleText": "创建订单",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/store/pay",
+			"style": {
+				"navigationBarTitleText": "支付"
+			}
+		},
+		{
+			"path": "pages/merchant/money",
+			"style": {
+				"navigationBarTitleText": "付款记录"
+			}
+		},
+		{
 			"path": "pages/index/index",
 			"style": {
 				"enablePullDownRefresh": true,
-				// #ifdef MP
-				"navigationStyle": "custom",
-				// #endif
-				// #ifndef MP
 				"app-plus": {
-					"titleNView": {
-						"type": "transparent",
-						"searchInput": {
-							"backgroundColor": "rgba(231, 231, 231,.7)",
-							"borderRadius": "16px",
-							"placeholder": "请输入关键字",
-							"disabled": true,
-							"placeholderColor": "#606266",
-							"align": "left"
-						}
-					}
+					"titleNView": false
 				},
-				// #endif
-				"navigationBarTitleText": "商城首页"
+				"navigationBarTitleText": "首购区"
+			}
+		},
+		{
+			"path": "pages/user/user",
+			"style": {
+				"navigationBarTitleText": "个人中心",
+				"app-plus": {
+					"titleNView": false
+				}
 			}
 		},
 		{
@@ -169,6 +190,18 @@
 				}
 			}
 		},
+		{
+			"path": "pages/store/shopDetail",
+			"style": {
+				"navigationBarTitleText": "好店详情"
+			}
+		},
+		{
+			"path": "pages/store/shopList",
+			"style": {
+				"navigationBarTitleText": "好店列表"
+			}
+		},
 		{
 			"path": "pages/set/set",
 			"style": {
@@ -207,14 +240,7 @@
 		}, {
 			"path": "pages/cart/cart",
 			"style": {
-				"navigationBarTitleText": "购物车"
-			}
-		},
-
-		{
-			"path": "pages/user/user",
-			"style": {
-				"navigationBarTitleText": "个人中心"
+				"navigationBarTitleText": "兑换区"
 			}
 		},
 		{
@@ -252,6 +278,12 @@
 				"navigationBarTitleText": "积分明细"
 			}
 		},
+		{
+			"path": "pages/user/barter",
+			"style": {
+				"navigationBarTitleText": "钱明细"
+			}
+		},
 		{
 			"path": "pages/order/order",
 			"style": {
@@ -293,7 +325,50 @@
 			"style": {
 				"navigationBarTitleText": "创建订单"
 			}
-		}, {
+		},
+		{
+			"path": "pages/merchant/merchant",
+			"style": {
+				"navigationBarTitleText": "门店管理"
+
+			}
+		},
+		{
+			"path": "pages/merchant/finance",
+			"style": {
+				"navigationBarTitleText": "店铺财务"
+
+			}
+		},
+		{
+			"path": "pages/merchant/orderDetail",
+			"style": {
+				"navigationBarTitleText": "订单详情"
+
+			}
+		},
+		{
+			"path": "pages/merchant/order",
+			"style": {
+				"navigationBarTitleText": "订单管理"
+
+			}
+		},
+		{
+			"path": "pages/merchant/withdrawal",
+			"style": {
+				"navigationBarTitleText": "营业额提现"
+
+			}
+		},
+		{
+			"path": "pages/merchant/hexiao",
+			"style": {
+				"navigationBarTitleText": "核销"
+
+			}
+		},
+		{
 			"path": "pages/money/pay",
 			"style": {
 				"navigationBarTitleText": "支付"
@@ -337,25 +412,7 @@
 		{
 			"path": "pages/category/category",
 			"style": {
-				// #ifdef APP-PLUS
-				"navigationStyle": "custom",
-				// #endif
-				// #ifndef MP
-				"app-plus": {
-					"bounce": "none",
-					"titleNView": {
-						"searchInput": {
-							"backgroundColor": "rgba(231, 231, 231,.7)",
-							"borderRadius": "16px",
-							"placeholder": "商品搜索",
-							"disabled": true,
-							"placeholderColor": "#606266",
-							"align": "left"
-						}
-					}
-				},
-				// #endif
-				"navigationBarTitleText": "分类"
+				"navigationBarTitleText": "易物区"
 			}
 		},
 		{
@@ -430,27 +487,32 @@
 		"backgroundColor": "#f8f8f8"
 	},
 	"tabBar": {
-		"color": "#C0C4CC",
+		"color": "#333333",
 		"selectedColor": "#5DBC7C",
 		"borderStyle": "black",
 		"backgroundColor": "#ffffff",
 		"list": [{
+				"pagePath": "pages/store/index",
+				"iconPath": "static/tabBar/tab-shop.png",
+				"selectedIconPath": "static/tabBar/tab-shop-current.png",
+				"text": "好店"
+			}, {
 				"pagePath": "pages/index/index",
 				"iconPath": "static/tabBar/tab-home.png",
 				"selectedIconPath": "static/tabBar/tab-home-current.png",
-				"text": "首页"
+				"text": "首购区"
 			},
 			{
 				"pagePath": "pages/category/category",
 				"iconPath": "static/tabBar/tab-cate.png",
 				"selectedIconPath": "static/tabBar/tab-cate-current.png",
-				"text": "分类"
+				"text": "易物区"
 			},
 			{
 				"pagePath": "pages/cart/cart",
 				"iconPath": "static/tabBar/tab-cart.png",
 				"selectedIconPath": "static/tabBar/tab-cart-current.png",
-				"text": "购物车"
+				"text": "兑换区"
 			},
 			{
 				"pagePath": "pages/user/user",

+ 375 - 361
pages/cart/cart.vue

@@ -1,244 +1,121 @@
 <template>
 	<view class="container">
-		<!-- 空白页 -->
-		<view v-if="!hasLogin || empty === true" class="empty">
-			<image src="/static/error/emptyCart.png" class="emptyImg" mode="aspectFit"></image>
-			<view v-if="hasLogin" class="empty-tips">
-				空空如也
-				<navigator class="navigator" v-if="hasLogin" url="../index/index" open-type="switchTab">随便逛逛></navigator>
-			</view>
-			<view v-else class="empty-tips">
-				空空如也
-				<view class="navigator" @click="navToLogin">去登陆></view>
+		<!-- <view class="vheigh"></view> -->
+		<!-- 小程序头部兼容 -->
+		<!-- 顶部logo and 搜索 start-->
+		<view class="top-search flex">
+			<view class="search-box flex" @click="clickSearch()">
+				<image class="search" src="../../static/icon/search-h.png" mode=""></image>
+				<view class="search-font"><input type="text" placeholder="输入关键词搜索" v-model="productname" /></view>
 			</view>
 		</view>
-		<view v-else>
-			<!-- 列表 -->
-			<view class="cart-list">
-				<block v-for="(item, index) in cartList" :key="item.id">
-					<view class="cart-item" :class="{ 'b-b': index !== cartList.length - 1 }">
-						<view class="image-wrapper">
-							<image
-								:src="item.productInfo.image"
-								:class="[item.loaded]"
-								mode="aspectFill"
-								lazy-load
-								@load="onImageLoad('cartList', index)"
-								@error="onImageError('cartList', index)"
-							></image>
-							<view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.checked }" @click="check('item', index)"></view>
+		<!-- 精品 商品 -->
+		<view class="guess-section-box">
+			<view class="guess-section">
+				<view v-for="(item, index) in bastList" :key="index" class="guess-item" @click="navToDetailPage(item)">
+					<view class="image-wrapper"><image :src="item.image" mode="scaleToFill"></image></view>
+					<text class="title clamp margin-c-20">{{ item.store_name }}</text>
+					<view class="cmy-hr margin-c-20">{{ item.price }}元</view>
+					<view class="price margin-c-20 flex">
+						<view>
+							{{ item.price * 1 - item.max_use_integral * 1 }}元
+							<!-- <text class="font-size-sm ">积分</text> -->
 						</view>
-						<view class="item-right">
-							<text class="clamp title">{{ item.productInfo.store_name }}</text>
-							<text class="attr">{{ item.attr_val }}</text>
-							<text class="price">¥{{ item.productInfo.price }}</text>
-							<uni-number-box
-								class="step"
-								:min="1"
-								:max="item.productInfo.stock"
-								:value="item.cart_num > item.productInfo.stock ? item.productInfo.stock : item.cart_num"
-								:isMax="item.cart_num >= item.productInfo.stock ? true : false"
-								:isMin="item.cart_num === 1"
-								:index="index"
-								@eventChange="numberChange"
-							></uni-number-box>
+						<view class="font-size-sm">
+							<text>{{ item.max_use_integral }}积分</text>
 						</view>
-						<text class="del-btn iconfont iconclose" @click="deleteCartItem(index)"></text>
 					</view>
-				</block>
-			</view>
-			<!-- 底部菜单栏 -->
-			<view class="action-section">
-				<view class="checkbox">
-					<view class="iconfont iconroundcheckfill icon-checked-box" @click="check('all')" :class="{ 'icon-checked': allChecked }"></view>
-					<view class="clear-btn" @click="allChecked ? clearCart() : ''" :class="{ show: allChecked }"><text>清空</text></view>
-				</view>
-				<view class="total-box">
-					<text class="price">¥{{ total }}</text>
-					<!-- <text class="coupon">
-						已优惠
-						<text>74.35</text>
-						元
-					</text> -->
 				</view>
-				<button type="primary" class="no-border confirm-btn" @click="createOrder">去结算</button>
 			</view>
 		</view>
 	</view>
 </template>
 
 <script>
-import { getCartList, getCartNum, cartDel } from '@/api/user.js';
-import { mapState } from 'vuex';
-import uniNumberBox from '@/components/uni-number-box.vue';
+import { loadIndexs } from '@/api/index.js';
+import { getUserInfo } from '@/api/user.js';
+import { getProducts } from '@/api/product.js';
 import { saveUrl, interceptor } from '@/utils/loginUtils.js';
+import { mapState } from 'vuex';
+
 export default {
-	components: {
-		uniNumberBox
-	},
 	data() {
 		return {
-			total: 0, //总价格
-			allChecked: false, //全选状态  true|false
-			empty: false, //空白页现实  true|false
-			cartList: []
+			pageProportion: 0, //保存页面基于750宽度的比例
+			swiperHeight: 0,
+			checkid: 0,
+			titleNViewBackground: '',
+			bastList: [], //精品推荐列表
+			page: 1,
+			limit: 10,
+			productname: '',
+			loadingType: 'more' //加载更多状态
 		};
 	},
-	onShow() {
-		// 只有登录时才加载数据
-		if (this.hasLogin) {
-			this.loadData();
-		}
+	computed: {
+		...mapState(['loginInterceptor']),
+		...mapState('user', ['hasLogin', 'userInfo'])
 	},
-	watch: {
-		//显示空白页
-		cartList(e) {
-			let empty = e.length === 0 ? true : false;
-			if (this.empty !== empty) {
-				this.empty = empty;
-			}
-		}
+	onLoad: function(option) {},
+	onShow: function() {
+		this.productname = '';
+		this.loadingType = 'more';
+		this.page = 1;
+		this.bastList = []; //精品推荐列表
+		this.loadData();
 	},
-	computed: {
-		...mapState('user', ['hasLogin'])
+	onReachBottom() {
+		this.loadData();
 	},
 	methods: {
-		//请求数据
-		async loadData() {
-			let obj = this;
-			getCartList({})
-				.then(function(e) {
-					console.log(e+"111");
-					// 获取当前购物车物品增加数量
-					let nub = obj.cartList.length;
-					// 获取之前对象数组
-					let aArray = obj.cartList.reverse();
-					// 获取返回数据对象数组
-					let bArray = e.data.valid.reverse();
-					obj.cartList = bArray
-						.map((item, ind) => {
-							// 设置返回数据默认为勾选状态
-							item.checked = true;
-							// 获取相同数组之前对象的数据
-							let carlist = aArray[ind];
-							// 判断之前是否已经加载完毕
-							if (carlist && carlist.loaded == 'loaded') {
-								item.loaded = 'loaded';
-							}
-							return item;
-						})
-						.reverse();
-					obj.calcTotal(); //计算总价
-				})
-				.catch(function(e) {
-					console.log(e);
-				});
-		},
-		//监听image加载完成
-		onImageLoad(key, index) {
-			// 修改载入完成后图片class样式
-			this.$set(this[key][index], 'loaded', 'loaded');
-		},
-		//监听image加载失败
-		onImageError(key, index) {
-			this[key][index].image = '/static/error/errorImage.jpg';
+		// 监听切换事件
+		listChange(e) {
+			this.checkid = e.detail.current;
 		},
-		// 跳转到登录页
-		navToLogin() {
-			// 保存地址
-			saveUrl();
-			// 登录拦截
-			interceptor();
-		},
-		//选中状态处理
-		check(type, index) {
-			if (type === 'item') {
-				this.cartList[index].checked = !this.cartList[index].checked;
-			} else {
-				const checked = !this.allChecked;
-				const list = this.cartList;
-				list.forEach(item => {
-					item.checked = checked;
-				});
-				this.allChecked = checked;
-			}
-			this.calcTotal(type);
-		},
-		//数量
-		numberChange(data) {
-			let arr = this.cartList[data.index];
-			arr.cart_num = data.number;
-			getCartNum({ id: arr.id, number: data.number })
-				.then(e => {
-					console.log(e);
-				})
-				.catch(function(e) {
-					console.log(e);
-				});
-			this.calcTotal();
-		},
-		//删除
-		deleteCartItem(index) {
-			let list = this.cartList;
-			let row = list[index];
-			let id = row.id;
-			cartDel({
-				ids: id
-			});
-			this.cartList.splice(index, 1);
-			uni.hideLoading();
-			this.calcTotal();
-		},
-		//清空
-		clearCart() {
-			uni.showModal({
-				content: '清空购物车?',
-				success: e => {
-					if (e.confirm) {
-						let st = this.cartList.map(e => {
-							return e.id;
-						});
-						cartDel({
-							ids: st.join(',')
-						}).then(e => {
-							console.log(e);
-						});
-						this.cartList = [];
-					}
-				}
-			});
+		// 點擊搜索框
+		clickSearch() {
+			this.bastList = [];
+			this.page = 1;
+			this.limit = 10;
+			this.loadingType = 'more';
+			this.loadData();
 		},
-		//计算总价
-		calcTotal() {
-			let list = this.cartList;
-			if (list.length === 0) {
-				this.empty = true;
+		// 请求载入数据
+		async loadData() {
+			let obj = this;
+			if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
 				return;
 			}
-			let total = 0;
-			let checked = true;
-			list.forEach(item => {
-				if (item.checked === true) {
-					total += item.productInfo.price * item.cart_num;
-				} else if (checked === true) {
-					checked = false;
+			obj.loadingType = 'loading';
+			let data = {
+				page: obj.page,
+				limit: obj.limit,
+				keyword: obj.productname,
+				sid: 2
+			};
+			getProducts(data).then(function(e) {
+				console.log(e.data);
+				obj.bastList = obj.bastList.concat(e.data);
+				//判断是否还有下一页,有是more  没有是nomore
+				if (obj.limit == e.data.length) {
+					obj.page++;
+					obj.loadingType = 'more';
+				} else {
+					obj.loadingType = 'nomore';
 				}
 			});
-			this.allChecked = checked;
-			this.total = Number(total.toFixed(2));
 		},
-		//创建订单
-		createOrder() {
-			let list = this.cartList;
-			let goodsData = [];
-			list.forEach(item => {
-				if (item.checked) {
-					goodsData.push(item.id);
-				}
-			});
-
+		//轮播图切换修改背景色
+		swiperChange(e) {
+			const index = e.detail.current;
+			this.swiperCurrent = index;
+			this.titleNViewBackground = this.carouselList[index].background;
+		},
+		//详情页
+		navToDetailPage(item) {
+			let id = item.id;
 			uni.navigateTo({
-				url: '/pages/order/createOrder?id=' + goodsData.join(',')
+				url: '/pages/product/product?id=' + id
 			});
 		}
 	}
@@ -246,185 +123,322 @@ export default {
 </script>
 
 <style lang="scss">
-.container {
-	padding-bottom: 134rpx;
-	background-color: $page-color-base;
-	/* 空白页 */
-	.empty {
-		position: fixed;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 100vh;
-		padding-bottom: 100rpx;
-		display: flex;
+page {
+	.cate-section {
+		position: relative;
+		z-index: 5;
+		border-radius: 16rpx 16rpx 0 0;
+		margin-top: -20rpx;
+	}
+}
+
+page {
+	background: #f7f8f7;
+}
+.top-search {
+	height: 80rpx;
+	padding: 0 20rpx;
+	background-color: #fff;
+	.search-box {
 		justify-content: center;
-		flex-direction: column;
-		align-items: center;
-		background: #fff;
-		.emptyImg {
-			width: 300rpx;
-			height: 250rpx;
-			margin-bottom: 30rpx;
+		width: 698rpx;
+		height: 60rpx;
+		background: #eeeeee;
+		// box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
+		border-radius: 30rpx;
+
+		.search {
+			width: 34rpx;
+			height: 34rpx;
 		}
-		.empty-tips {
-			display: flex;
-			font-size: $font-sm + 2rpx;
-			color: $font-color-disabled;
-			.navigator {
-				color: $uni-color-primary;
-				margin-left: 16rpx;
-			}
+
+		.search-font {
+			width: 500rpx;
+			margin-left: 14rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #cbcbcb;
 		}
 	}
 }
-/* 购物车列表项 */
-.cart-item {
-	display: flex;
-	position: relative;
-	padding: 30rpx 40rpx;
-	.image-wrapper {
-		width: 230rpx;
-		height: 230rpx;
-		flex-shrink: 0;
-		position: relative;
+// 顶部轮播图
+.top-swiper {
+	width: 750rpx;
+	height: 360rpx;
+	// margin: 20rpx 0 0;
+	image {
+		width: 750rpx;
+		height: 360rpx;
+	}
+}
+.swiper-btm {
+	height: 60rpx;
+	width: 750rpx;
+	background-color: #fff;
+	margin-bottom: 20rpx;
+	font-size: 21rpx;
+	font-weight: 500;
+	color: #333333;
+	.btm-item {
+		flex-grow: 1;
+		justify-content: center;
 		image {
-			border-radius: 8rpx;
+			width: 25rpx;
+			height: 25rpx;
+			margin-right: 14rpx;
 		}
 	}
-	.checkbox {
-		position: absolute;
-		left: -16rpx;
-		top: -16rpx;
-		z-index: 8;
-		font-size: 44rpx;
-		line-height: 1;
-		padding: 4rpx;
-		color: $font-color-disabled;
-		background: #fff;
-		border-radius: 50px;
-	}
-	.item-right {
+}
+/* 分类 */
+.cate-section {
+	display: flex;
+	justify-content: space-around;
+	align-items: center;
+	flex-wrap: wrap;
+	padding: 30rpx 22rpx;
+	.cate-item {
 		display: flex;
 		flex-direction: column;
-		flex: 1;
-		overflow: hidden;
-		position: relative;
-		padding-left: 30rpx;
-		.title,
-		.price {
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			height: 40rpx;
-			line-height: 40rpx;
-		}
-		.attr {
-			font-size: $font-sm + 2rpx;
-			color: $font-color-light;
-			height: 50rpx;
-			line-height: 50rpx;
-		}
-		.price {
-			height: 50rpx;
-			line-height: 50rpx;
-		}
-		.step {
-			margin-top: 20rpx;
-		}
+		align-items: center;
+		font-size: $font-sm + 2rpx;
+		color: $font-color-dark;
 	}
-	.del-btn {
-		padding: 4rpx 10rpx;
-		font-size: 34rpx;
-		height: 50rpx;
-		color: $font-color-light;
+	/* 原图标颜色太深,不想改图了,所以加了透明度 */
+	image {
+		width: 88rpx;
+		height: 88rpx;
+		margin-bottom: 14rpx;
+		border-radius: 50%;
+		opacity: 0.7;
 	}
 }
-/* 底部栏 */
-.action-section {
-	/* #ifdef H5 */
-	margin-bottom: 100rpx;
-	/* #endif */
-	position: fixed;
-	left: 30rpx;
-	bottom: 30rpx;
-	z-index: 95;
+/*公用边框样式*/
+%icon {
+	margin-right: 10rpx;
+	display: inline-block;
+	padding: 2rpx 10rpx;
+	border: 1rpx solid $color-yellow;
+	color: $color-yellow;
+	line-height: 1;
+	font-size: $font-base;
+	border-radius: 10rpx;
+}
+.vheigh {
+	height: var(--status-bar-height);
+}
+
+/* 猜你喜欢 */
+.guess-section {
 	display: flex;
-	align-items: center;
-	width: 690rpx;
-	height: 100rpx;
+	flex-wrap: wrap;
 	padding: 0 30rpx;
-	background: rgba(255, 255, 255, 0.9);
-	box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
-	border-radius: 16rpx;
-	.checkbox {
-		height: 52rpx;
-		position: relative;
-		.icon-checked-box {
-			border-radius: 50rpx;
-			background-color: #ffffff;
-			width: 52rpx;
-			height: 100%;
-			position: relative;
-			z-index: 5;
-			font-size: 53rpx;
-			line-height: 1;
-			color: $font-color-light;
+	.guess-item {
+		overflow: hidden;
+		display: flex;
+		flex-direction: column;
+		width: 48%;
+		margin-bottom: 4%;
+		border-radius: $border-radius-sm;
+		background-color: white;
+		box-shadow: $box-shadow;
+		&:nth-child(2n + 1) {
+			margin-right: 4%;
 		}
-		.icon-checked {
-			color: $base-color;
+	}
+	.image-wrapper {
+		width: 100%;
+		height: 330rpx;
+		border-radius: 3px;
+		overflow: hidden;
+		image {
+			width: 100%;
+			height: 100%;
+			opacity: 1;
 		}
 	}
-	.clear-btn {
-		position: absolute;
-		left: 26rpx;
-		top: 0;
-		z-index: 4;
-		width: 0;
-		height: 52rpx;
-		line-height: 52rpx;
-		padding-left: 38rpx;
+	.title {
 		font-size: $font-base;
-		color: #fff;
-		background: $font-color-disabled;
-		border-radius: 0 50px 50px 0;
-		opacity: 0;
-		transition: 0.2s;
-		&.show {
-			opacity: 1;
-			width: 120rpx;
+		color: $font-color-dark;
+		font-weight: bold;
+		line-height: 80rpx;
+	}
+	.price {
+		font-size: $font-lg;
+		color: $font-color-base;
+		font-weight: bold;
+		line-height: 1;
+		line-height: 80rpx;
+	}
+
+	.icon {
+		@extend %icon;
+	}
+
+	.detail {
+		line-height: 1;
+	}
+	.tip {
+		color: white;
+		background-color: $color-yellow;
+		line-height: 1.5;
+		font-size: $font-sm;
+		padding-left: 20rpx;
+	}
+	.cmy-hr {
+		color: #ff0000;
+		text-decoration: line-through;
+	}
+}
+
+// 推荐
+.recommend {
+	width: 95%;
+	height: 155rpx;
+	margin: 0rpx auto;
+	padding-top: 30rpx;
+	font-size: 26rpx;
+	text-align: center;
+	color: #333333;
+	align-items: flex-start;
+
+	.recommend_list {
+		width: 33%;
+	}
+	.re_title {
+		font-size: 32rpx;
+		font-weight: bold;
+	}
+	.re_name {
+		color: #999999;
+		padding-top: 10rpx;
+	}
+	.selected_icon {
+		width: 25rpx;
+		height: 10rpx;
+		margin: 0px auto;
+		display: none;
+		image {
+			width: 100%;
+			height: 100%;
 		}
 	}
-	.total-box {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		text-align: right;
-		padding-right: 40rpx;
-		.price {
-			font-size: $font-lg;
-			color: $font-color-dark;
+	.active {
+		display: block;
+	}
+	.active_color {
+		color: #dc4d46 !important;
+	}
+}
+
+// 列表
+.list-box-h {
+	height: 1550rpx;
+}
+// 优惠券
+.coupon-list {
+	display: inline-block;
+}
+.row {
+	border-radius: 15rpx;
+	margin: 25rpx;
+	height: 155rpx;
+	// width: 552rpx;
+	overflow: hidden;
+	background-color: #ffffff;
+	padding-right: 25rpx;
+	.list-interval {
+		border: 1px dashed $border-color-light;
+		height: 100%;
+		.top,
+		.bottom {
+			border-radius: 100rpx;
+			width: 30rpx;
+			height: 30rpx;
+			position: absolute;
+			background-color: $page-color-base;
+			right: -15rpx;
 		}
-		.coupon {
-			font-size: $font-sm;
+		.top {
+			top: -18rpx;
+		}
+		.bottom {
+			bottom: -18rpx;
+		}
+	}
+	.list-money {
+		height: 100%;
+		min-width: 155rpx;
+		text-align: center;
+		image {
+			height: 100%;
+			width: 20rpx;
+		}
+		.list-money-text {
+			flex-grow: 1;
+			padding: 0 25rpx;
+			.tit {
+				text-align: center;
+				padding: 15rpx 0rpx;
+				font-size: 55rpx;
+				color: $color-red;
+				font-weight: bold;
+				&.noAction {
+					color: $font-color-light;
+				}
+			}
+			.price {
+				padding-bottom: 25rpx;
+				color: $font-color-light;
+			}
+		}
+	}
+	.row_list_right {
+		// flex-grow: 1;
+		min-width: 200rpx;
+		padding-left: 25rpx;
+		line-height: 1;
+		.right_time {
+			padding: 10rpx 0rpx;
 			color: $font-color-light;
-			text {
-				color: $font-color-dark;
+			font-size: $font-sm;
+		}
+		.right_top {
+			margin: 15rpx 0;
+			.right_name {
+				font-size: $font-base;
+				color: #bc253a;
+				font-weight: bold;
+			}
+			.right_title {
+				font-size: $font-base;
+				color: $font-base;
+				font-weight: bold;
+				&.noAction {
+					color: $font-color-light;
+				}
 			}
 		}
 	}
-	.confirm-btn {
-		padding: 0 38rpx;
-		margin: 0;
-		border-radius: 100px;
-		height: 76rpx;
-		line-height: 76rpx;
-		font-size: $font-base + 2rpx;
-		background: $base-color;
+	.right_use {
+		margin: 15rpx 0;
+		padding: 10rpx;
+		width: 160rpx;
+		text-align: center;
+		color: #fff;
+		background-color: #bc253a;
+		border-radius: 50rpx;
+		font-size: $font-sm;
+		&.noAction {
+			background-color: $font-color-light;
+		}
+	}
+	.iconlocation {
+		font-size: 36rpx;
+		color: $font-color-light;
 	}
 }
-/* 复选框选中状态 */
-.action-section .checkbox.checked,
-.cart-item .checkbox.checked {
-	color: $base-color;
+.guess-section-box {
+	margin-top: 20rpx;
 }
 </style>

+ 478 - 152
pages/category/category.vue

@@ -1,126 +1,182 @@
 <template>
-	<view class="content">
-		<scroll-view scroll-y class="left-aside">
-			<view v-for="item in flist" :key="item.id" class="f-item b-b" :class="{ active: item.id === currentId }" @click="tabtap(item)">{{ item.cate_name }}</view>
-		</scroll-view>
-		<scroll-view scroll-with-animation scroll-y class="right-aside" @scroll="asideScroll" :scroll-top="tabScrollTop">
-			<view v-for="item in flist" :key="item.id" class="s-list" :id="'main-' + item.id">
-				<text class="s-item">{{ item.cate_name }}</text>
-				<view class="t-list ">
-					<view @click="navToList(item.id, titem.id)" class="t-item" v-for="titem in item.children" :key="titem.id">
-						<image :src="titem.pic"></image>
-						<text>{{ titem.cate_name }}</text>
+	<view class="container">
+		<!-- <view class="vheigh"></view> -->
+		<!-- 小程序头部兼容 -->
+		<!-- 顶部logo and 搜索 start-->
+		<view class="top-search flex">
+			<view class="search-box flex" @click="clickSearch()">
+				<image class="search" src="../../static/icon/search-h.png" mode=""></image>
+				<view class="search-font"><input type="text" placeholder="输入关键词搜索" v-model="productname" /></view>
+			</view>
+		</view>
+		<view class="tabbar"><image src="../../static/img/banner.png" mode=""></image></view>
+		<!-- 精品 商品 -->
+		<view class="scroll-view flex-tpl" :style="{ height: pageHeight }">
+			<scroll-view scroll-y class="left-aside">
+				<view v-for="item in flist" class="f-item" :class="{ active_top: item.id == erjiid }" @click="changeSlist(item.id)">{{ item.cate_name }}</view>
+			</scroll-view>
+			<scroll-view :scroll-with-animation="scrollAnimation" scroll-y class="right-aside" @scroll="loadData()">
+				<view class="tlist-box" v-for="ls in bastList" :id="'main-' + ls.id">
+					<view class="tlist-list flex_item" @click="navToDetailPage(ls)">
+						<view class="tlist-img">
+							<view class="img"><image :src="ls.image" :lazy-load="true" mode="scaleToFill"></image></view>
+						</view>
+						<view class="sell-out" v-if="ls.stock == 0"><text>已售罄</text></view>
+						<view class="tlist-info">
+							<view class="tlist-tip">
+								<view class="ywyw">以物易物</view>
+								<view class="bmhw">必买好物</view>
+							</view>
+							<view class="name ellipsis">{{ ls.store_name }}</view>
+							<view class="tlist-price flex">
+								<view class="price-box">
+									<view class="price">
+										¥
+										<text class="blod">{{ ls.price }}</text>
+										<text class="fen" v-if="ls.unit_name">/{{ ls.unit_name }}</text>
+									</view>
+								</view>
+								<view class="btn">立即购买</view>
+							</view>
+							<view class="bottom_border"></view>
+						</view>
 					</view>
 				</view>
-			</view>
-		</scroll-view>
+			</scroll-view>
+		</view>
 	</view>
 </template>
 
 <script>
-import { getCategoryList } from '@/api/product.js';
+import { loadIndexs } from '@/api/index.js';
+import { getUserInfo } from '@/api/user.js';
+import { getProducts, getCategoryList } from '@/api/product.js';
+import { saveUrl, interceptor } from '@/utils/loginUtils.js';
+import { mapState } from 'vuex';
+
 export default {
 	data() {
 		return {
-			sizeCalcState: false,
-			tabScrollTop: 0,
-			currentId: 9,
-			flist: [],
+			scrollAnimation: true, //是否开启动画
+			bastList: [], //精品推荐列表
+			pageHeight: 0, //保存滚轮页面高度
+			flist: [], //一级分类列表
+			erjiid: '', //二级选择id
+			page: 1,
+			limit: 10,
+			productname: '',
+			loadingType: 'more' //加载更多状态
 		};
 	},
-	onLoad() {
-		this.loadData();
+	computed: {
+		...mapState(['loginInterceptor']),
+		...mapState('user', ['hasLogin', 'userInfo'])
 	},
-	// 监听导航栏输入框点击事件
-	onNavigationBarSearchInputClicked(e) {
-		uni.navigateTo({
-			url: '/pages/product/search'
+	onReady(res) {
+		// 初始化获取页面宽度
+		var _this = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.scroll-view').boundingClientRect();
+				query.exec(function(res) {
+					_this.pageHeight = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.pageHeight);
+				});
+			},
+			fail: res => {}
 		});
 	},
+	onLoad: function(option) {},
+	onShow: function() {
+		this.productname = '';
+		this.loadingType = 'more';
+		this.page = 1;
+		this.bastList = []; //精品推荐列表
+		this.flist = [];
+		// this.loadData();
+		this.categoryList();
+	},
+	onReachBottom() {
+		this.loadData();
+	},
 	methods: {
-		// 载入数据
-		async loadData() {
-			let obj = this;
-			getCategoryList({})
-				.then(({ data }) => {
-					obj.flist = data.map(function(s) {
-						return s;
-					});
-				})
-				.catch(err => {
-					console.log(err);
+		categoryList() {
+			getCategoryList({}).then(({ data }) => {
+				data.forEach(e => {
+					if (e.id == 9) {
+						this.flist = e.children;
+						this.erjiid = this.flist[0].id;
+						console.log(this.flist, this.erjiid, 'shuj');
+					}
 				});
+				this.loadData();
+			});
 		},
-		//一级分类点击
-		tabtap(item) {
-			console.log(item);
-			// 判断有没有初始化页面高度对象数据
-			if (!this.sizeCalcState) {
-				this.calcSize();
-			}
-			// 获取当前点击的id
-			this.currentId = item.id;
-			console.log(item.top);
-			this.tabScrollTop = item.top;
-			console.log(this.tabScrollTop);
+		changeSlist(id) {
+			this.bastList = [];
+			this.page = 1;
+			this.limit = 10;
+			this.loadingType = 'more';
+			this.erjiid = id;
+			this.loadData();
 		},
-		//右侧栏滚动
-		asideScroll(e) {
-			// 判断有没有初始化页面高度对象数据
-			if (!this.sizeCalcState) {
-				this.calcSize();
+		// 點擊搜索框
+		clickSearch() {
+			this.bastList = [];
+			this.page = 1;
+			this.limit = 10;
+			this.loadingType = 'more';
+			this.loadData();
+		},
+		// 请求载入数据
+		async loadData() {
+			let obj = this;
+			if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
+				return;
 			}
-			let scrollTop = e.detail.scrollTop;
-			let box = 0; //列表包裹框高度初始化
-			let bottom = 10; //距离页面底部多少像素左侧列表切换到最后一个一级分类
-			// 查询当前页面对象
-			let view = uni.createSelectorQuery().select('.content');
-			view.fields(
-				{
-					id: true,
-					dataset: true,
-					rect: true,
-					size: true,
-					scrollOffset: true
-				},
-				function(e) {
-					// 保存包裹框高度
-					box = e.height;
-				}
-			).exec();
-			// 获取所有距离顶部大于滚轮距离页面高度的所有分类
-			let tabs = this.flist.filter(item =>( item.top-10) <= scrollTop).reverse();
-			if (tabs.length > 0) {
-				// 判断是否已经到达滚轮底部
-				if (box + scrollTop + bottom >= e.detail.scrollHeight) {
-					this.currentId = this.flist[this.flist.length - 1].id;
+			obj.loadingType = 'loading';
+			let data = {
+				page: obj.page,
+				limit: obj.limit,
+				keyword: obj.productname,
+				sid: obj.erjiid
+			};
+			getProducts(data).then(function(e) {
+				obj.bastList = obj.bastList.concat(e.data);
+				//判断是否还有下一页,有是more  没有是nomore
+				if (obj.limit == e.data.length) {
+					obj.page++;
+					obj.loadingType = 'more';
 				} else {
-					this.currentId = tabs[0].id;
+					obj.loadingType = 'nomore';
 				}
-			}
+			});
 		},
-		//计算右侧栏每个tab的高度等信息
-		calcSize() {
-			let h = 0;
-			this.flist.forEach(item => {
-				let view = uni.createSelectorQuery().select('#main-' + item.id);
-				view.fields(
-					{
-						size: true
-					},
-					data => {
-						item.top = h;
-						h += data.height;
-						item.bottom = h;
-					}
-				).exec();
+		//轮播图切换修改背景色
+		swiperChange(e) {
+			const index = e.detail.current;
+			this.swiperCurrent = index;
+			this.titleNViewBackground = this.carouselList[index].background;
+		},
+		//详情页
+		navToDetailPage(item) {
+			let id = item.id;
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + id + '&isyw=1'
 			});
-			this.sizeCalcState = true;
 		},
-		navToList(sid, tid) {
-			// 点击导航跳转到详细页面
+
+		// 轮播图跳转
+		bannerNavToUrl(item) {
+			// #ifdef H5
+			if (item.wap_url.indexOf('http') > 0) {
+				window.location.href = item.wap_url;
+			}
+			// #endif
+			//测试数据没有写id,用title代替
 			uni.navigateTo({
-				url: '/pages/product/list?fid='+this.currentId+'&sid='+sid+'&tid='+tid
+				url: item.wap_url
 			});
 		}
 	}
@@ -128,89 +184,359 @@ export default {
 </script>
 
 <style lang="scss">
-page,
-.content {
-	height: 100%;
-	background-color: #f8f8f8;
+page {
+	.cate-section {
+		position: relative;
+		z-index: 5;
+		border-radius: 16rpx 16rpx 0 0;
+		margin-top: -20rpx;
+	}
 }
 
-.content {
-	display: flex;
+page {
+	background: #f7f8f7;
 }
-.left-aside {
-	flex-shrink: 0;
-	width: 200rpx;
-	height: 100%;
+.top-search {
+	height: 80rpx;
+	padding: 0 20rpx;
+	background-color: #fff;
+	.search-box {
+		justify-content: center;
+		width: 698rpx;
+		height: 60rpx;
+		background: #eeeeee;
+		// box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
+		border-radius: 30rpx;
+
+		.search {
+			width: 34rpx;
+			height: 34rpx;
+		}
+
+		.search-font {
+			width: 500rpx;
+			margin-left: 14rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #cbcbcb;
+		}
+	}
+}
+// 顶部轮播图
+.top-swiper {
+	width: 750rpx;
+	height: 360rpx;
+	// margin: 20rpx 0 0;
+	image {
+		width: 750rpx;
+		height: 360rpx;
+	}
+}
+.swiper-btm {
+	height: 60rpx;
+	width: 750rpx;
 	background-color: #fff;
+	margin-bottom: 20rpx;
+	font-size: 21rpx;
+	font-weight: 500;
+	color: #333333;
+	.btm-item {
+		flex-grow: 1;
+		justify-content: center;
+		image {
+			width: 25rpx;
+			height: 25rpx;
+			margin-right: 14rpx;
+		}
+	}
+}
+.tabbar {
+	margin: 18rpx auto 0;
+	width: 720rpx;
+	height: 272rpx;
+	image {
+		width: 100%;
+		height: 100%;
+	}
+}
+/* 分类 */
+.cate-section {
+	display: flex;
+	justify-content: space-around;
+	align-items: center;
+	flex-wrap: wrap;
+	padding: 30rpx 22rpx;
+	.cate-item {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		font-size: $font-sm + 2rpx;
+		color: $font-color-dark;
+	}
+	/* 原图标颜色太深,不想改图了,所以加了透明度 */
+	image {
+		width: 88rpx;
+		height: 88rpx;
+		margin-bottom: 14rpx;
+		border-radius: 50%;
+		opacity: 0.7;
+	}
+}
+/*公用边框样式*/
+%icon {
+	margin-right: 10rpx;
+	display: inline-block;
+	padding: 2rpx 10rpx;
+	border: 1rpx solid $color-yellow;
+	color: $color-yellow;
+	line-height: 1;
+	font-size: $font-base;
+	border-radius: 10rpx;
+}
+.vheigh {
+	height: var(--status-bar-height);
+}
+
+.flex-tpl {
+	display: flex;
+	justify-content: space-between;
+}
+.scroll-view {
+	margin-top: 15rpx;
+	.left-aside {
+		flex-shrink: 0;
+		width: 180rpx;
+		height: 100%;
+		background: #f2f2f2;
+		overflow: hidden;
+		display: block;
+		overflow-y: scroll;
+	}
 }
 .f-item {
 	display: flex;
 	align-items: center;
 	justify-content: center;
-	width: 100%;
+	width: 180rpx;
 	height: 100rpx;
-	font-size: 28rpx;
+	font-size: 24rpx;
 	color: $font-color-base;
 	position: relative;
-	&.active {
-		color: $base-color;
-		background: #f8f8f8;
+	&.active_top {
+		background: #ffffff;
+		font-size: 26rpx;
+		font-weight: 500;
+		color: rgba(51, 51, 51, 1);
 		&:before {
 			content: '';
 			position: absolute;
 			left: 0;
 			top: 50%;
 			transform: translateY(-50%);
-			height: 36rpx;
+			height: 100rpx;
 			width: 8rpx;
-			background-color: $base-color;
+			background-color: #fd377a;
 			border-radius: 0 4px 4px 0;
 			opacity: 0.8;
 		}
 	}
 }
-
 .right-aside {
-	flex: 1;
 	overflow: hidden;
-	padding-left: 20rpx;
-	padding-right: 20rpx;
-}
-.s-item {
-	display: flex;
-	align-items: center;
-	height: 70rpx;
-	padding-top: 8rpx;
-	font-size: 28rpx;
-	color: $font-color-dark;
-}
-.t-list {
-	display: flex;
-	flex-wrap: wrap;
-	border-radius: 15rpx;
+	padding: 0rpx 20rpx;
+	height: 100%;
+	display: block;
+	overflow-y: scroll;
 	width: 100%;
-	background: #fff;
-	padding-top: 12rpx;
-	&:after {
-		content: '';
-		flex: 99;
-		height: 0;
+	.image {
+		width: 100%;
+		padding-bottom: 15rpx;
+		.imageLV {
+			width: 100%;
+			height: 200rpx;
+		}
 	}
-}
-.t-item {
-	flex-shrink: 0;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	flex-direction: column;
-	width: 171rpx;
-	font-size: 26rpx;
-	color: #666;
-	padding-bottom: 20rpx;
-
-	image {
-		width: 140rpx;
-		height: 140rpx;
+	.tlist-box {
+		.tlistname {
+			font-size: 24rpx;
+			padding: 25rpx 25rpx;
+			border-top: 2rpx solid rgba(238, 238, 238, 1);
+			border-bottom: 2rpx solid rgba(238, 238, 238, 1);
+		}
+		.tlist-list.flex_item {
+			height: 0;
+			min-height: 230rpx;
+			align-items: stretch;
+		}
+		.tlist-list {
+			padding: 25rpx 0rpx;
+			position: relative;
+			.tlist-img {
+				width: 169rpx;
+				position: relative;
+				.img {
+					width: 169rpx;
+					height: 169rpx;
+					image {
+						width: 169rpx;
+						height: 169rpx;
+					}
+				}
+				.stock {
+					margin-top: 13rpx;
+					font-size: 26rpx;
+					background: #fff1ee;
+					width: 100%;
+					color: #fb4912;
+					padding: 6rpx 0;
+					border-radius: 5rpx;
+					justify-content: center;
+					align-items: center;
+					position: absolute;
+					left: 0;
+					bottom: 0;
+					.img {
+						width: 20rpx;
+						height: 20rpx;
+						flex-shrink: 0;
+					}
+					.stock-num {
+						padding-left: 7rpx;
+						font-size: 22rpx;
+						border-radius: 5rpx;
+						height: 32rpx;
+						line-height: 32rpx;
+					}
+				}
+			}
+			.sell-out {
+				position: absolute;
+				width: 169rpx;
+				height: 190rpx;
+				background: rgba(255, 255, 255, 0.4);
+				text-align: center;
+				text {
+					line-height: 190rpx;
+					background: rgba(0, 0, 0, 0.5);
+					color: #ffffff;
+					padding: 10rpx 25rpx;
+					border-radius: 25rpx;
+					font-size: 20rpx;
+				}
+			}
+			.tlist-info {
+				font-size: 24rpx;
+				width: 61%;
+				padding-left: 25rpx;
+				padding-right: 25rpx;
+				position: relative;
+				.tlist-tip {
+					display: flex;
+					align-items: center;
+					.ywyw {
+						width: 86rpx;
+						height: 31rpx;
+						background: linear-gradient(90deg, #fa0100 0%, #fa4716 100%);
+						border-radius: 5rpx;
+						text-align: center;
+						line-height: 31rpx;
+						font-size: 16rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #ffffff;
+					}
+					.bmhw {
+						margin-left: 10rpx;
+						width: 86rpx;
+						height: 31rpx;
+						background: linear-gradient(90deg, #1b4282 0%, #2b5da6 100%);
+						border-radius: 5rpx;
+						text-align: center;
+						line-height: 31rpx;
+						font-size: 16rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #ffffff;
+					}
+				}
+				.bottom_border {
+					position: absolute;
+					border-bottom: 1px solid #eeeeee;
+					left: 25rpx;
+					bottom: 0;
+					height: 2rpx;
+					width: 100%;
+				}
+				.name {
+					margin-top: 10rpx;
+					color: #141821;
+					font-weight: 500;
+					font-size: 26rpx;
+					&.ellipsis {
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
+					}
+				}
+				.info {
+					color: #979797;
+					font-size: 24rpx;
+					padding: 8rpx 0rpx;
+				}
+				.tipBox {
+					height: 50rpx;
+				}
+				.tip {
+					padding: 10rpx 0rpx;
+					text {
+						border: 2rpx solid #ff1a27;
+						color: #ff1a27;
+						border-radius: 5rpx;
+						font-size: 18rpx;
+						padding: 5rpx 10rpx;
+						margin-right: 15rpx;
+					}
+				}
+				.tlist-price {
+					position: absolute;
+					left: 25rpx;
+					width: 100%;
+					bottom: 25rpx;
+					.price-box {
+						.price {
+							color: #ff1a27;
+							.blod {
+								font-size: 35rpx;
+								font-weight: bold;
+							}
+							.fen {
+								color: #838691;
+							}
+						}
+					}
+					.btn {
+						width: 85rpx;
+						height: 30rpx;
+						background: linear-gradient(90deg, #fa0100 0%, #fa4716 100%);
+						border-radius: 14rpx;
+						text-align: center;
+						line-height: 30rpx;
+						font-size: 14rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #ffffff;
+					}
+				}
+			}
+		}
+	}
+	.tlist {
+		.cate {
+			padding: 25rpx 0rpx;
+			color: #666666;
+			font-size: 24rpx;
+		}
 	}
 }
 </style>

+ 29 - 6
pages/contract/privacy.vue

@@ -31,7 +31,7 @@
 		<view class="content">为完成创建账号,以便我们为您提供服务,您需要提供以下信息:您的手机号码、头像、昵称、性别,并创建用户名和密码。</view>
 		<view class="title">(二)为您展示和推送商品或服务</view>
 		<view class="content">
-			为改善我们的产品或服务、向您提供个性化的信息搜索及交易服务,我们会根据您的浏览及搜索记录、设备信息、位置信息、交易信息,提取您的浏览、搜索偏好、行为习惯、位置信息等特征,基于特征标签进行间接人群画像并展示、推送信息。
+			为改善我们的产品或服务、向您提供信息搜索及交易服务,我们会根据您的浏览及搜索记录、设备信息、位置信息、交易信息,提取您的浏览、搜索偏好、行为习惯、位置信息等特征,基于特征标签进行间接人群画像并展示、推送信息。
 		</view>
 		<view class="content">如果您不想接受我们给您发送的商业广告,您可随时通过点击相应按钮取消。</view>
 		<view class="title">(三)向您提供商品或服务</view>
@@ -49,7 +49,7 @@
 		</view>
 		<view class="content">3、我们通过间接获得方式收集到的您的个人信息</view>
 		<view class="content">
-			您可通过“云力商城”账号在我们提供的链接入口使用我们关联公司提供的产品或服务,为便于我们基于关联账号共同向您提供一站式服务并便于您统一进行管理,我们在“云力商城”集中展示您的信息或推荐您感兴趣的信息。当您通过我们产品或服务使用上述服务时,您授权我们根据实际业务及合作需要从我们关联公司处接收、汇总、分析我们确认其来源合法或您授权同意其向我们提供的您的个人信息或交易信息。如您拒绝提供上述信息或拒绝授权,可能无法使用我们关联公司的相应产品或服务,或者无法展示相关信息,但不影响使用“云力商城”的核心服务。
+			您可通过“云力商城”账号在我们提供的链接入口使用我们关联公司提供的产品或服务,为便于我们基于关联账号共同向您提供一站式服务并便于您统一进行管理。当您通过我们产品或服务使用上述服务时,您授权我们根据实际业务及合作需要从我们关联公司处接收、汇总、分析我们确认其来源合法或您授权同意其向我们提供的您的个人信息或交易信息。如您拒绝提供上述信息或拒绝授权,可能无法使用我们关联公司的相应产品或服务,或者无法展示相关信息,但不影响使用“云力商城”的核心服务。
 		</view>
 		<view class="title">(四)为您提供安全保障</view>
 		<view class="content">
@@ -75,10 +75,7 @@
 		<view class="content">一送达或公告的形式通知您,对所持有的个人信息进行删除或匿名化处理。</view>
 		<view class="title">二、我们如何使用 Cookie 和同类技术</view>
 		<view class="title">(一)Cookie</view>
-		<view class="content">
-			为确保网站正常运转、为您获得更轻松的访问体验、向您推荐您可能感兴趣的内容,我们会在您的计算机或移动设备上存储名为 Cookie 的小数据文件。Cookie
-			通常包含标识符、站点名称以及一些号码和字符。借助于Cookie,网站能够存储您的偏好等数据。
-		</view>
+		<view class="content">为确保网站正常运转、为您获得更轻松的访问体验,我们会在您的计算机或移动设备上存储名为 Cookie 的小数据文件。</view>
 		<view class="title">(二)网站信标和像素标签</view>
 		<view class="content">
 			除 Cookie
@@ -214,6 +211,32 @@
 		<view class="content">4、您参与个人信息处理方面的权利及其行使方式发生重大变化;</view>
 		<view class="content">5、我们负责处理个人信息安全的责任部门、联络方式及投诉渠道发生变化时;</view>
 		<view class="content">6、个人信息安全影响评估报告表明存在高风险时。</view>
+		<view class="title">注销账户</view>
+		<view class="content">
+			一、注销账号的后果 您可以通过客服的联系方式联系我们要求注销账户或在我们的产品中直接申请注销账号。
+			敬请您注意并知悉,您提交注销申请后,我们需要15天时间处理您的账户注销。如您在15天内没有再次使用该注销账号登录,我们将在15天后清除您的账号信息,完成注销,如果您在15天内进行了此账号的登录,则视为您主动放弃此次注销操作的申请。当您注销账号后,将(可能)产生包括但不限于如下后果:
+		</view>
+		<view class="content">1.注销账号后,您将无法登录、使用该账号及账号原验证手机或邮箱登录云力商城与服务,即您将无法再以此账号登录、使用云力商城与服务。</view>
+		<view class="content">
+			2.注销账号后,您曾通过该账号登录、使用的云力商城与服务下的所有内容、信息、数据、记录将会被全部删除或匿名化处理(但国家法律法规、规章、规范性文件,政府的政策、命令等另有要求或为履行我们的合规义务的除外),您也无法再检索、访问、获取、继续使用和找回这些信息或数据,包括但不限于:
+		</view>
+		<view class="content">(1)该账号下的您自主设置的个人资料(如:头像、昵称等);</view>
+		<view class="content">(2)该账号下您主动提供或在使用过程中授权我们收集的个人信息(如:绑定的手机号、邮箱等);</view>
+		<view class="content">(3)其他与该账号相关的内容、信息、数据、历史记录或服务记录等。</view>
+		<view class="content">3.注销账号后,您在使用云力商城产品与服务期间产生的账号内资产和虚拟权益将视为自动放弃,无法予以退还或退换,包括但不限于:</view>
+		<view class="content">(1)您在云力商城产品与服务中的账户等级、会员等级等各类身份权益、积分、金币等;</view>
+		<view class="content">(2)其他已产生但未消耗完毕的权益及资产或未来的预期收益。</view>
+		<view class="content">
+			4.账号注销具有不可逆转和不可撤销性,账号一旦注销完成,将无法恢复,您的原账号对应的数字ID将可能分配给其他新注册的用户。如果您在注销后以相同手机号码或相同电子邮箱再次向我们申请账号,此时该账号将默认为新的用户账号。
+		</view>
+		<view class="content">
+			5.账号一旦注销,您将不再享有您与我们签署的相关用户协议、其他权利义务性文件中约定的适用于注册用户的权利,但法律法规、规章、规范性文件,政府的政策、命令等另有要求或用户服务协议中另有规定的除外。
+		</view>
+		<view class="content">二、注销须满足的条件</view>
+		<view class="content">在您向我们申请注销账号前,为保障您的账号安全和财产权益,您的账号需同时满足以下条件:</view>
+		<view class="content">1.该账号是您通过我们的官方渠道注册的账号,且为您本人注册、使用的账号;</view>
+		<view class="content">2.该账号内无未处理完毕的交易或已提供服务但未支付的订单或服务;</view>
+		<view class="content">3.该账号下无未处理完毕的纠纷(如:与其他用户的侵权纠纷、投诉举报或被投诉举报)。</view>
 		<view class="content pb30">我们还会将本隐私政策的旧版本存档,供您查阅。</view>
 		<view class="title">开发者:浙江多力网络科技有限公司</view>
 		<view class="title">应用名:云力商城</view>

File diff suppressed because it is too large
+ 105 - 427
pages/index/index.vue


+ 371 - 0
pages/merchant/finance.vue

@@ -0,0 +1,371 @@
+<template>
+	<view class="center">
+		<view class="top">
+			<picker mode="date" :value="now_date" @change="bindDateChange" :fields="'month'" :end="date">
+				<view class="uni-input choose-time">{{ now_date }} ></view>
+			</picker>
+			<view class="top-card">
+				<view class="card-tit">
+					<view class="tit-point"></view>
+					营业额总览
+				</view>
+				<view class="card-icon"><image src="../../static/icon/moneyget.png" mode=""></image></view>
+				<view class="now-tit">本月营业额</view>
+				<view class="now-money">{{ month_momey }}</view>
+				<view class="card-btm flex">
+					<view class="card-info flex">
+						<image src="../../static/icon/dayget.png" mode=""></image>
+						<view class="info-wrap">
+							<view class="info-tit">已提现</view>
+							<view class="info-val">{{ today_momey || 0 }}</view>
+						</view>
+					</view>
+					<view class="card-info flex" @click="navTo('/pages/merchant/withdrawal')">
+						<image src="../../static/icon/daydd.png" mode=""></image>
+						<view class="info-wrap">
+							<view class="info-tit">余额</view>
+							<view class="info-val">¥{{ today_count }}</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="mid-tit flex">
+			<view class="mid-left flex">
+				<!-- <image src="../../static/icon/time.png" mode=""></image> -->
+				<view class="left-tit">资金记录</view>
+			</view>
+			<view class="mid-right">{{ month_count }}笔</view>
+		</view>
+		<view class="btm-tab">
+			<view class="tab-tit flex">
+				<view class="tab-top-left tab-content">订单类型</view>
+				<view class="tab-top-center tab-content">时间</view>
+				<view class="tab-top-right tab-content">金额</view>
+			</view>
+			<scroll-view scroll-y="true" class="list-wrapper" :style="{ height: height }">
+				<!-- 空白页 -->
+				<empty v-if="loaded && monthList.length == 0"></empty>
+				<view v-for="item in monthList" class="flex list" :key="item.time">
+					<view class="tab-top-left tab-content ">
+						<text v-if="item.pm" style="color: red;">收入</text>
+						<txet v-else>支出</txet>
+					</view>
+					<view class="tab-top-center tab-content">{{ getTimes(item.add_time) }}</view>
+					<view class="tab-top-right tab-content money">¥{{ item.number || 0 }}</view>
+				</view>
+				<uni-load-more :status="loadingType" v-if="loadingType == 'loading'"></uni-load-more>
+			</scroll-view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { shop_data } from '@/api/merchant.js';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+export default {
+	components: {
+		empty,
+		uniLoadMore
+	},
+	data() {
+		let start = new Date(new Date().toLocaleDateString()).getTime();
+		let a = new Date();
+		let month = a.getMonth() + 1;
+		let year = a.getFullYear() + '';
+		if (month < 10) {
+			month = '0' + month;
+		} else {
+			month = month + '';
+		}
+		return {
+			height: '',
+			loadingType: 'more',
+			page: 1,
+			limit: 10,
+			monthList: {},
+			loaded: false,
+			month_momey: 0, //月营业额
+			month_count: 0, //月订单数
+			today_momey: '', //日营业额
+			today_count: '', //今日订单数
+			now_date: year + '-' + month,
+			date: year + '-' + month //选择的日期不能超过今天
+		};
+	},
+	onReady(res) {
+		var _this = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.list-wrapper').boundingClientRect();
+				query.exec(function(res) {
+					console.log(res, 'ddddddddddddd');
+					_this.height = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.height);
+				});
+			},
+			fail: res => {}
+		});
+	},
+	onLoad() {
+		console.log(this.tiday_start, 'start');
+		console.log(this.now_date);
+		this.loadData();
+	},
+	methods: {
+		//跳转
+		navTo(url) {
+			uni.navigateTo({
+				url
+			});
+		},
+		getTimes(val) {
+			let date = new Date(val * 1000);
+			let Y = date.getFullYear();
+			let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
+			let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
+			let h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
+			let m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); //分钟补0
+			return Y + '.' + M + '.' + D + '.' + h + ':' + m;
+		},
+		// 切换月份
+		bindDateChange(e) {
+			console.log(e.detail, 'dddddddddddd');
+			this.now_date = e.detail.value;
+			this.month_momey = 0;
+			this.month_count = 0;
+			this.loadData();
+		},
+		loadData() {
+			const obj = this;
+			shop_data({ month: this.now_date }).then(data => {
+				console.log(data.data, '返回数据');
+				obj.monthList = data.data.list;
+				obj.month_momey = data.data.moun;
+				obj.month_count = data.data.count;
+				if (data.data.store.used != null) {
+					obj.today_momey = data.data.store.used;
+				}
+				if (data.data.store.balance != null) {
+					obj.today_count = data.data.store.balance;
+				}
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss" scoped>
+.top {
+	height: 585rpx;
+	background-color: #f75022;
+	position: relative;
+
+	.sybg {
+		position: absolute;
+		width: 100%;
+		height: 265rpx;
+	}
+	.top-card {
+		width: 688rpx;
+		height: 398rpx;
+		padding: 32rpx;
+		background: #ffffff;
+		box-shadow: -2rpx 4rpx 18rpx 0px rgba(0, 110, 238, 0.2);
+		border-radius: 24rpx;
+		position: absolute;
+		right: 0;
+		left: 0;
+		bottom: 40rpx;
+		margin: 0 auto;
+
+		.now-tit {
+			text-align: right;
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #999999;
+		}
+
+		.now-money {
+			padding-top: 10rpx;
+			text-align: right;
+			font-size: 72rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #f75022;
+
+			&::before {
+				content: '¥';
+				font-size: 44rpx;
+				position: relative;
+				bottom: 5rpx;
+			}
+		}
+
+		.card-icon {
+			position: absolute;
+			top: 100rpx;
+			left: 48rpx;
+			width: 224rpx;
+			height: 122rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.card-tit {
+			display: flex;
+			align-items: center;
+
+			.tit-point {
+				display: inline-block;
+				width: 12rpx;
+				height: 32rpx;
+				background: #f75022;
+				border-radius: 3rpx;
+				margin-right: 17rpx;
+			}
+
+			font-size: 32rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+		}
+
+		.card-btm {
+			position: absolute;
+			bottom: 32rpx;
+			width: 624rpx;
+			height: 122rpx;
+			background: linear-gradient(180deg, rgba(220, 184, 118, 0.12) 0%, rgba(220, 184, 118, 0) 100%);
+			border-radius: 12rpx;
+
+			.card-info {
+				width: 50%;
+				flex-shrink: 0;
+				padding-left: 30rpx;
+				justify-content: flex-start;
+				align-items: center;
+
+				image {
+					width: 48rpx;
+					height: 48rpx;
+				}
+
+				.info-wrap {
+					padding-left: 20rpx;
+
+					.info-tit {
+						font-size: 28rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #999999;
+					}
+
+					.info-val {
+						// padding-top: 15rpx;
+						font-size: 36rpx;
+						font-family: PingFang SC;
+						font-weight: bold;
+						color: #dcb876;
+						text-align: center;
+					}
+
+					.dan {
+						&::after {
+							content: '单';
+							font-size: 32rpx;
+							position: relative;
+							bottom: 3rpx;
+						}
+					}
+				}
+			}
+		}
+	}
+}
+
+.mid-tit {
+	background-color: #fff;
+	height: 80rpx;
+	padding: 0 30rpx 0 33rpx;
+	justify-content: space-between;
+	align-items: center;
+	margin-bottom: 12rpx;
+
+	.mid-left {
+		image {
+			margin-right: 13rpx;
+			width: 33rpx;
+			height: 33rpx;
+		}
+	}
+}
+
+.btm-tab {
+	background-color: #fff;
+
+	// padding: 0 30rpx 0 35rpx;
+	.tab-top-left {
+		text-align: left;
+		padding-left: 35rpx;
+	}
+
+	.tab-top-center {
+		text-align: center;
+	}
+
+	.tab-top-right {
+		text-align: right;
+		padding-right: 30rpx;
+	}
+
+	.tab-tit {
+		height: 72rpx;
+		font-size: 24rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #999999;
+
+		.tab-content {
+			width: 33%;
+		}
+	}
+}
+
+.list-wrapper {
+	background-color: #fff;
+
+	.list {
+		height: 70rpx;
+
+		view {
+			width: 33.3%;
+			flex-shrink: 0;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+		}
+
+		.money {
+			color: #f75022;
+		}
+	}
+}
+.choose-time {
+	position: absolute;
+	top: 90rpx;
+	line-height: 1.5;
+	padding-left: 32rpx;
+	font-size: 28rpx;
+	font-family: PingFang SC;
+	font-weight: 500;
+	color: #ffffff;
+}
+</style>

+ 572 - 0
pages/merchant/hexiao.vue

@@ -0,0 +1,572 @@
+<template>
+	<view class="wipe-wrapper">
+
+		<view class="wipe-top">
+			<view class="top-left" @click="smsh">
+				<image src="../../static/icon/sm.png" mode=""></image>
+				<view class="">
+					扫码核销
+				</view>
+			</view>
+			<view class="top-right" @click="srhx">
+				<image src="../../static/icon/sr.png" mode=""></image>
+				<view class="">
+					输入核销
+				</view>
+			</view>
+			<view class="top-jg"></view>
+		</view>
+		<uni-popup ref="popuphx" class="agree-wrapper">
+			<view class="hx-wrapper">
+				<view class="hx-img">
+					<image src="https://hy.liuniu946.com/app/img/hxbg.png" mode=""></image>
+				</view>
+				<view class="hx-body">
+					<view class="hx-title">
+						输入核销码核销
+					</view>
+					<input type="text" v-model="code" placeholder="请输入核销码" placeholder-class="hx-placeholder" />
+					<view class="hx-btn" @click="qhx">
+						立即核销
+					</view>
+				</view>
+				<view class="hx-close" @click="close">
+					<image src="../../static/icon/close.png" mode=""></image>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	import {
+		orderData,
+		getUserInfo,
+		getSpreadCount,
+		bindAdmin,
+		orderVerific,
+		exchangeOrderVerific
+	} from '@/api/user.js';
+	import empty from '@/components/empty';
+	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+	import uniPopup from '@/components/uni-popup/uni-popup.vue'
+
+	export default {
+		components: {
+			empty,
+			uniPopup
+		},
+		data() {
+			return {
+				height: '',
+				code: '',
+				limit: 10,
+				page: 1,
+				loadingType: 'more',
+				loaded: '',
+			};
+		},
+		onLoad() {
+			this.loadData()
+		},
+		onReady(res) {
+			var _this = this;
+		},
+		methods: {
+			loadData() {
+				let obj = this
+				if (obj.loadingType == 'loading') {
+					return
+				}
+				if (obj.loadingType == 'noMore') {
+					return
+				}
+				},
+			srhx() {
+				this.$refs.popuphx.open()
+
+			},
+			close() {
+				this.$refs.popuphx.close()
+
+			},
+			smsh() {
+				let obj = this
+				// #ifdef H5
+				let wx = require('@/plugin/jweixin-module');
+				
+				wx.scanQRCode({
+					needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
+					scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
+					success: function(res) {
+						var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
+						orderVerific({
+							code:res.resultStr,
+						}).then(res => {
+							uni.showToast({
+								title: '核销成功',
+								duration: 2000
+							});
+						}).catch(err => {
+							console.log('dddd')
+						})
+					}
+				});
+				// #endif
+				// #ifndef H5
+				uni.scanCode({
+					success: (res) => {
+						this.code = res.result
+						this.srhx()
+					}
+				})
+				// #endif
+
+			},
+			qhx() {
+				if (this.code == '') {
+					return this.$api.msg('请输入核销码')
+				}
+				uni.showLoading({
+					title: '核销中...',
+					mask: true
+				})
+				if (this.code.indexOf('ticket:') != -1) {
+					exchangeOrderVerific({
+						code: this.code,
+					}).then(res => {
+						uni.hideLoading()
+						// this.$api.msg(res.msg) 
+
+						console.log(res, '++++++++++++++++++++++++++++++')
+						this.$refs.popuphx.close()
+						this.code = ''
+						this.page = 1
+						this.loadingType = 'more'
+						this.goodList = []
+						uni.showToast({
+							title: '核销成功',
+							duration: 2000
+						});
+						this.loadData()
+					}).catch(err => {
+						console.log('dddd')
+					})
+				} else {
+					orderVerific({
+						code: this.code,
+					}).then(res => {
+						uni.hideLoading()
+						// this.$api.msg(res.msg) 
+
+						console.log(res, '++++++++++++++++++++++++++++++')
+						this.$refs.popuphx.close()
+						this.code = ''
+						this.page = 1
+						this.loadingType = 'more'
+						this.goodList = []
+						uni.showToast({
+							title: '核销成功',
+							duration: 2000
+						});
+						this.loadData()
+					}).catch(err => {
+						console.log('dddd')
+					})
+				}
+
+			}
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	page {
+		height: 100%;
+		background-color: #f8f6f6;
+	}
+
+	.wipe-wrapper {
+		.wipe-top {
+			justify-content: space-around;
+			width: 750rpx;
+			box-shadow: 0px 0px 20px 0px rgba(50, 50, 52, 0.06);
+			font-size: 28rpx;
+			font-weight: 500;
+			color: #ef041f;
+			line-height: 80rpx;
+			text-align: center;
+			position: relative;
+			z-index: 10;
+
+			.top-left {
+				font-size: 32rpx;
+				line-height: 120rpx;
+				border-radius: 20rpx;
+				background-color: #fff;
+				height:420rpx;
+				margin:5%;
+				width:90%;
+				vertical-align: middle;
+
+				image {
+					margin-top: 120rpx;
+					width: 87rpx;
+					height: 85rpx;
+					margin-right: 10rpx;
+				}
+			}
+
+			.top-right {
+				font-size: 32rpx;
+				border-radius: 20rpx;
+				background-color: #fff;
+				height:420rpx;
+				vertical-align: middle;
+				margin:5%;
+				width:90%;
+
+				image {
+					margin-top: 120rpx;
+					width: 87rpx;
+					height: 85rpx;
+					margin-right: 10rpx;
+				}
+			}
+
+			.top-jg {
+				width: 2rpx;
+				height: 80rpx;
+				background: #f0f0f0;
+				position: absolute;
+				// background: red;
+			}
+		}
+	}
+
+	.good-content {
+		height: 100%;
+		padding-top: 20rpx;
+	}
+
+	.good {
+		width: 702rpx;
+		// height: 304rpx;
+
+		background: #ffffff;
+		box-shadow: 0px 0px 20px 0px rgba(50, 50, 52, 0.06);
+		border-radius: 10rpx;
+		padding: 0 30rpx;
+		padding-bottom: 20rpx;
+		margin: 0 auto 20rpx;
+		position: relative;
+
+		.goods-box-single {
+			display: flex;
+			padding: 20rpx 0;
+
+			.goods-img {
+				display: block;
+				width: 120rpx;
+				height: 120rpx;
+			}
+
+			.right {
+				flex: 1;
+				display: flex;
+				flex-direction: column;
+				padding: 0 30rpx 0 24rpx;
+				overflow: hidden;
+
+				.row {
+					margin-top: 10rpx;
+					justify-content: flex-end;
+				}
+
+				.row_title {
+					padding: 5rpx 10rpx;
+					background-color: #dddddd;
+					border-radius: 10rpx;
+					font-size: 22rpx;
+					color: #ffffff;
+					background: #ffeee9;
+					border-radius: 5rpx;
+					color: #f55e5c;
+				}
+
+				.title {
+					font-size: $font-base + 2rpx;
+					color: $font-color-dark;
+					line-height: 1;
+					width: 80%;
+				}
+
+				.attr-box {
+					display: flex;
+					justify-content: flex-end;
+					font-size: $font-sm + 2rpx;
+					color: $font-color-light;
+				}
+
+				.price {
+					display: inline;
+					font-size: $font-base + 2rpx;
+					color: $font-color-dark;
+
+					&:before {
+						content: '¥';
+						font-size: $font-sm;
+					}
+				}
+			}
+		}
+
+		.good-top {
+			height: 85rpx;
+			font-size: 24rpx;
+			font-weight: 400;
+			color: #666666;
+			line-height: 85rpx;
+			display: flex;
+			justify-content: space-between;
+
+			.top-status {
+				font-size: 28rpx;
+				font-weight: 500;
+				color: #EF041F;
+			}
+		}
+
+		.goods-buttom {
+			height: 160rpx;
+			display: flex;
+
+			.good-img {
+				width: 160rpx;
+				height: 160rpx;
+
+				// overflow: hidden;
+				image {
+					width: 160rpx;
+					height: 160rpx;
+				}
+			}
+
+			.good-title {
+				width: 350rpx;
+				padding-top: 6rpx;
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #3F454B;
+				line-height: 1;
+				padding-left: 10rpx;
+			}
+
+			.shop-info {
+				padding-top: 11rpx;
+				font-size: 24rpx;
+				font-weight: 500;
+				color: #DCB876;
+				line-height: 1;
+
+				// padding-left: 10rpx;
+				image {
+					width: 24rpx;
+					height: 24rpx;
+					margin-left: 14rpx;
+					margin-right: 4rpx;
+				}
+			}
+
+			.good-tag {
+				display: inline-block;
+				height: 36rpx;
+				background: #ffeee9;
+				// opacity: 0.2;
+				border-radius: 5rpx;
+				font-size: 20rpx;
+				font-weight: 500;
+				color: #F23030;
+				padding: 0 9rpx;
+				line-height: 36rpx;
+				margin-top: 15rpx;
+				margin-left: 10rpx;
+			}
+
+		}
+
+		.good-hj {
+			line-height: 1;
+			height: 26rpx;
+			font-size: 26rpx;
+			font-weight: 500;
+			color: #333333;
+			text-align: right;
+		}
+
+		.good-price {
+			text-align: left;
+			font-size: 26rpx;
+			font-weight: 500;
+			line-height: 1;
+			color: #333333;
+			position: absolute;
+			right: 31rpx;
+			top: 98rpx;
+		}
+
+		.good-num {
+			text-align: left;
+			font-size: 26rpx;
+			font-weight: 500;
+			line-height: 1;
+			color: #333333;
+			position: absolute;
+			right: 31rpx;
+			top: 136rpx;
+		}
+	}
+
+	.hx-wrapper {
+		width: 536rpx;
+		height: 630rpx;
+		position: relative;
+
+		// background-color: #fff;
+		.hx-img {
+			width: 536rpx;
+			height: 281rpx;
+
+			image {
+				width: 536rpx;
+				height: 281rpx;
+			}
+		}
+
+		.hx-close {
+			position: absolute;
+			left: 243rpx;
+			bottom: -80rpx;
+			width: 52rpx;
+			height: 52rpx;
+
+			image {
+				width: 52rpx;
+				height: 52rpx;
+			}
+		}
+
+		.hx-body {
+			width: 536rpx;
+			height: 349rpx;
+			background-color: #fff;
+			border-radius: 0 0 10rpx 10rpx;
+
+			.hx-title {
+				width: 536rpx;
+				font-size: 36rpx;
+				font-weight: 500;
+				color: #333333;
+				line-height: 1;
+				padding-top: 42rpx;
+				text-align: center;
+			}
+
+			input {
+				width: 439rpx;
+				height: 68rpx;
+				background: #eeddde;
+				border-radius: 10rpx;
+				margin: 39rpx auto 0;
+				padding-left: 26rpx;
+
+				.hx-placeholder {
+					font-size: 26rpx;
+					font-weight: 500;
+					color: #901b21;
+				}
+			}
+
+			.hx-btn {
+				margin: 44rpx auto 0;
+				width: 353rpx;
+				height: 71rpx;
+				background: #901b21;
+				border-radius: 34rpx;
+				font-size: 36rpx;
+				font-weight: 500;
+				color: #F8F9F9;
+				line-height: 71rpx;
+				text-align: center;
+			}
+
+
+		}
+	}
+
+	.navbar {
+		display: flex;
+		height: 40px;
+		padding: 0 5px;
+		background: #fff;
+		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+		position: relative;
+		z-index: 10;
+
+		.nav-item {
+			flex: 1;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			height: 100%;
+			font-size: 15px;
+			color: $font-color-dark;
+			position: relative;
+
+			&.current {
+				color: $base-color;
+
+				&:after {
+					content: '';
+					position: absolute;
+					left: 50%;
+					bottom: 0;
+					transform: translateX(-50%);
+					width: 44px;
+					height: 0;
+					border-bottom: 2px solid $base-color;
+				}
+			}
+		}
+	}
+	.fh-btn-wrap {
+		display: flex;
+		// height: 55rpx;
+		flex-direction: column;
+		// justify-content: flex-end;
+		// width: ;
+		font-size: 28rpx;
+		color: #999999;
+		.fh-btn-tit {
+			color: #000000;
+			font-weight: bold;
+		}
+		.fh-btn-info {
+			padding-left: 20rpx;
+		}
+		.fh-btn {
+			margin-top: 10rpx;
+			align-self: flex-end;
+			width: 144rpx;
+			height: 55rpx;
+			border: 1px solid #901b21;
+			border-radius: 28rpx;
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #901b21;
+			line-height: 55rpx;
+			text-align: center;
+		}
+	}
+</style>

+ 446 - 0
pages/merchant/merchant.vue

@@ -0,0 +1,446 @@
+<template>
+	<view class="body">
+		<view class="background"></view>
+		<view class="content">
+			<view class="userInfo">
+				<view class="userInfo-box">
+					<view class="userInfo-img"><image class="portrait" :src="image || '../../../static/error/missing-face.png'"></image></view>
+					<view class="userInfo-xinxi">
+						<view class="title clamp">
+							<text>{{ name }}</text>
+						</view>
+						<view class="phone">
+							<text>{{ phone }}</text>
+						</view>
+					</view>
+					<view class="balance clamp">{{ address }}</view>
+				</view>
+			</view>
+			<view class="userInfoList">
+				<view class="userInfoList-bottom" @click="smsh()">
+					<view class="bottom"><image src="../../static/icon/saoma.png" mode=""></image></view>
+					扫码核销
+				</view>
+				<view class="userInfoList-bottom" @click="navTo('/pages/merchant/finance')">
+					<view class="bottom"><image src="../../static/icon/money.png" mode=""></image></view>
+					店铺财务
+				</view>
+				<view class="userInfoList-bottom" @click="navTo('/pages/merchant/order')">
+					<view class="bottom"><image src="../../static/icon/order.png" mode=""></image></view>
+					订单管理
+				</view>
+				<view class="userInfoList-bottom" @click="navTo('/pages/merchant/money?id=' + id)">
+					<view class="bottom"><image src="../../static/icon/dianpu.png" mode=""></image></view>
+					付款记录
+				</view>
+			</view>
+		</view>
+		<uni-popup ref="popuphx" class="agree-wrapper">
+			<view class="hx-wrapper">
+				<view class="hx-img"><image src="../../static/img/hxbg.png" mode=""></image></view>
+				<view class="hx-body">
+					<view class="hx-title">输入核销码核销</view>
+					<input type="text" v-model="code" placeholder="请输入核销码" placeholder-class="hx-placeholder" />
+					<view class="hx-btn" @click="qhx">立即核销</view>
+				</view>
+				<view class="hx-close" @click="close"><image src="../../static/icon/close.png" mode=""></image></view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+import { my, verific } from '@/api/merchant.js';
+import { orderVerific } from '@/api/user.js';
+import uniPopup from '@/components/uni-popup/uni-popup.vue';
+export default {
+	components: {
+		uniPopup
+	},
+	data() {
+		return {
+			image: '',
+			name: '',
+			phone: '',
+			address: '',
+			code: '',
+			id: ''
+		};
+	},
+	onLoad() {
+		my({}).then(({ data }) => {
+			this.id = data.info.id;
+			this.image = data.info.image;
+			this.name = data.info.name;
+			this.phone = data.info.phone;
+			this.address = data.info.detailed_address;
+		});
+	},
+	methods: {
+		//跳转
+		navTo(url) {
+			uni.navigateTo({
+				url
+			});
+		},
+		close() {
+			this.$refs.popuphx.close();
+			this.code = '';
+		},
+		//调取扫描二维码
+		smsh() {
+			let obj = this;
+			// #ifdef H5
+			let wx = require('@/plugin/jweixin-module');
+
+			wx.scanQRCode({
+				needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
+				scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有
+				success: function(res) {
+					this.code = res.result;
+					this.srhx();
+				}
+			});
+			// #endif
+			// #ifndef H5
+			uni.scanCode({
+				success: res => {
+					this.code = res.result;
+					this.srhx();
+				}
+			});
+			// #endif
+		},
+		srhx() {
+			this.$refs.popuphx.open();
+		},
+		close() {
+			this.$refs.popuphx.close();
+		},
+		qhx() {
+			if (this.code == '') {
+				return this.$api.msg('请输入核销码');
+			}
+			uni.showLoading({
+				title: '核销中...',
+				mask: true
+			});
+			orderVerific({
+				verify_code: this.code,
+				is_confirm: 1 //1是核销,0是查看
+			})
+				.then(res => {
+					uni.hideLoading();
+					// this.$api.msg(res.msg)
+
+					console.log(res, '++++++++++++++++++++++++++++++');
+					this.$refs.popuphx.close();
+					this.code = '';
+					this.page = 1;
+					this.loadingType = 'more';
+					this.goodList = [];
+					uni.showToast({
+						title: '核销成功',
+						duration: 2000
+					});
+					this.loadData();
+				})
+				.catch(err => {
+					console.log('dddd');
+				});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	height: 100%;
+	background-color: #eeeded;
+	padding: 0;
+	margin: 0;
+}
+// 弹窗
+.hx-wrapper {
+	width: 536rpx;
+	height: 630rpx;
+	position: relative;
+
+	// background-color: #fff;
+	.hx-img {
+		width: 536rpx;
+		height: 281rpx;
+
+		image {
+			width: 536rpx;
+			height: 281rpx;
+		}
+	}
+
+	.hx-close {
+		position: absolute;
+		left: 243rpx;
+		bottom: -80rpx;
+		width: 52rpx;
+		height: 52rpx;
+
+		image {
+			width: 52rpx;
+			height: 52rpx;
+		}
+	}
+
+	.hx-body {
+		width: 536rpx;
+		height: 349rpx;
+		background-color: #fff;
+		border-radius: 0 0 10rpx 10rpx;
+
+		.hx-title {
+			width: 536rpx;
+			font-size: 36rpx;
+			font-weight: 500;
+			color: #333333;
+			line-height: 1;
+			padding-top: 42rpx;
+			text-align: center;
+		}
+
+		input {
+			width: 439rpx;
+			height: 68rpx;
+			background: #dbf3e9;
+			border-radius: 10rpx;
+			margin: 39rpx auto 0;
+			padding-left: 26rpx;
+
+			.hx-placeholder {
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #52c696;
+			}
+		}
+
+		.hx-btn {
+			margin: 44rpx auto 0;
+			width: 353rpx;
+			height: 71rpx;
+			background: #f75022;
+			border-radius: 34rpx;
+			font-size: 36rpx;
+			font-weight: 500;
+			color: #f8f9f9;
+			line-height: 71rpx;
+			text-align: center;
+		}
+	}
+}
+
+.content {
+	background-color: #eeeded;
+	margin: 0 30rpx;
+	display: flex;
+	flex-direction: column;
+}
+
+.background {
+	width: 100%;
+	height: 220rpx;
+	background-color: #f75022;
+}
+
+.userInfo {
+	margin-top: -110rpx;
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	background-color: #f9f9f9;
+	border-radius: 19rpx;
+	width: 100%;
+	height: 300rpx;
+
+	.userInfo-box {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+
+		.userInfo-img {
+			margin: -65rpx 0 0 0;
+			width: 130rpx;
+			height: 130rpx;
+			border: 5rpx solid #fff;
+			border-radius: 50%;
+
+			image {
+				border-radius: 50%;
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.userInfo-xinxi {
+			.title {
+				margin: 20rpx 0;
+				font-size: 32rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+				text-align: center;
+			}
+
+			.phone {
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #666666;
+				line-height: 21rpx;
+			}
+		}
+
+		.balance {
+			margin-top: 10rpx;
+			text-align: center;
+			width: 500rpx;
+			height: 60rpx;
+			background: #f75022;
+			border-radius: 30rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+			line-height: 60rpx;
+		}
+	}
+}
+
+.userInfoList {
+	margin-top: 20rpx;
+	display: flex;
+	flex-wrap: wrap;
+	justify-content: space-between;
+	.userInfoList-top {
+		position: relative;
+		margin: 15rpx 0;
+		display: flex;
+
+		justify-content: center;
+		align-items: center;
+		width: 340rpx;
+		height: 100rpx;
+		background: #ffffff;
+		border-radius: 20rpx;
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #4d4d4d;
+		line-height: 21rpx;
+
+		.top {
+			position: absolute;
+			top: 50%;
+			left: 30rpx;
+			margin-top: -25rpx;
+			width: 50rpx;
+			height: 50rpx;
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+	}
+	.userInfoList-bottom {
+		margin-bottom: 15rpx;
+		width: 340rpx;
+		height: 250rpx;
+		background: #f9f9f9;
+		border-radius: 20rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		.bottom {
+			margin-bottom: 20rpx;
+			width: 68rpx;
+			height: 68rpx;
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+	}
+}
+.hx-wrapper {
+	width: 536rpx;
+	height: 630rpx;
+	position: relative;
+
+	// background-color: #fff;
+	.hx-img {
+		width: 536rpx;
+		height: 281rpx;
+
+		image {
+			width: 536rpx;
+			height: 281rpx;
+		}
+	}
+
+	.hx-close {
+		position: absolute;
+		left: 243rpx;
+		bottom: -80rpx;
+		width: 52rpx;
+		height: 52rpx;
+
+		image {
+			width: 52rpx;
+			height: 52rpx;
+		}
+	}
+
+	.hx-body {
+		width: 536rpx;
+		height: 349rpx;
+		background-color: #fff;
+		border-radius: 0 0 10rpx 10rpx;
+
+		.hx-title {
+			width: 536rpx;
+			font-size: 36rpx;
+			font-weight: 500;
+			color: #333333;
+			line-height: 1;
+			padding-top: 42rpx;
+			text-align: center;
+		}
+
+		input {
+			width: 439rpx;
+			height: 68rpx;
+			background: #eeddde;
+			border-radius: 10rpx;
+			margin: 39rpx auto 0;
+			padding-left: 26rpx;
+
+			.hx-placeholder {
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #901b21;
+			}
+		}
+
+		.hx-btn {
+			margin: 44rpx auto 0;
+			width: 353rpx;
+			height: 71rpx;
+			background: #901b21;
+			border-radius: 34rpx;
+			font-size: 36rpx;
+			font-weight: 500;
+			color: #f8f9f9;
+			line-height: 71rpx;
+			text-align: center;
+		}
+	}
+}
+</style>

+ 147 - 0
pages/merchant/money.vue

@@ -0,0 +1,147 @@
+<template>
+	<view class="center">
+		<empty v-if="list.length === 0"></empty>
+		<view v-for="(item, index) in list" :key="index" class="order-item">
+			<view class="i-top b-b">
+				<text class="time">{{ item.order_id }}</text>
+			</view>
+			<view class="main">
+				<view class="main-item flex">
+					<view class="main-left">充值用户</view>
+					<view class="main-right">{{ item.nickname }}</view>
+				</view>
+				<view class="main-item flex">
+					<view class="main-left">充值金额</view>
+					<view class="main-right">{{ item.price }}</view>
+				</view>
+				<view class="main-item flex">
+					<view class="main-left">充值时间</view>
+					<view class="main-right">{{ item.pay_time }}</view>
+				</view>
+				<view class="main-item flex" v-if="item.integral != 0">
+					<view class="main-left">积分抵扣</view>
+					<view class="main-right">{{ item.integral }}</view>
+				</view>
+				<view class="main-item flex" v-if="item.barter_integral != 0">
+					<view class="main-left">钱抵扣</view>
+					<view class="main-right">{{ item.barter_integral }}</view>
+				</view>
+			</view>
+			<view class="price-box">
+				共
+				<text class="price">{{ item.price }}</text>
+				实付款
+				<text class="price">{{ item.pay_price }}</text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { getTime } from '@/utils/rocessor.js';
+import { order } from '@/api/shop.js';
+import empty from '@/components/empty';
+export default {
+	components: {
+		empty
+	},
+	data() {
+		return {
+			list: [],
+			id: ''
+		};
+	},
+	onLoad(opt) {
+		this.id = opt.id;
+		this.loadData();
+	},
+	methods: {
+		loadData() {
+			order({ store_id: this.id, page: 1, limit: 1000 }).then(({ data }) => {
+				data.forEach(e => {
+					e.pay_time = getTime(e.pay_time);
+				});
+				this.list = data;
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page,
+.center {
+	background: #eee;
+	height: 100%;
+}
+.order-item {
+	display: flex;
+	flex-direction: column;
+	background: #fff;
+	padding: 0 20rpx;
+	margin: 16rpx auto 0;
+	width: 690rpx;
+	border-radius: 20rpx;
+	.i-top {
+		display: flex;
+		align-items: center;
+		height: 80rpx;
+		padding-right: 30rpx;
+		font-size: $font-base;
+		color: $font-color-dark;
+		position: relative;
+		.time {
+			flex: 1;
+		}
+		.state {
+			color: $base-color;
+		}
+		.del-btn {
+			padding: 10rpx 0 10rpx 36rpx;
+			font-size: $font-lg;
+			color: $font-color-light;
+			position: relative;
+			&:after {
+				content: '';
+				width: 0;
+				height: 30rpx;
+				border-left: 1px solid $border-color-dark;
+				position: absolute;
+				left: 20rpx;
+				top: 50%;
+				transform: translateY(-50%);
+			}
+		}
+	}
+	.main {
+		margin: 20rpx 0;
+		border-bottom: 1px solid #f6f7f9;
+		font-size: $font-sm + 4rpx;
+		color: $font-color-light;
+		.main-item {
+			padding: 10rpx 0;
+		}
+	}
+	.price-box {
+		display: flex;
+		justify-content: flex-end;
+		align-items: baseline;
+		padding: 20rpx 30rpx;
+		font-size: $font-sm + 2rpx;
+		color: $font-color-light;
+		.num {
+			margin: 0 8rpx;
+			color: $font-color-dark;
+		}
+		.price {
+			font-size: $font-lg;
+			color: $font-color-dark;
+			&:before {
+				content: '¥';
+				font-size: $font-sm;
+				margin: 0 2rpx 0 8rpx;
+			}
+		}
+	}
+}
+</style>

+ 213 - 0
pages/merchant/order.vue

@@ -0,0 +1,213 @@
+<template>
+	<view class="center">
+		<view class="main" v-for="(item, index) in list" :key="index" @click="goToOrderDetail(item)">
+			<view class="top flex">
+				<view class="userinfo clamp">订单编号ID:{{ item.order_id }}</view>
+				<view class="type">{{ item.status_name }}</view>
+			</view>
+			<view class="mainbox" v-for="(ls, ind) in item._info">
+				<view class="bg"><image :src="ls.cart_info.productInfo.image" mode=""></image></view>
+				<view class="main-info flex">
+					<view class="main-left">
+						<view class="name clamp2">{{ ls.cart_info.productInfo.store_name }}</view>
+					</view>
+					<view class="main-right">
+						<view class="price">¥{{ ls.cart_info.productInfo.ot_price }}</view>
+						<view class="num">x{{ ls.cart_info.cart_num }}</view>
+					</view>
+				</view>
+			</view>
+			<view class="item-btm">共{{ item.total_num }}件商品 合计:¥{{ item.total_price }}</view>
+		</view>
+		<uni-load-more :status="loadType"></uni-load-more>
+		<!-- </scroll-view> -->
+	</view>
+</template>
+
+<script>
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+import { merchantList } from '@/api/merchant.js';
+export default {
+	components: {
+		empty,
+		uniLoadMore
+	},
+	data() {
+		return {
+			page: 1,
+			limit: 10,
+			loadType: 'more',
+			list: [],
+			maxheight: ''
+		};
+	},
+	onReachBottom() {
+		this.loadData();
+	},
+	onPullDownRefresh() {
+		this.loadData();
+	},
+	onLoad() {
+		this.loadData();
+	},
+	methods: {
+		loadData() {
+			const obj = this;
+			if (obj.loadType == 'loading' || obj.loadType == 'noMore') {
+				return;
+			}
+			obj.loadType = 'loading';
+			merchantList({ page: obj.page, limit: obj.limit }).then(({ data }) => {
+				obj.list = obj.list.concat(data);
+				obj.page++;
+				if (data.length == obj.limit) {
+					obj.loadType = 'more';
+				} else {
+					obj.loadType = 'noMore';
+				}
+			});
+		},
+		goToOrderDetail(e) {
+			uni.navigateTo({
+				url: '/pages/merchant/orderDetail?id=' + e.order_id
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page,
+.center {
+	height: 100%;
+	background: #f6f4f4;
+}
+.input-box {
+	width: 100%;
+	padding: 25rpx;
+	background-color: #52c696;
+	z-index: 999;
+	height: 60px;
+	.iconsearch {
+		padding-left: 30%;
+		font-size: 50rpx;
+		color: #9f9f9f;
+	}
+	.input-content {
+		border-radius: 99rpx;
+		color: #9f9f9f;
+		flex-grow: 1;
+		padding: 10rpx 30rpx;
+		background-color: #ffffff;
+		.input {
+			flex-grow: 1;
+			input {
+				font-size: $font-lg;
+			}
+		}
+	}
+	.input-button {
+		padding-left: 20rpx;
+		font-size: $font-lg;
+		height: 100%;
+	}
+}
+.main {
+	padding: 30rpx 30rpx 60rpx 30rpx;
+	width: 700rpx;
+	margin: 20rpx auto 0;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 10rpx;
+	.top {
+		align-items: center;
+		.userinfo {
+			max-width: 70%;
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #666666;
+		}
+		.type {
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #52c696;
+		}
+	}
+	.mainbox {
+		display: flex;
+		flex-direction: row;
+		justify-content: flex-start;
+		margin-top: 30rpx;
+		align-items: flex-start;
+		.bg {
+			flex-shrink: 0;
+			width: 160rpx;
+			height: 160rpx;
+			background: #4cd964;
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.main-info {
+			justify-content: space-between;
+			align-items: flex-start;
+			width: 100%;
+			.main-left {
+				padding-left: 10rpx;
+				.name {
+					max-width: 338rpx;
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #3f454b;
+				}
+				.order {
+					margin-top: 10rpx;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #666666;
+				}
+				.ordertype {
+					width: 120rpx;
+					margin-top: 10rpx;
+					background: #ffeae5;
+					border-radius: 5rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #ff6f0f;
+					text-align: center;
+				}
+			}
+			.main-right {
+				text-align: right;
+				padding-top: 6rpx;
+				.price {
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+				.num {
+					font-size: 26rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #666666;
+				}
+			}
+		}
+	}
+	.item-btm {
+		text-align: right;
+		font-size: 26rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #333333;
+	}
+}
+</style>

File diff suppressed because it is too large
+ 121 - 0
pages/merchant/orderDetail.vue


+ 376 - 0
pages/merchant/withdrawal.vue

@@ -0,0 +1,376 @@
+<template>
+	<view class="content">
+		<!-- <uni-notice-bar single="true" text="实际到账98%"></uni-notice-bar> -->
+		<view class="content-money">
+			<view class="flex " style="width: 750rpx;justify-content: space-around;margin-left: 0;">
+				<view class="buttom">
+					<view class="icon">{{ money }}</view>
+					<text class="text">可提现现金</text>
+				</view>
+			</view>
+		</view>
+
+		<view class="row-box">
+			<view class="title">提现金额</view>
+			<view class="row">
+				<text class="tit">¥</text>
+				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'" placeholder-class="placeholder" />
+				<view class="buttom" @click="withdrawal = userInfo.brokerage_price">全部提现</view>
+			</view>
+		</view>
+		<view class="tip" v-if="withdrawal != 0">实际到账 {{ real || '0' }}元</view>
+		<view class="list">
+			<radio-group @change="tabRadio">
+				<!-- <label>
+					<view class="box">
+						<view class="icon iconfont iconweixin1"></view>
+						<view class="title-box">
+							<view class="title"><text>提现至微信</text></view>
+						</view>
+						<view class="right"><radio value="weixin" color="#5dbc7c" :checked="type == 'weixin'" /></view>
+					</view>
+				</label> -->
+				<label>
+					<view class="box">
+						<view class="icon iconfont iconzhifubao"></view>
+						<view class="title-box">
+							<view class="title">
+								<text v-if="aliData.fullname">提现至支付宝</text>
+								<text v-else>请创建支付宝账号</text>
+							</view>
+							<view class="node">
+								<text v-if="aliData.fullname">真实姓名({{ aliData.fullname }})</text>
+							</view>
+						</view>
+						<view class="right"><radio value="alipay" color="#5dbc7c" :checked="type == 'alipay'" /></view>
+					</view>
+				</label>
+				<label>
+					<view class="box">
+						<view class="icon iconfont"><image class="icon-img" src="/static/icon/i8.png" mode="aspectFit"></image></view>
+						<view class="title-box">
+							<view class="title">
+								<text v-if="bankData.bankno">{{ bankData.bank + ' ' + bankData.bankno }}</text>
+								<text v-else>请输入银行账号</text>
+							</view>
+							<view class="node">
+								<text v-if="bankData.fullname">真实姓名({{ bankData.fullname }})</text>
+							</view>
+						</view>
+						<view class="right"><radio value="bank" color="#5dbc7c" :checked="type == 'bank'" /></view>
+					</view>
+				</label>
+			</radio-group>
+		</view>
+		<!-- <view class="row b-b" v-if="type == 'alipay'">
+			<text class="tit">支付宝账号</text>
+			<input class="input" type="text" v-model="alipay_code" placeholder="请输入支付宝账号" placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b" v-if="type == 'alipay'">
+			<text class="tit">支付宝姓名</text>
+			<input class="input" type="text" v-model="alipay_name" placeholder="请输入支付宝姓名" placeholder-class="placeholder" />
+		</view> -->
+		<!-- <view class="row b-b">
+			<text class="tit">银行卡号</text>
+			<input class="input" type="text" v-model="bank_code" placeholder="请输入银行卡号" placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b">
+			<text class="tit">姓名</text>
+			<input class="input" type="text" v-model="bank_people" placeholder="请输入银行卡姓名" placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b">
+			<text class="tit">所属银行</text>
+			<input class="input" type="text" v-model="bank_name" placeholder="请输入所属银行" placeholder-class="placeholder" />
+		</view> -->
+		<button class="add-btn up" @click="confirm">提交申请</button>
+		<button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button>
+	</view>
+</template>
+
+<script>
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import { extractCash, extractBank, aliInfo, bankInfo } from '@/api/merchant.js';
+// import { extractCash, extractBank, aliInfo, bankInfo } from '@/api/wallet.js';
+import { orderData, getUserInfo } from '@/api/user.js';
+import { mapState, mapMutations } from 'vuex';
+import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
+export default {
+	filters: {
+		getMoneyStyle
+	},
+	components: {
+		uniNoticeBar
+	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin']),
+		real() {
+			return (this.withdrawal - this.withdrawal * this.sxf).toFixed(2) * 1;
+		}
+	},
+	data() {
+		return {
+			type: 'bank', //提现方式
+			money: '0.00', //可提现金额
+			freeze: '0.0', //冻结金额
+			withdrawal: '', //提现金额
+			minPrice: '', //最少提现金额
+			aliData: {},
+			sxf: 0,
+			bank: 1,
+			bankData: { fullname: '', bank: '', bankno: '' },
+			aliData: { fullname: '', alino: '' },
+			// #ifdef H5
+			weichatBsrowser: false
+			// #endif
+		};
+	},
+	onLoad(options) {
+		// #ifdef H5
+		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+		// #endif
+		//加载提现信息
+		this.loadData();
+	},
+	onShow() {
+		// 加载提款账号信息
+		this.aliData.fullname = this.userInfo.alipay_name;
+		console.log(this.aliData.fullname);
+		this.aliData.alino = this.userInfo.alipay_code;
+		this.bankData.fullname = this.userInfo.bank_user_name;
+		this.bankData.bank = this.userInfo.bank_name;
+		this.bankData.bankno = this.userInfo.bank_code;
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		// 加载余额信息
+		async loadData() {
+			extractBank({}).then(({ data }) => {
+				console.log(data);
+				this.sxf = data.sxf;
+				this.money = data.commissionCount;
+				this.minPrice = data.minPrice;
+			});
+		},
+		// 跳转
+		navTo(url) {
+			uni.navigateTo({
+				url: url
+			});
+		},
+		// 切换选中对象
+		tabRadio(e) {
+			this.type = e.detail.value;
+			console.log(this.type);
+		},
+		// 提交
+		confirm() {
+			let data = {
+				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
+				money: this.withdrawal, //金额
+				money_type: 0 //0佣金1余额
+			};
+
+			if (this.withdrawal < this.minPrice) {
+				uni.showToast({
+					title: '提现金额不可少于' + this.minPrice,
+					duration: 2000,
+					mask: false,
+					icon: 'none'
+				});
+				return;
+			}
+			if (this.type == 'alipay') {
+				console.log('alipay');
+				data.name = this.aliData.fullname;
+				data.alipay_code = this.aliData.alino;
+			}
+			if (this.type == 'bank') {
+				data.name = this.bankData.fullname;
+				data.bankname = this.bankData.bank;
+				data.cardnum = this.bankData.bankno;
+			}
+
+			extractCash(data)
+				.then(e => {
+					getUserInfo({})
+						.then(({ data }) => {
+							this.setUserInfo(data);
+						})
+						.catch(e => {
+							console.log(e);
+						});
+					uni.showToast({
+						title: '申请成功!请等待审核打款',
+						duration: 2000,
+						position: 'top'
+					});
+				})
+				.catch(e => {
+					console.log();
+				});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	height: 100%;
+}
+.content-money {
+	padding: 30rpx 0;
+	background: #ffffff;
+}
+.flex {
+	background-color: #ffffff;
+	text-align: center;
+	margin: 0 30rpx;
+	border-radius: $border-radius-sm;
+	.buttom {
+		font-size: $font-lg;
+		width: 50%;
+	}
+	.interval {
+		width: 2px;
+		height: 60rpx;
+		background-color: #eeeeee;
+	}
+	.icon {
+		background-size: 100%;
+		font-size: 42rpx;
+		color: $font-color-dark;
+		font-weight: bold;
+		background-repeat: no-repeat;
+		background-position: center;
+	}
+	.text {
+		color: $font-color-light;
+	}
+}
+
+.row-box {
+	margin-top: 30rpx;
+	padding: 20rpx 30rpx;
+	background: #fff;
+	.title {
+		font-size: $font-base + 2rpx;
+		color: $font-color-dark;
+	}
+	.row {
+		display: flex;
+		align-items: center;
+		position: relative;
+		height: 80rpx;
+		.tit {
+			flex-shrink: 0;
+			width: 40rpx;
+			font-size: 30rpx;
+			color: $font-color-dark;
+		}
+		.input {
+			flex: 1;
+			font-size: 30rpx;
+			color: $font-color-dark;
+		}
+		.iconlocation {
+			font-size: 36rpx;
+			color: $font-color-light;
+		}
+
+		.buttom {
+			color: #fff;
+			font-size: $font-base;
+		}
+	}
+}
+.add-btn {
+	&.modified {
+		color: $base-color;
+	}
+	&.up {
+		background-color: $base-color;
+		color: #fff;
+	}
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 690rpx;
+	height: 80rpx;
+	margin: 0 auto;
+	margin-top: 30rpx;
+	font-size: $font-lg;
+	border-radius: 10rpx;
+	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+}
+
+.list {
+	padding-left: 30rpx;
+	margin-top: 30rpx;
+	background-color: #ffffff;
+	.box {
+		display: flex;
+		align-items: center;
+		width: 100%;
+		height: 120rpx;
+		border-bottom: 1px solid $border-color-light;
+		.icon {
+			font-size: 48rpx;
+			padding-right: 20rpx;
+			.icon-img {
+				height: 50rpx;
+				width: 50rpx;
+			}
+		}
+		.iconweixin1 {
+			color: #18bf16;
+		}
+		.iconzhifubao {
+			color: #08aaec;
+		}
+		.title-box {
+			flex-grow: 1;
+			text-align: left;
+			.title {
+				font-size: $font-base + 2rpx;
+				color: $font-color-base;
+			}
+			.node {
+				font-size: $font-sm;
+				color: $font-color-light;
+			}
+		}
+	}
+}
+/deep/ .uni-radio-input {
+	width: 45rpx;
+	height: 45rpx;
+}
+.row {
+	display: flex;
+	align-items: center;
+	position: relative;
+	padding: 0 30upx;
+	height: 110upx;
+	background: #fff;
+
+	.tit {
+		flex-shrink: 0;
+		width: 250upx;
+		font-size: 30upx;
+		color: $font-color-dark;
+	}
+	.input {
+		flex: 1;
+		font-size: 30upx;
+		color: $font-color-dark;
+	}
+	.iconlocation {
+		font-size: 36upx;
+		color: $font-color-light;
+	}
+}
+.tip {
+	padding: 20rpx;
+	color: #fd3b39;
+}
+</style>

+ 49 - 22
pages/money/pay.vue

@@ -52,6 +52,7 @@ export default {
 			froms: '', //保存h5中数据来源对象
 			// #endif
 			pinkid: '', //保存拼团商品id
+			store_id: '',
 			ispg: '' //是否是苹果
 		};
 	},
@@ -72,7 +73,6 @@ export default {
 			let prepage = this.$api.prePage();
 			computedOrderkey({
 				orderkey: this.orderKey,
-				couponId: prepage.couponChecked.id, //优惠券编号
 				addressId: prepage.addressData.id, //地址编号
 				useIntegral: prepage.checkedPoints ? 1 : 0
 			}).then(({ data }) => {
@@ -84,6 +84,9 @@ export default {
 		if (options.pinkid) {
 			this.pinkid = options.pinkid;
 		}
+		if (options.store_id) {
+			this.store_id = options.store_id;
+		}
 		// 载入余额
 		balance({}).then(({ data }) => {
 			// 获取余额
@@ -167,7 +170,7 @@ export default {
 					//#ifdef APP-PLUS
 					if (obj.payName == 'weixin' || obj.payName == 'routine') {
 						let da = e.data.result.jsConfig;
-						console.log('--da--', da);
+						console.log('--da--', e);
 						let data = {
 							appid: da.appid,
 							noncestr: da.noncestr,
@@ -196,7 +199,7 @@ export default {
 					}
 					if (obj.payName == 'ali') {
 						const url = e.data.result.jsConfig;
-						console.log(url, 'url');
+						console.log(e, 'url');
 						uni.requestPayment({
 							provider: 'alipay',
 							orderInfo: url,
@@ -272,26 +275,50 @@ export default {
 			let obj = this;
 			// 获取下单页面数据
 			let prepage = obj.$api.prePage();
+			let data = {};
+			if (obj.store_id == 0) {
+				data = {
+					real_name: prepage.addressData.real_name, //联系人名称
+					phone: prepage.addressData.phone, //联系人号码
+					// couponId: prepage.couponChecked.id, //优惠券编号
+					addressId: prepage.addressData.id, //支付地址id
+					useIntegral: prepage.checkedPoints ? 1 : 0, //是否积分抵扣1为是0为否
+					payType: obj.payName, //支付类型  weixin-微信 yue-余额
+					mark: prepage.desc, //备注
+					// #ifdef H5
+					from: obj.froms ? 'weixin' : 'H5', //来源
+					// #endif
+					// #ifdef MP-WEIXIN
+					from: 'routine', //来源
+					// #endif
+					// #ifdef APP-PLUS
+					from: 'app', //来源
+					// #endif
+					shipping_type: 1 //提货方式 1 快递 2自提
+				};
+			} else {
+				data = {
+					real_name: prepage.addressData.real_name, //联系人名称
+					phone: prepage.addressData.phone, //联系人号码
+					// couponId: prepage.couponChecked.id, //优惠券编号
+					addressId: prepage.addressData.id, //支付地址id
+					useIntegral: prepage.checkedPoints ? 1 : 0, //是否积分抵扣1为是0为否
+					payType: obj.payName, //支付类型  weixin-微信 yue-余额
+					mark: prepage.desc, //备注
+					// #ifdef H5
+					from: obj.froms ? 'weixin' : 'H5', //来源
+					// #endif
+					// #ifdef MP-WEIXIN
+					from: 'routine', //来源
+					// #endif
+					// #ifdef APP-PLUS
+					from: 'app', //来源
+					// #endif
+					store_id: obj.store_id,
+					shipping_type: 2 //提货方式 1 快递 2自提
+				};
+			}
 
-			let data = {
-				real_name: prepage.addressData.real_name, //联系人名称
-				phone: prepage.addressData.phone, //联系人号码
-				couponId: prepage.couponChecked.id, //优惠券编号
-				addressId: prepage.addressData.id, //支付地址id
-				useIntegral: prepage.checkedPoints ? 1 : 0, //是否积分抵扣1为是0为否
-				payType: obj.payName, //支付类型  weixin-微信 yue-余额
-				mark: prepage.desc, //备注
-				// #ifdef H5
-				from: obj.froms ? 'weixin' : 'H5', //来源
-				// #endif
-				// #ifdef MP-WEIXIN
-				from: 'routine', //来源
-				// #endif
-				// #ifdef APP-PLUS
-				from: 'app', //来源
-				// #endif
-				shipping_type: 1 //提货方式 1 快递 2自提
-			};
 			// 判断是否拼团商品
 			if (obj.pinkid) {
 				data.pinkId = obj.pinkid;

+ 38 - 26
pages/money/recharge.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<view class="top_box">
-			<text class="yue-tit">当前余额:</text>
+			<text class="yue-tit">当前{{ istype == 0 ? '余额' : '钱' }}:</text>
 			<text class="yue-num">¥{{ now_money | parseFloatNum }}</text>
 		</view>
 
@@ -18,22 +18,8 @@
 				</view>
 			</view>
 		</view>
-		<!-- <view class="line_box"></view> -->
+		<view class="tip" v-if="song != '' && istype == 1">当前活动:充值{{ song }}倍增值</view>
 
-		<!-- <view class="row-box">
-			<view class="title">充值金额</view>
-			<view class="row">
-				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="money" placeholder="请输入充值金额" placeholder-class="placeholder" />
-			</view>
-		</view> -->
-
-		<!-- <view class="rechar-box">
-			<view class="rechar-title">注意事项</view>
-			<view class="rechar-text" v-for="(item, index) in zhuyi" :key="index">
-				<text>{{ index + 1 }}.{{item}}</text>
-			</view>
-		</view> -->
 		<view class="line_box"></view>
 		<view class="box">
 			<view class="type-item b-b" @click="changePayType(1)" v-if="ispg == 'android'">
@@ -65,8 +51,9 @@ import { rechargeWechat, rechargeRoutine, rechargeIndex } from '@/api/wallet.js'
 // #ifdef APP-PLUS
 import { rechargeApp, rechargeAli, moneyChong } from '@/api/wallet.js';
 // #endif
-import { mapState } from 'vuex';
-import { spreadCommission, userBalance } from '@/api/wallet.js';
+import { mapState, mapMutations } from 'vuex';
+import { spreadCommission,barter } from '@/api/wallet.js';
+import {getUserInfo} from'@/api/user.js'
 export default {
 	filters: {
 		getMoneyStyle,
@@ -77,7 +64,9 @@ export default {
 	},
 	data() {
 		return {
+			istype:0,
 			type: 'weixin',
+			song:'',
 			money: 300, //充值金额
 			payLoding: false ,//是否加载中
 			list: [
@@ -96,18 +85,22 @@ export default {
 		};
 	},
 	onLoad(options) {
+		if(options.type) {
+			this.istype = options.type
+		}
 		this.ispg = uni.getSystemInfoSync().platform;
 		this.loadData();
 	},
 	computed: {
 		// #ifdef H5
-		...mapState(['weichatObj', 'userInfo'])
+		...mapState('user',['weichatObj', 'userInfo'])
 		// #endif
 		// #ifdef MP
-		...mapState(['userInfo'])
+		...mapState('user',['userInfo'])
 		// #endif
 	},
 	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
 		// 跳转
 		navTo(url) {
 			uni.navigateTo({
@@ -153,9 +146,17 @@ export default {
 		},
 
 		loadData() {
-			userBalance({}).then(({ data }) => {
-				this.now_money = data.now_money;
+			getUserInfo({}).then(({ data }) => {
+				this.setUserInfo(data);
+				if(this.istype == 0) {
+					this.now_money =  data.now_money
+				}else {
+					this.now_money =  data.barter_integral
+				}
 			});
+			barter({}).then(({data}) =>{
+				this.song = data.barter;
+			})
 		},
 
 		// 提交
@@ -171,6 +172,7 @@ export default {
 			rechargeWechat({
 				price: this.money,
 				from: this.type ,
+				re_type:this.istype == 0 ? '1' : '2'
 			}).then(e => {
 					let da = e.data.data;
 					obj.weichatObj.chooseWXPay({
@@ -195,10 +197,12 @@ export default {
 				.catch(e => {
 					obj.payLoding = false;
 					console.log(e);
+
 				});
 			// #endif
 			// #ifdef MP
-			rechargeRoutine({ price: this.money})
+			rechargeRoutine({ price: this.money,
+			re_type:this.istype == 0 ? '1' : '2'})
 				.then(e => {
 					let da = e.data;
 						wx.requestPayment({
@@ -228,10 +232,9 @@ export default {
 				});
 			// #endif
 			// #ifdef APP-PLUS
-			console.log("123456")
 			if (this.type == 'weixin') {
 				console.log("weixin")
-				rechargeApp({ price: this.money })
+				rechargeApp({ price: this.money,re_type:this.istype == 0 ? '1' : '2' })
 					.then(e => {
 						console.log(e,"123456");
 						let da = e.data;
@@ -251,6 +254,10 @@ export default {
 								console.log(res);
 							},
 							fail(res) {
+								// uni.showModal({
+								// 	title:'提示',
+								// 	content: JSON.stringify(res)
+								// })
 								console.log('微信掉起失败');
 								console.log(res, '失败');
 							}
@@ -263,7 +270,7 @@ export default {
 						console.log(e,"123456789");
 					});
 			} else {
-				rechargeAli({ price: this.money }).then(e => {
+				rechargeAli({ price: this.money,re_type:this.istype == 0 ? '1' : '2' }).then(e => {
 					console.log(e, 'url');
 					const url = e.msg;
 					uni.requestPayment({
@@ -319,6 +326,11 @@ page {
 	height: 20rpx;
 	background: #f8f8f8;
 }
+.tip {
+	font-size: 30rpx;
+	padding: 20rpx;
+	color: #e51c23;
+}
 .cz_box {
 	padding: 40rpx 20rpx 20rpx;
 	.cz_wrap {

+ 11 - 11
pages/money/wallet.vue

@@ -21,7 +21,7 @@
 		<view class="navbar">
 			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
 		</view>
-		<swiper :current="tabCurrentIndex" :style="{'height':maxheight+'px'}" class="swiper-box" duration="300" @change="changeTab">
+		<swiper :current="tabCurrentIndex" :style="{ height: maxheight + 'px' }" class="swiper-box" duration="300" @change="changeTab">
 			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
 				<scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadData">
 					<!-- 空白页 -->
@@ -73,7 +73,7 @@ export default {
 					console.log(data);
 					console.log(Math.floor((data.width / 750) * 300));
 					// 保存头部高度
-					this.maxheight =data.height - Math.floor((data.width / 750) * 570);
+					this.maxheight = data.height - Math.floor((data.width / 750) * 570);
 					console.log(this.maxheight);
 				}
 			)
@@ -82,17 +82,17 @@ export default {
 	data() {
 		return {
 			// 头部图高度
-			maxheight:'',
+			maxheight: '',
 			tabCurrentIndex: 0,
 			navList: [
-				{
-					state: 0,
-					text: '全部',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
+				// {
+				// 	state: 0,
+				// 	text: '全部',
+				// 	loadingType: 'more',
+				// 	orderList: [],
+				// 	page: 1, //当前页数
+				// 	limit: 10 //每次信息条数
+				// },
 				{
 					state: 1,
 					text: '支出',

+ 73 - 66
pages/order/createOrder.vue

@@ -5,7 +5,7 @@
 		</view> -->
 
 		<!-- 地址 -->
-		<navigator v-if="tabCurrentIndex == 0" url="/pages/set/address?source=1" class="address-section">
+		<navigator v-if="tabCurrentIndex == 0 && store_id == 0" url="/pages/set/address?source=1" class="address-section">
 			<view class="order-content" v-if="addressData.real_name">
 				<text class="iconfont iconlocation"></text>
 				<view class="cen">
@@ -26,6 +26,16 @@
 
 			<image class="a-bg" :src="addressImg"></image>
 		</navigator>
+		<view class="personal" v-if="store_id != 0">
+			<view class="info">
+				<view class="name">提货人</view>
+				<input type="text" class="box-right" v-model="addressData.real_name" style="color: #000000" placeholder="请填写提货人" />
+			</view>
+			<view class="info">
+				<view class="name">手机号</view>
+				<input type="text" class="box-right" v-model="addressData.phone" style="color: #000000" size="8" maxlength="11" placeholder="请填写收货人手机号" />
+			</view>
+		</view>
 		<!-- <navigator v-if="tabCurrentIndex == 1" url="/pages/address/shopList" class="address-section">
 			<view class="order-content" v-if="shopAddress.name">
 				<text class="iconfont iconlocation"></text>
@@ -73,14 +83,6 @@
 
 		<!-- 优惠明细 -->
 		<view class="yt-list">
-			<view class="yt-list-cell b-b" @click="couponListshow ? toggleMask('show') : ''">
-				<view class="cell-icon">券</view>
-				<text class="cell-tit clamp">优惠券</text>
-				<text class="cell-tip active" v-if="couponListshow && !couponChecked.coupon_price">选择优惠券</text>
-				<text class="cell-tip red" v-if="couponChecked.coupon_price">-¥{{ couponChecked.coupon_price }}</text>
-				<text class="cell-tip disabled" v-if="!couponListshow && !couponChecked.coupon_price">没有优惠券</text>
-				<text class="cell-more wanjia wanjia-gengduo-d"></text>
-			</view>
 			<view class="yt-list-cell b-b" v-if="moneyAll.storeFreePostage > 0">
 				<view class="cell-icon hb">减</view>
 				<text class="cell-tit clamp">商家促销</text>
@@ -94,9 +96,13 @@
 				<text class="cell-tip red">-¥35</text>
 			</view> -->
 			<view class="yt-list-cell b-b" v-if="isPao == 0 && isFu == 0">
-				<text class="cell-tit clamp">积分抵扣{{ '(当前积分:' + integralAll + ')' }}</text>
+				<text class="cell-tit clamp">积分和钱抵扣</text>
 				<view class="cell-tip"><radio @click="checkedPoints = !checkedPoints" color=" #5dbc7c" :checked="checkedPoints" /></view>
 			</view>
+			<view class="yt-list-cell b-b">
+				<text class="cell-tit clamp">{{ '(当前积分:' + integralAll + ')' }}{{ '(当前钱:' + integralyw + ')' }}</text>
+				<!-- <view class="cell-tip"><radio @click="checkedPoints = !checkedPoints" color=" #5dbc7c" :checked="checkedPoints" /></view> -->
+			</view>
 			<view class="yt-list-cell b-b">
 				<text class="cell-tit clamp">运费</text>
 				<text class="cell-tip">{{ Postage }}</text>
@@ -119,6 +125,10 @@
 				<text class="cell-tit clamp">积分抵扣</text>
 				<text class="cell-tip">-¥{{ integralMoney }}</text>
 			</view>
+			<view class="yt-list-cell b-b" v-if="checkedPoints && integralShow">
+				<text class="cell-tit clamp">钱抵扣</text>
+				<text class="cell-tip">-¥{{ integralywMoney }}</text>
+			</view>
 			<view class="yt-list-cell b-b" v-if="moneyAll.vipPrice > 0">
 				<text class="cell-tit clamp">VIP优惠</text>
 				<text class="cell-tip">-¥{{ moneyAll.vipPrice }}</text>
@@ -136,31 +146,11 @@
 		</view>
 
 		<!-- 优惠券面板 -->
-		<view class="mask" :class="maskState === 0 ? 'none' : maskState === 1 ? 'show' : ''" @click="toggleMask">
-			<view class="mask-content">
-				<!-- 优惠券页面,仿mt -->
-				<view class="coupon-item" @click="checkedCp(item)" v-for="(item, index) in couponList" :key="index">
-					<view class="con">
-						<view class="left">
-							<text class="title">{{ item.coupon_title }}</text>
-							<text class="time">领取时间{{ item.add_time }}</text>
-						</view>
-						<view class="right">
-							<text class="price">{{ item.coupon_price }}</text>
-							<text>满{{ item.use_min_price }}可用</text>
-						</view>
-						<view class="circle l"></view>
-						<view class="circle r"></view>
-					</view>
-					<text class="tips">有效期至{{ item.end_time }}</text>
-				</view>
-			</view>
-		</view>
 	</view>
 </template>
 
 <script>
-import { confirm, computedOrderkey, couponsOrder } from '@/api/order.js';
+import { confirm, computedOrderkey } from '@/api/order.js';
 import { getUserInfo } from '@/api/user.js';
 import { cartAdd } from '@/api/product.js';
 export default {
@@ -180,14 +170,9 @@ export default {
 					text: '到店自提'
 				}
 			],
-			maskState: 0, //优惠券面板显示状态
 			desc: '', //备注
 			gainPoint: '', //送积分
 			payType: 1, //1微信 2支付宝
-			// 优惠券列表
-			couponList: [],
-			couponListshow: false, //是有可以显示优惠券列表
-			couponChecked: {}, //选中的优惠券
 			// 收货地址
 			addressData: {},
 			// 店铺地址
@@ -214,12 +199,16 @@ export default {
 			orderKey: '', //订单id
 			checkedPoints: false, //判断是否积分抵扣
 			integralAll: 0, //可使用的积分
+			integralyw: 0, //可使用的钱
 			integralMoney: 0, //积分抵扣金额
+			integralywMoney: 0, //钱抵扣金额
 			integralShow: false, //是否显示积分抵扣金额
 			payType: true, //是否可支付
 			pinkid: '', //保存拼团商品id
 			isPao: 0,
-			isFu: 0
+			isFu: 0,
+			isyw: 0,
+			store_id: '' //店铺id
 		};
 	},
 	onLoad(option) {
@@ -229,8 +218,17 @@ export default {
 		if (option.isFu) {
 			this.isFu = option.isFu;
 		}
-		// 判断是否为拼团商品
+		if (option.isyw) {
+			this.isyw = option.isyw;
+		}
+		if (option.store_id) {
+			this.store_id = option.store_id;
+		}
+		if (this.isPao == 0 && this.isFu == 0) {
+			this.checkedPoints = true;
+		}
 		if (option.type == 'pink') {
+			// 判断是否为拼团商品
 			this.pinkid = option.pinkId;
 			this.cartAdd(option);
 		} else {
@@ -285,6 +283,7 @@ export default {
 		getUserInfo() {
 			getUserInfo({}).then(({ data }) => {
 				this.integralAll = data.integral;
+				this.integralyw = data.barter_integral;
 			});
 		},
 		// 计算支付金额
@@ -292,7 +291,6 @@ export default {
 			computedOrderkey({
 				orderkey: this.orderKey,
 				useIntegral: this.checkedPoints ? 1 : 0, //是否积分抵扣
-				couponId: this.couponChecked.id, //优惠券编号
 				addressId: this.addressData.id //地址编号
 			})
 				.then(({ data }) => {
@@ -301,7 +299,8 @@ export default {
 					this.integralShow = true;
 					// 获取支付金额
 					this.payPrice = +data.result.pay_price;
-					this.integralMoney = data.result.deduction_price;
+					this.integralMoney = data.result.use_integral;
+					this.integralywMoney = data.result.use_barter_integral;
 					this.gainPoint = data.result.gainPoint;
 				})
 				.catch(e => {
@@ -314,33 +313,10 @@ export default {
 		checkedIntegral() {
 			this.checkedPoints = !this.checkedPoints;
 		},
-		// 选中优惠券
-		checkedCp(item) {
-			this.couponChecked = item;
-			this.payMoneyNub();
-		},
-		// 加载优惠券列表
-		couponsOrder(money) {
-			couponsOrder({}, money).then(e => {
-				if (e.data.length > 0) {
-					this.couponListshow = true;
-				}
-				this.couponList = e.data;
-			});
-		},
 		//顶部tab点击
 		tabClick(index) {
 			this.tabCurrentIndex = index;
 		},
-		//显示优惠券面板
-		toggleMask(type) {
-			let timer = type === 'show' ? 10 : 300;
-			let state = type === 'show' ? 1 : 0;
-			this.maskState = 2;
-			setTimeout(() => {
-				this.maskState = state;
-			}, timer);
-		},
 		loadData() {
 			let obj = this;
 			confirm({ cartId: obj.cartId + '' }).then(({ data }) => {
@@ -350,8 +326,6 @@ export default {
 				obj.orderKey = data.orderKey; //订单key
 				// 计算金额
 				this.payMoneyNub();
-				// 加载优惠券
-				obj.couponsOrder(data.priceGroup.totalPrice);
 			});
 		},
 		// 购买数量变化
@@ -372,7 +346,7 @@ export default {
 				this.$api.msg('请选择收货地址');
 				return false;
 			}
-			let url = '/pages/money/pay?key=' + this.orderKey;
+			let url = '/pages/money/pay?key=' + this.orderKey + '&store_id=' + this.store_id;
 			if (this.pinkid) {
 				url += '&pinkid=' + this.pinkid;
 			}
@@ -837,4 +811,37 @@ page {
 		}
 	}
 }
+.personal {
+	margin-top: 15rpx;
+	display: flex;
+	flex-direction: column;
+	background-color: #ffffff;
+
+	.box-right {
+		width: 100%;
+		font-size: 30rpx;
+		text-align: right;
+		padding-right: 25rpx;
+	}
+
+	.info {
+		padding: 10rpx 25rpx;
+		display: flex;
+		align-items: center;
+		font-size: 30rpx;
+		justify-content: space-between;
+
+		.name {
+			width: 120rpx;
+		}
+
+		input {
+			margin-left: 12rpx;
+			width: 100%;
+			// background-color: pink;
+			display: block;
+			color: #999999;
+		}
+	}
+}
 </style>

File diff suppressed because it is too large
+ 34 - 13
pages/order/orderDetail.vue


+ 4 - 4
pages/product/common/productBottom.vue

@@ -9,7 +9,7 @@
 			<text>收藏</text>
 		</view>
 		<view class="action-btn-group">
-			<button type="primary" class=" action-btn no-border add-cart-btn" @click="buy(2)">加入购物车</button>
+			<!-- <button type="primary" class=" action-btn no-border add-cart-btn" @click="buy(2)">加入购物车</button> -->
 			<button type="primary" class=" action-btn no-border buy-now-btn" @click="buy(1)">立即购买</button>
 		</view>
 	</view>
@@ -27,7 +27,7 @@ export default {
 				return {};
 			}
 		},
-		goodsid:{
+		goodsid: {
 			default: ''
 		}
 	},
@@ -36,7 +36,7 @@ export default {
 	},
 	methods: {
 		buy(type) {
-			this.$emit('specOPne',type);
+			this.$emit('specOPne', type);
 		},
 		//收藏
 		toFavorite(item) {
@@ -125,7 +125,7 @@ export default {
 			display: flex;
 			align-items: center;
 			justify-content: center;
-			width: 270rpx;
+			width: 540rpx;
 			height: 100%;
 			font-size: $font-base;
 			padding: 0;

+ 9 - 3
pages/product/product.vue

@@ -20,7 +20,7 @@
 					<text class="selected-text">
 						购买赠送
 						<text class="num">{{ goodsObjact.give_point }}</text>
-						礼包积分
+						活动券
 					</text>
 				</view>
 			</view>
@@ -63,7 +63,7 @@
 						</text>
 					</view>
 				</view>
-				<view class="attr-list" v-if="isPao != 1">
+				<view class="attr-list">
 					<text>购买数量</text>
 					<view class="item-list">
 						<uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax" @eventChange="numberChange"></uni-number-box>
@@ -115,8 +115,10 @@ export default {
 	},
 	data() {
 		return {
+			store_id: '', //店铺id
 			isPao: 0, //是否是报单商品
 			isFu: 0, //是否是复购商品
+			isyw: 0, //是否是易物商品
 			goodsStore: 0, //选中库存
 			specList: [],
 			buys_show: true,
@@ -193,6 +195,9 @@ export default {
 		if (options.isPao) {
 			this.isPao = options.isPao;
 		}
+		if (options.isyw) {
+			this.isyw = options.isyw;
+		}
 		if (options.isFu) {
 			this.isFu = options.isFu;
 		}
@@ -339,6 +344,7 @@ export default {
 				obj.good_list = data.good_list; //保存猜你喜欢列表
 				obj.reply = data.reply; //保存评论列表
 				let goods = data.storeInfo;
+				obj.store_id = data.storeInfo.store_id;
 				obj.goodsObjact = goods;
 				if (obj.goodsObjact.description != null) {
 					obj.description = obj.goodsObjact.description.replace(/\<img/gi, '<img class="rich-img"');
@@ -394,7 +400,7 @@ export default {
 					if (obj.type == 1) {
 						// 跳转到支付页
 						uni.navigateTo({
-							url: '/pages/order/createOrder?id=' + da.cartId + '&isPao=' + obj.isPao + '&isFu=' + obj.isFu
+							url: '/pages/order/createOrder?id=' + da.cartId + '&isPao=' + obj.isPao + '&isyw=' + obj.isyw + '&isFu=' + obj.isFu + '&store_id=' + obj.store_id
 						});
 					}
 					if (obj.type == 2) {

+ 28 - 7
pages/public/login.vue

@@ -54,6 +54,7 @@
 import { mapMutations } from 'vuex';
 import { login } from '@/api/login.js';
 import { getUserInfo } from '@/api/user.js';
+import { getAddressList, setAddressDefault, addressDel } from '@/api/user.js';
 import { getFileIndex, getFile, writerTxt, getFileText } from '@/utils/fileController.js';
 // #ifdef APP-PLUS
 // applelogin接口需要开发编写,基础项目中可能没有
@@ -227,21 +228,41 @@ export default {
 						//#endif
 						// 保存返回用户数据
 						obj.setUserInfo(e.data);
-						let ur = uni.getStorageSync('present') || '/pages/index/index';
-						//成功跳转首页
-						uni.switchTab({
-							url: ur,
-							fail(e) {
-								uni.navigateTo({
+						getAddressList({
+							page: 1,
+							limit: 100
+						}).then(({ data }) => {
+							if (data.length != 0) {
+								//成功跳转首页
+								uni.switchTab({
 									url: ur,
 									fail(e) {
 										uni.navigateTo({
-											url: '/pages/index/index'
+											url: ur,
+											fail(e) {
+												uni.navigateTo({
+													url: '/pages/index/index'
+												});
+											}
 										});
 									}
 								});
+							} else {
+								uni.showModal({
+									title: '提示',
+									content: '您未填写收货地址,请您先去填写收货地址',
+									showCancel: false,
+									success: function(res) {
+										if (res.confirm) {
+											uni.navigateTo({
+												url: '/pages/set/address'
+											});
+										}
+									}
+								});
 							}
 						});
+						let ur = uni.getStorageSync('present') || '/pages/index/index';
 					});
 				})
 				.catch(function(e) {

+ 31 - 8
pages/set/addressManage.vue

@@ -10,7 +10,12 @@
 		</view>
 		<view class="row b-b">
 			<text class="tit">地址</text>
-			<pickerAddress class="input" @change="onCityClick">{{addressDetail||'请选择地址'}}</pickerAddress>
+			<pickerAddress class="input" @change="onCityClick">{{ addressDetail || '请选择地址' }}</pickerAddress>
+			<text class="iconfont iconlocation"></text>
+		</view>
+		<view class="row b-b" v-if="addressDetail">
+			<text class="tit">选择镇</text>
+			<picker :range="twonlist" range-key="name" class="input" @change="onTwonClick">{{ twon || '请选择镇' }}</picker>
 			<text class="iconfont iconlocation"></text>
 		</view>
 		<view class="row b-b">
@@ -37,8 +42,8 @@
 import uniList from '@/components/uni-list/uni-list.vue';
 import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
 import uniPopup from '@/components/uni-popup/uni-popup.vue';
-import  pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
-import { addressEdit } from '@/api/user.js';
+import pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
+import { addressEdit, city_lists } from '@/api/user.js';
 export default {
 	components: {
 		uniList,
@@ -48,6 +53,8 @@ export default {
 	},
 	data() {
 		return {
+			twon: '',
+			twonlist: [],
 			addressDetail: '',
 			addressData: {
 				name: '',
@@ -81,6 +88,8 @@ export default {
 				default: data.is_default == 1,
 				id: data.id
 			};
+			this.twon = data.town;
+			this.chooseTwon(data.district);
 			this.addressDetail = data.province + data.city + data.district;
 		}
 		this.manageType = option.type;
@@ -90,12 +99,21 @@ export default {
 	},
 	methods: {
 		// 选中城市切换
-		onCityClick({data}) {
+		onCityClick({ data }) {
 			let address = this.addressData.address;
 			address.province = data[0];
 			address.city = data[1];
 			address.district = data[2];
 			this.addressDetail = data.join('');
+			this.chooseTwon(address.district);
+		},
+		onTwonClick(e) {
+			this.twon = this.twonlist[e.detail.value].name;
+		},
+		chooseTwon(add) {
+			city_lists({ address: add }).then(({ data }) => {
+				this.twonlist = data;
+			});
 		},
 		//地图选择地址
 		chooseLocation() {
@@ -127,6 +145,10 @@ export default {
 				this.$api.msg('请在地图选择所在位置');
 				return;
 			}
+			if (!obj.twon) {
+				this.$api.msg('请选择所在的镇');
+				return;
+			}
 			if (!data.area) {
 				this.$api.msg('请填写门牌号信息');
 				return;
@@ -134,6 +156,7 @@ export default {
 
 			//this.$api.prePage()获取上一页实例,可直接调用上页所有数据和方法,在App.vue定义
 			addressEdit({
+				town: obj.twon,
 				real_name: data.name,
 				phone: data.mobile,
 				address: {
@@ -143,13 +166,13 @@ export default {
 				},
 				detail: data.area,
 				is_default: data.default,
-				id: data.id||"",
-				type:1
+				id: data.id || '',
+				type: 1
 			}).then(function(e) {
 				obj.$api.prePage().refreshList();
 				uni.showToast({
-					title:'提交成功',
-					duration:2000
+					title: '提交成功',
+					duration: 2000
 				});
 				setTimeout(function() {
 					uni.navigateBack();

+ 99 - 102
pages/set/set.vue

@@ -1,129 +1,126 @@
 <template>
 	<view class="container">
 		<uni-list>
-		    <uni-list-item title="个人资料" @click="navTo('/pages/set/userinfo')" ></uni-list-item>
- 		    <uni-list-item title="收货地址" @click="navTo('/pages/set/address')" ></uni-list-item>
+			<uni-list-item title="个人资料" @click="navTo('/pages/set/userinfo')"></uni-list-item>
+			<uni-list-item title="收货地址" @click="navTo('/pages/set/address')"></uni-list-item>
 		</uni-list>
 		<uni-list class="margin-t-20" v-if="new_version != ''">
-		    <uni-list-item title="检查更新"  @click="updates()">
+			<uni-list-item title="检查更新" @click="updates()">
 				<template slot="right">
 					当前版本{{ new_version }}
 				</template>
 			</uni-list-item>
 		</uni-list>
-		<view class="list-cell log-out-btn" @click="toLogout">
-			<text class="cell-tit">退出登录</text>
-		</view>
+		<view class="list-cell log-out-btn" @click="toLogout"><text class="cell-tit">退出登录</text></view>
 	</view>
 </template>
 
 <script>
-	import uniList from "@/components/uni-list/uni-list.vue"
-	import uniListItem from "@/components/uni-list-item/uni-list-item.vue"
-	import { logout,version } from '@/api/set.js';
-	import {  
-	    mapMutations  
-	} from 'vuex';
-	// #ifdef APP-PLUS
-	import { getUpApp } from '@/utils/upApp.js';
-	// #endif
-	export default {
-		components: {
-			uniList,uniListItem
-		},
-		data() {
-			return {
-				new_version:'',
-			};
+import uniList from '@/components/uni-list/uni-list.vue';
+import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
+import { logout, version } from '@/api/set.js';
+import { mapMutations } from 'vuex';
+// #ifdef APP-PLUS
+import { getUpApp } from '@/utils/upApp.js';
+// #endif
+export default {
+	components: {
+		uniList,
+		uniListItem
+	},
+	data() {
+		return {
+			new_version: ''
+		};
+	},
+	onShow() {
+		const obj = this;
+		//#ifdef APP-PLUS
+		plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
+			// 获取当前系统
+			obj.new_version = wgtinfo.version;
+			console.log(wgtinfo.version, '123456');
+		});
+		//#endif
+	},
+	methods: {
+		...mapMutations('user', ['logout']),
+		navTo(url) {
+			uni.navigateTo({
+				url: url
+			});
 		},
-		onShow() {
+		updates() {
 			const obj = this;
-			//#ifdef APP-PLUS
-			plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
-				// 获取当前系统
-				obj.new_version = wgtinfo.version;
-				console.log(wgtinfo.version,"123456");
+			version().then(({ data }) => {
+				if (data.version_code == obj.new_version) {
+					obj.$api.msg('已经是最新版本了');
+				} else {
+					getUpApp();
+				}
 			});
-			//#endif
 		},
-		methods:{
-			...mapMutations('user',['logout']),
-			navTo(url){
-				uni.navigateTo({
-					url:url
-				})
-			},
-			updates(){
-				const obj = this
-				version().then(({data}) =>{
-					if(data.version_code == obj.new_version){
-						obj.$api.msg('已经是最新版本了')
-					}else{
-						getUpApp();
-					}
-				})
-				
-			},
-			//退出登录
-			toLogout(){
-				let obj = this;
-				uni.showModal({
-				    content: '确定要退出登录么',
-				    success: (e)=>{
-				    	if(e.confirm){
-							logout({}).then((e) => {
+		//退出登录
+		toLogout() {
+			let obj = this;
+			uni.showModal({
+				content: '确定要退出登录么',
+				success: e => {
+					if (e.confirm) {
+						logout({})
+							.then(e => {
 								uni.navigateBack();
-							}).catch((e) => {
-								console.log(e);
 							})
-				    		obj.logout();
-				    	}
-				    }
-				});
-			},
-			//switch切换触发方法
-			switchChange(e){
-				console.log(e);
-				let statusTip = e.value ? '打开': '关闭';
-				this.$api.msg(`${statusTip}消息推送`);
-			},
-
+							.catch(e => {
+								console.log(e);
+							});
+						obj.logout();
+					}
+				}
+			});
+		},
+		//switch切换触发方法
+		switchChange(e) {
+			console.log(e);
+			let statusTip = e.value ? '打开' : '关闭';
+			this.$api.msg(`${statusTip}消息推送`);
 		}
 	}
+};
 </script>
 
-<style lang='scss'>
-	page{
-		background: $page-color-base;
-	}
-	.list-cell{
-		display:flex;
-		align-items:baseline;
-		padding: 20rpx $page-row-spacing;
-		line-height:60rpx;
-		position:relative;
-		background: #fff;
-		justify-content: center;
-		&.log-out-btn{
-			margin-top: 40rpx;
-			.cell-tit{
-				color: $uni-color-primary;
-				text-align: center;
-				margin-right: 0;
-			}
-		}
-		.cell-tit{
-			flex: 1;
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			margin-right:10rpx;
-		}
-		.cell-tip{
-			font-size: $font-base;
-			color: $font-color-light;
-		}
-		switch{
-			transform: translateX(16rpx) scale(.84);
+<style lang="scss">
+page {
+	background: $page-color-base;
+}
+.list-cell {
+	display: flex;
+	align-items: baseline;
+	padding: 20rpx $page-row-spacing;
+	line-height: 60rpx;
+	position: relative;
+	background: #fff;
+	justify-content: center;
+	&.log-out-btn {
+		margin-top: 40rpx;
+		.cell-tit {
+			color: $uni-color-primary;
+			text-align: center;
+			margin-right: 0;
 		}
 	}
+	.cell-tit {
+		flex: 1;
+		font-size: $font-base + 2rpx;
+		color: $font-color-dark;
+		margin-right: 10rpx;
+	}
+	.cell-tip {
+		font-size: $font-base;
+		color: $font-color-light;
+	}
+	switch {
+		transform: translateX(16rpx) scale(0.84);
+	}
+}
 </style>

+ 7 - 6
pages/set/userinfo.vue

@@ -51,16 +51,17 @@ export default {
 	methods: {
 		...mapMutations('user', ['logout']),
 		imgsub() {
+			const obj = this;
 			uni.showModal({
 				title: '提示',
-				content: '需要使用摄像头或图库权限来进行个性化定义头像',
+				content: '需要使用摄像头或图库权限来进行定义头像',
 				success: function(res) {
 					if (res.confirm) {
 						upload({
 							filename: ''
 						}).then(data => {
-							console.log('data', data);
-							this.userInfo.avatar = data[0].url;
+							console.log('data', obj.userInfo);
+							obj.userInfo.avatar = data[0].url;
 						});
 					} else if (res.cancel) {
 						console.log('用户点击取消');
@@ -175,7 +176,7 @@ export default {
 	margin: 158rpx auto 30rpx;
 	width: 560rpx;
 	height: 80rpx;
-	background: linear-gradient(0deg, #2e58ff, #32c6ff);
+	background: #5dbc7c;
 	border-radius: 40px;
 	color: #ffffff;
 }
@@ -186,10 +187,10 @@ export default {
 	margin: 0 auto 30rpx;
 	width: 560rpx;
 	height: 80rpx;
-	border: 1px solid #32c6ff;
+	border: 1px solid #5dbc7c;
 	background: #ffffff;
 	border-radius: 40px;
-	color: #32c6ff;
+	color: #5dbc7c;
 }
 .psw-wrapper {
 	width: 548rpx;

+ 403 - 0
pages/store/createOrder.vue

@@ -0,0 +1,403 @@
+<template>
+	<view>
+		<view class="vheigh"></view>
+		<!-- 金额明细 -->
+		<view class="yt-list">
+			<view class="yt-list-cell b-b">
+				<text class="cell-tit clamp">积分和钱抵扣</text>
+				<view class="cell-tip"><radio @click="jf()" color=" #5dbc7c" :checked="integral" /></view>
+			</view>
+			<view class="yt-list-cell b-b">
+				<text class="cell-tit clamp">{{ '(当前积分:' + integralAll + ')' }}{{ '(当前钱:' + integralyw + ')' }}</text>
+			</view>
+		</view>
+		<view class="yt-list">
+			<view class="yt-list-cell b-b">
+				<text class="cell-tit clamp">支付金额</text>
+				<text class="cell-tip">¥{{ info.price }}</text>
+			</view>
+			<view class="yt-list-cell b-b" v-if="integral">
+				<text class="cell-tit clamp">积分抵扣</text>
+				<text class="cell-tip">-¥{{ info.sy_integral }}</text>
+			</view>
+			<view class="yt-list-cell b-b" v-if="integral">
+				<text class="cell-tit clamp">钱抵扣</text>
+				<text class="cell-tip">-¥{{ info.sy_barter_integral }}</text>
+			</view>
+		</view>
+
+		<!-- 底部 -->
+		<view class="footer">
+			<view class="price-content">
+				<text>实付款</text>
+				<text class="price-tip">¥</text>
+				<text class="price">{{ info.pay_price }}</text>
+			</view>
+			<text class="submit" :class="{ submitNo: !payType }" @click="payType ? submit() : ''">提交订单</text>
+		</view>
+
+		<!-- 优惠券面板 -->
+	</view>
+</template>
+
+<script>
+import { calculation } from '@/api/order.js';
+import { getUserInfo } from '@/api/user.js';
+export default {
+	data() {
+		return {
+			payType: true, //是否可支付
+			store_id: '',
+			info: {},
+			integralAll: 0, //可使用的积分
+			integralyw: 0, //可使用的易物积分
+			integral: true //是否积分抵扣
+		};
+	},
+	onLoad(opt) {
+		this.price = opt.money;
+		this.store_id = opt.id;
+		this.loadData();
+		this.getUserInfo();
+	},
+	methods: {
+		loadData() {
+			calculation({ price: this.price, store_id: this.store_id, integral: this.integral ? 1 : 0 }).then(({ data }) => {
+				this.info = data;
+			});
+		},
+		// 加载用户基础信息
+		getUserInfo() {
+			getUserInfo({}).then(({ data }) => {
+				this.integralAll = data.integral;
+				this.integralyw = data.barter_integral;
+			});
+		},
+		jf() {
+			this.integral = !this.integral;
+			this.loadData;
+		},
+		submit() {
+			let url = '/pages/store/pay?key=' + this.info.cache + '&money=' + this.info.pay_price;
+			uni.navigateTo({
+				url
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #fff;
+	padding-bottom: 100rpx;
+}
+.vheigh {
+	height: var(--status-bar-height);
+	background-color: #fff;
+}
+.yt-list {
+	margin-top: 16rpx;
+	background: #fff;
+}
+.yt-list-cell {
+	display: flex;
+	align-items: center;
+	padding: 10rpx 30rpx 10rpx 40rpx;
+	line-height: 70rpx;
+	position: relative;
+
+	&.cell-hover {
+		background: #fafafa;
+	}
+
+	&.b-b:after {
+		left: 30rpx;
+	}
+
+	.cell-icon {
+		height: 32rpx;
+		width: 32rpx;
+		font-size: 22rpx;
+		color: #fff;
+		text-align: center;
+		line-height: 32rpx;
+		background: #f85e52;
+		border-radius: 4rpx;
+		margin-right: 12rpx;
+
+		&.hb {
+			background: #ffaa0e;
+		}
+
+		&.lpk {
+			background: #3ab54a;
+		}
+	}
+
+	.cell-more {
+		align-self: center;
+		font-size: 24rpx;
+		color: $font-color-light;
+		margin-left: 8rpx;
+		margin-right: -10rpx;
+	}
+
+	.cell-tit {
+		flex: 1;
+		font-size: 26rpx;
+		color: $font-color-light;
+		margin-right: 10rpx;
+	}
+
+	.cell-tip {
+		font-size: 26rpx;
+		color: $font-color-dark;
+		&.disabled {
+			color: $font-color-light;
+		}
+		&.active {
+			color: $base-color;
+		}
+		&.red {
+			color: $base-color;
+		}
+	}
+
+	&.desc-cell {
+		.cell-tit {
+			max-width: 90rpx;
+		}
+	}
+	.desc {
+		flex: 1;
+		text-align: right;
+		font-size: $font-base;
+		color: $font-color-dark;
+	}
+}
+
+/* 支付列表 */
+.pay-list {
+	padding-left: 40rpx;
+	margin-top: 16rpx;
+	background: #fff;
+	.pay-item {
+		display: flex;
+		align-items: center;
+		padding-right: 20rpx;
+		line-height: 1;
+		height: 110rpx;
+		position: relative;
+	}
+	.icon-weixinzhifu {
+		width: 80rpx;
+		font-size: 40rpx;
+		color: #6bcc03;
+	}
+	.icon-alipay {
+		width: 80rpx;
+		font-size: 40rpx;
+		color: #06b4fd;
+	}
+	.icon-xuanzhong2 {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		width: 60rpx;
+		height: 60rpx;
+		font-size: 40rpx;
+		color: $base-color;
+	}
+	.tit {
+		font-size: 32rpx;
+		color: $font-color-dark;
+		flex: 1;
+	}
+}
+
+.footer {
+	position: fixed;
+	left: 0;
+	bottom: 0;
+	z-index: 995;
+	display: flex;
+	align-items: center;
+	width: 100%;
+	height: 90rpx;
+	justify-content: space-between;
+	font-size: 30rpx;
+	background-color: #fff;
+	z-index: 998;
+	color: $font-color-base;
+	box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
+	.price-content {
+		padding-left: 30rpx;
+	}
+	.price-tip {
+		color: $font-color-base;
+		margin-left: 8rpx;
+	}
+	.price {
+		font-size: 36rpx;
+		color: $font-color-base;
+	}
+	.submit {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		width: 280rpx;
+		height: 100%;
+		color: #fff;
+		font-size: 32rpx;
+		background-color: $base-color;
+		&.submitNo {
+			background-color: $font-color-disabled;
+		}
+	}
+}
+
+/* 优惠券面板 */
+.mask {
+	display: flex;
+	align-items: flex-end;
+	position: fixed;
+	left: 0;
+	top: var(--window-top);
+	bottom: 0;
+	width: 100%;
+	background: rgba(0, 0, 0, 0);
+	z-index: 9995;
+	transition: 0.3s;
+	.mask-content {
+		width: 100%;
+		max-height: 70vh;
+		background: #f3f3f3;
+		transform: translateY(100%);
+		transition: 0.3s;
+		overflow-y: scroll;
+	}
+	&.none {
+		display: none;
+	}
+	&.show {
+		background: rgba(0, 0, 0, 0.4);
+
+		.mask-content {
+			transform: translateY(0);
+		}
+	}
+}
+
+/* 优惠券列表 */
+.coupon-item {
+	display: flex;
+	flex-direction: column;
+	margin: 20rpx 24rpx;
+	background: #fff;
+	.con {
+		display: flex;
+		align-items: center;
+		position: relative;
+		height: 120rpx;
+		padding: 0 30rpx;
+		&:after {
+			position: absolute;
+			left: 0;
+			bottom: 0;
+			content: '';
+			width: 100%;
+			height: 0;
+			border-bottom: 1px dashed #f3f3f3;
+			transform: scaleY(50%);
+		}
+	}
+	.left {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		flex: 1;
+		overflow: hidden;
+		height: 100rpx;
+	}
+	.title {
+		font-size: 32rpx;
+		color: $font-color-dark;
+		margin-bottom: 10rpx;
+	}
+	.time {
+		font-size: 24rpx;
+		color: $font-color-light;
+	}
+	.right {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		font-size: 26rpx;
+		color: $font-color-base;
+		height: 100rpx;
+	}
+	.price {
+		font-size: 44rpx;
+		color: $base-color;
+		&:before {
+			content: '¥';
+			font-size: 34rpx;
+		}
+	}
+	.tips {
+		font-size: 24rpx;
+		color: $font-color-light;
+		line-height: 60rpx;
+		padding-left: 30rpx;
+	}
+	.circle {
+		position: absolute;
+		left: -6rpx;
+		bottom: -10rpx;
+		z-index: 10;
+		width: 20rpx;
+		height: 20rpx;
+		background: #f3f3f3;
+		border-radius: 100px;
+		&.r {
+			left: auto;
+			right: -6rpx;
+		}
+	}
+}
+.personal {
+	margin-top: 15rpx;
+	display: flex;
+	flex-direction: column;
+	background-color: #ffffff;
+
+	.box-right {
+		width: 100%;
+		font-size: 30rpx;
+		text-align: right;
+		padding-right: 25rpx;
+	}
+
+	.info {
+		padding: 10rpx 25rpx;
+		display: flex;
+		align-items: center;
+		font-size: 30rpx;
+		justify-content: space-between;
+
+		.name {
+			width: 120rpx;
+		}
+
+		input {
+			margin-left: 12rpx;
+			width: 100%;
+			// background-color: pink;
+			display: block;
+			color: #999999;
+		}
+	}
+}
+</style>

+ 1520 - 0
pages/store/index.vue

@@ -0,0 +1,1520 @@
+<template>
+	<view class="container">
+		<view class="carousel-section">
+			<swiper class="carousel" autoplay="true" duration="400" interval="5000" @change="swiperChange" :indicator-dots="true" indicator-active-color="#FFFFFF">
+				<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item">
+					<image :src="item.img" mode="aspectFill" @click="bannerNavToUrl(item)"></image>
+				</swiper-item>
+			</swiper>
+			<view class="search flex">
+				<view class="shop-name clamp">{{ chooseDistrict || '定位' }}</view>
+				<image src="../../static/icon/dingwei.png" mode="widthFix" style="width: 11rpx;"></image>
+				<view class="input-box flex" @click.stop="clickSearch">
+					<view class=" input-content flex">
+						<view class="iconfont iconsearch"></view>
+						<view class="input"><input type="text" disabled value="搜索附近门店" /></view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<swiper :interval="3000" :duration="1000" style="height: 300rpx;background: #fff;">
+			<swiper-item v-for="(shopitem, shopindex) in shopList" :key="shopindex">
+				<view class="shop-list flex" style="padding-top: 40rpx;">
+					<view class="shop-item flex" v-for="(item, index) in shopitem" @click="navto('/pages/store/shopList?id=' + item.id)">
+						<image :src="item.pic" mode="" class="shop-img"></image>
+						<view class="shop-name">{{ item.cate_name }}</view>
+					</view>
+				</view>
+			</swiper-item>
+		</swiper>
+		<!-- 门店列表 -->
+		<view class="" style="height: 20rpx;"></view>
+		<view class="shop">
+			<view class="shop-title">
+				<view class="shop-item" @click="changePx(0)">
+					<view class="sitem-font" :class="{ choose: PXType == 0 }">智能排序</view>
+					<image class="jt-down" src="https://hy.liuniu946.com/app/index/index06.png" mode=""></image>
+				</view>
+				<view class="shop-item" @click="changePx(1)">
+					<view class="sitem-font" :class="{ choose: PXType == 1 }">位置距离</view>
+					<image class="jt-down" src="https://hy.liuniu946.com/app/index/index06.png" mode=""></image>
+				</view>
+				<view class="shop-item" @click="changePx(2)">
+					<view class="sitem-font" :class="{ choose: PXType == 2 }">折扣优惠</view>
+					<image class="jt-down" src="https://hy.liuniu946.com/app/index/index06.png" mode=""></image>
+				</view>
+			</view>
+		</view>
+		<view class="" style="height: 20rpx;"></view>
+		<view class="djq-wrap flex f-ai-s" v-for="storeitem in storeList" @click="navto('/pages/store/shopDetail?id=' + storeitem.id)">
+			<image :src="storeitem.image" mode="" class="djq-img"></image>
+			<view class="djq-right pl20">
+				<view class="djq-tit flex f-j-sb f-ai-s">
+					<view class="djq-name clamp">{{ storeitem.name }}</view>
+					<view class="djq-dis">
+						<image src="https://hy.liuniu946.com/app/index/index10.png" mode=""></image>
+						距离{{ storeitem.range * 1 }}KM
+					</view>
+				</view>
+				<view class="flex f-d-c f-j-sb f-ai-s fg1" style="height: 110rpx;">
+					<view class="djq-dz clamp">{{ storeitem.detailed_address }}</view>
+					<view class="djq-hd flex f-j-sb">
+						<view class="hd-btn">
+							<image src="../../static/icon/call.png" mode="" style="margin-right: 15rpx;" @click.stop="makeCall(storeitem.phone)"></image>
+							<!-- #ifdef H5 -->
+							<image src="../../static/icon/dh.png" mode="" @click.stop="toGaodeMap(storeitem.latitude, storeitem.longitude, storeitem.name)"></image>
+							<!-- #endif -->
+							<!-- #ifdef MP -->
+							<image src="../../static/icon/dh.png" mode="" @click.stop="dh(storeitem)"></image>
+							<!-- #endif -->
+							<!-- #ifdef APP-PLUS -->
+							<image src="../../static/icon/dh.png" mode="" @click.stop="gomapApp(storeitem.latitude, storeitem.longitude, storeitem.name)"></image>
+							<!-- #endif -->
+						</view>
+					</view>
+				</view>
+				<view class="" style="padding: 10rpx 0 0 0;" v-if="storeitem.cou && storeitem.cou.length > 0">
+					<view class="left-btm flex f-j-s" v-for="qitem in storeitem.cou">
+						<view class="j-price">
+							<text>¥</text>
+							{{ qitem.coupon_price }}
+						</view>
+						<view class="j-name">{{ qitem.title }}</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<uni-load-more :status="loadingType"></uni-load-more>
+	</view>
+</template>
+
+<script>
+// 地区选择
+import LeeSelectCity from '@/components/lee-select-city/lee-select-city.vue';
+
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import { store_cate, getStoreList, getCity } from '@/api/shop.js';
+import { lookSubpoints, lookOneself } from '../../api/user.js';
+import seckill from '../../components/seckill/seckill.vue';
+import { loadIndexs, getVip } from '@/api/index.js';
+import { getUserInfo, spread } from '@/api/user.js';
+import { setCoupons } from '@/api/functionalUnit.js';
+import { getBargainList, getProducts } from '@/api/product.js';
+import { interceptor } from '@/utils/loginUtils';
+import { openMap } from '@/utils/rocessor';
+import { mapState, mapMutations } from 'vuex';
+// #ifdef H5
+import { weixindata, shareLoad } from '@/utils/wxAuthorized';
+// #endif
+export default {
+	components: {
+		seckill,
+		LeeSelectCity
+	},
+	data() {
+		return {
+			page: 1,
+			limitt: 20,
+			loadingType: 'more',
+			district: '定位中',
+			PXType: 0, //店铺排序规则 0-》智能排序 1-》距离排序 2-》销量排序
+			storeList: [],
+			current: 0,
+			shareShow: false, //分享海报
+			pageProportion: 0, //保存页面基于750宽度的比例
+			swiperHeight: 0,
+			checkid: 0,
+			titleNViewBackground: '',
+			swiperCurrent: 0,
+			swiperLength: 0,
+			carouselList: [], //轮播列表
+			bastList: [], //会员礼包
+			page: 1,
+			limit: 5,
+			firstList: [],
+			goodList: [],
+			shopList: [],
+			period: 1
+		};
+	},
+	computed: {
+		...mapState(['loginInterceptor', 'baseURL', 'latitude', 'longitude', 'weichatObj', 'chooseDistrict']),
+		...mapState('user', ['hasLogin', 'userInfo'])
+	},
+	onReachBottom() {
+		this.getStoreList();
+	},
+	onLoad: function(option) {
+		this.getaddress();
+		// #ifdef MP
+		if (option.scene) {
+			// 存储小程序邀请人
+			uni.setStorage({
+				key: 'spread_code',
+				data: option.scene
+			});
+		}
+		// #endif
+		// #ifdef H5
+		this.IndexShare();
+		//#endif
+	},
+	watch: {
+		// PXType(val, old) {
+		// 	console.log('切换显示')
+		// 	this.getStoreList()
+		// },
+		// chooseDistrict(val,old) {
+		// 	this.reGetStoreList()
+		// }
+	},
+	onShow: function() {
+		this.getStoreCate();
+		this.getGoodList();
+		this.loadData();
+	},
+	//下拉刷新
+	onPullDownRefresh() {
+		this.loadData();
+	},
+	// #ifndef MP
+	// 监听导航栏输入框点击事件
+	onNavigationBarSearchInputClicked(e) {
+		//跳转到搜索页面
+		this.clickSearch();
+	},
+	//点击导航栏 buttons 时触发
+	onNavigationBarButtonTap(e) {
+		const index = e.index;
+		if (index === 0) {
+			this.$api.msg('点击了扫描');
+		} else if (index === 1) {
+			// #ifdef APP-PLUS
+			const pages = getCurrentPages();
+			const page = pages[pages.length - 1];
+			const currentWebview = page.$getAppWebview();
+			currentWebview.hideTitleNViewButtonRedDot({
+				index
+			});
+			// #endif
+			uni.navigateTo({
+				url: '/user/page/notice'
+			});
+		}
+	},
+
+	// #endif
+	methods: {
+		...mapMutations(['setLat', 'setLon', 'setChoose']),
+		// 切换排序
+		changePx(index) {
+			let obj = this;
+			obj.PXType = index;
+
+			console.log('切换显示');
+			this.page = 1;
+			this.loadingType = 'more';
+			this.getStoreList('reload');
+		},
+		// 刷新门店列表
+		reGetStoreList() {
+			this.page = 1;
+			this.loadingType = 'more';
+			this.storeList = [];
+			console.log('地址刷新');
+			this.getStoreList();
+		},
+		// 计算距离
+		space(lat1, lng1, lat2, lng2) {
+			console.log(lat1, lng1, lat2, lng2);
+			var radLat1 = (lat1 * Math.PI) / 180.0;
+			var radLat2 = (lat2 * Math.PI) / 180.0;
+			var a = radLat1 - radLat2;
+			var b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0;
+			var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
+			s = s * 6378.137;
+			s = Math.round(s * 10000) / 10000;
+			// return s * 1000; // 单位米
+			return s; //单位km
+		},
+		// 获取店铺分类
+		getStoreCate() {
+			let obj = this;
+			store_cate().then(res => {
+				console.log(res);
+				obj.shopList = obj.chunkArr(res.data, 10);
+				console.log(obj.shopList, 'this.shopList+++++++++++++');
+			});
+		},
+		// 拨打电话
+		makeCall(phone) {
+			uni.makePhoneCall({
+				phoneNumber: phone //仅为示例
+			});
+		},
+		// 导航
+		dh(item) {
+			wx.openLocation({
+				latitude: item.latitude * 1,
+				longitude: item.longitude * 1,
+				name: item.name,
+				address: item.detailed_address
+			});
+		},
+		// 获取商店列表
+		getStoreList(type) {
+			let obj = this;
+			if (obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
+				return;
+			}
+			obj.loadingType = 'loading';
+			let data = {
+				page: obj.page,
+				latitude: obj.latitude,
+				longitude: obj.longitude,
+				limit: obj.limitt,
+				// address: obj.$store.state.chooseProvince,
+				address: obj.PXType == 0 ? '' : obj.$store.state.chooseDistrict,
+				sales: obj.PXType == 2 ? 1 : 0,
+				period: obj.PXType == 0 ? 1 : 0
+			};
+			console.log(data, '参数');
+			getStoreList(data)
+				.then(res => {
+					console.log(res, '1111');
+					if (type == 'reload') {
+						obj.storeList = [];
+					}
+					if (res.data.list.length > 0) {
+						obj.storeList = obj.storeList.concat(res.data.list);
+						obj.page++;
+						console.log('数据加载完毕');
+					}
+
+					if (obj.limitt == res.data.list.length) {
+						//说明数据已经加载完毕了
+						obj.loadingType = 'more';
+						console.log('加载完毕1111111');
+					} else {
+						console.log('加载完毕1222222222211');
+						obj.loadingType = 'noMore';
+					}
+					//说明还有数据
+					uni.hideLoading();
+					this.$set(obj.storeList, 'loaded', true);
+				})
+				.catch(err => {
+					console.log(err, '报错');
+				});
+		},
+		getLocation() {
+			uni.getLocation({
+				type: 'gcj02',
+				success(e) {
+					console.log(e, 'dingwei');
+				}
+			});
+		},
+		getGoodList() {
+			let obj = this;
+			getProducts({
+				page: 1,
+				limit: 50,
+				cid: 1
+			}).then(res => {
+				console.log(res, 'libao');
+				obj.goodList = res.data.filter(item => {
+					return item.price != 2999;
+				});
+			});
+		},
+		navto(url) {
+			uni.navigateTo({
+				url,
+				fail() {
+					uni.switchTab({
+						url
+					});
+				}
+			});
+		},
+		// #ifdef H5
+		IndexShare() {
+			let obj = this;
+			let pages = getCurrentPages();
+			// 获取当前页面
+			let page = pages[pages.length - 1];
+			let path = '#/' + page.route + '?';
+			// 保存传值
+			for (let i in page.options) {
+				path += i + '=' + page.options[i] + '&';
+			}
+			console.log(obj.Path);
+			// 保存邀请人
+			path += 'spread=' + this.userInfo.uid;
+			let data = {
+				link: this.baseURL + '/index/#/pages/store/index/' + path,
+				title: this.userInfo.nickname + '邀请您进入玲卿加',
+				desc: '欢迎加入玲卿加',
+				imgUrl: 'https://hy.liuniu946.com/index/https://hy.liuniu946.com/app/img/logo.jpg'
+			};
+			console.log(data, '分享数据');
+			shareLoad(data);
+		},
+		// #endif
+		getaddress() {
+			console.log('dizhi+++++++++++');
+			let obj = this;
+			uni.getLocation({
+				type: 'wgs84',
+				success: res => {
+					// uni.showModal({
+					// 	title: '成功',
+					// 	content: JSON.stringify(res)
+					// });
+					let wz = obj.wgs84Togcj02(res.longitude, res.latitude);
+					obj.setLat(wz[1]);
+					obj.setLon(wz[0]);
+					obj.getCity();
+				},
+				fail: err => {
+					// uni.showModal({
+					// 	title: '失败',
+					// 	content: JSON.stringify(err)
+					// });
+					openMap().then(e => {
+						this.getaddress();
+					});
+				}
+			});
+		},
+		wgs84Togcj02(lng, lat) {
+			if (this.out_of_china(lng, lat)) {
+				return [lng, lat];
+			}
+			//定义一些常量
+			//GCJ02 转换为 WGS84
+			var that = this;
+			const x_PI = (3.14159265358979324 * 3000.0) / 180.0;
+			const PI = 3.1415926535897932384626;
+			const a = 6378245.0;
+			const ee = 0.00669342162296594323;
+			let dlat = that.transformlat(lng - 105.0, lat - 35.0);
+			let dlng = that.transformlng(lng - 105.0, lat - 35.0);
+			let radlat = (lat / 180.0) * PI;
+			let magic = Math.sin(radlat);
+			magic = 1 - ee * magic * magic;
+			let sqrtmagic = Math.sqrt(magic);
+			dlat = (dlat * 180.0) / (((a * (1 - ee)) / (magic * sqrtmagic)) * PI);
+			dlng = (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI);
+			var mglat = lat + dlat;
+			var mglng = lng + dlng;
+			return [mglng, mglat];
+		},
+
+		out_of_china(lng, lat) {
+			return lng < 72.004 || lng > 137.8347 || (lat < 0.8293 || lat > 55.8271 || false);
+		},
+
+		transformlat(lng, lat) {
+			const x_PI = (3.14159265358979324 * 3000.0) / 180.0;
+			const PI = 3.1415926535897932384626;
+			const a = 6378245.0;
+			const ee = 0.00669342162296594323;
+			let ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
+			ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;
+			ret += ((20.0 * Math.sin(lat * PI) + 40.0 * Math.sin((lat / 3.0) * PI)) * 2.0) / 3.0;
+			ret += ((160.0 * Math.sin((lat / 12.0) * PI) + 320 * Math.sin((lat * PI) / 30.0)) * 2.0) / 3.0;
+			return ret;
+		},
+		transformlng(lng, lat) {
+			const x_PI = (3.14159265358979324 * 3000.0) / 180.0;
+			const PI = 3.1415926535897932384626;
+			const a = 6378245.0;
+			const ee = 0.00669342162296594323;
+			let ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
+			ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;
+			ret += ((20.0 * Math.sin(lng * PI) + 40.0 * Math.sin((lng / 3.0) * PI)) * 2.0) / 3.0;
+			ret += ((150.0 * Math.sin((lng / 12.0) * PI) + 300.0 * Math.sin((lng / 30.0) * PI)) * 2.0) / 3.0;
+			return ret;
+		},
+		navTo(url) {
+			if (url == '') {
+				this.$api.msg('暂未开通,敬请期待');
+			} else {
+				uni.navigateTo({
+					url
+				});
+			}
+		},
+		// 點擊搜索框
+		clickSearch() {
+			uni.navigateTo({
+				url: '/pages/store/shopList?id=0'
+			});
+		},
+		// 监听图片加载完成
+		onImageError(key, index) {
+			this[key][index].image = '/static/error/errorImage.jpg';
+		},
+		// 请求载入数据
+		async loadData() {
+			loadIndexs({})
+				.then(({ data }) => {
+					let goods = data.info;
+					console.log(goods, '商品信息');
+					this.carouselList = data.info.storebanner;
+					this.swiperLength = this.carouselList.length;
+					this.bastList = data.giftInfo; //会员礼包
+					data.info.firstList.forEach(e => {
+						e.isVip = e.store_type ? '3' : '0';
+					});
+					this.firstList = data.info.firstList; //首页商品
+					uni.stopPullDownRefresh();
+				})
+				.catch(e => {
+					uni.stopPullDownRefresh();
+				});
+		},
+		//轮播图切换修改背景色
+		swiperChange(e) {
+			const index = e.detail.current;
+			this.swiperCurrent = index;
+			this.titleNViewBackground = this.carouselList[index].background;
+		},
+		// 轮播图跳转
+		bannerNavToUrl(item) {
+			// #ifdef H5
+			console.log(item.wap_url.indexOf('http'), 'banner');
+			if (item.wap_url.indexOf('http') >= 0) {
+				window.location.href = item.wap_url;
+			}
+			// #endif
+			//测试数据没有写id,用title代替
+			uni.navigateTo({
+				url: item.wap_url
+			});
+		},
+		// 根据指定个数分割数组
+		chunkArr(arr, size) {
+			console.log(arr, 'arr+++++');
+			//判断如果不是数组(就没有length),或者size没有传值,size小于1,就返回空数组
+			if (!arr.length || !size || size < 1) return [];
+			let [start, end, result] = [null, null, []];
+			for (let i = 0; i < Math.ceil(arr.length / size); i++) {
+				start = i * size;
+				end = start + size;
+				result.push(arr.slice(start, end));
+			}
+			return result;
+		},
+		gomapApp(latitude, longitude, name) {
+			let url = '';
+			if (plus.os.name == 'Android') {
+				//判断是安卓端
+				plus.nativeUI.actionSheet(
+					{
+						//选择菜单
+						title: '选择地图应用',
+						cancel: '取消',
+						buttons: [{ title: '腾讯地图' }, { title: '百度地图' }, { title: '高德地图' }]
+					},
+					function(e) {
+						switch (e.index) {
+							//下面是拼接url,不同系统以及不同地图都有不同的拼接字段
+							case 1:
+								//注意referer=xxx的xxx替换成你在腾讯地图开发平台申请的key
+								url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
+								break;
+							case 2:
+								url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&coord_type=gcj02&src=andr.baidu.openAPIdemo`;
+								break;
+							case 3:
+								url = `androidamap://viewMap?sourceApplication=appname&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
+								break;
+							default:
+								break;
+						}
+						if (url != '') {
+							url = encodeURI(url);
+							//plus.runtime.openURL(url,function(e){})调起手机APP应用
+							plus.runtime.openURL(url, function(e) {
+								plus.nativeUI.alert('本机未安装指定的地图应用');
+							});
+						}
+					}
+				);
+			} else {
+				// iOS上获取本机是否安装了百度高德地图,需要在manifest里配置
+				// 在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加
+				//(如urlschemewhitelist:["iosamap","baidumap"])
+				plus.nativeUI.actionSheet(
+					{
+						title: '选择地图应用',
+						cancel: '取消',
+						buttons: [{ title: '腾讯地图' }, { title: '百度地图' }, { title: '高德地图' }]
+					},
+					function(e) {
+						switch (e.index) {
+							case 1:
+								url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
+								break;
+							case 2:
+								url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&content=${name}&src=ios.baidu.openAPIdemo&coord_type=gcj02`;
+								break;
+							case 3:
+								url = `iosamap://viewMap?sourceApplication=applicationName&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
+								break;
+							default:
+								break;
+						}
+						if (url != '') {
+							url = encodeURI(url);
+							plus.runtime.openURL(url, function(e) {
+								plus.nativeUI.alert('本机未安装指定的地图应用');
+							});
+						}
+					}
+				);
+			}
+		},
+		getCity() {
+			let obj = this;
+			console.log('进入city');
+			getCity({
+				lat: obj.latitude,
+				lng: obj.longitude
+			})
+				.then(res => {
+					console.log(res, '逆解析结果');
+					obj.chooseDistrict = res.data.district;
+					if (!obj.chooseDistrict) {
+						obj.setChoose({
+							chooseProvince: res.data.province,
+							chooseCity: res.data.city,
+							chooseDistrict: res.data.district
+						});
+					}
+
+					obj.getStoreList();
+				})
+				.catch(err => {
+					console.log(err, 'shibai');
+				});
+		},
+		// 调用高德
+		toGaodeMap(latitude, longitude, address) {
+			window.location.href = `https://uri.amap.com/marker?position=${longitude},${latitude}&name=${address}`;
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #f8f6f9;
+}
+
+.carousel-section {
+	position: relative;
+	// padding-top: 10px;
+
+	.bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 750rpx;
+		height: 378rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.titleNview-placing {
+		height: var(--status-bar-height);
+		box-sizing: content-box;
+	}
+
+	.search {
+		justify-content: space-between;
+		padding: 30rpx 32rpx 20rpx;
+		align-items: center;
+		background-color: #fff;
+
+		.address {
+			width: 32rpx;
+			height: 38rpx;
+		}
+
+		.shop-name {
+			height: 38rpx;
+			position: relative;
+			top: -4rpx;
+			z-index: 100;
+			width: 120rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			padding-left: 10rpx;
+		}
+
+		.shop-jt {
+			margin-left: 8rpx;
+			width: 16rpx;
+			height: 10rpx;
+		}
+
+		.input-box {
+			margin-left: 10rpx;
+			position: relative;
+			z-index: 99;
+			width: 650rpx;
+			height: 60rpx;
+			background: #eeeeee;
+			border-radius: 30rpx;
+
+			.input-content {
+				position: relative;
+				z-index: 11;
+				border-radius: 99rpx;
+				flex-grow: 1;
+				padding: 5rpx 30rpx;
+				background: #eeeeee;
+
+				.iconsearch {
+					font-size: 50rpx;
+					color: #cbcbcb;
+				}
+
+				.input {
+					margin-left: 19rpx;
+					flex-grow: 1;
+					color: #cbcbcb;
+
+					input {
+						font-size: 28rpx;
+
+						color: #cbcbcb;
+					}
+				}
+			}
+
+			.input-button {
+				padding-left: 20rpx;
+				font-size: $font-base;
+				height: 100%;
+			}
+		}
+	}
+}
+
+.carousel {
+	position: relative;
+	z-index: 3;
+	width: 100%;
+	height: 360rpx;
+	background-color: #fff;
+
+	.carousel-item {
+		width: 100%;
+		height: 100%;
+	}
+
+	image {
+		width: 100%;
+		height: 100%;
+	}
+}
+
+.navbar {
+	position: relative;
+	z-index: 2;
+	padding: 0 50rpx;
+	margin-top: -200rpx;
+	width: 750rpx;
+	height: 420rpx;
+	background: #ffffff;
+	border-radius: 40rpx;
+
+	.navbar-box {
+		padding-top: 250rpx;
+
+		.navbar-item {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			width: 20%;
+
+			.nitem-image {
+				width: 90rpx;
+				height: 90rpx;
+			}
+
+			.nitem-font {
+				margin-top: 22rpx;
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #000000;
+			}
+		}
+	}
+}
+
+.jx {
+	background: #fff;
+	width: 750rpx;
+}
+
+.jx-box {
+	background: #fff;
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	width: 750rpx;
+
+	.jx-box-title {
+		margin: 50rpx 0;
+		width: 610rpx;
+		height: 30rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.jx-box-img {
+		width: 750rpx;
+		height: 220rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+}
+
+.cai {
+	display: flex;
+	justify-content: center;
+	align-items: center;
+	padding-bottom: 20rpx;
+	font-size: 28rpx;
+	font-weight: 500;
+	color: #999999;
+}
+
+.jx-box-content {
+	display: flex;
+
+	.content-left {
+		margin: 20rpx 15rpx;
+		width: 236rpx;
+		height: 236rpx;
+		background: #e2e2e2;
+		border-radius: 10rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.content-right {
+		display: flex;
+		flex-direction: column;
+		justify-content: space-around;
+
+		.shop-name {
+			width: 382rpx;
+			font-size: 32rpx;
+			font-weight: bold;
+			color: #333333;
+
+			overflow: hidden;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 2;
+		}
+
+		.shop-content {
+			width: 455rpx;
+			display: flex;
+			justify-content: space-between;
+
+			.shop-content-left {
+				display: flex;
+				flex-direction: column;
+
+				.price-box {
+					display: flex;
+					align-items: center;
+
+					.yuan-price {
+						font-size: 26rpx;
+						font-weight: 500;
+						text-decoration: line-through;
+						color: #999999;
+					}
+
+					image {
+						margin: 0 10rpx;
+						width: 16rpx;
+						height: 18rpx;
+					}
+
+					.j-price {
+						font-size: 24rpx;
+						font-weight: bold;
+						color: #b59467;
+					}
+				}
+
+				.price-x {
+					font-size: 36rpx;
+					font-weight: bold;
+					color: #ff4c4c;
+				}
+			}
+
+			.shop-content-right {
+				margin-top: 20rpx;
+				align-items: center;
+				text-align: center;
+				width: 137rpx;
+				height: 52rpx;
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #fff;
+				background: #f75022;
+				border-radius: 26rpx;
+				line-height: 52rpx;
+			}
+		}
+	}
+}
+
+.shop {
+	margin-top: 20rpx;
+	background: #ffffff;
+	padding: 0 12rpx;
+
+	.shop-title {
+		padding: 30rpx 0 20rpx;
+		display: flex;
+		align-items: center;
+		border-bottom: 1px solid #e3e6e7;
+
+		.shop-item {
+			width: 25%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.sitem-font {
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+			}
+
+			.choose {
+				color: #ff4c4c;
+			}
+
+			.jt-down {
+				width: 10rpx;
+				height: 8rpx;
+				margin-left: 12rpx;
+			}
+		}
+	}
+}
+
+.shop-main {
+	padding: 32rpx 18rpx 0 12rpx;
+	align-items: flex-start;
+	justify-content: flex-start;
+
+	.main-left {
+		width: 180rpx;
+		height: 180rpx;
+		border-radius: 10rpx;
+	}
+
+	.main-right {
+		width: 500rpx;
+		justify-content: space-between;
+		align-items: flex-start;
+		margin-left: 20rpx;
+		padding: 13rpx 0 35rpx;
+		border-bottom: 1px solid #eaeced;
+
+		.shopm-info {
+			max-width: 60%;
+			line-height: 1;
+
+			.shopm-title {
+				display: flex;
+				justify-content: flex-start;
+
+				.shopmt-font {
+					font-size: 34rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #333333;
+				}
+
+				.shopmt-good {
+					margin-left: 6rpx;
+					width: 30rpx;
+					height: 30rpx;
+					border: 1px solid #ff4c4c;
+					border-radius: 5rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #ff4c4c;
+					text-align: center;
+					line-height: 30rpx;
+				}
+			}
+
+			.address {
+				margin-top: 16rpx;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #666666;
+			}
+
+			.shopmt-tip {
+				position: relative;
+				display: inline-block;
+				flex-grow: 0;
+				margin-top: 52rpx;
+				padding: 8rpx;
+				background: #fcf3f0;
+				border-radius: 16rpx 16rpx 16rpx 0px;
+				font-size: 20rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #ff440d;
+			}
+		}
+
+		.right {
+			height: 100%;
+			margin-top: 5rpx;
+			display: flex;
+			flex-direction: column;
+
+			.mright-top {
+				display: flex;
+				justify-content: flex-end;
+				align-items: center;
+
+				.mrt-image {
+					width: 20rpx;
+					height: 28rpx;
+				}
+
+				.mrt-font {
+					margin-left: 8rpx;
+					font-size: 22rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #666666;
+				}
+			}
+
+			.mright-bottom {
+				margin-top: 80rpx;
+				display: flex;
+				justify-content: flex-end;
+
+				.mrb-item {
+					width: 46rpx;
+					height: 46rpx;
+					margin-left: 14rpx;
+				}
+			}
+		}
+	}
+}
+
+.good-list {
+	width: 750rpx;
+	background: linear-gradient(0deg, #ffffff, #f8f8f8);
+	padding: 0 30rpx 30rpx;
+
+	.good {
+		width: 690rpx;
+		height: 276rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 10rpx;
+		margin: auto;
+		padding: 20rpx 15rpx;
+		margin-bottom: 20rpx;
+
+		&:last-of-type {
+			margin-bottom: 0rpx;
+		}
+
+		.good-img {
+			flex-shrink: 0;
+			width: 236rpx;
+			height: 236rpx;
+			border-radius: 10rpx;
+			margin-right: 22rpx;
+
+			image {
+				width: 236rpx;
+				height: 236rpx;
+				border-radius: 10rpx;
+			}
+		}
+
+		.good-info {
+			flex-grow: 1;
+			height: 100%;
+			flex-direction: column;
+			justify-content: space-between;
+			align-items: flex-start;
+
+			.good-name {
+				font-size: 32rpx;
+				font-weight: bold;
+				padding-top: 10rpx;
+				color: #333333;
+			}
+
+			.good-price {
+				width: 100%;
+
+				image {
+					width: 14rpx;
+					margin: 0 6rpx 0 10rpx;
+				}
+
+				.old-price {
+					.old-left {
+						font-size: 26rpx;
+						font-weight: 500;
+						text-decoration: line-through;
+						color: #999999;
+					}
+
+					.old-right {
+						font-size: 24rpx;
+						font-weight: bold;
+						color: #b59467;
+					}
+				}
+
+				.new-price {
+					width: 100%;
+					font-size: 36rpx;
+					font-weight: bold;
+					color: #ff4c4c;
+					justify-content: space-between;
+
+					.good-tip {
+						display: inline-block;
+						padding: 0 20rpx 0 17rpx;
+						min-width: 160rpx;
+						text-align: center;
+						line-height: 40rpx;
+						background: #f75022;
+						font-size: 24rpx;
+						font-weight: 500;
+						color: #fff;
+						border-radius: 10rpx;
+						position: relative;
+
+						&::before {
+							content: '';
+							display: inline-block;
+							height: 17rpx;
+							width: 17rpx;
+							background-color: #fff;
+							border-radius: 50%;
+							position: absolute;
+							top: 0;
+							bottom: 0;
+							left: -9rpx;
+							margin: auto;
+						}
+
+						&::after {
+							content: '';
+							display: inline-block;
+							height: 17rpx;
+							width: 17rpx;
+							background-color: #fff;
+							border-radius: 50%;
+							position: absolute;
+							top: 0;
+							bottom: 0;
+							right: -9rpx;
+							margin: auto;
+						}
+					}
+				}
+			}
+		}
+	}
+}
+
+.title-wrapper {
+	padding-left: 20rpx;
+	justify-content: flex-start;
+	align-items: center;
+	height: 86rpx;
+	line-height: 86rpx;
+	width: 690rpx;
+	margin: auto;
+
+	image {
+		width: 36rpx;
+		height: 36rpx;
+		background: linear-gradient(43deg, #ffc063, #ffa163);
+		border-radius: 50%;
+	}
+
+	view {
+		padding-left: 10rpx;
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #242424;
+	}
+
+	.title-b {
+		font-size: 24rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #8b8b8b;
+	}
+}
+
+.shop-list {
+	padding-top: 20rpx;
+	flex-wrap: wrap;
+	background-color: #fff;
+	justify-content: flex-start;
+
+	.shop-item {
+		margin-bottom: 20rpx;
+		flex-direction: column;
+		width: 20%;
+		height: 100rpx;
+
+		image {
+			width: 60rpx;
+			height: 58rpx;
+		}
+	}
+}
+
+.gift-info {
+	width: 690rpx;
+	height: 155rpx;
+	background: linear-gradient(43deg, #ffb242, #ff944d);
+	border-radius: 12rpx 12rpx 0px 0px;
+	margin: auto;
+	color: #fff;
+	font-size: 24rpx;
+	font-weight: 400;
+	color: #ffffff;
+
+	view {
+		padding-left: 28rpx;
+	}
+}
+
+.gift-good-list {
+	width: 690rpx;
+	height: 243rpx;
+	background: #f4f4f4;
+	border-radius: 12rpx;
+	margin: auto;
+
+	.gift-list {
+		width: 670rpx;
+		height: 286rpx;
+
+		background: #fff;
+		border-radius: 12px;
+		// margin: -54rpx auto 0;
+		top: -54rpx;
+		left: 0;
+		right: 0;
+		margin: auto;
+
+		.gift-item {
+			background-color: #fff;
+			width: 223rpx;
+			height: 100%;
+			border-right: 1rpx solid #d6d7dc;
+
+			&:first-of-type {
+				border-radius: 12rpx 0 0 12rpx;
+			}
+
+			&:last-of-type {
+				margin-right: 0;
+			}
+
+			image {
+				width: 160rpx;
+				height: 160rpx;
+			}
+
+			.gift-name {
+				font-size: 22rpx;
+				font-weight: bold;
+				color: #3f3f3f;
+				line-height: 34px;
+			}
+
+			.gift-price {
+				font-size: 28rpx;
+				font-weight: bold;
+				color: #ff4c4c;
+			}
+		}
+	}
+}
+
+.djq-wrap {
+	width: 701rpx;
+	// height: 255rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 27rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 20rpx;
+	margin: 0 auto 20rpx;
+	padding: 23rpx 22rpx;
+
+	&:last-of-type {
+		margin-bottom: 0;
+	}
+
+	.djq-img {
+		flex-shrink: 0;
+		width: 150rpx;
+		height: 150rpx;
+		border-radius: 10rpx;
+	}
+
+	.djq-right {
+		padding-left: 20rpx;
+		flex-grow: 1;
+
+		.djq-tit {
+			font-size: 34rpx;
+			font-weight: bold;
+			color: #333333;
+			line-height: 52rpx;
+
+			.djq-name {
+				max-width: 300rpx;
+			}
+
+			.djq-dis {
+				flex-shrink: 0;
+				display: flex;
+				align-items: center;
+				image {
+					width: 20rpx;
+					height: 28rpx;
+					margin-right: 10rpx;
+				}
+
+				font-size: 22rpx;
+				font-weight: 500;
+				color: #666666;
+			}
+		}
+
+		.djq-dz {
+			width: 100%;
+			font-size: 24rpx;
+			font-weight: 500;
+			color: #666666;
+		}
+
+		.djq-hd {
+			width: 100%;
+			display: flex;
+			justify-content: flex-end;
+
+			.buy-info {
+				display: inline-block;
+				height: 32rpx;
+				border-radius: 16rpx 16rpx 16rpx 0px;
+				line-height: 32rpx;
+				font-size: 20rpx;
+				font-weight: 500;
+				color: #ff440d;
+				padding: 0 15rpx;
+				background-color: #fff;
+			}
+
+			.hd-btn {
+				image {
+					width: 46rpx;
+					height: 46rpx;
+				}
+			}
+		}
+	}
+}
+
+.left-btm {
+	height: 66rpx;
+
+	.j-logo {
+		width: 32rpx;
+		line-height: 33rpx;
+		background: linear-gradient(-48deg, #ffa30b, #ffd158);
+		border-radius: 13rpx;
+		font-size: 21rpx;
+		font-weight: 500;
+		color: #ffffff;
+		text-align: center;
+	}
+
+	.j-price {
+		font-size: 27rpx;
+		font-weight: bold;
+		color: #ff4c4c;
+		margin: 0 10rpx 0 5rpx;
+	}
+
+	.j-zk {
+		height: 31rpx;
+		border: 1rpx solid #ff4c4c;
+		border-radius: 7rpx;
+		line-height: 31rpx;
+		padding: 0 8rpx;
+		font-size: 20rpx;
+		font-weight: bold;
+		color: #ff4c4c;
+		margin-right: 5rpx;
+	}
+
+	.j-name {
+		font-size: 23rpx;
+		font-weight: bold;
+		color: #333333;
+	}
+}
+
+.hotgoods {
+	// margin-top: 38rpx;
+	width: 100%;
+	display: flex;
+	flex-wrap: wrap;
+	padding: 0 0 30rpx;
+
+	.hotgoods-item {
+		width: 48%;
+		background-color: #ffffff;
+		border-radius: 12rpx;
+
+		&:nth-child(2n + 1) {
+			margin-right: 24rpx;
+		}
+
+		.image-wrapper {
+			width: 100%;
+			height: 330rpx;
+			border-radius: 3px;
+			overflow: hidden;
+			position: relative;
+
+			.image-bg {
+				position: absolute;
+				top: 0;
+				left: 0;
+				right: 0;
+				bottom: 0;
+				width: 100%;
+				height: 100%;
+				opacity: 1;
+				border-radius: 12rpx 12rpx 0 0;
+				z-index: 2;
+			}
+
+			.image {
+				width: 100%;
+				height: 100%;
+				opacity: 1;
+				border-radius: 12rpx 12rpx 0 0;
+			}
+		}
+
+		.title {
+			margin-top: 24rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+		}
+
+		.hot-price {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding: 14rpx 10rpx 30rpx;
+
+			.hotPrice-box {
+				width: 70rpx;
+				height: 28rpx;
+				background: linear-gradient(90deg, #c79a4c, #f9df7f);
+				border-radius: 5rpx;
+				text-align: center;
+				line-height: 28rpx;
+				font-size: 20rpx;
+				font-family: Source Han Sans CN;
+				font-weight: 400;
+				color: #ffffff;
+			}
+
+			.price {
+				// margin-left: 10rpx;
+				font-size: 40rpx;
+				color: #ff0000;
+				font-weight: 500;
+			}
+
+			.yuanPrice {
+				margin-left: 10rpx;
+				font-size: 20rpx;
+				font-weight: 500;
+				// text-decoration: line-through;
+				color: #999999;
+			}
+
+			.cart-icon {
+				image {
+					width: 44rpx;
+					height: 44rpx;
+				}
+			}
+		}
+	}
+}
+
+.product-box {
+	// margin-top: 20rpx;
+	background: #ffffff;
+	padding: 0rpx 30rpx 20rpx;
+}
+</style>

+ 381 - 0
pages/store/pay.vue

@@ -0,0 +1,381 @@
+<template>
+	<view class="app">
+		<view class="price-box">
+			<text>支付金额</text>
+			<text class="price">{{ money }}</text>
+		</view>
+		<view class="pay-type-list">
+			<!-- <view class="type-item b-b" v-if="ispg == 'android'" @click="changePayType(1)">
+				<text class="icon iconfont iconweixin"></text>
+				<view class="con">
+					<text class="tit">微信支付</text>
+					<text>推荐使用微信支付</text>
+				</view>
+				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 1"></radio></label>
+			</view> -->
+			<view class="type-item b-b" @click="changePayType(2)">
+				<text class="icon iconfont iconzhifubao"></text>
+				<view class="con"><text class="tit">支付宝支付</text></view>
+				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 2"></radio></label>
+			</view>
+			<!-- <view class="type-item" @click="changePayType(3)">
+				<text class="icon iconfont iconyue"></text>
+				<view class="con">
+					<text class="tit">余额支付</text>
+					<text>可用余额 ¥{{ now_money }}</text>
+				</view>
+				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 3"></radio></label>
+			</view> -->
+		</view>
+		<text class="mix-btn" :class="{ clickbg: payLoding }" @click="!payLoding ? confirm() : ''">确认支付</text>
+	</view>
+</template>
+
+<script>
+import { balance } from '@/api/wallet.js';
+import { create } from '@/api/order.js';
+import { mapState } from 'vuex';
+import { isIOS } from '@/utils/platform.js';
+export default {
+	data() {
+		return {
+			payType: 2, //支付类型
+			payName: 'alipay',
+			orderInfo: {},
+			money: 0.0, //订单金额
+			now_money: 0.0, //余额
+			orderKey: '',
+			orderId: '', //保存订单id
+			payLoding: false, //判断是否支付中
+			type: '', //判断是否从订单中进入
+			// #ifdef H5
+			froms: '', //保存h5中数据来源对象
+			// #endif
+			pinkid: '', //保存拼团商品id
+			store_id: '',
+			ispg: '' //是否是苹果
+		};
+	},
+	computed: {
+		// #ifdef H5
+		...mapState(['weichatObj'])
+		// #endif
+	},
+	onLoad(options) {
+		this.ispg = uni.getSystemInfoSync().platform;
+		this.orderKey = options.key;
+		this.money = options.money;
+		console.log(this.money, '1111');
+		// 载入余额
+		balance({}).then(({ data }) => {
+			// 获取余额
+			this.now_money = data.now_money;
+		});
+	},
+	methods: {
+		//选择支付方式
+		changePayType(type) {
+			this.payType = type;
+			if (this.payType == 1) {
+				this.payName = 'weixin';
+			}
+			if (this.payType == 2) {
+				this.payName = 'alipay';
+			}
+			if (this.payType == 3) {
+				this.payName = 'yue';
+			}
+		},
+		// 支付金额
+		orderMoneyPay() {
+			let obj = this;
+			orderPay({
+				uni: obj.orderId,
+				// #ifdef H5
+				from: obj.froms ? 'weixin' : 'H5', //来源
+				// #endif
+				// #ifdef MP-WEIXIN
+				from: 'routine', //来源
+				// #endif
+				// #ifdef APP-PLUS
+				from: 'app', //来源
+				// #endif
+				paytype: obj.payName //支付类型  weixin-微信 yue-余额
+			})
+				.then(e => {
+					// 判断是否为余额支付
+
+					uni.hideLoading();
+					obj.payLoding = false;
+				})
+				.catch(e => {
+					// 支付完成
+					uni.hideLoading();
+					obj.payLoding = false;
+					console.log(e);
+				});
+		},
+		// 支付成功跳转
+		paySuccessTo() {
+			uni.hideLoading();
+			this.$api.msg('充值成功');
+		},
+		//确认支付
+		confirm: async function() {
+			let obj = this;
+			uni.showLoading({
+				title: '支付中',
+				mask: true
+			});
+			// 判断是否余额不足
+			if (obj.payName == 'yue' && +obj.now_money < obj.money) {
+				uni.showModal({
+					title: '提示',
+					content: '账户余额不足!',
+					showCancel: false,
+					success: res => {},
+					fail: () => {},
+					complete: () => {}
+				});
+				return;
+			}
+			// 支付中
+			obj.payLoding = true;
+			// #ifdef H5
+			// 获取当前是否为微信浏览器
+			obj.froms = uni.getStorageSync('weichatBrowser') || '';
+			// #endif
+			// 判断是否为未支付订单中跳转进入
+			if (obj.type != 1) {
+				// 初次生成订单
+				obj.firstCreateOrder();
+			} else {
+				// 已经生成订单未支付
+				obj.orderMoneyPay();
+			}
+		},
+		// 初次订单创建
+		firstCreateOrder() {
+			let obj = this;
+			// 获取下单页面数据
+			let prepage = obj.$api.prePage();
+			let data = {};
+			// 生成订单
+			create({ cache: obj.orderKey, pay_type: obj.payName })
+				.then(({ data, status, msg }) => {
+					// 判断是否支付失败
+					if (data.status == 'ORDER_EXIST') {
+						uni.showModal({
+							title: '提示',
+							content: msg,
+							showCancel: false
+						});
+						uni.hideLoading();
+						obj.payLoding = false;
+						return;
+					}
+					if (data.status == 'FAIL') {
+						uni.showModal({
+							title: '提示',
+							content: msg,
+							showCancel: false
+						});
+						uni.hideLoading();
+						obj.payLoding = false;
+						return;
+					}
+					// 保存订单号
+					obj.orderId = data.result.orderId;
+					// 判断是否为余额支付
+					if (obj.payName == 'yue') {
+						if (status == 200) {
+							obj.paySuccessTo();
+						} else {
+							obj.$api.msg(msg);
+						}
+					} else {
+						//#ifndef APP-PLUS
+						if (obj.payName == 'weixin' || obj.payName == 'routine') {
+							let da = data.result.jsConfig;
+							let data = {
+								// #ifdef H5
+								timestamp: da.timestamp,
+								// #endif
+								// #ifdef MP
+								timeStamp: da.timestamp,
+								// #endif
+								nonceStr: da.nonceStr,
+								package: da.package,
+								signType: da.signType,
+								paySign: da.paySign,
+								success: function(res) {
+									obj.paySuccessTo();
+								},
+								fail: () => {
+									uni.navigateTo({
+										url: '/pages/order/order?state=0'
+									});
+								}
+							};
+							// #ifdef H5
+							if (obj.payName == 'weixin') {
+								obj.weichatObj.chooseWXPay(data);
+							}
+							// #endif
+							// #ifdef MP-WEIXIN
+							if (obj.payName == 'routine') {
+								wx.requestPayment(data);
+							}
+							// #endif
+						}
+						// #endif
+						//#ifdef APP-PLUS
+						if (obj.payName == 'weixin' || obj.payName == 'routine') {
+							let da = data.result.jsConfig;
+							console.log('--da--', da);
+							let data = {
+								appid: da.appid,
+								noncestr: da.noncestr,
+								package: da.package,
+								partnerid: da.partnerid,
+								prepayid: da.prepayid,
+								timestamp: da.timestamp,
+								sign: da.sign
+							};
+							console.log('--data--', data);
+							uni.requestPayment({
+								provider: 'wxpay',
+								orderInfo: data,
+								success(res) {
+									console.log(res);
+									uni.showToast({
+										title: '支付成功',
+										duration: 2000
+									});
+									obj.paySuccessTo();
+								},
+								fail(res) {
+									console.log(res, '失败');
+								}
+							});
+						}
+						if (obj.payName == 'alipay') {
+							console.log(data, 'alipay');
+							const url = data.result.jsConfig;
+							console.log(url, 'url');
+							uni.requestPayment({
+								provider: 'alipay',
+								orderInfo: url,
+								success: res => {
+									console.log(res);
+									uni.showToast({
+										title: '支付成功',
+										duration: 2000
+									});
+									obj.paySuccessTo();
+								},
+								fail: e => {
+									console.log(e);
+								},
+								complete: () => {}
+							});
+							obj.payLoding = false;
+						}
+						//#endif
+					}
+				})
+				.catch(e => {
+					uni.hideLoading();
+					obj.payLoding = false;
+					console.log(e, '123456789');
+				});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.app {
+	width: 100%;
+}
+
+.price-box {
+	background-color: #fff;
+	height: 265upx;
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	align-items: center;
+	font-size: 28upx;
+	color: #909399;
+
+	.price {
+		font-size: 50upx;
+		color: #303133;
+		margin-top: 12upx;
+		&:before {
+			content: '¥';
+			font-size: 40upx;
+		}
+	}
+}
+
+.pay-type-list {
+	margin-top: 20upx;
+	background-color: #fff;
+	padding-left: 60upx;
+	.type-item {
+		height: 120upx;
+		padding: 20upx 0;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding-right: 60upx;
+		font-size: 30upx;
+		position: relative;
+	}
+
+	.icon {
+		width: 100upx;
+		font-size: 52upx;
+	}
+	.iconyue {
+		color: #fe8e2e;
+	}
+	.iconweixin {
+		color: #36cb59;
+	}
+	.iconzhifubao {
+		color: #01aaef;
+	}
+	.tit {
+		font-size: $font-lg;
+		color: $font-color-dark;
+		margin-bottom: 4upx;
+	}
+	.con {
+		flex: 1;
+		display: flex;
+		flex-direction: column;
+		font-size: $font-sm;
+		color: $font-color-light;
+	}
+}
+.mix-btn {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 630upx;
+	height: 80upx;
+	margin: 80upx auto 30upx;
+	font-size: $font-lg;
+	color: #fff;
+	background-color: $base-color;
+	border-radius: 10upx;
+	/* box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4); */
+}
+
+.clickbg {
+	background-color: $color-gray !important;
+}
+</style>

+ 900 - 0
pages/store/shopDetail.vue

@@ -0,0 +1,900 @@
+<template>
+	<view class="center">
+		<view class="store-info flex">
+			<view class="store-top flex">
+				<image class="simage" :src="info.image" mode=""></image>
+				<view class="stop-main">
+					<view class="stop-title">{{ info.name }}</view>
+					<view class="stop-address">
+						<image class="mrt-image" src="https://hy.liuniu946.com/app/index/index10.png" mode=""></image>
+						<view class="mrt-font">距离您{{ info.jl }}KM</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="store-item">
+			<image class="store-image1" src="https://hy.liuniu946.com/app/img/store2.png" mode=""></image>
+			<view class="store-font">营业时间:{{ info.day_time }}</view>
+		</view>
+		<view class="store-item" v-if="info.phone">
+			<image class="store-image2" src="https://hy.liuniu946.com/app/img/store3.png" mode=""></image>
+			<view class="store-font">预约电话:{{ info.phone }}</view>
+		</view>
+		<view class="store-item">
+			<image class="store-image3" src="https://hy.liuniu946.com/app/index/index10.png" mode=""></image>
+			<view class="store-font">门店地址:{{ info.detailed_address }}</view>
+		</view>
+		<view class="store-item">
+			<image class="store-image1" src="https://hy.liuniu946.com/app/img/store2.png" mode=""></image>
+			<view class="store-font">商家介绍:{{ info.introduction }}</view>
+		</view>
+		<view class="store-main" v-if="info.images != null">
+			<view class="smain-title">门头照片</view>
+			<scroll-view class="scroll-box flex" @scroll="scroll" scroll-x="true" :scroll-with-animation="true" scroll-left="10px">
+				<view class="scroll-item" v-for="(item, index) in info.images" :key="index">
+					<image class="scroll-image" :src="item" mode="heightFix" @click="openImg(info.images, item)"></image>
+				</view>
+			</scroll-view>
+		</view>
+		<view class="store-main" v-if="info.slider_image != null">
+			<view class="smain-title">店内照片</view>
+			<scroll-view class="scroll-box flex" @scroll="scroll" scroll-x="true" :scroll-with-animation="true" scroll-left="10px">
+				<view class="scroll-item" v-for="(item, index) in info.slider_image" :key="index">
+					<image class="scroll-image" :src="item" mode="heightFix" @click="openImg(info.slider_image, item)"></image>
+				</view>
+			</scroll-view>
+		</view>
+		<view v-if="vipList.length != 0">
+			<view class="jx-box-content" v-for="item in vipList" @click="navToDetailPage(item)">
+				<view class="content-left"><image :src="item.image" mode=""></image></view>
+				<view class="content-right">
+					<view class="shop-name">{{ item.store_name }}</view>
+					<view class="shop-content">
+						<view class="shop-content-left">
+							<view class="price-box">
+								<view class="yuan-price">¥{{ item.ot_price }}</view>
+							</view>
+							<view class="price-x">¥{{ item.price }}</view>
+						</view>
+						<view class="shop-content-right">立即购买</view>
+					</view>
+				</view>
+			</view>
+			<uni-load-more :status="loadingType"></uni-load-more>
+		</view>
+
+		<view class="" style="height: 100rpx;"></view>
+		<view class="btn-box flex" v-if="info.phone">
+			<view class="btn-left" @click="tocall()">立即付款</view>
+
+			<!-- #ifdef H5 -->
+			<view class="btn-right" @click="toGaodeMap()">导航到店</view>
+			<!-- #endif -->
+			<!-- #ifdef MP -->
+			<view class="btn-right" @click="dh()">导航到店</view>
+			<!-- #endif -->
+			<!-- #ifdef APP-PLUS -->
+			<view class="btn-right" @click="gomapApp(info.latitude, info.longitude, info.name)">导航到店</view>
+			<!-- #endif -->
+		</view>
+		<view class="btn-box dhdd flex" v-if="!info.phone">
+			<!-- #ifdef H5 -->
+			<view class="btn-right" @click="toGaodeMap()">导航到店</view>
+			<!-- #endif -->
+			<!-- #ifdef MP -->
+			<view class="btn-right" @click="dh()">导航到店</view>
+			<!-- #endif -->
+			<!-- #ifdef APP-PLUS -->
+			<view class="btn-right" @click="gomapApp(info.latitude, info.longitude, info.name)">导航到店</view>
+			<!-- #endif -->
+		</view>
+		<uni-popup ref="popup" type="center">
+			<view class="popup-box">
+				<view class="title">支付数量</view>
+				<view class="input"><input v-model="money" type="number" /></view>
+				<view class="nocancel">请填写支付金额</view>
+				<view class="comfirm-box">
+					<view class="cancel" @click="cancel">取消</view>
+					<view class="comfirm" @click="navTo('/pages/store/createOrder?id=' + id + '&money=' + money)">确认</view>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import { getVip } from '@/api/index.js';
+// #ifdef H5
+import { weixindata, shareLoad } from '@/utils/wxAuthorized';
+// #endif
+import { saveUrl, interceptor } from '@/utils/loginUtils.js';
+import { mapState, mapMutations } from 'vuex';
+import { spread, orderData, getUserInfo } from '@/api/user.js';
+import { getStoreDetail } from '@/api/shop.js';
+import { calculation } from '@/api/order.js';
+import { setCoupons } from '@/api/functionalUnit.js';
+import { store_details } from '@/api/index.js';
+import uniPopup from '@/components/uni-popup/uni-popup.vue';
+export default {
+	components: {
+		uniLoadMore
+	},
+	data() {
+		return {
+			money: '',
+			vipList: [], //商品列表
+			page: 1,
+			limit: 10,
+			loadingType: 'more',
+			id: '',
+			info: {},
+			address: '',
+			userInfo: ''
+		};
+	},
+	computed: {
+		...mapState(['loginInterceptor', 'baseURL', 'latitude', 'longitude']),
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo'])
+	},
+
+	onLoad(option) {
+		let obj = this;
+
+		getUserInfo({}).then(({ data }) => {
+			obj.userInfo = data;
+			console.log(data, '123456');
+		});
+		if (option.spread) {
+			// 存储邀请人
+			uni.setStorageSync('puid', option.spread);
+		}
+		console.log(option.spread, '邀请人');
+		this.id = option.id;
+		this.getStoreDetail();
+	},
+	onShow() {
+		// #ifdef  MP-WEIXIN
+		wx.showShareMenu({
+			withShareTicket: true,
+			menus: ['shareAppMessage', 'shareTimeline']
+		});
+		//#endif
+	},
+	// #ifdef  MP-WEIXIN
+	onShareAppMessage(res) {
+		let obj = this;
+		// 保存分享人id链接
+		let url = 'pages/store/shopDetail' + '?spread=' + this.userInfo.uid + '&id=' + obj.info.id;
+		if (res.from === 'button') {
+			// 来自页面内分享按钮
+			console.log(res.target);
+		}
+		return {
+			path: url, // 分享链接
+			imageUrl: obj.info.images, // 分享图标
+			desc: '我在这家店领取了超多消费券哦!',
+			title: this.userInfo.nickname + '给您推荐了' + obj.info.name
+		};
+	},
+	//分享到朋友圈
+	onShareTimeline(res) {
+		console.log(this.userInfo);
+		let obj = this;
+		let url = 'pages/store/shopDetail' + '?spread=' + this.userInfo.uid + '&id=' + obj.info.id;
+		return {
+			path: url, // 分享链接
+			imageUrl: obj.info.images, // 分享图标
+			desc: '我在这家店领取了超多消费券哦!',
+			title: this.userInfo.nickname + '给您推荐了' + obj.info.name
+		};
+	},
+	//#endif
+	methods: {
+		navToDetailPage(item) {
+			let id = item.id;
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + id + '&isVip=' + 8 + '&store_id=' + item.store_id
+			});
+		},
+		navTo(url) {
+			if (this.money <= 0) {
+				return this.$api.msg('请输入金额');
+			}
+			calculation({ price: this.money, store_id: this.id, integral: 1 })
+				.then(({ data }) => {
+					uni.navigateTo({
+						url
+					});
+				})
+				.then(e => {
+					this.cancel();
+				});
+		},
+		cancel() {
+			this.money = '';
+			this.$refs.popup.close();
+		},
+		// 获取门店详情
+		getStoreDetail() {
+			let obj = this;
+			console.log('进入');
+			getStoreDetail({}, obj.id).then(res => {
+				obj.info = res.data;
+				if (res.data.coupon.length != 0) {
+					obj.vipList = res.data.coupon;
+				}
+				obj.info.jl = obj.getFlatternDistance(obj.latitude, obj.longitude, obj.info.latitude, obj.info.longitude);
+			});
+		},
+		markertap(e) {
+			let obj = this;
+			// #ifdef H5
+			weixindata().then(wxOjb => {
+				console.log(wxOjb, '获取微信');
+				wxOjb.openLocation({
+					latitude: obj.info.latitude, // 纬度,浮点数,范围为90 ~ -90
+					longitude: obj.info.longitude, // 经度,浮点数,范围为180 ~ -180。
+					name: obj.info.name, // 位置名
+					address: obj.info.detailed_address, // 地址详情说明
+					scale: 28, // 地图缩放级别,整型值,范围从1~28。默认为最大
+					infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转
+				});
+			});
+			// #endif
+		},
+		//根据经纬度计算距离
+		getFlatternDistance(lat1, lng1, lat2, lng2) {
+			console.log(lat1, lng1, lat2, lng2);
+			let radLat1 = (lat1 * Math.PI) / 180.0;
+			let radLat2 = (lat2 * Math.PI) / 180.0;
+			let a = radLat1 - radLat2;
+			let b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0;
+			let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
+			s = s * 6378.137;
+			s = Math.round(s * 10000) / 10000;
+			return s;
+		},
+		scroll(e) {
+			console.log(e, '123456');
+		},
+		// tocall() {
+		// 	let num = this.info.phone;
+		// 	console.log(num);
+		// 	uni.makePhoneCall({
+		// 		phoneNumber: num //仅为示例
+		// 	});
+		// },
+		tocall() {
+			this.$refs.popup.open();
+		},
+		// 点击触发领取优惠券
+		setCoupons(item) {
+			// 判断是否已经领取了优惠券
+			let obj = this;
+			uni.showModal({
+				title: '领取提示',
+				content: '是否领取优惠券',
+				success(e) {
+					if (e.confirm) {
+						setCoupons({
+							couponId: item.id
+						}).then(e => {
+							item.is_use = true;
+							uni.showToast({
+								title: '领取成功',
+								type: 'top',
+								duration: 2000
+							});
+						});
+					}
+				}
+			});
+		},
+		getaddress() {
+			console.log('dizhi+++++++++++');
+
+			let obj = this;
+			//  #ifndef H5
+			uni.getLocation({
+				type: 'gcj02',
+				success: res => {
+					console.log(res, 123456);
+					obj.setLat(res.latitude);
+					obj.setLon(res.longitude);
+
+					obj.getStoreDetail();
+				},
+				fail: err => {
+					console.log(err, 'shi+++++++++++++++');
+					openMap().then(e => {
+						this.getaddress();
+					});
+				}
+			});
+			// #endif
+
+			// #ifdef H5
+			uni.getLocation({
+				type: 'wgs84',
+				success: res => {
+					console.log(res, 123456);
+					let wz = obj.wgs84Togcj02(res.longitude, res.latitude);
+					obj.setLat(wz[1]);
+					obj.setLon(wz[0]);
+
+					obj.getStoreDetail();
+				},
+				fail: err => {
+					console.log(err, 'shi+++++++++++++++');
+					openMap().then(e => {
+						this.getaddress();
+					});
+				}
+			});
+			// weixindata().then(wxOjb => {
+			// 	console.log(wxOjb, '获取微信');
+			// 	wxOjb.getLocation({
+			// 		type: 'gcj02',
+			// 		success: res => {
+			// 			console.log(res, 123456);
+			// 			obj.setLat(res.latitude);
+			// 			obj.setLon(res.longitude);
+			// 			obj.getStoreDetail();
+			// 		},
+			// 		fail: err => {
+			// 			console.log(err, 'shi+++++++++++++++');
+			// 			openMap().then(e => {
+			// 				obj.getaddress();
+			// 			});
+			// 		}
+			// 	});
+			// });
+			// #endif
+		},
+		wgs84Togcj02(lng, lat) {
+			if (this.out_of_china(lng, lat)) {
+				return [lng, lat];
+			}
+			//定义一些常量
+			//GCJ02 转换为 WGS84
+			var that = this;
+			const x_PI = (3.14159265358979324 * 3000.0) / 180.0;
+			const PI = 3.1415926535897932384626;
+			const a = 6378245.0;
+			const ee = 0.00669342162296594323;
+			let dlat = that.transformlat(lng - 105.0, lat - 35.0);
+			let dlng = that.transformlng(lng - 105.0, lat - 35.0);
+			let radlat = (lat / 180.0) * PI;
+			let magic = Math.sin(radlat);
+			magic = 1 - ee * magic * magic;
+			let sqrtmagic = Math.sqrt(magic);
+			dlat = (dlat * 180.0) / (((a * (1 - ee)) / (magic * sqrtmagic)) * PI);
+			dlng = (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI);
+			var mglat = lat + dlat;
+			var mglng = lng + dlng;
+			return [mglng, mglat];
+		},
+
+		out_of_china(lng, lat) {
+			return lng < 72.004 || lng > 137.8347 || (lat < 0.8293 || lat > 55.8271 || false);
+		},
+
+		transformlat(lng, lat) {
+			const x_PI = (3.14159265358979324 * 3000.0) / 180.0;
+			const PI = 3.1415926535897932384626;
+			const a = 6378245.0;
+			const ee = 0.00669342162296594323;
+			let ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
+			ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;
+			ret += ((20.0 * Math.sin(lat * PI) + 40.0 * Math.sin((lat / 3.0) * PI)) * 2.0) / 3.0;
+			ret += ((160.0 * Math.sin((lat / 12.0) * PI) + 320 * Math.sin((lat * PI) / 30.0)) * 2.0) / 3.0;
+			return ret;
+		},
+		transformlng(lng, lat) {
+			const x_PI = (3.14159265358979324 * 3000.0) / 180.0;
+			const PI = 3.1415926535897932384626;
+			const a = 6378245.0;
+			const ee = 0.00669342162296594323;
+			let ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
+			ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;
+			ret += ((20.0 * Math.sin(lng * PI) + 40.0 * Math.sin((lng / 3.0) * PI)) * 2.0) / 3.0;
+			ret += ((150.0 * Math.sin((lng / 12.0) * PI) + 300.0 * Math.sin((lng / 30.0) * PI)) * 2.0) / 3.0;
+			return ret;
+		},
+		//
+		openImg(list, item) {
+			uni.previewImage({
+				current: item,
+				urls: list
+			});
+		},
+		// 调用高德
+		toGaodeMap() {
+			let obj = this;
+			window.location.href = `https://uri.amap.com/marker?position=${obj.info.longitude},${obj.info.latitude}&name=${obj.info.name}`;
+		},
+		// 导航
+		dh() {
+			let obj = this;
+			wx.openLocation({
+				latitude: obj.info.latitude * 1,
+				longitude: obj.info.longitude * 1,
+				name: obj.info.name,
+				address: obj.info.detailed_address
+			});
+		},
+		gomapApp(latitude, longitude, name) {
+			let url = '';
+			if (plus.os.name == 'Android') {
+				//判断是安卓端
+				plus.nativeUI.actionSheet(
+					{
+						//选择菜单
+						title: '选择地图应用',
+						cancel: '取消',
+						buttons: [{ title: '腾讯地图' }, { title: '百度地图' }, { title: '高德地图' }]
+					},
+					function(e) {
+						switch (e.index) {
+							//下面是拼接url,不同系统以及不同地图都有不同的拼接字段
+							case 1:
+								//注意referer=xxx的xxx替换成你在腾讯地图开发平台申请的key
+								url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
+								break;
+							case 2:
+								url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&coord_type=gcj02&src=andr.baidu.openAPIdemo`;
+								break;
+							case 3:
+								url = `androidamap://viewMap?sourceApplication=appname&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
+								break;
+							default:
+								break;
+						}
+						if (url != '') {
+							url = encodeURI(url);
+							//plus.runtime.openURL(url,function(e){})调起手机APP应用
+							plus.runtime.openURL(url, function(e) {
+								plus.nativeUI.alert('本机未安装指定的地图应用');
+							});
+						}
+					}
+				);
+			} else {
+				// iOS上获取本机是否安装了百度高德地图,需要在manifest里配置
+				// 在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加
+				//(如urlschemewhitelist:["iosamap","baidumap"])
+				plus.nativeUI.actionSheet(
+					{
+						title: '选择地图应用',
+						cancel: '取消',
+						buttons: [{ title: '腾讯地图' }, { title: '百度地图' }, { title: '高德地图' }]
+					},
+					function(e) {
+						switch (e.index) {
+							case 1:
+								url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
+								break;
+							case 2:
+								url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&content=${name}&src=ios.baidu.openAPIdemo&coord_type=gcj02`;
+								break;
+							case 3:
+								url = `iosamap://viewMap?sourceApplication=applicationName&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
+								break;
+							default:
+								break;
+						}
+						if (url != '') {
+							url = encodeURI(url);
+							plus.runtime.openURL(url, function(e) {
+								plus.nativeUI.alert('本机未安装指定的地图应用');
+							});
+						}
+					}
+				);
+			}
+		}
+	}
+};
+</script>
+
+<style lang="less">
+.center,
+page {
+	background: #f8f8f8;
+	height: 100%;
+}
+.dhdd {
+	view {
+		margin: 0 auto;
+	}
+}
+.store-info {
+	background: #ffffff;
+
+	.store-top {
+		padding: 40rpx 20rpx;
+		justify-content: flex-start;
+
+		.simage {
+			width: 130rpx;
+			height: 130rpx;
+			background: #f44939;
+		}
+
+		.stop-main {
+			height: 130rpx;
+			padding: 6rpx 0;
+			margin-left: 20rpx;
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			align-items: flex-start;
+
+			.stop-title {
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #000000;
+			}
+
+			.stop-address {
+				display: flex;
+				justify-content: flex-end;
+				align-items: center;
+
+				.mrt-image {
+					width: 20rpx;
+					height: 28rpx;
+				}
+
+				.mrt-font {
+					margin-left: 8rpx;
+					font-size: 22rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #666666;
+				}
+			}
+		}
+	}
+}
+
+.store-item {
+	background: #ffffff;
+	display: flex;
+	justify-content: flex-start;
+	align-items: center;
+	padding: 30rpx 30rpx 30rpx 44rpx;
+
+	.store-image1 {
+		width: 36rpx;
+		height: 36rpx;
+	}
+
+	.store-image2 {
+		margin: 0 1rpx;
+		width: 34rpx;
+		height: 34rpx;
+	}
+
+	.store-image3 {
+		margin: 0 7rpx;
+		width: 22rpx;
+		height: 28rpx;
+	}
+
+	.store-font {
+		margin-left: 22rpx;
+		font-size: 26rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #2d2d2d;
+	}
+}
+
+.store-main {
+	margin-top: 16rpx;
+	background: #ffffff;
+	padding: 30rpx 42rpx 40rpx;
+
+	.smain-title {
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #464646;
+	}
+}
+
+.scroll-box {
+	white-space: nowrap;
+	margin-top: 30rpx;
+	height: 240rpx;
+
+	.scroll-item:first-child {
+		margin-left: 0;
+	}
+
+	.scroll-item {
+		margin-left: 20rpx;
+		display: inline-block;
+		height: 240rpx;
+		// width: 240rpx;
+	}
+
+	.scroll-image {
+		height: 240rpx;
+		// width: 240rpx;
+	}
+}
+
+.btn-box {
+	position: fixed;
+	bottom: 0rpx;
+	left: 0;
+	right: 0;
+	width: 750rpx;
+	background: rgba(255, 255, 255, 0.6);
+	box-shadow: 0rpx 0rpx 20rpx 0px rgba(50, 50, 52, 0.06);
+	padding: 22rpx 68rpx;
+
+	.btn-left {
+		width: 280rpx;
+		height: 80rpx;
+		background: linear-gradient(180deg, #ffa30b, #ffd158);
+		box-shadow: 0px 3rpx 13rpx 3rpx rgba(255, 164, 13, 0.48);
+		border-radius: 40rpx;
+		text-align: center;
+		line-height: 80rpx;
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+	}
+
+	.btn-right {
+		width: 280rpx;
+		height: 80rpx;
+		background: linear-gradient(180deg, #ff6223, #ffab60);
+		box-shadow: 0px 3rpx 13rpx 3rpx rgba(255, 164, 13, 0.48);
+		border-radius: 40rpx;
+		text-align: center;
+		line-height: 80rpx;
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+	}
+}
+
+.popup_row {
+	width: 100%;
+	height: 500rpx;
+	background-color: #ffffff;
+	border-radius: 20rpx;
+	display: flex;
+	justify-content: center;
+	align-items: center;
+
+	.rows {
+		width: 100%;
+		padding: 0 24rpx;
+
+		.rows-item {
+			height: 80rpx;
+			line-height: 80rpx;
+			text-align: center;
+			width: 100%;
+			font-size: 32rpx;
+			color: #303133;
+			// border-bottom: 1rpx solid #f0f0f0;
+		}
+
+		// .row-1 {
+		// 	margin: auto;
+		// 	.first_aid {
+		// 		width: 300rpx;
+		// 		height: 300rpx;
+		// 	}
+		// }
+		// .row-2 {
+		// 	font-size: 38rpx;
+		// 	margin-top: 20rpx;
+		// }
+	}
+}
+
+.shop-dhq {
+	width: 702rpx;
+	height: 171rpx;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.15);
+	margin: auto;
+	border-radius: 20rpx;
+	background-color: #fff;
+	padding: 0 48rpx 0 26rpx;
+	margin-bottom: 20rpx;
+
+	.dhq-left {
+		.dhq-name {
+			overflow: hidden;
+			width: 28%;
+			font-size: 28rpx;
+			font-weight: bold;
+			color: #333333;
+		}
+
+		.dhq-price {
+			padding-top: 20rpx;
+
+			.j-price {
+				font-size: 38rpx;
+				font-weight: bold;
+				color: #ff4c4c;
+
+				&::before {
+					content: '¥';
+					font-size: 24rpx;
+					color: #ff4c4c;
+				}
+			}
+
+			.j-zk {
+				margin: 10rpx;
+				display: inline-block;
+				margin-left: 10rpx;
+				line-height: 32rpx;
+				height: 32rpx;
+				border: 1px solid #ff4c4c;
+				border-radius: 5rpx;
+				font-size: 22rpx;
+				font-weight: 500;
+				color: #ff4c4c;
+				padding: 0 8rpx;
+			}
+		}
+	}
+
+	.dhq-right {
+		.right-btn {
+			width: 105rpx;
+			line-height: 56rpx;
+			background: linear-gradient(143.2747deg, #ff6a00, #ee0979);
+			border: 1rpx solid #ff4c4c;
+			border-radius: 27rpx;
+			text-align: center;
+			color: #fff;
+			font-size: 28rpx;
+			font-weight: bold;
+		}
+	}
+}
+.jx-box-content {
+	display: flex;
+	.content-left {
+		margin: 20rpx 15rpx;
+		width: 236rpx;
+		height: 236rpx;
+		background: #e2e2e2;
+		border-radius: 10rpx;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.content-right {
+		display: flex;
+		flex-direction: column;
+		justify-content: space-around;
+
+		.shop-name {
+			width: 382rpx;
+			font-size: 32rpx;
+			font-weight: bold;
+			color: #333333;
+
+			overflow: hidden;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 2;
+		}
+
+		.shop-content {
+			width: 455rpx;
+			display: flex;
+			justify-content: space-between;
+
+			.shop-content-left {
+				display: flex;
+				flex-direction: column;
+
+				.price-box {
+					display: flex;
+					align-items: center;
+					.yuan-price {
+						font-size: 26rpx;
+						font-weight: 500;
+						text-decoration: line-through;
+						color: #999999;
+					}
+
+					image {
+						margin: 0 10rpx;
+						width: 16rpx;
+						height: 18rpx;
+					}
+
+					.j-price {
+						font-size: 24rpx;
+						font-weight: bold;
+						color: #b59467;
+					}
+				}
+
+				.price-x {
+					font-size: 36rpx;
+					font-weight: bold;
+					color: #ff4c4c;
+				}
+			}
+
+			.shop-content-right {
+				margin-top: 20rpx;
+				align-items: center;
+				text-align: center;
+				width: 137rpx;
+				height: 52rpx;
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #fff;
+				background: #f75022;
+				border-radius: 26rpx;
+				line-height: 52rpx;
+			}
+		}
+	}
+}
+.popup-box {
+	width: 500rpx;
+	background: #ffffff;
+	border-radius: 20rpx;
+	padding: 50rpx 0 20rpx;
+	.title {
+		text-align: center;
+		font-size: 32rpx;
+		font-weight: 500;
+	}
+	.input {
+		background: #e8e8e8;
+		width: 300rpx;
+		margin: 50rpx auto 0;
+		padding: 10rpx;
+	}
+	.nocancel {
+		margin-top: 20rpx;
+		text-align: center;
+		font-size: 28rpx;
+		font-weight: 500;
+	}
+	.comfirm-box {
+		margin-top: 80rpx;
+		display: flex;
+		width: 100%;
+		align-items: center;
+		.cancel {
+			width: 50%;
+			text-align: center;
+			font-size: 28rpx;
+			font-weight: 500;
+		}
+		.comfirm {
+			width: 50%;
+			text-align: center;
+			font-size: 28rpx;
+			font-weight: 500;
+			color: #fe4a4a;
+		}
+	}
+}
+</style>

+ 419 - 0
pages/store/shopList.vue

@@ -0,0 +1,419 @@
+<template>
+	<view class="content">
+		<view class="search flex">
+			<view class="input-box flex" @click.stop="clickSearch">
+				<view class=" input-content flex">
+					<view class="iconfont iconsearch"></view>
+					<view class="input"><input type="text" placeholder="请输入店铺名称" v-model="name" /></view>
+				</view>
+			</view>
+			<view class="search-btn" @click="search()">搜索</view>
+		</view>
+		<scroll-view scroll-y="true" :style="{ height: height }" class="shop-list-wrap" @scrolltolower="getStoreList()">
+			<!-- 空白页 -->
+			<empty v-if="loaded === true && shopList.length === 0"></empty>
+			<view class="djq-wrap flex f-ai-s" v-for="item in shopList" @click="navTo('/pages/store/shopDetail?id=' + item.id)">
+				<image :src="item.image" mode="" class="djq-img"></image>
+				<view class="djq-right pl20">
+					<view class="djq-tit flex f-j-sb f-ai-s">
+						<view class="djq-name clamp">{{ item.name }}</view>
+						<view class="djq-dis">
+							<image src="../../static/icon/dw.png" mode=""></image>
+							距离{{ item.range * 1 }}KM
+						</view>
+					</view>
+					<view class="flex f-d-c f-j-sb f-ai-s fg1" style="height: 110rpx;">
+						<view class="djq-dz clamp2">{{ item.detailed_address }}</view>
+						<view class="djq-hd flex f-j-sb">
+							<view class="hd-btn">
+								<image src="../../static/icon/call.png" mode="" style="margin-right: 15rpx;" @click.stop="makeCall(item.phone)"></image>
+								<!-- #ifdef H5 -->
+								<image src="../../static/icon/dh.png" mode="" @click.stop="toGaodeMap(item.latitude, item.longitude, item.name)"></image>
+								<!-- #endif -->
+								<!-- #ifdef MP -->
+								<image src="../../static/icon/dh.png" mode="" @click.stop="dh(item)"></image>
+								<!-- #endif -->
+							</view>
+						</view>
+					</view>
+					<view class="" style="padding: 10rpx 0 0 0;">
+						<view class="left-btm flex f-j-s" v-for="itemt in item.cou">
+							<view class="j-price">
+								<text>¥</text>
+								{{ itemt.coupon_price }}
+							</view>
+							<view class="j-name">{{ itemt.title }}</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<uni-load-more :status="loadingType"></uni-load-more>
+		</scroll-view>
+	</view>
+</template>
+
+<script>
+import empty from '@/components/empty';
+// #ifdef H5
+import { weixindata, shareLoad } from '@/utils/wxAuthorized';
+// #endif
+import { mapState, mapMutations } from 'vuex';
+import { getStoreList } from '@/api/shop.js';
+export default {
+	components: {
+		empty
+	},
+	data() {
+		return {
+			page: 1,
+			limit: 10,
+			shopList: [],
+			name: '',
+			height: '',
+			loadingType: 'more',
+			loaded: false
+		};
+	},
+	computed: {
+		...mapState(['loginInterceptor', 'baseURL', 'latitude', 'longitude'])
+	},
+	onLoad(opt) {
+		if (opt.id) {
+			this.id = opt.id;
+		}
+		console.log(opt.id, '分类id');
+		this.getStoreList();
+	},
+	onShow() {},
+	onReachBottom() {},
+	onReady() {
+		var obj = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.shop-list-wrap').boundingClientRect();
+				query.exec(function(res) {
+					obj.height = resu.windowHeight - res[0].top + 'px';
+				});
+			},
+			fail: res => {}
+		});
+	},
+	methods: {
+		navTo(url) {
+			uni.navigateTo({
+				url,
+				fail() {
+					uni.switchTab({
+						url
+					});
+				}
+			});
+		},
+		search() {
+			let obj = this;
+			obj.shopList = [];
+			obj.loadingType = 'more';
+			obj.page = 1;
+			obj.getStoreList();
+		},
+		// 拨打电话
+		makeCall(phone) {
+			uni.makePhoneCall({
+				phoneNumber: phone //仅为示例
+			});
+		},
+		// 导航
+		dh(item) {
+			wx.openLocation({
+				latitude: item.latitude * 1,
+				longitude: item.longitude * 1,
+				name: item.name,
+				address: item.detailed_address
+			});
+		},
+		getStoreList() {
+			let obj = this;
+			if (obj.loadingType == 'noMore' || obj.loadingType == 'loading') {
+				return;
+			}
+			obj.loadingType = 'loading';
+			getStoreList({
+				cate_id: obj.id,
+				name: obj.name,
+				latitude: obj.latitude,
+				longitude: obj.longitude,
+				page: obj.page,
+				limit: obj.limit
+				// address: obj.$store.state.chooseDistrict,
+			}).then(res => {
+				console.log(res);
+				obj.shopList = obj.shopList.concat(res.data.list);
+				obj.page++;
+				if (obj.limit == res.data.list.length) {
+					obj.loadingType = 'more';
+				} else {
+					obj.loadingType = 'noMore';
+				}
+				obj.loaded = true;
+			});
+		},
+		// 调用高德
+		toGaodeMap(latitude, longitude, address) {
+			console.log('选择高德', latitude, longitude, address);
+			window.location.href = `https://uri.amap.com/marker?position=${longitude},${latitude}&name=${address}`;
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.search-top {
+	// position: fixed;
+	// top: 0;
+	// z-index: 99;
+}
+
+.shop {
+	// margin-top: 20rpx;
+	background: #ffffff;
+	padding: 0 12rpx;
+
+	.shop-title {
+		padding: 30rpx 0 20rpx;
+		display: flex;
+		align-items: center;
+		border-bottom: 1px solid #e3e6e7;
+
+		.shop-item {
+			width: 33%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.sitem-font {
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+			}
+
+			.jt-down {
+				width: 10rpx;
+				height: 8rpx;
+				margin-left: 12rpx;
+			}
+		}
+	}
+}
+
+.shop-list-wrap {
+	// background-color: red;
+	padding-top: 20rpx;
+}
+
+.djq-wrap {
+	width: 701rpx;
+	// height: 255rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 27rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 20rpx;
+	margin: 0 auto 20rpx;
+	padding: 23rpx 22rpx;
+
+	&:last-of-type {
+		margin-bottom: 0;
+	}
+
+	.djq-img {
+		flex-shrink: 0;
+		width: 150rpx;
+		height: 150rpx;
+		border-radius: 10rpx;
+	}
+
+	.djq-right {
+		margin-left: 10rpx;
+		flex-grow: 1;
+
+		.djq-tit {
+			font-size: 34rpx;
+			font-weight: bold;
+			color: #333333;
+			line-height: 52rpx;
+
+			.djq-name {
+				max-width: 300rpx;
+			}
+
+			.djq-dis {
+				display: flex;
+				align-items: center;
+				flex-shrink: 0;
+
+				image {
+					width: 20rpx;
+					height: 28rpx;
+					margin-right: 10rpx;
+				}
+
+				font-size: 22rpx;
+				font-weight: 500;
+				color: #666666;
+			}
+		}
+
+		.djq-dz {
+			width: 100%;
+			font-size: 24rpx;
+			font-weight: 500;
+			color: #666666;
+		}
+
+		.djq-hd {
+			width: 100%;
+			display: flex;
+			justify-content: end;
+
+			.buy-info {
+				display: inline-block;
+				height: 32rpx;
+				border-radius: 16rpx 16rpx 16rpx 0px;
+				line-height: 32rpx;
+				font-size: 20rpx;
+				font-weight: 500;
+				color: #ff440d;
+				padding: 0 15rpx;
+				background-color: #fff;
+			}
+
+			.hd-btn {
+				image {
+					width: 46rpx;
+					height: 46rpx;
+				}
+			}
+		}
+	}
+}
+
+.left-btm {
+	height: 50rpx;
+
+	.j-logo {
+		width: 32rpx;
+		line-height: 33rpx;
+		background: linear-gradient(-48deg, #ffa30b, #ffd158);
+		border-radius: 13rpx;
+		font-size: 21rpx;
+		font-weight: 500;
+		color: #ffffff;
+		text-align: center;
+	}
+
+	.j-price {
+		font-size: 27rpx;
+		font-weight: bold;
+		color: #ff4c4c;
+		margin: 0 10rpx 0 5rpx;
+	}
+
+	.j-zk {
+		height: 31rpx;
+		border: 1rpx solid #ff4c4c;
+		border-radius: 7rpx;
+		line-height: 31rpx;
+		padding: 0 8rpx;
+		font-size: 20rpx;
+		font-weight: bold;
+		color: #ff4c4c;
+		margin-right: 5rpx;
+	}
+
+	.j-name {
+		font-size: 23rpx;
+		font-weight: bold;
+		color: #333333;
+	}
+}
+
+.search {
+	justify-content: flex-start;
+	padding: 10rpx 32rpx 20rpx;
+	align-items: center;
+	background-color: #fff;
+
+	.search-btn {
+		display: inline-block;
+		// flex-grow: ;
+		flex-shrink: 0;
+		padding: 0 0 0 20rpx;
+		font-size: 32rpx;
+		color: #ff4c4c;
+		z-index: 99;
+	}
+
+	.address {
+		width: 32rpx;
+		height: 38rpx;
+	}
+
+	.shop-name {
+		height: 38rpx;
+		position: relative;
+		top: -4rpx;
+		z-index: 100;
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		padding-left: 10rpx;
+	}
+
+	.shop-jt {
+		margin-left: 8rpx;
+		width: 16rpx;
+		height: 10rpx;
+	}
+
+	.input-box {
+		margin-left: 10rpx;
+		position: relative;
+		z-index: 99;
+		width: 710rpx;
+		height: 60rpx;
+		background: #eeeeee;
+		border-radius: 30rpx;
+
+		.input-content {
+			position: relative;
+			z-index: 11;
+			border-radius: 99rpx;
+			flex-grow: 1;
+			padding: 5rpx 30rpx;
+			background: #eeeeee;
+
+			.iconsearch {
+				font-size: 50rpx;
+				color: #cbcbcb;
+			}
+
+			.input {
+				margin-left: 19rpx;
+				flex-grow: 1;
+
+				input {
+					font-size: 28rpx;
+
+					color: #000;
+				}
+			}
+		}
+
+		.input-button {
+			padding-left: 20rpx;
+			font-size: $font-base;
+			height: 100%;
+		}
+	}
+}
+</style>

+ 194 - 0
pages/store/vipShop.vue

@@ -0,0 +1,194 @@
+<template>
+	<view>
+		<view class="jx-box-content" v-for="item in vipList" @click="navToDetailPage(item)">
+			<view class="content-left">
+				<image :src=item.image mode=""></image>
+			</view>
+			<view class="content-right">
+				<view class="shop-name">
+					{{item.store_name}}
+				</view>
+				<view class="shop-content">
+					<view class="shop-content-left">
+						<view class="price-box">
+							<view class="yuan-price">
+								¥{{item.ot_price}}
+							</view>
+							<image src="../../static/sy/sy06.png" mode=""></image>
+							<view class="j-price">
+								直降{{item.ot_price*1-item.price*1}}元
+							</view>
+						</view>
+						<view class="price-x">
+							¥{{item.price}}
+						</view>
+					</view>
+					<view class="shop-content-right" >
+						立即购买
+					</view>
+				</view>
+			</view>
+		</view>
+		<uni-load-more :status="loadingType"></uni-load-more>
+	</view>
+</template>
+
+<script>
+	import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
+	import {getVip} from '@/api/index.js';
+	export default {
+		components:{
+			uniLoadMore
+		},
+		data() {
+			return {
+				vipList:[],//商品列表
+				page:1,
+				limit:10,
+				loadingType:'more'
+			};
+		},
+		onLoad() {
+		    this.getVipList()
+		},
+		onReachBottom() {
+		    this.getVipList()
+		},
+		methods:{
+			navToDetailPage(item) {
+				let id = item.id;
+				uni.navigateTo({
+					url: '/pages/product/product?id=' + id +'&isVip='+0
+				});
+			},
+			getVipList(){
+				let obj = this
+				if(obj.loadingType === 'loading' || obj.loadingType === 'noMore'){
+					return //如果正在加载中,防止重复加载
+				}
+				obj.loadingType = 'loading'
+				getVip(
+				{   page:obj.page,
+					limit:obj.limit,
+					is_vip:3
+				}).then(res=>{
+					
+					 res.data.forEach(e=>{
+						e.isVip = e.store_type? "3" : "0"
+					 })
+					console.log(res.data,'vip商品');
+					 if(res.data.length>0){
+						obj.vipList = obj.vipList.concat(res.data)
+						console.log(obj.vipList,'vip');
+						obj.page++
+					 }
+					if(obj.limit == res.data.length){
+						console.log("haiyou");
+						obj.loadingType = 'more'
+					}else{
+						console.log("wule");
+						obj.loadingType = 'noMore'
+					}
+					console.log(obj.loadingType,"12345789");
+					uni.hideLoading()
+					this.$set(obj.vipList,'loaded',true)
+				})
+				
+				
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.jx-box-content {
+		display: flex;
+		.content-left {
+			margin: 20rpx 15rpx;
+			width: 236rpx;
+			height: 236rpx;
+			background: #E2E2E2;
+			border-radius: 10rpx;
+			image {
+				width: 100%;
+				height:100%;
+			}
+		}
+	
+
+		.content-right {
+			display: flex;
+			flex-direction: column;
+			justify-content: space-around;
+			
+			.shop-name {
+				width: 382rpx;
+				font-size: 32rpx;
+				font-weight: bold;
+				color: #333333;
+				
+				overflow: hidden;
+				text-overflow: ellipsis;
+				display:-webkit-box;
+				-webkit-box-orient:vertical;
+				-webkit-line-clamp:2;
+			}
+
+			.shop-content {
+				width: 455rpx;
+				display: flex;
+				justify-content: space-between;
+				
+				.shop-content-left {
+					display: flex;
+					flex-direction: column;
+					
+					
+					
+					.price-box {
+						display: flex;
+						align-items: center;
+						.yuan-price {
+							font-size: 26rpx;
+							font-weight: 500;
+							text-decoration: line-through;
+							color: #999999;
+						}
+
+						image {
+							margin: 0 10rpx;
+							width: 16rpx;
+							height: 18rpx;
+						}
+
+						.j-price {
+							font-size: 24rpx;
+							font-weight: bold;
+							color: #B59467;
+						}
+					}
+
+					.price-x {
+						font-size: 36rpx;
+						font-weight: bold;
+						color: #FF4C4C;
+					}
+				}
+
+				.shop-content-right {
+					margin-top:20rpx ;
+					align-items: center;
+					text-align: center;
+					width: 137rpx;
+					height: 52rpx;
+					font-size: 26rpx;
+					font-weight: 500;
+					color: #fff;
+					background: #f75022;
+					border-radius: 26rpx;
+					line-height: 52rpx;
+				}
+			}
+		}
+	}
+</style>

+ 3 - 3
pages/user/about.vue

@@ -7,12 +7,12 @@
 		</view>
 		<view class="main">
 			<text>
-				浙江多力网络科技有限公司,2016年创立于浙江台州 ,公司以网站建设核心业务 专注于创意设计和传播应用 ,探索并实现商业价值最大化,为所有谋求长远发展的企业机构贡献全力。
-				浙江多力网络科技有限公司注重专业探索,摒弃虚浮夸张,在更深远的认知中,将不断修正服务导向,完善制作品格,以探求精品塑造与理念升华,勇做推动行业发展的中坚力量
+				安圣电子商务有限公司,2016年创立于浙江台州 ,公司以网站建设核心业务 专注于创意设计和传播应用 ,探索并实现商业价值最大化,为所有谋求长远发展的企业机构贡献全力。
+				安圣电子商务有限公司注重专业探索,摒弃虚浮夸张,在更深远的认知中,将不断修正服务导向,完善制作品格,以探求精品塑造与理念升华,勇做推动行业发展的中坚力量
 			</text>
 		</view>
 		<view class="tip">
-			浙江多力网络科技有限公司
+			安圣电子商务有限公司
 			<br />
 			版权所有
 		</view>

+ 267 - 0
pages/user/barter.vue

@@ -0,0 +1,267 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="money-box">
+				<view class="text">我的钱</view>
+				<view class="money">{{ userInfo.barter_integral | getMoneyStyle }}</view>
+			</view>
+		</view>
+		<view class="navbar">
+			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
+		</view>
+		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300" @change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+					<!-- 订单列表 -->
+					<template>
+						<view v-for="(item, i) in tabItem.orderList" class="order-item flex">
+							<view class="title-box">
+								<view class="title">
+									<text>{{ item.mark }}</text>
+								</view>
+
+								<view class="time">
+									<text>{{ item.add_time }}</text>
+								</view>
+							</view>
+							<view class="money">
+								<text>{{ (item.pm == 0 ? '-' : '+') + item.number }}</text>
+							</view>
+						</view>
+					</template>
+					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+import { barter_integral, userBalance } from '@/api/wallet.js';
+import { mapState, mapMutations } from 'vuex';
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+import empty from '@/components/empty';
+export default {
+	filters: {
+		getMoneyStyle
+	},
+	components: {
+		empty,
+		uniLoadMore
+	},
+	onReady(res) {
+		// 初始化获取页面宽度
+		var _this = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.swiper-box').boundingClientRect();
+				query.exec(function(res) {
+					_this.maxheight = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.height);
+				});
+			},
+			fail: res => {}
+		});
+	},
+	data() {
+		return {
+			// 头部图高度
+			maxheight: '',
+			tabCurrentIndex: 0,
+			navList: [
+				{
+					state: 1,
+					text: '明细',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
+				}
+			],
+			money: ''
+		};
+	},
+	onLoad(options) {
+		this.loadData();
+	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	methods: {
+		// 页面跳转
+		navto(e) {
+			uni.navigateTo({
+				url: e
+			});
+		},
+		//获取收入支出信息
+		async loadData(source) {
+			//这里是将订单挂载到tab列表下
+			let index = this.tabCurrentIndex;
+			let navItem = this.navList[index];
+			let state = navItem.state;
+			if (source === 'tabChange' && navItem.loaded === true) {
+				//tab切换只有第一次需要加载数据
+				return;
+			}
+			if (navItem.loadingType === 'noMore') {
+				//防止重复加载
+				return;
+			}
+			// 修改当前对象状态为加载中
+			navItem.loadingType = 'loading';
+			barter_integral({
+				page: navItem.page,
+				limit: navItem.limit,
+				pm: state
+			})
+				.then(({ data }) => {
+					console.log(data);
+					navItem.orderList = navItem.orderList.concat(data);
+					console.log(navItem.orderList, '123465');
+					navItem.page++;
+					if (navItem.limit == data.length) {
+						//判断是否还有数据, 有改为 more, 没有改为noMore
+						navItem.loadingType = 'more';
+						return;
+					} else {
+						//判断是否还有数据, 有改为 more, 没有改为noMore
+						navItem.loadingType = 'noMore';
+					}
+					uni.hideLoading();
+					this.$set(navItem, 'loaded', true);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+
+		//swiper 切换
+		changeTab(e) {
+			this.tabCurrentIndex = e.target.current;
+			this.loadData('tabChange');
+		},
+		//顶部tab点击
+		tabClick(index) {
+			this.tabCurrentIndex = index;
+		},
+		// 点击返回 我的页面
+		toBack() {
+			uni.switchTab({
+				url: '/pages/user/user'
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: #ffffff;
+	height: 100%;
+}
+.content-money {
+	padding-bottom: 30rpx;
+	background: $page-color-base;
+	// border: 2px solid #ffffff;
+	// padding-top: var(--status-bar-height);
+	.money-box {
+		background-color: $base-color;
+		padding-top: var(--status-bar-height);
+		height: 368rpx;
+		color: #ffffff;
+		text-align: center;
+		.text {
+			padding-top: 147rpx;
+			font-size: $font-sm;
+		}
+		.money {
+			font-size: 56rpx;
+		}
+	}
+}
+.navbar {
+	display: flex;
+	height: 40px;
+	padding: 0 5px;
+	background: #fff;
+	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+	position: relative;
+	z-index: 10;
+	.nav-item {
+		flex: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 15px;
+		color: #999999;
+		position: relative;
+		&.current {
+			color: #5dbc7c;
+			&:after {
+				content: '';
+				position: absolute;
+				left: 50%;
+				bottom: 0;
+				transform: translateX(-50%);
+				width: 44px;
+				height: 0;
+				border-bottom: 2px solid #5dbc7c;
+			}
+		}
+	}
+}
+// 列表
+
+.swiper-box {
+	padding-top: 10rpx;
+	.order-item {
+		padding: 20rpx 30rpx;
+		line-height: 1.5;
+		.title-box {
+			.title {
+				font-size: $font-lg;
+				color: $font-color-base;
+			}
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
+			}
+		}
+		.money {
+			color: #ff0000;
+			font-size: $font-lg;
+		}
+	}
+}
+.list-scroll-content {
+	height: 100%;
+}
+.wallet-btn {
+	width: 674rpx;
+	height: 88rpx;
+	background: linear-gradient(90deg, #08c4e6, #50ead2);
+	border-radius: 44rpx;
+	font-size: $font-lg;
+	font-family: PingFang SC;
+	font-weight: 500;
+	color: #ffffff;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	position: fixed;
+	left: 38rpx;
+	bottom: 50rpx;
+}
+.content {
+	height: 100%;
+	.empty-content {
+		background-color: #ffffff;
+	}
+}
+</style>

+ 1 - 9
pages/user/scoreAccumulate.vue

@@ -75,15 +75,7 @@ export default {
 			navList: [
 				{
 					state: 1,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 0,
-					text: '支出',
+					text: '明细',
 					loadingType: 'more',
 					orderList: [],
 					page: 1, //当前页数

+ 4 - 5
pages/user/shareQrCode.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="container">
-		<image @longtap="bc_code" class="backImg" :src="backImg"></image>
-		<view class="tki-qrcode"><canvas @longtap="bc_code" canvas-id="qrcode" /></view>
+		<image @longtap="bc_code" class="backImg" mode="widthFix" :src="backImg"></image>
+		<!-- <view class="tki-qrcode"><canvas @longtap="bc_code" canvas-id="qrcode" /></view> -->
 	</view>
 </template>
 
@@ -39,10 +39,10 @@ export default {
 				type: 2,
 				//#endif
 				//#ifdef MP
-				type:1,
+				type: 1,
 				//#endif
 				//#ifdef APP-PLUS
-				type:2,
+				type: 2
 				//#endif
 			}).then(({ data }) => {
 				console.log(data);
@@ -96,7 +96,6 @@ page {
 .backImg {
 	position: absolute;
 	width: 100%;
-	height: 100%;
 }
 .portrait {
 	width: 100%;

+ 11 - 5
pages/user/team.vue

@@ -44,8 +44,13 @@
 									<text>{{ item.phone }}</text>
 								</view>
 							</view>
-							<view class="money">
-								<text>{{ item.numberCount == null ? '未购买' : item.numberCount + '元' }}</text>
+							<view class="list-left">
+								<view class="money">
+									<text>第{{ item.layer }}层</text>
+								</view>
+								<view class="money">
+									<text>{{ item.numberCount == null ? '未购买' : item.numberCount + '元' }}</text>
+								</view>
 							</view>
 						</view>
 					</view>
@@ -89,7 +94,7 @@ export default {
 				}
 			],
 			all: '',
-			list: '',
+			list: ''
 		};
 	},
 	computed: {
@@ -460,9 +465,10 @@ page {
 			}
 		}
 	}
-
-	.money {
+	.list-left {
 		width: 50%;
+	}
+	.money {
 		text-align: right;
 		color: #db1935;
 		font-size: $font-lg;

+ 242 - 387
pages/user/user.vue

@@ -1,113 +1,81 @@
 <template>
 	<view class="container">
 		<view class="vheigh"></view>
-		<scroll-view class="content-box" scroll-y="true">
-			<view class="user-section">
-				<view class="bg"></view>
-				<view class="user-info-box ">
-					<view class="detail flex" @click="navTo('/pages/set/userinfo')">
-						<view class="portrait-box"><image class="portrait" :src="userInfo.avatar || '/static/error/missing-face.png'"></image></view>
-						<view class="info-box">
-							<view class="info-top flex">
-								<view class="username clamp">{{ userInfo.nickname || '游客' }}</view>
-								<view class="vip" v-if="userInfo.is_vip > 0 || userInfo.is_svip > 0">
-									<image class="vip-bg" src="../../static/img/vip.png" mode=""></image>
-									<view class="vip-title">{{ userInfo.is_svip == 1 ? '超级会员' : '会员' }}</view>
-								</view>
-							</view>
-							<view class="font-size-sm">邀请码:{{ userInfo.uid }}</view>
-							<view class="font-size-sm">小区业绩:{{ userInfo.small_achievement }}</view>
-						</view>
-					</view>
-					<view class="config iconfont"><text class="setting iconsetting" @click="navTo('/pages/set/set')"></text></view>
-				</view>
-				<!-- 会员卡功能 -->
+		<view class="top-bg"><view class="title">会员中心</view></view>
+		<view class="userinfo-box">
+			<view class="userinfo-info">
+				<view class="portrait-box"><image class="portrait" :src="userInfo.avatar || '/static/error/missing-face.png'"></image></view>
+				<view class="username clamp">y{{ userInfo.nickname || '游客' }}</view>
+				<view class="phone clamp">{{ userInfo.phone | phrule }}</view>
+				<view class="level clamp">{{ userInfo.level_info ? userInfo.level_info.name : '会员' }}</view>
 			</view>
-
-			<view
-				class="cover-container"
-				:style="[
-					{
-						transform: coverTransform,
-						transition: coverTransition
-					}
-				]"
-			>
-				<image class="arc" src="/static/img/arc.png"></image>
-
-				<view class="tj-sction">
-					<view class="tj-item" @click="navTo('/pages/money/wallet')">
-						<text class="num">{{ userInfo.now_money || '0.00' }}</text>
-						<text>余额</text>
-					</view>
-					<view class="tj-item" @click="navTo('/pages/user/award')">
-						<text class="num">{{ userInfo.brokerage_price || '0.00' }}</text>
-						<text>佣金</text>
-					</view>
-					<view class="tj-item" @click="navTo('/pages/user/scoreAccumulate')">
-						<text class="num">{{ userInfo.integral || '0.00' }}</text>
-						<text>积分</text>
-					</view>
+			<view class="money-box flex">
+				<view class="money-box-item" @click="navTo('/pages/money/wallet')">
+					<view class="money-box-item-price">{{ userInfo.now_money || '0.00' }}</view>
+					<view class="money-box-item-name">钱包余额</view>
 				</view>
-				<!-- 订单 -->
-
-				<view class="item-box">
-					<view class="order-section">
-						<view class="order-item" @click="navTo('/pages/order/order?state=0')" hover-class="common-hover" :hover-stay-time="50">
-							<view class=" icon position-relative">
-								<image class="icon-img" src="/static/icon/i1.png" mode="aspectFit"></image>
-								<view class="corner" v-if="orderInfo.unpaid_count > 0">
-									<text>{{ orderInfo.unpaid_count }}</text>
-								</view>
-							</view>
-							<text>待付款</text>
-						</view>
-						<view class="order-item" @click="navTo('/pages/order/order?state=1')" hover-class="common-hover" :hover-stay-time="50">
-							<view class=" icon position-relative">
-								<image class="icon-img" src="/static/icon/i2.png" mode="aspectFit"></image>
-								<view class="corner" v-if="orderInfo.unshipped_count > 0">
-									<text>{{ orderInfo.unshipped_count }}</text>
-								</view>
-							</view>
-							<text>待发货</text>
-						</view>
-						<view class="order-item" @click="navTo('/pages/order/order?state=2')" hover-class="common-hover" :hover-stay-time="50">
-							<view class="icon position-relative">
-								<image class="icon-img" src="/static/icon/i3.png" mode="aspectFit"></image>
-								<view class="corner" v-if="orderInfo.received_count > 0">
-									<text>{{ orderInfo.received_count }}</text>
-								</view>
-							</view>
-							<text>待收货</text>
-						</view>
-						<view class="order-item" @click="navTo('/pages/order/order?state=3')" hover-class="common-hover" :hover-stay-time="50">
-							<view class="icon position-relative"><image class="icon-img" src="/static/icon/i4.png" mode="aspectFit"></image></view>
-							<text>已完成</text>
-						</view>
-					</view>
+				<view class="xian"></view>
+				<view class="money-box-item" @click="navTo('/pages/user/scoreAccumulate')">
+					<view class="money-box-item-price">{{ userInfo.integral || '0.00' }}</view>
+					<view class="money-box-item-name">兑换券余额</view>
 				</view>
-
-				<!-- 浏览历史 -->
-				<view class="history-section icon">
-					<uni-list>
-						<uni-list-item title="我的推广" @click="navTo('/pages/user/team')" thumb="/static/icon/img11.png"></uni-list-item>
-						<uni-list-item title="收货地址" @click="navTo('/pages/set/address')" thumb="/static/icon/img12.png"></uni-list-item>
-						<uni-list-item title="我的收藏" @click="navTo('/pages/user/favorites')" thumb="/static/icon/img02.png"></uni-list-item>
-						<uni-list-item title="邀请好友" @click="navTo('/pages/user/shareQrCode')" thumb="/static/icon/img10.png"></uni-list-item>
-						<uni-list-item title="会员协议" @click="navTo('/pages/contract/agreement')" thumb="/static/img/vipxy.png"></uni-list-item>
-						<uni-list-item title="隐私政策" @click="navTo('/pages/contract/privacy')" thumb="/static/img/yszc.png"></uni-list-item>
-						<uni-list-item title="关于我们" @click="navTo('/pages/user/about')" thumb="/static/img/about.png"></uni-list-item>
-						<!-- <uni-list-item title="关于我们" @click="navTo('/pages/shareQrCode/index')" thumb="/static/icon/img09.png"></uni-list-item> -->
-					</uni-list>
+				<view class="xian"></view>
+				<view class="money-box-item" @click="navTo('/pages/user/barter')">
+					<view class="money-box-item-price">{{ userInfo.barter_integral || '0.00' }}</view>
+					<view class="money-box-item-name">钱</view>
 				</view>
 			</view>
-		</scroll-view>
+			<!-- <view class="userinfo-box-tip">本月分享:0人,本月您已复购:0PV</view> -->
+		</view>
+		<view class="main-box">
+			<view class="main-item" @click="navTo('/pages/order/order?state=0')">
+				<view class="image"><image class="image1" src="../../static/icon/u1.png" mode=""></image></view>
+				<view class="main-item-font">订单管理</view>
+			</view>
+			<view class="main-item" @click="navTo('/pages/set/address')">
+				<view class="image"><image class="image2" src="../../static/icon/u2.png" mode=""></image></view>
+				<view class="main-item-font">地址管理</view>
+			</view>
+			<view class="main-item" @click="navTo('/pages/money/recharge?type=1')">
+				<view class="image"><image class="image3" src="../../static/icon/u3.png" mode=""></image></view>
+				<view class="main-item-font">电子钱包</view>
+			</view>
+			<view class="main-item" @click="navTo('/pages/user/award')">
+				<view class="image"><image class="image4" src="../../static/icon/u4.png" mode=""></image></view>
+				<view class="main-item-font">奖金管理</view>
+			</view>
+			<view class="main-item" @click="navTo('/pages/user/shareQrCode')">
+				<view class="image"><image class="image6" src="../../static/icon/u6.png" mode=""></image></view>
+				<view class="main-item-font">分享二维码</view>
+			</view>
+			<view class="main-item" @click="navTo('/pages/user/team')">
+				<view class="image"><image class="image5" src="../../static/icon/u5.png" mode=""></image></view>
+				<view class="main-item-font">分享查询</view>
+			</view>
+			<view class="main-item" @click="navTo('/pages/user/favorites')">
+				<view class="image"><image class="image7" src="../../static/icon/u7.png" mode=""></image></view>
+				<view class="main-item-font">我的收藏</view>
+			</view>
+			<view class="main-item" @click="navTo('/pages/set/set')">
+				<view class="image"><image class="image8" src="../../static/icon/u8.png" mode=""></image></view>
+				<view class="main-item-font">个人资料</view>
+			</view>
+			<!-- <view class="main-item" @click="navTo('/pages/user/about')">
+				<view class="image"><image class="image9" src="../../static/icon/u9.png" mode=""></image></view>
+				<view class="main-item-font">关于我们</view>
+			</view> -->
+			<view class="main-item" @click="navTo('/pages/merchant/merchant')" v-if="userInfo.store != 0">
+				<view class="image"><image class="image10" src="../../static/icon/u10.png" mode=""></image></view>
+				<view class="main-item-font">店铺管理</view>
+			</view>
+		</view>
 	</view>
 </template>
 <script>
 import { mapState, mapMutations } from 'vuex';
 import uniList from '@/components/uni-list/uni-list.vue';
 import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
+import { getAddressList, setAddressDefault, addressDel } from '@/api/user.js';
 import { orderData, getUserInfo } from '@/api/user.js';
 import { saveUrl, interceptor } from '@/utils/loginUtils.js';
 let startY = 0,
@@ -119,13 +87,7 @@ export default {
 		uniListItem
 	},
 	data() {
-		return {
-			coverTransform: 'translateY(0px)',
-			coverTransition: '0s',
-			moving: false,
-			userDowm: 0, //卡片升级专属高度
-			userMaxDowm: 0 //卡片最高高度
-		};
+		return {};
 	},
 	onShow() {
 		// 判断是否已经登录
@@ -133,6 +95,17 @@ export default {
 			this.loadBaseData();
 		}
 	},
+	filters: {
+		phrule(provider) {
+			if (provider) {
+				var subStr1 = provider.substr(0, 3);
+				var subStr2 = provider.substr(provider.length - 4, 4);
+				var subStr = subStr1 + '...' + subStr2;
+				provider = subStr;
+			}
+			return provider;
+		}
+	},
 	onReady() {
 		// 初始化获取页面宽度
 		uni.createSelectorQuery()
@@ -150,26 +123,6 @@ export default {
 			)
 			.exec();
 	},
-	// #ifndef MP
-	// onNavigationBarButtonTap(e) {
-	// 	const index = e.index;
-	// 	if (index === 0) {
-	// 		this.navTo('/pages/set/set');
-	// 	} else if (index === 1) {
-	// 		// #ifdef APP-PLUS
-	// 		const pages = getCurrentPages();
-	// 		const page = pages[pages.length - 1];
-	// 		const currentWebview = page.$getAppWebview();
-	// 		currentWebview.hideTitleNViewButtonRedDot({
-	// 			index
-	// 		});
-	// 		// #endif
-	// 		uni.navigateTo({
-	// 			url: '/pages/user/notice'
-	// 		});
-	// 	}
-	// },
-	// #endif
 	computed: {
 		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
 	},
@@ -181,19 +134,25 @@ export default {
 				.then(({ data }) => {
 					this.setUserInfo(data);
 					// 获取用户数据完毕后在获取订单数据防止多次跳转到登录页
-					orderData({})
-						.then(({ data }) => {
-							this.setOrderInfo(data);
-						})
-						.catch(e => {
-							this.setOrderInfo({
-								complete_count: 0, //完成
-								received_count: 0, //待收货
-								unshipped_count: 0, //待发货
-								order_count: 0, //订单总数
-								unpaid_count: 0 //待付款
+					getAddressList({
+						page: 1,
+						limit: 100
+					}).then(({ data }) => {
+						if (data.length == 0) {
+							uni.showModal({
+								title: '提示',
+								content: '您未填写收货地址,请您先去填写收货地址',
+								showCancel: false,
+								success: function(res) {
+									if (res.confirm) {
+										uni.navigateTo({
+											url: '/pages/set/address'
+										});
+									}
+								}
 							});
-						});
+						}
+					});
 				})
 				.catch(e => {
 					console.log(e);
@@ -219,287 +178,183 @@ export default {
 };
 </script>
 <style lang="scss">
-page {
-	height: 100%;
-}
-%flex-center {
-	display: flex;
-	flex-direction: column;
-	justify-content: center;
-	align-items: center;
-}
-%section {
-	display: flex;
-	justify-content: space-around;
-	align-content: center;
-	background: #fff;
-	border-radius: 10rpx;
-}
+page,
 .container {
-	height: 100%;
-	background-color: $page-color-base;
-}
-.content-box {
-	height: 100%;
+	min-height: 100%;
+	height: auto;
+	background: #f8f8f8;
 }
 .vheigh {
 	height: var(--status-bar-height);
 	background-color: $base-color;
 }
-.user-section {
-	height: 435rpx;
-	padding: 15rpx 30rpx 0;
-	position: relative;
-	.bg {
-		position: absolute;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		background-color: $base-color;
+.top-bg {
+	width: 750rpx;
+	height: auto;
+	background: #5dbc7c;
+	padding: 20rpx 0 212rpx;
+	.title {
+		font-size: 34rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+		text-align: center;
 	}
 }
-.user-info-box {
-	height: 180rpx;
-	color: white;
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	position: relative;
-	z-index: 1;
-	.detail {
-		height: 130rpx;
+.userinfo-box {
+	width: 690rpx;
+	background: #ffffff;
+	border-radius: 19rpx;
+	margin: -106rpx auto 0;
+	.userinfo-info {
+		position: relative;
+		top: -70rpx;
+		display: flex;
+		align-items: center;
+		flex-direction: column;
+		line-height: 1;
 		.portrait-box {
-			height: 100%;
+			width: 140rpx;
+			height: 140rpx;
+			border-radius: 50%;
 			.portrait {
-				width: 130rpx;
-				height: 100%;
-				border: 5rpx solid #fff;
+				width: 140rpx;
+				height: 140rpx;
 				border-radius: 50%;
 			}
 		}
-		.info-box {
-			margin-left: 20rpx;
-			line-height: 1.5;
-
-			.username {
-				font-size: $font-lg + 2rpx;
-				height: 100%;
-				max-width: 200rpx;
-			}
-			.vip {
-				position: relative;
-				margin-left: 12rpx;
-				width: 130rpx;
-				height: 40rpx;
-				.vip-bg {
-					position: absolute;
-					top: 0;
-					left: 0;
-					right: 0;
-					width: 100%;
-					height: 100%;
-				}
-				.vip-title {
-					position: relative;
-					z-index: 10;
-					font-size: 20rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #93794b;
-					padding-left: 46rpx;
-					line-height: 40rpx;
-				}
-			}
-
-			.username-t {
-				font-size: $font-lg + 6rpx;
-				// height: 32rpx;
-				display: flex;
-				align-items: center;
-
-				image {
-					display: inline-block;
-					margin-left: 10rpx;
-					width: 147rpx;
-					height: 32rpx;
-				}
+		.username {
+			margin-top: 24rpx;
+			font-size: 32rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+		.phone {
+			margin-top: 16rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #666666;
+		}
+		.level {
+			background: #ff4c4c;
+			border-radius: 30rpx;
+			padding: 10rpx 30rpx;
+			margin-top: 10rpx;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #fff;
+		}
+	}
+	.money-box {
+		position: relative;
+		top: -30rpx;
+		.money-box-item {
+			width: 50%;
+			padding: 2rpx 0 8rpx;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			line-height: 1;
+			.money-box-item-price {
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
 			}
-
-			.user-get {
-				font-size: $font-lg;
-
-				text {
-					font-size: $font-lg + 6rpx;
-				}
+			.money-box-item-name {
+				margin-top: 18rpx;
+				font-size: 22rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #666666;
 			}
 		}
-	}
-	.config {
-		font-size: 48rpx;
-		height: 130rpx;
-		.setting {
-			margin-right: 51rpx;
+		.xian {
+			width: 1px;
+			height: 78rpx;
+			background: #ebebeb;
 		}
 	}
-}
-
-.vip-card-box {
-	display: flex;
-	flex-direction: column;
-	color: #f7d680;
-	height: 240rpx;
-	background: linear-gradient(left, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.8));
-	border-radius: 16rpx 16rpx 0 0;
-	overflow: hidden;
-	position: relative;
-	padding: 20rpx 24rpx;
-	.card-bg {
-		position: absolute;
-		top: 20rpx;
-		right: 0;
-		width: 380rpx;
-		height: 260rpx;
-	}
-	.b-btn {
-		position: absolute;
-		right: 20rpx;
-		top: 16rpx;
-		width: 132rpx;
-		height: 40rpx;
+	.userinfo-box-tip {
+		padding: 0 0 24rpx;
 		text-align: center;
-		line-height: 40rpx;
-		font-size: 22rpx;
-		color: #36343c;
-		border-radius: 20px;
-		background: linear-gradient(left, #f9e6af, #ffd465);
-		z-index: 1;
-	}
-	.tit {
-		font-size: $font-base + 2rpx;
-		color: #f7d680;
-		margin-bottom: 28rpx;
-		.iconfont {
-			color: #f6e5a3;
-			margin-right: 16rpx;
-		}
-	}
-	.e-b {
-		font-size: $font-sm;
-		color: #d8cba9;
-		margin-top: 10rpx;
-	}
-}
-.cover-container {
-	background: $page-color-base;
-	margin-top: -150rpx;
-	padding: 0 30rpx;
-	position: relative;
-	background: #f5f5f5;
-	padding-bottom: 20rpx;
-	.arc {
-		position: absolute;
-		left: 0;
-		top: -34rpx;
-		width: 100%;
-		height: 36rpx;
+		font-size: 26rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ff4c4c;
 	}
 }
-.tj-sction {
-	@extend %section;
-	.tj-item {
-		@extend %flex-center;
+.main-box {
+	width: 690rpx;
+	background: #ffffff;
+	border-radius: 19rpx;
+	margin: 20rpx auto 0;
+	display: flex;
+	flex-wrap: wrap;
+	justify-content: center;
+	padding-bottom: 98rpx;
+	.main-item {
+		display: flex;
 		flex-direction: column;
-		height: 140rpx;
-		font-size: $font-sm;
-		color: #75787d;
-	}
-	.num {
-		font-size: $font-lg;
-		color: $font-color-dark;
-		margin-bottom: 8rpx;
-	}
-}
-
-.item-box {
-	border-radius: 10rpx;
-	background-color: white;
-	margin-top: 20rpx;
-	.box-title {
-		line-height: 1;
-		padding: 30rpx;
-		.title {
-			font-size: $font-lg;
-			font-weight: bold;
+		align-items: center;
+		width: 33%;
+		padding-top: 78rpx;
+		.image {
+			display: flex;
+			justify-content: center;
+			width: 70rpx;
+			height: 70rpx;
 		}
-		.link {
-			font-size: $font-base - 2rpx;
-			color: $font-color-light;
+		.image1 {
+			width: 60rpx;
+			height: 68rpx;
 		}
-	}
-	.order-section {
-		@extend %section;
-		padding: 28rpx 0;
-		.order-item {
-			@extend %flex-center;
-			width: 120rpx;
-			height: 120rpx;
-			border-radius: 10rpx;
-			font-size: $font-sm;
-			color: $font-color-dark;
+		.image2 {
+			width: 44rpx;
+			height: 58rpx;
 		}
-		.iconfont {
-			font-size: 48rpx;
-			margin-bottom: 18rpx;
-			color: #fa436a;
+		.image3 {
+			width: 68rpx;
+			height: 68rpx;
 		}
-		.icon-shouhoutuikuan {
-			font-size: 44rpx;
+		.image4 {
+			width: 66rpx;
+			height: 70rpx;
 		}
-		.icon {
-			height: 50rpx;
-			width: 48rpx;
-			margin-bottom: 18rpx;
-			background-size: 100%;
-			background-repeat: no-repeat;
-			background-position: center;
-			.icon-img {
-				width: 100%;
-				height: 100%;
-			}
+		.image5 {
+			width: 76rpx;
+			height: 62rpx;
 		}
-	}
-}
-
-.history-section {
-	// padding: 30rpx 0 0;
-	margin-top: 20rpx;
-	background: #fff;
-	border-radius: 10rpx;
-	.sec-header {
-		display: flex;
-		align-items: center;
-		font-size: $font-base;
-		color: $font-color-dark;
-		line-height: 40rpx;
-		margin-left: 30rpx;
-		padding-top: 30rpx;
-		.iconfont {
-			font-size: 44rpx;
-			color: $color-red;
-			margin-right: 16rpx;
-			line-height: 40rpx;
+		.image6 {
+			width: 70rpx;
+			height: 70rpx;
 		}
-	}
-	.h-list {
-		white-space: nowrap;
-		padding: 30rpx 30rpx 0;
-		.h-list-image {
-			display: inline-block;
-			width: 160rpx;
-			height: 160rpx;
-			margin-right: 20rpx;
-			border-radius: 10rpx;
+		.image7 {
+			width: 60rpx;
+			height: 54rpx;
+		}
+		.image8 {
+			width: 60rpx;
+			height: 60rpx;
+		}
+		.image9 {
+			width: 54rpx;
+			height: 54rpx;
+		}
+		.image10 {
+			width: 60rpx;
+			height: 60rpx;
+		}
+		.main-item-font {
+			margin-top: 24rpx;
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+			line-height: 21px;
 		}
 	}
 }

+ 21 - 21
pages/user/withdrawal.vue

@@ -22,7 +22,7 @@
 				<view class="buttom" @click="withdrawal = money">全部提现</view>
 			</view>
 		</view>
-		<!-- #ifndef MP-WEIXIN -->
+
 		<view class="list">
 			<radio-group @change="tabRadio">
 				<!-- <label>
@@ -88,14 +88,14 @@ export default {
 	},
 	data() {
 		return {
-			sxf: 0,//手续费
+			sxf: 0, //手续费
 			type: 'alipay', //提现方式
 			money: '0.00', //可提现金额
 			freeze: '0.0', //冻结金额
 			withdrawal: '', //提现金额
 			minPrice: '', //最少提现金额
-			aliData: {fullname:'',alino:''},
-			bankData: {fullname:'',bank:'',bankno:''},
+			aliData: { fullname: '', alino: '' },
+			bankData: { fullname: '', bank: '', bankno: '' }
 		};
 	},
 	onLoad(options) {
@@ -111,7 +111,7 @@ export default {
 		// 加载提款账号信息
 		this.aliData.fullname = this.userInfo.alipay_name;
 		console.log(this.aliData.fullname);
-		this.aliData.alino = this.userInfo.alipay_code
+		this.aliData.alino = this.userInfo.alipay_code;
 		this.bankData.fullname = this.userInfo.bank_user_name;
 		this.bankData.bank = this.userInfo.bank_name;
 		this.bankData.bankno = this.userInfo.bank_code;
@@ -124,7 +124,7 @@ export default {
 				this.minPrice = data.minPrice; //最小提现
 				this.freeze = data.extractPriceCount; //提现中的余额
 				this.exchange = data.real_get_ratio / 100;
-				this.sxf = data.extractCommission;//提现手续费
+				this.sxf = data.extractCommission; //提现手续费
 			});
 		},
 		// 跳转
@@ -136,10 +136,10 @@ export default {
 		// 切换选中对象
 		tabRadio(e) {
 			this.type = e.detail.value;
-			console.log(this.type)
+			console.log(this.type);
 		},
 		imgsub() {
-			console.log(1111)
+			console.log(1111);
 			uploads({
 				filename: ''
 			}).then(data => {
@@ -158,22 +158,22 @@ export default {
 		// 提交
 		confirm() {
 			console.log(this.withdrawal);
-			if(this.withdrawal === ''){
-				this.$api.msg("请填写需要提现的佣金")
-				return
+			if (this.withdrawal === '') {
+				this.$api.msg('请填写需要提现的佣金');
+				return;
 			}
-			if(this.withdrawal == 0){
-				this.$api.msg("提现佣金不能为0")
-				return
+			if (this.withdrawal == 0) {
+				this.$api.msg('提现佣金不能为0');
+				return;
 			}
-			if(this.withdrawal < 50){
-				this.$api.msg("提现金额不能低于最小金额")
-				return
+			if (this.withdrawal < 50) {
+				this.$api.msg('提现金额不能低于最小金额');
+				return;
 			}
 			let data = {
 				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
 				money: this.withdrawal, //金额
-				money_type: "brokerage" //0佣金1余额
+				money_type: 'brokerage' //0佣金1余额
 			};
 			if (this.type == 'alipay') {
 				data.name = this.aliData.fullname;
@@ -184,12 +184,12 @@ export default {
 				data.bankname = this.bankData.bank;
 				data.cardnum = this.bankData.bankno;
 			}
-		
+
 			extractCash(data)
 				.then(e => {
 					uni.navigateTo({
-						url:'/pages/money/success?type=1'
-					})
+						url: '/pages/money/success?type=1'
+					});
 				})
 				.catch(e => {
 					console.log();

BIN
static/icon/c3.png


BIN
static/icon/c5.png


BIN
static/icon/c6.png


BIN
static/icon/c7.png


BIN
static/icon/c8.png


BIN
static/icon/call.png


BIN
static/icon/close.png


BIN
static/icon/daydd.png


BIN
static/icon/dayget.png


BIN
static/icon/dh.png


BIN
static/icon/dianpu.png


BIN
static/icon/dingwei.png


BIN
static/icon/dw.png


BIN
static/icon/i1.png


BIN
static/icon/i2.png


BIN
static/icon/i3.png


BIN
static/icon/i4.png


BIN
static/icon/i5.png


BIN
static/icon/i6.png


BIN
static/icon/i7.png


BIN
static/icon/img02.png


BIN
static/icon/img10.png


BIN
static/icon/img11.png


BIN
static/icon/img12.png


BIN
static/icon/index-gou.png


BIN
static/icon/money.png


BIN
static/icon/moneyget.png


BIN
static/icon/order.png


BIN
static/icon/saoma.png


BIN
static/icon/search-h.png


BIN
static/icon/sm.png


BIN
static/icon/sr.png


BIN
static/icon/u1.png


BIN
static/icon/u10.png


BIN
static/icon/u2.png


BIN
static/icon/u3.png


BIN
static/icon/u4.png


BIN
static/icon/u5.png


BIN
static/icon/u6.png


BIN
static/icon/u7.png


BIN
static/icon/u8.png


BIN
static/icon/u9.png


BIN
static/img/banner.png


BIN
static/img/hxbg.png


BIN
static/img/img10.png


BIN
static/img/img14.jpg


BIN
static/img/title.png


BIN
static/img/vip-card-bg.png


BIN
static/img/vip.png


BIN
static/img/vipxy.png


BIN
static/img/yszc.png


BIN
static/tabBar/tab-cart-current.png


BIN
static/tabBar/tab-cart.png


Some files were not shown because too many files changed in this diff