hwq 2 rokov pred
rodič
commit
7a04806890
100 zmenil súbory, kde vykonal 27642 pridanie a 6430 odobranie
  1. 4 0
      .hbuilderx/launch.json
  2. 18 0
      api/hall.js
  3. 18 0
      api/index.js
  4. 89 0
      api/shop.js
  5. 159 123
      api/user.js
  6. 14402 0
      components/lee-select-city/city.json
  7. 14 0
      components/lee-select-city/hot-cities.json
  8. 83 0
      components/lee-select-city/lee-latter-list.vue
  9. 434 0
      components/lee-select-city/lee-select-city.vue
  10. 6 3
      manifest.json
  11. 102 4
      pages.json
  12. 214 160
      pages/hall/hall.vue
  13. 430 371
      pages/hall/hallinfo.vue
  14. 665 521
      pages/hall/halllist.vue
  15. 520 441
      pages/hall/porducthall.vue
  16. 151 0
      pages/index/downLoad.vue
  17. 690 548
      pages/index/index.vue
  18. 6 7
      pages/index/messageInfo.vue
  19. 67 67
      pages/money/paySuccess.vue
  20. 301 0
      pages/money/qdwallet.vue
  21. 33 7
      pages/money/qudou.vue
  22. 248 201
      pages/money/withdrawal.vue
  23. 483 0
      pages/navigation/bdjj.vue
  24. 457 0
      pages/navigation/fhsy.vue
  25. 243 0
      pages/navigation/index.vue
  26. 451 0
      pages/navigation/main.vue
  27. 111 0
      pages/navigation/product.vue
  28. 82 0
      pages/navigation/productlist.vue
  29. 483 0
      pages/navigation/tdjj.vue
  30. 494 0
      pages/navigation/team.vue
  31. 1012 952
      pages/order/order.vue
  32. 158 143
      pages/product/new.vue
  33. 1150 1149
      pages/product/product.vue
  34. 352 316
      pages/public/login.vue
  35. 36 36
      pages/redirect/redirect.vue
  36. 148 131
      pages/set/phone.vue
  37. 957 0
      pages/store/shopDetail.vue
  38. 617 0
      pages/store/shopList.vue
  39. 928 191
      pages/store/store.vue
  40. 0 338
      pages/store/storeInfo.vue
  41. 15 15
      pages/user/myyue.vue
  42. 146 124
      pages/user/shareQrCode.vue
  43. 665 582
      pages/user/user.vue
  44. BIN
      static/icon/bdjj.png
  45. BIN
      static/icon/bdsj.png
  46. BIN
      static/icon/c3.png
  47. BIN
      static/icon/c5.png
  48. BIN
      static/icon/c6.png
  49. BIN
      static/icon/c7.png
  50. BIN
      static/icon/c8.png
  51. BIN
      static/icon/call.png
  52. BIN
      static/icon/dh.png
  53. BIN
      static/icon/dw.png
  54. BIN
      static/icon/fhsy.png
  55. BIN
      static/icon/guanbi@2x.png
  56. BIN
      static/icon/i1.png
  57. BIN
      static/icon/i2.png
  58. BIN
      static/icon/i3.png
  59. BIN
      static/icon/i4.png
  60. BIN
      static/icon/i5.png
  61. BIN
      static/icon/i6.png
  62. BIN
      static/icon/i7.png
  63. BIN
      static/icon/img01.png
  64. BIN
      static/icon/img02.png
  65. BIN
      static/icon/img03.png
  66. BIN
      static/icon/img04.png
  67. BIN
      static/icon/img05.png
  68. BIN
      static/icon/img06.png
  69. BIN
      static/icon/img07.png
  70. BIN
      static/icon/img08.png
  71. BIN
      static/icon/img09.png
  72. BIN
      static/icon/img10.png
  73. BIN
      static/icon/img11.png
  74. BIN
      static/icon/img12.png
  75. BIN
      static/icon/index06.png
  76. BIN
      static/icon/index1.png
  77. BIN
      static/icon/jindou.png
  78. BIN
      static/icon/kf.png
  79. BIN
      static/icon/n1.png
  80. BIN
      static/icon/n2.png
  81. BIN
      static/icon/n3.png
  82. BIN
      static/icon/n4.png
  83. BIN
      static/icon/n5.png
  84. BIN
      static/icon/n6.png
  85. BIN
      static/icon/n7.png
  86. BIN
      static/icon/n8.png
  87. BIN
      static/icon/phone.png
  88. BIN
      static/icon/shdz.png
  89. BIN
      static/icon/tdjj.png
  90. BIN
      static/icon/team.png
  91. BIN
      static/icon/title-icon.png
  92. BIN
      static/icon/u1.png
  93. BIN
      static/icon/u2.png
  94. BIN
      static/icon/u3.png
  95. BIN
      static/icon/u4.png
  96. BIN
      static/icon/u5.png
  97. BIN
      static/icon/uqd.png
  98. BIN
      static/img/afternoonicon.png
  99. BIN
      static/img/bargainBg.jpg
  100. BIN
      static/img/bo.png

+ 4 - 0
.hbuilderx/launch.json

@@ -14,6 +14,10 @@
      	{
      		"launchtype" : "remote"
      	},
+     	"mp-weixin" : 
+     	{
+     		"launchtype" : "remote"
+     	},
      	"type" : "uniCloud"
      }
     ]

+ 18 - 0
api/hall.js

@@ -98,3 +98,21 @@ export function count_down(data) {
 		data
 	});
 }
+
+// 获取key
+export function verify_code(data) {
+	return request({
+		url: '/api/auction/verify_code',
+		method: 'get',
+		data
+	});
+}
+
+// 获取图形验证码
+export function captcha(data) {
+	return request({
+		url: '/api/auction/captcha',
+		method: 'get',
+		data
+	});
+}

+ 18 - 0
api/index.js

@@ -51,3 +51,21 @@ export function store_details(data, id) {
 		data
 	});
 }
+
+// 导航栏信息
+export function order_info(data) {
+	return request({
+		url: '/api/user/order_info',
+		method: 'get',
+		data
+	});
+}
+
+// 导航栏信息详情
+export function bill_info(data) {
+	return request({
+		url: '/api/user/bill_info',
+		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/category',
+		method: 'get',
+		data
+	});
+}
+//获取店铺列表
+export function getStoreList(data) {
+	return request({
+		url: '/api/store_list',
+		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
+	})
+}

+ 159 - 123
api/user.js

@@ -1,104 +1,122 @@
-import request from '@/utils/request'
-
-// 订单统计信息
-export function orderData(data) {
-	return request({
-		url: '/api/order/data',
-		method: 'get',
-		data
-	});
-}
-
-// 获取用户信息
-export function getUserInfo(data) {
-	return request({
-		url: '/api/userinfo',
-		method: 'get',
-		data
-	});
-}
-
-// 用户分享图
-export function spreadBanner(data) {
-	return request({
-		url: '/api/spread/banner',
-		method: 'get',
-		data
-	});
-}
-
-// 获取地址列表
-export function getAddressList(data) {
-	return request({
-		url: '/api/address/list',
-		method: 'get',
-		data
-	});
-}
-// 修改地址
-export function addressEdit(data) {
-	return request({
-		url: '/api/address/edit',
-		method: 'post',
-		data
-	});
-}
-// 删除地址
-export function addressDel(data) {
-	return request({
-		url: '/api/address/del',
-		method: 'post',
-		data
-	});
-}
-// 设为默认地址
-export function setAddressDefault(data) {
-	return request({
-		url: '/api/address/default/set',
-		method: 'post',
-		data
-	});
-}
-// 购物车列表
-export function getCartList(data) {
-	return request({
-		url: '/api/cart/list',
-		method: 'get',
-		data
-	});
-}
-
-// 修改购物车数量
-export function getCartNum(data) {
-	return request({
-		url: '/api/cart/num',
-		method: 'post',
-		data
-	});
-}
-//删除购物车
-export function cartDel(data) {
-	return request({
-		url: '/api/cart/del',
-		method: 'post',
-		data
-	});
-}
-//获取收藏夹列表
-export function getcollectList(data) {
-	return request({
-		url: '/api/collect/user',
-		method: 'get',
-		data
-	});
-}
-// 取消收藏
-export function delcollect(data) {
-	return request({
-		url: '/api/collect/del',
-		method: 'post',
-		data
-	});
+import request from '@/utils/request'
+
+// 订单统计信息
+export function orderData(data) {
+	return request({
+		url: '/api/order/data',
+		method: 'get',
+		data
+	});
+}
+
+// 获取用户信息
+export function getUserInfo(data) {
+	return request({
+		url: '/api/user',
+		method: 'get',
+		data
+	});
+}
+
+// 用户分享图
+export function spreadBanner(data) {
+	return request({
+		url: '/api/spread/banner',
+		method: 'get',
+		data
+	});
+}
+
+// 获取地址列表
+export function getAddressList(data) {
+	return request({
+		url: '/api/address/list',
+		method: 'get',
+		data
+	});
+}
+// 修改地址
+export function addressEdit(data) {
+	return request({
+		url: '/api/address/edit',
+		method: 'post',
+		data
+	});
+}
+// 删除地址
+export function addressDel(data) {
+	return request({
+		url: '/api/address/del',
+		method: 'post',
+		data
+	});
+}
+// 设为默认地址
+export function setAddressDefault(data) {
+	return request({
+		url: '/api/address/default/set',
+		method: 'post',
+		data
+	});
+}
+// 购物车列表
+export function getCartList(data) {
+	return request({
+		url: '/api/cart/list',
+		method: 'get',
+		data
+	});
+}
+
+// 修改购物车数量
+export function getCartNum(data) {
+	return request({
+		url: '/api/cart/num',
+		method: 'post',
+		data
+	});
+}
+//删除购物车
+export function cartDel(data) {
+	return request({
+		url: '/api/cart/del',
+		method: 'post',
+		data
+	});
+}
+//获取收藏夹列表
+export function getcollectList(data) {
+	return request({
+		url: '/api/collect/user',
+		method: 'get',
+		data
+	});
+}
+// 取消收藏
+export function delcollect(data) {
+	return request({
+		url: '/api/collect/del',
+		method: 'post',
+		data
+	});
+}
+
+//我的推广
+export function spread(data) {
+	return request({
+		url: '/api/spread/people',
+		method: 'POST',
+		data
+	});
+}
+
+// 我的推广卖货
+export function link(data) {
+	return request({
+		url: '/api/link/people',
+		method: 'POST',
+		data
+	});
 }
 
 // 获取我的粉丝
@@ -108,24 +126,42 @@ export function getMyfans(data) {
 		method: 'get',
 		data
 	});
-}
-
-// 转账预约券
-export function transfer_accounts(data) {
-	return request({
-		url: '/api/auction/transfer_accounts',
-		method: 'post',
-		data
-	});
-}
+}
+
+// 转账预约券
+export function transfer_accounts(data) {
+	return request({
+		url: '/api/auction/transfer_accounts',
+		method: 'post',
+		data
+	});
+}
+
+// 用户转账趣豆
+export function trade(data) {
+	return request({
+		url: '/api/user/trade',
+		method: 'post',
+		data
+	});
+}
 
-// 申请馆长
-export function apply(data) {
-	return request({
-		url: '/api/auction/apply',
-		method: 'post',
-		data
-	});
+// 商家转账趣豆
+export function admintrade(data) {
+	return request({
+		url: '/api/admin/order/trade',
+		method: 'post',
+		data
+	});
+}
+
+// 申请馆长
+export function apply(data) {
+	return request({
+		url: '/api/auction/apply',
+		method: 'post',
+		data
+	});
 }
 
 // 实名认证查询
@@ -147,18 +183,18 @@ export function apply_status(data) {
 }
 
 //文章列表
-export function article(data,id) {
+export function article(data, id) {
 	return request({
-		url: '/api/article/list/'+id,
+		url: '/api/article/list/' + id,
 		method: 'GET',
 		data
 	});
 }
 
 //文章详情
-export function details(data,id) {
+export function details(data, id) {
 	return request({
-		url: '/api/article/details/'+id,
+		url: '/api/article/details/' + id,
 		method: 'GET',
 		data
 	});
@@ -171,4 +207,4 @@ export function user_product(data) {
 		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>

+ 6 - 3
manifest.json

@@ -2,8 +2,8 @@
     "name" : "易趣CBB",
     "appid" : "__UNI__F0EBD91",
     "description" : "",
-    "versionName" : "1.1.0",
-    "versionCode" : 110,
+    "versionName" : "1.2.4",
+    "versionCode" : 124,
     "transformPx" : false,
     "app-plus" : {
         /* 5+App特有相关 */
@@ -14,7 +14,10 @@
             "autoclose" : true,
             "delay" : 0
         },
-        "modules" : {},
+        "modules" : {
+            "VideoPlayer" : {},
+            "Camera" : {}
+        },
         /* 模块配置 */
         "distribute" : {
             /* 应用发布信息 */

+ 102 - 4
pages.json

@@ -3,6 +3,83 @@
 		"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
 	},
 	"pages": [{
+			"path": "pages/navigation/index",
+			"style": {
+				"enablePullDownRefresh": true,
+				// #ifdef MP
+				"navigationStyle": "custom",
+				// #endif
+				// #ifndef MP
+				"app-plus": {
+					"titleNView": false
+				},
+				// #endif
+				"navigationBarTitleText": "平台首页"
+			}
+		},
+		{
+			"path": "pages/navigation/main",
+			"style": {
+				"navigationBarTitleText": "卖货系统"
+			}
+		},
+		{
+			"path": "pages/navigation/product",
+			"style": {
+				"navigationBarTitleText": "产品详情"
+			}
+		},
+		{
+			"path": "pages/navigation/productlist",
+			"style": {
+				"navigationBarTitleText": "产品列表"
+			}
+		},
+		{
+			"path": "pages/navigation/bdjj",
+			"style": {
+				"navigationBarTitleText": "报单奖金",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent"
+					}
+				}
+			}
+		},
+		{
+			"path": "pages/navigation/tdjj",
+			"style": {
+				"navigationBarTitleText": "团队奖金",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent"
+					}
+				}
+			}
+		},
+		{
+			"path": "pages/navigation/fhsy",
+			"style": {
+				"navigationBarTitleText": "分红收益",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent"
+					}
+				}
+			}
+		},
+		{
+			"path": "pages/navigation/team",
+			"style": {
+				"navigationBarTitleText": "我的团队",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent"
+					}
+				}
+			}
+		},
+		{
 			"path": "pages/index/index",
 			"style": {
 				"enablePullDownRefresh": true,
@@ -17,6 +94,15 @@
 				"navigationBarTitleText": "商城首页"
 			}
 		},
+		{
+			"path": "pages/index/downLoad",
+			"style": {
+				"navigationBarTitleText": "下载",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
 		{
 			"path": "pages/product/new",
 			"style": {
@@ -191,13 +277,19 @@
 		{
 			"path": "pages/store/store",
 			"style": {
-				"navigationBarTitleText": "合作专区"
+				"navigationBarTitleText": "同城好店"
+			}
+		},
+		{
+			"path": "pages/store/shopDetail",
+			"style": {
+				"navigationBarTitleText": "好店详情"
 			}
 		},
 		{
-			"path": "pages/store/storeInfo",
+			"path": "pages/store/shopList",
 			"style": {
-				"navigationBarTitleText": "门店信息"
+				"navigationBarTitleText": "好店列表"
 			}
 		},
 		{
@@ -460,6 +552,12 @@
 				"navigationBarTitleText": "易趣卷转账"
 			}
 		},
+		{
+			"path": "pages/money/qdwallet",
+			"style": {
+				"navigationBarTitleText": "易豆转账"
+			}
+		},
 		{
 			"path": "pages/money/withdrawal",
 			"style": {
@@ -635,4 +733,4 @@
 			}
 		]
 	}
-}
+}

+ 214 - 160
pages/hall/hall.vue

@@ -2,13 +2,29 @@
 	<view class="center">
 		<view class="status_bar"><!-- 这里是状态栏 --></view>
 		<view class="top">
+			<!-- #ifndef APP-PLUS -->
+			<image class="top-bg" src="http://yiqugo.oss-cn-hangzhou.aliyuncs.com/f0827202304061457316753.png" mode="">
+			</image>
+			<!-- #endif -->
+			<!-- #ifdef APP-PLUS -->
 			<image class="top-bg" src="../../static/img/hall-bg.png" mode=""></image>
+
+			<!-- #endif -->
 			<view class="title">易趣会馆</view>
 		</view>
-		<view class="hall-main"><image src="../../static/img/hell-main.png" mode=""></image></view>
+		<view class="hall-main">
+			<!-- #ifndef APP-PLUS -->
+			<image src="http://yiqugo.oss-cn-hangzhou.aliyuncs.com/75885202304061434299264.png" mode=""></image>
+			<!-- #endif -->
+			<!-- #ifdef APP-PLUS -->
+			<image src="../../static/img/hell-main1.png" mode=""></image>
+			<!-- #endif -->
+		</view>
 		<view class="hall-center">
 			<view class="shingle-main" v-for="(item, index) in list" :key="index" @click="nav(item)">
-				<view class="shingle-bg"><image :src="item.image" mode=""></image></view>
+				<view class="shingle-bg">
+					<image :src="item.image" mode=""></image>
+				</view>
 				<view class="shinglem-title flex">
 					<image class="tbg" src="../../static/img/tbg-left.png" mode=""></image>
 					<view class="shinglemt-center">
@@ -30,8 +46,12 @@
 					<view class="shu"></view>
 					<view class="smmain-item">
 						<view class="people flex">
-							<view class="peopleitem" v-for="item in 1"><image src="../../static/img/busy.png" mode=""></image></view>
-							<view class="peopleitem" v-for="item in 4"><image src="../../static/img/leisure.png" mode=""></image></view>
+							<view class="peopleitem" v-for="item in 1">
+								<image src="../../static/img/busy.png" mode=""></image>
+							</view>
+							<view class="peopleitem" v-for="item in 4">
+								<image src="../../static/img/leisure.png" mode=""></image>
+							</view>
 						</view>
 						<view class="smitem-bottom">流畅</view>
 					</view>
@@ -44,186 +64,220 @@
 </template>
 
 <script>
-import { tabbar } from '@/utils/tabbar.js';
-import { auction_gu } from '@/api/hall.js';
-export default {
-	data() {
-		return {
-			tabbar: tabbar,
-			current: 2,
-			list: [],
-			page: 1,
-			limit: 10,
-			loadingType: 'more'
-		};
-	},
-	onShow() {
-		this.loadData();
-	},
-	methods: {
-		loadData() {
-			const obj = this;
-			if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
-				return;
-			}
-			obj.loadingType = 'loading';
-			auction_gu({ pages: obj.page, limit: obj.limit })
-				.then(({ data }) => {
-					console.log(data);
-					this.list = data;
-				})
-				.catch(e => {
-					console.log(e);
-				});
+	import {
+		tabbar
+	} from '@/utils/tabbar.js';
+	import {
+		auction_gu
+	} from '@/api/hall.js';
+	export default {
+		data() {
+			return {
+				tabbar: tabbar,
+				current: 2,
+				list: [],
+				page: 1,
+				limit: 10,
+				loadingType: 'more'
+			};
 		},
-		nav(item) {
-			uni.navigateTo({
-				url: '/pages/hall/halllist?id=' + item.id + '&name=' + item.name + '&peoplename=' + item.nickname
-			});
+		onShow() {
+			this.loadData();
+		},
+		methods: {
+			loadData() {
+				const obj = this;
+				if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
+					return;
+				}
+				obj.loadingType = 'loading';
+				auction_gu({
+						pages: obj.page,
+						limit: obj.limit
+					})
+					.then(({
+						data
+					}) => {
+						console.log(data);
+						this.list = data;
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+			nav(item) {
+				uni.navigateTo({
+					url: '/pages/hall/halllist?id=' + item.id + '&name=' + item.name + '&peoplename=' + item
+						.nickname
+				});
+			}
 		}
-	}
-};
+	};
 </script>
 
 <style lang="less">
-.center,
-page {
-	height: auto;
-	min-height: 100%;
-	background: #ffffff;
-}
-.status_bar {
-	height: var(--status-bar-height);
-	width: 100%;
-}
-.top {
-	position: relative;
-	width: 750rpx;
-	height: 346rpx;
-	.top-bg {
-		position: absolute;
-		top: 0;
-		left: 0;
-		right: 0;
-		width: 750rpx;
-		height: 346rpx;
+	.center,
+	page {
+		height: auto;
+		min-height: 100%;
+		background: #ffffff;
 	}
-	.title {
-		padding-top: 20rpx;
-		text-align: center;
-		position: relative;
-		z-index: 2;
-		font-size: 36rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-	}
-}
-.hall-main {
-	margin: -252rpx auto 0;
-	width: 700rpx;
-	height: 300rpx;
-	image {
+
+	.status_bar {
+		height: var(--status-bar-height);
 		width: 100%;
-		height: 100%;
 	}
-}
-.hall-center {
-	margin-top: 34rpx;
-}
-.shingle-main {
-	margin: 20rpx auto;
-	width: 690rpx;
-	height: 218rpx;
-	position: relative;
-	.shingle-bg {
-		position: absolute;
-		top: 0;
-		left: 0;
-		right: 0;
-		width: 690rpx;
-		height: 218rpx;
-		image {
-			width: 690rpx;
-			height: 218rpx;
-		}
-	}
-	.shinglem-title {
+
+	.top {
 		position: relative;
-		z-index: 2;
-		justify-content: center;
-		height: 70rpx;
-		.tbg {
-			height: 70rpx;
-			width: 40rpx;
-		}
-		.shinglemt-center {
-			display: flex;
-			align-items: center;
-			background: rgba(220, 38, 43, 0.66);
-		}
-		.address {
-			width: 28rpx;
-			height: 30rpx;
+		width: 750rpx;
+		height: 346rpx;
+
+		.top-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 750rpx;
+			height: 346rpx;
 		}
-		.shingle-font {
+
+		.title {
+			padding-top: 20rpx;
+			text-align: center;
+			position: relative;
+			z-index: 2;
 			font-size: 36rpx;
 			font-family: PingFang SC;
 			font-weight: bold;
 			color: #ffffff;
-			line-height: 70rpx;
-			margin-left: 14rpx;
 		}
 	}
-	.shingle-mmain {
+
+	.hall-main {
+		margin: -252rpx auto 0;
+		width: 700rpx;
+		height: 300rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.hall-center {
+		margin-top: 34rpx;
+	}
+
+	.shingle-main {
+		margin: 20rpx auto;
+		width: 690rpx;
+		height: 218rpx;
 		position: relative;
-		z-index: 2;
-		margin-top: 30rpx;
-		.smmain-item {
-			width: 33%;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			.smitem-top {
-				text-align: center;
-				width: 90%;
-				font-size: 30rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #ffffff;
+
+		.shingle-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 690rpx;
+			height: 218rpx;
+
+			image {
+				width: 690rpx;
+				height: 218rpx;
+			}
+		}
+
+		.shinglem-title {
+			position: relative;
+			z-index: 2;
+			justify-content: center;
+			height: 70rpx;
+
+			.tbg {
+				height: 70rpx;
+				width: 40rpx;
+			}
+
+			.shinglemt-center {
+				display: flex;
+				align-items: center;
+				background: rgba(220, 38, 43, 0.66);
+			}
+
+			.address {
+				width: 28rpx;
+				height: 30rpx;
 			}
-			.smitem-bottom {
-				margin-top: 10rpx;
-				font-size: 30rpx;
+
+			.shingle-font {
+				font-size: 36rpx;
 				font-family: PingFang SC;
-				font-weight: 500;
+				font-weight: bold;
 				color: #ffffff;
+				line-height: 70rpx;
+				margin-left: 14rpx;
 			}
-			.people {
-				justify-content: center;
-				.peopleitem {
-					width: 24rpx;
-					height: 34rpx;
-					image {
-						width: 100%;
-						height: 100%;
+		}
+
+		.shingle-mmain {
+			position: relative;
+			z-index: 2;
+			margin-top: 30rpx;
+
+			.smmain-item {
+				width: 33%;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+
+				.smitem-top {
+					text-align: center;
+					width: 90%;
+					font-size: 30rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #ffffff;
+				}
+
+				.smitem-bottom {
+					margin-top: 10rpx;
+					font-size: 30rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #ffffff;
+				}
+
+				.people {
+					justify-content: center;
+
+					.peopleitem {
+						width: 24rpx;
+						height: 34rpx;
+
+						image {
+							width: 100%;
+							height: 100%;
+						}
 					}
 				}
 			}
+
+			.shu {
+				width: 2rpx;
+				height: 70rpx;
+				background: #ffffff;
+			}
 		}
-		.shu {
-			width: 2rpx;
-			height: 70rpx;
-			background: #ffffff;
+
+		.right-bottom {
+			position: absolute;
+			z-index: 2;
+			right: 0;
+			bottom: 0;
+			width: 94rpx;
+			height: 92rpx;
 		}
 	}
-	.right-bottom {
-		position: absolute;
-		z-index: 2;
-		right: 0;
-		bottom: 0;
-		width: 94rpx;
-		height: 92rpx;
-	}
-}
-</style>
+</style>

+ 430 - 371
pages/hall/hallinfo.vue

@@ -3,8 +3,16 @@
 		<view class="content-money">
 			<view class="money-box">
 				<view class="status_bar"><!-- 这里是状态栏 --></view>
-				<image class="money_bg" src="../../static/img/hinfo-bg.png"></image>
-				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/img/fanhui.png" mode=""></image></view>
+				<!-- #ifndef APP-PLUS -->
+				<image class="money_bg" src="http://yiqugo.oss-cn-hangzhou.aliyuncs.com/87a32202304061420101468.png">
+				</image>
+				<!-- #endif -->
+				<!-- #ifdef APP-PLUS -->
+				<image class="money_bg" src="../../static/img/hinfo-bg1.png"></image>
+				<!-- #endif -->
+				<view class="goback-box" @click="toBack">
+					<image class="goback" src="../../static/img/fanhui.png" mode=""></image>
+				</view>
 				<view class="header">{{ name }}</view>
 
 				<view class="message flex">{{ name }}馆长:{{ peoplename }}</view>
@@ -20,7 +28,14 @@
 			</view>
 		</view>
 		<view class="djs" v-if="!isbuy1">
-			<view class="djs-bg"><image src="../../static/img/djs.png" mode=""></image></view>
+			<view class="djs-bg">
+				<!-- #ifndef APP-PLUS -->
+				<image src="http://yiqugo.oss-cn-hangzhou.aliyuncs.com/b7365202304061422072002.png" mode=""></image>
+				<!-- #endif -->
+				<!-- #ifdef APP-PLUS -->
+				<image src="../../static/img/djs1.png" mode=""></image>
+				<!-- #endif -->
+			</view>
 			<view class="djs-font">客官请稍后,请{{ time }}入场</view>
 			<view class="djs-main">入场倒计时:{{ countdown_time }}</view>
 		</view>
@@ -28,7 +43,9 @@
 			<view class="hotgoods">
 				<view class="hotgoods-item" v-for="item in firstList" :key="item.id" @click="navToDetailPage(item)">
 					<image class="sell-out" v-if="item.status == 2" src="../../static/img/sOut1.png" mode=""></image>
-					<view class="image-wrapper"><image :src="item.image" mode="scaleToFill"></image></view>
+					<view class="image-wrapper">
+						<image :src="item.image" mode="scaleToFill"></image>
+					</view>
 					<view class="title clamp margin-c-20">{{ item.name }}</view>
 					<view class="hot-price">
 						<view class="price">
@@ -49,404 +66,446 @@
 </template>
 
 <script>
-import { auction_product, count_down } from '@/api/hall.js';
-import { getTime } from '@/utils/rocessor.js';
-import { mapState, mapMutations } from 'vuex';
-export default {
-	data() {
-		return {
-			productname: '', //商品名称
-			name: '', //馆名字
-			peoplename: '', //馆长名字
-			firstList: [],
-			id: '', //场次id
-			page: 1,
-			limit: 20,
-			loadingType: 'more',
-			countdown_time: '',
-			canbuy: 0, //结束时间
-			time: '', //进场时间
-			timers: '', //延时器id
-			isLast: true
-		};
-	},
-	onLoad(option) {
-		this.name = option.name;
-		this.peoplename = option.peoplename;
-		this.id = option.id;
-	},
-	computed: {
-		...mapState(['isbuy1'])
-	},
-	onShow() {
-		if (!this.isbuy1) {
-			this.isDjs();
-		}
-		this.loadData();
-		this.loadDataNext();
-	},
-	onReachBottom() {
-		console.log('123456');
-		if (this.isbuy1) {
-			this.loadData();
-		}
-	},
-	onHide() {
-		clearTimeout(this.timers);
-	},
-	// 监听页面卸载
-	onUnload() {
-		// 关闭倒计时
-		clearTimeout(this.timers);
-	},
-	// 监听页面后退
-	onBackPress() {
-		// 关闭倒计时
-		clearTimeout(this.timers);
-	},
-	methods: {
-		...mapMutations(['setBuy1']),
-		isDjs() {
-			uni.showLoading({
-				title: '加载中'
-			});
-			count_down({ id: this.id }).then(({ data }) => {
-				uni.hideLoading();
-				this.canbuy = data.time;
-				let day = getTime(this.canbuy * 1000).split(' ');
-				this.time = day[1];
-				this.counTime();
-			});
+	import {
+		auction_product,
+		count_down
+	} from '@/api/hall.js';
+	import {
+		getTime
+	} from '@/utils/rocessor.js';
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				productname: '', //商品名称
+				name: '', //馆名字
+				peoplename: '', //馆长名字
+				firstList: [],
+				id: '', //场次id
+				page: 1,
+				limit: 20,
+				loadingType: 'more',
+				countdown_time: '',
+				canbuy: 0, //结束时间
+				time: '', //进场时间
+				timers: '', //延时器id
+				isLast: true
+			};
 		},
-		counTime() {
-			//获取当前时间
-			let data = new Date();
-			let newTime = data.getTime();
-			//结束时间
-			let end = this.canbuy;
-			//时间差
-			let leftTime = end * 1000 - newTime;
-			console.log(leftTime);
-			console.log(this.la, '2222222');
-			if (leftTime <= 0) {
-				console.log('已结束');
-				this.setBuy1(true);
-				return;
-			}
-			//定义保存倒计时时间
-			let m, s;
-			if (leftTime >= 0) {
-				m = Math.floor((leftTime / 1000 / 60) % 60);
-				s = Math.floor((leftTime / 1000) % 60);
-				this.second = s;
-				this.la = m + s;
-				console.log(this.la, '计算');
-				console.log(this.second);
-				console.log(m, s);
-				//倒计时赋值view
-				this.countdown_time = `${m}:${s}`;
-				this.timers = setTimeout(this.counTime, 1000);
-				//显示动态时间效果
-				if (s < 10) {
-					return (this.countdown_time = `${m}:0${s}`);
-					this.timers = setTimeout(this.counTime, 1000);
-				}
-				if (m < 10) {
-					return (this.countdown_time = `0${m}:${s}`);
-					this.timers = setTimeout(this.counTime, 1000);
-				}
-			}
+		onLoad(option) {
+			this.name = option.name;
+			this.peoplename = option.peoplename;
+			this.id = option.id;
 		},
-		search() {
-			this.firstList = [];
-			this.page = 1;
-			this.limit = 10;
-			this.loadingType = 'more';
-			this.loadData();
+		computed: {
+			...mapState(['isbuy1'])
 		},
-		loadData() {
-			const obj = this;
-			// if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
-			// 	return;
-			// }
-			// obj.loadingType = 'loading';
-			auction_product({
-				page: obj.page,
-				limit: obj.limit,
-				id: obj.id,
-				name: obj.productname
-			})
-				.then(({ data }) => {
-					// obj.firstList = obj.firstList.concat(data);
-					obj.firstList = data;
-					console.log(obj.firstList, '123456789');
-					// if (data.length == obj.limit) {
-					// 	obj.loadingType = 'more';
-					// 	obj.page++;
-					// } else {
-					// 	obj.loadingType = 'nomore';
-					// }
-				})
-				.catch(e => {
-					console.log(e);
-				});
+		onShow() {
+			if (!this.isbuy1) {
+				this.isDjs();
+			}
+			this.loadData();
+			this.loadDataNext();
 		},
-		loadDataNext() {
-			const obj = this;
-			// if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
-			// 	return;
-			// }
-			// obj.loadingType = 'loading';
-			auction_product({
-				page: obj.page + 1,
-				limit: obj.limit,
-				id: obj.id,
-				name: obj.productname
-			})
-				.then(({ data }) => {
-					// obj.firstList = obj.firstList.concat(data);
-					// obj.firstList = data;
-					// if (data.length == obj.limit) {
-					// 	obj.loadingType = 'more';
-					// 	obj.page++;
-					// } else {
-					// 	obj.loadingType = 'nomore';
-					// }
-					if (data.length === 0) {
-						obj.isLast = false;
-					} else {
-						obj.isLast = true;
-					}
-					console.log(obj.isLast);
-				})
-				.catch(e => {
-					console.log(e);
-				});
+		onReachBottom() {
+			console.log('123456');
+			if (this.isbuy1) {
+				this.loadData();
+			}
 		},
-		toBack() {
-			uni.navigateBack({});
+		onHide() {
+			clearTimeout(this.timers);
 		},
-		nav(url) {
-			uni.navigateTo({
-				url
-			});
+		// 监听页面卸载
+		onUnload() {
+			// 关闭倒计时
+			clearTimeout(this.timers);
 		},
-		last() {
-			let that = this;
-			if (this.page != 1) {
-				this.page = this.page - 1;
-				this.loadData();
-				this.loadDataNext();
-			} else {
-				that.$api.msg('已经是第一页了');
-			}
+		// 监听页面后退
+		onBackPress() {
+			// 关闭倒计时
+			clearTimeout(this.timers);
 		},
-		next() {
-			let that = this;
-			this.page = this.page + 1;
-			if (this.isLast) {
+		methods: {
+			...mapMutations(['setBuy1']),
+			isDjs() {
+				uni.showLoading({
+					title: '加载中'
+				});
+				count_down({
+					id: this.id
+				}).then(({
+					data
+				}) => {
+					uni.hideLoading();
+					this.canbuy = data.time;
+					let day = getTime(this.canbuy * 1000).split(' ');
+					this.time = day[1];
+					this.counTime();
+				});
+			},
+			counTime() {
+				//获取当前时间
+				let data = new Date();
+				let newTime = data.getTime();
+				//结束时间
+				let end = this.canbuy;
+				//时间差
+				let leftTime = end * 1000 - newTime;
+				console.log(leftTime);
+				console.log(this.la, '2222222');
+				if (leftTime <= 0) {
+					console.log('已结束');
+					this.setBuy1(true);
+					return;
+				}
+				//定义保存倒计时时间
+				let m, s;
+				if (leftTime >= 0) {
+					m = Math.floor((leftTime / 1000 / 60) % 60);
+					s = Math.floor((leftTime / 1000) % 60);
+					this.second = s;
+					this.la = m + s;
+					console.log(this.la, '计算');
+					console.log(this.second);
+					console.log(m, s);
+					//倒计时赋值view
+					this.countdown_time = `${m}:${s}`;
+					this.timers = setTimeout(this.counTime, 1000);
+					//显示动态时间效果
+					if (s < 10) {
+						return (this.countdown_time = `${m}:0${s}`);
+						this.timers = setTimeout(this.counTime, 1000);
+					}
+					if (m < 10) {
+						return (this.countdown_time = `0${m}:${s}`);
+						this.timers = setTimeout(this.counTime, 1000);
+					}
+				}
+			},
+			search() {
+				this.firstList = [];
+				this.page = 1;
+				this.limit = 10;
+				this.loadingType = 'more';
 				this.loadData();
-				this.loadDataNext();
-			} else {
-				this.page = this.page - 1;
-				that.$api.msg('已经是最后一页了');
-			}
-		},
-		navToDetailPage(item) {
-			if (item.status == '2') {
-				return this.$api.msg('已售罄');
+			},
+			loadData() {
+				const obj = this;
+				// if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
+				// 	return;
+				// }
+				// obj.loadingType = 'loading';
+				auction_product({
+						page: obj.page,
+						limit: obj.limit,
+						id: obj.id,
+						name: obj.productname
+					})
+					.then(({
+						data
+					}) => {
+						// obj.firstList = obj.firstList.concat(data);
+						obj.firstList = data;
+						console.log(obj.firstList, '123456789');
+						// if (data.length == obj.limit) {
+						// 	obj.loadingType = 'more';
+						// 	obj.page++;
+						// } else {
+						// 	obj.loadingType = 'nomore';
+						// }
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+			loadDataNext() {
+				const obj = this;
+				// if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
+				// 	return;
+				// }
+				// obj.loadingType = 'loading';
+				auction_product({
+						page: obj.page + 1,
+						limit: obj.limit,
+						id: obj.id,
+						name: obj.productname
+					})
+					.then(({
+						data
+					}) => {
+						// obj.firstList = obj.firstList.concat(data);
+						// obj.firstList = data;
+						// if (data.length == obj.limit) {
+						// 	obj.loadingType = 'more';
+						// 	obj.page++;
+						// } else {
+						// 	obj.loadingType = 'nomore';
+						// }
+						if (data.length === 0) {
+							obj.isLast = false;
+						} else {
+							obj.isLast = true;
+						}
+						console.log(obj.isLast);
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+			toBack() {
+				uni.navigateBack({});
+			},
+			nav(url) {
+				uni.navigateTo({
+					url
+				});
+			},
+			last() {
+				let that = this;
+				if (this.page != 1) {
+					this.page = this.page - 1;
+					this.loadData();
+					this.loadDataNext();
+				} else {
+					that.$api.msg('已经是第一页了');
+				}
+			},
+			next() {
+				let that = this;
+				this.page = this.page + 1;
+				if (this.isLast) {
+					this.loadData();
+					this.loadDataNext();
+				} else {
+					this.page = this.page - 1;
+					that.$api.msg('已经是最后一页了');
+				}
+			},
+			navToDetailPage(item) {
+				if (item.status == '2') {
+					return this.$api.msg('已售罄');
+				}
+				uni.navigateTo({
+					url: '/pages/hall/porducthall?id=' + item.id + '&uid=' + this.id + '&name=' + this.name +
+						'&peoplename=' + this.peoplename
+				});
 			}
-			uni.navigateTo({
-				url: '/pages/hall/porducthall?id=' + item.id + '&uid=' + this.id + '&name=' + this.name + '&peoplename=' + this.peoplename
-			});
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-.center,
-page {
-	height: auto;
-	min-height: 100%;
-	background-color: #ffffff;
-}
-.money-box {
-	color: #ffffff;
-	text-align: center;
-	position: relative;
-	padding-top: 250rpx;
-	.money_bg {
-		position: absolute;
-		width: 750rpx;
-		height: 412rpx;
-		top: 0;
-		left: 0;
-		right: 0;
-	}
-	.header {
-		position: absolute;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 80rpx;
-		font-size: 32rpx;
-		font-weight: 700;
-		z-index: 99;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-	}
-	.goback-box {
-		position: absolute;
-		left: 18rpx;
-		top: 0;
-		height: 80rpx;
-		display: flex;
-		align-items: center;
-	}
-	.goback {
-		z-index: 100;
-		width: 34rpx;
-		height: 34rpx;
-	}
-	.message {
-		display: inline-block;
-		position: relative;
-		z-index: 2;
-		margin: 0 auto;
-		padding: 20rpx 40rpx;
-		background: rgba(253, 59, 57, 0.4);
-		border-radius: 25rpx;
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: 500;
-		color: #ffffff;
+	.center,
+	page {
+		height: auto;
+		min-height: 100%;
+		background-color: #ffffff;
 	}
-}
-.search {
-	margin-top: 120rpx;
-	padding: 0 30rpx 0 20rpx;
-	display: flex;
-	align-items: center;
-	.search-left {
-		width: 112rpx;
-		height: 70rpx;
-		background: #fd3b39;
-		border-radius: 25rpx;
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: 500;
+
+	.money-box {
 		color: #ffffff;
-		line-height: 70rpx;
 		text-align: center;
-	}
-	.search-right {
-		width: 570rpx;
-		background: #dcdcdc;
-		border-radius: 35rpx;
-		margin-left: 20rpx;
-		padding: 18rpx 50rpx 18rpx 36rpx;
-		.search-inco {
-			width: 34rpx;
-			height: 34rpx;
-		}
-	}
-}
-.hotgoods {
-	margin-top: 38rpx;
-	width: 100%;
-	display: flex;
-	flex-wrap: wrap;
-	padding: 0 32rpx 20rpx;
-
-	.hotgoods-item {
 		position: relative;
-		width: 48%;
-		background-color: #ffffff;
-		border-radius: 12rpx;
-		margin-bottom: 24rpx;
-		&:nth-child(2n + 1) {
-			margin-right: 24rpx;
-		}
-		.sell-out {
+		padding-top: 250rpx;
+
+		.money_bg {
 			position: absolute;
+			width: 750rpx;
+			height: 412rpx;
 			top: 0;
 			left: 0;
 			right: 0;
-			width: 150rpx;
-			height: 130rpx;
-			z-index: 2;
 		}
-		.image-wrapper {
+
+		.header {
+			position: absolute;
+			left: 0;
+			top: 0;
 			width: 100%;
-			height: 330rpx;
-			border-radius: 3px;
-			overflow: hidden;
-			image {
-				width: 100%;
-				height: 100%;
-				opacity: 1;
-				border-radius: 12rpx 12rpx 0 0;
-			}
-		}
-		.title {
-			font-size: $font-base;
-			color: $font-color-dark;
-			font-weight: bold;
-			line-height: 80rpx;
+			height: 80rpx;
+			font-size: 32rpx;
+			font-weight: 700;
+			z-index: 99;
+			display: flex;
+			justify-content: center;
+			align-items: center;
 		}
-		.hot-price {
+
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
 			display: flex;
-			justify-content: space-between;
-			padding: 0 16rpx 12rpx;
 			align-items: center;
-			.price {
-				font-size: 40rpx;
-				color: #ff0000;
-				font-weight: 500;
-			}
-			.over {
-				font-size: 24rpx;
-				color: #a199a1;
-				font-weight: 500;
-			}
+		}
+
+		.goback {
+			z-index: 100;
+			width: 34rpx;
+			height: 34rpx;
+		}
+
+		.message {
+			display: inline-block;
+			position: relative;
+			z-index: 2;
+			margin: 0 auto;
+			padding: 20rpx 40rpx;
+			background: rgba(253, 59, 57, 0.4);
+			border-radius: 25rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
 		}
 	}
-}
-.djs {
-	margin: 90rpx auto 0;
-	width: 700rpx;
-	.djs-bg {
-		margin: auto;
-		width: 400rpx;
-		height: 400rpx;
-		image {
-			width: 100%;
-			height: 100%;
+
+	.search {
+		margin-top: 120rpx;
+		padding: 0 30rpx 0 20rpx;
+		display: flex;
+		align-items: center;
+
+		.search-left {
+			width: 112rpx;
+			height: 70rpx;
+			background: #fd3b39;
+			border-radius: 25rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+			line-height: 70rpx;
+			text-align: center;
+		}
+
+		.search-right {
+			width: 570rpx;
+			background: #dcdcdc;
+			border-radius: 35rpx;
+			margin-left: 20rpx;
+			padding: 18rpx 50rpx 18rpx 36rpx;
+
+			.search-inco {
+				width: 34rpx;
+				height: 34rpx;
+			}
 		}
 	}
-	.djs-font {
-		margin-top: 20rpx;
-		font-size: 32rpx;
-		text-align: center;
+
+	.hotgoods {
+		margin-top: 38rpx;
+		width: 100%;
+		display: flex;
+		flex-wrap: wrap;
+		padding: 0 32rpx 20rpx;
+
+		.hotgoods-item {
+			position: relative;
+			width: 48%;
+			background-color: #ffffff;
+			border-radius: 12rpx;
+			margin-bottom: 24rpx;
+
+			&:nth-child(2n + 1) {
+				margin-right: 24rpx;
+			}
+
+			.sell-out {
+				position: absolute;
+				top: 0;
+				left: 0;
+				right: 0;
+				width: 150rpx;
+				height: 130rpx;
+				z-index: 2;
+			}
+
+			.image-wrapper {
+				width: 100%;
+				height: 330rpx;
+				border-radius: 3px;
+				overflow: hidden;
+
+				image {
+					width: 100%;
+					height: 100%;
+					opacity: 1;
+					border-radius: 12rpx 12rpx 0 0;
+				}
+			}
+
+			.title {
+				font-size: $font-base;
+				color: $font-color-dark;
+				font-weight: bold;
+				line-height: 80rpx;
+			}
+
+			.hot-price {
+				display: flex;
+				justify-content: space-between;
+				padding: 0 16rpx 12rpx;
+				align-items: center;
+
+				.price {
+					font-size: 40rpx;
+					color: #ff0000;
+					font-weight: 500;
+				}
+
+				.over {
+					font-size: 24rpx;
+					color: #a199a1;
+					font-weight: 500;
+				}
+			}
+		}
 	}
-	.djs-main {
-		margin-top: 20rpx;
-		font-size: 40rpx;
-		text-align: center;
-		color: #fd3b39;
+
+	.djs {
+		margin: 90rpx auto 0;
+		width: 700rpx;
+
+		.djs-bg {
+			margin: auto;
+			width: 400rpx;
+			height: 400rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.djs-font {
+			margin-top: 20rpx;
+			font-size: 32rpx;
+			text-align: center;
+		}
+
+		.djs-main {
+			margin-top: 20rpx;
+			font-size: 40rpx;
+			text-align: center;
+			color: #fd3b39;
+		}
 	}
-}
-.nav {
-	.next {
-		margin: 40rpx;
-		width: 50%;
-		background-color: #fd3b39;
-		color: #ffffff;
-		text-align: center;
-		padding: 10rpx 0rpx;
-		border-radius: 50rpx;
+
+	.nav {
+		.next {
+			margin: 40rpx;
+			width: 50%;
+			background-color: #fd3b39;
+			color: #ffffff;
+			text-align: center;
+			padding: 10rpx 0rpx;
+			border-radius: 50rpx;
+		}
 	}
-}
-</style>
+</style>

+ 665 - 521
pages/hall/halllist.vue

@@ -3,26 +3,29 @@
 		<view class="content-money">
 			<view class="status_bar"><!-- 这里是状态栏 --></view>
 			<view class="money-box">
-				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/img/fanhui.png" mode=""></image></view>
+				<view class="goback-box" @click="toBack">
+					<image class="goback" src="../../static/img/fanhui.png" mode=""></image>
+				</view>
 				<view class="header">CBB利润前置抢货区</view>
-				<image class="money_bg" src="../../static/img/hinfo-bg.png"></image>
+				<!-- #ifndef APP-PLUS -->
+				<image class="money_bg" src="http://yiqugo.oss-cn-hangzhou.aliyuncs.com/87a32202304061420101468.png">
+				</image>
+				<!-- #endif -->
+				<!-- #ifdef APP-PLUS -->
+				<image class="money_bg" src="../../static/img/hinfo-bg1.png"></image>
+				<!-- #endif -->
+				</image>
 			</view>
 		</view>
 		<swiper class="hallist-bg" autoplay="true" duration="400" interval="5000">
-			<swiper-item v-for="(item, index) in images" :key="index" class="carousel-item"><image :src="item" /></swiper-item>
+			<swiper-item v-for="(item, index) in images" :key="index" class="carousel-item">
+				<image :src="item" />
+			</swiper-item>
 		</swiper>
 		<view class="message flex">
 			<image class="message-left" src="../../static/img/hinco.png" mode=""></image>
-			<u-notice-bar
-				style="width: 100%;"
-				mode="vertical"
-				type="none"
-				:volume-icon="false"
-				:more-icon="true"
-				:list="text"
-				@click="goDetails"
-				@getMore="navTo('/pages/index/message?type = 1')"
-			></u-notice-bar>
+			<u-notice-bar style="width: 100%;" mode="vertical" type="none" :volume-icon="false" :more-icon="true"
+				:list="text" @click="goDetails" @getMore="navTo('/pages/index/message?type = 1')"></u-notice-bar>
 		</view>
 		<view class="navbar">
 			<view class="navbar-item" @click="navTo('/pages/money/qudou')">
@@ -58,29 +61,24 @@
 						<view class="mmaint-font">{{ item.nickname }}</view>
 						<view class="mmaint-time">{{ item.radd_time }}开售</view>
 					</view>
-					<view class="mmain-time" style="margin-top: 28rpx;">预约时间:{{ item.add_time }}-{{ item.end_time }}</view>
+					<view class="mmain-time" style="margin-top: 28rpx;">预约时间:{{ item.add_time }}-{{ item.end_time }}
+					</view>
 					<view class="mmain-time">入场时间:{{ item.radd_time | ahead }}-{{ item.rend_time }}</view>
 					<view class="mmain-time flex">
 						<view class="mmain-font">距预约结束:</view>
 
-						<view class="lyy-b-jz flex" v-if="item.daotime == 1" style="font-size: 30rpx; color: #d13737;">已结束</view>
+						<view class="lyy-b-jz flex" v-if="item.daotime == 1" style="font-size: 30rpx; color: #d13737;">
+							已结束</view>
 						<view class="lyy-b-jz flex" v-else>
-							<uni-countdowns
-								color="#FFFFFF"
-								splitor-color="#FECD57"
-								background-color="#FECD57"
-								border-color="#FECD57"
-								:show-day="false"
-								:hour="item.hours"
-								:minute="item.minutes"
-								:second="item.seconds"
-								:index="index"
-								@timeover="isTime"
-							></uni-countdowns>
+							<uni-countdowns color="#FFFFFF" splitor-color="#FECD57" background-color="#FECD57"
+								border-color="#FECD57" :show-day="false" :hour="item.hours" :minute="item.minutes"
+								:second="item.seconds" :index="index" @timeover="isTime"></uni-countdowns>
 						</view>
 					</view>
 				</view>
-				<view class="mmain-image"><image :src="item.image" mode=""></image></view>
+				<view class="mmain-image">
+					<image :src="item.image" mode=""></image>
+				</view>
 			</view>
 			<view class="bottom" @click="open(item)">
 				<view class="bottom-font" v-if="item.str == '预约'">立即{{ item.str }}</view>
@@ -97,572 +95,718 @@
 				</view>
 			</view>
 		</uni-popup>
+		<uni-popup ref="rule" :mask-click="false">
+			<view class="regulation">
+				<view class="regulation_close" @click="$refs.rule.close()">
+					<image src="../../static/icon/guanbi@2x.png" mode=""></image>
+				</view>
+				<view class="regulation_name">会员须知及寄售协议</view>
+				<view class="regulation_main">
+					<scroll-view scroll-y="true" class="scroll-view">
+						<view class="html" v-html="hyxy"></view>
+					</scroll-view>
+				</view>
+				<view class="regulation_btn" @click="xyqd()">已阅读并同意</view>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
 <script>
-import uniCountdowns from '@/components/uni-countdown/uni-countdowns.vue';
-import { pay_list } from '../../api/wallet.js';
-import { article } from '@/api/user.js';
-import { getUserInfo, rate } from '@/api/user.js';
-import { mapState, mapMutations } from 'vuex';
-import { auction_list, subscribe, advance } from '@/api/hall.js';
-import { timeComputed } from '@/utils/rocessor.js';
-export default {
-	components: {
-		uniCountdowns
-	},
-	data() {
-		return {
-			images: [], //轮播图
-			name: '', //馆名字
-			peoplename: '', //馆长名字
-			price: '', //预约的价格
-			id: '', //预约会场id
-			oid: '', //馆id
-			page: 1,
-			limit: 10,
-			loadingType: 'more',
-			text: [],
-			article: [],
-			list: [],
-			aliData: {},
-			bankData: {},
-			wx: {},
-			sm: 0,
-			sbly: ''
-		};
-	},
-	filters: {
-		ahead(provider) {
-			let time = provider.split(':');
-			console.log(time);
-			if (time[1] * 1 - 6 < 0) {
-				time[1] = time[1] * 1 + 54;
-				if (time[0] * 1 == 0) {
-					time[0] = '23';
-				} else {
-					time[0] = time[0] * 1 - 1;
-				}
-			} else {
-				time[1] = time[1] * 1 - 6;
-				if (time[1] < 10) {
-					time[1] = '0' + time[1];
-				}
-			}
-			return time[0] + ':' + time[1] + ':' + time[2];
-		}
-	},
-	onLoad(option) {
-		this.oid = option.id;
-		this.name = option.name;
-		this.peoplename = option.peoplename;
-	},
-	onShow() {
-		this.list = [];
-		this.page = 1;
-		this.limit = 10;
-		this.loadingType = 'more';
-		pay_list({}).then(({ data }) => {
-			this.wx = data.wx;
-			this.aliData = data.zfb;
-			this.bankData = data.bank;
-		});
-		this.loadData();
-		this.isSm();
-	},
-	computed: {
-		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
-	},
-	methods: {
-		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-		isSm() {
-			rate({}).then(e => {
-				this.sm = e.data.is_auth;
-				if (e.data.is_auth == 3) {
-					this.sbly = e.data.off;
-				}
-			});
+	import uniCountdowns from '@/components/uni-countdown/uni-countdowns.vue';
+	import {
+		pay_list
+	} from '../../api/wallet.js';
+	import {
+		article
+	} from '@/api/user.js';
+	import {
+		getUserInfo,
+		rate,
+		details
+	} from '@/api/user.js';
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		auction_list,
+		subscribe,
+		advance
+	} from '@/api/hall.js';
+	import {
+		timeComputed
+	} from '@/utils/rocessor.js';
+	export default {
+		components: {
+			uniCountdowns
 		},
-		loadData() {
-			const obj = this;
-			if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
-				return;
-			}
-			obj.loadingType = 'loading';
-			auction_list({
-				page: obj.page,
-				limit: obj.limit,
-				auction_gu_id: obj.oid
-			}).then(({ data }) => {
-				obj.images = data.slider_image;
-				console.log(data);
-				data.data.forEach(e => {
-					let now_time = timeComputed(e.time);
-					console.log(e.time, now_time);
-					e.hours = now_time.hours;
-					e.minutes = now_time.minutes;
-					e.seconds = now_time.seconds;
-					if (now_time.hours < 0 || now_time.minutes < 0 || now_time.seconds < 0) {
-						e.daotime = 1;
-					} else {
-						e.daotime = 0;
-					}
-					let jcsj = e.radd_time.split(':');
-					if (jcsj[0] * 1 >= 8 && jcsj[0] * 1 < 12) {
-						e.time_image = '../../static/img/morningicon.png';
-						e.show = 'MORNING SHOWS';
-					} else if (jcsj[0] * 1 >= 12 && jcsj[0] * 1 < 18) {
-						e.show = 'AFTERNOON SHOWS';
-						e.time_image = '../../static/img/afternoonicon.png';
+		data() {
+			return {
+				hyxy: '',
+				images: [], //轮播图
+				name: '', //馆名字
+				peoplename: '', //馆长名字
+				price: '', //预约的价格
+				id: '', //预约会场id
+				oid: '', //馆id
+				page: 1,
+				limit: 10,
+				loadingType: 'more',
+				text: [],
+				article: [],
+				list: [],
+				aliData: {},
+				bankData: {},
+				wx: {},
+				sm: 0,
+				sbly: ''
+			};
+		},
+		filters: {
+			ahead(provider) {
+				let time = provider.split(':');
+				console.log(time);
+				if (time[1] * 1 - 6 < 0) {
+					time[1] = time[1] * 1 + 54;
+					if (time[0] * 1 == 0) {
+						time[0] = '23';
 					} else {
-						e.time_image = '../../static/img/eveningicon.png';
-						e.show = 'EVENING SHOWS';
+						time[0] = time[0] * 1 - 1;
 					}
-				});
-				obj.list = obj.list.concat(data.data);
-				if (data.data.length == obj.limit) {
-					obj.loadingType = 'more';
-					obj.page++;
 				} else {
-					obj.loadingType = 'nomore';
+					time[1] = time[1] * 1 - 6;
+					if (time[1] < 10) {
+						time[1] = '0' + time[1];
+					}
 				}
+				return time[0] + ':' + time[1] + ':' + time[2];
+			}
+		},
+		onLoad(option) {
+			this.oid = option.id;
+			this.name = option.name;
+			this.peoplename = option.peoplename;
+		},
+		onShow() {
+			this.list = [];
+			this.page = 1;
+			this.limit = 10;
+			this.loadingType = 'more';
+			pay_list({}).then(({
+				data
+			}) => {
+				this.wx = data.wx;
+				this.aliData = data.zfb;
+				this.bankData = data.bank;
 			});
+			this.loadData();
+			this.isSm();
+			this.gethyxy();
 		},
-		open(item) {
-			if (this.sm == 0) {
-				uni.showModal({
-					title: '提示',
-					content: '您未实名认证无法参与,是否前去实名认证?',
-					success: function(res) {
-						if (res.confirm) {
-							uni.navigateTo({
-								url: '/pages/user/approve'
-							});
-						} else if (res.cancel) {
-							console.log('用户点击取消');
-						}
+		computed: {
+			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+		},
+		methods: {
+			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+			gethyxy() {
+				details({}, 2).then(({
+					data
+				}) => {
+					data.content = data.content.replace(/nowrap/gi, 'wrap');
+					this.hyxy = data.content;
+				});
+			},
+			isSm() {
+				rate({}).then(e => {
+					this.sm = e.data.is_auth;
+					if (e.data.is_auth == 3) {
+						this.sbly = e.data.off;
 					}
 				});
-				return;
-			}
-			if (this.sm == 1) {
-				return this.$api.msg('实名认证正在审核中请耐心等待');
-			}
-			if (this.sm == 3) {
-				uni.showModal({
-					title: '提示',
-					content: '申请失败,原因' + this.sbly + '是否重新申请',
-					success: function(res) {
-						if (res.confirm) {
-							uni.navigateTo({
-								url: '/pages/user/approve'
-							});
-						} else if (res.cancel) {
-							console.log('用户点击取消');
+			},
+			loadData() {
+				const obj = this;
+				if (obj.loadingType == 'nomore' || obj.loadingType == 'loading') {
+					return;
+				}
+				obj.loadingType = 'loading';
+				auction_list({
+					page: obj.page,
+					limit: obj.limit,
+					auction_gu_id: obj.oid
+				}).then(({
+					data
+				}) => {
+					obj.images = data.slider_image;
+					console.log(data);
+					data.data.forEach(e => {
+						let now_time = timeComputed(e.time);
+						console.log(e.time, now_time);
+						e.hours = now_time.hours;
+						e.minutes = now_time.minutes;
+						e.seconds = now_time.seconds;
+						if (now_time.hours < 0 || now_time.minutes < 0 || now_time.seconds < 0) {
+							e.daotime = 1;
+						} else {
+							e.daotime = 0;
+						}
+						let jcsj = e.radd_time.split(':');
+						if (jcsj[0] * 1 >= 8 && jcsj[0] * 1 < 12) {
+							e.time_image = '../../static/img/morningicon.png';
+							e.show = 'MORNING SHOWS';
+						} else if (jcsj[0] * 1 >= 12 && jcsj[0] * 1 < 18) {
+							e.show = 'AFTERNOON SHOWS';
+							e.time_image = '../../static/img/afternoonicon.png';
+						} else {
+							e.time_image = '../../static/img/eveningicon.png';
+							e.show = 'EVENING SHOWS';
 						}
+					});
+					obj.list = obj.list.concat(data.data);
+					if (data.data.length == obj.limit) {
+						obj.loadingType = 'more';
+						obj.page++;
+					} else {
+						obj.loadingType = 'nomore';
 					}
 				});
-				return;
-			}
-			if (this.wx == '' && this.aliData == '' && this.bankData == '') {
-				uni.showModal({
-					title: '提示',
-					content: '您未填写收款信息无法参与,是否前去填写收款信息?',
-					success: function(res) {
-						if (res.confirm) {
-							uni.navigateTo({
-								url: '/pages/collection/collection'
-							});
-						} else if (res.cancel) {
-							console.log('用户点击取消');
+			},
+			open(item) {
+				if (this.sm == 0) {
+					uni.showModal({
+						title: '提示',
+						content: '您未实名认证无法参与,是否前去实名认证?',
+						success: function(res) {
+							if (res.confirm) {
+								uni.navigateTo({
+									url: '/pages/user/approve'
+								});
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
 						}
-					}
+					});
+					return;
+				}
+				if (this.sm == 1) {
+					return this.$api.msg('实名认证正在审核中请耐心等待');
+				}
+				if (this.sm == 3) {
+					uni.showModal({
+						title: '提示',
+						content: '申请失败,原因' + this.sbly + '是否重新申请',
+						success: function(res) {
+							if (res.confirm) {
+								uni.navigateTo({
+									url: '/pages/user/approve'
+								});
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					});
+					return;
+				}
+				if (this.wx == '' && this.aliData == '' && this.bankData == '') {
+					uni.showModal({
+						title: '提示',
+						content: '您未填写收款信息无法参与,是否前去填写收款信息?',
+						success: function(res) {
+							if (res.confirm) {
+								uni.navigateTo({
+									url: '/pages/collection/collection'
+								});
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					});
+					return;
+				}
+				if (item.sta != 1) {
+					this.id = item.id;
+					advance({
+							id: item.id
+						})
+						.then(e => {
+							console.log(e, 'success');
+							this.nav();
+						})
+						.catch(e => {
+							console.log(e, 'fail');
+						});
+				} else {
+					this.price = item.anticipate;
+					this.id = item.id;
+					// this.$refs.popup.open();
+					this.$refs.rule.open();
+				}
+			},
+			xyqd() {
+				this.$refs.rule.close();
+				this.$refs.popup.open();
+			},
+			goDetails(e) {
+				console.log(e, '123456');
+				uni.navigateTo({
+					url: '/pages/index/messageInfo?id=' + this.article[e].id
 				});
-				return;
-			}
-			if (item.sta != 1) {
-				this.id = item.id;
-				advance({ id: item.id })
-					.then(e => {
-						console.log(e, 'success');
-						this.nav();
+			},
+			close() {
+				this.price = '';
+				this.id = '';
+				this.$refs.popup.close();
+			},
+			nav() {
+				uni.navigateTo({
+					url: '/pages/hall/hallinfo?id=' + this.id + '&name=' + this.name + '&peoplename=' + this
+						.peoplename
+				});
+			},
+			navTo(url) {
+				uni.navigateTo({
+					url
+				});
+			},
+			toBack() {
+				uni.navigateBack({});
+			},
+			appointment() {
+				subscribe({
+						id: this.id
+					})
+					.then(({
+						data
+					}) => {
+						this.$api.msg('预约成功');
+						console.log(data);
+						this.price = '';
+						this.$refs.popup.close();
+						this.page = 1;
+						this.limit = 10;
+						this.loadingType = 'more';
+						this.list = [];
+						this.loadData();
+						this.updata();
 					})
 					.catch(e => {
-						console.log(e, 'fail');
+						this.price = '';
+						this.$refs.popup.close();
+						console.log(e);
 					});
-			} else {
-				this.price = item.anticipate;
-				this.id = item.id;
-				this.$refs.popup.open();
+			},
+			updata() {
+				getUserInfo({})
+					.then(({
+						data
+					}) => {
+						this.setUserInfo(data);
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+			isTime(index) {
+				console.log(index, '123');
+				this.list[index].daotime = 1;
 			}
-		},
-		goDetails(e) {
-			console.log(e, '123456');
-			uni.navigateTo({
-				url: '/pages/index/messageInfo?id=' + this.article[e].id
-			});
-		},
-		close() {
-			this.price = '';
-			this.id = '';
-			this.$refs.popup.close();
-		},
-		nav() {
-			uni.navigateTo({
-				url: '/pages/hall/hallinfo?id=' + this.id + '&name=' + this.name + '&peoplename=' + this.peoplename
-			});
-		},
-		navTo(url) {
-			uni.navigateTo({
-				url
-			});
-		},
-		toBack() {
-			uni.navigateBack({});
-		},
-		appointment() {
-			subscribe({ id: this.id })
-				.then(({ data }) => {
-					this.$api.msg('预约成功');
-					console.log(data);
-					this.price = '';
-					this.$refs.popup.close();
-					this.page = 1;
-					this.limit = 10;
-					this.loadingType = 'more';
-					this.list = [];
-					this.loadData();
-					this.updata();
-				})
-				.catch(e => {
-					this.price = '';
-					this.$refs.popup.close();
-					console.log(e);
-				});
-		},
-		updata() {
-			getUserInfo({})
-				.then(({ data }) => {
-					this.setUserInfo(data);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		isTime(index) {
-			console.log(index, '123');
-			this.list[index].daotime = 1;
 		}
-	}
-};
+	};
 </script>
 
 <style lang="less">
-page,
-.center {
-	height: auto;
-	min-height: 100%;
-	background: #f2f5f4;
-}
-.status_bar {
-	height: var(--status-bar-height);
-	width: 100%;
-}
-.money-box {
-	color: #ffffff;
-	text-align: center;
-	position: relative;
-	.header {
-		position: absolute;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 80rpx;
-		font-size: 32rpx;
-		font-weight: 700;
-		z-index: 99;
-		display: flex;
-		justify-content: center;
-		align-items: center;
+	page,
+	.center {
+		height: auto;
+		min-height: 100%;
+		background: #f2f5f4;
 	}
-	.goback-box {
-		position: absolute;
-		left: 18rpx;
-		top: 0;
-		height: 80rpx;
-		display: flex;
-		align-items: center;
-	}
-	.goback {
-		z-index: 100;
-		width: 34rpx;
-		height: 34rpx;
-	}
-	.money_bg {
+
+	.status_bar {
+		height: var(--status-bar-height);
 		width: 100%;
-		height: 382rpx;
-		display: block;
 	}
-}
-.shingle-mmain {
-	position: relative;
-	z-index: 2;
-	margin: -90rpx auto 0;
-	width: 690rpx;
-	height: 176rpx;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	background-color: #ffffff;
-	.smmain-item {
-		width: 33%;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		.red {
-			color: #fd3b39 !important;
+
+	.money-box {
+		color: #ffffff;
+		text-align: center;
+		position: relative;
+
+		.header {
+			position: absolute;
+			left: 0;
+			top: 0;
+			width: 100%;
+			height: 80rpx;
+			font-size: 32rpx;
+			font-weight: 700;
+			z-index: 99;
+			display: flex;
+			justify-content: center;
+			align-items: center;
 		}
-		.smitem-top {
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: bolder;
-			color: #0c1732;
+
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
+			display: flex;
+			align-items: center;
 		}
-		.smitem-bottom {
-			margin-top: 10rpx;
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #0c1732;
+
+		.goback {
+			z-index: 100;
+			width: 34rpx;
+			height: 34rpx;
 		}
-		.people {
-			justify-content: center;
-			.peopleitem {
-				width: 24rpx;
-				height: 34rpx;
-				image {
-					width: 100%;
-					height: 100%;
+
+		.money_bg {
+			width: 100%;
+			height: 382rpx;
+			display: block;
+		}
+	}
+
+	.shingle-mmain {
+		position: relative;
+		z-index: 2;
+		margin: -90rpx auto 0;
+		width: 690rpx;
+		height: 176rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+		background-color: #ffffff;
+
+		.smmain-item {
+			width: 33%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+
+			.red {
+				color: #fd3b39 !important;
+			}
+
+			.smitem-top {
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bolder;
+				color: #0c1732;
+			}
+
+			.smitem-bottom {
+				margin-top: 10rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #0c1732;
+			}
+
+			.people {
+				justify-content: center;
+
+				.peopleitem {
+					width: 24rpx;
+					height: 34rpx;
+
+					image {
+						width: 100%;
+						height: 100%;
+					}
 				}
 			}
 		}
+
+		.shu {
+			width: 2rpx;
+			height: 70rpx;
+			background: #dcdcdc;
+		}
 	}
-	.shu {
-		width: 2rpx;
-		height: 70rpx;
-		background: #dcdcdc;
-	}
-}
-.main {
-	margin: 30rpx auto 0;
-	padding: 50rpx 50rpx 36rpx 50rpx;
-	width: 690rpx;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	.mtitle-english {
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #9ea6ba;
-	}
-	.mmain {
-		margin-top: 24rpx;
-		.mmain-info {
-			.mmain-title {
-				display: flex;
-				justify-content: flex-start;
-				align-items: center;
-				.mmaint-left {
-					width: 52rpx;
-					height: 40rpx;
-				}
-				.mmaint-font {
-					margin-left: 10rpx;
-					font-size: 32rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #0c1732;
+
+	.main {
+		margin: 30rpx auto 0;
+		padding: 50rpx 50rpx 36rpx 50rpx;
+		width: 690rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+
+		.mtitle-english {
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #9ea6ba;
+		}
+
+		.mmain {
+			margin-top: 24rpx;
+
+			.mmain-info {
+				.mmain-title {
+					display: flex;
+					justify-content: flex-start;
+					align-items: center;
+
+					.mmaint-left {
+						width: 52rpx;
+						height: 40rpx;
+					}
+
+					.mmaint-font {
+						margin-left: 10rpx;
+						font-size: 32rpx;
+						font-family: PingFang SC;
+						font-weight: bold;
+						color: #0c1732;
+					}
+
+					.mmaint-time {
+						margin-left: 20rpx;
+						font-size: 28rpx;
+						font-family: PingFang SC;
+						font-weight: 500;
+						color: #0c1732;
+					}
 				}
-				.mmaint-time {
-					margin-left: 20rpx;
-					font-size: 28rpx;
+
+				.mmain-time {
+					justify-content: flex-start;
+					margin-top: 10rpx;
+					font-size: 26rpx;
 					font-family: PingFang SC;
 					font-weight: 500;
 					color: #0c1732;
+
+					.lyy-b-jz {
+						margin-left: 10rpx;
+					}
 				}
 			}
-			.mmain-time {
-				justify-content: flex-start;
-				margin-top: 10rpx;
-				font-size: 26rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #0c1732;
-				.lyy-b-jz {
-					margin-left: 10rpx;
+
+			.mmain-image {
+				padding-top: 14rpx;
+				width: 182rpx;
+				height: 182rpx;
+
+				image {
+					width: 100%;
+					height: 100%;
 				}
 			}
 		}
-		.mmain-image {
-			padding-top: 14rpx;
-			width: 182rpx;
-			height: 182rpx;
-			image {
-				width: 100%;
-				height: 100%;
+
+		.bottom {
+			margin-top: 32rpx;
+			width: 380rpx;
+			height: 64rpx;
+			background: #d13737;
+			border-radius: 20rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+
+			.bottom-font {
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #ffffff;
+			}
+
+			.bottom-image {
+				margin-left: 12rpx;
+				width: 24rpx;
+				height: 22rpx;
 			}
 		}
 	}
-	.bottom {
-		margin-top: 32rpx;
-		width: 380rpx;
-		height: 64rpx;
-		background: #d13737;
+
+	.popup {
+		width: 582rpx;
+		background: #ffffff;
 		border-radius: 20rpx;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		.bottom-font {
-			font-size: 28rpx;
+		padding: 118rpx 20rpx 30rpx;
+
+		.popup-title {
+			text-align: center;
+			font-size: 42rpx;
 			font-family: PingFang SC;
-			font-weight: bold;
-			color: #ffffff;
+			font-weight: 500;
+			color: #0c1732;
 		}
-		.bottom-image {
-			margin-left: 12rpx;
-			width: 24rpx;
-			height: 22rpx;
+
+		.btn-box {
+			padding-top: 90rpx;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+
+			.btn-left {
+				width: 248rpx;
+				height: 78rpx;
+				border: 2rpx solid #dc262b;
+				border-radius: 10rpx;
+				font-size: 34rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #dc262b;
+				text-align: center;
+				line-height: 78rpx;
+			}
+
+			.btn-right {
+				width: 248rpx;
+				height: 78rpx;
+				background: #dc262b;
+				border-radius: 10rpx;
+				font-size: 34rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #ffffff;
+				text-align: center;
+				line-height: 78rpx;
+			}
 		}
 	}
-}
-.popup {
-	width: 582rpx;
-	background: #ffffff;
-	border-radius: 20rpx;
-	padding: 118rpx 20rpx 30rpx;
-	.popup-title {
-		text-align: center;
-		font-size: 42rpx;
-		font-family: PingFang SC;
-		font-weight: 500;
-		color: #0c1732;
-	}
-	.btn-box {
-		padding-top: 90rpx;
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		.btn-left {
-			width: 248rpx;
-			height: 78rpx;
-			border: 2rpx solid #dc262b;
-			border-radius: 10rpx;
-			font-size: 34rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #dc262b;
-			text-align: center;
-			line-height: 78rpx;
+
+	.message {
+		justify-content: space-around;
+		margin: 20rpx auto 0;
+		padding: 16rpx 40rpx 16rpx 50rpx;
+		width: 690rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+
+		.message-left {
+			width: 52rpx;
+			height: 52rpx;
+			flex-shrink: 0;
 		}
-		.btn-right {
-			width: 248rpx;
-			height: 78rpx;
-			background: #dc262b;
-			border-radius: 10rpx;
-			font-size: 34rpx;
+
+		.message-font {
+			margin: 0 40rpx;
+			font-size: 28rpx;
 			font-family: PingFang SC;
 			font-weight: 500;
-			color: #ffffff;
-			text-align: center;
-			line-height: 78rpx;
+			color: #0c1732;
+		}
+
+		.message-right {
+			width: 18rpx;
+			height: 30rpx;
 		}
 	}
-}
-.message {
-	justify-content: space-around;
-	margin: 20rpx auto 0;
-	padding: 16rpx 40rpx 16rpx 50rpx;
-	width: 690rpx;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	.message-left {
-		width: 52rpx;
-		height: 52rpx;
-		flex-shrink: 0;
-	}
-	.message-font {
-		margin: 0 40rpx;
-		font-size: 28rpx;
-		font-family: PingFang SC;
-		font-weight: 500;
-		color: #0c1732;
-	}
-	.message-right {
-		width: 18rpx;
-		height: 30rpx;
-	}
-}
-.hallist-bg {
-	position: relative;
-	z-index: 10;
-	margin: -280rpx auto 0;
-	width: 702rpx;
-	height: 300rpx;
-	border-radius: 14rpx;
-	image {
-		width: 100%;
-		height: 100%;
-	}
-}
-.navbar {
-	display: flex;
-	align-items: center;
-	justify-content: space-around;
-	width: 700rpx;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	margin: 40rpx auto 0;
-	padding: 40rpx 0 50rpx;
-
-	.vvv {
-		width: 2rpx;
-		height: 74rpx;
-		background: #dcdcdc;
+
+	.hallist-bg {
+		position: relative;
+		z-index: 10;
+		margin: -280rpx auto 0;
+		width: 702rpx;
+		height: 300rpx;
+		border-radius: 14rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
 	}
 
-	.navbar-item {
+	.navbar {
 		display: flex;
-		flex-direction: column;
 		align-items: center;
+		justify-content: space-around;
+		width: 700rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+		margin: 40rpx auto 0;
+		padding: 40rpx 0 50rpx;
 
-		.navbar-font {
-			margin-bottom: 10rpx;
+		.vvv {
+			width: 2rpx;
+			height: 74rpx;
+			background: #dcdcdc;
+		}
+
+		.navbar-item {
 			display: flex;
-			justify-content: center;
+			flex-direction: column;
 			align-items: center;
 
-			image {
-				margin-right: 10rpx;
-				width: 40rpx;
-				height: 40rpx;
+			.navbar-font {
+				margin-bottom: 10rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+
+				image {
+					margin-right: 10rpx;
+					width: 40rpx;
+					height: 40rpx;
+				}
+
+				.font {
+					font-size: 30rpx;
+					font-weight: bold;
+					color: #0c1732;
+				}
 			}
 
-			.font {
-				font-size: 30rpx;
+			.navbar-num {
+				font-size: 34rpx;
 				font-weight: bold;
 				color: #0c1732;
 			}
 		}
+	}
 
-		.navbar-num {
-			font-size: 34rpx;
+	.regulation {
+		width: 650rpx;
+		padding: 30rpx;
+		background: #ffffff;
+		border-radius: 20rpx;
+		position: relative;
+
+		.regulation_close {
+			position: absolute;
+			width: 44rpx;
+			height: 44rpx;
+			top: 30rpx;
+			right: 30rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.regulation_name {
+			padding: 40rpx 0;
+			text-align: center;
+			font-size: 30rpx;
 			font-weight: bold;
-			color: #0c1732;
+		}
+
+		.scroll-view {
+			height: 735rpx;
+		}
+
+		.regulation_btn {
+			margin: 20rpx auto 0;
+			width: 496rpx;
+			height: 78rpx;
+			background: #dc262b;
+			border-radius: 10rpx;
+			font-size: 34rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+			text-align: center;
+			line-height: 78rpx;
 		}
 	}
-}
-</style>
+</style>

+ 520 - 441
pages/hall/porducthall.vue

@@ -3,7 +3,9 @@
 		<view class="carousel">
 			<swiper indicator-dots :circular="true" duration="400">
 				<swiper-item class="swiper-item" v-for="(item, index) in imageList" :key="index">
-					<view class="image-wrapper"><image :src="item" class="loaded" mode="scaleToFill"></image></view>
+					<view class="image-wrapper">
+						<image :src="item" class="loaded" mode="scaleToFill"></image>
+					</view>
 				</swiper-item>
 			</swiper>
 			<view class="title flex">
@@ -94,525 +96,602 @@
 			</view>
 			<view class="btn" @click="buy()">{{ isbuy ? '立即购买' : countdown_time }}</view>
 		</view>
-		<uni-popup ref="popupkf" type="center">
-			<view class="popup-box">
-				<view class="img"><image src="../../static/img/img009.png" mode=""></image></view>
-				<view class="mian">
-					<view class="delivery">
-						<view class="title">已经为您定制专属客服</view>
-						<image src="../../static/img/img010.png" mode=""></image>
-					</view>
-					<view class="nocancel">客服VX:{{ text }}</view>
-					<view class="comfirm-box">
-						<view class="cancel" @click="cancel">取消</view>
-						<view class="comfirm" @click="comfirm(text)">复制微信</view>
-					</view>
-				</view>
-			</view>
-		</uni-popup>
 	</view>
 </template>
 
 <script>
-import { details, purchase, count_down } from '@/api/hall.js';
-import { mapState, mapMutations } from 'vuex';
-import { getTime } from '@/utils/rocessor.js';
-export default {
-	data() {
-		return {
-			text: '123456',
-			id: '',
-			uid: '',
-			name: '',
-			peoplename: '',
-			info: '',
-			imageList: [],
-			countdown_time: '',
-			canbuy: 0, //结束时间
-			time: '', //进场时间
-			timers: '' //延时器id
-		};
-	},
-	onLoad(option) {
-		this.id = option.id;
-		this.uid = option.uid;
-		this.name = option.name;
-		this.peoplename = option.peoplename;
-	},
-	computed: {
-		...mapState(['isbuy'])
-	},
-	onShow() {
-		this.loadData();
-		console.log(this.isbuy);
-		if (!this.isbuy) {
-			this.isDjs();
-		}
-	},
-	onHide() {
-		clearTimeout(this.timers);
-	},
-	// 监听页面卸载
-	onUnload() {
-		// 关闭倒计时
-		clearTimeout(this.timers);
-	},
-	// 监听页面后退
-	onBackPress() {
-		// 关闭倒计时
-		clearTimeout(this.timers);
-	},
-	methods: {
-		...mapMutations(['setBuy']),
-		isDjs() {
-			clearTimeout(this.timers);
-			count_down({ id: this.uid }).then(({ data }) => {
-				this.canbuy = data.times;
-				let day = getTime(this.canbuy * 1000).split(' ');
-				this.time = day[1];
-				this.counTime();
-			});
+	import {
+		details,
+		purchase,
+		count_down,
+		verify_code,
+		captcha
+	} from '@/api/hall.js';
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		getTime
+	} from '@/utils/rocessor.js';
+	export default {
+		data() {
+			return {
+				isbiao: 0,
+				text: '123456',
+				id: '',
+				uid: '',
+				name: '',
+				peoplename: '',
+				info: '',
+				imageList: [],
+				countdown_time: '',
+				unicode: '',
+				key: '',
+				code: '',
+				isdian: 0,
+				canbuy: 0, //结束时间
+				time: '', //进场时间
+				timers: '' //延时器id
+			};
 		},
-		counTime() {
-			//获取当前时间
-			let data = new Date();
-			let newTime = data.getTime();
-			//结束时间
-			let end = this.canbuy;
-			//时间差
-			let leftTime = end * 1000 - newTime;
-			console.log(leftTime);
-			console.log(this.la, '2222222');
-			if (leftTime <= 0) {
-				console.log('已结束');
-				this.setBuy(true);
-				return;
-			}
-			//定义保存倒计时时间
-			let m, s;
-			if (leftTime >= 0) {
-				m = Math.floor((leftTime / 1000 / 60) % 60);
-				s = Math.floor((leftTime / 1000) % 60);
-				this.second = s;
-				this.la = m + s;
-				//倒计时赋值view
-				this.countdown_time = `${m}:${s}`;
-				this.timers = setTimeout(this.counTime, 1000);
-				//显示动态时间效果
-				if (s < 10) {
-					return (this.countdown_time = `${m}:0${s}`);
-					this.timers = setTimeout(this.counTime, 1000);
-				}
-				if (m < 10) {
-					return (this.countdown_time = `0${m}:${s}`);
-					this.timers = setTimeout(this.counTime, 1000);
-				}
-			}
+		onLoad(option) {
+			this.id = option.id;
+			this.uid = option.uid;
+			this.name = option.name;
+			this.peoplename = option.peoplename;
 		},
-		loadData() {
-			details({ product_id: this.id })
-				.then(({ data }) => {
-					console.log(data);
-					this.imageList = data.slider_image;
-					if (data.description != '') {
-						data.description = data.description.replace(/\<img/gi, '<img class="rich-img"');
-					}
-					this.info = data;
-				})
-				.catch(e => {});
+		computed: {
+			...mapState(['isbuy', 'baseURL'])
 		},
-		// 打开客服
-		openKf() {
-			this.$refs.popupkf.open();
+		onShow() {
+			this.loadData();
+			console.log(this.isbuy);
+			if (!this.isbuy) {
+				this.isDjs();
+			}
 		},
-		// 关闭客服
-		cancel() {
-			this.$refs.popupkf.close();
+		onHide() {
+			clearTimeout(this.timers);
 		},
-		nav(url) {
-			uni.navigateTo({
-				url
-			});
+		// 监听页面卸载
+		onUnload() {
+			// 关闭倒计时
+			clearTimeout(this.timers);
 		},
-		buy() {
-			if (!this.isbuy) {
-				return this.$api.msg('还未到购买时间');
-			}
-			purchase({ product_id: this.id })
-				.then(({ data }) => {
-					uni.navigateTo({
-						url: '/pages/money/paySuccess?type=1&uid=' + this.uid + +'&name=' + this.name + '&peoplename=' + this.peoplename
-					});
-					console.log(data);
-				})
-				.catch(e => {
-					console.log(e);
+		// 监听页面后退
+		onBackPress() {
+			// 关闭倒计时
+			clearTimeout(this.timers);
+		},
+		methods: {
+			...mapMutations(['setBuy']),
+			isDjs() {
+				clearTimeout(this.timers);
+				count_down({
+					id: this.uid
+				}).then(({
+					data
+				}) => {
+					this.canbuy = data.times;
+					let day = getTime(this.canbuy * 1000).split(' ');
+					this.time = day[1];
+					this.counTime();
+				});
+			},
+			counTime() {
+				//获取当前时间
+				let data = new Date();
+				let newTime = data.getTime();
+				//结束时间
+				let end = this.canbuy;
+				//时间差
+				let leftTime = end * 1000 - newTime;
+				console.log(leftTime);
+				console.log(this.la, '2222222');
+				if (leftTime <= 0) {
+					console.log('已结束');
+					this.setBuy(true);
+					return;
+				}
+				//定义保存倒计时时间
+				let m, s;
+				if (leftTime >= 0) {
+					m = Math.floor((leftTime / 1000 / 60) % 60);
+					s = Math.floor((leftTime / 1000) % 60);
+					this.second = s;
+					this.la = m + s;
+					//倒计时赋值view
+					this.countdown_time = `${m}:${s}`;
+					this.timers = setTimeout(this.counTime, 1000);
+					//显示动态时间效果
+					if (s < 10) {
+						return (this.countdown_time = `${m}:0${s}`);
+						this.timers = setTimeout(this.counTime, 1000);
+					}
+					if (m < 10) {
+						return (this.countdown_time = `0${m}:${s}`);
+						this.timers = setTimeout(this.counTime, 1000);
+					}
+				}
+			},
+			loadData() {
+				details({
+						product_id: this.id
+					})
+					.then(({
+						data
+					}) => {
+						console.log(data);
+						this.imageList = data.slider_image;
+						this.unicode = data.unicode
+						if (data.description != '') {
+							data.description = data.description.replace(/\<img/gi, '<img class="rich-img"');
+						}
+						this.info = data;
+					})
+					.catch(e => {});
+			},
+			// 打开客服
+			openKf() {
+				this.$refs.popupkf.open();
+			},
+			// 关闭客服
+			cancel() {
+				this.$refs.popupkf.close();
+			},
+			nav(url) {
+				uni.navigateTo({
+					url
 				});
+			},
+			buy() {
+				if (!this.isbuy) {
+					return this.$api.msg('还未到购买时间');
+				}
+				uni.showLoading({
+					title: '抢购中'
+				})
+				console.log(this.isdian, '123456');
+				if (this.isdian != 0) {
+					uni.hideLoading()
+					return
+				}
+				this.isdian = 1
+				purchase({
+						product_id: this.id,
+						unicode: this.unicode,
+					})
+					.then(({
+						data
+					}) => {
+						this.isdian = 0
+						uni.hideLoading()
+						uni.navigateTo({
+							url: '/pages/money/paySuccess?type=1&uid=' + this.uid + +'&name=' + this.name +
+								'&peoplename=' + this.peoplename
+						});
+						console.log(data);
+					})
+					.catch(e => {
+						this.isdian = 0;
+						uni.hideLoading();
+						console.log(e);
+					});
+			}
 		}
-	}
-};
+	};
 </script>
 
 <style lang="less">
-.carousel {
-	width: 750rpx;
-	height: 710rpx;
-	position: relative;
-	swiper {
-		height: 100%;
-	}
-	.image-wrapper {
-		width: 100%;
-		height: 100%;
-	}
-	.swiper-item {
-		display: flex;
-		justify-content: center;
-		align-content: center;
-		// height: 750rpx;
+	.carousel {
+		width: 750rpx;
 		height: 710rpx;
-		overflow: hidden;
-		image {
+		position: relative;
+
+		swiper {
+			height: 100%;
+		}
+
+		.image-wrapper {
 			width: 100%;
 			height: 100%;
 		}
-	}
-	.title {
-		background: linear-gradient(90deg, #ef4e51 0%, #f4713b 100%);
-		width: 750rpx;
-		position: absolute;
-		bottom: 0;
-		padding: 30rpx;
-		.title-num {
-			font-size: 50rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #ffffff;
-			text {
-				font-size: 30rpx;
+
+		.swiper-item {
+			display: flex;
+			justify-content: center;
+			align-content: center;
+			// height: 750rpx;
+			height: 710rpx;
+			overflow: hidden;
+
+			image {
+				width: 100%;
+				height: 100%;
 			}
 		}
-		.title-time {
-			font-size: 28rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #ffffff;
+
+		.title {
+			background: linear-gradient(90deg, #ef4e51 0%, #f4713b 100%);
+			width: 750rpx;
+			position: absolute;
+			bottom: 0;
+			padding: 30rpx;
+
+			.title-num {
+				font-size: 50rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #ffffff;
+
+				text {
+					font-size: 30rpx;
+				}
+			}
+
+			.title-time {
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #ffffff;
+			}
 		}
 	}
-}
-.title-main {
-	padding: 30rpx 30rpx 30rpx 22rpx;
-	.tm-left {
-		width: 50%;
-		.tm-title {
-			width: 100%;
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #1d2023;
-		}
-		.tm-people {
-			margin-top: 30rpx;
-			justify-content: flex-start;
-			.people-image {
-				width: 22rpx;
-				height: 22rpx;
-				flex-shrink: 0;
-			}
-			.people-name {
-				margin-left: 12rpx;
-				font-size: 24rpx;
+
+	.title-main {
+		padding: 30rpx 30rpx 30rpx 22rpx;
+
+		.tm-left {
+			width: 50%;
+
+			.tm-title {
+				width: 100%;
+				font-size: 30rpx;
 				font-family: PingFang SC;
-				font-weight: 500;
-				color: #333333;
+				font-weight: bold;
+				color: #1d2023;
+			}
+
+			.tm-people {
+				margin-top: 30rpx;
+				justify-content: flex-start;
+
+				.people-image {
+					width: 22rpx;
+					height: 22rpx;
+					flex-shrink: 0;
+				}
+
+				.people-name {
+					margin-left: 12rpx;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+			}
+		}
+
+		.tm-right {
+			justify-content: flex-end;
+
+			.tmr-item {
+				margin-left: 38rpx;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+
+				.tmr-image {
+					width: 42rpx;
+					height: 38rpx;
+				}
+
+				.tmr-image1 {
+					width: 42rpx;
+					height: 42rpx;
+				}
+
+				.tmr-font {
+					margin-top: 16rpx;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
 			}
 		}
 	}
-	.tm-right {
-		justify-content: flex-end;
-		.tmr-item {
-			margin-left: 38rpx;
+
+	.dz {
+		width: 750rpx;
+		height: 20rpx;
+		background: #f8f6f6;
+	}
+
+	.introduce {
+		padding: 40rpx 24rpx;
+
+		.introduct-title {
 			display: flex;
-			flex-direction: column;
 			align-items: center;
-			.tmr-image {
-				width: 42rpx;
-				height: 38rpx;
-			}
-			.tmr-image1 {
-				width: 42rpx;
-				height: 42rpx;
+
+			.introduce-image {
+				width: 36rpx;
+				height: 36rpx;
 			}
-			.tmr-font {
-				margin-top: 16rpx;
-				font-size: 24rpx;
+
+			.introduce-font {
+				margin-left: 10rpx;
+				font-size: 28rpx;
 				font-family: PingFang SC;
-				font-weight: 500;
+				font-weight: bold;
 				color: #333333;
 			}
 		}
-	}
-}
-.dz {
-	width: 750rpx;
-	height: 20rpx;
-	background: #f8f6f6;
-}
-.introduce {
-	padding: 40rpx 24rpx;
-	.introduct-title {
-		display: flex;
-		align-items: center;
-		.introduce-image {
-			width: 36rpx;
-			height: 36rpx;
+
+		.introduct-main {
+			display: flex;
+			justify-content: space-between;
+			margin-top: 26rpx;
+
+			.im-item {
+				display: flex;
+				align-items: center;
+
+				.im-image {
+					width: 44rpx;
+					height: 44rpx;
+				}
+
+				.im-font {
+					margin-left: 6rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #333333;
+				}
+			}
 		}
-		.introduce-font {
-			margin-left: 10rpx;
-			font-size: 28rpx;
+	}
+
+	.explain {
+		padding: 40rpx 34rpx 46rpx 34rpx;
+
+		.explain-title {
+			font-size: 32rpx;
 			font-family: PingFang SC;
 			font-weight: bold;
 			color: #333333;
 		}
+
+		.explain-main {
+			margin-top: 52rpx;
+
+			.explainImage-box {
+				display: flex;
+				justify-content: space-around;
+				align-items: center;
+
+				.explain-image-item {
+					width: 42rpx;
+					height: 40rpx;
+				}
+
+				.explain-image-jiant {
+					width: 38rpx;
+					height: 10rpx;
+				}
+			}
+
+			.explainfont-box {
+				margin-top: 20rpx;
+				display: flex;
+				justify-content: space-between;
+
+				.explain-font-item {
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+			}
+		}
 	}
-	.introduct-main {
-		display: flex;
-		justify-content: space-between;
-		margin-top: 26rpx;
-		.im-item {
+
+	.detail-desc {
+		background: #fff;
+		margin-top: 16rpx;
+
+		/deep/ img {
+			max-width: 100% !important;
+			display: inline !important;
+		}
+
+		/deep/ div {
+			max-width: 100% !important;
+		}
+
+		.d-header {
 			display: flex;
+			justify-content: center;
 			align-items: center;
-			.im-image {
-				width: 44rpx;
-				height: 44rpx;
+			height: 80rpx;
+			font-size: 30rpx;
+			color: #303133;
+			position: relative;
+
+			text {
+				padding: 0 20rpx;
+				background: #fff;
+				position: relative;
+				z-index: 1;
 			}
-			.im-font {
-				margin-left: 6rpx;
-				font-size: 28rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #333333;
+
+			&:after {
+				position: absolute;
+				left: 50%;
+				top: 50%;
+				transform: translateX(-50%);
+				width: 300rpx;
+				height: 0;
+				content: '';
+				border-bottom: 1px solid #ccc;
 			}
 		}
 	}
-}
-.explain {
-	padding: 40rpx 34rpx 46rpx 34rpx;
-	.explain-title {
-		font-size: 32rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #333333;
-	}
-	.explain-main {
-		margin-top: 52rpx;
-		.explainImage-box {
+
+	.bottom {
+		position: fixed;
+		z-index: 10;
+		bottom: 0;
+		background: #ffffff;
+		width: 750rpx;
+		height: 146rpx;
+		justify-content: flex-start;
+
+		.bottom-item {
+			margin-left: 42rpx;
 			display: flex;
-			justify-content: space-around;
+			flex-direction: column;
 			align-items: center;
-			.explain-image-item {
-				width: 42rpx;
-				height: 40rpx;
-			}
-			.explain-image-jiant {
+
+			.bi-image {
 				width: 38rpx;
-				height: 10rpx;
+				height: 34rpx;
 			}
-		}
-		.explainfont-box {
-			margin-top: 20rpx;
-			display: flex;
-			justify-content: space-between;
-			.explain-font-item {
-				font-size: 28rpx;
+
+			.bottom-font {
+				margin-top: 14rpx;
+				font-size: 24rpx;
 				font-family: PingFang SC;
-				font-weight: 500;
+				font-weight: bold;
 				color: #333333;
 			}
-		}
-	}
-}
-.detail-desc {
-	background: #fff;
-	margin-top: 16rpx;
-	/deep/ img {
-		max-width: 100% !important;
-		display: inline !important;
-	}
-	/deep/ div {
-		max-width: 100% !important;
-	}
-	.d-header {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 80rpx;
-		font-size: 30rpx;
-		color: #303133;
-		position: relative;
 
-		text {
-			padding: 0 20rpx;
-			background: #fff;
-			position: relative;
-			z-index: 1;
-		}
-		&:after {
-			position: absolute;
-			left: 50%;
-			top: 50%;
-			transform: translateX(-50%);
-			width: 300rpx;
-			height: 0;
-			content: '';
-			border-bottom: 1px solid #ccc;
-		}
-	}
-}
-.bottom {
-	position: fixed;
-	z-index: 10;
-	bottom: 0;
-	background: #ffffff;
-	width: 750rpx;
-	height: 146rpx;
-	justify-content: flex-start;
-	.bottom-item {
-		margin-left: 42rpx;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		.bi-image {
-			width: 38rpx;
-			height: 34rpx;
+			.bottom-num {
+				line-height: 1;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+			}
 		}
-		.bottom-font {
-			margin-top: 14rpx;
-			font-size: 24rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #333333;
+
+		.shu {
+			margin-left: 38rpx;
+			width: 2px;
+			height: 74rpx;
+			background: #c0bfc0;
 		}
-		.bottom-num {
-			line-height: 1;
-			font-size: 24rpx;
+
+		.btn {
+			margin-left: 40rpx;
+			width: 430rpx;
+			height: 80rpx;
+			background: #fd3b39;
+			border-radius: 20rpx;
+			text-align: center;
+			font-size: 34rpx;
 			font-family: PingFang SC;
 			font-weight: bold;
-			color: #333333;
+			color: #ffffff;
+			line-height: 80rpx;
 		}
 	}
-	.shu {
-		margin-left: 38rpx;
-		width: 2px;
-		height: 74rpx;
-		background: #c0bfc0;
-	}
-	.btn {
-		margin-left: 40rpx;
-		width: 430rpx;
-		height: 80rpx;
-		background: #fd3b39;
+
+	.popup-box {
+		width: 522rpx;
+		height: 605rpx;
+		background-color: #ffffff;
 		border-radius: 20rpx;
-		text-align: center;
-		font-size: 34rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-		line-height: 80rpx;
-	}
-}
-.popup-box {
-	width: 522rpx;
-	height: 605rpx;
-	background-color: #ffffff;
-	border-radius: 20rpx;
-	position: relative;
-
-	.img {
 		position: relative;
-		top: -56rpx;
-		left: 0;
-		width: 522rpx;
-		height: 132rpx;
-		display: flex;
-		justify-content: center;
 
-		image {
-			border-radius: 20rpx 20rpx 0 0;
-			width: 450rpx;
+		.img {
+			position: relative;
+			top: -56rpx;
+			left: 0;
+			width: 522rpx;
 			height: 132rpx;
-		}
-	}
-
-	.mian {
-		margin-top: -44rpx;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		// padding: 32rpx 32rpx;
-		background-color: #ffffff;
-		border-radius: 0 0 20rpx 20rpx;
-		text-align: center;
-
-		.delivery {
-			font-size: 40rpx;
-			color: #333333;
 			display: flex;
-			align-items: center;
-			flex-direction: column;
-
-			.title {
-			}
+			justify-content: center;
 
 			image {
-				margin-top: 48rpx;
-				width: 172rpx;
-				height: 160rpx;
+				border-radius: 20rpx 20rpx 0 0;
+				width: 450rpx;
+				height: 132rpx;
 			}
 		}
 
-		.nocancel {
-			font-size: 32rpx;
-			color: #333333;
-			margin-top: 14rpx;
-		}
-
-		.comfirm-box {
-			margin-top: 52rpx;
+		.mian {
+			margin-top: -44rpx;
 			display: flex;
-			// margin-bottom: 32rpx;
+			flex-direction: column;
+			align-items: center;
+			// padding: 32rpx 32rpx;
+			background-color: #ffffff;
+			border-radius: 0 0 20rpx 20rpx;
+			text-align: center;
 
-			// justify-content: space-around;
-			.cancel {
+			.delivery {
+				font-size: 40rpx;
+				color: #333333;
 				display: flex;
 				align-items: center;
-				justify-content: center;
-				width: 197rpx;
-				height: 74rpx;
-				border: 1px solid #dcc786;
-				border-radius: 38rpx;
+				flex-direction: column;
+
+				.title {}
+
+				image {
+					margin-top: 48rpx;
+					width: 172rpx;
+					height: 160rpx;
+				}
+			}
 
+			.nocancel {
 				font-size: 32rpx;
-				color: #605128;
+				color: #333333;
+				margin-top: 14rpx;
 			}
 
-			.comfirm {
-				margin-left: 32rpx;
+			.comfirm-box {
+				margin-top: 52rpx;
 				display: flex;
-				align-items: center;
-				justify-content: center;
-				width: 197rpx;
-				height: 74rpx;
-				background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
-				border-radius: 38px;
-				font-size: 32rpx;
-				color: #605128;
+				// margin-bottom: 32rpx;
+
+				// justify-content: space-around;
+				.cancel {
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					width: 197rpx;
+					height: 74rpx;
+					border: 1px solid #dcc786;
+					border-radius: 38rpx;
+
+					font-size: 32rpx;
+					color: #605128;
+				}
+
+				.comfirm {
+					margin-left: 32rpx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					width: 197rpx;
+					height: 74rpx;
+					background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
+					border-radius: 38px;
+					font-size: 32rpx;
+					color: #605128;
+				}
 			}
 		}
 	}
-}
-// 文章页底部高度撑开
-.contentBottomHeight {
-	height: 150rpx;
-}
-</style>
+
+	// 文章页底部高度撑开
+	.contentBottomHeight {
+		height: 150rpx;
+	}
+</style>

+ 151 - 0
pages/index/downLoad.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="content">
+		<view class="main">
+			<view class="main-bg"><image src="../../static/img/download.png" mode=""></image></view>
+			<view class="title">软件更新</view>
+			<view class="jdt">
+				<u-line-progress :show-percent="false" :percent="percent" :striped-active="true" :striped="true" inactive-color="#f5957d" active-color="#fd6f3f"></u-line-progress>
+			</view>
+			<view class="num">{{ percent }}%</view>
+			<view class="tipSpan">软件更新中,请勿断开相框电源</view>
+			<!-- <view class="btn" @click="cancelDown()">取消更新</view> -->
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			dtask: '',
+			percent: 0
+		};
+	},
+	onLoad(opt) {
+		this.downApp(opt.apk);
+	},
+	onShow() {},
+	onReachBottom() {},
+	onReady() {},
+	methods: {
+		downApp(version) {
+			this.dtask = plus.downloader.createDownload(version);
+			this.dtask.addEventListener('statechanged', this.onStateChanged, false);
+			this.dtask.start();
+		},
+		cancelDown() {
+			this.dtask.abort();
+			uni.navigateTo({
+				url: '/pages/index/index'
+			});
+		},
+		onStateChanged(download, status) {
+			let prg = 0;
+			console.log(this.percent);
+			switch (download.state) {
+				case 1:
+					// showLoading.setTitle("正在下载");
+					break;
+				case 2:
+					// showLoading.setTitle("已连接到服务器");
+					break;
+				case 3:
+					prg = parseInt(
+						//下载的进度
+						(parseFloat(download.downloadedSize) / parseFloat(download.totalSize)) * 100
+					);
+					// showLoading.setTitle("版本更新,正在下载" + prg + "% ");
+					this.percent = prg;
+					break;
+				case 4:
+					this.installApp(download.filename);
+					// plus.nativeUI.closeWaiting(); //关闭系统提示框
+					this.showProcess = false;
+					//下载完成
+					break;
+			}
+		},
+		installApp(path) {
+			plus.nativeUI.showWaiting('安装升级包...');
+			plus.runtime.install(
+				path,
+				{},
+				function() {
+					plus.nativeUI.closeWaiting();
+					uni.showToast({
+						icon: 'none',
+						title: '升级完成,准备重新载入'
+					});
+					setTimeout(_ => {
+						uni.hideToast();
+						plus.runtime.restart();
+					}, 1000);
+				},
+				function(e) {
+					plus.nativeUI.closeWaiting();
+					plus.nativeUI.alert('安装升级包失败[' + e.code + ']:' + e.message);
+				}
+			);
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page,
+.content {
+	min-height: 100%;
+	height: auto;
+}
+
+.main {
+	margin-top: 100rpx;
+	.main-bg {
+		margin: 0 auto;
+		width: 550rpx;
+		height: 340rpx;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+	.title {
+		text-align: center;
+		color: #000000;
+		font-size: 40rpx;
+		margin-top: 20rpx;
+		font-family: PingFang SC;
+		font-weight: bolder;
+	}
+	.jdt {
+		width: 550rpx;
+		margin: 20rpx auto;
+	}
+	.num {
+		text-align: center;
+		color: #ff7575;
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+	}
+	.tipSpan {
+		margin-top: 20rpx;
+		text-align: center;
+		color: #ababab;
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+	}
+	.btn {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		color: #ffffff;
+		width: 400rpx;
+		height: 80rpx;
+		background: #ff4c4c;
+		margin: 20rpx auto;
+		border-radius: 20rpx;
+	}
+}
+</style>

+ 690 - 548
pages/index/index.vue

@@ -2,6 +2,12 @@
 	<view class="center">
 		<view class="top">
 			<view class="vheigh"></view>
+			<view class="body-title">
+				<view class="goback-box" @click="toBack">
+					<image class="goback" src="../../static/icon/fanhui.png" mode=""></image>
+				</view>
+				<view class="header">进货系统</view>
+			</view>
 			<image class="top-bg" src="../../static/img/top-bg.png" mode=""></image>
 			<view class="top-main flex">
 				<view class="search-box flex" @click="clickSearch()">
@@ -11,28 +17,27 @@
 			</view>
 		</view>
 		<swiper class="carousel" autoplay="true" duration="400" interval="5000" @change="swiperChange">
-			<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item" @click="bannerNavToUrl(item)"><image :src="item.pic" /></swiper-item>
+			<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item"
+				@click="bannerNavToUrl(item)">
+				<image :src="item.pic" />
+			</swiper-item>
 		</swiper>
 		<view class="tongz flex">
 			<view>
-				<view class="tongz-bg"><image src="../../static/img/tongz-bg.png" mode=""></image></view>
+				<view class="tongz-bg">
+					<image src="../../static/img/tongz-bg.png" mode=""></image>
+				</view>
 				<view class="tongz-left flex">
 					<image class="image-left" src="../../static/img/ling.png" mode=""></image>
-					<u-notice-bar
-						style="width: 100%;"
-						mode="vertical"
-						type="none"
-						:volume-icon="false"
-						:more-icon="true"
-						:list="text"
-						@click="goDetails"
-						@getMore="nav('/pages/index/message?type=1')"
-					></u-notice-bar>
+					<u-notice-bar style="width: 100%;" mode="vertical" type="none" :volume-icon="false"
+						:more-icon="true" :list="text" @click="goDetails"
+						@getMore="nav('/pages/index/message?type=1')"></u-notice-bar>
 				</view>
 			</view>
 		</view>
 		<view class="navbar flex">
-			<view class="navbar-item" v-for="(item, index) in navbarList[0].children" @click="nav('/pages/product/list?tid=' + item.id)">
+			<view class="navbar-item" v-for="(item, index) in navbarList[0].children"
+				@click="nav('/pages/product/list?tid=' + item.id)">
 				<image class="nitem-image" :src="item.pic" mode=""></image>
 				<view class="nitem-font">{{ item.cate_name }}</view>
 			</view>
@@ -46,7 +51,9 @@
 				</view>
 			</view>
 			<view class="shingle-main" @click="navTo(list)">
-				<view class="shingle-bg"><image :src="list.image" mode=""></image></view>
+				<view class="shingle-bg">
+					<image :src="list.image" mode=""></image>
+				</view>
 				<view class="shinglem-title flex">
 					<image class="tbg" src="../../static/img/tbg-left.png" mode=""></image>
 					<view class="shinglemt-center">
@@ -68,8 +75,12 @@
 					<view class="shu"></view>
 					<view class="smmain-item">
 						<view class="people flex">
-							<view class="peopleitem" v-for="item in 1"><image src="../../static/img/busy.png" mode=""></image></view>
-							<view class="peopleitem" v-for="item in 4"><image src="../../static/img/leisure.png" mode=""></image></view>
+							<view class="peopleitem" v-for="item in 1">
+								<image src="../../static/img/busy.png" mode=""></image>
+							</view>
+							<view class="peopleitem" v-for="item in 4">
+								<image src="../../static/img/leisure.png" mode=""></image>
+							</view>
 						</view>
 						<view class="smitem-bottom">流畅</view>
 					</view>
@@ -77,31 +88,22 @@
 				<image class="right-bottom" src="../../static/img/right-bottom.png" mode=""></image>
 			</view>
 		</view>
-		<!-- 秒杀楼层 -->
-		<!-- <seckill></seckill> -->
-		<view class="ge" v-if="stop.length != 0"></view>
-		<!-- <view class="serve" v-if="stop.length != 0">
-			<view class="seckill-title flex">
-				<view class="seckill-left flex">
-					<image class="seckill-inco" src="../../static/img/serve.png" mode=""></image>
-					<view class="seckill-font">服务专区推荐</view>
-				</view>
-				<view class="seckill-right" @click="nav('/pages/store/store')">
-					<view class="seckill-rfont">更多</view>
-					<image class="seckill-back" src="../../static/img/back.png" mode=""></image>
-				</view>
+		<view class="shop" @click="nav('/pages/store/store')">
+			<view class="shop-title">
+				<image class="shop-title-icon" src="../../static/icon/index1.png" mode=""></image>
+				<view class="shop-title-font">本地生活</view>
 			</view>
-			<view class="serve-main flex">
-				<view class="serve-item" @click="nav('/pages/store/storeInfo?id=' + item.id)" v-for="(item, index) in stop" :key="index">
-					<image class="serve-price" :src="item.image" mode=""></image>
-					<view class="clamp serve-title">{{ item.name }}</view>
-					<view class="serve-address flex" v-if="item.jl">
-						<image class="saddress-inco" src="../../static/img/address.png" mode=""></image>
-						<view class="saddress-font">距离{{ item.jl }}KM</view>
-					</view>
-				</view>
+			<!-- #ifndef APP-PLUS -->
+			<view class="shop-main">
+				<image src="http://yiqugo.oss-cn-hangzhou.aliyuncs.com/59b8e202304061437149756.png" mode=""></image>
+			</view>
+			<!-- #endif -->
+			<!-- #ifdef APP-PLUS -->
+			<view class="shop-main">
+				<image src="../../static/img/index-shop.png" mode=""></image>
 			</view>
-		</view> -->
+			<!-- #endif -->
+		</view>
 		<view class="product" v-for="(item, index) in navbarList[0].children">
 			<view class="seckill-title flex">
 				<view class="seckill-left flex">
@@ -114,7 +116,9 @@
 			</view>
 			<view class="priduct-main">
 				<view class="priduct-item" v-for="itm in item.product" :key="itm.id" @click="navToDetailPage(itm)">
-					<view class="priduct-main-image"><image :src="itm.image" mode="scaleToFill"></image></view>
+					<view class="priduct-main-image">
+						<image :src="itm.image" mode="scaleToFill"></image>
+					</view>
 					<view class="priduct-main-name clamp margin-c-20">{{ itm.store_name }}</view>
 					<view class="priduct-main-price">
 						<view class="price" v-if="item.integral != 0">¥{{ itm.price * 1 }} + {{ itm.integral }}趣豆</view>
@@ -128,591 +132,729 @@
 </template>
 
 <script>
-import { tabbar1 } from '@/utils/tabbar.js';
-import seckill from '../../components/seckill/seckill.vue';
-import { article } from '@/api/user.js';
-import { getCategoryList, getProducts } from '@/api/product.js';
-import { loadIndexs, store_list } from '@/api/index.js';
-import uniCountdowns from '@/components/uni-countdown/uni-countdowns.vue';
-// #ifdef H5
-// import { openMap } from '@/utils/rocessor.js';
-// #endif
-import { auction_gu } from '@/api/hall.js';
-export default {
-	components: {
-		seckill,
-		uniCountdowns
-	},
-	data() {
-		return {
-			current: 0,
-			tabbar: tabbar1,
-			titleNViewBackground: '',
-			swiperCurrent: 0,
-			swiperLength: 0,
-			longitude: '', //经度
-			latitude: '', //纬度
-			dataList: '',
-			carouselList: [], //轮播图列表
-			text: [],
-			article: [],
-			list: {},
-			stop: [],
-			navbarList: [{ child: [] }]
-		};
-	},
-	onPullDownRefresh() {
-		console.log('111');
-		this.loadData();
-		this.getaddress();
-		setTimeout(function() {
-			uni.stopPullDownRefresh();
-		}, 1000);
-	},
-	onShow() {
-		this.loadData();
-		this.getnavbar();
-		this.getaddress();
-	},
-	methods: {
-		getnavbar() {
-			let obj = this;
-			getCategoryList({})
-				.then(({ data }) => {
-					data[0].children.forEach(e => {
-						getProducts({ page: 1, limit: 2, sid: e.id }).then(info => {
-							obj.$set(e, 'product', info.data);
-						});
-					});
-					this.navbarList = data;
-					console.log(data, '123456');
-				})
-				.catch(err => {
-					console.log(err);
-				});
+	import {
+		tabbar1
+	} from '@/utils/tabbar.js';
+	import seckill from '../../components/seckill/seckill.vue';
+	import {
+		article
+	} from '@/api/user.js';
+	import {
+		getCategoryList,
+		getProducts
+	} from '@/api/product.js';
+	import {
+		loadIndexs,
+		store_list
+	} from '@/api/index.js';
+	import uniCountdowns from '@/components/uni-countdown/uni-countdowns.vue';
+	// #ifdef H5
+	// import { openMap } from '@/utils/rocessor.js';
+	// #endif
+	import {
+		auction_gu
+	} from '@/api/hall.js';
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	export default {
+		components: {
+			seckill,
+			uniCountdowns
 		},
-		loadData() {
-			article({}, 1).then(({ data }) => {
-				data.forEach(e => {
-					this.text.push(e.synopsis);
-				});
-				this.article = data;
-			});
-			auction_gu({ pages: 1, limit: 1 })
-				.then(({ data }) => {
-					this.list = data[0];
-				})
-				.catch(e => {
-					console.log(e);
-				});
-			loadIndexs({})
-				.then(({ data }) => {
-					let goods = data.info;
-					this.dataList = goods.bastList; //精品推荐
-					this.carouselList = data.banner;
-				})
-				.catch(e => {});
+		data() {
+			return {
+				current: 0,
+				tabbar: tabbar1,
+				titleNViewBackground: '',
+				swiperCurrent: 0,
+				swiperLength: 0,
+				longitude: '', //经度
+				latitude: '', //纬度
+				dataList: '',
+				carouselList: [], //轮播图列表
+				text: [],
+				article: [],
+				list: {},
+				stop: [],
+				navbarList: [{
+					child: []
+				}]
+			};
+		},
+		onPullDownRefresh() {
+			console.log('111');
+			this.loadData();
+			this.getaddress();
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
 		},
-		//根据经纬度计算距离
-		getFlatternDistance(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;
+		onShow() {
+			this.loadData();
+			this.getnavbar();
+			this.getaddress();
 		},
-		getaddress() {
-			let obj = this;
-			uni.getLocation({
-				type: 'gcj02',
-				success: res => {
-					console.log('dizhi+++++++++++');
-					this.longitude = res.longitude; //经度
-					this.latitude = res.latitude; //纬度
-					store_list({
-						page: 1,
-						limit: 3,
-						latitude: res.latitude,
-						longitude: res.longitude
-					}).then(e => {
-						if (e.data.length != 0) {
-							e.data.list.forEach(e => {
-								e.jl = this.getFlatternDistance(this.latitude, this.longitude, e.latitude, e.longitude);
+		methods: {
+			...mapMutations(['setLat', 'setLon', 'setChoose']),
+			getnavbar() {
+				let obj = this;
+				getCategoryList({})
+					.then(({
+						data
+					}) => {
+						data[0].children.forEach(e => {
+							getProducts({
+								page: 1,
+								limit: 2,
+								sid: e.id
+							}).then(info => {
+								obj.$set(e, 'product', info.data);
 							});
-						}
-						obj.stop = e.data.list;
-						console.log(e);
+						});
+						this.navbarList = data;
+						console.log(data, '123456');
+					})
+					.catch(err => {
+						console.log(err);
 					});
-				},
-				fail: err => {
-					// #ifdef H5
-					openMap().then(e => {
-						this.getaddress();
+			},
+			loadData() {
+				article({}, 1).then(({
+					data
+				}) => {
+					data.forEach(e => {
+						this.text.push(e.synopsis);
 					});
-					// #endif
-				}
-			});
-		},
-		goDetails(e) {
-			uni.navigateTo({
-				url: '/pages/index/messageInfo?id=' + this.article[e].id
-			});
-		},
-		nav(url) {
-			uni.navigateTo({
-				url,
-				fail() {
-					uni.switchTab({
-						url
+					this.article = data;
+				});
+				auction_gu({
+						pages: 1,
+						limit: 1
+					})
+					.then(({
+						data
+					}) => {
+						this.list = data[0];
+					})
+					.catch(e => {
+						console.log(e);
 					});
+				loadIndexs({})
+					.then(({
+						data
+					}) => {
+						let goods = data.info;
+						this.dataList = goods.bastList; //精品推荐
+						this.carouselList = data.banner;
+					})
+					.catch(e => {});
+			},
+			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;
+			},
+			wgs84Togcj02(lng, lat) {
+				if (this.out_of_china(lng, lat)) {
+					return [lng, lat];
 				}
-			});
-		},
-		//轮播图切换修改背景色
-		swiperChange(e) {
-			const index = e.detail.current;
-			this.swiperCurrent = index;
-			this.titleNViewBackground = this.carouselList[index].background;
-		},
-		// 點擊搜索框
-		clickSearch() {
-			uni.navigateTo({
-				url: '/pages/product/search'
-			});
-		},
-		navTo(item) {
-			uni.navigateTo({
-				url: '/pages/hall/halllist?id=' + item.id + '&name=' + item.name + '&peoplename=' + item.nickname
-			});
-		},
-		//详情页
-		navToDetailPage(item) {
-			let id = item.id;
-			uni.navigateTo({
-				url: '/pages/product/product?id=' + id
-			});
+				//定义一些常量
+				//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];
+			},
+			toBack() {
+				uni.navigateTo({
+					url: '/pages/navigation/index'
+				})
+			},
+			getaddress() {
+				console.log('dizhi+++++++++++');
+				let obj = this;
+				uni.getLocation({
+					type: 'wgs84',
+					success: res => {
+						let wz = obj.wgs84Togcj02(res.longitude, res.latitude);
+						obj.setLat(wz[1]);
+						obj.setLon(wz[0]);
+						console.log(wz, '经纬度');
+					},
+					fail: err => {
+						console.log(err, '经纬度');
+						openMap().then(e => {
+							this.getaddress();
+						});
+					}
+				});
+			},
+			goDetails(e) {
+				uni.navigateTo({
+					url: '/pages/index/messageInfo?id=' + this.article[e].id
+				});
+			},
+			nav(url) {
+				console.log(url, '123456');
+				uni.navigateTo({
+					url,
+					fail() {
+						uni.switchTab({
+							url
+						});
+					}
+				});
+			},
+			//轮播图切换修改背景色
+			swiperChange(e) {
+				const index = e.detail.current;
+				this.swiperCurrent = index;
+				this.titleNViewBackground = this.carouselList[index].background;
+			},
+			// 點擊搜索框
+			clickSearch() {
+				uni.navigateTo({
+					url: '/pages/product/search'
+				});
+			},
+			navTo(item) {
+				uni.navigateTo({
+					url: '/pages/hall/halllist?id=' + item.id + '&name=' + item.name + '&peoplename=' + item
+						.nickname
+				});
+			},
+			//详情页
+			navToDetailPage(item) {
+				let id = item.id;
+				uni.navigateTo({
+					url: '/pages/product/product?id=' + id
+				});
+			}
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page,
-.center {
-	min-height: 100%;
-	height: auto;
-	background: #ffffff;
-}
-.vheigh {
-	height: var(--status-bar-height);
-	background-color: $base-color;
-}
-.top {
-	position: relative;
-	width: 100%;
-	height: 360rpx;
-	.top-bg {
-		position: absolute;
-		top: 0;
-		left: 0;
-		right: 0;
-		width: 100%;
-		height: 100%;
+	page,
+	.center {
+		min-height: 100%;
+		height: auto;
+		background: #ffffff;
 	}
-	.top-main {
+
+	.body-title {
+		height: 80rpx;
+		text-align: center;
+		font-size: 35rpx;
 		position: relative;
-		z-index: 2;
-		padding: 30rpx;
-		.search-box {
+
+		.header {
+			position: absolute;
+			left: 0;
+			top: 0;
+			width: 100%;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #fffeff;
+			height: 80rpx;
+			font-size: 36rpx;
+			font-weight: 700;
+			z-index: 9;
+			display: flex;
 			justify-content: center;
-			width: 698rpx;
-			height: 60rpx;
-			background: rgba(255, 240, 245, 0.4);
-			box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
-			border-radius: 30rpx;
-			.search {
-				width: 34rpx;
-				height: 34rpx;
-			}
-			.search-font {
-				margin-left: 14rpx;
-				font-size: 28rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #ffffff;
-			}
+			align-items: center;
 		}
-	}
-}
-.carousel {
-	width: 700rpx;
-	height: 276rpx;
-	/* #ifndef APP-PLUS */
-	margin: -240rpx auto 0;
-	/* #endif */
-	/* #ifdef APP-PLUS */
-	margin: -180rpx auto 0;
-	/* #endif */
-	border-radius: 40rpx;
-	image {
-		border-radius: 40rpx;
-		width: 700rpx;
-		height: 276rpx;
-	}
-}
-.tongz {
-	width: 690rpx;
-	height: 70rpx;
-	margin: 32rpx auto 0;
-	padding: 18rpx 30rpx 18rpx 24rpx;
-	align-items: center;
-	position: relative;
-	.tongz-bg {
-		position: absolute;
-		top: 0;
-		right: 0;
-		left: 0;
-		width: 690rpx;
-		height: 70rpx;
-		image {
-			width: 100%;
-			height: 100%;
+
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
+			display: flex;
+			align-items: center;
 		}
-	}
-	.tongz-left {
-		width: 640rpx;
-		.image-left {
-			width: 28rpx;
+
+		.goback {
+			z-index: 100;
+			width: 34rpx;
 			height: 34rpx;
 		}
-		.tongz-font {
-			margin-left: 22rpx;
-			font-size: 28rpx;
-			font-family: Source Han Sans CN;
-			font-weight: 400;
-			color: #0f253a;
-		}
 	}
-	.tongz-right {
+
+	.vheigh {
+		height: var(--status-bar-height);
+		background-color: $base-color;
+	}
+
+	.top {
 		position: relative;
-		z-index: 11;
-		width: 12rpx;
-		height: 26rpx;
-		image {
+		width: 100%;
+		height: 360rpx;
+
+		.top-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
 			width: 100%;
 			height: 100%;
 		}
-	}
-}
-.navbar {
-	justify-content: flex-start;
-	flex-wrap: wrap;
-	.navbar-item {
-		margin-top: 42rpx;
-		width: 25%;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		.nitem-image {
-			width: 90rpx;
-			height: 90rpx;
-		}
-		.nitem-font {
-			margin-top: 10rpx;
-			font-size: 24rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #0c1732;
+
+		.top-main {
+			position: relative;
+			z-index: 2;
+			padding: 30rpx;
+
+			.search-box {
+				justify-content: center;
+				width: 698rpx;
+				height: 60rpx;
+				background: rgba(255, 240, 245, 0.4);
+				box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
+				border-radius: 30rpx;
+
+				.search {
+					width: 34rpx;
+					height: 34rpx;
+				}
+
+				.search-font {
+					margin-left: 14rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #ffffff;
+				}
+			}
 		}
 	}
-}
-.shingle {
-	width: 750rpx;
-	background: #f8f8f8;
-	border-radius: 10rpx;
-	margin: 60rpx auto 0rpx;
-	padding: 44rpx 50rpx 40rpx;
-	.shingle-top {
-		padding-left: 2rpx;
-		.shingle-title {
-			font-size: 36rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #dc262b;
-		}
-		.shingle-btn {
-			width: 250rpx;
-			height: 50rpx;
-			border: 2rpx solid #dc262b;
-			border-radius: 10rpx;
-			padding: 0 16rpx;
-			text-align: left;
-			font-size: 24rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #dc262b;
-			line-height: 50rpx;
-			text {
-				display: inline-block;
-				padding-left: 6rpx;
-			}
+
+	.carousel {
+		width: 700rpx;
+		height: 276rpx;
+		/* #ifndef APP-PLUS */
+		margin: -160rpx auto 0;
+		/* #endif */
+		/* #ifdef APP-PLUS */
+		margin: -100rpx auto 0;
+		/* #endif */
+		border-radius: 40rpx;
+
+		image {
+			border-radius: 40rpx;
+			width: 700rpx;
+			height: 276rpx;
 		}
 	}
-	.shingle-main {
-		margin: 20rpx auto;
-		width: 650rpx;
-		height: 206rpx;
+
+	.tongz {
+		width: 690rpx;
+		height: 70rpx;
+		margin: 32rpx auto 0;
+		padding: 18rpx 30rpx 18rpx 24rpx;
+		align-items: center;
 		position: relative;
-		.shingle-bg {
+
+		.tongz-bg {
 			position: absolute;
 			top: 0;
-			left: 0;
 			right: 0;
-			width: 650rpx;
-			height: 206rpx;
+			left: 0;
+			width: 690rpx;
+			height: 70rpx;
+
 			image {
-				width: 650rpx;
-				height: 206rpx;
+				width: 100%;
+				height: 100%;
 			}
 		}
-		.shinglem-title {
+
+		.tongz-left {
+			width: 640rpx;
+
+			.image-left {
+				width: 28rpx;
+				height: 34rpx;
+			}
+
+			.tongz-font {
+				margin-left: 22rpx;
+				font-size: 28rpx;
+				font-family: Source Han Sans CN;
+				font-weight: 400;
+				color: #0f253a;
+			}
+		}
+
+		.tongz-right {
 			position: relative;
-			z-index: 2;
-			justify-content: center;
-			height: 70rpx;
-			.tbg {
-				height: 70rpx;
-				width: 40rpx;
+			z-index: 11;
+			width: 12rpx;
+			height: 26rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
 			}
-			.shinglemt-center {
-				display: flex;
-				align-items: center;
-				background: rgba(220, 38, 43, 0.66);
+		}
+	}
+
+	.navbar {
+		justify-content: flex-start;
+		flex-wrap: wrap;
+
+		.navbar-item {
+			margin-top: 42rpx;
+			width: 25%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+
+			.nitem-image {
+				width: 90rpx;
+				height: 90rpx;
 			}
-			.address {
-				width: 28rpx;
-				height: 30rpx;
+
+			.nitem-font {
+				margin-top: 10rpx;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #0c1732;
 			}
-			.shingle-font {
+		}
+	}
+
+	.shingle {
+		width: 750rpx;
+		background: #f8f8f8;
+		border-radius: 10rpx;
+		margin: 60rpx auto 0rpx;
+		padding: 44rpx 50rpx 40rpx;
+
+		.shingle-top {
+			padding-left: 2rpx;
+
+			.shingle-title {
 				font-size: 36rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
-				color: #ffffff;
-				line-height: 70rpx;
-				margin-left: 14rpx;
+				color: #dc262b;
+			}
+
+			.shingle-btn {
+				width: 250rpx;
+				height: 50rpx;
+				border: 2rpx solid #dc262b;
+				border-radius: 10rpx;
+				padding: 0 16rpx;
+				text-align: left;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #dc262b;
+				line-height: 50rpx;
+
+				text {
+					display: inline-block;
+					padding-left: 6rpx;
+				}
 			}
 		}
-		.shingle-mmain {
+
+		.shingle-main {
+			margin: 20rpx auto;
+			width: 650rpx;
+			height: 206rpx;
 			position: relative;
-			z-index: 2;
-			margin-top: 30rpx;
-			.smmain-item {
-				width: 33%;
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-				.smitem-top {
-					text-align: center;
-					width: 90%;
-					font-size: 30rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #ffffff;
+
+			.shingle-bg {
+				position: absolute;
+				top: 0;
+				left: 0;
+				right: 0;
+				width: 650rpx;
+				height: 206rpx;
+
+				image {
+					width: 650rpx;
+					height: 206rpx;
 				}
-				.smitem-bottom {
-					margin-top: 10rpx;
-					font-size: 30rpx;
+			}
+
+			.shinglem-title {
+				position: relative;
+				z-index: 2;
+				justify-content: center;
+				height: 70rpx;
+
+				.tbg {
+					height: 70rpx;
+					width: 40rpx;
+				}
+
+				.shinglemt-center {
+					display: flex;
+					align-items: center;
+					background: rgba(220, 38, 43, 0.66);
+				}
+
+				.address {
+					width: 28rpx;
+					height: 30rpx;
+				}
+
+				.shingle-font {
+					font-size: 36rpx;
 					font-family: PingFang SC;
 					font-weight: bold;
 					color: #ffffff;
+					line-height: 70rpx;
+					margin-left: 14rpx;
 				}
-				.people {
-					justify-content: center;
-					.peopleitem {
-						width: 24rpx;
-						height: 34rpx;
-						image {
-							width: 100%;
-							height: 100%;
+			}
+
+			.shingle-mmain {
+				position: relative;
+				z-index: 2;
+				margin-top: 30rpx;
+
+				.smmain-item {
+					width: 33%;
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+
+					.smitem-top {
+						text-align: center;
+						width: 90%;
+						font-size: 30rpx;
+						font-family: PingFang SC;
+						font-weight: bold;
+						color: #ffffff;
+					}
+
+					.smitem-bottom {
+						margin-top: 10rpx;
+						font-size: 30rpx;
+						font-family: PingFang SC;
+						font-weight: bold;
+						color: #ffffff;
+					}
+
+					.people {
+						justify-content: center;
+
+						.peopleitem {
+							width: 24rpx;
+							height: 34rpx;
+
+							image {
+								width: 100%;
+								height: 100%;
+							}
 						}
 					}
 				}
+
+				.shu {
+					width: 2rpx;
+					height: 70rpx;
+					background: #ffffff;
+				}
 			}
-			.shu {
-				width: 2rpx;
-				height: 70rpx;
-				background: #ffffff;
+
+			.right-bottom {
+				position: absolute;
+				z-index: 2;
+				right: 0;
+				bottom: 0;
+				width: 94rpx;
+				height: 92rpx;
 			}
 		}
-		.right-bottom {
-			position: absolute;
-			z-index: 2;
-			right: 0;
-			bottom: 0;
-			width: 94rpx;
-			height: 92rpx;
-		}
-	}
-}
-.seckill-title {
-	padding: 32rpx 30rpx 0;
-}
-.seckill-left {
-	justify-content: flex-start;
-	.seckill-inco {
-		width: 36rpx;
-		height: 36rpx;
-		flex-shrink: 0;
-	}
-	.seckill-font {
-		margin-left: 8rpx;
-		font-size: 40rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #333333;
-	}
-	.djs {
-		margin-left: 12rpx;
-		font-size: 20rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #dc262b;
 	}
-}
-.seckill-right {
-	display: flex;
-	justify-content: flex-start;
-	align-items: center;
-	.seckill-rfont {
-		font-size: 24rpx;
-		font-family: PingFang SC;
-		font-weight: 500;
-		color: #999999;
-		margin-right: 8rpx;
-	}
-	.seckill-back {
-		width: 10rpx;
-		height: 20rpx;
-	}
-}
-.ge {
-	height: 20rpx;
-	width: 750rpx;
-	background: #f8f8f8;
-}
-.serve {
-	padding: 32rpx 30rpx;
-	padding: 32rpx 30rpx;
-	background: #ffffff;
-	.serve-main {
-		margin-top: 24rpx;
-		flex-wrap: wrap;
-		justify-content: flex-start;
-		.serve-item:first-child {
-			margin-left: 0rpx;
-		}
-		.serve-item {
-			width: 220rpx;
-			background: #f6f6f6;
-			border-radius: 10rpx;
-			margin-left: 14rpx;
-			padding-bottom: 22rpx;
-			.serve-price {
-				width: 220rpx;
-				height: 220rpx;
-				border-radius: 10rpx 10rpx 0px 0px;
-				background: #03a9f4;
-			}
-			.serve-title {
-				margin-top: 16rpx;
-				padding: 0 14rpx;
-				font-size: 26rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #0a122b;
+
+	.shop {
+		background: #ffffff;
+		padding: 32rpx 30rpx 20rpx;
+
+		.shop-title {
+			display: flex;
+			align-items: center;
+
+			.shop-title-icon {
+				width: 36rpx;
+				height: 36rpx;
 			}
-			.serve-address {
-				justify-content: flex-start;
-				margin-top: 10rpx;
-				padding: 0 14rpx;
-				.saddress-inco {
-					width: 18rpx;
-					height: 24rpx;
-				}
-				.saddress-font {
-					margin-left: 4rpx;
-					font-size: 20rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #666666;
-				}
+
+			.shop-title-font {
+				margin-left: 20rpx;
+				font-size: 34rpx;
+				color: #303133;
+				font-weight: bold;
 			}
 		}
-	}
-}
-.product {
-	background: #f0f0f0;
-}
-.priduct-main {
-	margin-top: 38rpx;
-	width: 100%;
-	display: flex;
-	flex-wrap: wrap;
-	padding: 0 32rpx;
-
-	.priduct-item {
-		width: 48%;
-		background-color: #ffffff;
-		border-radius: 12rpx;
-		margin-bottom: 24rpx;
-
-		&:nth-child(2n + 1) {
-			margin-right: 24rpx;
-		}
 
-		.priduct-main-image {
+		.shop-main {
+			margin: 20rpx auto 0;
+			border-radius: 40rpx;
 			width: 100%;
-			height: 330rpx;
-			// background: red;
-			border-radius: 3px;
-			overflow: hidden;
+			height: 286rpx;
 
 			image {
 				width: 100%;
 				height: 100%;
-				opacity: 1;
-				border-radius: 12rpx 12rpx 0 0;
 			}
 		}
+	}
+
+	.seckill-title {
+		padding: 32rpx 30rpx 0;
+	}
 
-		.priduct-main-name {
-			font-size: $font-base;
-			color: $font-color-dark;
+	.seckill-left {
+		justify-content: flex-start;
+
+		.seckill-inco {
+			width: 36rpx;
+			height: 36rpx;
+			flex-shrink: 0;
+		}
+
+		.seckill-font {
+			margin-left: 8rpx;
+			font-size: 40rpx;
+			font-family: PingFang SC;
 			font-weight: bold;
-			line-height: 80rpx;
+			color: #333333;
 		}
 
-		.priduct-main-price {
-			display: flex;
-			justify-content: space-between;
-			padding: 0 16rpx 12rpx;
+		.djs {
+			margin-left: 12rpx;
+			font-size: 20rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #dc262b;
+		}
+	}
 
-			.price {
-				font-size: 36rpx;
-				font-weight: bold;
-				color: #fd3b39;
+	.seckill-right {
+		display: flex;
+		justify-content: flex-start;
+		align-items: center;
+
+		.seckill-rfont {
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #999999;
+			margin-right: 8rpx;
+		}
+
+		.seckill-back {
+			width: 10rpx;
+			height: 20rpx;
+		}
+	}
+
+	.product {
+		background: #f0f0f0;
+	}
+
+	.priduct-main {
+		margin-top: 38rpx;
+		width: 100%;
+		display: flex;
+		flex-wrap: wrap;
+		padding: 0 32rpx;
+
+		.priduct-item {
+			width: 48%;
+			background-color: #ffffff;
+			border-radius: 12rpx;
+			margin-bottom: 24rpx;
+
+			&:nth-child(2n + 1) {
+				margin-right: 24rpx;
 			}
 
-			.cart-icon {
+			.priduct-main-image {
+				width: 100%;
+				height: 330rpx;
+				// background: red;
+				border-radius: 3px;
+				overflow: hidden;
+
 				image {
-					width: 44rpx;
-					height: 44rpx;
+					width: 100%;
+					height: 100%;
+					opacity: 1;
+					border-radius: 12rpx 12rpx 0 0;
+				}
+			}
+
+			.priduct-main-name {
+				font-size: $font-base;
+				color: $font-color-dark;
+				font-weight: bold;
+				line-height: 80rpx;
+			}
+
+			.priduct-main-price {
+				display: flex;
+				justify-content: space-between;
+				padding: 0 16rpx 12rpx;
+
+				.price {
+					font-size: 36rpx;
+					font-weight: bold;
+					color: #fd3b39;
+				}
+
+				.cart-icon {
+					image {
+						width: 44rpx;
+						height: 44rpx;
+					}
 				}
 			}
 		}
 	}
-}
-</style>
+</style>

+ 6 - 7
pages/index/messageInfo.vue

@@ -2,8 +2,8 @@
 	<view class="center">
 		<view class="title clamp">{{ item.title }}</view>
 		<view class="tip flex">
-			<view class="tip-left">作者:{{item.author}}</view>
-			<view class="tip-right">{{item.add_time}}</view>
+			<view class="tip-left">作者:{{ item.author }}</view>
+			<view class="tip-right">{{ item.add_time }}</view>
 		</view>
 		<view class="main" v-for="(ls, index) in item.content" :key="index">
 			<view v-if="ls.type == 'rich-text'" v-html="ls.value" class="main"></view>
@@ -16,10 +16,10 @@
 import { details } from '@/api/user.js';
 export default {
 	data() {
-		return{
+		return {
 			id: '',
 			item: ''
-		}
+		};
 	},
 	onLoad(option) {
 		this.id = option.id;
@@ -65,7 +65,7 @@ export default {
 			return needArticleList;
 		}
 	}
-}
+};
 </script>
 
 <style lang="less">
@@ -79,7 +79,6 @@ export default {
 	font-family: PingFang SC;
 	font-weight: bold;
 	color: #333333;
-
 }
 .tip {
 	padding: 38rpx 32rpx 28rpx 24rpx;
@@ -87,7 +86,7 @@ export default {
 	font-family: PingFang SC;
 	font-weight: 500;
 	color: #666666;
-	border-bottom: 1px solid #E9E9E9;
+	border-bottom: 1px solid #e9e9e9;
 }
 /deep/ .main {
 	.rich-img {

+ 67 - 67
pages/money/paySuccess.vue

@@ -1,83 +1,83 @@
 <template>
 	<view class="content">
 		<text class="success-icon iconfont iconroundcheck"></text>
-		<text class="tit">{{ type == 1? '抢购成功' : '支付成功'}}</text>
+		<text class="tit">{{ type == 1 ? '抢购成功' : '支付成功' }}</text>
 		<view class="btn-group">
-			<navigator v-if="type == '1' " :url="'/pages/order/order'" open-type="redirect" class="mix-btn">查看订单</navigator>
-			<navigator v-else :url="'/pages/order/orderDetail?id='+orderId" open-type="redirect" class="mix-btn">查看订单</navigator>
-			<navigator v-if="type == '1' " :url="'/pages/hall/hallinfo?id=' + id + '&name=' + name + '&peoplename=' + peoplename" open-type="redirect" class="mix-btn hollow">返回抢画列表</navigator> 
+			<navigator v-if="type == '1'" :url="'/pages/order/order'" open-type="redirect" class="mix-btn">查看订单</navigator>
+			<navigator v-else :url="'/pages/order/orderDetail?id=' + orderId" open-type="redirect" class="mix-btn">查看订单</navigator>
+			<navigator v-if="type == '1'" :url="'/pages/hall/hallinfo?id=' + id + '&name=' + name + '&peoplename=' + peoplename" open-type="redirect" class="mix-btn hollow">
+				返回抢货列表
+			</navigator>
 			<navigator v-else url="/pages/index/index" open-type="switchTab" class="mix-btn hollow">返回首页</navigator>
 		</view>
 	</view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				orderId:'',
-				type:'',
-				id:'',
-				name:'',
-				peoplename:'',
-			}
-		},
-		onLoad(opt) {
-			if(opt.type) {
-				this.type = opt.type
-			}
-			if(opt.uid) {
-				this.id = opt.uid
-			}
-			if(opt.name) {
-				this.name = opt.name
-			}
-			if(opt.peoplename) {
-				this.peoplename = opt.peoplename
-			}
-			// 保存订单号
-			this.orderId = opt.orderid;
-		},
-		methods: {
-			
+export default {
+	data() {
+		return {
+			orderId: '',
+			type: '',
+			id: '',
+			name: '',
+			peoplename: ''
+		};
+	},
+	onLoad(opt) {
+		if (opt.type) {
+			this.type = opt.type;
 		}
-	}
+		if (opt.uid) {
+			this.id = opt.uid;
+		}
+		if (opt.name) {
+			this.name = opt.name;
+		}
+		if (opt.peoplename) {
+			this.peoplename = opt.peoplename;
+		}
+		// 保存订单号
+		this.orderId = opt.orderid;
+	},
+	methods: {}
+};
 </script>
 
-<style lang='scss'>
-	.content{
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		align-items: center;
-	}
-	.success-icon{
-		font-size: 160upx;
-		color: #d13737;
-		margin-top: 100upx;
-	}
-	.tit{
-		font-size: 38upx;
+<style lang="scss">
+.content {
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	align-items: center;
+}
+.success-icon {
+	font-size: 160upx;
+	color: #d13737;
+	margin-top: 100upx;
+}
+.tit {
+	font-size: 38upx;
+	color: #303133;
+}
+.btn-group {
+	padding-top: 100upx;
+}
+.mix-btn {
+	margin-top: 30upx;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	width: 600upx;
+	height: 80upx;
+	font-size: $font-lg;
+	color: #fff;
+	background-color: $base-color;
+	border-radius: 10upx;
+	&.hollow {
+		background: #fff;
 		color: #303133;
+		border: 1px solid #ccc;
 	}
-	.btn-group{
-		padding-top: 100upx;
-	}
-	.mix-btn {
-		margin-top: 30upx;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		width: 600upx;
-		height: 80upx;
-		font-size: $font-lg;
-		color: #fff;
-		background-color: $base-color;
-		border-radius: 10upx;
-		&.hollow{
-			background: #fff;
-			color: #303133;
-			border: 1px solid #ccc;
-		}
-	}
+}
 </style>

+ 301 - 0
pages/money/qdwallet.vue

@@ -0,0 +1,301 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="flex">
+				<view class="buttom">
+					<view class="icon">{{ userInfo.integral | getMoneyStyle }}</view>
+					<text class="text">可用趣豆</text>
+				</view>
+			</view>
+		</view>
+		<view class="row-box">
+			<view class="title">收款人id</view>
+			<view class="row"><input class="input" type="number" v-model="card" placeholder="请输入收款人id" placeholder-class="placeholder" /></view>
+		</view>
+		<view class="row-box">
+			<view class="title">交易密码</view>
+			<view class="row"><input class="input" type="password" v-model="password" placeholder="请输入交易密码" placeholder-class="placeholder" /></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="转入金额" placeholder-class="placeholder" />
+				<view class="buttom" @click="withdrawal = userInfo.integral">全部转账</view>
+			</view>
+		</view>
+
+		<button class="add-btn up" :class="{ action: loding }" @click="!loding ? confirm() : ''">提交</button>
+	</view>
+</template>
+
+<script>
+import { getMoneyStyle } from '@/utils/rocessor.js';
+import { getUserInfo, admintrade, trade } from '@/api/user.js';
+import { mapMutations, mapState } from 'vuex';
+export default {
+	filters: {
+		getMoneyStyle
+	},
+	data() {
+		return {
+			money: '0.00', //可提现金额
+			withdrawal: '', //提现金额
+			password: '', //支付密码
+			card: '', //转账卡号
+			name: '',
+			// #ifdef H5
+			weichatBsrowser: false,
+			// #endif
+			loding: false,
+			type: '1'
+		};
+	},
+	onLoad(options) {
+		// #ifdef H5
+		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+		// #endif
+		this.dataUp();
+		if (options.type) {
+			this.type = options.type;
+			console.log(this.type);
+		}
+	},
+	computed: {
+		...mapState('user', ['userInfo'])
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'login']),
+		// 更新数据
+		dataUp() {
+			let obj = this;
+			getUserInfo({})
+				.then(e => {
+					obj.login();
+					// 保存返回用户数据
+					obj.setUserInfo(e.data);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		// 切换选中对象
+		tabRadio(e) {
+			this.type = e.detail.value;
+		},
+		// 提交
+		confirm() {
+			let obj = this;
+			obj.loding = true;
+			if (obj.withdrawal < 10) {
+				obj.loding = false;
+				uni.showModal({
+					title: '提示',
+					content: '转账金额最低为10'
+				});
+				return;
+			}
+			if (obj.password == '') {
+				obj.loding = false;
+				uni.showModal({
+					title: '提示',
+					content: '请输入交易密码'
+				});
+				return;
+			}
+			if (obj.withdrawal % 10 != 0) {
+				obj.loding = false;
+				uni.showModal({
+					title: '提示',
+					content: '转账金额请输入10的倍数'
+				});
+				return;
+			} else {
+				let data = {
+					uid: obj.card, //编号
+					num: obj.withdrawal, //金额
+					payment: obj.password
+				};
+				if (obj.type == '1') {
+					trade(data)
+						.then(e => {
+							// 允许按钮点击
+							obj.loding = false;
+							// 初始化提现金额
+							obj.withdrawal = '';
+							uni.showToast({
+								title: '转账成功',
+								duration: 2000,
+								position: 'top'
+							});
+							obj.dataUp();
+						})
+						.catch(e => {
+							obj.$api.msg(e.msg);
+							obj.loding = false;
+							console.log();
+						});
+				}
+				if (obj.type == '2') {
+					admintrade(data)
+						.then(e => {
+							// 允许按钮点击
+							obj.loding = false;
+							// 初始化提现金额
+							obj.withdrawal = '';
+							uni.showToast({
+								title: '转账成功',
+								duration: 2000,
+								position: 'top'
+							});
+							obj.dataUp();
+						})
+						.catch(e => {
+							obj.$api.msg(e.msg);
+							obj.loding = false;
+							console.log();
+						});
+				}
+			}
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	height: 100%;
+}
+.content-money {
+	padding: 30rpx 0;
+	background: #ffffff;
+}
+
+.item {
+	padding: 0 $page-row-spacing;
+	background-color: #ffffff;
+}
+.flex {
+	background-color: #ffffff;
+	text-align: center;
+	margin: 0 30rpx;
+	border-radius: $border-radius-sm;
+	justify-content: center;
+	.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: #f21f5d;
+			font-size: $font-base;
+		}
+	}
+}
+.add-btn {
+	width: 520rpx;
+	height: 80rpx;
+	border: 2rpx solid #f21f5d;
+	border-radius: 40rpx;
+	margin: 140rpx auto;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #f21f5d;
+}
+.name {
+	background: #fff;
+	padding: 30rpx;
+}
+.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;
+			}
+		}
+	}
+}
+.tip {
+	padding: 20rpx;
+	color: #ff0000;
+}
+/deep/ .uni-radio-input {
+	width: 45rpx;
+	height: 45rpx;
+}
+</style>

+ 33 - 7
pages/money/qudou.vue

@@ -11,9 +11,11 @@
 				<view class="money">{{ userInfo.integral }}</view>
 				<view>余额</view>
 			</view>
-			<!-- <view class="money-btn" @click="navto('/pages/money/withdrawal')">
-				转账
-			</view> -->
+			<view class="moneybtn-box">
+				<view class="money-btn" v-if="userInfo.staff" @click="navto('/pages/money/qdwallet?type=2')">商家转账</view>
+				<view class="money-btn" v-else></view>
+				<view class="money-btn" @click="navto('/pages/money/qdwallet')">转账</view>
+			</view>
 		</view>
 		<!-- <view class="info-box flex">
 			<view class="info-item">
@@ -63,6 +65,7 @@
 import { integrallist } from '@/api/wallet.js';
 import { getMoneyStyle } from '@/utils/rocessor.js';
 import { mapState, mapMutations } from 'vuex';
+import { getUserInfo } from '@/api/user.js';
 import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
 import empty from '@/uview-ui/components/u-empty/u-empty.vue';
 export default {
@@ -123,14 +126,25 @@ export default {
 	onLoad(options) {},
 	onShow() {
 		this.loadData();
+		this.loadBaseData();
 	},
 	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
 		// 页面跳转
 		navto(e) {
 			uni.navigateTo({
 				url: e
 			});
 		},
+		loadBaseData() {
+			getUserInfo({})
+				.then(({ data }) => {
+					this.setUserInfo(data);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
 		// 点击返回 我的页面
 		toBack() {
 			uni.navigateBack({});
@@ -161,11 +175,11 @@ export default {
 				.then(({ data }) => {
 					// obj.recharge = data.income;
 					// obj.orderStatusSum = data.expend;
-					if(state == 0 ){
-						navItem.orderList = data.zj
+					if (state == 0) {
+						navItem.orderList = data.zj;
 					}
-					if(state == 1 ){
-						navItem.orderList = data.kc
+					if (state == 1) {
+						navItem.orderList = data.kc;
 					}
 				})
 				.catch(e => {
@@ -282,6 +296,18 @@ page {
 		background: #dcdfe6;
 	}
 }
+.moneybtn-box {
+	display: flex;
+	justify-content: space-between;
+	position: relative;
+	z-index: 2;
+	color: #ffffff;
+	padding: 20rpx 50rpx;
+	font-size: 30rpx;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #ffffff;
+}
 .money-box {
 	position: relative;
 	z-index: 2;

+ 248 - 201
pages/money/withdrawal.vue

@@ -18,7 +18,8 @@
 			<view class="title">提现金额</view>
 			<view class="row">
 				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'" placeholder-class="placeholder" />
+				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'"
+					placeholder-class="placeholder" />
 				<view class="buttom" @click="withdrawal = money">全部提现</view>
 			</view>
 		</view>
@@ -46,12 +47,16 @@
 								<text v-if="aliData.name">真实姓名({{ aliData.name }})</text>
 							</view>
 						</view>
-						<view class="right"><radio value="alipay" color="#5dbc7c" :checked="type == 'alipay'" /></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="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.payment">{{ bankData.bank + ' ' + bankData.payment }}</text>
@@ -61,7 +66,9 @@
 								<text v-if="bankData.name">真实姓名({{ bankData.name }})</text>
 							</view>
 						</view>
-						<view class="right"><radio value="bank" color="#5dbc7c" :checked="type == 'bank'" /></view>
+						<view class="right">
+							<radio value="bank" color="#5dbc7c" :checked="type == 'bank'" />
+						</view>
 					</view>
 				</label>
 			</radio-group>
@@ -73,231 +80,271 @@
 </template>
 
 <script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { extractCash, extractBank, pay_list } from '@/api/wallet.js';
-import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
-export default {
-	filters: {
+	import {
 		getMoneyStyle
-	},
-	components: {
-		uniNoticeBar
-	},
-	data() {
-		return {
-			type: 'ali', //提现方式
-			money: '0.00', //可提现金额
-			freeze: '0.0', //冻结金额
-			withdrawal: '', //提现金额
-			minPrice: '', //最少提现金额
-			aliData: {},
-			bankData: {},
-			// #ifdef H5
-			weichatBsrowser: false
-			// #endif
-		};
-	},
-	onLoad(options) {
-		// #ifdef H5
-		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
-		// #endif
-		//加载提现信息
-		this.loadData();
-		// 加载提款账号信息
-		this.loadinfo();
-	},
-	methods: {
-		//加载数据
-		async loadinfo(source) {
-			pay_list().then(({data}) =>{
-				this.aliData = data.zfb
-				this.bankData = data.bank
-				console.log(data);
-			})
+	} from '@/utils/rocessor.js';
+	import {
+		extractCash,
+		extractBank,
+		pay_list
+	} from '@/api/wallet.js';
+	import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
+	export default {
+		filters: {
+			getMoneyStyle
 		},
-		// 加载余额信息
-		async loadData() {
-			extractBank({}).then(({ data }) => {
-				this.money = data.moneyCount;//可提现余额
-				this.minPrice = data.minPrice;//最小提现
-				this.freeze =data.inmoneyCount//提现中的余额
-			});
+		components: {
+			uniNoticeBar
 		},
-		// 跳转
-		navTo(url) {
-			uni.navigateTo({
-				url: url
-			});
+		data() {
+			return {
+				way: 'now_money',
+				type: 'ali', //提现方式
+				money: '0.00', //可提现金额
+				freeze: '0.0', //冻结金额
+				withdrawal: '', //提现金额
+				minPrice: '', //最少提现金额
+				aliData: {},
+				bankData: {},
+				// #ifdef H5
+				weichatBsrowser: false
+				// #endif
+			};
 		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e.detail.value;
-		},
-		// 提交
-		confirm() {
-			let data = {
-				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
-				money: this.withdrawal, //金额
-				money_type: 1//0佣金1余额
-			}
-			if (this.type=='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;
+		onLoad(options) {
+			if (options.way) {
+				this.way = options.way
 			}
-			
-			
-			extractCash(data)
-				.then(e => {
-					uni.showToast({
-						title: '提交成功',
-						duration: 2000,
-						position: 'top'
-					});
+			// #ifdef H5
+			this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+			// #endif
+			//加载提现信息
+			this.loadData();
+			// 加载提款账号信息
+			this.loadinfo();
+		},
+		methods: {
+			//加载数据
+			async loadinfo(source) {
+				pay_list().then(({
+					data
+				}) => {
+					this.aliData = data.zfb
+					this.bankData = data.bank
+					console.log(data);
 				})
-				.catch(e => {
-					console.log();
+			},
+			// 加载余额信息
+			async loadData() {
+				extractBank({
+					type: this.way
+				}).then(({
+					data
+				}) => {
+					this.money = data.commissionCount; //可提现余额
+					this.minPrice = data.minPrice; //最小提现
+					this.freeze = data.inmoneyCount //提现中的余额
+				});
+			},
+			// 跳转
+			navTo(url) {
+				uni.navigateTo({
+					url: url
 				});
+			},
+			// 切换选中对象
+			tabRadio(e) {
+				this.type = e.detail.value;
+			},
+			// 提交
+			confirm() {
+				let data = {
+					extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
+					money: this.withdrawal, //金额
+					money_type: 1, //0佣金1余额
+					type: this.way
+				}
+				if (this.type == '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 => {
+						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;
-		color: $font-color-dark;
-		width: 50%;
+	page {
+		height: 100%;
 	}
-	.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;
+	.content-money {
+		padding: 30rpx 0;
+		background: #ffffff;
 	}
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		height: 80rpx;
-		.tit {
-			flex-shrink: 0;
-			width: 40rpx;
-			font-size: 30rpx;
+
+	.flex {
+		background-color: #ffffff;
+		text-align: center;
+		margin: 0 30rpx;
+		border-radius: $border-radius-sm;
+
+		.buttom {
+			font-size: $font-lg;
 			color: $font-color-dark;
+			width: 50%;
 		}
-		.input {
-			flex: 1;
-			font-size: 30rpx;
+
+		.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;
 		}
-		.iconlocation {
-			font-size: 36rpx;
+
+		.text {
 			color: $font-color-light;
 		}
+	}
 
-		.buttom {
-			color: #dc262b;
-			font-size: $font-base;
+	.row-box {
+		margin-top: 30rpx;
+		padding: 20rpx 30rpx;
+		background: #fff;
+
+		.title {
+			font-size: $font-base + 2rpx;
+			color: $font-color-dark;
 		}
-	}
-}
-.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;
+		.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: #dc262b;
+				font-size: $font-base;
 			}
 		}
-		.iconweixin1 {
-			color: #18bf16;
+	}
+
+	.add-btn {
+		&.modified {
+			color: $base-color;
 		}
-		.iconzhifubao {
-			color: #08aaec;
+
+		&.up {
+			background-color: $base-color;
+			color: #fff;
 		}
-		.title-box {
-			flex-grow: 1;
-			text-align: left;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-base;
+
+		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;
+				}
 			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
+
+			.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;
-}
-</style>
+
+	/deep/ .uni-radio-input {
+		width: 45rpx;
+		height: 45rpx;
+	}
+</style>

+ 483 - 0
pages/navigation/bdjj.vue

@@ -0,0 +1,483 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="status_bar"><!-- 这里是状态栏 --></view>
+			<view class="body-title">
+				<view class="goback-box" @click="toBack">
+					<image class="goback" src="../../static/icon/fanhui.png" mode=""></image>
+				</view>
+				<view class="header">报单奖金</view>
+			</view>
+			<view class="content-bg">
+				<image src="../../static/icon/bdjj.png" mode=""></image>
+			</view>
+			<view class="money-box">
+				<view class="money">{{ yj || 0 }}</view>
+				<view>我的余额</view>
+			</view>
+		</view>
+		<view class="info-box flex">
+			<view class="info-item">
+				<view class="info-font">累计收入</view>
+				<view class="info-num">{{ recharge || '0' }}</view>
+			</view>
+			<view class="shu"></view>
+			<view class="info-item">
+				<view class="info-font">累计支出</view>
+				<view class="info-num">{{ orderStatusSum || '0' }}</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: height }" class="swiper-box" duration="300"
+			@change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view>
+						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
+							<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">
+								<view>{{ (item.pm == 0 ? '-' : '+') + item.number }}</view>
+							</view>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"
+						v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+	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';
+	import {
+		extractBank,
+	} from '@/api/wallet.js';
+	import {
+		bill_info
+	} from '@/api/index.js'
+	export default {
+		filters: {
+			getMoneyStyle
+		},
+		components: {
+			empty,
+			uniLoadMore
+		},
+		computed: {
+			...mapState('user', ['userInfo'])
+		},
+		onReady(res) {
+			var _this = this;
+			console.log(_this.userInfo);
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.swiper-box').boundingClientRect();
+					query.exec(function(res) {
+						_this.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', _this.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		data() {
+			return {
+				yj: '',
+				height: '',
+				// 头部图高度
+				maxheight: '',
+				tabCurrentIndex: 0,
+				orderStatusSum: 0,
+				recharge: 0,
+				navList: [{
+						state: 1,
+						text: '收入',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 0,
+						text: '支出',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					}
+				],
+				money: ''
+			};
+		},
+		onLoad(options) {
+			this.yj = options.money
+		},
+		onShow() {
+			this.loadData();
+		},
+		methods: {
+			toBack() {
+				uni.switchTab({
+					url: '/pages/user/user'
+				});
+			},
+			// 页面跳转
+			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 === 'loading') {
+					//防止重复加载
+					return;
+				}
+				//修改当前对象状态为加载中
+				navItem.loadingType = 'loading';
+
+				bill_info({
+						page: navItem.page,
+						limit: navItem.limit,
+						title: '报单推荐奖',
+						pm: state
+					})
+					.then(({
+						data
+					}) => {
+						this.recharge = data.sum;
+						if (data.list.length > 0) {
+							if (state == 1) {
+								navItem.orderList = navItem.orderList.concat(data.list);
+							}
+							navItem.page++;
+						}
+						//判断是否还有数据, 有改为more, 没有改为noMore
+						if (navItem.limit == data.list.length) {
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							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;
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		background: #f1f1f1;
+		height: 100%;
+	}
+
+	.status_bar {
+		height: var(--status-bar-height);
+		width: 100%;
+	}
+
+	.content-money {
+		position: relative;
+		height: 480rpx;
+
+		.content-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 750rpx;
+			height: 480rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.body-title {
+			height: 80rpx;
+			text-align: center;
+			font-size: 35rpx;
+			position: relative;
+
+			.header {
+				position: absolute;
+				left: 0;
+				top: 0;
+				width: 100%;
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #fffeff;
+				height: 80rpx;
+				font-size: 36rpx;
+				font-weight: 700;
+				z-index: 9;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.goback-box {
+				position: absolute;
+				left: 18rpx;
+				top: 0;
+				height: 80rpx;
+				display: flex;
+				align-items: center;
+			}
+
+			.goback {
+				z-index: 100;
+				width: 34rpx;
+				height: 34rpx;
+			}
+		}
+	}
+
+	.info-box {
+		width: 670rpx;
+		height: 186rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+		margin: -80rpx auto 0;
+		position: relative;
+		z-index: 2;
+
+		.info-item {
+			width: 50%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			line-height: 1;
+
+			.info-font {
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #999999;
+			}
+
+			.info-num {
+				margin-top: 30rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #181818;
+			}
+		}
+
+		.shu {
+			width: 2rpx;
+			height: 74rpx;
+			background: #dcdfe6;
+		}
+	}
+
+	.money-box {
+		position: relative;
+		z-index: 2;
+		/* #ifdef H5 */
+		padding-top: 90rpx;
+		/* #endif */
+		color: #ffffff;
+		text-align: center;
+		/* #ifdef APP-PLUS */
+		height: 200rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		/* #endif */
+		/* #ifdef MP-WEIXIN */
+		padding-top: 40rpx;
+		/* #endif */
+
+		.money {
+			font-size: 72rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ffffff;
+		}
+
+		.text {
+			font-size: 30rpx;
+		}
+	}
+
+	.moneybtn-box {
+		display: flex;
+		justify-content: space-between;
+		position: relative;
+		z-index: 2;
+		color: #ffffff;
+		padding: 0rpx 50rpx;
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+
+		.money-btn {
+			display: flex;
+			align-items: center;
+
+			.money-btn-icon {
+				width: 40rpx;
+				height: 40rpx;
+			}
+
+			.money-font {
+				margin-left: 10rpx;
+			}
+		}
+	}
+
+	.navbar {
+		margin-top: 20rpx;
+		display: flex;
+		height: 88rpx;
+		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: #000;
+
+				&:after {
+					content: '';
+					position: absolute;
+					left: 50%;
+					bottom: 0;
+					transform: translateX(-50%);
+					width: 50rpx;
+					height: 6rpx;
+					background: linear-gradient(30deg, #FF4C4C, #FE6238);
+					border-radius: 4rpx;
+				}
+			}
+		}
+	}
+
+	//列表
+	.swiper-box {
+		.order-item:last-child {
+			margin-bottom: 60rpx;
+		}
+
+		.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: #fd5b23;
+				font-size: $font-lg;
+				text-align: right;
+
+				.status {
+					color: $font-color-light;
+				}
+			}
+		}
+	}
+
+	.list-scroll-content {
+		background: #ffffff;
+		height: 100%;
+	}
+
+	.content {
+		height: 100%;
+
+		.empty-content {
+			background-color: #ffffff;
+		}
+	}
+
+	.btn-box {
+		width: 674rpx;
+		height: 88rpx;
+		background: linear-gradient(0deg, #2e58ff, #32c6ff);
+		border-radius: 44rpx;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+		text-align: center;
+		line-height: 88rpx;
+		position: fixed;
+		bottom: 48rpx;
+		left: 0;
+		right: 0;
+		margin: 0 auto;
+	}
+</style>

+ 457 - 0
pages/navigation/fhsy.vue

@@ -0,0 +1,457 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="status_bar"><!-- 这里是状态栏 --></view>
+			<view class="body-title">
+				<view class="goback-box" @click="toBack">
+					<image class="goback" src="../../static/icon/fanhui.png" mode=""></image>
+				</view>
+				<view class="header">分红收益</view>
+			</view>
+			<view class="content-bg">
+				<image src="../../static/icon/fhsy.png" mode=""></image>
+			</view>
+			<view class="money-box">
+				<view class="money">{{ yj || 0 }}</view>
+				<view>当前余额</view>
+			</view>
+		</view>
+		<view class="info-box flex">
+			<view class="info-item">
+				<view class="info-font">累计收入</view>
+				<view class="info-num">{{ recharge || '0' }}</view>
+			</view>
+			<view class="shu"></view>
+			<view class="info-item">
+				<view class="info-font">累计支出</view>
+				<view class="info-num">{{ orderStatusSum || '0' }}</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: height }" class="swiper-box" duration="300"
+			@change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view>
+						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
+							<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">
+								<view>{{ (item.pm == 0 ? '-' : '+') + item.number }}</view>
+							</view>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"
+						v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+	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';
+	import {
+		extractBank,
+	} from '@/api/wallet.js';
+	import {
+		bill_info
+	} from '@/api/index.js'
+	export default {
+		filters: {
+			getMoneyStyle
+		},
+		components: {
+			empty,
+			uniLoadMore
+		},
+		computed: {
+			...mapState('user', ['userInfo'])
+		},
+		onReady(res) {
+			var _this = this;
+			console.log(_this.userInfo);
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.swiper-box').boundingClientRect();
+					query.exec(function(res) {
+						_this.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', _this.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		data() {
+			return {
+				yj: '',
+				height: '',
+				// 头部图高度
+				maxheight: '',
+				tabCurrentIndex: 0,
+				orderStatusSum: 0,
+				recharge: 0,
+				navList: [{
+						state: 1,
+						text: '收入',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 0,
+						text: '支出',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					}
+				],
+				money: ''
+			};
+		},
+		onLoad(options) {
+			this.yj = options.money
+		},
+		onShow() {
+			this.loadData();
+		},
+		methods: {
+			toBack() {
+				uni.switchTab({
+					url: '/pages/user/user'
+				});
+			},
+			// 页面跳转
+			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 === 'loading') {
+					//防止重复加载
+					return;
+				}
+				//修改当前对象状态为加载中
+				navItem.loadingType = 'loading';
+
+				bill_info({
+						page: navItem.page,
+						limit: navItem.limit,
+						title: '报单日分红',
+						pm: state
+					})
+					.then(({
+						data
+					}) => {
+						this.recharge = data.sum;
+						if (data.list.length > 0) {
+							if (state == 1) {
+								navItem.orderList = navItem.orderList.concat(data.list);
+							}
+							navItem.page++;
+						}
+						//判断是否还有数据, 有改为more, 没有改为noMore
+						if (navItem.limit == data.list.length) {
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							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;
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		background: #f1f1f1;
+		height: 100%;
+	}
+
+	.status_bar {
+		height: var(--status-bar-height);
+		width: 100%;
+	}
+
+	.content-money {
+		position: relative;
+		height: 480rpx;
+
+		.content-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 750rpx;
+			height: 480rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.body-title {
+			height: 80rpx;
+			text-align: center;
+			font-size: 35rpx;
+			position: relative;
+
+			.header {
+				position: absolute;
+				left: 0;
+				top: 0;
+				width: 100%;
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #fffeff;
+				height: 80rpx;
+				font-size: 36rpx;
+				font-weight: 700;
+				z-index: 9;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.goback-box {
+				position: absolute;
+				left: 18rpx;
+				top: 0;
+				height: 80rpx;
+				display: flex;
+				align-items: center;
+			}
+
+			.goback {
+				z-index: 100;
+				width: 34rpx;
+				height: 34rpx;
+			}
+		}
+	}
+
+	.info-box {
+		width: 670rpx;
+		height: 186rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+		margin: -80rpx auto 0;
+		position: relative;
+		z-index: 2;
+
+		.info-item {
+			width: 50%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			line-height: 1;
+
+			.info-font {
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #999999;
+			}
+
+			.info-num {
+				margin-top: 30rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #181818;
+			}
+		}
+
+		.shu {
+			width: 2rpx;
+			height: 74rpx;
+			background: #dcdfe6;
+		}
+	}
+
+	.money-box {
+		position: relative;
+		z-index: 2;
+		/* #ifdef H5 */
+		padding-top: 90rpx;
+		/* #endif */
+		color: #ffffff;
+		text-align: center;
+		/* #ifdef APP-PLUS */
+		height: 200rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		/* #endif */
+		/* #ifdef MP-WEIXIN */
+		padding-top: 40rpx;
+		/* #endif */
+
+		.money {
+			font-size: 72rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ffffff;
+		}
+
+		.text {
+			font-size: 30rpx;
+		}
+	}
+
+	.navbar {
+		margin-top: 20rpx;
+		display: flex;
+		height: 88rpx;
+		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: #000;
+
+				&:after {
+					content: '';
+					position: absolute;
+					left: 50%;
+					bottom: 0;
+					transform: translateX(-50%);
+					width: 50rpx;
+					height: 6rpx;
+					background: linear-gradient(30deg, #FF4C4C, #FE6238);
+					border-radius: 4rpx;
+				}
+			}
+		}
+	}
+
+	//列表
+	.swiper-box {
+		.order-item:last-child {
+			margin-bottom: 60rpx;
+		}
+
+		.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: #fd5b23;
+				font-size: $font-lg;
+				text-align: right;
+
+				.status {
+					color: $font-color-light;
+				}
+			}
+		}
+	}
+
+	.list-scroll-content {
+		background: #ffffff;
+		height: 100%;
+	}
+
+	.content {
+		height: 100%;
+
+		.empty-content {
+			background-color: #ffffff;
+		}
+	}
+
+	.btn-box {
+		width: 674rpx;
+		height: 88rpx;
+		background: linear-gradient(0deg, #2e58ff, #32c6ff);
+		border-radius: 44rpx;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+		text-align: center;
+		line-height: 88rpx;
+		position: fixed;
+		bottom: 48rpx;
+		left: 0;
+		right: 0;
+		margin: 0 auto;
+	}
+</style>

+ 243 - 0
pages/navigation/index.vue

@@ -0,0 +1,243 @@
+<template>
+	<view class="center">
+		<view class="top">
+			<view class="vheigh"></view>
+			<image class="top-bg" src="../../static/img/top-bg.png" mode=""></image>
+			<view class="top-main flex">
+				<view class="search-box flex" @click="clickSearch()">
+					<image class="search" src="../../static/img/search.png" mode=""></image>
+					<view class="search-font">输入关键词搜索</view>
+				</view>
+			</view>
+		</view>
+		<swiper class="carousel" autoplay="true" duration="400" interval="5000" @change="swiperChange">
+			<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item"
+				@click="bannerNavToUrl(item)">
+				<image :src="item.pic" />
+			</swiper-item>
+		</swiper>
+		<view class="tongz flex">
+			<view>
+				<view class="tongz-bg">
+					<image src="../../static/img/tongz-bg.png" mode=""></image>
+				</view>
+				<view class="tongz-left flex">
+					<image class="image-left" src="../../static/img/ling.png" mode=""></image>
+					<u-notice-bar style="width: 100%;" mode="vertical" type="none" :volume-icon="false"
+						:more-icon="false" :list="text"></u-notice-bar>
+				</view>
+			</view>
+		</view>
+		<view class="navbar">
+			<view class="nav-item" @click="nav('/pages/index/index')">
+				<image class="nav-img" src="../../static/img/newbanner.png" mode=""></image>
+			</view>
+			<view class="nav-item" @click="nav('/pages/navigation/main')">
+				<image class="nav-img" src="../../static/img/oldbanner.png" mode=""></image>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		loadIndexs,
+		store_list
+	} from '@/api/index.js';
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				current: 0,
+				titleNViewBackground: '',
+				swiperCurrent: 0,
+				swiperLength: 0,
+				carouselList: [], //轮播图列表
+				text: ['双模式 双系统  开创第三代新零售'],
+			};
+		},
+		onShow() {
+			this.loadData();
+		},
+		methods: {
+			...mapMutations(['setLat', 'setLon', 'setChoose']),
+			loadData() {
+				loadIndexs({})
+					.then(({
+						data
+					}) => {
+						let goods = data.info;
+						this.dataList = goods.bastList; //精品推荐
+						this.carouselList = data.banner;
+					})
+					.catch(e => {});
+			},
+			nav(url) {
+				uni.navigateTo({
+					url,
+					fail() {
+						uni.switchTab({
+							url
+						});
+					}
+				});
+			},
+			//轮播图切换修改背景色
+			swiperChange(e) {
+				const index = e.detail.current;
+				this.swiperCurrent = index;
+				this.titleNViewBackground = this.carouselList[index].background;
+			},
+			// 點擊搜索框
+			clickSearch() {
+				uni.navigateTo({
+					url: '/pages/product/search'
+				});
+			},
+		}
+	};
+</script>
+
+<style lang="scss">
+	page,
+	.center {
+		min-height: 100%;
+		height: auto;
+		background: #ffffff;
+	}
+
+	.vheigh {
+		height: var(--status-bar-height);
+		background-color: $base-color;
+	}
+
+	.top {
+		position: relative;
+		width: 100%;
+		height: 360rpx;
+
+		.top-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 100%;
+			height: 100%;
+		}
+
+		.top-main {
+			position: relative;
+			z-index: 2;
+			padding: 30rpx;
+
+			.search-box {
+				justify-content: center;
+				width: 698rpx;
+				height: 60rpx;
+				background: rgba(255, 240, 245, 0.4);
+				box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
+				border-radius: 30rpx;
+
+				.search {
+					width: 34rpx;
+					height: 34rpx;
+				}
+
+				.search-font {
+					margin-left: 14rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #ffffff;
+				}
+			}
+		}
+	}
+
+	.carousel {
+		width: 700rpx;
+		height: 276rpx;
+		/* #ifndef APP-PLUS */
+		margin: -240rpx auto 0;
+		/* #endif */
+		/* #ifdef APP-PLUS */
+		margin: -180rpx auto 0;
+		/* #endif */
+		border-radius: 40rpx;
+
+		image {
+			border-radius: 40rpx;
+			width: 700rpx;
+			height: 276rpx;
+		}
+	}
+
+	.tongz {
+		width: 690rpx;
+		height: 70rpx;
+		margin: 32rpx auto 0;
+		padding: 18rpx 30rpx 18rpx 24rpx;
+		align-items: center;
+		position: relative;
+
+		.tongz-bg {
+			position: absolute;
+			top: 0;
+			right: 0;
+			left: 0;
+			width: 690rpx;
+			height: 70rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.tongz-left {
+			width: 640rpx;
+
+			.image-left {
+				width: 28rpx;
+				height: 34rpx;
+			}
+
+			.tongz-font {
+				margin-left: 22rpx;
+				font-size: 28rpx;
+				font-family: Source Han Sans CN;
+				font-weight: 400;
+				color: #0f253a;
+			}
+		}
+
+		.tongz-right {
+			position: relative;
+			z-index: 11;
+			width: 12rpx;
+			height: 26rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+	}
+
+	.nav-item {
+		width: 698rpx;
+		height: 219rpx;
+		background: linear-gradient(150deg, #F5BE41 0%, #DF4226 100%);
+		border-radius: 14rpx;
+		margin: 40rpx auto 0;
+
+		.nav-img {
+			width: 100%;
+			height: 100%;
+			border-radius: 14rpx;
+		}
+	}
+</style>

+ 451 - 0
pages/navigation/main.vue

@@ -0,0 +1,451 @@
+<template>
+	<view class="center">
+		<view class="top">
+			<view class="vheigh"></view>
+			<image class="top-bg" src="../../static/img/top-bg.png" mode=""></image>
+			<view class="top-main flex">
+				<view class="search-box flex" @click="clickSearch()">
+					<image class="search" src="../../static/img/search.png" mode=""></image>
+					<view class="search-font">输入关键词搜索</view>
+				</view>
+			</view>
+		</view>
+		<swiper class="carousel" autoplay="true" duration="400" interval="5000" @change="swiperChange">
+			<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item"
+				@click="bannerNavToUrl(item)">
+				<image :src="item.pic" />
+			</swiper-item>
+		</swiper>
+		<view class="tongz flex">
+			<view>
+				<view class="tongz-bg">
+					<image src="../../static/img/tongz-bg.png" mode=""></image>
+				</view>
+				<view class="tongz-left flex">
+					<image class="image-left" src="../../static/img/ling.png" mode=""></image>
+					<u-notice-bar style="width: 100%;" mode="vertical" type="none" :volume-icon="false"
+						:more-icon="false" :list="text"></u-notice-bar>
+				</view>
+			</view>
+		</view>
+		<view class="navbar-box">
+			<view class="navbar-title">
+				<image class="navbar-icon" src="../../static/icon/title-icon.png" mode=""></image>
+				<view class="navbar-font">
+					分红数据
+				</view>
+			</view>
+			<view class="navbar-main">
+				<view class="navbar-item">
+					<view class="item-num">{{now_jjfh}}</view>
+					<view class="item-font">当前分红基金</view>
+				</view>
+				<view class="xian"></view>
+				<view class="navbar-item">
+					<view class="item-num">{{now_num}}</view>
+					<view class="item-font">当前每股股价</view>
+				</view>
+				<view class="xian"></view>
+				<view class="navbar-item">
+					<view class="item-num">{{my_num}}</view>
+					<view class="item-font">我的当前股数</view>
+				</view>
+				<view class="xian"></view>
+				<view class="navbar-item">
+					<view class="item-num">{{my_money}}</view>
+					<view class="item-font">我的当前分红</view>
+				</view>
+			</view>
+		</view>
+		<view class="main-box">
+			<view class="main-item" @click="nav('/pages/navigation/bdjj?money='+bd_money)">
+				<image class="main-image" src="../../static/icon/n1.png" mode="widthFix"></image>
+				<view class="main-num">¥{{bd_money}}</view>
+				<view class="main-font">报单奖金</view>
+			</view>
+			<view class="main-item" @click="nav('/pages/navigation/tdjj?money='+team_money)">
+				<image class="main-image" src="../../static/icon/n2.png" mode="widthFix"></image>
+				<view class="main-num">¥{{team_money}}</view>
+				<view class="main-font">团队奖金</view>
+			</view>
+			<view class="main-item" @click="nav('/pages/navigation/fhsy?money='+fh_money)">
+				<image class="main-image" src="../../static/icon/n3.png" mode="widthFix"></image>
+				<view class="main-num">¥{{fh_money}}</view>
+				<view class="main-font">分红收益</view>
+			</view>
+			<view class="main-item" @click="nav('/pages/navigation/team')">
+				<image class="main-image" src="../../static/icon/n4.png" mode="widthFix"></image>
+				<view class="main-num">{{team}}</view>
+				<view class="main-font">我的团队</view>
+			</view>
+			<view class="main-item" @click="nav('/pages/user/shareQrCode')">
+				<image class="main-image" src="../../static/icon/n5.png" mode="widthFix"></image>
+				<view class="main-font">邀请好友</view>
+			</view>
+			<view class="main-item" @click="nav('/pages/set/userinfo')">
+				<image class="main-image" src="../../static/icon/n6.png" mode="widthFix"></image>
+				<view class="main-font">个人资料</view>
+			</view>
+			<view class="main-item" @click="nav('/pages/money/withdrawal?way=brokerage_price')">
+				<image class="main-image" src="../../static/icon/n7.png" mode="widthFix"></image>
+				<view class="main-font">发起提现</view>
+			</view>
+			<view class="main-item" @click="nav('/pages/navigation/productlist')">
+				<image class="main-image" src="../../static/icon/n8.png" mode="widthFix"></image>
+				<view class="main-font">产品咨讯</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		loadIndexs,
+		order_info
+	} from '@/api/index.js';
+	import {
+		link
+	} from '@/api/user.js';
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				current: 0,
+				titleNViewBackground: '',
+				swiperCurrent: 0,
+				swiperLength: 0,
+				carouselList: [], //轮播图列表
+				text: ['双模式 双系统  开创第三代新零售'],
+				now_jjfh: 0,
+				now_num: 0,
+				my_num: 0,
+				my_money: 0,
+				bd_money: 0,
+				team_money: 0,
+				fh_money: 0,
+				team: 0,
+				timers: '',
+			};
+		},
+		onShow() {
+			this.loadData();
+		},
+		onHide() {
+			clearTimeout(this.timers);
+			console.log(this.timers, 'onhide');
+		},
+		// 监听页面卸载
+		onUnload() {
+			// 关闭倒计时
+			clearTimeout(this.timers);
+			console.log(this.timers, 'unload');
+		},
+		// 监听页面后退
+		onBackPress() {
+			// 关闭倒计时
+			clearTimeout(this.timers);
+			console.log(this.timers, 'back');
+		},
+		methods: {
+			...mapMutations(['setLat', 'setLon', 'setChoose']),
+			loadData() {
+				this.getorder()
+				loadIndexs({})
+					.then(({
+						data
+					}) => {
+						let goods = data.info;
+						this.dataList = goods.bastList; //精品推荐
+						this.carouselList = data.banner;
+					})
+					.catch(e => {});
+				link({
+						page: 1,
+						limit: 1,
+					})
+					.then(({
+						data
+					}) => {
+						this.team = data.total + data.totalLevel
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+			getorder() {
+				order_info({}).then(({
+					data
+				}) => {
+					this.timers = setTimeout(this.getorder, 1000);
+					this.now_jjfh = data.sum;
+					this.now_num = data.every_piece;
+					this.my_num = data.user_piece;
+					this.my_money = data.award;
+					this.bd_money = data.recommend_award;
+					this.team_money = data.group_award;
+					this.fh_money = data.day_award;
+					console.log(this.timers);
+				})
+			},
+			nav(url) {
+				uni.navigateTo({
+					url,
+					fail() {
+						uni.switchTab({
+							url
+						});
+					}
+				});
+			},
+			//轮播图切换修改背景色
+			swiperChange(e) {
+				const index = e.detail.current;
+				this.swiperCurrent = index;
+				this.titleNViewBackground = this.carouselList[index].background;
+			},
+			// 點擊搜索框
+			clickSearch() {
+				uni.navigateTo({
+					url: '/pages/product/search'
+				});
+			},
+		}
+	};
+</script>
+
+<style lang="scss">
+	page,
+	.center {
+		min-height: 100%;
+		height: auto;
+		background: #ffffff;
+	}
+
+	.vheigh {
+		height: var(--status-bar-height);
+		background-color: $base-color;
+	}
+
+	.top {
+		position: relative;
+		width: 100%;
+		height: 360rpx;
+
+		.top-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 100%;
+			height: 100%;
+		}
+
+		.top-main {
+			position: relative;
+			z-index: 2;
+			padding: 30rpx;
+
+			.search-box {
+				justify-content: center;
+				width: 698rpx;
+				height: 60rpx;
+				background: rgba(255, 240, 245, 0.4);
+				box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
+				border-radius: 30rpx;
+
+				.search {
+					width: 34rpx;
+					height: 34rpx;
+				}
+
+				.search-font {
+					margin-left: 14rpx;
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #ffffff;
+				}
+			}
+		}
+	}
+
+	.carousel {
+		width: 700rpx;
+		height: 276rpx;
+		/* #ifndef APP-PLUS */
+		margin: -240rpx auto 0;
+		/* #endif */
+		/* #ifdef APP-PLUS */
+		margin: -180rpx auto 0;
+		/* #endif */
+		border-radius: 40rpx;
+
+		image {
+			border-radius: 40rpx;
+			width: 700rpx;
+			height: 276rpx;
+		}
+	}
+
+	.tongz {
+		width: 690rpx;
+		height: 70rpx;
+		margin: 32rpx auto 0;
+		padding: 18rpx 30rpx 18rpx 24rpx;
+		align-items: center;
+		position: relative;
+
+		.tongz-bg {
+			position: absolute;
+			top: 0;
+			right: 0;
+			left: 0;
+			width: 690rpx;
+			height: 70rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.tongz-left {
+			width: 640rpx;
+
+			.image-left {
+				width: 28rpx;
+				height: 34rpx;
+			}
+
+			.tongz-font {
+				margin-left: 22rpx;
+				font-size: 28rpx;
+				font-family: Source Han Sans CN;
+				font-weight: 400;
+				color: #0f253a;
+			}
+		}
+
+		.tongz-right {
+			position: relative;
+			z-index: 11;
+			width: 12rpx;
+			height: 26rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+	}
+
+	.navbar-box {
+		width: 700rpx;
+		background: #FFFFFF;
+		box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+		padding: 30rpx 0;
+		margin: 40rpx auto 0;
+	}
+
+	.navbar-title {
+		display: flex;
+		align-items: center;
+		padding: 0 26rpx 20rpx;
+		border-bottom: 1px solid #f5f5f5;
+
+		.navbar-icon {
+			width: 30rpx;
+			height: 26rpx;
+		}
+
+		.navbar-font {
+			margin-left: 10rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+	}
+
+	.navbar-main {
+		padding-top: 45rpx;
+		display: flex;
+		align-items: center;
+		justify-content: space-around;
+		line-height: 1;
+
+		.xian {
+			width: 1rpx;
+			height: 31rpx;
+			background: #333333;
+		}
+
+		.navbar-item {
+			flex: 1;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+
+			.item-num {
+				font-size: 39rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+			}
+
+			.item-font {
+				margin-top: 20rpx;
+				font-size: 21rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #666666;
+			}
+		}
+	}
+
+	.main-box {
+		display: flex;
+		justify-content: space-between;
+		flex-wrap: wrap;
+		padding: 10rpx 24rpx;
+	}
+
+	.main-item {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		width: 342rpx;
+		height: 200rpx;
+		background: #FFFFFF;
+		box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+		margin-top: 20rpx;
+		line-height: 1;
+
+		.main-image {
+			width: 68rpx;
+		}
+
+		.main-num {
+			margin-top: 20rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+		}
+
+		.main-font {
+			margin-top: 20rpx;
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #4D4D4D;
+			line-height: 21rpx;
+		}
+	}
+</style>

+ 111 - 0
pages/navigation/product.vue

@@ -0,0 +1,111 @@
+<template>
+	<view class="center">
+		<view class="main" v-if="art != ''" v-for="(ls, index) in art.content" :key="index">
+			<view v-if="ls.type == 'rich-text'" v-html="ls.value" class="main-item"></view>
+			<view style="width:100%;height: 300px;" v-if="ls.type == 'video' && ls.value">
+				<view v-if="ls.jd == 1" style="width:100%;height: 300px; background: black;" @click="djbf(ls)">
+					<image style="width:100%;height: 300px;" src="../../static/img/spfm.png" mode=""></image>
+				</view>
+				<video :src="ls.value" autoplay v-if="ls.jd ==2" style="width:100%;height: 300px;">
+				</video>
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		details
+	} from '@/api/user.js';
+	export default {
+		data() {
+			return {
+				id: '',
+				art: '',
+			};
+		},
+		onLoad(option) {
+			this.id = option.id;
+			this.loadData();
+		},
+		methods: {
+			loadData() {
+				details({}, this.id).then(({
+					data
+				}) => {
+					data.content = data.content.replace(/<img/g, '<img class="rich-img"').replace(/<p>\s*<img/g,
+						'<p class="pHeight"><img');
+					data.content = this.getVideo(data.content);
+					this.art = data;
+					console.log(this.art, 'nierong');
+				});
+			},
+			djbf(opt) {
+				console.log(opt, '2222');
+				if (opt.jd == 1) {
+					opt.jd = 2
+				}
+				if (opt.jd == 2) {
+					opt.jd = 1
+				}
+			},
+			// 富文本视频解析
+			getVideo(data) {
+				console.log(data, '源数据')
+				let videoList = [];
+				let videoReg = /<video.*?(?:>|\/>)/gi; //匹配到字符串中的 video 标签
+				let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; //匹配到字符串中的 video 标签 的路径
+				let arr = data.match(videoReg) || []; // arr 为包含所有video标签的数组
+				let articleList = data.split('</video>'); // 把字符串  从视频标签分成数组
+				arr.forEach((item, index) => {
+					var src = item.match(srcReg);
+					videoList.push(src[1]); //所要显示的字符串中 所有的video 标签 的路径
+				});
+				let needArticleList = [];
+				articleList.forEach((item, index) => {
+					if (item != '' && item != undefined) {
+						let wuvideo = item.split('<video')
+						let js = wuvideo[0].replace('<video', '')
+						//  常见的标签渲染
+						needArticleList.push({
+							type: 'rich-text',
+							value: js
+						});
+					}
+					let articleListLength = articleList.length; // 插入到原有video 标签位置
+					if (index < articleListLength && videoList[index] != undefined) {
+						needArticleList.push({
+							type: 'video',
+							jd: 1,
+							value: videoList[index]
+						});
+					}
+				});
+				console.log(needArticleList, '完成');
+				return needArticleList;
+			}
+		}
+	};
+</script>
+
+<style lang="less">
+	.center {
+		width: 100%;
+		height: 100%;
+	}
+
+
+	.main {
+		padding: 10rpx;
+		display: flex;
+		flex-direction: column;
+	}
+
+	/deep/ .main {
+		.rich-img {
+			width: 100% !important;
+			height: auto;
+		}
+	}
+</style>

+ 82 - 0
pages/navigation/productlist.vue

@@ -0,0 +1,82 @@
+<template>
+	<view class="center">
+		<view class="massage" v-for="(item, index) in list" :key="index"
+			@click="nav('/pages/navigation/product?id=' + item.id)">
+			<image class="list-prc" :src="item.image_input[0]" mode=""></image>
+			<view class="info">
+				<view class="title">{{ item.title }}</view>
+				<view class="time">{{ item.add_time }}</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		article
+	} from '@/api/user.js';
+	export default {
+		data() {
+			return {
+				list: [],
+				type: ''
+			};
+		},
+		onLoad(opt) {
+			let obj = this;
+			article({
+				page: 1,
+				limit: 1000
+			}, 5).then(({
+				data
+			}) => {
+				this.list = data;
+			});
+		},
+		methods: {
+			nav(url) {
+				uni.navigateTo({
+					url
+				});
+			}
+		}
+	};
+</script>
+
+<style lang="less">
+	.center {
+		background: #f3f3f3;
+	}
+
+	.massage {
+		background: #ffffff;
+		padding: 30rpx;
+		border-bottom: 1px solid #e9e9e9;
+		display: flex;
+		align-items: center;
+
+		.list-prc {
+			width: 120rpx;
+			height: 120rpx;
+		}
+
+		.info {
+			margin-left: 10rpx;
+		}
+
+		.title {
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #333333;
+		}
+
+		.time {
+			margin-top: 18rpx;
+			font-size: 20rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #999999;
+		}
+	}
+</style>

+ 483 - 0
pages/navigation/tdjj.vue

@@ -0,0 +1,483 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="status_bar"><!-- 这里是状态栏 --></view>
+			<view class="body-title">
+				<view class="goback-box" @click="toBack">
+					<image class="goback" src="../../static/icon/fanhui.png" mode=""></image>
+				</view>
+				<view class="header">团队奖金</view>
+			</view>
+			<view class="content-bg">
+				<image src="../../static/icon/tdjj.png" mode=""></image>
+			</view>
+			<view class="money-box">
+				<view class="money">{{ yj || 0 }}</view>
+				<view>我的余额</view>
+			</view>
+		</view>
+		<view class="info-box flex">
+			<view class="info-item">
+				<view class="info-font">累计收入</view>
+				<view class="info-num">{{ recharge || '0' }}</view>
+			</view>
+			<view class="shu"></view>
+			<view class="info-item">
+				<view class="info-font">累计支出</view>
+				<view class="info-num">{{ orderStatusSum || '0' }}</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: height }" class="swiper-box" duration="300"
+			@change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view>
+						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
+							<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">
+								<view>{{ (item.pm == 0 ? '-' : '+') + item.number }}</view>
+							</view>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"
+						v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+	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';
+	import {
+		extractBank,
+	} from '@/api/wallet.js';
+	import {
+		bill_info
+	} from '@/api/index.js'
+	export default {
+		filters: {
+			getMoneyStyle
+		},
+		components: {
+			empty,
+			uniLoadMore
+		},
+		computed: {
+			...mapState('user', ['userInfo'])
+		},
+		onReady(res) {
+			var _this = this;
+			console.log(_this.userInfo);
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.swiper-box').boundingClientRect();
+					query.exec(function(res) {
+						_this.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', _this.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		data() {
+			return {
+				yj: '',
+				height: '',
+				// 头部图高度
+				maxheight: '',
+				tabCurrentIndex: 0,
+				orderStatusSum: 0,
+				recharge: 0,
+				navList: [{
+						state: 1,
+						text: '收入',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 0,
+						text: '支出',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					}
+				],
+				money: ''
+			};
+		},
+		onLoad(options) {
+			this.yj = options.money
+		},
+		onShow() {
+			this.loadData();
+		},
+		methods: {
+			toBack() {
+				uni.switchTab({
+					url: '/pages/user/user'
+				});
+			},
+			// 页面跳转
+			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 === 'loading') {
+					//防止重复加载
+					return;
+				}
+				//修改当前对象状态为加载中
+				navItem.loadingType = 'loading';
+
+				bill_info({
+						page: navItem.page,
+						limit: navItem.limit,
+						title: '报单团队奖',
+						pm: state
+					})
+					.then(({
+						data
+					}) => {
+						this.recharge = data.sum;
+						if (data.list.length > 0) {
+							if (state == 1) {
+								navItem.orderList = navItem.orderList.concat(data.list);
+							}
+							navItem.page++;
+						}
+						//判断是否还有数据, 有改为more, 没有改为noMore
+						if (navItem.limit == data.list.length) {
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							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;
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		background: #f1f1f1;
+		height: 100%;
+	}
+
+	.status_bar {
+		height: var(--status-bar-height);
+		width: 100%;
+	}
+
+	.content-money {
+		position: relative;
+		height: 480rpx;
+
+		.content-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 750rpx;
+			height: 480rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.body-title {
+			height: 80rpx;
+			text-align: center;
+			font-size: 35rpx;
+			position: relative;
+
+			.header {
+				position: absolute;
+				left: 0;
+				top: 0;
+				width: 100%;
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #fffeff;
+				height: 80rpx;
+				font-size: 36rpx;
+				font-weight: 700;
+				z-index: 9;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.goback-box {
+				position: absolute;
+				left: 18rpx;
+				top: 0;
+				height: 80rpx;
+				display: flex;
+				align-items: center;
+			}
+
+			.goback {
+				z-index: 100;
+				width: 34rpx;
+				height: 34rpx;
+			}
+		}
+	}
+
+	.info-box {
+		width: 670rpx;
+		height: 186rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+		margin: -80rpx auto 0;
+		position: relative;
+		z-index: 2;
+
+		.info-item {
+			width: 50%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			line-height: 1;
+
+			.info-font {
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #999999;
+			}
+
+			.info-num {
+				margin-top: 30rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #181818;
+			}
+		}
+
+		.shu {
+			width: 2rpx;
+			height: 74rpx;
+			background: #dcdfe6;
+		}
+	}
+
+	.money-box {
+		position: relative;
+		z-index: 2;
+		/* #ifdef H5 */
+		padding-top: 90rpx;
+		/* #endif */
+		color: #ffffff;
+		text-align: center;
+		/* #ifdef APP-PLUS */
+		height: 200rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		/* #endif */
+		/* #ifdef MP-WEIXIN */
+		padding-top: 40rpx;
+		/* #endif */
+
+		.money {
+			font-size: 72rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ffffff;
+		}
+
+		.text {
+			font-size: 30rpx;
+		}
+	}
+
+	.moneybtn-box {
+		display: flex;
+		justify-content: space-between;
+		position: relative;
+		z-index: 2;
+		color: #ffffff;
+		padding: 0rpx 50rpx;
+		font-size: 30rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+
+		.money-btn {
+			display: flex;
+			align-items: center;
+
+			.money-btn-icon {
+				width: 40rpx;
+				height: 40rpx;
+			}
+
+			.money-font {
+				margin-left: 10rpx;
+			}
+		}
+	}
+
+	.navbar {
+		margin-top: 20rpx;
+		display: flex;
+		height: 88rpx;
+		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: #000;
+
+				&:after {
+					content: '';
+					position: absolute;
+					left: 50%;
+					bottom: 0;
+					transform: translateX(-50%);
+					width: 50rpx;
+					height: 6rpx;
+					background: linear-gradient(30deg, #FF4C4C, #FE6238);
+					border-radius: 4rpx;
+				}
+			}
+		}
+	}
+
+	//列表
+	.swiper-box {
+		.order-item:last-child {
+			margin-bottom: 60rpx;
+		}
+
+		.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: #fd5b23;
+				font-size: $font-lg;
+				text-align: right;
+
+				.status {
+					color: $font-color-light;
+				}
+			}
+		}
+	}
+
+	.list-scroll-content {
+		background: #ffffff;
+		height: 100%;
+	}
+
+	.content {
+		height: 100%;
+
+		.empty-content {
+			background-color: #ffffff;
+		}
+	}
+
+	.btn-box {
+		width: 674rpx;
+		height: 88rpx;
+		background: linear-gradient(0deg, #2e58ff, #32c6ff);
+		border-radius: 44rpx;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+		text-align: center;
+		line-height: 88rpx;
+		position: fixed;
+		bottom: 48rpx;
+		left: 0;
+		right: 0;
+		margin: 0 auto;
+	}
+</style>

+ 494 - 0
pages/navigation/team.vue

@@ -0,0 +1,494 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="status_bar"><!-- 这里是状态栏 --></view>
+			<view class="body-title">
+				<view class="goback-box" @click="toBack">
+					<image class="goback" src="../../static/icon/fanhui.png" mode=""></image>
+				</view>
+				<view class="header">我的团队</view>
+			</view>
+			<view class="content-bg">
+				<image src="../../static/icon/team.png" mode=""></image>
+			</view>
+			<view class="money-box">
+				<view class="money">{{ yj || 0 }}</view>
+				<view>我的团队人数</view>
+			</view>
+		</view>
+		<view class="info-box flex">
+			<view class="info-item" :class="{ current: tabCurrentIndex == 0 }" @click="tabClick(0)">
+				<view class="info-num">{{ recharge || '0' }}</view>
+				<view class="info-font">一代人数</view>
+			</view>
+			<view class="shu"></view>
+			<view class="info-item" :class="{ current: tabCurrentIndex == 1 }" @click="tabClick(1)">
+				<view class="info-num">{{ orderStatusSum || '0' }}</view>
+				<view class="info-font">二代人数</view>
+			</view>
+		</view>
+		<swiper :current="tabCurrentIndex" :style="{ height: height }" class="swiper-box" duration="300"
+			@change="changeTab">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
+				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+					<!-- 空白页 -->
+					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
+
+					<!-- 订单列表 -->
+					<view>
+						<view v-for="(item, index) in tabItem.orderList" :key="index" class="order-item flex">
+							<view class="title-box flex_item">
+								<view class="title-avatar">
+									<image :src="item.avatar|| '../../static/img/login-title.png'"></image>
+								</view>
+								<view class="list_tpl">
+									<view class="title">
+										<view class="title-name clamp">{{ item.nickname }}</view>
+									</view>
+									<view class="time">
+										<text>{{ item.time }}</text>
+									</view>
+								</view>
+								<!-- <view class="list-left">
+									<view class="money">
+										<text>{{ item.numberCount == null ? '未购买' : item.numberCount + '元' }}</text>
+									</view>
+								</view> -->
+							</view>
+						</view>
+					</view>
+					<uni-load-more :status="tabItem.loadingType"
+						v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		getMoneyStyle
+	} from '@/utils/rocessor.js';
+	import {
+		mapGetters
+	} from 'vuex';
+	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+	import empty from '@/components/empty';
+	import {
+		link
+	} from '@/api/user.js';
+	export default {
+		filters: {
+			getMoneyStyle
+		},
+		components: {
+			empty,
+			uniLoadMore
+		},
+		computed: {
+			...mapState('user', ['userInfo'])
+		},
+		onReady(res) {
+			var _this = this;
+			console.log(_this.userInfo);
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.swiper-box').boundingClientRect();
+					query.exec(function(res) {
+						_this.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', _this.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		data() {
+			return {
+				yj: '',
+				height: '',
+				// 头部图高度
+				maxheight: '',
+				tabCurrentIndex: 0,
+				orderStatusSum: 0,
+				recharge: 0,
+				navList: [{
+						state: 0,
+						text: '收入',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 1,
+						text: '支出',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					}
+				],
+				money: ''
+			};
+		},
+		onLoad(options) {},
+		onShow() {
+			this.loadData();
+		},
+		methods: {
+			toBack() {
+				uni.switchTab({
+					url: '/pages/user/user'
+				});
+			},
+			// 页面跳转
+			navto(e) {
+				uni.navigateTo({
+					url: e
+				});
+			},
+			//获取收入支出信息
+			async loadData(source) {
+				const obj = this
+				//这里时将订单挂载到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 === 'loading') {
+					//防止重复加载
+					return;
+				}
+				//修改当前对象状态为加载中
+				navItem.loadingType = 'loading';
+
+				link({
+						page: navItem.page,
+						limit: navItem.limit,
+						grade: state
+					})
+					.then(({
+						data
+					}) => {
+						obj.yj = data.total + data.totalLevel
+						obj.recharge = data.total
+						obj.orderStatusSum = data.totalLevel
+						if (data.list.length > 0) {
+							navItem.orderList = navItem.orderList.concat(data.list);
+							navItem.page++;
+						}
+						//判断是否还有数据, 有改为more, 没有改为noMore
+						if (navItem.limit == data.length) {
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							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;
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		background: #f1f1f1;
+		height: 100%;
+	}
+
+	.status_bar {
+		height: var(--status-bar-height);
+		width: 100%;
+	}
+
+	.content-money {
+		position: relative;
+		height: 480rpx;
+
+		.content-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 750rpx;
+			height: 480rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.body-title {
+			height: 80rpx;
+			text-align: center;
+			font-size: 35rpx;
+			position: relative;
+
+			.header {
+				position: absolute;
+				left: 0;
+				top: 0;
+				width: 100%;
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #fffeff;
+				height: 80rpx;
+				font-size: 36rpx;
+				font-weight: 700;
+				z-index: 9;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.goback-box {
+				position: absolute;
+				left: 18rpx;
+				top: 0;
+				height: 80rpx;
+				display: flex;
+				align-items: center;
+			}
+
+			.goback {
+				z-index: 100;
+				width: 34rpx;
+				height: 34rpx;
+			}
+		}
+	}
+
+	.info-box {
+		width: 670rpx;
+		height: 186rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 20rpx;
+		margin: -80rpx auto 0;
+		position: relative;
+		z-index: 2;
+
+		.info-item {
+			width: 50%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			justify-content: center;
+			line-height: 1;
+			position: relative;
+			height: 186rpx;
+
+			&.current {
+				color: #000;
+
+				&:after {
+					content: '';
+					position: absolute;
+					left: 50%;
+					bottom: 0;
+					transform: translateX(-50%);
+					width: 100rpx;
+					height: 6rpx;
+					background: linear-gradient(30deg, #FF4C4C, #FE6238);
+					border-radius: 4rpx;
+				}
+			}
+
+			.info-font {
+				margin-top: 20rpx;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #666666;
+			}
+
+			.info-num {
+				font-size: 32rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #FF4C4C;
+			}
+		}
+
+		.shu {
+			width: 2rpx;
+			height: 74rpx;
+			background: #dcdfe6;
+		}
+	}
+
+	.money-box {
+		position: relative;
+		z-index: 2;
+		/* #ifdef H5 */
+		padding-top: 90rpx;
+		/* #endif */
+		color: #ffffff;
+		text-align: center;
+		/* #ifdef APP-PLUS */
+		height: 200rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		/* #endif */
+		/* #ifdef MP-WEIXIN */
+		padding-top: 40rpx;
+		/* #endif */
+
+		.money {
+			font-size: 72rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ffffff;
+		}
+
+		.text {
+			font-size: 30rpx;
+		}
+	}
+
+
+
+	//列表
+	.swiper-box {
+		.order-item {
+			padding: 20rpx 30rpx;
+			line-height: 1.5;
+
+			.title-box {
+				width: 100%;
+
+				.title-avatar {
+					flex-shrink: 0;
+					width: 100rpx;
+					height: 100rpx;
+					margin-right: 25rpx;
+					border-radius: 100%;
+
+					image {
+						width: 100%;
+						height: 100%;
+						border-radius: 100%;
+					}
+				}
+
+				.list_tpl {
+					width: 74%;
+
+					.title {
+						display: flex;
+						justify-content: flex-start;
+						font-size: $font-lg;
+						color: $font-color-base;
+						overflow: hidden; //超出的文本隐藏
+						text-overflow: ellipsis; //溢出用省略号显示
+						white-space: nowrap;
+						line-height: 1;
+						text-align: center;
+
+						.title-name {
+							max-width: 60%;
+						}
+
+						.dl {
+							margin-left: 10rpx;
+							width: 93rpx;
+							height: 32rpx;
+							border-radius: 16rpx;
+
+							image {
+								width: 93rpx;
+								height: 32rpx;
+								border-radius: 16rpx;
+							}
+						}
+
+						.class {
+							display: inline-block;
+							margin-left: 10rpx;
+							padding: 6rpx;
+							text-align: center;
+							border: 1px solid #2e58ff;
+							border-radius: 16rpx;
+							font-size: 20rpx;
+							font-family: PingFang SC;
+							font-weight: 500;
+							color: #2e58ff;
+						}
+					}
+
+					.time {
+						font-size: $font-base;
+						color: $font-color-light;
+					}
+				}
+			}
+
+			.list-left {
+				width: 50%;
+			}
+
+			.money {
+				text-align: right;
+				color: #db1935;
+				font-size: $font-lg;
+			}
+		}
+	}
+
+	.list-scroll-content {
+		background: #ffffff;
+		height: 100%;
+	}
+
+	.content {
+		height: 100%;
+
+		.empty-content {
+			background-color: #ffffff;
+		}
+	}
+
+	.btn-box {
+		width: 674rpx;
+		height: 88rpx;
+		background: linear-gradient(0deg, #2e58ff, #32c6ff);
+		border-radius: 44rpx;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #ffffff;
+		text-align: center;
+		line-height: 88rpx;
+		position: fixed;
+		bottom: 48rpx;
+		left: 0;
+		right: 0;
+		margin: 0 auto;
+	}
+</style>

+ 1012 - 952
pages/order/order.vue

@@ -2,34 +2,41 @@
 	<view class="content">
 		<view class="order-title">
 			<view class="body-title">
-				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
+				<view class="goback-box" @click="toBack">
+					<image class="goback" src="../../static/icon/fanhui.png" mode=""></image>
+				</view>
 				<view class="header">我的订单</view>
 			</view>
 			<view class="roder-content">
-				<view class="left" :class="{ current: currentIndex === index }" :key="index" v-for="(item, index) in maiList" @click="navGo(index)">{{ item.title }}</view>
+				<view class="left" :class="{ current: currentIndex === index }" :key="index"
+					v-for="(item, index) in maiList" @click="navGo(index)">{{ item.title }}</view>
 			</view>
 		</view>
 		<view class="navbar" v-show="currentIndex == 0">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index, 0)">
+			<view v-for="(item, index) in navList" :key="index" class="nav-item"
+				:class="{ current: tabCurrentIndex === index }" @click="tabClick(index, 0)">
 				{{ item.text }}
 				<view class="dian" v-if="tabCurrentIndex != index && item.isnew == 2"></view>
 			</view>
 		</view>
 		<view class="navbar" v-show="currentIndex == 1">
-			<view v-for="(item, index) in navList1" :key="index" class="nav-item" :class="{ current: tabCurrentIndex1 === index }" @click="tabClick(index, 1)">
+			<view v-for="(item, index) in navList1" :key="index" class="nav-item"
+				:class="{ current: tabCurrentIndex1 === index }" @click="tabClick(index, 1)">
 				{{ item.text }}
 				<view class="dian" v-if="tabCurrentIndex1 != index && item.isnew == 2"></view>
 			</view>
 		</view>
 
 		<swiper :current="currentAuto" class="swiper-box-one" duration="0" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex" v-if="currentIndex == 0">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex"
+				v-if="currentIndex == 0">
 				<scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadData">
 					<!-- 空白页 -->
 					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
 
 					<!-- 订单列表 -->
-					<view v-for="(item, index) in tabItem.orderList" :key="index" class="order-item" @click="goToOrderDetail(item)">
+					<view v-for="(item, index) in tabItem.orderList" :key="index" class="order-item"
+						@click="goToOrderDetail(item)">
 						<view class="i-top b-b">
 							<text class="time">{{ item.order_id }}</text>
 							<text class="state" :style="{ color: item.stateTipColor }">{{ item.stateTip }}</text>
@@ -52,17 +59,21 @@
 							实付款
 							<text class="price">{{ moneyNum(item.price) }}</text>
 						</view>
-						<view class="action-box b-t" v-if="item.stateTip == '待支付'"><button @click.stop="pay(item)" class="action-btn recom">立即支付</button></view>
-						<view class="action-box b-t" v-if="item.stateTip == '待审核'"><button @click.stop="pay(item)" class="action-btn recom">修改凭证</button></view>
+						<view class="action-box b-t" v-if="item.stateTip == '待支付'"><button @click.stop="pay(item)"
+								class="action-btn recom">立即支付</button></view>
+						<view class="action-box b-t" v-if="item.stateTip == '待审核'"><button @click.stop="pay(item)"
+								class="action-btn recom">修改凭证</button></view>
 						<view class="action-box b-t" v-if="item.stateTip == '待挂售' && tabItem.state != 0">
-							<button @click.stop="gsell(item)" class="action-btn recom">{{ item.frozen == 0 ? '立即挂售' : '冻结中' }}</button>
+							<button @click.stop="gsell(item)"
+								class="action-btn recom">{{ item.frozen == 0 ? '立即挂售' : '冻结中' }}</button>
 						</view>
 					</view>
 
 					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
 				</scroll-view>
 			</swiper-item>
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList1" :key="tabIndex" v-if="currentIndex == 1" @click="goToOrderDetail(item)">
+			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList1" :key="tabIndex"
+				v-if="currentIndex == 1" @click="goToOrderDetail(item)">
 				<scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadData">
 					<!-- 空白页 -->
 					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
@@ -108,15 +119,21 @@
 						</view>
 						<view class="upimg" v-if="item.status == 2 || item.status == 3">
 							<view class="up-tit">打款凭证:</view>
-							<view class="img-wrap" v-if="item.upload_image" @click="lookimg(item.upload_image)"><image :src="item.upload_image" mode=""></image></view>
-							<view class="" style="color: #0F253A;font-weight: bold;font-size: 26rpx;" v-else>买家未上传支付凭证</view>
+							<view class="img-wrap" v-if="item.upload_image" @click="lookimg(item.upload_image)">
+								<image :src="item.upload_image" mode=""></image>
+							</view>
+							<view class="" style="color: #0F253A;font-weight: bold;font-size: 26rpx;" v-else>买家未上传支付凭证
+							</view>
 						</view>
-						<view class="action-box b-t" v-if="item.status == 1"><button @click.stop="call(item)" class="action-btn recom">联系买家</button></view>
+						<view class="action-box b-t" v-if="item.status == 1"><button @click.stop="call(item)"
+								class="action-btn recom">联系买家</button></view>
 						<view class="action-box b-t" v-if="item.status == 2">
-							<button @click.stop="appeal(item)" class="action-btn recom">{{ item.appeal == 0 ? '申诉' : '取消申诉' }}</button>
+							<button @click.stop="appeal(item)"
+								class="action-btn recom">{{ item.appeal == 0 ? '申诉' : '取消申诉' }}</button>
 							<button @click.stop="orderPay(item)" class="action-btn recom">通过</button>
 						</view>
-						<view class="action-box b-t" v-if="!item.status && item.status != 0"><button @click.stop="cancel(item)" class="action-btn recom">取消挂售</button></view>
+						<!-- <view class="action-box b-t" v-if="!item.status && item.status != 0"><button
+								@click.stop="cancel(item)" class="action-btn recom">取消挂售</button></view> -->
 					</view>
 
 					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
@@ -128,1090 +145,1133 @@
 </template>
 
 <script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-import { orderList, orderCancel, orderDel, orderTake, adopt, user_auction_order, seller, cancel, untreated, plead, revoke } from '@/api/order.js';
-import { tabbar } from '@/utils/tabbar.js';
-export default {
-	components: {
-		uniLoadMore,
-		empty
-	},
-	data() {
-		return {
-			loading: false, //判断是否在点击
-			height: '', //第一层swiper高度
-			tabbar: tabbar,
-			current: 1, //底部tabar选中的icon对象
-			currentIndex: 0, //当前选中的第一级0为我要买单,1我要卖单
-			tabCurrentIndex: 0, //当前选中的第二级别我要买单选中项
-			tabCurrentIndex1: 0, //当前选中的第二级别我要卖单选中项
-			maiList: [
-				{
-					title: '我的买单'
-				},
-				{
-					title: '我的卖单'
-				}
-			],
-			navList: [
-				{
-					state: 0,
-					text: '全部',
-					loadingType: 'more',
-					orderList: [],
-					isnew: 1, //判断是否有新的订单
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '待支付',
-					loadingType: 'more',
-					orderList: [],
-					isnew: 1, //判断是否有新的订单
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '待审核',
-					loadingType: 'more',
-					orderList: [],
-					isnew: 1, //判断是否有新的订单
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 4,
-					text: '待挂售',
-					loadingType: 'more',
-					orderList: [],
-					isnew: 1, //判断是否有新的订单
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
+	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+	import empty from '@/components/empty';
+	import {
+		orderList,
+		orderCancel,
+		orderDel,
+		orderTake,
+		adopt,
+		user_auction_order,
+		seller,
+		cancel,
+		untreated,
+		plead,
+		revoke
+	} from '@/api/order.js';
+	import {
+		tabbar
+	} from '@/utils/tabbar.js';
+	export default {
+		components: {
+			uniLoadMore,
+			empty
+		},
+		data() {
+			return {
+				loading: false, //判断是否在点击
+				height: '', //第一层swiper高度
+				tabbar: tabbar,
+				current: 1, //底部tabar选中的icon对象
+				currentIndex: 0, //当前选中的第一级0为我要买单,1我要卖单
+				tabCurrentIndex: 0, //当前选中的第二级别我要买单选中项
+				tabCurrentIndex1: 0, //当前选中的第二级别我要卖单选中项
+				maiList: [{
+						title: '我的买单'
+					},
+					{
+						title: '我的卖单'
+					}
+				],
+				navList: [{
+						state: 0,
+						text: '全部',
+						loadingType: 'more',
+						orderList: [],
+						isnew: 1, //判断是否有新的订单
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 1,
+						text: '待支付',
+						loadingType: 'more',
+						orderList: [],
+						isnew: 1, //判断是否有新的订单
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 2,
+						text: '待审核',
+						loadingType: 'more',
+						orderList: [],
+						isnew: 1, //判断是否有新的订单
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 4,
+						text: '待挂售',
+						loadingType: 'more',
+						orderList: [],
+						isnew: 1, //判断是否有新的订单
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					}
+				],
+				navList1: [{
+						state: 0,
+						text: '全部',
+						loadingType: 'more',
+						orderList: [],
+						isnew: 1, //判断是否有新的订单
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 4,
+						text: '售卖中',
+						loadingType: 'more',
+						orderList: [],
+						isnew: 1, //判断是否有新的订单
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 1,
+						text: '待支付',
+						loadingType: 'more',
+						orderList: [],
+						isnew: 1, //判断是否有新的订单
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 2,
+						text: '待审核',
+						loadingType: 'more',
+						orderList: [],
+						isnew: 1, //判断是否有新的订单
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					}
+				]
+			};
+		},
+		computed: {
+			currentAuto() {
+				if (this.currentIndex == 0) {
+					return this.tabCurrentIndex;
 				}
-			],
-			navList1: [
-				{
-					state: 0,
-					text: '全部',
-					loadingType: 'more',
-					orderList: [],
-					isnew: 1, //判断是否有新的订单
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 4,
-					text: '售卖中',
-					loadingType: 'more',
-					orderList: [],
-					isnew: 1, //判断是否有新的订单
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '待支付',
-					loadingType: 'more',
-					orderList: [],
-					isnew: 1, //判断是否有新的订单
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '待审核',
-					loadingType: 'more',
-					orderList: [],
-					isnew: 1, //判断是否有新的订单
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
+				if (this.currentIndex == 1) {
+					return this.tabCurrentIndex1;
 				}
-			]
-		};
-	},
-	computed: {
-		currentAuto() {
-			if (this.currentIndex == 0) {
-				return this.tabCurrentIndex;
-			}
-			if (this.currentIndex == 1) {
-				return this.tabCurrentIndex1;
-			}
-		}
-	},
-	onLoad(options) {
-		/**
-		 * 修复app端点击除全部订单外的按钮进入时不加载数据的问题
-		 * 替换onLoad下代码即可
-		 */
-		this.tabCurrentIndex = +options.state || 0;
-	},
-	onShow() {
-		this.loadData();
-		this.upData();
-	},
-	// #ifdef APP-PLUS || H5
-	onBackPress(e) {
-		uni.switchTab({
-			url: '/pages/user/user'
-		});
-		return true;
-	},
-	// #endif
-	filters: {
-		moneyNum(value) {
-			return +value;
-		}
-	},
-	// 页面加载完获取swiper高度
-	onReady(res) {
-		var obj = this;
-		uni.getSystemInfo({
-			success: resu => {
-				const query = uni.createSelectorQuery();
-				query.select('.swiper-box-one').boundingClientRect();
-				query.exec(function(res) {
-					console.log(res, 'ddddddddddddd');
-					obj.height = resu.windowHeight - res[0].top + 'px';
-					console.log('打印页面的剩余高度', obj.height);
-				});
-			},
-			fail: res => {}
-		});
-	},
-	methods: {
-		//顶部tab点击
-		tabClick(index, type) {
-			if (type == 0) {
-				this.tabCurrentIndex = index;
-			}
-			if (type == 1) {
-				this.tabCurrentIndex1 = index;
 			}
 		},
-		toBack() {
-			uni.switchTab({
-				url: '/pages/order/index'
-			});
+		onLoad(options) {
+			/**
+			 * 修复app端点击除全部订单外的按钮进入时不加载数据的问题
+			 * 替换onLoad下代码即可
+			 */
+			this.tabCurrentIndex = +options.state || 0;
 		},
-		navGo(index) {
-			this.currentIndex = index;
-			console.log(this.currentIndex, '点击');
+		onShow() {
+			this.loadData();
 			this.upData();
-			this.loadData('reload');
 		},
-		// 转换金额为数字
-		moneyNum(value) {
-			return +value;
+		// #ifdef APP-PLUS || H5
+		onBackPress(e) {
+			uni.switchTab({
+				url: '/pages/user/user'
+			});
+			return true;
 		},
-		// 订单支付
-		pay(item) {
-			uni.navigateTo({
-				url: '/pages/hall/hallpay?ordid=' + item.order_id + '&type=2'
+		// #endif
+		filters: {
+			moneyNum(value) {
+				return +value;
+			}
+		},
+		// 页面加载完获取swiper高度
+		onReady(res) {
+			var obj = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.swiper-box-one').boundingClientRect();
+					query.exec(function(res) {
+						console.log(res, 'ddddddddddddd');
+						obj.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', obj.height);
+					});
+				},
+				fail: res => {}
 			});
 		},
-		// 更新
-		upData() {
-			untreated().then(({ data }) => {
-				console.log(data);
-				if (data.user.hanging != 0) {
-					this.navList[3].isnew = 2;
+		methods: {
+			//顶部tab点击
+			tabClick(index, type) {
+				if (type == 0) {
+					this.tabCurrentIndex = index;
 				}
-				if (data.user.hanging == 0) {
-					this.navList[3].isnew = 1;
+				if (type == 1) {
+					this.tabCurrentIndex1 = index;
 				}
-				if (data.user.paid != 0) {
-					this.navList[1].isnew = 2;
-				}
-				if (data.user.paid == 0) {
-					this.navList[1].isnew = 1;
-				}
-				if (data.user.reviewed != 0) {
-					this.navList[2].isnew = 2;
+			},
+			toBack() {
+				uni.switchTab({
+					url: '/pages/order/index'
+				});
+			},
+			navGo(index) {
+				this.currentIndex = index;
+				console.log(this.currentIndex, '点击');
+				this.upData();
+				this.loadData('reload');
+			},
+			// 转换金额为数字
+			moneyNum(value) {
+				return +value;
+			},
+			// 订单支付
+			pay(item) {
+				uni.navigateTo({
+					url: '/pages/hall/hallpay?ordid=' + item.order_id + '&type=2'
+				});
+			},
+			// 更新
+			upData() {
+				untreated().then(({
+					data
+				}) => {
+					console.log(data);
+					if (data.user.hanging != 0) {
+						this.navList[3].isnew = 2;
+					}
+					if (data.user.hanging == 0) {
+						this.navList[3].isnew = 1;
+					}
+					if (data.user.paid != 0) {
+						this.navList[1].isnew = 2;
+					}
+					if (data.user.paid == 0) {
+						this.navList[1].isnew = 1;
+					}
+					if (data.user.reviewed != 0) {
+						this.navList[2].isnew = 2;
+					}
+					if (data.user.reviewed == 0) {
+						this.navList[2].isnew = 1;
+					}
+					if (data.seller.reviewed != 0) {
+						this.navList1[3].isnew = 2;
+					}
+					if (data.seller.reviewed == 0) {
+						this.navList1[3].isnew = 1;
+					}
+				});
+			},
+			// 查看大图
+			lookimg(src) {
+				console.log(src);
+				let arr = [src];
+				uni.previewImage({
+					current: src,
+					urls: arr
+				});
+			},
+			//申诉和取消申诉
+			appeal(item) {
+				const obj = this;
+				if (this.loading) {
+					return;
 				}
-				if (data.user.reviewed == 0) {
-					this.navList[2].isnew = 1;
+				this.loading = true;
+				if (item.appeal == 0) {
+					uni.showModal({
+						title: '提示',
+						content: '提交申诉后会导致画被冻结,是否继续提交申诉',
+						success: function(res) {
+							if (res.confirm) {
+								uni.showLoading({
+									title: '申诉中'
+								});
+								plead({
+									order_id: item.order_id
+								}).then(e => {
+									uni.hideLoading();
+									obj.$api.msg('申诉成功');
+									obj.loadData('reload');
+									obj.loading = false;
+								});
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					});
+				} else {
+					uni.showModal({
+						title: '提示',
+						content: '提交撤销申诉后会导致画被解冻,是否继续提交取消申诉',
+						success: function(res) {
+							if (res.confirm) {
+								uni.showLoading({
+									title: '取消申诉中'
+								});
+								revoke({
+									order_id: item.order_id
+								}).then(e => {
+									uni.hideLoading();
+									obj.$api.msg('取消申诉成功');
+									obj.loadData('reload');
+									obj.loading = false;
+								});
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					});
 				}
-				if (data.seller.reviewed != 0) {
-					this.navList1[3].isnew = 2;
+			},
+			//跳转到订单详情
+			goToOrderDetail(e) {
+				console.log(11);
+				uni.navigateTo({
+					url: '/pages/order/hallorderDetail?id=' + e.order_id
+				});
+			},
+			gsell(item) {
+				if (item.frozen) {
+					return this.$api.msg('已冻结,请联系客服或与卖家协商');
+				} else {
+					uni.navigateTo({
+						url: '/pages/hall/gsell?id=' + item.product_id
+					});
 				}
-				if (data.seller.reviewed == 0) {
-					this.navList1[3].isnew = 1;
+			},
+			//卖家确认订单
+			orderPay(e) {
+				const obj = this;
+				if (this.loading) {
+					return;
 				}
-			});
-		},
-		// 查看大图
-		lookimg(src) {
-			console.log(src);
-			let arr = [src];
-			uni.previewImage({
-				current: src,
-				urls: arr
-			});
-		},
-		//申诉和取消申诉
-		appeal(item) {
-			const obj = this;
-			if (this.loading) {
-				return;
-			}
-			this.loading = true;
-			if (item.appeal == 0) {
 				uni.showModal({
 					title: '提示',
-					content: '提交申诉后会导致画被冻结,是否继续提交申诉',
+					content: '通过后画将进入买家账户,是否核实完成后继续通过',
 					success: function(res) {
 						if (res.confirm) {
 							uni.showLoading({
-								title: '申诉中'
+								title: '确认订单中'
 							});
-							plead({ order_id: item.order_id }).then(e => {
+							this.loading = true;
+							adopt({
+								order_id: e.order_id
+							}).then(({
+								data
+							}) => {
+								console.log('1111');
 								uni.hideLoading();
-								obj.$api.msg('申诉成功');
-								obj.loadData('reload');
 								obj.loading = false;
+								obj.loadData('reload');
+								obj.upData();
 							});
 						} else if (res.cancel) {
 							console.log('用户点击取消');
 						}
 					}
 				});
-			} else {
+			},
+			//取消挂售
+			cancel(e) {
+				const obj = this;
 				uni.showModal({
 					title: '提示',
-					content: '提交撤销申诉后会导致画被解冻,是否继续提交取消申诉',
+					content: '是否取消挂售',
 					success: function(res) {
 						if (res.confirm) {
+							if (obj.loading) {
+								return;
+							}
+							obj.loading = true;
 							uni.showLoading({
-								title: '取消申诉中'
+								title: '取消挂售中'
 							});
-							revoke({ order_id: item.order_id }).then(e => {
+							cancel({
+								id: e.id
+							}).then(({
+								data
+							}) => {
 								uni.hideLoading();
-								obj.$api.msg('取消申诉成功');
-								obj.loadData('reload');
 								obj.loading = false;
+								obj.loadData('reload');
+								obj.upData();
 							});
-						} else if (res.cancel) {
-							console.log('用户点击取消');
-						}
+						} else if (res.cancel) {}
 					}
 				});
-			}
-		},
-		//跳转到订单详情
-		goToOrderDetail(e) {
-			console.log(11);
-			uni.navigateTo({
-				url: '/pages/order/hallorderDetail?id=' + e.order_id
-			});
-		},
-		gsell(item) {
-			if (item.frozen) {
-				return this.$api.msg('已冻结,请联系客服或与卖家协商');
-			} else {
-				uni.navigateTo({
-					url: '/pages/hall/gsell?id=' + item.product_id
-				});
-			}
-		},
-		//卖家确认订单
-		orderPay(e) {
-			const obj = this;
-			if (this.loading) {
-				return;
-			}
-			uni.showModal({
-				title: '提示',
-				content: '通过后画将进入买家账户,是否核实完成后继续通过',
-				success: function(res) {
-					if (res.confirm) {
-						uni.showLoading({
-							title: '确认订单中'
-						});
-						this.loading = true;
-						adopt({ order_id: e.order_id }).then(({ data }) => {
-							console.log('1111');
-							uni.hideLoading();
-							obj.loading = false;
-							obj.loadData('reload');
-							obj.upData();
-						});
-					} else if (res.cancel) {
-						console.log('用户点击取消');
-					}
+			},
+			//获取订单列表
+			loadData(source) {
+				//这里是将订单挂载到tab列表下
+				let index, navItem;
+				if (this.currentIndex == 0) {
+					index = this.tabCurrentIndex;
+					navItem = this.navList[index];
 				}
-			});
-		},
-		//取消挂售
-		cancel(e) {
-			const obj = this;
-			uni.showModal({
-				title: '提示',
-				content: '是否取消挂售',
-				success: function(res) {
-					if (res.confirm) {
-						if (obj.loading) {
-							return;
-						}
-						obj.loading = true;
-						uni.showLoading({
-							title: '取消挂售中'
-						});
-						cancel({ id: e.id }).then(({ data }) => {
-							uni.hideLoading();
-							obj.loading = false;
-							obj.loadData('reload');
-							obj.upData();
-						});
-					} else if (res.cancel) {
-					}
+				if (this.currentIndex == 1) {
+					index = this.tabCurrentIndex1;
+					navItem = this.navList1[index];
 				}
-			});
-		},
-		//获取订单列表
-		loadData(source) {
-			//这里是将订单挂载到tab列表下
-			let index, navItem;
-			if (this.currentIndex == 0) {
-				index = this.tabCurrentIndex;
-				navItem = this.navList[index];
-			}
-			if (this.currentIndex == 1) {
-				index = this.tabCurrentIndex1;
-				navItem = this.navList1[index];
-			}
-			console.log(source, 'load');
-			let state = navItem.state;
-			// if ( navItem.loaded === true) {
-			// 	//tab切换只有第一次需要加载数据
-			// 	return;
-			// }
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			if (source == 'reload') {
-				navItem.orderList = [];
-				navItem.page = 1;
-				navItem.limit = 10;
-				navItem.loadingType = 'more';
-			}
-			if (navItem.loadingType === 'noMore') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-			if (this.currentIndex == 0) {
-				user_auction_order({
-					type: state,
-					page: navItem.page,
-					limit: navItem.limit
-				})
-					.then(({ data }) => {
-						let arr = data.map(e => {
-							console.log(e);
-							if (state == 4) {
-								e.stateTip = '待挂售';
-								e.stateTipColor = '#fa436a';
-							} else {
-								if (e.status == 3 && e.is_gs == 0) {
+				console.log(source, 'load');
+				let state = navItem.state;
+				// if ( navItem.loaded === true) {
+				// 	//tab切换只有第一次需要加载数据
+				// 	return;
+				// }
+				if (navItem.loadingType === 'loading') {
+					//防止重复加载
+					return;
+				}
+				if (source == 'reload') {
+					navItem.orderList = [];
+					navItem.page = 1;
+					navItem.limit = 10;
+					navItem.loadingType = 'more';
+				}
+				if (navItem.loadingType === 'noMore') {
+					//防止重复加载
+					return;
+				}
+				// 修改当前对象状态为加载中
+				navItem.loadingType = 'loading';
+				if (this.currentIndex == 0) {
+					user_auction_order({
+							type: state,
+							page: navItem.page,
+							limit: navItem.limit
+						})
+						.then(({
+							data
+						}) => {
+							let arr = data.map(e => {
+								console.log(e);
+								if (state == 4) {
 									e.stateTip = '待挂售';
 									e.stateTipColor = '#fa436a';
 								} else {
-									let b = this.orderStateExp(e.status);
-									e.stateTip = b.stateTip;
-									e.stateTipColor = b.stateTipColor;
+									if (e.status == 3 && e.is_gs == 0) {
+										e.stateTip = '待挂售';
+										e.stateTipColor = '#fa436a';
+									} else {
+										let b = this.orderStateExp(e.status);
+										e.stateTip = b.stateTip;
+										e.stateTipColor = b.stateTipColor;
+									}
 								}
+								return e;
+							});
+							console.log(arr, '123456');
+							navItem.orderList = navItem.orderList.concat(arr);
+
+							// console.log(navItem.orderList);
+							navItem.page++;
+							if (navItem.limit == data.length) {
+								//判断是否还有数据, 有改为 more, 没有改为noMore
+								navItem.loadingType = 'more';
+								return;
+							} else {
+								//判断是否还有数据, 有改为 more, 没有改为noMore
+								navItem.loadingType = 'noMore';
 							}
-							return e;
+							uni.hideLoading();
+							this.$set(navItem, 'loaded', true);
+						})
+						.catch(e => {
+							console.log(e);
 						});
-						console.log(arr, '123456');
-						navItem.orderList = navItem.orderList.concat(arr);
-
-						// console.log(navItem.orderList);
-						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);
-					});
-			}
-			if (this.currentIndex == 1) {
-				seller({
-					type: state,
-					page: navItem.page,
-					limit: navItem.limit
-				})
-					.then(({ data }) => {
-						console.log(data);
-						let arr = data.map(e => {
-							if (state == 4) {
-								e.stateTip = '售卖中';
-								e.stateTipColor = '#fa436a';
-							} else {
-								if (e.status == 3 && e.appeal == 1) {
-									e.stateTip = '冻结中';
+				}
+				if (this.currentIndex == 1) {
+					seller({
+							type: state,
+							page: navItem.page,
+							limit: navItem.limit
+						})
+						.then(({
+							data
+						}) => {
+							console.log(data);
+							let arr = data.map(e => {
+								if (state == 4) {
+									e.stateTip = '售卖中';
 									e.stateTipColor = '#fa436a';
 								} else {
-									let b = this.orderStateExp(e.status);
-									e.stateTip = b.stateTip;
-									e.stateTipColor = b.stateTipColor;
+									if (e.status == 3 && e.appeal == 1) {
+										e.stateTip = '冻结中';
+										e.stateTipColor = '#fa436a';
+									} else {
+										let b = this.orderStateExp(e.status);
+										e.stateTip = b.stateTip;
+										e.stateTipColor = b.stateTipColor;
+									}
 								}
+								return e;
+							});
+							navItem.orderList = navItem.orderList.concat(arr);
+
+							// console.log(navItem.orderList);
+							navItem.page++;
+							if (navItem.limit == data.length) {
+								//判断是否还有数据, 有改为 more, 没有改为noMore
+								navItem.loadingType = 'more';
+								return;
+							} else {
+								//判断是否还有数据, 有改为 more, 没有改为noMore
+								navItem.loadingType = 'noMore';
 							}
-							return e;
+							uni.hideLoading();
+							this.$set(navItem, 'loaded', true);
+						})
+						.catch(e => {
+							console.log(e);
 						});
-						navItem.orderList = navItem.orderList.concat(arr);
-
-						// console.log(navItem.orderList);
-						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) {
-			if (this.currentIndex == 0) {
-				this.tabCurrentIndex = e.target.current;
-			}
-			if (this.currentIndex == 1) {
-				this.tabCurrentIndex1 = e.target.current;
-			}
-			this.loadData('reload');
-		},
+				}
+			},
+			//swiper 切换
+			changeTab(e) {
+				if (this.currentIndex == 0) {
+					this.tabCurrentIndex = e.target.current;
+				}
+				if (this.currentIndex == 1) {
+					this.tabCurrentIndex1 = e.target.current;
+				}
+				this.loadData('reload');
+			},
 
-		//删除订单
-		deleteOrder(index) {
-			uni.showLoading({
-				title: '请稍后'
-			});
-			setTimeout(() => {
-				this.navList[this.tabCurrentIndex].orderList.splice(index, 1);
-				uni.hideLoading();
-			}, 600);
-		},
-		//取消订单
-		call(item) {
-			console.log(item.phone);
-			uni.makePhoneCall({
-				phoneNumber: item.phone //仅为示例
-			});
-		},
+			//删除订单
+			deleteOrder(index) {
+				uni.showLoading({
+					title: '请稍后'
+				});
+				setTimeout(() => {
+					this.navList[this.tabCurrentIndex].orderList.splice(index, 1);
+					uni.hideLoading();
+				}, 600);
+			},
+			//取消订单
+			call(item) {
+				console.log(item.phone);
+				uni.makePhoneCall({
+					phoneNumber: item.phone //仅为示例
+				});
+			},
 
-		//订单状态文字和颜色
-		orderStateExp(state) {
-			let stateTip = '',
-				stateTipColor = '#fa436a';
-			switch (+state) {
-				case 0:
-					stateTip = '已过期';
-					break;
-				case 1:
-					stateTip = '待支付';
-					break;
-				case 2:
-					stateTip = '待审核';
-					break;
-				case 3:
-					stateTip = '已完成';
-					break;
-				case undefined:
-					stateTip = '待挂售';
-					break;
-				case 9:
-					stateTip = '订单已关闭';
-					stateTipColor = '#909399';
-					break;
-
-				//更多自定义
+			//订单状态文字和颜色
+			orderStateExp(state) {
+				let stateTip = '',
+					stateTipColor = '#fa436a';
+				switch (+state) {
+					case 0:
+						stateTip = '已过期';
+						break;
+					case 1:
+						stateTip = '待支付';
+						break;
+					case 2:
+						stateTip = '待审核';
+						break;
+					case 3:
+						stateTip = '已完成';
+						break;
+					case undefined:
+						stateTip = '待挂售';
+						break;
+					case 9:
+						stateTip = '订单已关闭';
+						stateTipColor = '#909399';
+						break;
+
+						//更多自定义
+				}
+				return {
+					stateTip,
+					stateTipColor
+				};
 			}
-			return {
-				stateTip,
-				stateTipColor
-			};
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page,
-.content {
-	background: $page-color-base;
-	height: 100%;
-}
-
-.order-title {
-	width: 750rpx;
-	height: 270rpx;
-	background: url(../../static/img/order99.png) repeat-x 0;
-	display: flex;
-	flex-direction: column;
-	// padding: 50rpx 0;
-	text-align: center;
-
-	.body-title {
-		height: 80rpx;
+	page,
+	.content {
+		background: $page-color-base;
+		height: 100%;
+	}
+
+	.order-title {
+		width: 750rpx;
+		height: 270rpx;
+		background: url(../../static/img/order99.png) repeat-x 0;
+		display: flex;
+		flex-direction: column;
+		// padding: 50rpx 0;
 		text-align: center;
-		font-size: 35rpx;
-		position: relative;
-		.header {
-			position: absolute;
-			left: 0;
-			top: 30rpx;
-			width: 100%;
-			font-size: 36rpx;
+
+		.body-title {
+			height: 80rpx;
+			text-align: center;
+			font-size: 35rpx;
+			position: relative;
+
+			.header {
+				position: absolute;
+				left: 0;
+				top: 30rpx;
+				width: 100%;
+				font-size: 36rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #fffeff;
+				height: 80rpx;
+				font-size: 36rpx;
+				font-weight: 700;
+				z-index: 9;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.goback-box {
+				position: absolute;
+				left: 18rpx;
+				top: 30rpx;
+				height: 80rpx;
+				display: flex;
+				align-items: center;
+			}
+
+			.goback {
+				z-index: 100;
+				width: 34rpx;
+				height: 34rpx;
+			}
+		}
+
+		text {
+			margin: 30px 0;
+			font-size: 17px;
 			font-family: PingFang SC;
 			font-weight: bold;
-			color: #fffeff;
-			height: 80rpx;
-			font-size: 36rpx;
-			font-weight: 700;
-			z-index: 9;
-			display: flex;
-			justify-content: center;
-			align-items: center;
+			color: #ffffff;
 		}
-		.goback-box {
-			position: absolute;
-			left: 18rpx;
-			top: 30rpx;
-			height: 80rpx;
+
+		.roder-content {
+			margin-top: 80rpx;
 			display: flex;
-			align-items: center;
-		}
+			justify-content: space-around;
+
+			.left {
+				width: 168px;
+				height: 40px;
+				line-height: 40px;
+				border: 1px solid #ffffff;
+				border-radius: 5px;
+				text-align: center;
+				font-size: 15px;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #ffffff;
+				background: #dc262b;
+			}
 
-		.goback {
-			z-index: 100;
-			width: 34rpx;
-			height: 34rpx;
+			.current {
+				color: #dc262b;
+				background: #ffffff;
+			}
 		}
 	}
 
-	text {
-		margin: 30px 0;
-		font-size: 17px;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
+	.swiper-box {
+		background: red;
 	}
 
-	.roder-content {
-		margin-top: 80rpx;
-		display: flex;
-		justify-content: space-around;
-
-		.left {
-			width: 168px;
-			height: 40px;
-			line-height: 40px;
-			border: 1px solid #ffffff;
-			border-radius: 5px;
-			text-align: center;
-			font-size: 15px;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #ffffff;
-			background: #dc262b;
-		}
+	.list-scroll-content {
+		height: 100%;
+	}
 
-		.current {
-			color: #dc262b;
-			background: #ffffff;
-		}
+	.uni-swiper-item {
+		height: auto;
 	}
-}
-
-.swiper-box {
-	background: red;
-}
-
-.list-scroll-content {
-	height: 100%;
-}
-
-.uni-swiper-item {
-	height: auto;
-}
-
-.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;
+
+	.navbar {
 		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
+		height: 40px;
+		padding: 0 5px;
+		background: #fff;
+		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
 		position: relative;
-		.dian {
-			position: absolute;
-			top: 20rpx;
-			right: 10rpx;
-			width: 12rpx;
-			height: 12rpx;
-			border-radius: 50%;
-			background-color: $base-color;
-		}
-		&.current {
-			color: $base-color;
+		z-index: 10;
 
-			&:after {
-				content: '';
+		.nav-item {
+			flex: 1;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			height: 100%;
+			font-size: 15px;
+			color: $font-color-dark;
+			position: relative;
+
+			.dian {
 				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid $base-color;
+				top: 20rpx;
+				right: 10rpx;
+				width: 12rpx;
+				height: 12rpx;
+				border-radius: 50%;
+				background-color: $base-color;
+			}
+
+			&.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;
+				}
 			}
 		}
 	}
-}
-
-.order-item {
-	display: flex;
-	flex-direction: column;
-	background: #fff;
-	margin-top: 16rpx;
 
-	.i-top {
+	.order-item {
 		display: flex;
-		align-items: center;
-		height: 80rpx;
-		font-size: $font-base;
-		color: $font-color-dark;
-		position: relative;
-		padding: 0 30rpx;
+		flex-direction: column;
+		background: #fff;
+		margin-top: 16rpx;
 
-		.time {
-			flex: 1;
-		}
+		.i-top {
+			display: flex;
+			align-items: center;
+			height: 80rpx;
+			font-size: $font-base;
+			color: $font-color-dark;
+			position: relative;
+			padding: 0 30rpx;
 
-		.state {
-			color: $base-color;
-		}
+			.time {
+				flex: 1;
+			}
 
-		.del-btn {
-			padding: 10rpx 0 10rpx 36rpx;
-			font-size: $font-lg;
-			color: $font-color-light;
-			position: relative;
+			.state {
+				color: $base-color;
+			}
 
-			&:after {
-				content: '';
-				width: 0;
-				height: 30rpx;
-				border-left: 1px solid $border-color-dark;
-				position: absolute;
-				left: 20rpx;
-				top: 50%;
-				transform: translateY(-50%);
+			.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%);
+				}
 			}
 		}
-	}
 
-	/* 多条商品 */
-	.goods-box {
-		height: 160rpx;
-		padding: 20rpx 0;
-		white-space: nowrap;
-
-		.goods-item {
-			width: 120rpx;
-			height: 120rpx;
-			display: inline-block;
-			margin-right: 24rpx;
+		/* 多条商品 */
+		.goods-box {
+			height: 160rpx;
+			padding: 20rpx 0;
+			white-space: nowrap;
+
+			.goods-item {
+				width: 120rpx;
+				height: 120rpx;
+				display: inline-block;
+				margin-right: 24rpx;
+			}
+
+			.goods-img {
+				display: block;
+				width: 100%;
+				height: 100%;
+			}
 		}
 
-		.goods-img {
-			display: block;
-			width: 100%;
-			height: 100%;
+		/* 单条商品 */
+		.goods-box-single {
+			display: flex;
+			padding: 20rpx 30rpx;
+			background: #f7f7f7;
+
+			.goods-img {
+				display: block;
+				width: 120rpx;
+				height: 120rpx;
+			}
+
+			.right {
+				flex: 1;
+				display: flex;
+				flex-direction: column;
+				padding: 0 0 0 24rpx;
+				overflow: hidden;
+
+				.row {
+					margin-top: 10rpx;
+				}
+
+				.row_title {
+					padding: 5rpx 10rpx;
+					background-color: #dddddd;
+					border-radius: 10rpx;
+					font-size: 22rpx;
+					color: #ffffff;
+				}
+
+				.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;
+					}
+				}
+			}
 		}
-	}
 
-	/* 单条商品 */
-	.goods-box-single {
-		display: flex;
-		padding: 20rpx 30rpx;
-		background: #f7f7f7;
-		.goods-img {
-			display: block;
-			width: 120rpx;
-			height: 120rpx;
+		.buy-box {
+			padding: 10rpx 22rpx;
+			background-color: #ffffff;
+
+			.buy-info {
+				display: flex;
+				align-items: center;
+				margin-top: 20rpx;
+
+				.font {
+					font-size: 32rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #333333;
+				}
+
+				.avter {
+					margin-left: 10rpx;
+					width: 46rpx;
+					height: 46rpx;
+					border-radius: 50%;
+				}
+
+				.buy-name {
+					margin-left: 10rpx;
+					font-size: 32rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #333333;
+				}
+
+				.phone {
+					margin-left: 12rpx;
+					font-size: 24rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+			}
 		}
 
-		.right {
-			flex: 1;
+		.upimg {
+			padding-left: 20rpx;
+			padding-top: 10rpx;
+			padding-bottom: 10rpx;
 			display: flex;
-			flex-direction: column;
-			padding: 0 0 0 24rpx;
-			overflow: hidden;
 
-			.row {
-				margin-top: 10rpx;
+			.up-tit {
+				display: inline-block;
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #6d7c88;
 			}
 
-			.row_title {
-				padding: 5rpx 10rpx;
-				background-color: #dddddd;
-				border-radius: 10rpx;
-				font-size: 22rpx;
-				color: #ffffff;
-			}
+			.img-wrap {
+				width: 153rpx;
+				height: 152rpx;
 
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
-				line-height: 1;
-				width: 80%;
+				border-radius: 20rpx;
+
+				image {
+					border-radius: 20rpx;
+					width: 153rpx;
+					height: 152rpx;
+					background-color: #ccc;
+				}
 			}
+		}
 
-			.attr-box {
-				display: flex;
-				justify-content: flex-end;
-				font-size: $font-sm + 2rpx;
-				color: $font-color-light;
+		.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 {
-				display: inline;
-				font-size: $font-base + 2rpx;
+				font-size: $font-lg;
 				color: $font-color-dark;
 
 				&:before {
 					content: '¥';
 					font-size: $font-sm;
+					margin: 0 2rpx 0 8rpx;
 				}
 			}
 		}
-	}
-	.buy-box {
-		padding: 10rpx 22rpx;
-		background-color: #ffffff;
-		.buy-info {
+
+		.action-box {
+			padding: 0 30rpx;
 			display: flex;
+			justify-content: flex-end;
 			align-items: center;
-			margin-top: 20rpx;
-			.font {
-				font-size: 32rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #333333;
-			}
-			.avter {
-				margin-left: 10rpx;
-				width: 46rpx;
-				height: 46rpx;
-				border-radius: 50%;
-			}
-			.buy-name {
-				margin-left: 10rpx;
-				font-size: 32rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #333333;
-			}
-			.phone {
-				margin-left: 12rpx;
-				font-size: 24rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #999999;
-			}
+			height: 100rpx;
+			position: relative;
 		}
-	}
-	.upimg {
-		padding-left: 20rpx;
-		padding-top: 10rpx;
-		padding-bottom: 10rpx;
-		display: flex;
 
-		.up-tit {
-			display: inline-block;
+		.refuse {
+			margin: 0;
+			padding: 0;
+			width: 160rpx;
+			height: 60rpx;
+			border: 2rpx solid #ebebeb;
+			border-radius: 28rpx;
+			text-align: center;
+			line-height: 60rpx;
 			font-size: 26rpx;
 			font-family: PingFang SC;
 			font-weight: 500;
-			color: #6d7c88;
-		}
+			color: #999999;
 
-		.img-wrap {
-			width: 153rpx;
-			height: 152rpx;
+			&:after {
+				border-radius: 100px;
+			}
 
-			border-radius: 20rpx;
+			&.recom {
+				color: #999999;
 
-			image {
-				border-radius: 20rpx;
-				width: 153rpx;
-				height: 152rpx;
-				background-color: #ccc;
+				&:after {
+					border-color: #999999;
+				}
 			}
 		}
-	}
-	.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;
+		.action-btn {
+			width: 160rpx;
+			height: 60rpx;
+			margin: 0;
+			margin-left: 24rpx;
+			padding: 0;
+			text-align: center;
+			line-height: 60rpx;
+			font-size: $font-sm + 2rpx;
 			color: $font-color-dark;
+			background: #fff;
+			border-radius: 100px;
+			border: 2rpx solid #fd3b39;
+			border-radius: 28px;
+
+			&:after {
+				border-radius: 100px;
+			}
 
-			&:before {
-				content: '¥';
-				font-size: $font-sm;
-				margin: 0 2rpx 0 8rpx;
+			&.recom {
+				color: $base-color;
+
+				&:after {
+					border-color: $base-color;
+				}
+			}
+
+			&.evaluate {
+				color: $color-yellow;
+
+				&:after {
+					border-color: $color-yellow;
+				}
 			}
 		}
 	}
 
-	.action-box {
-		padding: 0 30rpx;
+	/* load-more */
+	.uni-load-more {
 		display: flex;
-		justify-content: flex-end;
+		flex-direction: row;
+		height: 80rpx;
 		align-items: center;
-		height: 100rpx;
-		position: relative;
+		justify-content: center;
 	}
 
-	.refuse {
-		margin: 0;
-		padding: 0;
-		width: 160rpx;
-		height: 60rpx;
-		border: 2rpx solid #ebebeb;
-		border-radius: 28rpx;
-		text-align: center;
-		line-height: 60rpx;
-		font-size: 26rpx;
-		font-family: PingFang SC;
-		font-weight: 500;
-		color: #999999;
-		&:after {
-			border-radius: 100px;
-		}
+	.uni-load-more__text {
+		font-size: 28rpx;
+		color: #999;
+	}
 
-		&.recom {
-			color: #999999;
+	.uni-load-more__img {
+		height: 24px;
+		width: 24px;
+		margin-right: 10px;
+	}
 
-			&:after {
-				border-color: #999999;
-			}
-		}
+	.uni-load-more__img>view {
+		position: absolute;
 	}
 
-	.action-btn {
-		width: 160rpx;
-		height: 60rpx;
-		margin: 0;
-		margin-left: 24rpx;
-		padding: 0;
-		text-align: center;
-		line-height: 60rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-dark;
-		background: #fff;
-		border-radius: 100px;
-		border: 2rpx solid #fd3b39;
-		border-radius: 28px;
-		&:after {
-			border-radius: 100px;
-		}
+	.uni-load-more__img>view view {
+		width: 6px;
+		height: 2px;
+		border-top-left-radius: 1px;
+		border-bottom-left-radius: 1px;
+		background: #999;
+		position: absolute;
+		opacity: 0.2;
+		transform-origin: 50%;
+		animation: load 1.56s ease infinite;
+	}
 
-		&.recom {
-			color: $base-color;
+	.uni-load-more__img>view view:nth-child(1) {
+		transform: rotate(90deg);
+		top: 2px;
+		left: 9px;
+	}
 
-			&:after {
-				border-color: $base-color;
-			}
-		}
+	.uni-load-more__img>view view:nth-child(2) {
+		transform: rotate(180deg);
+		top: 11px;
+		right: 0;
+	}
 
-		&.evaluate {
-			color: $color-yellow;
+	.uni-load-more__img>view view:nth-child(3) {
+		transform: rotate(270deg);
+		bottom: 2px;
+		left: 9px;
+	}
 
-			&:after {
-				border-color: $color-yellow;
-			}
-		}
+	.uni-load-more__img>view view:nth-child(4) {
+		top: 11px;
+		left: 0;
+	}
+
+	.load1,
+	.load2,
+	.load3 {
+		height: 24px;
+		width: 24px;
 	}
-}
-
-/* load-more */
-.uni-load-more {
-	display: flex;
-	flex-direction: row;
-	height: 80rpx;
-	align-items: center;
-	justify-content: center;
-}
-
-.uni-load-more__text {
-	font-size: 28rpx;
-	color: #999;
-}
-
-.uni-load-more__img {
-	height: 24px;
-	width: 24px;
-	margin-right: 10px;
-}
-
-.uni-load-more__img > view {
-	position: absolute;
-}
-
-.uni-load-more__img > view view {
-	width: 6px;
-	height: 2px;
-	border-top-left-radius: 1px;
-	border-bottom-left-radius: 1px;
-	background: #999;
-	position: absolute;
-	opacity: 0.2;
-	transform-origin: 50%;
-	animation: load 1.56s ease infinite;
-}
-
-.uni-load-more__img > view view:nth-child(1) {
-	transform: rotate(90deg);
-	top: 2px;
-	left: 9px;
-}
-
-.uni-load-more__img > view view:nth-child(2) {
-	transform: rotate(180deg);
-	top: 11px;
-	right: 0;
-}
-
-.uni-load-more__img > view view:nth-child(3) {
-	transform: rotate(270deg);
-	bottom: 2px;
-	left: 9px;
-}
-
-.uni-load-more__img > view view:nth-child(4) {
-	top: 11px;
-	left: 0;
-}
-
-.load1,
-.load2,
-.load3 {
-	height: 24px;
-	width: 24px;
-}
-
-.load2 {
-	transform: rotate(30deg);
-}
-
-.load3 {
-	transform: rotate(60deg);
-}
-
-.load1 view:nth-child(1) {
-	animation-delay: 0s;
-}
-
-.load2 view:nth-child(1) {
-	animation-delay: 0.13s;
-}
-
-.load3 view:nth-child(1) {
-	animation-delay: 0.26s;
-}
-
-.load1 view:nth-child(2) {
-	animation-delay: 0.39s;
-}
-
-.load2 view:nth-child(2) {
-	animation-delay: 0.52s;
-}
-
-.load3 view:nth-child(2) {
-	animation-delay: 0.65s;
-}
-
-.load1 view:nth-child(3) {
-	animation-delay: 0.78s;
-}
-
-.load2 view:nth-child(3) {
-	animation-delay: 0.91s;
-}
-
-.load3 view:nth-child(3) {
-	animation-delay: 1.04s;
-}
-
-.load1 view:nth-child(4) {
-	animation-delay: 1.17s;
-}
-
-.load2 view:nth-child(4) {
-	animation-delay: 1.3s;
-}
-
-.load3 view:nth-child(4) {
-	animation-delay: 1.43s;
-}
-
-@-webkit-keyframes load {
-	0% {
-		opacity: 1;
+
+	.load2 {
+		transform: rotate(30deg);
 	}
 
-	100% {
-		opacity: 0.2;
+	.load3 {
+		transform: rotate(60deg);
+	}
+
+	.load1 view:nth-child(1) {
+		animation-delay: 0s;
+	}
+
+	.load2 view:nth-child(1) {
+		animation-delay: 0.13s;
+	}
+
+	.load3 view:nth-child(1) {
+		animation-delay: 0.26s;
 	}
-}
 
-.swiper-box-one {
-	height: calc(100% - 175px);
-}
-</style>
+	.load1 view:nth-child(2) {
+		animation-delay: 0.39s;
+	}
+
+	.load2 view:nth-child(2) {
+		animation-delay: 0.52s;
+	}
+
+	.load3 view:nth-child(2) {
+		animation-delay: 0.65s;
+	}
+
+	.load1 view:nth-child(3) {
+		animation-delay: 0.78s;
+	}
+
+	.load2 view:nth-child(3) {
+		animation-delay: 0.91s;
+	}
+
+	.load3 view:nth-child(3) {
+		animation-delay: 1.04s;
+	}
+
+	.load1 view:nth-child(4) {
+		animation-delay: 1.17s;
+	}
+
+	.load2 view:nth-child(4) {
+		animation-delay: 1.3s;
+	}
+
+	.load3 view:nth-child(4) {
+		animation-delay: 1.43s;
+	}
+
+	@-webkit-keyframes load {
+		0% {
+			opacity: 1;
+		}
+
+		100% {
+			opacity: 0.2;
+		}
+	}
+
+	.swiper-box-one {
+		height: calc(100% - 175px);
+	}
+</style>

+ 158 - 143
pages/product/new.vue

@@ -5,11 +5,21 @@
 			<view class="title">新品</view>
 		</view>
 		<swiper class="carousel" autoplay="true" duration="400" interval="5000" @change="swiperChange">
-			<swiper-item class="carousel-item" @click="bannerNavToUrl(item)"><image src="../../static/img/new.png" /></swiper-item>
+			<swiper-item class="carousel-item" @click="bannerNavToUrl(item)">
+				<!-- #ifdef APP-PLUS -->
+				<image src="../../static/img/new.png" />
+				<!-- #endif -->
+				<!-- #ifndef APP-PLUS -->
+				<image src="http://yiqugo.oss-cn-hangzhou.aliyuncs.com/4f5a820230406150308383.png" />
+
+				<!-- #endif -->
+			</swiper-item>
 		</swiper>
 		<view class="hotgoods" v-if="firstList.length != 0">
 			<view class="hotgoods-item" v-for="item in firstList" :key="item.id" @click="navToDetailPage(item)">
-				<view class="image-wrapper"><image :src="item.image" mode="scaleToFill"></image></view>
+				<view class="image-wrapper">
+					<image :src="item.image" mode="scaleToFill"></image>
+				</view>
 				<view class="title clamp margin-c-20">{{ item.store_name }}</view>
 				<view class="hot-price">
 					<view class="price">
@@ -24,169 +34,174 @@
 </template>
 
 <script>
-import { tabbar1 } from '@/utils/tabbar.js';
-import { groomList } from '@/api/product.js';
-export default {
-	data() {
-		return {
-			current: 3,
-			tabbar: tabbar1,
-			firstList: [],
-			type: 2,
-			page: 1,
-			limit: 20,
-			loaded: false,
-			loadingType: 'more'
-		};
-	},
-	onLoad() {
-		this.loadData();
-	},
-	onReachBottom() {
-		this.loadData();
-	},
-	methods: {
-		loadData() {
-			let obj = this;
-			if (obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
-				return;
-			}
-			obj.loadingType = 'loading';
-			groomList(
-				{
-					page: obj.page,
-					limit: obj.limit
-				},
-				this.type
-			)
-				.then(({ data }) => {
-					// 保存轮播图
-					obj.bannerImg = data.banner;
-					// 保存商品信息
-					obj.firstList = this.firstList.concat(data.list);
-					obj.loaded = true;
-					obj.page++;
-					if (obj.limit == data.list.length) {
-						obj.loadingType = 'more';
-					} else {
-						obj.loadingType = 'noMore';
-					}
-				})
-				.catch(e => {
-					console.log(e);
-				});
+	import {
+		tabbar1
+	} from '@/utils/tabbar.js';
+	import {
+		groomList
+	} from '@/api/product.js';
+	export default {
+		data() {
+			return {
+				current: 3,
+				tabbar: tabbar1,
+				firstList: [],
+				type: 2,
+				page: 1,
+				limit: 20,
+				loaded: false,
+				loadingType: 'more'
+			};
+		},
+		onLoad() {
+			this.loadData();
 		},
-		navToDetailPage(e) {
-			uni.navigateTo({
-				url: '/pages/product/product?id=' + e.id
-			});
+		onReachBottom() {
+			this.loadData();
+		},
+		methods: {
+			loadData() {
+				let obj = this;
+				if (obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
+					return;
+				}
+				obj.loadingType = 'loading';
+				groomList({
+							page: obj.page,
+							limit: obj.limit
+						},
+						this.type
+					)
+					.then(({
+						data
+					}) => {
+						// 保存轮播图
+						obj.bannerImg = data.banner;
+						// 保存商品信息
+						obj.firstList = this.firstList.concat(data.list);
+						obj.loaded = true;
+						obj.page++;
+						if (obj.limit == data.list.length) {
+							obj.loadingType = 'more';
+						} else {
+							obj.loadingType = 'noMore';
+						}
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+			navToDetailPage(e) {
+				uni.navigateTo({
+					url: '/pages/product/product?id=' + e.id
+				});
+			}
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page,
-.center {
-	min-height: 100%;
-	height: auto;
-	background: #ffffff;
-}
-
-.top {
-	position: relative;
-	width: 100%;
-	height: 400rpx;
-
-	.top-bg {
-		position: absolute;
-		top: 0;
-		left: 0;
-		right: 0;
-		width: 100%;
-		height: 100%;
+	page,
+	.center {
+		min-height: 100%;
+		height: auto;
+		background: #ffffff;
 	}
 
-	.title {
+	.top {
 		position: relative;
-		z-index: 2;
-		padding: 30rpx 0;
-		font-size: 34rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-		text-align: center;
-	}
-}
+		width: 100%;
+		height: 400rpx;
+
+		.top-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			width: 100%;
+			height: 100%;
+		}
 
-.carousel {
-	width: 700rpx;
-	height: 300rpx;
-	margin: -280rpx auto 0;
+		.title {
+			position: relative;
+			z-index: 2;
+			padding: 30rpx 0;
+			font-size: 34rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ffffff;
+			text-align: center;
+		}
+	}
 
-	image {
+	.carousel {
 		width: 700rpx;
 		height: 300rpx;
-	}
-}
-
-.hotgoods {
-	margin-top: 38rpx;
-	width: 100%;
-	display: flex;
-	flex-wrap: wrap;
-	padding: 0 32rpx;
-
-	.hotgoods-item {
-		width: 48%;
-		background-color: #ffffff;
-		border-radius: 12rpx;
-		margin-bottom: 24rpx;
-
-		&:nth-child(2n + 1) {
-			margin-right: 24rpx;
-		}
+		margin: -280rpx auto 0;
 
-		.image-wrapper {
-			width: 100%;
-			height: 330rpx;
-			// background: red;
-			border-radius: 3px;
-			overflow: hidden;
+		image {
+			width: 700rpx;
+			height: 300rpx;
+		}
+	}
 
-			image {
-				width: 100%;
-				height: 100%;
-				opacity: 1;
-				border-radius: 12rpx 12rpx 0 0;
+	.hotgoods {
+		margin-top: 38rpx;
+		width: 100%;
+		display: flex;
+		flex-wrap: wrap;
+		padding: 0 32rpx;
+
+		.hotgoods-item {
+			width: 48%;
+			background-color: #ffffff;
+			border-radius: 12rpx;
+			margin-bottom: 24rpx;
+
+			&:nth-child(2n + 1) {
+				margin-right: 24rpx;
 			}
-		}
 
-		.title {
-			font-size: $font-base;
-			color: $font-color-dark;
-			font-weight: bold;
-			line-height: 80rpx;
-		}
+			.image-wrapper {
+				width: 100%;
+				height: 330rpx;
+				// background: red;
+				border-radius: 3px;
+				overflow: hidden;
 
-		.hot-price {
-			display: flex;
-			justify-content: space-between;
-			padding: 0 16rpx 12rpx;
+				image {
+					width: 100%;
+					height: 100%;
+					opacity: 1;
+					border-radius: 12rpx 12rpx 0 0;
+				}
+			}
 
-			.price {
-				font-size: 36rpx;
+			.title {
+				font-size: $font-base;
+				color: $font-color-dark;
 				font-weight: bold;
-				color: #fd3b39;
+				line-height: 80rpx;
 			}
 
-			.cart-icon {
-				image {
-					width: 44rpx;
-					height: 44rpx;
+			.hot-price {
+				display: flex;
+				justify-content: space-between;
+				padding: 0 16rpx 12rpx;
+
+				.price {
+					font-size: 36rpx;
+					font-weight: bold;
+					color: #fd3b39;
+				}
+
+				.cart-icon {
+					image {
+						width: 44rpx;
+						height: 44rpx;
+					}
 				}
 			}
 		}
 	}
-}
-</style>
+</style>

+ 1150 - 1149
pages/product/product.vue

@@ -1,282 +1,284 @@
-<template>
-	<view class="container">
-		<view class="carousel">
-			<swiper indicator-dots :circular="true" duration="400">
-				<swiper-item class="swiper-item" v-for="(item, index) in imgList" :key="index">
-					<view class="image-wrapper"><image :src="item" class="loaded" mode="scaleToFill"></image></view>
-				</swiper-item>
-			</swiper>
-		</view>
-
-		<view class="introduce-section seckill-box-title" v-if="goodsType == 1">
-			<view class="title flex">
-				<view class="title-box">
-					<text class="price-tip">¥</text>
-					<text class="price">{{ goodsObjact.price }}</text>
-					<!-- <text class="m-price" v-if="goodsObjact.ot_price > goodsObjact.price">¥{{ goodsObjact.ot_price }}</text> -->
-					<!-- <text class="coupon-tip">7折</text> -->
-				</view>
-				<view class="flex timeStop">
-					<view>距离结束</view>
-					<uni-countdown
-						color="#ffffff"
-						background-color="#D65B3F"
-						splitor-color="#FFFFFF"
-						:show-day="false"
-						:hour="seckillObj.stopTimeH"
-						:minute="seckillObj.stopTimeM"
-						:second="seckillObj.stopTimeS"
-					></uni-countdown>
-				</view>
-			</view>
-		</view>
-
-		<view class="introduce-section">
-			<text class="title" v-if="goodsType == 1">{{ goodsObjact.title }}</text>
-			<view class="price-box" v-if="goodsType == 0">
-				<text class="price-tip">¥</text>
-				<text class="price">{{ goodsObjact.price }}<text v-if="actionIntegral != 0" style="padding-left: 8rpx;">+{{actionIntegral}} 趣豆</text></text>
-				<text class="m-price" v-if="goodsObjact.ot_price > goodsObjact.price">¥{{ goodsObjact.ot_price }}</text>
+<template>
+	<view class="container">
+		<view class="carousel">
+			<swiper indicator-dots :circular="true" duration="400">
+				<swiper-item class="swiper-item" v-for="(item, index) in imgList" :key="index">
+					<view class="image-wrapper"><image :src="item" class="loaded" mode="scaleToFill"></image></view>
+				</swiper-item>
+			</swiper>
+		</view>
+
+		<view class="introduce-section seckill-box-title" v-if="goodsType == 1">
+			<view class="title flex">
+				<view class="title-box">
+					<text class="price-tip">¥</text>
+					<text class="price">{{ goodsObjact.price }}</text>
+					<!-- <text class="m-price" v-if="goodsObjact.ot_price > goodsObjact.price">¥{{ goodsObjact.ot_price }}</text> -->
+					<!-- <text class="coupon-tip">7折</text> -->
+				</view>
+				<view class="flex timeStop">
+					<view>距离结束</view>
+					<uni-countdown
+						color="#ffffff"
+						background-color="#D65B3F"
+						splitor-color="#FFFFFF"
+						:show-day="false"
+						:hour="seckillObj.stopTimeH"
+						:minute="seckillObj.stopTimeM"
+						:second="seckillObj.stopTimeS"
+					></uni-countdown>
+				</view>
+			</view>
+		</view>
+
+		<view class="introduce-section">
+			<text class="title" v-if="goodsType == 1">{{ goodsObjact.title }}</text>
+			<view class="price-box" v-if="goodsType == 0">
+				<text class="price-tip">¥</text>
+				<text class="price">
+					{{ goodsObjact.price }}
+					<text v-if="actionIntegral != 0" style="padding-left: 8rpx;">+{{ actionIntegral }} 趣豆</text>
+				</text>
+				<text class="m-price" v-if="goodsObjact.ot_price > goodsObjact.price">¥{{ goodsObjact.ot_price }}</text>
 				<!-- <text class="coupon-tip">7折</text> -->
-				
-			</view>
-			<text class="title" v-if="goodsType == 0">{{ goodsObjact.store_name }}</text>
-			<view class="bot-row">
-				<text>快递: {{ goodsObjact.postage }}</text>
-				<text style="text-align: center;">销量: {{ goodsObjact.sales }}</text>
-				<text style="text-align: right;">{{ storeObjact.address | address }}</text>
-			</view>
-		</view>
-		<!-- <view class="c-list">
-			<view class="c-row b-b">
-				<text class="tit">赠送</text>
-				<view class="con">
-					<text class="selected-text">购买赠送<text class="num">200</text>艺金券</text>
-				</view>
-			</view>
-		</view> -->
-		<view class="c-list">
-			<view class="c-row b-b" @click="toggleSpec">
-				<text class="tit">购买数量</text>
-				<view class="con">
-					<text class="selected-text">{{ goodsNumber }}</text>
-				</view>
-				<text class="iconfont iconenter"></text>
-			</view>
-			<view class="c-row b-b" v-if="goodsType == 1">
-				<text class="tit">限购数量</text>
-				<view class="con">
-					<text class="selected-text">{{ goodsObjact.num + goodsObjact.unit_name }}</text>
-				</view>
-			</view>
-			<!-- <view class="c-row b-b">
-				<text class="tit">优惠券</text>
-				<text class="con t-r red">领取优惠券</text>
-				<text class="iconfont iconenter"></text>
-			</view> -->
-			<view class="c-row b-b" v-if="goodsObjact.is_integral == 1 && goodsType == 0">
-				<text class="tit">积分</text>
-				<view class="bz-list con">
-					<text>最高抵扣¥{{ moneyNum(goodsObjact.use_max_integral) == 0 ? moneyNum(goodsObjact.price) : moneyNum(goodsObjact.use_max_integral) }}</text>
-				</view>
-			</view>
-		</view>
-		<view class="shop-box flex" v-if="goodsType == 0 && shopId > 0">
-			<view class="flex">
-				<image :src="shopInfo.logo" mode=" aspectFit" class="shop-img"></image>
-				<text class="font-size-lg">{{ shopInfo.title }}</text>
-			</view>
-			<navigator :url="'/pages/shoping/index?merid=' + shopId"><view class="shop-button">进店逛逛</view></navigator>
-		</view>
-		<view class="detail-desc">
-			<view class="d-header"><text>商品详情</text></view>
-			<rich-text class="detail-centent" :nodes="goodsObjact.description"></rich-text>
-			<view :class="{ contentBottomHeight: goodsType == 1 || goodsType == 2, goodsBottom: goodsType == 0 }"></view>
-		</view>
-		<!-- 底部操作菜单 -->
-		<view class="page-bottom" v-if="goodsType == 0">
-			<!-- <navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
-				<text class="iconfont iconhome"></text>
-				<text>首页</text>
-			</navigator>
-			<navigator url="/pages/cart/cart" open-type="switchTab" class="p-b-btn">
-				<text class="iconfont iconcart"></text>
-				<text>购物车</text>
-			</navigator> -->
-			<!-- <view class="p-b-btn" :class="{ active: goodsObjact.userCollect }" @click="toFavorite(goodsObjact)">
-				<text class="iconfont " :class="{ iconlike: !goodsObjact.userCollect, iconlikefill: goodsObjact.userCollect }"></text>
-				<text>收藏</text>
-			</view> -->
-
-			<view class="action-btn-group">
-				<button type="primary" class=" action-btn no-border buy-now-btn" @click="toggleSpec(2)">加入购物车</button>
-				<button type="primary" class=" action-btn no-border  add-cart-btn" @click="toggleSpec(1)">立即购买</button>
-			</view>
-			<!-- <view class="action-btn-group">
-				<button type="primary" class=" action-btn no-border  add-cart-btn" style="width: 750rpx;" @click="toggleSpec(1)">立即购买</button>
-			</view> -->
-		</view>
-		<!-- 秒杀商品购买 -->
-		<view class="goods-pay-box flex" :class="{ stop: seckillObj.stop }" v-if="goodsType == 1">
-			<view class="goods-pay bgLine" v-if="!seckillObj.stop" @click="toggleSpec(1)"><text>立即购买</text></view>
-			<view class="goods-pay-stop" v-else>活动已结束</view>
-		</view>
-		<!-- 拼团商品购买 -->
-		<view class="goods-pay-box flex" v-if="goodsType == 2">
-			<view class="goods-pay bg-warning" @click="navToProductGoods">
-				<view class="goods-buttom-money">¥{{ goodsObjact.product_price }}</view>
-				<view class="goods-buttom">单独购买</view>
-			</view>
-			<view class="goods-pay bg-danger" @click="toggleSpec(1)">
-				<view class="goods-buttom-money">¥{{ goodsObjact.price }}</view>
-				<view class="goods-buttom">我要拼团</view>
-			</view>
-		</view>
-		<!-- 规格-模态层弹窗 -->
-		<view class="popup spec" :class="specClass" @touchmove.stop.prevent="stopPrevent" @click="toggleSpec">
-			<!-- 遮罩层 -->
-			<view class="mask"></view>
-			<view class="layer attr-content" @click.stop="stopPrevent">
-				<view class="a-t">
-					<image :src="actionImage"></image>
-					<view class="right">
-						<view class="good-name clamp">{{ goodsObjact.store_name }}</view>
-						<text class="price" v-if="actionIntegral != 0">¥{{ actionPrice }}+{{actionIntegral}}趣豆</text>
-						<text class="price" v-else>¥{{ actionPrice }}</text>
-						<!-- <text class="stock">库存:{{ goodsObjact.stock }}件</text> -->
-						<!-- <view class="selected" v-if="goodsType == 0">
-							已选:
-							<text class="selected-text" v-for="(sItem, sIndex) in specSelected" :key="sIndex">{{ sItem }}</text>
-						</view> -->
-					</view>
-				</view>
-				<view v-for="(item, index) in specList" :key="index" class="attr-list">
-					<text>{{ item.attr_name }}</text>
-					<view class="item-list">
-						<text
-							v-for="(childItem, childIndex) in item.attr_value"
-							:key="childIndex"
-							class="tit"
-							:class="{ selected: childItem.check }"
-							@click="selectSpec(childItem, item, index)"
-						>
-							{{ childItem.attr }}
-						</text>
-					</view>
-				</view>
-				<view class="attr-list" style="padding-bottom: 120rpx;">
-					<text>购买数量</text>
-					<view class="item-list">
-						<uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax" @eventChange="numberChange"></uni-number-box>
-					</view>
-				</view>
-				<button class="btn" @click.stop="buy">确定</button>
-			</view>
-		</view>
-		<view :class="{ seckillBottom: goodsType == 1, goodsBottom: goodsType == 0 }"></view>
-		<!-- 分享 -->
-		<!-- <share ref="share" :contentHeight="580" :shareList="shareList"></share> -->
-	</view>
-</template>
-
-<script>
-// import share from '@/components/share';
-import uniNumberBox from '@/components/uni-number-box.vue';
-import uniCountdown from '@/components/uni-countdown/uni-countdown.vue';
+			</view>
+			<text class="title" v-if="goodsType == 0">{{ goodsObjact.store_name }}</text>
+			<view class="bot-row">
+				<text>快递: {{ goodsObjact.postage }}</text>
+				<text style="text-align: center;">销量: {{ goodsObjact.sales }}</text>
+				<text style="text-align: right;">{{ storeObjact.address | address }}</text>
+			</view>
+		</view>
+		<!-- <view class="c-list">
+			<view class="c-row b-b">
+				<text class="tit">赠送</text>
+				<view class="con">
+					<text class="selected-text">购买赠送<text class="num">200</text>艺金券</text>
+				</view>
+			</view>
+		</view> -->
+		<view class="c-list">
+			<view class="c-row b-b" @click="toggleSpec">
+				<text class="tit">购买数量</text>
+				<view class="con">
+					<text class="selected-text">{{ goodsNumber }}</text>
+				</view>
+				<text class="iconfont iconenter"></text>
+			</view>
+			<view class="c-row b-b" v-if="goodsType == 1">
+				<text class="tit">限购数量</text>
+				<view class="con">
+					<text class="selected-text">{{ goodsObjact.num + goodsObjact.unit_name }}</text>
+				</view>
+			</view>
+			<!-- <view class="c-row b-b">
+				<text class="tit">优惠券</text>
+				<text class="con t-r red">领取优惠券</text>
+				<text class="iconfont iconenter"></text>
+			</view> -->
+			<view class="c-row b-b" v-if="goodsObjact.is_integral == 1 && goodsType == 0">
+				<text class="tit">积分</text>
+				<view class="bz-list con">
+					<text>最高抵扣¥{{ moneyNum(goodsObjact.use_max_integral) == 0 ? moneyNum(goodsObjact.price) : moneyNum(goodsObjact.use_max_integral) }}</text>
+				</view>
+			</view>
+		</view>
+		<view class="shop-box flex" v-if="goodsType == 0 && shopId > 0">
+			<view class="flex">
+				<image :src="shopInfo.logo" mode=" aspectFit" class="shop-img"></image>
+				<text class="font-size-lg">{{ shopInfo.title }}</text>
+			</view>
+			<navigator :url="'/pages/shoping/index?merid=' + shopId"><view class="shop-button">进店逛逛</view></navigator>
+		</view>
+		<view class="detail-desc">
+			<view class="d-header"><text>商品详情</text></view>
+			<rich-text class="detail-centent" :nodes="goodsObjact.description"></rich-text>
+			<view :class="{ contentBottomHeight: goodsType == 1 || goodsType == 2, goodsBottom: goodsType == 0 }"></view>
+		</view>
+		<!-- 底部操作菜单 -->
+		<view class="page-bottom" v-if="goodsType == 0">
+			<!-- <navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
+				<text class="iconfont iconhome"></text>
+				<text>首页</text>
+			</navigator>
+			<navigator url="/pages/cart/cart" open-type="switchTab" class="p-b-btn">
+				<text class="iconfont iconcart"></text>
+				<text>购物车</text>
+			</navigator> -->
+			<!-- <view class="p-b-btn" :class="{ active: goodsObjact.userCollect }" @click="toFavorite(goodsObjact)">
+				<text class="iconfont " :class="{ iconlike: !goodsObjact.userCollect, iconlikefill: goodsObjact.userCollect }"></text>
+				<text>收藏</text>
+			</view> -->
+
+			<view class="action-btn-group">
+				<!-- <button type="primary" class=" action-btn no-border buy-now-btn" @click="toggleSpec(2)">加入购物车</button> -->
+				<button type="primary" class=" action-btn no-border  add-cart-btn" @click="toggleSpec(1)">立即购买</button>
+			</view>
+			<!-- <view class="action-btn-group">
+				<button type="primary" class=" action-btn no-border  add-cart-btn" style="width: 750rpx;" @click="toggleSpec(1)">立即购买</button>
+			</view> -->
+		</view>
+		<!-- 秒杀商品购买 -->
+		<view class="goods-pay-box flex" :class="{ stop: seckillObj.stop }" v-if="goodsType == 1">
+			<view class="goods-pay bgLine" v-if="!seckillObj.stop" @click="toggleSpec(1)"><text>立即购买</text></view>
+			<view class="goods-pay-stop" v-else>活动已结束</view>
+		</view>
+		<!-- 拼团商品购买 -->
+		<view class="goods-pay-box flex" v-if="goodsType == 2">
+			<view class="goods-pay bg-warning" @click="navToProductGoods">
+				<view class="goods-buttom-money">¥{{ goodsObjact.product_price }}</view>
+				<view class="goods-buttom">单独购买</view>
+			</view>
+			<view class="goods-pay bg-danger" @click="toggleSpec(1)">
+				<view class="goods-buttom-money">¥{{ goodsObjact.price }}</view>
+				<view class="goods-buttom">我要拼团</view>
+			</view>
+		</view>
+		<!-- 规格-模态层弹窗 -->
+		<view class="popup spec" :class="specClass" @touchmove.stop.prevent="stopPrevent" @click="toggleSpec">
+			<!-- 遮罩层 -->
+			<view class="mask"></view>
+			<view class="layer attr-content" @click.stop="stopPrevent">
+				<view class="a-t">
+					<image :src="actionImage"></image>
+					<view class="right">
+						<view class="good-name clamp">{{ goodsObjact.store_name }}</view>
+						<text class="price" v-if="actionIntegral != 0">¥{{ actionPrice }}+{{ actionIntegral }}趣豆</text>
+						<text class="price" v-else>¥{{ actionPrice }}</text>
+						<!-- <text class="stock">库存:{{ goodsObjact.stock }}件</text> -->
+						<!-- <view class="selected" v-if="goodsType == 0">
+							已选:
+							<text class="selected-text" v-for="(sItem, sIndex) in specSelected" :key="sIndex">{{ sItem }}</text>
+						</view> -->
+					</view>
+				</view>
+				<view v-for="(item, index) in specList" :key="index" class="attr-list">
+					<text>{{ item.attr_name }}</text>
+					<view class="item-list">
+						<text
+							v-for="(childItem, childIndex) in item.attr_value"
+							:key="childIndex"
+							class="tit"
+							:class="{ selected: childItem.check }"
+							@click="selectSpec(childItem, item, index)"
+						>
+							{{ childItem.attr }}
+						</text>
+					</view>
+				</view>
+				<view class="attr-list" style="padding-bottom: 120rpx;">
+					<text>购买数量</text>
+					<view class="item-list">
+						<uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax" @eventChange="numberChange"></uni-number-box>
+					</view>
+				</view>
+				<button class="btn" @click.stop="buy">确定</button>
+			</view>
+		</view>
+		<view :class="{ seckillBottom: goodsType == 1, goodsBottom: goodsType == 0 }"></view>
+		<!-- 分享 -->
+		<!-- <share ref="share" :contentHeight="580" :shareList="shareList"></share> -->
+	</view>
+</template>
+
+<script>
+// import share from '@/components/share';
+import uniNumberBox from '@/components/uni-number-box.vue';
+import uniCountdown from '@/components/uni-countdown/uni-countdown.vue';
 import { goodsDetail, cartAdd, collectAdd, collectDel, seckillGoods, groupGoods } from '@/api/product.js';
-import { timeComputed } from '@/utils/rocessor.js';
-// #ifdef H5
-import { weixindata,shareLoad } from '@/utils/wxAuthorized';
-import { mapState } from 'vuex';
-import weixinObj from "@/plugin/jweixin-module/index.js";
-// #endif
-export default {
-	components: {
-		uniNumberBox,
-		uniCountdown
-	},
-	filters: {
-		address(val) {
-			let str = '';
-			if (val) {
-				str = val[0] + ' ' + val[1];
-			}
-			return str;
-		}
-	},
-	data() {
-		return {
-			actionIntegral: '',
-			reply: '', //评论
-			type: 1, //默认支付方式add为
-			goodsNumber: 1, //购买数量
-			goodsid: '', //商品id
-			specClass: 'none', //显示隐藏弹窗
-			shareList: [], //分享列表
-			goodsObjact: {}, //保存商品数据
-			storeObjact: {}, //保存店铺数据
-			//图片循环
-			imgList: [],
-			specList: [],
-			// 对比对象
-			productValue: [],
-			actionPrice: 0, //默认选中商品价格
-			actionImage: '', //默认选中图片
-			uniqueId: '', //选中的商品分类
-			specSelected: [], //选中的分类
-			specSelectedName: '', //选中分类名称
-			goodsNumberMax: 0, //最大可购买数量
-			shopId: '', //商店id
-			//商店信息
-			shopInfo: {
-				logo: '',
-				title: ''
-			}, //商店信息
-			goodsType: 0, //商品类型1秒杀商品0为普通商品2为拼团商品
-			// 秒杀数据保存
-			seckillObj: {
-				stopTime: 0, //结束时间
-				stop: false, //是否结束
-				stopTimeH: 0, //小时
-				stopTimeM: 0, //分钟
-				stopTimeS: 0 //秒钟
-			},
-			// 拼团数据保存
-			pink: {
-				id: '', //拼团编号
-				uid: '', //用户编号
-				people: '', //拼团人数
-				price: '', //拼团价格
-				stop_time: '', //拼团结束时间
-				nickname: '', //团长昵称
-				avatar: '', //团长头像
-				count: '', //拼团剩余人数
-				h: '', //时
-				i: '', //分
-				s: '' //秒
-			}
-		};
-	},
-	async onLoad(options) {
-		let obj = this;
-		//保存商品id
-		this.goodsid = options.id;
-		// 判断有无人邀请
-		if (options.spread) {
-			// 存储邀请人
-			uni.setStorageSync('spread', options.spread);
-		}
-		// 判断是否为秒杀商品
-		if (options.type == 1) {
-			// 保存商品类型
-			this.goodsType = 1;
-			// 保存结束时间
-			this.seckillObj.stopTime = options.stoptime;
-			// 获取当前时间毫秒数
-			let stoptime = options.stoptime * 1000;
-			// 获取当前时间
-			let acitonTime = new Date();
-			// 判断当前时间是否大于结束时间
+import { timeComputed } from '@/utils/rocessor.js';
+// #ifdef H5
+import { weixindata, shareLoad } from '@/utils/wxAuthorized';
+import { mapState } from 'vuex';
+import weixinObj from '@/plugin/jweixin-module/index.js';
+// #endif
+export default {
+	components: {
+		uniNumberBox,
+		uniCountdown
+	},
+	filters: {
+		address(val) {
+			let str = '';
+			if (val) {
+				str = val[0] + ' ' + val[1];
+			}
+			return str;
+		}
+	},
+	data() {
+		return {
+			actionIntegral: '',
+			reply: '', //评论
+			type: 1, //默认支付方式add为
+			goodsNumber: 1, //购买数量
+			goodsid: '', //商品id
+			specClass: 'none', //显示隐藏弹窗
+			shareList: [], //分享列表
+			goodsObjact: {}, //保存商品数据
+			storeObjact: {}, //保存店铺数据
+			//图片循环
+			imgList: [],
+			specList: [],
+			// 对比对象
+			productValue: [],
+			actionPrice: 0, //默认选中商品价格
+			actionImage: '', //默认选中图片
+			uniqueId: '', //选中的商品分类
+			specSelected: [], //选中的分类
+			specSelectedName: '', //选中分类名称
+			goodsNumberMax: 0, //最大可购买数量
+			shopId: '', //商店id
+			//商店信息
+			shopInfo: {
+				logo: '',
+				title: ''
+			}, //商店信息
+			goodsType: 0, //商品类型1秒杀商品0为普通商品2为拼团商品
+			// 秒杀数据保存
+			seckillObj: {
+				stopTime: 0, //结束时间
+				stop: false, //是否结束
+				stopTimeH: 0, //小时
+				stopTimeM: 0, //分钟
+				stopTimeS: 0 //秒钟
+			},
+			// 拼团数据保存
+			pink: {
+				id: '', //拼团编号
+				uid: '', //用户编号
+				people: '', //拼团人数
+				price: '', //拼团价格
+				stop_time: '', //拼团结束时间
+				nickname: '', //团长昵称
+				avatar: '', //团长头像
+				count: '', //拼团剩余人数
+				h: '', //时
+				i: '', //分
+				s: '' //秒
+			}
+		};
+	},
+	async onLoad(options) {
+		let obj = this;
+		//保存商品id
+		this.goodsid = options.id;
+		// 判断有无人邀请
+		if (options.spread) {
+			// 存储邀请人
+			uni.setStorageSync('spread', options.spread);
+		}
+		// 判断是否为秒杀商品
+		if (options.type == 1) {
+			// 保存商品类型
+			this.goodsType = 1;
+			// 保存结束时间
+			this.seckillObj.stopTime = options.stoptime;
+			// 获取当前时间毫秒数
+			let stoptime = options.stoptime * 1000;
+			// 获取当前时间
+			let acitonTime = new Date();
+			// 判断当前时间是否大于结束时间
 			seckillGoods({}, this.goodsid).then(({ data }) => {
 				obj.list = data;
 				console.log(obj.list, '秒杀商品数据++++++++++');
@@ -285,7 +287,7 @@ export default {
 				let goods = data.storeInfo;
 				obj.goodsNumberMax = goods.num;
 				// console.log('obj.goodsNumberMin+++++++++',obj.goodsNumberMin)
-				console.log(goods.stop_time,"时间")
+				console.log(goods.stop_time, '时间');
 				const time = timeComputed(goods.stop_time);
 				obj.seckillObj = {
 					stop: time.tpye, //是否结束
@@ -293,7 +295,7 @@ export default {
 					stopTimeM: time.minutes, //分钟
 					stopTimeS: time.seconds //秒钟
 				};
-			
+
 				console.log(obj.seckillObj, '数据');
 				// console.log(obj.seckillObj,'obj.seckillObj++++++++++++++++++++++')
 				obj.goodsObjact = goods;
@@ -334,877 +336,876 @@ export default {
 					obj.shopId = data.mer_id; //保存商店id
 				}
 			});
-			
-		}
-		if (options.type == 2) {
-			// 保存当前拼团商品类型
-			this.goodsType = 2;
-			// 家在数据
-			this.groupGoods();
-			return;
-		}
-		if (this.goodsType == 0) {
-			// 加载普通商品详情
-			this.goodsDetail();
-		}
-	},
-	computed: {
-		// #ifdef H5
-		...mapState(['weichatObj', 'baseURL', 'urlFile']),
-		...mapState('user', ['userInfo'])
-		// #endif
-	},
-	methods: {
-		navTo(url) {
-			uni.navigateTo({
-				url
-			});
-		},
-		// 转换字符串为数字
-		moneyNum: function(value) {
-			return +value;
-		},
-		navToProductGoods() {
-			uni.redirectTo({
-				url: '/pages/product/product?id=' + this.goodsObjact.product_id
-			});
-		},
-		// 获取商品信息
-		goodsDetail() {
-			let obj = this;
-			goodsDetail({}, this.goodsid).then(function({ data }) {
-				obj.actionIntegral = data.integral;
-				let goods = data.storeInfo;
-				let store_info = data.system_store; // 保存店铺信息
-				console.log(store_info);
-				obj.storeObjact = store_info;
-				obj.goodsObjact = goods;
-				obj.reply = data.reply; //保存评论列表
-				obj.imgList = goods.slider_image; //保存轮播图
-				obj.specList = data.productAttr; //保存分类列表
-				console.log(data.productAttr);
-				obj.productValue = data.productValue; //保存分类查询数据
-				obj.actionPrice = goods.price; //保存默认选中商品价格
-				obj.actionImage = goods.image_base; //保存默认选中商品价格
-				obj.goodsNumberMax = goods.stock; //保存默认选中最大可购买商品数量
-				obj.shopId = data.mer_id; //保存商店id
-				// 保存默认选中的对象
-				obj.specSelected = []; //初始化默认选择对象
-				for (let i = 0; i < obj.specList.length; i++) {
-					// 设置默认数据
-					let attrValue = obj.specList[i].attr_value[0];
-					attrValue.check = true;
-					obj.specSelected.push(attrValue.attr);
-				}
-
-				//保存默认选中的对象字符串名称
-				let str = obj.specSelected.join(',');
-				// 设置默认值
-				obj.actionImage = obj.productValue[str].image;
-				obj.uniqueId = obj.productValue[str].unique;
-				// #ifdef H5
-				obj.shareDate();
-				// #endif
-			});
-		},
-		// #ifdef H5
-		// 加载微信html5页面分享方法
-		shareDate() {
-			let obj = this;
-			// 保存分享人id链接
-			let url = window.location.href + '&spread=' + this.userInfo.uid;
-			// 判断是否微信浏览器
-			let bool = uni.getStorageSync('weichatBrowser') || '';
-			if (bool) {
-				// 过滤微信强制添加的链接地址
-				url = url.replace(/[\?,&]from=singlemessage/g, '');
-				let data = {
-					link: url, // 分享链接
-					imgUrl: obj.goodsObjact.image, // 分享图标
-					desc: obj.goodsObjact.store_info,
-					title: obj.goodsObjact.store_name,
-					success: function(e) {
-						console.log(e);
-					}
-				};
-				shareLoad(data);
-			}
-		},
-		// #endif
-		// 购买数量变化
-		numberChange(e) {
-			this.goodsNumber = e.number;
-		},
-		//规格弹窗开关
-		toggleSpec(str) {
-			if (this.specClass === 'show') {
-				this.specClass = 'hide';
-				setTimeout(() => {
-					this.specClass = 'none';
-				}, 250);
-			} else if (this.specClass === 'none') {
-				this.specClass = 'show';
-			}
-			// 保存当前购买类型
-			this.type = str;
-		},
-		//选择规格
+		}
+		if (options.type == 2) {
+			// 保存当前拼团商品类型
+			this.goodsType = 2;
+			// 家在数据
+			this.groupGoods();
+			return;
+		}
+		if (this.goodsType == 0) {
+			// 加载普通商品详情
+			this.goodsDetail();
+		}
+	},
+	computed: {
+		// #ifdef H5
+		...mapState(['weichatObj', 'baseURL', 'urlFile']),
+		...mapState('user', ['userInfo'])
+		// #endif
+	},
+	methods: {
+		navTo(url) {
+			uni.navigateTo({
+				url
+			});
+		},
+		// 转换字符串为数字
+		moneyNum: function(value) {
+			return +value;
+		},
+		navToProductGoods() {
+			uni.redirectTo({
+				url: '/pages/product/product?id=' + this.goodsObjact.product_id
+			});
+		},
+		// 获取商品信息
+		goodsDetail() {
+			let obj = this;
+			goodsDetail({}, this.goodsid).then(function({ data }) {
+				obj.actionIntegral = data.integral;
+				let goods = data.storeInfo;
+				let store_info = data.system_store; // 保存店铺信息
+				console.log(store_info);
+				obj.storeObjact = store_info;
+				obj.goodsObjact = goods;
+				obj.reply = data.reply; //保存评论列表
+				obj.imgList = goods.slider_image; //保存轮播图
+				obj.specList = data.productAttr; //保存分类列表
+				console.log(data.productAttr);
+				obj.productValue = data.productValue; //保存分类查询数据
+				obj.actionPrice = goods.price; //保存默认选中商品价格
+				obj.actionImage = goods.image_base; //保存默认选中商品价格
+				obj.goodsNumberMax = goods.stock; //保存默认选中最大可购买商品数量
+				obj.shopId = data.mer_id; //保存商店id
+				// 保存默认选中的对象
+				obj.specSelected = []; //初始化默认选择对象
+				for (let i = 0; i < obj.specList.length; i++) {
+					// 设置默认数据
+					let attrValue = obj.specList[i].attr_value[0];
+					attrValue.check = true;
+					obj.specSelected.push(attrValue.attr);
+				}
+
+				//保存默认选中的对象字符串名称
+				let str = obj.specSelected.join(',');
+				// 设置默认值
+				obj.actionImage = obj.productValue[str].image;
+				obj.uniqueId = obj.productValue[str].unique;
+				// #ifdef H5
+				obj.shareDate();
+				// #endif
+			});
+		},
+		// #ifdef H5
+		// 加载微信html5页面分享方法
+		shareDate() {
+			let obj = this;
+			// 保存分享人id链接
+			let url = window.location.href + '&spread=' + this.userInfo.uid;
+			// 判断是否微信浏览器
+			let bool = uni.getStorageSync('weichatBrowser') || '';
+			if (bool) {
+				// 过滤微信强制添加的链接地址
+				url = url.replace(/[\?,&]from=singlemessage/g, '');
+				let data = {
+					link: url, // 分享链接
+					imgUrl: obj.goodsObjact.image, // 分享图标
+					desc: obj.goodsObjact.store_info,
+					title: obj.goodsObjact.store_name,
+					success: function(e) {
+						console.log(e);
+					}
+				};
+				shareLoad(data);
+			}
+		},
+		// #endif
+		// 购买数量变化
+		numberChange(e) {
+			this.goodsNumber = e.number;
+		},
+		//规格弹窗开关
+		toggleSpec(str) {
+			if (this.specClass === 'show') {
+				this.specClass = 'hide';
+				setTimeout(() => {
+					this.specClass = 'none';
+				}, 250);
+			} else if (this.specClass === 'none') {
+				this.specClass = 'show';
+			}
+			// 保存当前购买类型
+			this.type = str;
+		},
+		//选择规格
 		selectSpec(item, arr, ind) {
-			arr.attr_value.forEach(function(e) {
-				e.check = false;
-			});
-			item.check = true;
-			this.specSelected[ind] = item.attr;
-			let str = this.specSelected.join(',');
-			this.specSelectedName = this.specSelected.join(' ');
-				console.log(this.productValue,str)
+			arr.attr_value.forEach(function(e) {
+				e.check = false;
+			});
+			item.check = true;
+			this.specSelected[ind] = item.attr;
+			let str = this.specSelected.join(',');
+			this.specSelectedName = this.specSelected.join(' ');
+			console.log(this.productValue, str);
 			if (this.productValue[str]) {
 				let data = this.productValue[str];
-				this.actionIntegral = data.integral
-				this.actionPrice = data.price;
-				this.goodsNumberMax = data.stock;
-				this.actionImage = data.image;
-				this.uniqueId = data.unique;
-			}
-		},
-		//分享
-		share() {
-			this.$refs.share.toggleMask();
-		},
-		//收藏
-		toFavorite(item) {
-			let obj = this;
-			item.userCollect = !item.userCollect;
-			if (!item.userCollect) {
-				collectDel({ id: obj.goodsid, category: 'product' }).then(function(e) {
-					uni.showToast({
-						title: '成功取消收藏',
-						type: 'top',
-						duration: 1500
-					});
-				});
-			} else {
-				collectAdd({ id: obj.goodsid, category: 'product' }).then(function(e) {
-					uni.showToast({
-						title: '成功加入收藏',
-						type: 'top',
-						duration: 1500
-					});
-				});
-			}
-		},
-		// 立即购买
-		buy() {
-			let obj = this;
-			let data = {
-				cartNum: obj.goodsNumber, //商品数量
-				uniqueId: obj.uniqueId, //商品标签
-				new: '1', //商品是否新增加到购物车1为不加入0为加入
-				mer_id: obj.shopId
-				// type: 0,//0为余额支付  1为消费券支付 2为积分支付
-			};
-			if (obj.type == 2) {
-				data.new = 0;
-			}
-			if (obj.goodsType == 0) {
-				data.productId = obj.goodsid; //商品编号
-			}
-			// 判断是否为秒杀商品
-			if (obj.goodsType == 1) {
-				data.secKillId = obj.goodsid; //秒杀商品编号
-				data.productId = obj.goodsObjact.product_id; //商品编号
-				// 判断是否秒杀已经结束
-				if (obj.seckillObj.stop) {
-					uni.showModal({
-						title: '提示',
-						content: '当前活动已经结束',
-						showCancel: false
-					});
-					return;
-				}
-			}
-			// 判断是否为拼团商品
-			if (obj.goodsType == 2) {
-				data.combinationId = obj.goodsid; //拼团编号
-				data.productId = obj.goodsObjact.product_id; //商品编号
-			}
-			cartAdd(data)
-				.then(function({ data }) {
-					if (obj.type == 1) {
-						// 跳转到支付页
-						uni.navigateTo({
-							url: '/pages/order/createOrder?id=' + data.cartId + '&goodsType=' + obj.goodsType
-						});
-					}
-					if (obj.type == 2) {
-						uni.showToast({
-							title: '成功加入购物车',
-							type: 'top',
-							duration: 2000
-						});
-						obj.toggleSpec();
-					}
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		stopPrevent() {}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-}
-//秒杀底部高度
-.seckillBottom {
-	height: 110rpx;
-}
-// 文章页底部高度撑开
-.contentBottomHeight {
-	height: 110rpx;
-}
-//默认商品底部高度
-.goodsBottom {
-	height: 160rpx;
-}
-.iconenter {
-	font-size: $font-base + 2rpx;
-	color: #888;
-}
-.carousel {
-	/* #ifdef APP-PLUS */
-	padding-top: var(--status-bar-height);
-	/* #endif */
-	height: 722rpx;
-	position: relative;
-	swiper {
-		height: 100%;
-	}
-	.image-wrapper {
-		width: 100%;
-		height: 100%;
-	}
-	.swiper-item {
-		display: flex;
-		justify-content: center;
-		align-content: center;
-		// height: 750rpx;
-		height: 710rpx;
-		overflow: hidden;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-}
-// 秒杀
-.seckill-box-title {
-	background: linear-gradient(90deg, rgba(239, 78, 81, 1) 0%, rgba(244, 113, 59, 1) 100%) !important;
-	.price,
-	.price-tip,
-	.timeStop,
-	.m-price {
-		color: #ffffff !important;
-	}
-	.price-tip {
-		font-size: $font-base;
-	}
-	.price {
-		font-size: 40rpx !important;
-		font-weight: bold;
-	}
-	.timeStop {
-	}
-}
-// 底部拼团、秒杀支付按钮
-.goods-pay-box {
-	position: fixed;
-	left: 0;
-	bottom: 0;
-	z-index: 95;
-	width: 750rpx;
-	height: 100rpx;
-	line-height: 1;
-	color: #ffffff;
-	text-align: center;
-	font-size: $font-lg;
-	.bgLine {
-		background: linear-gradient(90deg, rgba(239, 78, 81, 1) 0%, rgba(244, 113, 59, 1) 100%);
-	}
-	// 拼团支付按钮
-	.goods-pay {
-		display: flex;
-		align-content: center;
-		flex-wrap: wrap;
-		justify-content: center;
-		.goods-buttom,
-		.goods-buttom-money {
-			width: 100%;
-		}
-		.goods-buttom-money {
-			font-size: $font-base;
-		}
-	}
-	.goods-pay-stop,
-	.goods-pay {
-		padding: 15rpx 0;
-		height: 100%;
-		width: 100%;
-	}
-	.goods-pay-stop {
-		background: $color-gray;
-		line-height: 70rpx;
-	}
-}
-/* 标题简介 */
-.introduce-section {
-	background: #fff;
-	padding: 20rpx 30rpx;
-	.title {
-		font-size: 32rpx;
-		color: $font-color-dark;
-		height: 50rpx;
-		line-height: 50rpx;
-	}
-	.price-box {
-		display: flex;
-		align-items: baseline;
-		height: 64rpx;
-		padding: 10rpx 0;
-		font-size: 26rpx;
-		color: #FD3B39;
-	}
-	.price {
-		font-size: $font-lg + 2rpx;
-	}
-	.m-price {
-		margin: 0 12rpx;
-		color: $font-color-light;
-		text-decoration: line-through;
-	}
-	.coupon-tip {
-		align-items: center;
-		padding: 4rpx 10rpx;
-		background: $uni-color-primary;
-		font-size: $font-sm;
-		color: #fff;
-		border-radius: 6rpx;
-		line-height: 1;
-		transform: translateY(-4rpx);
-	}
-	.bot-row {
-		display: flex;
-		align-items: center;
-		height: 50rpx;
-		font-size: $font-sm;
-		color: $font-color-light;
-		text {
-			flex: 1;
-		}
-	}
-}
-/* 分享 */
-.share-section {
-	display: flex;
-	align-items: center;
-	color: $font-color-base;
-	background: linear-gradient(left, #fdf5f6, #fbebf6);
-	padding: 12rpx 30rpx;
-	.share-icon {
-		display: flex;
-		align-items: center;
-		width: 70rpx;
-		height: 30rpx;
-		line-height: 1;
-		border: 1px solid $uni-color-primary;
-		border-radius: 4rpx;
-		position: relative;
-		overflow: hidden;
-		font-size: 22rpx;
-		color: $uni-color-primary;
-		&:after {
-			content: '';
-			width: 50rpx;
-			height: 50rpx;
-			border-radius: 50%;
-			left: -20rpx;
-			top: -12rpx;
-			position: absolute;
-			background: $uni-color-primary;
-		}
-	}
-	.iconfavorfill {
-		position: relative;
-		z-index: 1;
-		font-size: 24rpx;
-		margin-left: 2rpx;
-		margin-right: 10rpx;
-		color: #fff;
-		line-height: 1;
-	}
-	.tit {
-		font-size: $font-base;
-		margin-left: 10rpx;
-	}
-	.iconprompt {
-		padding: 10rpx;
-		font-size: 30rpx;
-		line-height: 1;
-	}
-	.share-btn {
-		flex: 1;
-		text-align: right;
-		font-size: $font-sm;
-		color: $uni-color-primary;
-	}
-	.iconenter {
-		font-size: $font-sm;
-		margin-left: 4rpx;
-		color: $uni-color-primary;
-	}
-}
-
-.c-list {
-	margin-top: 20rpx;
-	font-size: $font-sm + 2rpx;
-	color: $font-color-base;
-	background: #fff;
-	.c-row {
-		display: flex;
-		align-items: center;
-		padding: 20rpx 30rpx;
-		position: relative;
-	}
-	.tit {
-		width: 140rpx;
-	}
-	.con {
-		flex: 1;
-		color: $font-color-dark;
-		.selected-text {
-			margin-right: 10rpx;
-			.num {
-				color: #FD3B39;
-			}
-		}
-	}
-	.bz-list {
-		height: 40rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-dark;
-		text {
-			display: inline-block;
-			margin-right: 30rpx;
-		}
-	}
-	.con-list {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		color: $font-color-dark;
-		line-height: 40rpx;
-	}
-	.red {
-		color: $uni-color-primary;
-	}
-}
-
-/* 评价 */
-.eva-section {
-	display: flex;
-	flex-direction: column;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	margin-top: 16rpx;
-	.e-header {
-		display: flex;
-		align-items: center;
-		height: 70rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-light;
-		.tit {
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			margin-right: 4rpx;
-		}
-		.tip {
-			flex: 1;
-			text-align: right;
-		}
-		.iconenter {
-			margin-left: 10rpx;
-		}
-	}
-}
-.eva-box {
-	display: flex;
-	padding: 20rpx 0;
-	.portrait {
-		flex-shrink: 0;
-		width: 80rpx;
-		height: 80rpx;
-		border-radius: 100px;
-	}
-	.right {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		font-size: $font-base;
-		color: $font-color-base;
-		padding-left: 26rpx;
-		.con {
-			font-size: $font-base;
-			color: $font-color-dark;
-			padding: 20rpx 0;
-		}
-		.bot {
-			display: flex;
-			justify-content: space-between;
-			font-size: $font-sm;
-			color: $font-color-light;
-		}
-	}
-}
-
-.eva-boxs {
-	width: 100%;
-	overflow: hidden;
-	padding: 10px 28rpx;
-	background: #f4f4f4;
-	border-radius: 12rpx;
-	font-size: $font-sm + 2rpx;
-	color: #333;
-	.portrait {
-		flex-shrink: 0;
-		width: 80rpx;
-		height: 80rpx;
-		border-radius: 100px;
-	}
-	.right {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		font-size: $font-base;
-		color: $font-color-base;
-		.con {
-			font-size: $font-base;
-			color: $font-color-dark;
-		}
-		.bot {
-			display: flex;
-			justify-content: space-between;
-			font-size: $font-sm;
-			color: $font-color-light;
-		}
-	}
-}
-/*  详情 */
-.detail-desc {
-	background: #fff;
-	margin-top: 16rpx;
-	/deep/ img {
-		max-width: 100% !important;
-		display: inline !important;
-	}
-	/deep/ div {
-		max-width: 100% !important;
-	}
-	.d-header {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 80rpx;
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-		position: relative;
-
-		text {
-			padding: 0 20rpx;
-			background: #fff;
-			position: relative;
-			z-index: 1;
-		}
-		&:after {
-			position: absolute;
-			left: 50%;
-			top: 50%;
-			transform: translateX(-50%);
-			width: 300rpx;
-			height: 0;
-			content: '';
-			border-bottom: 1px solid #ccc;
-		}
-	}
-}
-
-/* 规格选择弹窗 */
-.attr-content {
-	padding: 10rpx 0 0;
-	.a-t {
-		padding: 0 30rpx;
-		display: flex;
-		image {
-			width: 170rpx;
-			height: 170rpx;
-			flex-shrink: 0;
-			border-radius: 8rpx;
-		}
-		.right {
-			display: flex;
-			flex-direction: column;
-			padding-left: 24rpx;
-			font-size: $font-sm + 2rpx;
-			color: $font-color-base;
-			line-height: 42rpx;
-			.good-name {
-				padding-top: 20rpx;
-				max-width: 320rpx;
-				font-size: 30rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #1d2023;
-				line-height: 42rpx;
-				margin-bottom: 15rpx;
-			}
-			.price {
-				font-size: 40rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #ff6f0f;
-				// font-size: $font-lg;
-				// color: $uni-color-primary;
-				// margin-bottom: 10rpx;
-			}
-			.selected-text {
-				margin-right: 10rpx;
-			}
-		}
-	}
-	.attr-list {
-		display: flex;
-		flex-direction: column;
-		font-size: $font-base + 2rpx;
-		color: $font-color-base;
-		padding-top: 30rpx;
-		padding-left: 40rpx;
-		padding-right: 30rpx;
-	}
-	.item-list {
-		padding: 20rpx 0 0;
-		display: flex;
-		flex-wrap: wrap;
-		.tit {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			background: #eee;
-			// margin-left: 10rpx;
-			margin-right: 20rpx;
-			margin-bottom: 20rpx;
-			border-radius: 100rpx;
-			min-width: 60rpx;
-			height: 60rpx;
-			padding: 0 20rpx;
-			font-size: $font-base;
-			color: $font-color-dark;
-		}
-		.selected {
-			background: #fbebee;
-			color: $uni-color-primary;
-		}
-	}
-}
-
-/*  弹出层 */
-.popup {
-	position: fixed;
-	left: 0;
-	top: 0;
-	right: 0;
-	bottom: 0;
-	z-index: 99;
-
-	&.show {
-		display: block;
-		.mask {
-			animation: showPopup 0.2s linear both;
-		}
-		.layer {
-			animation: showLayer 0.2s linear both;
-		}
-	}
-	&.hide {
-		.mask {
-			animation: hidePopup 0.2s linear both;
-		}
-		.layer {
-			animation: hideLayer 0.2s linear both;
-		}
-	}
-	&.none {
-		display: none;
-	}
-	.mask {
-		position: fixed;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		z-index: 1;
-		background-color: rgba(0, 0, 0, 0.4);
-	}
-	.layer {
-		position: fixed;
-		z-index: 99;
-		bottom: 0;
-		width: 100%;
-		min-height: 30vh;
-		border-radius: 10rpx 10rpx 0 0;
-		background-color: #fff;
-		.btn {
-			position: absolute;
-			bottom: 0;
-			width: 750rpx;
-			height: 98rpx;
-			background: #FE5B38;
-			line-height: 98rpx;
-			// background: $uni-color-primary;
-			font-size: $font-base + 2rpx;
-			color: #fff;
-		}
-	}
-	@keyframes showPopup {
-		0% {
-			opacity: 0;
-		}
-		100% {
-			opacity: 1;
-		}
-	}
-	@keyframes hidePopup {
-		0% {
-			opacity: 1;
-		}
-		100% {
-			opacity: 0;
-		}
-	}
-	@keyframes showLayer {
-		0% {
-			transform: translateY(120%);
-		}
-		100% {
-			transform: translateY(0%);
-		}
-	}
-	@keyframes hideLayer {
-		0% {
-			transform: translateY(0);
-		}
-		100% {
-			transform: translateY(120%);
-		}
-	}
-}
-
-/* 底部操作菜单 */
-.page-bottom {
-	position: fixed;
-	left: 0rpx;
-	bottom: 0rpx;
-	z-index: 95;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	width: 750rpx;
-	height: 98rpx;
-	background: rgba(255, 255, 255, 0.9);
-	box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
-	// border-radius: 16rpx;
-	.p-b-btn {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-		font-size: $font-sm;
-		color: $font-color-base;
-		width: 100rpx;
-		height: 98rpx;
-		.iconfont {
-			font-size: 40rpx;
-			line-height: 48rpx;
-			color: $font-color-light;
-		}
-		&.active,
-		&.active .iconfont {
-			color: $uni-color-primary;
-		}
-		.icon-fenxiang2 {
-			font-size: 42rpx;
-			transform: translateY(-2rpx);
-		}
-		.iconlikefill {
-			font-size: 46rpx;
-		}
-	}
-	.action-btn-group {
-		display: flex;
-		height: 98rpx;
-		// border-radius: 100px;
-		overflow: hidden;
-		// margin-left: 20rpx;
-		position: relative;
-		// &:after {
-		// 	content: '';
-		// 	position: absolute;
-		// 	top: 50%;
-		// 	right: 50%;
-		// 	transform: translateY(-50%);
-		// 	height: 28rpx;
-		// 	width: 0;
-		// 	border-right: 1px solid rgba(255, 255, 255, 0.5);
-		// }
-		.action-btn {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			width: 375rpx;
-			height: 100%;
-			font-size: 34rpx;
-			padding: 0;
-			border-radius: 0;
-			// background: transparent;
-			background: #ffb238;
-			&.buy-now-btn {
-				background-color: #ffb238;
-			}
-			&.add-cart-btn {
-				background: #FD3B39;
-			}
-		}
-	}
-}
-// 商店头
-.shop-box {
-	background-color: #ffffff;
-	margin-top: 20rpx;
-	margin-bottom: 10rpx;
-	padding: 20rpx;
-	.shop-img {
-		border-radius: 300rpx;
-		height: 80rpx;
-		width: 80rpx;
-		margin-right: 20rpx;
-	}
-	.shop-button {
-		border-radius: 100rpx;
-		padding: 10rpx 20rpx;
-		color: $color-red;
-		border: 1px solid $color-red;
-		font-size: $font-lg;
-		line-height: 1;
-	}
-}
+				this.actionIntegral = data.integral;
+				this.actionPrice = data.price;
+				this.goodsNumberMax = data.stock;
+				this.actionImage = data.image;
+				this.uniqueId = data.unique;
+			}
+		},
+		//分享
+		share() {
+			this.$refs.share.toggleMask();
+		},
+		//收藏
+		toFavorite(item) {
+			let obj = this;
+			item.userCollect = !item.userCollect;
+			if (!item.userCollect) {
+				collectDel({ id: obj.goodsid, category: 'product' }).then(function(e) {
+					uni.showToast({
+						title: '成功取消收藏',
+						type: 'top',
+						duration: 1500
+					});
+				});
+			} else {
+				collectAdd({ id: obj.goodsid, category: 'product' }).then(function(e) {
+					uni.showToast({
+						title: '成功加入收藏',
+						type: 'top',
+						duration: 1500
+					});
+				});
+			}
+		},
+		// 立即购买
+		buy() {
+			let obj = this;
+			let data = {
+				cartNum: obj.goodsNumber, //商品数量
+				uniqueId: obj.uniqueId, //商品标签
+				new: '1', //商品是否新增加到购物车1为不加入0为加入
+				mer_id: obj.shopId
+				// type: 0,//0为余额支付  1为消费券支付 2为积分支付
+			};
+			if (obj.type == 2) {
+				data.new = 0;
+			}
+			if (obj.goodsType == 0) {
+				data.productId = obj.goodsid; //商品编号
+			}
+			// 判断是否为秒杀商品
+			if (obj.goodsType == 1) {
+				data.secKillId = obj.goodsid; //秒杀商品编号
+				data.productId = obj.goodsObjact.product_id; //商品编号
+				// 判断是否秒杀已经结束
+				if (obj.seckillObj.stop) {
+					uni.showModal({
+						title: '提示',
+						content: '当前活动已经结束',
+						showCancel: false
+					});
+					return;
+				}
+			}
+			// 判断是否为拼团商品
+			if (obj.goodsType == 2) {
+				data.combinationId = obj.goodsid; //拼团编号
+				data.productId = obj.goodsObjact.product_id; //商品编号
+			}
+			cartAdd(data)
+				.then(function({ data }) {
+					if (obj.type == 1) {
+						// 跳转到支付页
+						uni.navigateTo({
+							url: '/pages/order/createOrder?id=' + data.cartId + '&goodsType=' + obj.goodsType
+						});
+					}
+					if (obj.type == 2) {
+						uni.showToast({
+							title: '成功加入购物车',
+							type: 'top',
+							duration: 2000
+						});
+						obj.toggleSpec();
+					}
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		stopPrevent() {}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	background: $page-color-base;
+}
+//秒杀底部高度
+.seckillBottom {
+	height: 110rpx;
+}
+// 文章页底部高度撑开
+.contentBottomHeight {
+	height: 110rpx;
+}
+//默认商品底部高度
+.goodsBottom {
+	height: 160rpx;
+}
+.iconenter {
+	font-size: $font-base + 2rpx;
+	color: #888;
+}
+.carousel {
+	/* #ifdef APP-PLUS */
+	padding-top: var(--status-bar-height);
+	/* #endif */
+	height: 722rpx;
+	position: relative;
+	swiper {
+		height: 100%;
+	}
+	.image-wrapper {
+		width: 100%;
+		height: 100%;
+	}
+	.swiper-item {
+		display: flex;
+		justify-content: center;
+		align-content: center;
+		// height: 750rpx;
+		height: 710rpx;
+		overflow: hidden;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+}
+// 秒杀
+.seckill-box-title {
+	background: linear-gradient(90deg, rgba(239, 78, 81, 1) 0%, rgba(244, 113, 59, 1) 100%) !important;
+	.price,
+	.price-tip,
+	.timeStop,
+	.m-price {
+		color: #ffffff !important;
+	}
+	.price-tip {
+		font-size: $font-base;
+	}
+	.price {
+		font-size: 40rpx !important;
+		font-weight: bold;
+	}
+	.timeStop {
+	}
+}
+// 底部拼团、秒杀支付按钮
+.goods-pay-box {
+	position: fixed;
+	left: 0;
+	bottom: 0;
+	z-index: 95;
+	width: 750rpx;
+	height: 100rpx;
+	line-height: 1;
+	color: #ffffff;
+	text-align: center;
+	font-size: $font-lg;
+	.bgLine {
+		background: linear-gradient(90deg, rgba(239, 78, 81, 1) 0%, rgba(244, 113, 59, 1) 100%);
+	}
+	// 拼团支付按钮
+	.goods-pay {
+		display: flex;
+		align-content: center;
+		flex-wrap: wrap;
+		justify-content: center;
+		.goods-buttom,
+		.goods-buttom-money {
+			width: 100%;
+		}
+		.goods-buttom-money {
+			font-size: $font-base;
+		}
+	}
+	.goods-pay-stop,
+	.goods-pay {
+		padding: 15rpx 0;
+		height: 100%;
+		width: 100%;
+	}
+	.goods-pay-stop {
+		background: $color-gray;
+		line-height: 70rpx;
+	}
+}
+/* 标题简介 */
+.introduce-section {
+	background: #fff;
+	padding: 20rpx 30rpx;
+	.title {
+		font-size: 32rpx;
+		color: $font-color-dark;
+		height: 50rpx;
+		line-height: 50rpx;
+	}
+	.price-box {
+		display: flex;
+		align-items: baseline;
+		height: 64rpx;
+		padding: 10rpx 0;
+		font-size: 26rpx;
+		color: #fd3b39;
+	}
+	.price {
+		font-size: $font-lg + 2rpx;
+	}
+	.m-price {
+		margin: 0 12rpx;
+		color: $font-color-light;
+		text-decoration: line-through;
+	}
+	.coupon-tip {
+		align-items: center;
+		padding: 4rpx 10rpx;
+		background: $uni-color-primary;
+		font-size: $font-sm;
+		color: #fff;
+		border-radius: 6rpx;
+		line-height: 1;
+		transform: translateY(-4rpx);
+	}
+	.bot-row {
+		display: flex;
+		align-items: center;
+		height: 50rpx;
+		font-size: $font-sm;
+		color: $font-color-light;
+		text {
+			flex: 1;
+		}
+	}
+}
+/* 分享 */
+.share-section {
+	display: flex;
+	align-items: center;
+	color: $font-color-base;
+	background: linear-gradient(left, #fdf5f6, #fbebf6);
+	padding: 12rpx 30rpx;
+	.share-icon {
+		display: flex;
+		align-items: center;
+		width: 70rpx;
+		height: 30rpx;
+		line-height: 1;
+		border: 1px solid $uni-color-primary;
+		border-radius: 4rpx;
+		position: relative;
+		overflow: hidden;
+		font-size: 22rpx;
+		color: $uni-color-primary;
+		&:after {
+			content: '';
+			width: 50rpx;
+			height: 50rpx;
+			border-radius: 50%;
+			left: -20rpx;
+			top: -12rpx;
+			position: absolute;
+			background: $uni-color-primary;
+		}
+	}
+	.iconfavorfill {
+		position: relative;
+		z-index: 1;
+		font-size: 24rpx;
+		margin-left: 2rpx;
+		margin-right: 10rpx;
+		color: #fff;
+		line-height: 1;
+	}
+	.tit {
+		font-size: $font-base;
+		margin-left: 10rpx;
+	}
+	.iconprompt {
+		padding: 10rpx;
+		font-size: 30rpx;
+		line-height: 1;
+	}
+	.share-btn {
+		flex: 1;
+		text-align: right;
+		font-size: $font-sm;
+		color: $uni-color-primary;
+	}
+	.iconenter {
+		font-size: $font-sm;
+		margin-left: 4rpx;
+		color: $uni-color-primary;
+	}
+}
+
+.c-list {
+	margin-top: 20rpx;
+	font-size: $font-sm + 2rpx;
+	color: $font-color-base;
+	background: #fff;
+	.c-row {
+		display: flex;
+		align-items: center;
+		padding: 20rpx 30rpx;
+		position: relative;
+	}
+	.tit {
+		width: 140rpx;
+	}
+	.con {
+		flex: 1;
+		color: $font-color-dark;
+		.selected-text {
+			margin-right: 10rpx;
+			.num {
+				color: #fd3b39;
+			}
+		}
+	}
+	.bz-list {
+		height: 40rpx;
+		font-size: $font-sm + 2rpx;
+		color: $font-color-dark;
+		text {
+			display: inline-block;
+			margin-right: 30rpx;
+		}
+	}
+	.con-list {
+		flex: 1;
+		display: flex;
+		flex-direction: column;
+		color: $font-color-dark;
+		line-height: 40rpx;
+	}
+	.red {
+		color: $uni-color-primary;
+	}
+}
+
+/* 评价 */
+.eva-section {
+	display: flex;
+	flex-direction: column;
+	padding: 20rpx 30rpx;
+	background: #fff;
+	margin-top: 16rpx;
+	.e-header {
+		display: flex;
+		align-items: center;
+		height: 70rpx;
+		font-size: $font-sm + 2rpx;
+		color: $font-color-light;
+		.tit {
+			font-size: $font-base + 2rpx;
+			color: $font-color-dark;
+			margin-right: 4rpx;
+		}
+		.tip {
+			flex: 1;
+			text-align: right;
+		}
+		.iconenter {
+			margin-left: 10rpx;
+		}
+	}
+}
+.eva-box {
+	display: flex;
+	padding: 20rpx 0;
+	.portrait {
+		flex-shrink: 0;
+		width: 80rpx;
+		height: 80rpx;
+		border-radius: 100px;
+	}
+	.right {
+		flex: 1;
+		display: flex;
+		flex-direction: column;
+		font-size: $font-base;
+		color: $font-color-base;
+		padding-left: 26rpx;
+		.con {
+			font-size: $font-base;
+			color: $font-color-dark;
+			padding: 20rpx 0;
+		}
+		.bot {
+			display: flex;
+			justify-content: space-between;
+			font-size: $font-sm;
+			color: $font-color-light;
+		}
+	}
+}
+
+.eva-boxs {
+	width: 100%;
+	overflow: hidden;
+	padding: 10px 28rpx;
+	background: #f4f4f4;
+	border-radius: 12rpx;
+	font-size: $font-sm + 2rpx;
+	color: #333;
+	.portrait {
+		flex-shrink: 0;
+		width: 80rpx;
+		height: 80rpx;
+		border-radius: 100px;
+	}
+	.right {
+		flex: 1;
+		display: flex;
+		flex-direction: column;
+		font-size: $font-base;
+		color: $font-color-base;
+		.con {
+			font-size: $font-base;
+			color: $font-color-dark;
+		}
+		.bot {
+			display: flex;
+			justify-content: space-between;
+			font-size: $font-sm;
+			color: $font-color-light;
+		}
+	}
+}
+/*  详情 */
+.detail-desc {
+	background: #fff;
+	margin-top: 16rpx;
+	/deep/ img {
+		max-width: 100% !important;
+		display: inline !important;
+	}
+	/deep/ div {
+		max-width: 100% !important;
+	}
+	.d-header {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 80rpx;
+		font-size: $font-base + 2rpx;
+		color: $font-color-dark;
+		position: relative;
+
+		text {
+			padding: 0 20rpx;
+			background: #fff;
+			position: relative;
+			z-index: 1;
+		}
+		&:after {
+			position: absolute;
+			left: 50%;
+			top: 50%;
+			transform: translateX(-50%);
+			width: 300rpx;
+			height: 0;
+			content: '';
+			border-bottom: 1px solid #ccc;
+		}
+	}
+}
+
+/* 规格选择弹窗 */
+.attr-content {
+	padding: 10rpx 0 0;
+	.a-t {
+		padding: 0 30rpx;
+		display: flex;
+		image {
+			width: 170rpx;
+			height: 170rpx;
+			flex-shrink: 0;
+			border-radius: 8rpx;
+		}
+		.right {
+			display: flex;
+			flex-direction: column;
+			padding-left: 24rpx;
+			font-size: $font-sm + 2rpx;
+			color: $font-color-base;
+			line-height: 42rpx;
+			.good-name {
+				padding-top: 20rpx;
+				max-width: 320rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #1d2023;
+				line-height: 42rpx;
+				margin-bottom: 15rpx;
+			}
+			.price {
+				font-size: 40rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #ff6f0f;
+				// font-size: $font-lg;
+				// color: $uni-color-primary;
+				// margin-bottom: 10rpx;
+			}
+			.selected-text {
+				margin-right: 10rpx;
+			}
+		}
+	}
+	.attr-list {
+		display: flex;
+		flex-direction: column;
+		font-size: $font-base + 2rpx;
+		color: $font-color-base;
+		padding-top: 30rpx;
+		padding-left: 40rpx;
+		padding-right: 30rpx;
+	}
+	.item-list {
+		padding: 20rpx 0 0;
+		display: flex;
+		flex-wrap: wrap;
+		.tit {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			background: #eee;
+			// margin-left: 10rpx;
+			margin-right: 20rpx;
+			margin-bottom: 20rpx;
+			border-radius: 100rpx;
+			min-width: 60rpx;
+			height: 60rpx;
+			padding: 0 20rpx;
+			font-size: $font-base;
+			color: $font-color-dark;
+		}
+		.selected {
+			background: #fbebee;
+			color: $uni-color-primary;
+		}
+	}
+}
+
+/*  弹出层 */
+.popup {
+	position: fixed;
+	left: 0;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	z-index: 99;
+
+	&.show {
+		display: block;
+		.mask {
+			animation: showPopup 0.2s linear both;
+		}
+		.layer {
+			animation: showLayer 0.2s linear both;
+		}
+	}
+	&.hide {
+		.mask {
+			animation: hidePopup 0.2s linear both;
+		}
+		.layer {
+			animation: hideLayer 0.2s linear both;
+		}
+	}
+	&.none {
+		display: none;
+	}
+	.mask {
+		position: fixed;
+		top: 0;
+		width: 100%;
+		height: 100%;
+		z-index: 1;
+		background-color: rgba(0, 0, 0, 0.4);
+	}
+	.layer {
+		position: fixed;
+		z-index: 99;
+		bottom: 0;
+		width: 100%;
+		min-height: 30vh;
+		border-radius: 10rpx 10rpx 0 0;
+		background-color: #fff;
+		.btn {
+			position: absolute;
+			bottom: 0;
+			width: 750rpx;
+			height: 98rpx;
+			background: #fe5b38;
+			line-height: 98rpx;
+			// background: $uni-color-primary;
+			font-size: $font-base + 2rpx;
+			color: #fff;
+		}
+	}
+	@keyframes showPopup {
+		0% {
+			opacity: 0;
+		}
+		100% {
+			opacity: 1;
+		}
+	}
+	@keyframes hidePopup {
+		0% {
+			opacity: 1;
+		}
+		100% {
+			opacity: 0;
+		}
+	}
+	@keyframes showLayer {
+		0% {
+			transform: translateY(120%);
+		}
+		100% {
+			transform: translateY(0%);
+		}
+	}
+	@keyframes hideLayer {
+		0% {
+			transform: translateY(0);
+		}
+		100% {
+			transform: translateY(120%);
+		}
+	}
+}
+
+/* 底部操作菜单 */
+.page-bottom {
+	position: fixed;
+	left: 0rpx;
+	bottom: 0rpx;
+	z-index: 95;
+	display: flex;
+	justify-content: center;
+	align-items: center;
+	width: 750rpx;
+	height: 98rpx;
+	background: rgba(255, 255, 255, 0.9);
+	box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
+	// border-radius: 16rpx;
+	.p-b-btn {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		font-size: $font-sm;
+		color: $font-color-base;
+		width: 100rpx;
+		height: 98rpx;
+		.iconfont {
+			font-size: 40rpx;
+			line-height: 48rpx;
+			color: $font-color-light;
+		}
+		&.active,
+		&.active .iconfont {
+			color: $uni-color-primary;
+		}
+		.icon-fenxiang2 {
+			font-size: 42rpx;
+			transform: translateY(-2rpx);
+		}
+		.iconlikefill {
+			font-size: 46rpx;
+		}
+	}
+	.action-btn-group {
+		display: flex;
+		height: 98rpx;
+		// border-radius: 100px;
+		overflow: hidden;
+		// margin-left: 20rpx;
+		position: relative;
+		// &:after {
+		// 	content: '';
+		// 	position: absolute;
+		// 	top: 50%;
+		// 	right: 50%;
+		// 	transform: translateY(-50%);
+		// 	height: 28rpx;
+		// 	width: 0;
+		// 	border-right: 1px solid rgba(255, 255, 255, 0.5);
+		// }
+		.action-btn {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 750rpx;
+			height: 100%;
+			font-size: 34rpx;
+			padding: 0;
+			border-radius: 0;
+			// background: transparent;
+			background: #ffb238;
+			&.buy-now-btn {
+				background-color: #ffb238;
+			}
+			&.add-cart-btn {
+				background: #fd3b39;
+			}
+		}
+	}
+}
+// 商店头
+.shop-box {
+	background-color: #ffffff;
+	margin-top: 20rpx;
+	margin-bottom: 10rpx;
+	padding: 20rpx;
+	.shop-img {
+		border-radius: 300rpx;
+		height: 80rpx;
+		width: 80rpx;
+		margin-right: 20rpx;
+	}
+	.shop-button {
+		border-radius: 100rpx;
+		padding: 10rpx 20rpx;
+		color: $color-red;
+		border: 1px solid $color-red;
+		font-size: $font-lg;
+		line-height: 1;
+	}
+}
 </style>

+ 352 - 316
pages/public/login.vue

@@ -2,373 +2,409 @@
 	<view class="container">
 		<view class="container_text">
 			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
-			<view class="title-img"><image class="title-image" src="../../static/img/login-title.png" mode=""></image></view>
+			<view class="title-img">
+				<image class="title-image" src="../../static/img/login-title.png" mode=""></image>
+			</view>
 		</view>
 		<view class="loginTitle"><text>欢迎登录易趣CBB</text></view>
 		<view class="login_text">
 			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
-				<view class="login_name"><input class="uni-input" v-model="username" focus placeholder="请输入手机号" /></view>
+				<view class="login_img">
+					<image src="/static/icon/img03.png"></image>
+				</view>
+				<view class="login_name"><input class="uni-input" v-model="username" focus placeholder="请输入手机号" />
+				</view>
 			</view>
 			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
-				<view class="login_name"><input class="uni-input" type="password" v-model="passward" focus placeholder="请输入密码" /></view>
+				<view class="login_img">
+					<image src="/static/icon/img04.png"></image>
+				</view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="passward" focus
+						placeholder="请输入密码" /></view>
 			</view>
 			<view><button type="green" class="uni-button uni-button-green" @click="toLogin">登录</button></view>
-			<view><button type="green" class="uni-button uni-button-green uni-button-green-plain" plain="true" hover-class="none" @click="register">注册</button></view>
-			<navigator url="./forget"><view class="forget">忘记密码</view></navigator>
+			<view><button type="green" class="uni-button uni-button-green uni-button-green-plain" plain="true"
+					hover-class="none" @click="register">注册</button></view>
+			<navigator url="./forget">
+				<view class="forget">忘记密码</view>
+			</navigator>
 		</view>
 	</view>
 </template>
 
 <script>
-import { mapMutations } from 'vuex';
-import { login } from '@/api/login.js';
-import { getUserInfo } from '@/api/user.js';
-// #ifdef APP-PLUS
-// applelogin接口需要开发编写,基础项目中可能没有
-import { applelogin } from '@/api/set.js';
-// loginWx接口需要开发编写,基础项目中可能没有
-import { loginWx } from '@/api/login.js';
-// #endif
-// #ifdef H5
-import { loginWinxin } from '@/utils/wxAuthorized';
-// #endif
-export default {
-	data() {
-		return {
-			username: '',
-			passward: '',
-			// #ifdef APP-PLUS
-			is_ios: false, //判断是否为ios手机
-			is_apple_login: false //是否有ios授权登录功能
-			// #endif
-		};
-	},
-	onLoad() {
-		let obj = this;
-		// #ifdef APP-PLUS
-		let system = uni.getStorageSync('platform');
-		// 判断是否为ios
-		if (system == 'ios') {
-			obj.is_ios = true;
-		}
-		uni.getSystemInfo({
-			success(e) {
-				if (+e.system.split('.')[0] >= 13) {
-					obj.is_apple_login = true;
-				}
-			}
-		});
-		// #endif
-	},
-	methods: {
-		...mapMutations('user', ['setUserInfo', 'login']),
-		// 微信登录
-		wecahtLogin(type) {
+	import {
+		mapMutations
+	} from 'vuex';
+	import {
+		login
+	} from '@/api/login.js';
+	import {
+		getUserInfo
+	} from '@/api/user.js';
+	// #ifdef APP-PLUS
+	// applelogin接口需要开发编写,基础项目中可能没有
+	import {
+		applelogin
+	} from '@/api/set.js';
+	// loginWx接口需要开发编写,基础项目中可能没有
+	import {
+		loginWx
+	} from '@/api/login.js';
+	// #endif
+	// #ifdef H5
+	import {
+		loginWinxin
+	} from '@/utils/wxAuthorized';
+	// #endif
+	export default {
+		data() {
+			return {
+				username: '',
+				passward: '',
+				// #ifdef APP-PLUS
+				is_ios: false, //判断是否为ios手机
+				is_apple_login: false //是否有ios授权登录功能
+				// #endif
+			};
+		},
+		onLoad() {
 			let obj = this;
-			// #ifdef H5
-			let weichatBrowser = uni.getStorageSync('weichatBrowser');
-			if (weichatBrowser) {
-				loginWinxin();
-			}
-			// #endif
 			// #ifdef APP-PLUS
-			uni.login({
-				provider: type,
+			let system = uni.getStorageSync('platform');
+			// 判断是否为ios
+			if (system == 'ios') {
+				obj.is_ios = true;
+			}
+			uni.getSystemInfo({
 				success(e) {
-					uni.getUserInfo({
-						provider: type,
-						success(es) {
-							if (type === 'weixin') {
-								loginWx(es.userInfo)
-									.then(e => {
-										uni.setStorageSync('token', e.data.token);
-										getUserInfo({}).then(e => {
-											obj.login();
-											// 保存返回用户数据
-											obj.setUserInfo(e.data);
-											//成功跳转首页
-											uni.switchTab({
-												url: '/pages/index/index'
+					if (+e.system.split('.')[0] >= 13) {
+						obj.is_apple_login = true;
+					}
+				}
+			});
+			// #endif
+		},
+		methods: {
+			...mapMutations('user', ['setUserInfo', 'login']),
+			// 微信登录
+			wecahtLogin(type) {
+				let obj = this;
+				// #ifdef H5
+				let weichatBrowser = uni.getStorageSync('weichatBrowser');
+				if (weichatBrowser) {
+					loginWinxin();
+				}
+				// #endif
+				// #ifdef APP-PLUS
+				uni.login({
+					provider: type,
+					success(e) {
+						uni.getUserInfo({
+							provider: type,
+							success(es) {
+								if (type === 'weixin') {
+									loginWx(es.userInfo)
+										.then(e => {
+											uni.setStorageSync('token', e.data.token);
+											getUserInfo({}).then(e => {
+												obj.login();
+												// 保存返回用户数据
+												obj.setUserInfo(e.data);
+												//成功跳转首页
+												uni.switchTab({
+													url: '/pages/index/index'
+												});
+											});
+										})
+										.catch(e => {
+											console.log(e);
+											uni.showModal({
+												content: JSON.stringify(e),
+												success() {},
+												fail() {}
 											});
 										});
-									})
-									.catch(e => {
-										console.log(e);
-										uni.showModal({
-											content: JSON.stringify(e),
-											success() {},
-											fail() {}
-										});
-									});
-							}
-							if (type === 'apple') {
-								console.log(es.userInfo);
-								applelogin({
-									account: es.userInfo.openId
-								})
-									.then(function(e) {
-										console.log(e, 'token');
-										uni.setStorageSync('token', e.data.token);
-										getUserInfo({}).then(e => {
-											obj.login();
-											// 保存返回用户数据
-											obj.setUserInfo(e.data);
-											//成功跳转首页
-											uni.switchTab({
-												url: '/pages/index/index'
+								}
+								if (type === 'apple') {
+									console.log(es.userInfo);
+									applelogin({
+											account: es.userInfo.openId
+										})
+										.then(function(e) {
+											console.log(e, 'token');
+											uni.setStorageSync('token', e.data.token);
+											getUserInfo({}).then(e => {
+												obj.login();
+												// 保存返回用户数据
+												obj.setUserInfo(e.data);
+												//成功跳转首页
+												uni.switchTab({
+													url: '/pages/index/index'
+												});
 											});
+										})
+										.catch(function(e) {
+											console.log(e);
 										});
-									})
-									.catch(function(e) {
-										console.log(e);
-									});
-							}
-						},
-						fail(es) {
-							uni.showModal({
-								content: JSON.stringify(es),
-								success() {
-									// obj.login();
-									// // 保存返回用户数据
-									// obj.setUserInfo(e.data);
-									// //成功跳转首页
-									// uni.switchTab({
-									// 	url: '/pages/index/index'
-									// });
 								}
-							});
-						}
-					});
-				},
-				fail(e) {
-					uni.showModal({
-						title: '提示',
-						content: JSON.stringify(e),
-						showCancel: false
-					});
+							},
+							fail(es) {
+								uni.showModal({
+									content: JSON.stringify(es),
+									success() {
+										// obj.login();
+										// // 保存返回用户数据
+										// obj.setUserInfo(e.data);
+										// //成功跳转首页
+										// uni.switchTab({
+										// 	url: '/pages/index/index'
+										// });
+									}
+								});
+							}
+						});
+					},
+					fail(e) {
+						uni.showModal({
+							title: '提示',
+							content: JSON.stringify(e),
+							showCancel: false
+						});
+					}
+				});
+				// #endif
+			},
+			//登录
+			async toLogin() {
+				let obj = this;
+				obj.logining = true;
+				if (obj.username == '') {
+					obj.$api.msg('请输入手机号');
+					return;
 				}
-			});
-			// #endif
-		},
-		//登录
-		async toLogin() {
-			let obj = this;
-			obj.logining = true;
-			if (obj.username == '') {
-				obj.$api.msg('请输入手机号');
-				return;
-			}
-			if (obj.passward == '') {
-				obj.$api.msg('请输入密码');
-				return;
-			}
-			login({
-				account: obj.username,
-				password: obj.passward
-			})
-				.then(function(e) {
-					console.log(e.data.token, '123456');
-					uni.setStorageSync('token', e.data.token);
-					// obj.$store.commit('hasLogin', true);
-					getUserInfo({}).then(e => {
-						obj.login();
-						// 保存返回用户数据
-						obj.setUserInfo(e.data);
-						// let ur = uni.getStorageSync('present')|| '/pages/index/index';
-						//成功跳转首页
-						uni.switchTab({
-							url: '/pages/index/index'
-							// fail(e) {
-							// 	uni.navigateTo({
-							// 		url: ur,
-							// 		fail(e) {
-							// 			uni.navigateTo({
-							// 				url: '/pages/index/index',
-							// 			});
-							// 		}
-							// 	});
-							// }
+				if (obj.passward == '') {
+					obj.$api.msg('请输入密码');
+					return;
+				}
+				login({
+						account: obj.username,
+						password: obj.passward
+					})
+					.then(function(e) {
+						console.log(e.data.token, '123456');
+						uni.setStorageSync('token', e.data.token);
+						// obj.$store.commit('hasLogin', true);
+						getUserInfo({}).then(e => {
+							obj.login();
+							// 保存返回用户数据
+							obj.setUserInfo(e.data);
+							// let ur = uni.getStorageSync('present')|| '/pages/index/index';
+							//成功跳转首页
+							uni.navigateTo({
+								url: '/pages/navigation/index',
+							});
 						});
+					})
+					.catch(function(e) {
+						console.log(e);
 					});
-				})
-				.catch(function(e) {
-					console.log(e);
+			},
+			//跳转注册页
+			register() {
+				uni.navigateTo({
+					url: `/pages/public/register`
 				});
-		},
-		//跳转注册页
-		register() {
-			uni.navigateTo({
-				url: `/pages/public/register`
-			});
-		},
-		// 后退
-		navBack() {
-			uni.navigateBack();
+			},
+			// 后退
+			navBack() {
+				uni.navigateBack();
+			}
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-/* #ifdef APP-PLUS */
+	/* #ifdef APP-PLUS */
 
-.ios_login {
-	width: 260rpx;
-	border-radius: 12rpx;
-	justify-content: center;
-	border: 1px solid #212121;
-	margin: 24rpx auto;
-	padding: 10rpx;
-	background-color: #212121;
-	color: #ffffff;
-	.loginIcon {
-		width: 50rpx;
-		height: 50rpx;
-	}
-	.weixin_text {
-		line-height: 1;
-		margin-left: 20rpx;
-		color: #ffffff !important;
+	.ios_login {
+		width: 260rpx;
+		border-radius: 12rpx;
+		justify-content: center;
+		border: 1px solid #212121;
+		margin: 24rpx auto;
+		padding: 10rpx;
+		background-color: #212121;
+		color: #ffffff;
+
+		.loginIcon {
+			width: 50rpx;
+			height: 50rpx;
+		}
+
+		.weixin_text {
+			line-height: 1;
+			margin-left: 20rpx;
+			color: #ffffff !important;
+		}
 	}
-}
 
-/* #endif */
-.ios_login {
-	width: 350rpx;
-	border-radius: 12rpx;
-	justify-content: center;
-	border: 1px solid #212121;
-	margin: 24rpx auto;
-	padding: 15rpx;
-	background-color: #212121;
-	color: #ffffff;
-	font-size: 32rpx;
-	.loginIcon {
-		font-size: 35rpx;
-		width: 35rpx;
-		height: 35rpx;
+	/* #endif */
+	.ios_login {
+		width: 350rpx;
+		border-radius: 12rpx;
+		justify-content: center;
+		border: 1px solid #212121;
+		margin: 24rpx auto;
+		padding: 15rpx;
+		background-color: #212121;
+		color: #ffffff;
+		font-size: 32rpx;
+
+		.loginIcon {
+			font-size: 35rpx;
+			width: 35rpx;
+			height: 35rpx;
+		}
+
+		.weixin_text {
+			line-height: 1;
+			margin-left: 20rpx;
+			color: #ffffff !important;
+		}
 	}
-	.weixin_text {
-		line-height: 1;
-		margin-left: 20rpx;
-		color: #ffffff !important;
+
+	page {
+		height: 100%;
 	}
-}
 
-page {
-	height: 100%;
-}
-.container {
-	width: 100%;
-	height: 100%;
-	background-size: 100%;
-}
-.container_text {
-	position: relative;
-	width: 100%;
-	height: 500rpx;
-	top: 0rpx;
-	.banner-img {
+	.container {
 		width: 100%;
 		height: 100%;
+		background-size: 100%;
 	}
-	.title-img {
-		position: absolute;
-		left: 50%;
-		top: 100rpx;
-		margin-left: -130rpx;
-		width: 260rpx;
-		height: 156rpx;
-		.title-image {
+
+	.container_text {
+		position: relative;
+		width: 100%;
+		height: 500rpx;
+		top: 0rpx;
+
+		.banner-img {
+			width: 100%;
+			height: 100%;
+		}
+
+		.title-img {
+			position: absolute;
+			left: 50%;
+			top: 100rpx;
+			margin-left: -130rpx;
 			width: 260rpx;
 			height: 156rpx;
+
+			.title-image {
+				width: 260rpx;
+				height: 156rpx;
+			}
 		}
 	}
-}
-.login_text {
-	margin: -100rpx 0 0;
-	position: relative;
-	padding: 100rpx 102rpx;
-	background-color: #ffffff;
-	border-top-left-radius: 40rpx;
-	border-top-right-radius: 40rpx;
-	.login_input {
-		border-bottom: 1px solid #f0f0f0;
-		margin-bottom: 65rpx;
-		.login_img image {
-			height: 35rpx;
-			width: 29rpx;
-			margin-right: 20rpx;
+
+	.login_text {
+		margin: -100rpx 0 0;
+		position: relative;
+		padding: 100rpx 102rpx;
+		background-color: #ffffff;
+		border-top-left-radius: 40rpx;
+		border-top-right-radius: 40rpx;
+
+		.login_input {
+			border-bottom: 1px solid #f0f0f0;
+			margin-bottom: 65rpx;
+
+			.login_img image {
+				height: 35rpx;
+				width: 29rpx;
+				margin-right: 20rpx;
+			}
+
+			.uni-input {
+				text-align: left;
+				width: 470rpx;
+				font-size: 28rpx !important;
+			}
+
+			.login_name {
+				color: #333333;
+			}
+		}
+
+		.other {
+			margin-top: 60rpx;
+
+			.fenge {
+				width: 30%;
+				height: 2rpx;
+				background-color: #eeeeee;
+			}
+
+			.qita {
+				font-size: 28rpx;
+				color: #999999;
+			}
 		}
-		.uni-input {
-			text-align: left;
-			width: 470rpx;
-			font-size: 28rpx !important;
+
+		.weixin {
+			width: 75rpx;
+			height: 75rpx;
+			margin: 25rpx auto;
 		}
-		.login_name {
-			color: #333333;
+
+		.weixin image {
+			width: 100%;
+			height: 100%;
 		}
-	}
 
-	.other {
-		margin-top: 60rpx;
-		.fenge {
-			width: 30%;
-			height: 2rpx;
-			background-color: #eeeeee;
+		.weixin_text {
+			text-align: center;
+			font-size: 28rpx;
+			color: #999999;
 		}
-		.qita {
+
+		.forget {
 			font-size: 28rpx;
+			width: 100%;
+			text-align: right;
 			color: #999999;
 		}
+
+		.uni-button-green {
+			color: #ffffff;
+			background-color: #db292b;
+			margin: 40rpx 10rpx;
+			border-radius: 50rpx;
+		}
+
+		.uni-button-green-plain {
+			border: 1px solid #db292b;
+			margin: 40rpx 10rpx;
+			border-radius: 50rpx;
+			color: #db292b;
+			background-color: #ffffff;
+		}
+
+		.uni-button {
+			height: 85rpx;
+			line-height: 85rpx;
+		}
 	}
-	.weixin {
-		width: 75rpx;
-		height: 75rpx;
-		margin: 25rpx auto;
-	}
-	.weixin image {
+
+	.loginTitle {
+		position: absolute;
+		top: 270rpx;
 		width: 100%;
-		height: 100%;
-	}
-	.weixin_text {
 		text-align: center;
-		font-size: 28rpx;
-		color: #999999;
-	}
-	.forget {
-		font-size: 28rpx;
-		width: 100%;
-		text-align: right;
-		color: #999999;
-	}
-
-	.uni-button-green {
-		color: #ffffff;
-		background-color: #db292b;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
-	}
-	.uni-button-green-plain {
-		border: 1px solid #db292b;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
-		color: #db292b;
-		background-color: #ffffff;
-	}
-	.uni-button {
-		height: 85rpx;
-		line-height: 85rpx;
+		color: white;
+		font-size: 40rpx;
 	}
-}
-.loginTitle {
-	position: absolute;
-	top: 270rpx;
-	width: 100%;
-	text-align: center;
-	color: white;
-	font-size: 40rpx;
-}
-</style>
+</style>

+ 36 - 36
pages/redirect/redirect.vue

@@ -108,42 +108,42 @@ export default {
 					if (ur == 'pages/product/product') {
 						ur = '/pages/index/index';
 					}
-					console.log('跳转');
-					uni.switchTab({
-						url: '/pages/index/index'
-					});
-					// console.log(e.data, '用户信息');
-					// if (e.data.phone || e.data.email) {
-					// 	console.log('有手机号');
-					// 	uni.switchTab({
-					// 		url: ur,
-					// 		fail(e) {
-					// 			uni.navigateTo({
-					// 				url: ur,
-					// 				fail(e) {
-					// 					uni.navigateTo({
-					// 						url: '/pages/index/index'
-					// 					});
-					// 				}
-					// 			});
-					// 		}
-					// 	});
-					// } else {
-					// 	console.log('没有手机号');
-					// 	uni.showModal({
-					// 		title: '提示',
-					// 		content: '请先绑定手机号',
-					// 		showCancel: false,
-					// 		success: res => {
-					// 			uni.navigateTo({
-					// 				url: '/pages/set/phone'
-					// 			});
-					// 		},
-					// 		fail(e) {
-					// 			console.log(e);
-					// 		}
-					// 	});
-					// }
+					// console.log('跳转');
+					// uni.switchTab({
+					// 	url: '/pages/index/index'
+					// });
+					console.log(e.data, '用户信息');
+					if (e.data.phone) {
+						console.log('有手机号');
+						uni.switchTab({
+							url: ur,
+							fail(e) {
+								uni.navigateTo({
+									url: ur,
+									fail(e) {
+										uni.navigateTo({
+											url: '/pages/index/index'
+										});
+									}
+								});
+							}
+						});
+					} else {
+						console.log('没有手机号');
+						uni.showModal({
+							title: '提示',
+							content: '请先绑定手机号',
+							showCancel: false,
+							success: res => {
+								uni.navigateTo({
+									url: '/pages/set/phone'
+								});
+							},
+							fail(e) {
+								console.log(e);
+							}
+						});
+					}
 				})
 				.catch(e => {
 					uni.showModal({

+ 148 - 131
pages/set/phone.vue

@@ -7,7 +7,8 @@
 		<view v-if="show">
 			<view class="row b-b">
 				<text class="tit">验证码</text>
-				<input class="input" v-model="captcha" type="text" placeholder="请填写验证码" placeholder-class="placeholder" />
+				<input class="input" v-model="captcha" type="text" placeholder="请填写验证码"
+					placeholder-class="placeholder" />
 				<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
 			</view>
 			<button class="add-btn" :class="{ 'bg-gray': loding }" @click="loding ? '' : confirm()">提交</button>
@@ -16,148 +17,164 @@
 </template>
 
 <script>
-import { verify } from '@/api/login.js';
-import { mapState } from 'vuex';
-import { registerReset, binding } from '@/api/set.js';
-export default {
-	data() {
-		return {
-			show: true,
-			time: '', //保存倒计时对象
-			countDown: 0, //倒计时
-			account: '', //手机号
-			captcha: '', //验证码
-			password: '', //新密码
-			loding: false //是否载入中
-		};
-	},
-	watch: {
-		// 监听倒计时
-		countDown(i) {
-			if (i == 0) {
-				clearInterval(this.time);
-			}
-		}
-	},
-	computed: {
-		...mapState('user', ['userInfo'])
-	},
-	onLoad() {
-		console.log(this.userInfo, '123456');
-		if (!this.userInfo.phone) {
-			this.account = '';
-		} else {
-			this.account = this.userInfo.phone;
-			this.show = false;
-		}
-	},
-	methods: {
-		//发送验证码
-		verification() {
-			let obj = this;
-			if (this.account == '') {
-				this.$api.msg('请输入电话号码');
-				return;
-			}
-			if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(this.account)) {
-				this.$api.msg('请输入正确的手机号');
-				return;
+	import {
+		verify
+	} from '@/api/login.js';
+	import {
+		mapState
+	} from 'vuex';
+	import {
+		registerReset,
+		binding
+	} from '@/api/set.js';
+	export default {
+		data() {
+			return {
+				show: true,
+				time: '', //保存倒计时对象
+				countDown: 0, //倒计时
+				account: '', //手机号
+				captcha: '', //验证码
+				password: '', //新密码
+				loding: false //是否载入中
+			};
+		},
+		watch: {
+			// 监听倒计时
+			countDown(i) {
+				if (i == 0) {
+					clearInterval(this.time);
+				}
 			}
-			// 判断是否在倒计时
-			if (obj.countDown > 0) {
-				return false;
+		},
+		computed: {
+			...mapState('user', ['userInfo'])
+		},
+		onLoad() {
+			console.log(this.userInfo, '123456');
+			if (!this.userInfo.phone) {
+				this.account = '';
 			} else {
-				obj.countDown = 60;
-				obj.time = setInterval(() => {
-					obj.countDown--;
-				}, 1000);
-				//调用验证码接口
-				verify({
-					phone: obj.account,
-					type: 'BDING_CODE'
-				})
-					.then(({ data }) => {})
+				this.account = this.userInfo.phone;
+				this.show = false;
+			}
+		},
+		methods: {
+			//发送验证码
+			verification() {
+				let obj = this;
+				if (this.account == '') {
+					this.$api.msg('请输入电话号码');
+					return;
+				}
+				if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(this.account)) {
+					this.$api.msg('请输入正确的手机号');
+					return;
+				}
+				// 判断是否在倒计时
+				if (obj.countDown > 0) {
+					return false;
+				} else {
+					obj.countDown = 60;
+					obj.time = setInterval(() => {
+						obj.countDown--;
+					}, 1000);
+					//调用验证码接口
+					verify({
+							phone: obj.account,
+							type: 'BDING_CODE'
+						})
+						.then(({
+							data
+						}) => {})
+						.catch(err => {
+							console.log(err);
+						});
+				}
+			},
+			confirm(e) {
+				let obj = this;
+				obj.loding = true;
+				binding({
+						phone: obj.account,
+						captcha: obj.captcha
+					})
+					.then(({
+						data
+					}) => {
+						obj.$api.msg('绑定成功!');
+						setTimeout(function() {
+							obj.loding = false;
+							uni.switchTab({
+								url: '/pages/user/user'
+							});
+						}, 1000);
+					})
 					.catch(err => {
+						obj.loding = false;
 						console.log(err);
 					});
 			}
-		},
-		confirm(e) {
-			let obj = this;
-			obj.loding = true;
-			binding({
-				phone: obj.account,
-				captcha: obj.captcha
-			})
-				.then(({ data }) => {
-					obj.$api.msg('绑定成功!');
-					setTimeout(function() {
-						obj.loding = false;
-						uni.switchTab({
-							url: '/pages/user/user'
-						});
-					}, 1000);
-				})
-				.catch(err => {
-					obj.loding = false;
-					console.log(err);
-				});
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page {
-	background: $page-color-base;
-}
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30rpx;
-	height: 110rpx;
-	background: #fff;
+	page {
+		background: $page-color-base;
+	}
 
-	.tit {
-		flex-shrink: 0;
-		width: 120rpx;
-		font-size: 30rpx;
-		color: $font-color-dark;
+	.row {
+		display: flex;
+		align-items: center;
+		position: relative;
+		padding: 0 30rpx;
+		height: 110rpx;
+		background: #fff;
+
+		.tit {
+			flex-shrink: 0;
+			width: 120rpx;
+			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;
+		}
 	}
-	.input {
-		flex: 1;
-		font-size: 30rpx;
-		color: $font-color-dark;
+
+	.add-btn {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		width: 690rpx;
+		height: 80rpx;
+		margin: 60rpx auto;
+		font-size: $font-lg;
+		color: #fff;
+		background-color: $base-color;
+		border-radius: 10rpx;
+		// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
 	}
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
+
+	.bg-gray {
+		background-color: $color-gray;
 	}
-}
-.add-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 60rpx auto;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
 
-.bg-gray {
-	background-color: $color-gray;
-}
-.code {
-	color: #dc262b;
-	font-size: 23rpx;
-	border-left: 1px solid #eeeeee;
-	width: 150rpx;
-	flex-shrink: 0;
-	text-align: center;
-}
-</style>
+	.code {
+		color: #dc262b;
+		font-size: 23rpx;
+		border-left: 1px solid #eeeeee;
+		width: 150rpx;
+		flex-shrink: 0;
+		text-align: center;
+	}
+</style>

+ 957 - 0
pages/store/shopDetail.vue

@@ -0,0 +1,957 @@
+<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.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 class="main" v-if="art != ''" v-for="(ls, index) in art.content" :key="index">
+			<view v-if="ls.type == 'rich-text'" v-html="ls.value" class="main-item"></view>
+			<view style="width:100%;height: 300px;" v-if="ls.type == 'video' && ls.value">
+				<view v-if="ls.jd == 1" style="width:100%;height: 300px; background: black;" @click="djbf(ls)">
+					<image style="width:100%;height: 300px;" src="../../static/img/spfm.png" mode=""></image>
+				</view>
+				<video :src="ls.value" autoplay v-if="ls.jd ==2" style="width:100%;height: 300px;">
+				</video>
+			</view>
+
+		</view>
+		<!-- <jyf-parser class="main" :html="art.content"></jyf-parser> -->
+		<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>
+	</view>
+</template>
+
+<script>
+	import jyfParser from "@/components/jyf-parser/jyf-parser.vue";
+	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,
+		details
+	} 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,
+			jyfParser
+		},
+		data() {
+			return {
+				money: '',
+				vipList: [], //商品列表
+				page: 1,
+				limit: 10,
+				loadingType: 'more',
+				id: '',
+				info: {},
+				art: '',
+				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;
+					obj.info.jl = obj.getFlatternDistance(obj.latitude, obj.longitude, obj.info.latitude, obj.info
+						.longitude);
+					if (obj.info.link_articel != '') {
+						obj.getarticel(obj.info.link_articel);
+					}
+				});
+			},
+			getarticel(id) {
+				details({}, id).then(({
+					data
+				}) => {
+					data.content = data.content.replace(/<img/g, '<img class="rich-img"').replace(/<p>\s*<img/g,
+						'<p class="pHeight"><img');
+					data.content = this.getVideo(data.content);
+					this.art = data;
+					console.log(this.art, 'nierong');
+				});
+			},
+			djbf(opt) {
+				console.log(opt, '2222');
+				opt.jd = 2
+			},
+			getVideo(data) {
+				console.log(data, '源数据')
+				let videoList = [];
+				let videoReg = /<video.*?(?:>|\/>)/gi; //匹配到字符串中的 video 标签
+				let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; //匹配到字符串中的 video 标签 的路径
+				let arr = data.match(videoReg) || []; // arr 为包含所有video标签的数组
+				let articleList = data.split('</video>'); // 把字符串  从视频标签分成数组
+				arr.forEach((item, index) => {
+					var src = item.match(srcReg);
+					videoList.push(src[1]); //所要显示的字符串中 所有的video 标签 的路径
+				});
+				let needArticleList = [];
+				articleList.forEach((item, index) => {
+					if (item != '' && item != undefined) {
+						let wuvideo = item.split('<video')
+						let js = wuvideo[0].replace('<video', '')
+						//  常见的标签渲染
+						needArticleList.push({
+							type: 'rich-text',
+							value: js
+						});
+					}
+					let articleListLength = articleList.length; // 插入到原有video 标签位置
+					if (index < articleListLength && videoList[index] != undefined) {
+						needArticleList.push({
+							type: 'video',
+							jd: 1,
+							value: videoList[index]
+						});
+					}
+				});
+				console.log(needArticleList, '完成');
+				return needArticleList;
+			},
+			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;
+				s = s.toFixed(2) * 1;
+				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;
+				}
+			}
+		}
+	}
+
+
+	.main {
+		padding: 10rpx;
+		display: flex;
+		flex-direction: column;
+	}
+
+	/deep/ .main {
+		.rich-img {
+			width: 100% !important;
+			height: auto;
+		}
+	}
+</style>

+ 617 - 0
pages/store/shopList.vue

@@ -0,0 +1,617 @@
+<template>
+	<view class="content">
+		<!-- <view class="shop">
+			<view class="shop-title">
+				<view class="shop-item" @click="changePx(0)">
+					<view class="sitem-font" :class="{ choose: PXType == 0 }">销量</view>
+					<view class="p-box">
+						<text :class="{ active: PXType == 0 && numberOrder === 1 }" class="iconfont iconfold"></text>
+						<text :class="{ active: PXType == 0 && numberOrder === 2 }"
+							class="iconfont iconfold xia"></text>
+					</view>
+				</view>
+				<view class="shop-item" @click="changePx(1)">
+					<view class="sitem-font" :class="{ choose: PXType == 1 }">位置距离</view>
+					<view class="p-box">
+						<text :class="{ active: PXType == 1 && distance === 1 }" class="iconfont iconfold"></text>
+						<text :class="{ active: PXType == 1 && distance === 2 }" class="iconfont iconfold xia"></text>
+					</view>
+				</view>
+			</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).toFixed(2) }}KM
+						</view>
+					</view>
+					<view class="flex f-d-c f-j-sb f-ai-s fg1" style="height: 110rpx;">
+						<view class="djq-dz-box">
+							<view class="djq-dz clamp2">{{ item.detailed_address }}</view>
+							<view class="djq-dz">每100元赠送趣豆{{ item.gift_integral * 1 }}</view>
+						</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 -->
+								<!-- #ifdef APP-PLUS -->
+								<image src="../../static/icon/dh.png" mode=""
+									@click.stop="gomapApp(item.latitude, item.longitude, item.name)"></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: '',
+				PXType: 0, //店铺排序规则 0-》销量排序 1-》距离排序 2-》趣豆多少排序
+				numberOrder: 1, //销量排序1升2降
+				distance: 1, //距离排序1升2降
+				qudou: 1, //趣豆多少排序1升2降
+				loadingType: 'more',
+				loaded: false
+			};
+		},
+		computed: {
+			...mapState(['loginInterceptor', 'baseURL', 'latitude', 'longitude'])
+		},
+		onLoad(opt) {
+			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: {
+			changePx(index) {
+				let obj = this;
+				obj.PXType = index;
+				if (index === 0) {
+					this.order = this.numberOrder === 1 ? 'asc' : 'desc';
+					this.numberOrder = this.numberOrder === 1 ? 2 : 1;
+				}
+				if (index === 1) {
+					this.order = this.distance === 1 ? 'asc' : 'desc';
+					this.distance = this.distance === 1 ? 2 : 1;
+				}
+				// 判断是否为价格优先
+				if (index === 2) {
+					this.order = this.qudou === 1 ? 'asc' : 'desc';
+					this.qudou = this.qudou === 1 ? 2 : 1;
+				}
+				console.log('切换显示');
+				this.page = 1;
+				this.loadingType = 'more';
+				this.getStoreList('reload');
+			},
+			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) {
+				console.log(phone, '121345');
+				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 == 'noMore' || obj.loadingType == 'loading') {
+					return;
+				}
+				obj.loadingType = 'loading';
+				getStoreList({
+					name: obj.name,
+					latitude: obj.latitude,
+					longitude: obj.longitude,
+					page: obj.page,
+					limit: obj.limit,
+					sort: obj.PXType == 0 ? 'achievement' : obj.PXType == 1 ? 'distance' : 'gift_integral',
+					order: obj.order
+				}).then(res => {
+					console.log(res, type);
+					if (type == 'reload') {
+						obj.shopList = [];
+					}
+					console.log(obj.shopList, '12456');
+					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;
+				});
+			},
+			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('本机未安装指定的地图应用');
+								});
+							}
+						}
+					);
+				}
+			},
+			// 调用高德
+			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 {
+			width: 500rpx;
+			margin-left: 10rpx;
+
+			.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-box {
+				width: 60%;
+			}
+
+			.djq-dz {
+				width: 100%;
+				font-size: 24rpx;
+				font-weight: 500;
+				color: #666666;
+			}
+
+			.djq-hd {
+				width: 30%;
+				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%;
+			}
+		}
+	}
+
+	.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;
+				}
+
+				.p-box {
+					display: flex;
+					flex-direction: column;
+
+					.iconfont {
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						width: 30rpx;
+						height: 14rpx;
+						line-height: 1;
+						margin-left: 4rpx;
+						font-size: 26rpx;
+						color: #888;
+
+						&.active {
+							color: $base-color;
+						}
+					}
+
+					.xia {
+						transform: scaleY(-1);
+					}
+				}
+			}
+		}
+	}
+</style>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 928 - 191
pages/store/store.vue


+ 0 - 338
pages/store/storeInfo.vue

@@ -1,338 +0,0 @@
-<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" v-if="info.jl">
-						<image class="mrt-image" src="../../static/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="../../static/img/store2.png" mode=""></image>
-			<view class="store-font">营业时间:{{ info.day_time }}</view>
-		</view>
-		<view class="store-item">
-			<image class="store-image2" src="../../static/img/store3.png" mode=""></image>
-			<view class="store-font">商家电话:{{ info.phone }}</view>
-		</view>
-		<view class="store-item">
-			<image class="store-image3" src="../../static/img/store1.png" mode=""></image>
-			<view class="store-font">门店地址:{{ info.detailed_address }}</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"></image></view>
-			</scroll-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"></image></view>
-			</scroll-view>
-		</view>
-		<view class="btn-box flex">
-			<view class="btn-left" @click="tocall()">联系商家</view>
-			<view class="btn-right" @click="markertap()">导航到店</view>
-		</view>
-		<uni-popup ref="popup" type="bottom" @click="close">
-			<view class="popup_row">
-				<view class="rows">
-					<view class="rows-item" @click="toGaodeMap">高德地图</view>
-					<view class="rows-item" @click="tobaiDuMap">百度地图</view>
-					<!-- <view class="rows-item" @click="totengxunMap">腾讯地图</view> -->
-				</view>
-			</view>
-		</uni-popup>
-	</view>
-</template>
-
-<script>
-import { store_details } from '@/api/index.js';
-import uniPopup from '@/components/uni-popup/uni-popup.vue';
-export default {
-	data() {
-		return {
-			id: '',
-			info: '',
-			longitude: '',
-			latitude: '',
-			latitude1: '',
-			longitude1: '',
-			address: ''
-		};
-	},
-	onLoad(option) {
-		this.id = option.id;
-		this.loadData();
-	},
-	methods: {
-		markertap(e) {
-			this.$refs.popup.open();
-		},
-		loadData() {
-			const obj = this;
-			// store_details({}, this.id).then(({ data }) => {
-			// 	console.log(data);
-			// 	this.info = data;
-			// });
-			uni.getLocation({
-				type: 'gcj02',
-				success: res => {
-					console.log('dizhi+++++++++++');
-					this.longitude = res.longitude; //经度
-					this.latitude = res.latitude; //纬度
-					store_details({}, this.id).then(({ data }) => {
-						obj.longitude1 = data.longitude;
-						obj.latitude1 = data.latitude;
-						obj.address = data.detailed_address;
-						data.jl = this.getFlatternDistance(this.latitude, this.longitude, data.latitude, data.longitude);
-						this.info = data;
-					});
-				},
-				fail: err => {
-					console.log(err);
-					openMap().then(e => {
-						this.getaddress();
-					});
-				}
-			});
-		},
-		//根据经纬度计算距离
-		getFlatternDistance(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 //仅为示例
-			});
-		},
-		// 调用高德
-		toGaodeMap() {
-			let latitude = this.latitude1;
-			let longitude = this.longitude1;
-			let address = this.address;
-			console.log('选择高德', latitude, longitude, address);
-			window.location.href = `https://uri.amap.com/marker?position=${longitude},${latitude}&name=${address}`;
-		},
-		// 调用腾讯
-		totengxunMap() {
-			let latitude = this.latitude1;
-			let longitude = this.longitude1;
-			let address = this.address;
-			console.log('选择腾讯', latitude, longitude);
-			window.location.href = `http://apis.map.qq.com/uri/v1/marker?marker=coord:${latitude},${longitude};addr:${address}`;
-		},
-		// 调用百度
-		tobaiDuMap() {
-			let latitude = this.latitude1;
-			let longitude = this.longitude1;
-			let latitude6 = this.latitude;
-			let longitude6 = this.longitude;
-			let address = this.address;
-			console.log('选择百度', latitude, longitude);
-			console.log('获取当前经纬度', latitude6, longitude6);
-			window.location.href = `http://api.map.baidu.com/direction?origin=latlng:${latitude6},${longitude6}|name:我的位置&destination=${latitude},${longitude}&mode=driving&region=${address}&output=html&src=webapp.baidu.openAPIdemo`;
-		}
-	}
-};
-</script>
-
-<style lang="less">
-.center,
-page {
-	background: #f8f8f8;
-	height: 100%;
-}
-.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;
-		// }
-	}
-}
-</style>

+ 15 - 15
pages/user/myyue.vue

@@ -4,29 +4,29 @@
 			<view class="status_bar"><!-- 这里是状态栏 --></view>
 			<view class="body-title">
 				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">我的余额</view>
+				<view class="header">我的金豆</view>
 			</view>
 			<view class="content-bg"><image src="../../static/img/jifen.png" mode=""></image></view>
 			<view class="money-box">
-				<view class="money">{{ userInfo.now_money }}</view>
-				<view>我的余额</view>
+				<view class="money">{{ userInfo.brokerage_price }}</view>
+				<view>我的金豆</view>
 			</view>
-			<view class="money-btn" @click="navto('/pages/money/recharge')">
-				充值
+			<view class="money-btn" @click="navto('/pages/money/withdrawal')">
+				提现
 				<text>></text>
 			</view>
 		</view>
-		<view class="info-box flex">
+		<!-- <view class="info-box flex">
 			<view class="info-item">
 				<view class="info-font">累计收入</view>
-				<view class="info-num">{{recharge}}</view>
+				<view class="info-num">{{ recharge }}</view>
 			</view>
 			<view class="shu"></view>
 			<view class="info-item">
 				<view class="info-font">累计支出</view>
-				<view class="info-num">{{orderStatusSum}}</view>
+				<view class="info-num">{{ orderStatusSum }}</view>
 			</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>
@@ -100,21 +100,21 @@ export default {
 			recharge: 0,
 			navList: [
 				{
-					state: 2,
+					state: 3,
 					text: '收入',
 					loadingType: 'more',
 					orderList: [],
 					page: 1, //当前页数
-					limit: 10 ,//每次信息条数
+					limit: 10, //每次信息条数
 					loaded: false
 				},
 				{
-					state: 1,
+					state: 4,
 					text: '支出',
 					loadingType: 'more',
 					orderList: [],
 					page: 1, //当前页数
-					limit: 10 ,//每次信息条数
+					limit: 10, //每次信息条数
 					loaded: false
 				}
 			],
@@ -169,7 +169,7 @@ export default {
 						navItem.orderList = navItem.orderList.concat(data[0].list);
 						console.log(navItem.orderList);
 						navItem.page++;
-					}else {
+					} else {
 						navItem.loadingType = 'noMore';
 					}
 					if (navItem.limit == data[0].list.length) {
@@ -323,7 +323,7 @@ page {
 	font-size: 30rpx;
 	font-family: PingFang SC;
 	font-weight: bold;
-	color: #FFFFFF;
+	color: #ffffff;
 	text {
 		display: inline-block;
 		padding-left: 10rpx;

+ 146 - 124
pages/user/shareQrCode.vue

@@ -6,138 +6,160 @@
 </template>
 
 <script>
-import { spreadBanner } from '@/api/user.js';
-export default {
-	// components: { tkiQrcode },
-	data() {
-		return {
-			url: '',
-			backImg: '',
-			userInfo: ''
-		};
-	},
-	onLoad() {
-		this.spread();
-	},
-	computed: {
-		cpSize() {
-			if (this.unit == 'upx') {
-				return uni.upx2px(this.size);
-			} else {
-				return this.size;
+	import {
+		spreadBanner
+	} from '@/api/user.js';
+	export default {
+		// components: { tkiQrcode },
+		data() {
+			return {
+				url: '',
+				backImg: '',
+				userInfo: '',
+				iswei: 1
+			};
+		},
+		onLoad() {
+			this.spread();
+		},
+		computed: {
+			cpSize() {
+				if (this.unit == 'upx') {
+					return uni.upx2px(this.size);
+				} else {
+					return this.size;
+				}
 			}
-		}
-	},
-	methods: {
-		spread() {
-			uni.showLoading({
-				title: '加载中'
-			});
-			let obj = this;
-			spreadBanner({
-				//#ifdef H5
-				type: 2,
-				//#endif
-				//#ifdef MP
-				type: 1,
-				//#endif
-				//#ifdef APP-PLUS
-				type: 3
-				//#endif
-			}).then(({ data }) => {
-				console.log(data);
-				//#ifdef MP
-				obj.backImg = data[0].poster;
-				//#endif
-				//#ifdef H5
-				obj.backImg = data[0].wap_poster;
-				//#endif
-				//#ifdef APP-PLUS
-				obj.backImg = data[0].wap_poster;
-				//#endif
-				uni.hideLoading();
-			});
 		},
-		bc_code() {
-			let that = this;
-			console.log('保存二维码', this.backImg);
-			uni.downloadFile({
-				//获得二维码的临时地址
-				url: this.backImg,
-				success: res => {
-					//console.log('获取url',res)
-					if (res.statusCode == 200) {
-						uni.saveImageToPhotosAlbum({
-							filePath: res.tempFilePath, //传入临时地址
-							success() {
-								that.$api.msg('保存成功'); //封装的提示
-							},
-							fail() {
-								that.$api.msg('保存失败');
-							}
-						});
-					}
+		methods: {
+			spread() {
+				uni.showLoading({
+					title: '加载中'
+				});
+				let obj = this;
+				//#ifdef H5
+				let ua = navigator.userAgent.toLowerCase(); //获取判断用的对象
+				console.log(ua, '123456');
+				if (ua.match(/MicroMessenger/i) == 'micromessenger') {
+					obj.iswei = 2;
+					console.log('weixin');
 				}
-			});
+				//#endif 
+				spreadBanner({
+					//#ifdef H5
+					type: obj.iswei == 2 ? 2 : 3,
+					//#endif
+					//#ifdef MP
+					type: 1,
+					//#endif
+					//#ifdef APP-PLUS
+					type: 3
+					//#endif
+				}).then(({
+					data
+				}) => {
+					console.log(data);
+					//#ifdef MP
+					obj.backImg = data[0].poster;
+					//#endif
+					//#ifdef H5
+					obj.backImg = data[0].wap_poster;
+					//#endif
+					//#ifdef APP-PLUS
+					obj.backImg = data[0].wap_poster;
+					//#endif
+					uni.hideLoading();
+				});
+			},
+			bc_code() {
+				let that = this;
+				console.log('保存二维码', this.backImg);
+				uni.downloadFile({
+					//获得二维码的临时地址
+					url: this.backImg,
+					success: res => {
+						//console.log('获取url',res)
+						if (res.statusCode == 200) {
+							uni.saveImageToPhotosAlbum({
+								filePath: res.tempFilePath, //传入临时地址
+								success() {
+									that.$api.msg('保存成功'); //封装的提示
+								},
+								fail() {
+									that.$api.msg('保存失败');
+								}
+							});
+						}
+					}
+				});
+			}
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page {
-	width: 100%;
-	min-height: 100%;
-	.container {
+	page {
+		width: 100%;
+		min-height: 100%;
+
+		.container {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.backImg {
+		position: absolute;
 		width: 100%;
 		height: 100%;
 	}
-}
-.backImg {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-}
-.portrait {
-	width: 100%;
-	text-align: center;
-	padding-top: 80rpx;
-	padding-bottom: 30rpx;
-	image {
-		width: 250rpx;
-		height: 250rpx;
+
+	.portrait {
+		width: 100%;
+		text-align: center;
+		padding-top: 80rpx;
+		padding-bottom: 30rpx;
+
+		image {
+			width: 250rpx;
+			height: 250rpx;
+		}
+	}
+
+	.text {
+		text-align: center;
+		width: 100%;
+		color: #ffffff;
+		font-size: 55rpx;
+		letter-spacing: 15rpx;
+	}
+
+	.uid-name {
+		padding: 50rpx 0rpx;
+		text-align: center;
+		width: 100%;
+		color: #ffffff;
+	}
+
+	.copy-btn {
+		color: #ffffff;
+		background-color: #4ba6ed;
+		border-radius: 50rpx;
+		width: 170rpx;
+		line-height: 70rpx;
+		margin: 0rpx auto;
+		text-align: center;
+	}
+
+	.tki-qrcode {
+		position: fixed;
+		bottom: 10%;
+		left: 30%;
+	}
+
+	canvas {
+		width: 150px;
+		height: 150px;
+		margin: auto;
 	}
-}
-.text {
-	text-align: center;
-	width: 100%;
-	color: #ffffff;
-	font-size: 55rpx;
-	letter-spacing: 15rpx;
-}
-.uid-name {
-	padding: 50rpx 0rpx;
-	text-align: center;
-	width: 100%;
-	color: #ffffff;
-}
-.copy-btn {
-	color: #ffffff;
-	background-color: #4ba6ed;
-	border-radius: 50rpx;
-	width: 170rpx;
-	line-height: 70rpx;
-	margin: 0rpx auto;
-	text-align: center;
-}
-.tki-qrcode {
-	position: fixed;
-	bottom: 10%;
-	left: 30%;
-}
-canvas {
-	width: 150px;
-	height: 150px;
-	margin: auto;
-}
-</style>
+</style>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 665 - 582
pages/user/user.vue


BIN
static/icon/bdjj.png


BIN
static/icon/bdsj.png


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/dh.png


BIN
static/icon/dw.png


BIN
static/icon/fhsy.png


BIN
static/icon/guanbi@2x.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/img01.png


BIN
static/icon/img02.png


BIN
static/icon/img03.png


BIN
static/icon/img04.png


BIN
static/icon/img05.png


BIN
static/icon/img06.png


BIN
static/icon/img07.png


BIN
static/icon/img08.png


BIN
static/icon/img09.png


BIN
static/icon/img10.png


BIN
static/icon/img11.png


BIN
static/icon/img12.png


BIN
static/icon/index06.png


BIN
static/icon/index1.png


BIN
static/icon/jindou.png


BIN
static/icon/kf.png


BIN
static/icon/n1.png


BIN
static/icon/n2.png


BIN
static/icon/n3.png


BIN
static/icon/n4.png


BIN
static/icon/n5.png


BIN
static/icon/n6.png


BIN
static/icon/n7.png


BIN
static/icon/n8.png


BIN
static/icon/phone.png


BIN
static/icon/shdz.png


BIN
static/icon/tdjj.png


BIN
static/icon/team.png


BIN
static/icon/title-icon.png


BIN
static/icon/u1.png


BIN
static/icon/u2.png


BIN
static/icon/u3.png


BIN
static/icon/u4.png


BIN
static/icon/u5.png


BIN
static/icon/uqd.png


BIN
static/img/afternoonicon.png


BIN
static/img/bargainBg.jpg


BIN
static/img/bo.png


Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov