ソースを参照

首页 发现

wcni 5 年 前
コミット
c51fcf01b8
100 ファイル変更8013 行追加2026 行削除
  1. 41 39
      App.vue
  2. 0 4
      README.md
  3. 1446 0
      common/uin.css
  4. 138 0
      component/clickCircle.vue
  5. 48 0
      component/commoNar.vue
  6. 153 0
      component/navTab.vue
  7. 174 0
      component/refresh.vue
  8. 122 0
      component/tabBar4.vue
  9. 34 0
      component/uni-icon/uni-icon.vue
  10. 180 0
      component/uni-nav-bar/uni-nav-bar.vue
  11. 26 0
      component/uni-status-bar/uni-status-bar.vue
  12. 9 0
      component/userInfo.vue
  13. 19 0
      main.js
  14. 6 1
      manifest.json
  15. 50 10
      pages.json
  16. 221 0
      pages/index/hotel.vue
  17. 303 19
      pages/index/index.vue
  18. 1 1
      pages/myCenter/index.vue
  19. 139 2
      pages/myone/oneIndex.vue
  20. 1 1
      pages/taBar/index.vue
  21. BIN
      static/logo.png
  22. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  24. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  25. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/commoNar.js.map
  26. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-icon/uni-icon.js.map
  27. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-nav-bar/uni-nav-bar.js.map
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-status-bar/uni-status-bar.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/component/userInfo.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/hotel.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  32. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/index.js.map
  33. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myone/oneIndex.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/taBar/index.js.map
  35. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/taBar/one/one.js.map
  36. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/taBar/three/three.js.map
  37. 19 9
      unpackage/dist/dev/mp-weixin/app.json
  38. 66 46
      unpackage/dist/dev/mp-weixin/common/main.js
  39. 1508 0
      unpackage/dist/dev/mp-weixin/common/main.wxss
  40. 112 0
      unpackage/dist/dev/mp-weixin/common/runtime.js
  41. 1762 1769
      unpackage/dist/dev/mp-weixin/common/vendor.js
  42. 52 0
      unpackage/dist/dev/mp-weixin/component/commoNar.js
  43. 4 0
      unpackage/dist/dev/mp-weixin/component/commoNar.json
  44. 1 0
      unpackage/dist/dev/mp-weixin/component/commoNar.wxml
  45. 7 0
      unpackage/dist/dev/mp-weixin/component/commoNar.wxss
  46. 52 0
      unpackage/dist/dev/mp-weixin/component/uni-icon/uni-icon.js
  47. 4 0
      unpackage/dist/dev/mp-weixin/component/uni-icon/uni-icon.json
  48. 1 0
      unpackage/dist/dev/mp-weixin/component/uni-icon/uni-icon.wxml
  49. 5 0
      unpackage/dist/dev/mp-weixin/component/uni-icon/uni-icon.wxss
  50. 52 0
      unpackage/dist/dev/mp-weixin/component/uni-nav-bar/uni-nav-bar.js
  51. 7 0
      unpackage/dist/dev/mp-weixin/component/uni-nav-bar/uni-nav-bar.json
  52. 1 0
      unpackage/dist/dev/mp-weixin/component/uni-nav-bar/uni-nav-bar.wxml
  53. 77 0
      unpackage/dist/dev/mp-weixin/component/uni-nav-bar/uni-nav-bar.wxss
  54. 52 0
      unpackage/dist/dev/mp-weixin/component/uni-status-bar/uni-status-bar.js
  55. 4 0
      unpackage/dist/dev/mp-weixin/component/uni-status-bar/uni-status-bar.json
  56. 1 0
      unpackage/dist/dev/mp-weixin/component/uni-status-bar/uni-status-bar.wxml
  57. 8 0
      unpackage/dist/dev/mp-weixin/component/uni-status-bar/uni-status-bar.wxss
  58. 69 0
      unpackage/dist/dev/mp-weixin/pages/index/hotel.js
  59. 16 0
      unpackage/dist/dev/mp-weixin/pages/index/hotel.json
  60. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/hotel.wxml
  61. 51 0
      unpackage/dist/dev/mp-weixin/pages/index/hotel.wxss
  62. 10 8
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  63. 6 2
      unpackage/dist/dev/mp-weixin/pages/index/index.json
  64. 0 1
      unpackage/dist/dev/mp-weixin/pages/index/index.wxml
  65. 121 27
      unpackage/dist/dev/mp-weixin/pages/index/index.wxss
  66. 24 24
      unpackage/dist/dev/mp-weixin/pages/myCenter/index.js
  67. 4 0
      unpackage/dist/dev/mp-weixin/pages/myCenter/index.json
  68. 0 0
      unpackage/dist/dev/mp-weixin/pages/myCenter/index.wxml
  69. 69 0
      unpackage/dist/dev/mp-weixin/pages/myone/oneIndex.js
  70. 8 0
      unpackage/dist/dev/mp-weixin/pages/myone/oneIndex.json
  71. 1 0
      unpackage/dist/dev/mp-weixin/pages/myone/oneIndex.wxml
  72. 52 0
      unpackage/dist/dev/mp-weixin/pages/myone/oneIndex.wxss
  73. 24 24
      unpackage/dist/dev/mp-weixin/pages/taBar/index.js
  74. 4 0
      unpackage/dist/dev/mp-weixin/pages/taBar/index.json
  75. 0 0
      unpackage/dist/dev/mp-weixin/pages/taBar/index.wxml
  76. 0 4
      unpackage/dist/dev/mp-weixin/pages/taBar/one/one.json
  77. 0 4
      unpackage/dist/dev/mp-weixin/pages/taBar/three/three.json
  78. 30 31
      unpackage/dist/dev/mp-weixin/project.config.json
  79. 7 0
      unpackage/dist/dev/mp-weixin/sitemap29.json
  80. 7 0
      unpackage/dist/dev/mp-weixin/sitemap41.json
  81. 7 0
      unpackage/dist/dev/mp-weixin/sitemap73.json
  82. 7 0
      unpackage/dist/dev/mp-weixin/sitemap85.json
  83. 7 0
      unpackage/dist/dev/mp-weixin/sitemap91.json
  84. 7 0
      unpackage/dist/dev/mp-weixin/sitemap93.json
  85. 1 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.d.ts
  86. 62 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.js
  87. 8 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.json
  88. 67 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.wxml
  89. 0 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.wxss
  90. 1 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.d.ts
  91. 210 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.js
  92. 6 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.json
  93. 18 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.wxml
  94. 1 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.wxss
  95. 1 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.d.ts
  96. 69 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.js
  97. 7 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.json
  98. 68 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.wxml
  99. 0 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.wxss
  100. 57 0
      unpackage/dist/dev/mp-weixin/wxcomponents/dist/calendar/calendar.wxml

+ 41 - 39
App.vue

@@ -72,45 +72,45 @@
 			  })
 			};
 		   // 用户授全
-			uni.getSetting({
-			  success(res) {
-			   if (res.authSetting['scope.userInfo']) {
-			    console.log("已授权=====")
-			    console.log(uni.getStorageSync('sessionId'));
-			    // 已经授权,可以直接调用 getUserInfo 获取头像昵称
-			    uni.getUserInfo({
-			     success(res) {
-				 that.login(res.userInfo);
-				  // uni.setStorage({//缓存用户登陆状态
-						//  key: 'userInfo',  
-						//  data: res.userInfo  
-				  // })  
-			     },
-			     fail(res) {
-			      console.log("获取用户信息失败", res)
-			     }
-			    })
-			   } else {
-				console.log("触发授权")
-				uni.showModal({
-				    title: '提示',
-				    content: '请前往授权',
-				    success: function (res) {
-				        if (res.confirm) {
-				           that.showDialog(true)
-				        } else if (res.cancel) {
-				            uni.showToast({
-				                title: '授权失败不能正常使用',
-				                duration: 2000
-				            });
-				        }
-				    }
-				});
-			//     console.log("未授权=====")
-			//     that.showSettingToast("请授权")
-			   }
-			  }
-			 })
+			// uni.getSetting({
+			//   success(res) {
+			//    if (res.authSetting['scope.userInfo']) {
+			//     console.log("已授权=====")
+			//     console.log(uni.getStorageSync('sessionId'));
+			//     // 已经授权,可以直接调用 getUserInfo 获取头像昵称
+			//     uni.getUserInfo({
+			//      success(res) {
+			// 	 that.login(res.userInfo);
+			// 	  // uni.setStorage({//缓存用户登陆状态
+			// 			//  key: 'userInfo',  
+			// 			//  data: res.userInfo  
+			// 	  // })  
+			//      },
+			//      fail(res) {
+			//       console.log("获取用户信息失败", res)
+			//      }
+			//     })
+			//    } else {
+			// 	console.log("触发授权")
+			// 	uni.showModal({
+			// 	    title: '提示',
+			// 	    content: '请前往授权',
+			// 	    success: function (res) {
+			// 	        if (res.confirm) {
+			// 	           that.showDialog(true)
+			// 	        } else if (res.cancel) {
+			// 	            uni.showToast({
+			// 	                title: '授权失败不能正常使用',
+			// 	                duration: 2000
+			// 	            });
+			// 	        }
+			// 	    }
+			// 	});
+			// //     console.log("未授权=====")
+			// //     that.showSettingToast("请授权")
+			//    }
+			//   }
+			//  })
 		},
 		onShow: function() {
 			console.log('App Show')
@@ -123,4 +123,6 @@
 
 <style>
 	/*每个页面公共css */
+	@import '/wxcomponents/dist/common/index.wxss';
+	@import '/common/uin.css';
 </style>

+ 0 - 4
README.md

@@ -1,4 +0,0 @@
-## myuinapp
-
-
-

+ 1446 - 0
common/uin.css

@@ -0,0 +1,1446 @@
+@font-face {
+	font-family: uniicons;
+	font-weight: normal;
+	font-style: normal;
+	src: url('https://img-cdn-qiniu.dcloud.net.cn/fonts/uni.ttf') format('truetype');
+}
+
+/*通用 */
+view{
+	font-size:28upx; 
+}
+progress, checkbox-group{
+	width: 100%;
+}
+form {
+	width: 100%;
+}
+.uni-flex {
+	display: flex;
+	flex-direction: row;
+}
+.uni-flex-item {
+	flex: 1;
+}
+.uni-row {
+	flex-direction: row;
+}
+.uni-column {
+	flex-direction: column;
+}
+.uni-link{
+	color:#576B95;
+	font-size:26upx;
+}
+.uni-center{
+	text-align:center;
+}
+.uni-inline-item{
+	display: flex;
+	flex-direction: row;
+	align-items:center;
+}
+.uni-inline-item text{
+	margin-right: 20upx;
+}
+.uni-inline-item text:last-child{
+	margin-right: 0upx;
+	margin-left: 20upx;
+}
+
+/* page */
+.uni-page-head{
+	padding:35upx; 
+	text-align: center;
+}
+.uni-page-head-title {
+	display: inline-block;
+	padding: 0 40upx;
+	font-size: 30upx;
+	height: 88upx;
+	line-height: 88upx;
+	color: #BEBEBE;
+	box-sizing: border-box;
+	border-bottom: 2upx solid #D8D8D8;
+}
+.uni-page-body {
+	width: 100%;
+	flex-grow: 1;
+	overflow-x: hidden;
+}
+.uni-padding-wrap{
+	width:690upx;
+	padding:0 30upx;
+}
+.uni-word {
+	text-align: center;
+	padding:200upx 100upx;
+}
+.uni-title {
+	font-size:30upx;
+	font-weight:500;
+	padding:20upx 0;
+	line-height:1.5;
+}
+.uni-text{
+	font-size:28upx;
+}
+.uni-title text{
+	font-size:24upx; 
+	color:#888;
+}
+
+.uni-text-gray{
+	color: #ccc;
+}
+.uni-text-small {
+	font-size:24upx;
+}
+.uni-common-mb{
+	margin-bottom:30upx;
+}
+.uni-common-pb{
+	padding-bottom:30upx;
+}
+.uni-common-pl{
+	padding-left:30upx;
+}
+.uni-common-mt{
+	margin-top:30upx;
+}
+/* 背景色 */
+.uni-bg-red{
+	background:#F76260; color:#FFF;
+}
+.uni-bg-green{
+	background:#09BB07; color:#FFF;
+}
+.uni-bg-blue{
+	background:#007AFF; color:#FFF;
+}
+/* 标题 */
+.uni-h1 {font-size: 80upx; font-weight:700;}
+.uni-h2 {font-size: 60upx; font-weight:700;}
+.uni-h3 {font-size: 48upx; font-weight:700;}
+.uni-h4 {font-size: 36upx; font-weight:700;}
+.uni-h5 {font-size: 28upx; color: #8f8f94;}
+.uni-h6 {font-size: 24upx; color: #8f8f94;}
+.uni-bold{font-weight:bold;}
+
+/* 文本溢出隐藏 */
+.uni-ellipsis {overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+
+/* 竖向百分百按钮 */
+.uni-btn-v{
+	padding:10upx 0;
+}
+.uni-btn-v button{margin:20upx 0;}
+
+/* 表单 */
+.uni-form-item{
+	display:flex;
+	width:100%;
+	padding:10upx 0;
+}
+.uni-form-item .title{
+	padding:10upx 25upx;
+}
+.uni-label {
+	width: 210upx;
+	word-wrap: break-word;
+	word-break: break-all;
+	text-indent:20upx;
+}
+.uni-input {
+	height: 50upx;
+	padding: 15upx 25upx;
+	line-height:50upx;
+	font-size:28upx;
+	background:#FFF;
+	flex: 1;
+}
+radio-group, checkbox-group{
+	width:100%;
+}
+radio-group label, checkbox-group label{
+	padding-right:20upx;
+}
+.uni-form-item .with-fun{
+	display:flex; 
+	flex-wrap:nowrap; 
+	background:#FFFFFF;
+}
+.uni-form-item .with-fun .uni-icon{
+	width:40px; 
+	height:80upx; 
+	line-height:80upx; 
+	flex-shrink:0;
+}
+
+/* loadmore */
+.uni-loadmore{
+	height:80upx;
+	line-height:80upx;
+	text-align:center;
+	padding-bottom:30upx;
+}
+/*数字角标*/
+.uni-badge,
+.uni-badge-default {
+	font-family: 'Helvetica Neue', Helvetica, sans-serif;
+	font-size: 12px;
+	line-height: 1;
+	display: inline-block;
+	padding: 3px 6px;
+	color: #333;
+	border-radius: 100px;
+	background-color: rgba(0, 0, 0, .15);
+}
+.uni-badge.uni-badge-inverted {
+	padding: 0 5px 0 0;
+	color: #929292;
+	background-color: transparent
+}
+.uni-badge-primary {
+	color: #fff;
+	background-color: #007aff
+}
+.uni-badge-blue.uni-badge-inverted,
+.uni-badge-primary.uni-badge-inverted {
+	color: #007aff;
+	background-color: transparent
+}
+.uni-badge-green,
+.uni-badge-success {
+	color: #fff;
+	background-color: #4cd964;
+}
+.uni-badge-green.uni-badge-inverted,
+.uni-badge-success.uni-badge-inverted {
+	color: #4cd964;
+	background-color: transparent
+}
+.uni-badge-warning,
+.uni-badge-yellow {
+	color: #fff;
+	background-color: #f0ad4e
+}
+.uni-badge-warning.uni-badge-inverted,
+.uni-badge-yellow.uni-badge-inverted {
+	color: #f0ad4e;
+	background-color: transparent
+}
+.uni-badge-danger,
+.uni-badge-red {
+	color: #fff;
+	background-color: #dd524d
+}
+.uni-badge-danger.uni-badge-inverted,
+.uni-badge-red.uni-badge-inverted {
+	color: #dd524d;
+	background-color: transparent
+}
+.uni-badge-purple,
+.uni-badge-royal {
+	color: #fff;
+	background-color: #8a6de9
+}
+.uni-badge-purple.uni-badge-inverted,
+.uni-badge-royal.uni-badge-inverted {
+	color: #8a6de9;
+	background-color: transparent
+}
+
+/*折叠面板 */
+.uni-collapse-content {
+	height: 0;
+	width: 100%;
+	overflow: hidden;
+}
+.uni-collapse-content.uni-active {
+	height: auto;
+}
+
+/*卡片视图 */
+.uni-card {
+	background: #fff;
+	border-radius: 8upx;
+	margin:20upx 0;
+	position: relative;
+	box-shadow: 0 2upx 4upx rgba(0, 0, 0, .3);
+}
+.uni-card-content {
+	font-size: 30upx;
+}
+.uni-card-content.image-view{
+    width: 100%;
+    margin: 0;
+}
+.uni-card-content-inner {
+	position: relative;
+	padding: 30upx;
+}
+.uni-card-footer,
+.uni-card-header {
+	position: relative;
+	display: flex;
+	min-height: 50upx;
+	padding: 20upx 30upx;
+	justify-content: space-between;
+	align-items: center;
+}
+.uni-card-header {
+	font-size: 36upx;
+}
+.uni-card-footer {
+	color: #6d6d72;
+}
+.uni-card-footer:before,
+.uni-card-header:after {
+	position: absolute;
+	top: 0;
+	right: 0;
+	left: 0;
+	height: 2upx;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-card-header:after {
+	top: auto;
+	bottom: 0;
+}
+.uni-card-media {
+	justify-content: flex-start;
+}
+.uni-card-media-logo {
+	height: 84upx;
+	width: 84upx;
+	margin-right: 20upx;
+}
+.uni-card-media-body {
+	height: 84upx;
+	display: flex;
+	flex-direction: column;
+	justify-content: space-between;
+	align-items: flex-start;
+}
+.uni-card-media-text-top {
+	line-height: 36upx;
+	font-size: 34upx;
+}
+.uni-card-media-text-bottom {
+	line-height: 30upx;
+	font-size: 28upx;
+	color: #8f8f94;
+}
+.uni-card-link {
+	color: #007AFF;
+}
+
+/* 列表 */
+.uni-list {
+	background-color: #FFFFFF;
+	position: relative;
+	width: 100%;
+	display: flex;
+	flex-direction: column;
+}
+.uni-list:after {
+	position: absolute;
+	z-index: 10;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list::before {
+	position: absolute;
+	z-index: 10;
+	right: 0;
+	top: 0;
+	left: 0;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list-cell {
+	position: relative;
+	display: flex;
+	flex-direction: row;
+	justify-content: space-between;
+	align-items: center;
+}
+.uni-list-cell-hover {
+	background-color: #eee;
+}
+.uni-list-cell-pd {
+	padding: 22upx 30upx;
+}
+.uni-list-cell-left {
+	font-size:28upx;
+	padding: 0 30upx;
+}
+.uni-list-cell-db,
+.uni-list-cell-right {
+	flex: 1;
+}
+.uni-list-cell::after {
+	position: absolute;
+  z-index: 3;
+	right: 0;
+	bottom: 0;
+	left: 30upx;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list .uni-list-cell:last-child::after {
+	height: 0upx;
+}
+.uni-list-cell-last.uni-list-cell::after {
+	height: 0upx;
+}
+.uni-list-cell-divider {
+	position: relative;
+	display: flex;
+	color: #999;
+	background-color: #f7f7f7;
+	padding:15upx 20upx;
+}
+.uni-list-cell-divider::before {
+	position: absolute;
+	right: 0;
+	top: 0;
+	left: 0;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list-cell-divider::after {
+	position: absolute;
+	right: 0;
+	bottom: 0;
+	left: 0upx;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list-cell-navigate {
+	font-size:30upx;
+	padding: 22upx 30upx;
+	line-height: 48upx;
+	position: relative;
+	display: flex;
+	box-sizing: border-box;
+	width: 100%;
+	flex: 1;
+	justify-content: space-between;
+	align-items: center;
+}
+.uni-list-cell-navigate {
+	padding-right: 36upx;
+}
+.uni-navigate-badge {
+	padding-right: 50upx;
+}
+.uni-list-cell-navigate.uni-navigate-right:after {
+	font-family: uniicons;
+	content: '\e583';
+	position: absolute;
+	right: 24upx;
+	top: 50%;
+	color: #bbb;
+	-webkit-transform: translateY(-50%);
+	transform: translateY(-50%);
+}
+.uni-list-cell-navigate.uni-navigate-bottom:after {
+	font-family: uniicons;
+	content: '\e581';
+	position: absolute;
+	right: 24upx;
+	top: 50%;
+	color: #bbb;
+	-webkit-transform: translateY(-50%);
+	transform: translateY(-50%);
+}
+.uni-list-cell-navigate.uni-navigate-bottom.uni-active::after {
+	font-family: uniicons;
+	content: '\e580';
+	position: absolute;
+	right: 24upx;
+	top: 50%;
+	color: #bbb;
+	-webkit-transform: translateY(-50%);
+	transform: translateY(-50%);
+}
+.uni-collapse.uni-list-cell {
+	flex-direction: column;
+}
+.uni-list-cell-navigate.uni-active {
+	background: #eee;
+}
+.uni-list.uni-collapse {
+	box-sizing: border-box;
+	height: 0;
+	overflow: hidden;
+}
+.uni-collapse .uni-list-cell {
+	padding-left: 20upx;
+}
+.uni-collapse .uni-list-cell::after {
+	left: 52upx;
+}
+.uni-list.uni-active {
+	height: auto;
+}
+
+/* 三行列表 */
+.uni-triplex-row {
+	display: flex;
+	flex: 1;
+	width: 100%;
+	box-sizing: border-box;
+	flex-direction: row;
+	padding: 22upx 30upx;
+}
+.uni-triplex-right,
+.uni-triplex-left {
+	display: flex;
+	flex-direction: column;
+}
+.uni-triplex-left {
+	width: 84%;
+}
+.uni-triplex-left .uni-title{
+	padding:8upx 0;
+}
+.uni-triplex-left .uni-text, .uni-triplex-left .uni-text-small{color:#999999;}
+.uni-triplex-right {
+	width: 16%;
+	text-align: right;
+}
+
+/* 图文列表 */
+.uni-media-list {
+	padding: 22upx 30upx;
+	box-sizing: border-box;
+	display: flex;
+	width: 100%;
+	flex-direction: row;
+}
+.uni-navigate-right.uni-media-list {
+	padding-right: 74upx;
+}
+.uni-pull-right {
+	flex-direction: row-reverse;
+}
+.uni-pull-right>.uni-media-list-logo {
+	margin-right: 0upx;
+	margin-left: 20upx;
+}
+.uni-media-list-logo {
+	height: 84upx;
+	width: 84upx;
+	margin-right: 20upx;
+}
+.uni-media-list-logo image {
+	height: 100%;
+	width: 100%;
+}
+.uni-media-list-body {
+	height: 84upx;
+	display: flex;
+	flex: 1;
+	flex-direction: column;
+	justify-content: space-between;
+	align-items: flex-start;
+	overflow: hidden;
+}
+.uni-media-list-text-top {
+	width: 100%;
+	line-height: 36upx;
+	font-size: 30upx;
+}
+.uni-media-list-text-bottom {
+	width: 100%;
+	line-height: 30upx;
+	font-size: 26upx;
+	color: #8f8f94;
+}
+
+/* 九宫格 */
+.uni-grid-9 {
+	background: #f2f2f2;
+	width: 750upx;
+	display: flex;
+	flex-direction: row;
+	flex-wrap: wrap;
+	border-top: 2upx solid #eee;
+}
+.uni-grid-9-item {
+	width: 250upx;
+	height: 200upx;
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	justify-content: center;
+	border-bottom: 2upx solid;
+	border-right: 2upx solid;
+	border-color: #eee;
+	box-sizing: border-box;
+}
+.no-border-right {
+	border-right: none;
+}
+.uni-grid-9-image {
+	width: 100upx;
+	height: 100upx;
+}
+.uni-grid-9-text {
+	width: 250upx;
+	line-height: 4upx;
+	height: 40upx;
+	text-align: center;
+	font-size: 30upx;
+}
+.uni-grid-9-item-hover {
+	background: rgba(0, 0, 0, 0.1);
+}
+
+/* 上传 */
+.uni-uploader {
+	flex: 1;
+	flex-direction: column;
+}
+.uni-uploader-head {
+	display: flex;
+	flex-direction: row;
+	justify-content: space-between;
+}
+.uni-uploader-info {
+	color: #B2B2B2;
+}
+.uni-uploader-body {
+	margin-top: 16upx;
+}
+.uni-uploader__files {
+	display: flex;
+	flex-direction: row;
+	flex-wrap: wrap;
+}
+.uni-uploader__file {
+	margin: 10upx;
+	width: 210upx;
+	height: 210upx;
+}
+.uni-uploader__img {
+	display: block;
+	width: 210upx;
+	height: 210upx;
+}
+.uni-uploader__input-box {
+	position: relative;
+	margin:10upx;
+	width: 208upx;
+	height: 208upx;
+	border: 2upx solid #D9D9D9;
+}
+.uni-uploader__input-box:before,
+.uni-uploader__input-box:after {
+	content: " ";
+	position: absolute;
+	top: 50%;
+	left: 50%;
+	-webkit-transform: translate(-50%, -50%);
+	transform: translate(-50%, -50%);
+	background-color: #D9D9D9;
+}
+.uni-uploader__input-box:before {
+	width: 4upx;
+	height: 79upx;
+}
+.uni-uploader__input-box:after {
+	width: 79upx;
+	height: 4upx;
+}
+.uni-uploader__input-box:active {
+	border-color: #999999;
+}
+.uni-uploader__input-box:active:before,
+.uni-uploader__input-box:active:after {
+	background-color: #999999;
+}
+.uni-uploader__input {
+	position: absolute;
+	z-index: 1;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	opacity: 0;
+}
+
+/*问题反馈*/
+.feedback-title {
+	display: flex;
+	flex-direction: row;
+	justify-content: space-between;
+	align-items: center;
+	padding: 20upx;
+	color: #8f8f94;
+	font-size: 28upx;
+}
+.feedback-star-view.feedback-title {
+	justify-content: flex-start;
+	margin: 0;
+}
+.feedback-quick {
+	position: relative;
+	padding-right: 40upx;
+}
+.feedback-quick:after {
+	font-family: uniicons;
+	font-size: 40upx;
+	content: '\e581';
+	position: absolute;
+	right: 0;
+	top: 50%;
+	color: #bbb;
+	-webkit-transform: translateY(-50%);
+	transform: translateY(-50%);
+}
+.feedback-body {
+	background: #fff;
+}
+.feedback-textare {
+	height: 200upx;
+	font-size: 34upx;
+	line-height: 50upx;
+	width: 100%;
+	box-sizing: border-box;
+	padding: 20upx 30upx 0;
+}
+.feedback-input {
+	font-size: 34upx;
+	height: 50upx;
+	min-height: 50upx;
+	padding: 15upx 20upx;
+	line-height: 50upx;
+}
+.feedback-uploader {
+	padding: 22upx 20upx;
+}
+.feedback-star {
+	font-family: uniicons;
+	font-size: 40upx;
+	margin-left: 6upx;
+}
+.feedback-star-view {
+	margin-left: 20upx;
+}
+.feedback-star:after {
+	content: '\e408';
+}
+.feedback-star.active {
+	color: #FFB400;
+}
+.feedback-star.active:after {
+	content: '\e438';
+}
+.feedback-submit {
+	background: #007AFF;
+	color: #FFFFFF;
+	margin: 20upx;
+}
+
+/* input group */
+.uni-input-group {
+	position: relative;
+	padding: 0;
+	border: 0;
+	background-color: #fff;
+}
+
+.uni-input-group:before {
+	position: absolute;
+	top: 0;
+	right: 0;
+	left: 0;
+	height: 2upx;
+	content: '';
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+
+.uni-input-group:after {
+	position: absolute;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	height: 2upx;
+	content: '';
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+
+.uni-input-row {
+	position: relative;
+	display: flex;
+	flex-direction: row;
+	font-size:28upx;
+	padding: 22upx 30upx;
+	justify-content: space-between;
+}
+
+.uni-input-group .uni-input-row:after {
+	position: absolute;
+	right: 0;
+	bottom: 0;
+	left: 30upx;
+	height: 2upx;
+	content: '';
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+
+.uni-input-row label {
+	line-height: 70upx;
+}
+
+/* textarea */
+.uni-textarea{
+	width:100%;
+	background:#FFF;
+}
+.uni-textarea textarea{
+	width:96%;
+	padding:18upx 2%;
+	line-height:1.6;
+	font-size:28upx;
+	height:150upx;
+}
+
+/* tab bar */
+.uni-tab-bar {
+	display: flex;
+	flex: 1;
+	flex-direction: column;
+	overflow: hidden;
+	height: 100%;
+}
+
+.uni-tab-bar .list {
+	width: 750upx;
+	height: 100%;
+}
+
+.uni-swiper-tab {
+	width: 100%;
+	white-space: nowrap;
+	line-height: 100upx;
+	height: 100upx;
+	border-bottom: 1px solid #c8c7cc;
+}
+
+.swiper-tab-list {
+	font-size: 30upx;
+	width: 150upx;
+	display: inline-block;
+	text-align: center;
+	color: #555;
+}
+
+.uni-tab-bar .active {
+	color: #007AFF;
+}
+
+.uni-tab-bar .swiper-box {
+	flex: 1;
+	width: 100%;
+	height: calc(100% - 100upx);
+}
+
+.uni-tab-bar-loading{
+	padding:20upx 0;
+}
+
+/* comment */
+.uni-comment{padding:5rpx 0; display: flex; flex-grow:1; flex-direction: column;}
+.uni-comment-list{flex-wrap:nowrap; padding:10rpx 0; margin:10rpx 0; width:100%; display: flex;}
+.uni-comment-face{width:70upx; height:70upx; border-radius:100%; margin-right:20upx; flex-shrink:0; overflow:hidden;}
+.uni-comment-face image{width:100%; border-radius:100%;}
+.uni-comment-body{width:100%;}
+.uni-comment-top{line-height:1.5em; justify-content:space-between;}
+.uni-comment-top text{color:#0A98D5; font-size:24upx;}
+.uni-comment-date{line-height:38upx; flex-direction:row; justify-content:space-between; display:flex !important; flex-grow:1;}
+.uni-comment-date view{color:#666666; font-size:24upx; line-height:38upx;}
+.uni-comment-content{line-height:1.6em; font-size:28upx; padding:8rpx 0;}
+.uni-comment-replay-btn{background:#FFF; font-size:24upx; line-height:28upx; padding:5rpx 20upx; border-radius:30upx; color:#333 !important; margin:0 10upx;}
+
+/* swiper msg */
+.uni-swiper-msg{width:100%; padding:12rpx 0; flex-wrap:nowrap; display:flex;}
+.uni-swiper-msg-icon{width:50upx; margin-right:20upx;}
+.uni-swiper-msg-icon image{width:100%; flex-shrink:0;}
+.uni-swiper-msg swiper{width:100%; height:50upx;}
+.uni-swiper-msg swiper-item{line-height:50upx;}
+
+/* product */
+.uni-product-list {
+    display: flex;
+    width: 100%;
+    flex-wrap: wrap;
+    flex-direction: row;
+}
+
+.uni-product {
+    padding: 20upx;
+    display: flex;
+    flex-direction: column;
+}
+
+.image-view {
+    height: 330upx;
+    width: 330upx;
+	margin:12upx 0;
+}
+
+.uni-product-image {
+    height: 330upx;
+    width: 330upx;
+}
+
+.uni-product-title {
+    width: 300upx;
+    word-break: break-all;
+    display: -webkit-box;
+    overflow: hidden;
+	line-height:1.5;
+    text-overflow: ellipsis;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
+
+.uni-product-price {
+	margin-top:10upx;
+    font-size: 28upx;
+	line-height:1.5;
+    position: relative;
+}
+
+.uni-product-price-original {
+    color: #e80080;
+}
+
+.uni-product-price-favour {
+    color: #888888;
+    text-decoration: line-through;
+    margin-left: 10upx;
+}
+
+.uni-product-tip {
+    position: absolute;
+    right: 10upx;
+    background-color: #ff3333;
+    color: #ffffff;
+    padding: 0 10upx;
+    border-radius: 5upx;
+}
+
+/* timeline */
+.uni-timeline {
+		margin: 35upx 0;
+		display: flex;
+		flex-direction: column;
+		position: relative;
+	}
+
+
+	.uni-timeline-item {
+		display: flex;
+		flex-direction: row;
+		position: relative;
+		padding-bottom: 20upx;
+		box-sizing: border-box;
+		overflow: hidden;
+
+	}
+
+	.uni-timeline-item .uni-timeline-item-keynode {
+		width: 160upx;
+		flex-shrink: 0;
+		box-sizing: border-box;
+		padding-right: 20upx;
+		text-align: right;
+		line-height: 65upx;
+	}
+
+	.uni-timeline-item .uni-timeline-item-divider {
+		flex-shrink: 0;
+		position: relative;
+		width: 30upx;
+		height: 30upx;
+		top: 15upx;
+		border-radius: 50%;
+		background-color: #bbb;
+	}
+
+
+
+	.uni-timeline-item-divider::before,
+	.uni-timeline-item-divider::after {
+		position: absolute;
+		left: 15upx;
+		width: 1upx;
+		height: 100vh;
+		content: '';
+		background: inherit;
+	}
+
+	.uni-timeline-item-divider::before {
+		bottom: 100%;
+	}
+
+	.uni-timeline-item-divider::after {
+		top: 100%;
+	}
+
+
+	.uni-timeline-last-item .uni-timeline-item-divider:after {
+		display: none;
+	}
+
+	.uni-timeline-first-item .uni-timeline-item-divider:before {
+		display: none;
+	}
+
+	.uni-timeline-item .uni-timeline-item-content {
+		padding-left: 20upx;
+	}
+	
+	.uni-timeline-last-item .bottom-border::after{
+		display: none;
+	}
+	
+	.uni-timeline-item-content .datetime{
+		color: #CCCCCC;
+	}
+	
+	/* 自定义节点颜色 */
+	.uni-timeline-last-item .uni-timeline-item-divider{
+		background-color: #1AAD19;
+	}
+  
+  
+/* uni-icon */
+
+.uni-icon {
+	font-family: uniicons;
+	font-size: 24px;
+	font-weight: normal;
+	font-style: normal;
+	line-height: 1;
+	display: inline-block;
+	text-decoration: none;
+	-webkit-font-smoothing: antialiased;
+}
+
+.uni-icon.uni-active {
+	color: #007aff;
+}
+
+.uni-icon-contact:before {
+	content: '\e100';
+}
+
+.uni-icon-person:before {
+	content: '\e101';
+}
+
+.uni-icon-personadd:before {
+	content: '\e102';
+}
+
+.uni-icon-contact-filled:before {
+	content: '\e130';
+}
+
+.uni-icon-person-filled:before {
+	content: '\e131';
+}
+
+.uni-icon-personadd-filled:before {
+	content: '\e132';
+}
+
+.uni-icon-phone:before {
+	content: '\e200';
+}
+
+.uni-icon-email:before {
+	content: '\e201';
+}
+
+.uni-icon-chatbubble:before {
+	content: '\e202';
+}
+
+.uni-icon-chatboxes:before {
+	content: '\e203';
+}
+
+.uni-icon-phone-filled:before {
+	content: '\e230';
+}
+
+.uni-icon-email-filled:before {
+	content: '\e231';
+}
+
+.uni-icon-chatbubble-filled:before {
+	content: '\e232';
+}
+
+.uni-icon-chatboxes-filled:before {
+	content: '\e233';
+}
+
+.uni-icon-weibo:before {
+	content: '\e260';
+}
+
+.uni-icon-weixin:before {
+	content: '\e261';
+}
+
+.uni-icon-pengyouquan:before {
+	content: '\e262';
+}
+
+.uni-icon-chat:before {
+	content: '\e263';
+}
+
+.uni-icon-qq:before {
+	content: '\e264';
+}
+
+.uni-icon-videocam:before {
+	content: '\e300';
+}
+
+.uni-icon-camera:before {
+	content: '\e301';
+}
+
+.uni-icon-mic:before {
+	content: '\e302';
+}
+
+.uni-icon-location:before {
+	content: '\e303';
+}
+
+.uni-icon-mic-filled:before,
+.uni-icon-speech:before {
+	content: '\e332';
+}
+
+.uni-icon-location-filled:before {
+	content: '\e333';
+}
+
+.uni-icon-micoff:before {
+	content: '\e360';
+}
+
+.uni-icon-image:before {
+	content: '\e363';
+}
+
+.uni-icon-map:before {
+	content: '\e364';
+}
+
+.uni-icon-compose:before {
+	content: '\e400';
+}
+
+.uni-icon-trash:before {
+	content: '\e401';
+}
+
+.uni-icon-upload:before {
+	content: '\e402';
+}
+
+.uni-icon-download:before {
+	content: '\e403';
+}
+
+.uni-icon-close:before {
+	content: '\e404';
+}
+
+.uni-icon-redo:before {
+	content: '\e405';
+}
+
+.uni-icon-undo:before {
+	content: '\e406';
+}
+
+.uni-icon-refresh:before {
+	content: '\e407';
+}
+
+.uni-icon-star:before {
+	content: '\e408';
+}
+
+.uni-icon-plus:before {
+	content: '\e409';
+}
+
+.uni-icon-minus:before {
+	content: '\e410';
+}
+
+.uni-icon-circle:before,
+.uni-icon-checkbox:before {
+	content: '\e411';
+}
+
+.uni-icon-close-filled:before,
+.uni-icon-clear:before {
+	content: '\e434';
+}
+
+.uni-icon-refresh-filled:before {
+	content: '\e437';
+}
+
+.uni-icon-star-filled:before {
+	content: '\e438';
+}
+
+.uni-icon-plus-filled:before {
+	content: '\e439';
+}
+
+.uni-icon-minus-filled:before {
+	content: '\e440';
+}
+
+.uni-icon-circle-filled:before {
+	content: '\e441';
+}
+
+.uni-icon-checkbox-filled:before {
+	content: '\e442';
+}
+
+.uni-icon-closeempty:before {
+	content: '\e460';
+}
+
+.uni-icon-refreshempty:before {
+	content: '\e461';
+}
+
+.uni-icon-reload:before {
+	content: '\e462';
+}
+
+.uni-icon-starhalf:before {
+	content: '\e463';
+}
+
+.uni-icon-spinner:before {
+	content: '\e464';
+}
+
+.uni-icon-spinner-cycle:before {
+	content: '\e465';
+}
+
+.uni-icon-search:before {
+	content: '\e466';
+}
+
+.uni-icon-plusempty:before {
+	content: '\e468';
+}
+
+.uni-icon-forward:before {
+	content: '\e470';
+}
+
+.uni-icon-back:before,
+.uni-icon-left-nav:before {
+	content: '\e471';
+}
+
+.uni-icon-checkmarkempty:before {
+	content: '\e472';
+}
+
+.uni-icon-home:before {
+	content: '\e500';
+}
+
+.uni-icon-navigate:before {
+	content: '\e501';
+}
+
+.uni-icon-gear:before {
+	content: '\e502';
+}
+
+.uni-icon-paperplane:before {
+	content: '\e503';
+}
+
+.uni-icon-info:before {
+	content: '\e504';
+}
+
+.uni-icon-help:before {
+	content: '\e505';
+}
+
+.uni-icon-locked:before {
+	content: '\e506';
+}
+
+.uni-icon-more:before {
+	content: '\e507';
+}
+
+.uni-icon-flag:before {
+	content: '\e508';
+}
+
+.uni-icon-home-filled:before {
+	content: '\e530';
+}
+
+.uni-icon-gear-filled:before {
+	content: '\e532';
+}
+
+.uni-icon-info-filled:before {
+	content: '\e534';
+}
+
+.uni-icon-help-filled:before {
+	content: '\e535';
+}
+
+.uni-icon-more-filled:before {
+	content: '\e537';
+}
+
+.uni-icon-settings:before {
+	content: '\e560';
+}
+
+.uni-icon-list:before {
+	content: '\e562';
+}
+
+.uni-icon-bars:before {
+	content: '\e563';
+}
+
+.uni-icon-loop:before {
+	content: '\e565';
+}
+
+.uni-icon-paperclip:before {
+	content: '\e567';
+}
+
+.uni-icon-eye:before {
+	content: '\e568';
+}
+
+.uni-icon-arrowup:before {
+	content: '\e580';
+}
+
+.uni-icon-arrowdown:before {
+	content: '\e581';
+}
+
+.uni-icon-arrowleft:before {
+	content: '\e582';
+}
+
+.uni-icon-arrowright:before {
+	content: '\e583';
+}
+
+.uni-icon-arrowthinup:before {
+	content: '\e584';
+}
+
+.uni-icon-arrowthindown:before {
+	content: '\e585';
+}
+
+.uni-icon-arrowthinleft:before {
+	content: '\e586';
+}
+
+.uni-icon-arrowthinright:before {
+	content: '\e587';
+}
+
+.uni-icon-pulldown:before {
+	content: '\e588';
+}
+
+.uni-icon-scan:before {
+    content: "\e612";
+}
+
+/* 分界线 */
+.uni-divider{
+    height: 110upx;
+    display: flex;
+    align-items:center;
+    justify-content: center;
+    position: relative;
+}
+.uni-divider__content{
+    font-size: 28upx;
+    color: #999;
+    padding: 0 20upx;
+    position: relative;
+    z-index: 101;
+    background: #F4F5F6;
+}
+.uni-divider__line{
+    background-color: #CCCCCC;
+    height: 1px;
+    width: 100%;
+    position: absolute;
+    z-index: 100;
+    top: 50%;
+    left: 0;
+    transform: translateY(50%);
+}

+ 138 - 0
component/clickCircle.vue

@@ -0,0 +1,138 @@
+<template>
+	<view class="circle" v-if="circleShow == 1" :style="isCricle" :class="circleShow==1?ainimaChoose:''"></view>
+</template>
+
+<script>
+	export default {
+		name: 'clickCircle',
+		data() {
+			return {
+				isReady:1,
+				isCricle:'',
+				circleShow:0,
+				ainimaChoose:''
+			};
+		},
+		created() {
+			if(Math.random() >= 0.5) {
+				this.ainimaChoose = 'animation0'
+			} else{
+				this.ainimaChoose = 'animation1'
+			}
+		},
+		methods:{
+			conClick(e){
+				var isReady = this.isReady
+				if (isReady === 1) {
+					// #ifdef H5
+					var isTop = Math.round(e.changedTouches[0].clientY) + 15 + 'px'
+					var isLeft = Math.round(e.changedTouches[0].clientX) - 25 + 'px'
+					// #endif
+					// #ifndef H5
+					  var isTop = Math.round(e.changedTouches[0].clientY) - 25 + 'px'
+					  var isLeft = Math.round(e.changedTouches[0].clientX) - 25 + 'px'
+					// #endif
+					this.isCricle = `top:${isTop};left:${isLeft};`
+					this.circleShow = 1
+					this.isReady = 0
+					var that = this
+				  setTimeout(() => {
+					  that.circleShow = 0
+					  that.isReady = 1
+				  }, 300)
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.circle{
+	width: 100upx;
+	height: 100upx;
+	border-radius: 100%;
+	position: fixed;
+	z-index: 999;
+	}
+	
+	
+	// 动画0
+	.animation0::before, .animation0::after {
+  position: absolute;
+  content: '';
+  display: block;
+  width: 140%;
+  height: 100%;
+  left: -20%;
+  z-index: -1000;
+  transition: all ease-in-out 0.5s;
+  background-repeat: no-repeat;
+}
+	
+	.animation0::before{
+		  display: none;
+		  top: -55%;
+		  background-image: radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, transparent 20%, #ff0081 20%, transparent 30%), radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, transparent 10%, #ff0081 15%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%);
+		  background-size: 10% 10%, 20% 20%, 15% 15%, 20% 20%, 18% 18%, 10% 10%, 15% 15%, 10% 10%, 18% 18%;
+	}
+	.animation0::after{
+		  display: none;
+		  bottom: -55%;
+		  background-image: radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, transparent 10%, #ff0081 15%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%);
+		  background-size: 15% 15%, 20% 20%, 18% 18%, 20% 20%, 15% 15%, 10% 10%, 20% 20%;
+	}
+	
+	
+	.animation0::before{
+	display: block;
+	animation: topBubbles ease-in-out 0.75s forwards;
+	}
+	.animation0::after{
+		display: block;
+	animation: bottomBubbles ease-in-out 0.75s forwards;
+	}
+	
+	@keyframes topBubbles {
+  0% {
+    background-position: 5% 90%, 10% 90%, 10% 90%, 15% 90%, 25% 90%, 25% 90%, 40% 90%, 55% 90%, 70% 90%;
+  }
+  50% {
+    background-position: 0% 80%, 0% 20%, 10% 40%, 20% 0%, 30% 30%, 22% 50%, 50% 50%, 65% 20%, 90% 30%;
+  }
+  100% {
+    background-position: 0% 70%, 0% 10%, 10% 30%, 20% -10%, 30% 20%, 22% 40%, 50% 40%, 65% 10%, 90% 20%;
+    background-size: 0% 0%, 0% 0%,  0% 0%,  0% 0%,  0% 0%,  0% 0%;
+  }
+}
+@keyframes bottomBubbles {
+  0% {
+    background-position: 10% -10%, 30% 10%, 55% -10%, 70% -10%, 85% -10%, 70% -10%, 70% 0%;
+  }
+  50% {
+    background-position: 0% 80%, 20% 80%, 45% 60%, 60% 100%, 75% 70%, 95% 60%, 105% 0%;
+  }
+  100% {
+    background-position: 0% 90%, 20% 90%, 45% 70%, 60% 110%, 75% 80%, 95% 70%, 110% 10%;
+    background-size: 0% 0%, 0% 0%,  0% 0%,  0% 0%,  0% 0%,  0% 0%;
+  }
+}
+
+	// 动画1
+	.animation1{
+	animation: shockwave 0.3s 0s linear;
+	}
+	@keyframes shockwave {
+	  0% {
+	    transform: scale(1);
+	    box-shadow: 0 0 2px rgba(0, 0, 0, 0.15), inset 0 0 1px rgba(0, 0, 0, 0.15);
+	  }
+	  95% {
+	    box-shadow: 0 0 50px rgba(0, 0, 0, 0), inset 0 0 30px rgba(0, 0, 0, 0);
+	  }
+	  100% {
+	    transform: scale(2.25);
+	  }
+	}
+	
+	
+</style>

+ 48 - 0
component/commoNar.vue

@@ -0,0 +1,48 @@
+<template>
+	<view style="width: 95%;margin: 12upx auto;">
+			<view class="typeItem">
+				全部
+			</view>
+			<view class="typeItem">
+				上新
+				<van-icon size="20px" name="arrow-up" />
+				<van-icon  size="20px" name="arrow-down" />
+			</view>
+			<view class="typeItem">
+				 价格
+					<van-icon size="20px" name="arrow-up" />
+					<van-icon  size="20px" name="arrow-down" />
+				
+			</view>
+			<view class="typeItem">
+			<van-dropdown-menu>
+			    <van-dropdown-item  title="分类" >
+					 <!-- <van-cell title="全部"></van-cell>
+					  <van-cell title="包邮"></van-cell>
+					  <van-cell title="自费"></van-cell> -->
+				 </van-dropdown-item>
+			</van-dropdown-menu>
+			
+			</view>
+			
+		</view>
+	
+</template>
+
+<script>
+	export default {
+	  props:{
+	  			menu:{
+	  				type: Array
+	  			}
+	  		},	
+	}
+</script>
+
+<style>
+	.typeItem {
+		width: 25%;
+		display: inline-block;
+		text-align: center;
+	}
+</style>

+ 153 - 0
component/navTab.vue

@@ -0,0 +1,153 @@
+<template>
+	<view class="navTabBox">
+		<view class="longTab">
+			<scroll-view scroll-x="true" style="white-space: nowrap; display: flex" scroll-with-animation :scroll-left="isLeft-changeLeft">
+				<view
+					class="longItem"
+					:style="'min-width:' + isWidth + 'px'"
+					:data-index="index"
+					:class="index === tabClick ? 'click' : ''"
+					v-for="(item, index) in tabTitle"
+					:key="index"
+					:id="'id' + index"
+					@click="longClick(index)"
+				>
+					{{ item }}
+				</view>
+				<view class="underlineBox" :style="'transform:translateX(' + isLeft + 'px);width:' + lineWidth + 'px'"><view class="underline"></view></view>
+			</scroll-view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'navTab',
+	props: {
+		tabTitle: {
+			type: Array
+		}
+	},
+	data() {
+		return {
+			tabClick: 0, //导航栏被点击
+			isLeft: 0, //导航栏下划线位置
+			isWidth: 0, //每个导航栏占位
+			tabLeft: 0,
+			leftList:[],
+			lineWidth:0,
+			wWidth:0
+		};
+	},
+	computed: {
+		changeLeft() {
+			return this.wWidth/2 - this.leftList[this.tabClick]/2
+		}
+	},
+	created() {
+		var that = this;
+		// 获取设备宽度
+		uni.getSystemInfo({
+			success(e) {
+				that.wWidth = e.windowWidth;
+				if (that.tabTitle.length <= 5) {
+					that.isWidth = e.windowWidth / that.tabTitle.length; //宽度除以导航标题个数=一个导航所占宽度
+				} else {
+					that.isWidth = e.windowWidth / 5;
+				}
+			}
+		});
+		console.log('load')
+	},
+	onReady() {
+		console.log('ready')
+		const query = uni.createSelectorQuery().in(this);
+		query.selectAll('.longItem').boundingClientRect(data => {
+		  console.log(data)
+		  this.leftList = data.map((item,index)=>{
+			  return item.width
+		  })
+		  this.lineWidth = this.leftList[0]
+		}).exec();
+		console.log(this.leftList)
+	},
+	methods: {
+		// 导航栏点击
+		longClick(index) {
+			this.tabClick = index; //设置导航点击了哪一个
+			// this.isLeft = index * this.isWidth; //设置下划线位置
+			this.isLeft = this.leftList.reduce((acc,cur,curIndex)=>{
+				if(curIndex <index){
+					return acc+cur
+				}else{
+					return acc
+				}
+			},0); //设置下划线位置
+			this.lineWidth = this.leftList[index]
+			console.log(this.isLeft)
+			this.$emit('changeTab', index); //设置swiper的第几页
+			// this.$parent.currentTab = index //设置swiper的第几页
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.navTabBox {
+	width: 100vw;
+	color: rgba(255, 255, 255, 0.5);
+	.click {
+		color: white;
+	}
+	.longTab {
+		width: 100%;
+		.longItem {
+			height: 90upx;
+			display: inline-block;
+			line-height: 90upx;
+			text-align: center;
+		}
+		.underlineBox {
+			height: 3px;
+			width: 20%;
+			display: flex;
+			align-content: center;
+			justify-content: center;
+			transition: 0.5s;
+			.underline {
+				width: 84upx;
+				height: 4px;
+				background-color: white;
+			}
+		}
+	}
+	.shortTab {
+		width: 100%;
+		.navTab {
+			display: flex;
+			width: 100%;
+			height: 90upx;
+			position: relative;
+			.navTabItem {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 100%;
+				font-size: 28upx;
+			}
+		}
+		.underlineBox {
+			height: 3px;
+			display: flex;
+			align-content: center;
+			justify-content: center;
+			transition: 0.5s;
+			.underline {
+				width: 84upx;
+				height: 3px;
+				background-color: white;
+			}
+		}
+	}
+}
+</style>

+ 174 - 0
component/refresh.vue

@@ -0,0 +1,174 @@
+<template>
+	<view class='refreshBox' :style="isTranform">
+		<view class='refresh' :style="isZoom" :class="isEnd==2?'animationSmall':''">
+			<view class='refreshWord' v-if="isEnd == 0">松开刷新</view>
+			<view class='refreshCirle animation' v-if="isEnd == 1"></view>
+			<image class='iconYes' src='../static/icon-yes.png' v-if="isEnd==2"></image>
+		</view>
+	</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'refresh',
+		props: {
+			  isTop:{
+				  type:Number,
+				  default:1
+			  }
+		},
+		data() {
+			return {
+				isTranf: 0,
+				touchStart: '',
+				touchMove: '',
+				isEnd: 0
+			};
+		},
+		
+		methods: {
+			refreshStart(e) {
+				if (this.isEnd == 0 && this.isTop == 1) {
+					this.touchStart = e.changedTouches[0].pageY
+				}
+			},
+			refreshMove(e){
+				if (this.isEnd == 0 && this.isTop == 1) {
+					var touchStart = this.touchStart,
+						oldMove = this.touchMove,
+						newMove = e.changedTouches[0].pageY
+					if (touchStart <= newMove) {
+						var isTranf = touchStart > newMove ? 0 : newMove - touchStart
+						this.isTranf = isTranf
+						this.touchMove = e.changedTouches[0].pageY
+					}
+				} else{
+					this.isTranf = 0
+					this.isEnd = 0
+					this.touchStart = 9999
+				}
+			},
+			refreshEnd(e) {
+				var that = this
+				if (this.isEnd == 0 && this.isTop == 1) {
+					if (this.isTranf >= 90) {
+						this.isTranf = 125
+						this.isEnd = 1
+						this.$emit('isRefresh');
+					} else {
+						this.isTranf = 0
+					}
+				}
+			},
+			endAfter(){
+				this.isEnd = 2
+				setTimeout(() => {
+					this.isTranf = 0
+					this.isEnd = 0
+				}, 600)
+			}
+		},
+		computed: {
+			isTranform() {
+				var isTranf = this.isTranf > 150 ? 150 : this.isTranf
+				var isTemp = `transform: translateY(${isTranf-100}px);`
+				return isTemp
+			},
+			isZoom() {
+				var isTranf = this.isTranf > 125 ? 125 : this.isTranf
+				var isTemp = `zoom:${isTranf/125};`
+				return isTemp
+			}
+		}
+
+	}
+</script>
+
+<style lang="scss">
+	.refreshBox {
+		margin:0 auto;
+		width: 100%;
+		height: 100upx;
+		overflow: hidden;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		max-height: 300upx;
+		position: fixed;
+		z-index: 999;
+		top: 0;
+		left: 0;
+		transform: translateY(-100upx);
+	}
+
+	.animationSmall {
+		animation: small 1.1s both;
+	}
+
+	@keyframes small {
+		0% {
+			transform: scale(1)
+		}
+		20%{
+			transform: scale(1.4)
+		}
+		100% {
+			transform: scale(0)
+		}
+	}
+	.refreshWord{
+		width: 150upx;
+		height: 26upx;
+		font-size: 24upx;
+		line-height: 26upx;
+		text-align: center;
+		border-radius: 26upx;
+	}
+
+	.refresh {
+		min-width: 50upx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		height: 50upx;
+		background: #FFFFFF;
+		box-shadow: 0 0 16upx 0 rgba(0, 0, 0, 0.10);
+		border-radius: 50upx;
+	}
+
+	.refreshCirle {
+		width: 26upx;
+		height: 26upx;
+		border-radius: 50%;
+		display: inline-block;
+		position: relative;
+		border: 6upx solid black;
+		border-bottom-color: transparent;
+		border-top-color: transparent;
+	}
+
+	.animation {
+		animation: rotate 1.1s infinite;
+		animation-timing-function: cubic-bezier(0.3, 1.65, 0.7, -0.65);
+	}
+
+	@keyframes rotate {
+		0% {
+			transform: rotate(0deg);
+		}
+
+		100% {
+			transform: rotate(360deg);
+		}
+	}
+
+	.true {
+		color: black;
+	}
+
+	.iconYes {
+		width: 34upx;
+		height: 34upx;
+	}
+</style>

+ 122 - 0
component/tabBar4.vue

@@ -0,0 +1,122 @@
+<template>
+	<view class="tabBar">
+		<view
+		 v-for="(item,index) in tabBar" 
+		 :key="item.url" 
+		 class="tabbar_item" 
+		 :class="{'active':item.url == currentPage}"
+		 @click="navTo(item)"
+		 >
+			<image v-if="item.url == currentPage" :src="item.imgClick" mode=""></image>
+			<image v-else :src="item.imgNormal" mode=""></image>
+			<view class="text">{{item.text}}</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props:{
+			currentPage:{
+				type:String,
+				default:'index'
+			}
+		},
+		data() {
+			return {
+				tabBar:[{
+						url:'index',
+						text:'短模板',
+						imgNormal:'../static/index_change.png',
+						imgClick:'../static/index.png'
+					},
+					{
+						url:'longIndex',
+						text:'长模板',
+						imgNormal:'../static/index_change.png',
+						imgClick:'../static/index.png'
+					},{
+						url:'other',
+						text:'其他示例',
+						imgNormal:'../static/index_change.png',
+						imgClick:'../static/index.png'
+					}]
+			};
+		},
+		created() {
+			uni.hideTabBar({})
+		},
+		computed:{
+			
+		},
+		methods:{
+			navTo(item){
+				if(item.url !== this.currentPage){
+					var isUrl = `/pages/${item.url}/${item.url}`
+					const that = this
+					uni.switchTab({
+						url: isUrl
+					})
+				} else{
+					this.$parent.toTop()
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	//导航栏设置
+		$isRadius:0upx; //左上右上圆角
+		$isWidth:100vw; //导航栏宽度
+		$isBorder:0px solid white; //边框 不需要则设为0px
+		$isBg:white; //背景
+	
+	// 选中设置
+		$chooseTextColor:#50B7EA; //选中时字体颜色
+		$chooseBgColor:transparent; //选中时背景颜色 transparent为透明
+	
+	//未选中设置
+		$normalTextColor:#999; //未选中颜色
+	.tabBar{
+		width: $isWidth;
+		height: 100upx;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		box-shadow: 0upx -2upx 10upx rgba(89,125,172,.4);
+		margin:0 auto;
+		z-index: 998;
+		background-color: $isBg;
+		color: $normalTextColor;
+		border-left: $isBorder;
+		border-top: $isBorder;
+		border-right: $isBorder;
+		display: flex;
+		justify-content: space-around;
+		border-top-right-radius: $isRadius;
+		border-top-left-radius: $isRadius;
+		box-sizing: border-box;
+		overflow: hidden;
+		.tabbar_item{
+			width: 25%;
+			font-size: 12px;
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			&.active{
+				border-left: $isBorder;
+				border-top: $isBorder;
+				background: $chooseBgColor;
+				color: $chooseTextColor;
+			}
+		}
+		image{
+			width: 48upx;
+			height:48upx;
+			margin-left: 5upx;
+		}
+	}
+</style>

ファイルの差分が大きいため隠しています
+ 34 - 0
component/uni-icon/uni-icon.vue


+ 180 - 0
component/uni-nav-bar/uni-nav-bar.vue

@@ -0,0 +1,180 @@
+<template>
+	<view  style="width: 100%;" class="uni-navbar">
+		<view :class="{'uni-navbar--fixed': fixed,'uni-navbar--shadow':border,'uni-navbar--border':border}" :style="{'background-color':backgroundColor}" class="uni-navbar__content">
+			<uni-status-bar v-if="statusBar" />
+			<view :style="{color:color}" class="uni-navbar__header uni-navbar__content_view">
+				<view class="uni-navbar__header-btns uni-navbar__content_view" @tap="onClickLeft">
+					<view v-if="leftIcon.length" class="uni-navbar__content_view">
+						<uni-icon :type="leftIcon" :color="color" size="24" />
+					</view>
+					<view v-if="leftText.length" :class="{'uni-navbar-btn-icon-left':!leftIcon.length}" class="uni-navbar-btn-text uni-navbar__content_view">{{ leftText }}</view>
+					<slot name="left" />
+				</view>
+				<view class="uni-navbar__header-container uni-navbar__content_view">
+					<view v-if="title.length" class="uni-navbar__header-container-inner uni-navbar__content_view">{{ title }}</view>
+					<!-- 标题插槽 -->
+					<slot />
+				</view>
+				<view class="uni-navbar__header-btns uni-navbar__content_view" @tap="onClickRight">
+					<view v-if="rightIcon.length" class="uni-navbar__content_view">
+						<uni-icon :type="rightIcon" :color="color" size="24" />
+					</view>
+					<!-- 优先显示图标 -->
+					<view v-if="rightText.length&&!rightIcon.length" class="uni-navbar-btn-text uni-navbar__content_view">{{ rightText }}</view>
+					<slot name="right" />
+				</view>
+			</view>
+		</view>
+		<view v-if="fixed" class="uni-navbar__placeholder">
+			<uni-status-bar v-if="statusBar" />
+			<view class="uni-navbar__placeholder-view" />
+		</view>
+	</view>
+</template>
+
+<script>
+	import uniStatusBar from '../uni-status-bar/uni-status-bar.vue'
+	import uniIcon from '../uni-icon/uni-icon.vue'
+
+	export default {
+		name: 'UniNavBar',
+		components: {
+			uniStatusBar,
+			uniIcon
+		},
+		props: {
+			title: {
+				type: String,
+				default: ''
+			},
+			leftText: {
+				type: String,
+				default: ''
+			},
+			rightText: {
+				type: String,
+				default: ''
+			},
+			leftIcon: {
+				type: String,
+				default: ''
+			},
+			rightIcon: {
+				type: String,
+				default: ''
+			},
+			fixed: {
+				type: Boolean,
+				default: false
+			},
+			color: {
+				type: String,
+				default: '#000000'
+			},
+			backgroundColor: {
+				type: String,
+				default: '#FFFFFF'
+			},
+			statusBar: {
+				type: Boolean,
+				default: false
+			},
+			shadow: {
+				type: Boolean,
+				default: true
+			},
+			border: {
+				type: Boolean,
+				default: true
+			}
+		},
+		methods: {
+			onClickLeft() {
+				this.$emit('click-left')
+			},
+			onClickRight() {
+				this.$emit('click-right')
+			}
+		}
+	}
+</script>
+
+<style>
+	@charset "UTF-8";
+    .uni-navbar {
+		width: 100%;
+	}
+	.uni-navbar__content {
+		display: block;
+		position: relative;
+		width: 100%;
+		background-color: #fff;
+		overflow: hidden
+	}
+
+	.uni-navbar__content .uni-navbar__content_view {
+		line-height: 44px
+	}
+
+	.uni-navbar__header {
+		display: flex;
+		flex-direction: row;
+		width: 100%;
+		height: 44px;
+		line-height: 44px;
+		font-size: 16px
+	}
+
+	.uni-navbar__header-btns {
+		display: inline-flex;
+		flex-wrap: nowrap;
+		flex-shrink: 0;
+		width: 120upx;
+		padding: 0 12upx
+	}
+
+	.uni-navbar__header-btns:first-child {
+		padding-left: 0
+	}
+
+	.uni-navbar__header-btns:last-child {
+		width: 60upx
+	}
+
+	.uni-navbar__header-container {
+		width: 100%;
+		margin: 0 10upx
+	}
+
+	.uni-navbar__header-container-inner {
+		font-size: 30upx;
+		text-align: center;
+		padding-right: 60upx
+	}
+
+	.uni-navbar__placeholder-view {
+		height: 44px
+	}
+
+	.uni-navbar--fixed {
+		position: fixed;
+		z-index: 998
+	}
+
+	.uni-navbar--shadow {
+		/* box-shadow: 0 1px 6px #ccc */
+	}
+
+	.uni-navbar--border:after {
+		position: absolute;
+		z-index: 3;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		height: 1px;
+		content: '';
+		-webkit-transform: scaleY(.5);
+		transform: scaleY(.5);
+		background-color: #c8c7cc
+	}
+</style>

+ 26 - 0
component/uni-status-bar/uni-status-bar.vue

@@ -0,0 +1,26 @@
+<template>
+	<view :style="{ height: statusBarHeight }" class="uni-status-bar">
+		<slot />
+	</view>
+</template>
+
+<script>
+	var statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 'px'
+	export default {
+		name: 'UniStatusBar',
+		data() {
+			return {
+				statusBarHeight: statusBarHeight
+			}
+		}
+	}
+</script>
+
+<style>
+	.uni-status-bar {
+		display: block;
+		width: 100%;
+		height: 20px;
+		height: var(--status-bar-height);
+	}
+</style>

+ 9 - 0
component/userInfo.vue

@@ -0,0 +1,9 @@
+<template>
+	<view>组件引入</view>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 19 - 0
main.js

@@ -1,10 +1,29 @@
 import Vue from 'vue'
 import App from './App'
 import store from './store/logion.js'	
+
+// 定义全局提示title
+
+const msg = (title, duration=1500, mask=false, icon='none')=>{
+	//统一提示方便全局修改
+	if(Boolean(title) === false){
+		return;
+	}
+	uni.showToast({
+		title,
+		duration,
+		mask,
+		icon
+	});
+}
+
+Vue.prototype.$msg = msg
 Vue.config.productionTip = false
 Vue.prototype.$store = store
 App.mpType = 'app'
 
+
+
 const app = new Vue({
     ...App
 })

+ 6 - 1
manifest.json

@@ -59,7 +59,12 @@
         "setting" : {
             "urlCheck" : true
         },
-        "usingComponents" : true
+        "usingComponents" : true,
+		   "permission": {
+			 "scope.userLocation": {
+			   "desc": "演示定位能力"
+			 }
+		   }
     },
     "mp-alipay" : {
         "usingComponents" : true

+ 50 - 10
pages.json

@@ -3,20 +3,55 @@
 		{
 			"path": "pages/index/index",
 			"style": {
-				"navigationBarTitleText": "uni-app"
+				
+				"usingComponents":{
+					     "van-search": "/wxcomponents/dist/search/index"
+						},
+			   "navigationBarTitleText": "首页"
 			}
 		},
 		{
-			"path": "pages/taBar/one/one",
+			"path": "pages/index/hotel",
+			"style": {
+				
+				"usingComponents":{
+					     "van-sticky": "/wxcomponents/dist/sticky/index",
+						 "van-nav-bar": "/wxcomponents/dist/nav-bar/index",
+					     "van-search": "/wxcomponents/dist/search/index",
+						 "van-tab": "/wxcomponents/dist/tab/index",
+						 "van-tabs": "/wxcomponents/dist/tabs/index",
+						 "van-dropdown-menu": "/wxcomponents/dist/dropdown-menu/index",
+						 "van-dropdown-item": "/wxcomponents/dist/dropdown-item/index",
+						 "van-row": "/wxcomponents/dist/row/index",
+						 "van-col": "/wxcomponents/dist/col/index",
+						 "van-icon": "/wxcomponents/dist/icon/index"
+						  
+						}
+			}
+		},
+		
+		{
+			"path": "pages/myone/oneIndex",
 			"style": {
-				"navigationBarTitleText": "我得分页1"
+				"usingComponents":{
+					     "van-tab": "/wxcomponents/dist/tab/index",
+					      "van-tabs": "/wxcomponents/dist/tabs/index"
+						},
+						
+				"navigationBarTitleText": "发现"
 			}
 		},
 		
 		{
-			"path": "pages/taBar/three/three",
+			"path": "pages/taBar/index",
 			"style": {
-				"navigationBarTitleText": "我得分页3"
+				"navigationBarTitleText": "订单"
+			}
+		},
+		{
+			"path": "pages/myCenter/index",
+			"style": {
+				"navigationBarTitleText": "我的"
 			}
 		}
 		
@@ -26,17 +61,21 @@
 		"list": [
 			{
 				"pagePath": "pages/index/index",
-				"text":  "uni-app"
+				"text": "首页"
 				
 			},
 			{
-				"pagePath": "pages/taBar/one/one",
-				"text": "二页"
+				"pagePath": "pages/myone/oneIndex",
+				"text": "发现"
 			},
 			
 			{
-				"pagePath": "pages/taBar/three/three",
-				"text": "三页"
+				"pagePath": "pages/taBar/index",
+				"text": "订单"
+			}, 
+			{
+				"pagePath": "pages/myCenter/index",
+				"text": "我的"
 			}
 		]
 	},
@@ -46,5 +85,6 @@
 		"navigationBarTitleText": "uni-app",
 		"navigationBarBackgroundColor": "#F8F8F8",
 		"backgroundColor": "#F8F8F8"
+		
 	}
 }

+ 221 - 0
pages/index/hotel.vue

@@ -0,0 +1,221 @@
+<template>
+	<view>
+		<scroll-view  style="height: 100vh;" class="floor-list"
+		 :scroll-top="scrollTop" scroll-y="true"  @scroll="scroll"  @scrolltoupper="upper" @scrolltolower="lower"
+		 refresher-enabled="true">
+	   <van-sticky class="titleFixed">
+	      <van-nav-bar offset-top="100" title="标题" left-text="返回" left-arrow>
+	        <van-icon name="search" slot="right" />
+	      </van-nav-bar>
+	   </van-sticky>
+	   
+	   <view class="scrollswiper">
+	   		 <swiper class="swiper" :indicator-dots="indicatorDots" :autoplay="autoplay" :interval="interval" :duration="duration">
+	   			<swiper-item>
+	   				<view style="height: 100%;" class="swiper-item uni-bg-red">A</view>
+	   			</swiper-item>
+	   			<swiper-item>
+	   				<view style="height: 100%;" class="swiper-item uni-bg-green">B</view>
+	   			</swiper-item>
+	   			<swiper-item>
+	   				<view style="height: 100%;" class="swiper-item uni-bg-blue">C</view>
+	   			</swiper-item>
+	   		 </swiper>
+	   </view>
+	   
+	   
+	   <view class="tip">
+		   <view style="font-size: 36upx;color: #303133;">华南城市酒店</view>
+		   <view>
+			   <uniIcon type="star" size="22" color="#909399"></uniIcon>
+		   </view>
+	   </view>
+	   
+	   <view>
+	   		   <van-tabs :active="active" @click="onChange">
+	   			 <van-tab  name="1" title="服务">
+				  <view>
+				  	<view class="giveList">
+				  		<view class="giveItem">
+				  		  <image src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553409398864&di=4a12763adccf229133fb85193b7cc08f&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201703%2F19%2F20170319150032_MNwmn.jpeg" style="width:100%;height: 100upx;background: #909399"></image>
+				  		  <p style="text-align: center;">商品销售</p>
+				  		</view>
+				  	 	
+				  	</view>
+				  
+				  <view style="padding: 40upx 18upx;">
+					  <view v-for="(tab,index) in tabBars" :key="tab.id"
+					   class="swiper-tab-list"
+					   :class="tabIndex==index ? 'active' : ''"
+					   :id="tab.id" 
+					   :data-current="index"
+					   @click="tapTab">
+					   {{tab.name}}
+					  </view>
+					<!--  <van-dropdown-menu>
+					    <van-dropdown-item  :value="value1" :options="option1" />
+					    <van-dropdown-item  :value="value1" :options="option1" />
+					  </van-dropdown-menu> -->
+					  
+					  <view>
+						  <view class="listType">
+							  <view>
+								<image src="" ></image>  
+								<view>商品描述</view>
+								<view>¥25.00</view>
+							  </view>
+							  
+						  </view>
+					  </view>
+				  </view>
+				   
+				 
+				  
+				  </view> 
+				  
+				 </van-tab>
+	   			 <van-tab  name="2" title="评价">
+					 
+					 
+				 </van-tab>
+	   			 <van-tab  name="3" title="酒店信息">
+					 
+					 
+				 </van-tab>
+	   		   </van-tabs>
+	   </view>
+	   <van-dropdown-menu>
+	       <van-dropdown-item  title="分类" >
+	   		 <!-- <van-cell title="全部"></van-cell>
+	   		  <van-cell title="包邮"></van-cell>
+	   		  <van-cell title="自费"></van-cell> -->
+	   	 </van-dropdown-item>
+	   </van-dropdown-menu>
+	   <commoNar :option1 = 'option1' :menu = 'menu' />
+	   </scroll-view>
+	   
+	</view>
+</template>
+  
+<script>
+	import uniIcon from '@/component/uni-icon/uni-icon.vue'
+	import commoNar from '@/component/commoNar.vue'
+	export default {
+		components: {
+			uniIcon,
+			commoNar
+		},
+		data() {
+			return {
+				tabIndex: 0,
+				menu: [{
+					name: '综合',
+					id: '0'
+				}, {
+					name: '上新',
+					id: '1'
+				}, {
+					name: '价格',
+					id: '2'
+				},
+				{
+					name:'分类',
+					id:'3'
+				}
+				],
+				option1: [
+				      { text: '全部', value: 1 },
+				      { text: '商品销售', value: 2 },
+					  
+				    ],
+				background: ['color1', 'color2', 'color3'],
+				indicatorDots: true,
+				autoplay: true,
+				interval: 2000,
+				duration: 500,
+				active: 1,
+				scrollTop: 0,
+				old: {
+					scrollTop: 0
+				},
+				 option1: [
+				      { text: '全部商品', value: 0 },
+				      { text: '新款商品', value: 1 },
+				      { text: '活动商品', value: 2 }
+				    ],
+				    value1: 0
+			}
+		},
+		methods: {
+			tapTab(e) {
+				console.log(e);
+				this.tabIndex = e.currentTarget.id;
+			},
+			onChange(event) {
+					this.active = event.detail.name;
+					console.log(this.active)
+			},
+			upper(e) {
+				console.log(e)
+				console.log("顶部")
+			},
+			
+			// 滚到底部
+			lower(e) {
+				console.log("底部")
+			},
+			
+			// 滚动时触发
+			scroll(e) {
+				this.old.scrollTop = e.detail.scrollTop
+			},
+		}
+	}
+</script>
+  
+<style>
+	.scrollswiper {
+		width: 100%;
+		position: relative;
+	}
+	.titleFixed {
+		position: absolute;
+		top: 0;
+		left: 0;
+		z-index: 99;
+		padding-top: 0;
+		background-color: transparent;
+	}
+	.swiper {
+		height: 300upx;
+	}
+	.swiper-item {
+		display: block;
+		height: 100%!important;
+		line-height: 300upx;
+		text-align: center;
+	}
+		
+	.tip {
+		display: flex;
+		justify-content: space-between;
+		padding: 36upx 32upx;
+	}
+	.giveList {
+	    padding: 10upx  12upx;
+		display: flex;
+		flex-wrap: wrap;
+	}
+	.giveItem {
+		width: 18%;
+		height: 120upx;
+		margin: 10upx 20upx;
+		/* background-color: #909399 */
+	}
+	.active {
+		color: #F76260;
+	}
+		
+	.listType {
+	}
+</style>

+ 303 - 19
pages/index/index.vue

@@ -1,34 +1,211 @@
 <template>
 	<view class="content">
-	 <view>
-		 
-		 <view>ddddddd{{showModal}}</view>
-		<!-- <button open-type="getUserInfo">用户登录</button> -->
+		<!-- <userInfo /> -->
+	<!-- <view>
+		<view>点击授权{{showModal}}</view>
 		<button v-if="showModal" open-type="getUserInfo" @click="wxlogion">请点击授权</button>
+	 </view> -->
+	 <uniNavBar class="top" :shadow="false"  :fixed="false" color="#333333" background-color="#FFFFFF">
+	 	<block style="width: 70%;" slot="left">
+	 		<view class="city">
+	 			<view style="font-size: 35upx;">{{ location }}</view>
+	 		</view>
+	 	</block>
+			<view  class="input-view" style="float: right;">
+			  <uni-icon  size="22" @click="scan" type="scan"></uni-icon>
+			</view>
+		<block  slot="right">
+			<view>
+				<uni-icon  size="22" type="chat"></uni-icon>
+			</view>
+		</block>
+	 </uniNavBar>
+	<view  class="searchType" style="background: #fff;">
+		 <view class="input-view">
+		 	<uni-icon type="search" size="22" color="#666666" />
+		 	<input confirm-type="search" class="input" type="text" placeholder="输入搜索关键词" @confirm="confirm" />
+		 </view>
+	 </view>
+	 <view class="scrollswiper">
+		 <swiper class="swiper" :indicator-dots="indicatorDots" :autoplay="autoplay" :interval="interval" :duration="duration">
+			<swiper-item>
+				<view class="swiper-item uni-bg-red">A</view>
+			</swiper-item>
+			<swiper-item>
+				<view class="swiper-item uni-bg-green">B</view>
+			</swiper-item>
+			<swiper-item>
+				<view class="swiper-item uni-bg-blue">C</view>
+			</swiper-item>
+		 </swiper>
+	 </view>
+	 <view class="tips">
+		 在附近酒店找到您入住的酒店
+	 </view>
+	 
+	 <view style="border-bottom: 2upx solid #EEEEEE;width: 100%;margin-bottom: 24upx 0;"></view>
+	
+	
+	<scroll-view  style="height: 100vh;" class="floor-list"
+	 :scroll-top="scrollTop" scroll-y="true"  @scroll="scroll"  @scrolltoupper="upper" @scrolltolower="lower"
+	 refresher-enabled="true">
+	
+	<view  @tap="openinfo">
+     <view class="hotelList">
+		 <view class="hotleLeft">
+			 <image  style="width: 214upx;height: 152upx;" src=""/>
+		 </view>
+		 <view class="hotelright">
+		 	<view style="font-size: 36upx;color: #303133;">华南城市酒店</view>
+		    <view style="display: flex;flex-direction: row;justify-content: space-between;align-items: center;">
+				<view style="font-size: 40upx; color: #303133;"> 0.0</view>
+				<view>月访客990</view>
+				<view>8km</view>
+			</view>
+			<view class="undertip">
+				<view class="tipsTop">有停车为</view>
+				<view class="tipsTop">内置酒店</view>
+			</view>
+	 </view>
+	 </view>
 	 </view>
+     </scroll-view>
+
 	</view>
 </template>
 
 <script>
 	import {
 		mapMutations,mapState
-	} from 'vuex';
+	} from 'vuex'
+	import uniNavBar from '@/component/uni-nav-bar/uni-nav-bar.vue'
+	import uniIcon from '@/component/uni-icon/uni-icon.vue'
 	export default {
+		components: {
+			uniNavBar,
+			uniIcon
+		},
 		data() {
 			return {
+			    background: ['color1', 'color2', 'color3'],
+				indicatorDots: true,
+				autoplay: true,
+				interval: 2000,
+				duration: 500,
 				title: 'Hello',
+				location:'测试定位信息',
+				scrollTop: 0,
+				old: {
+					scrollTop: 0
+				}
 			}
 		},
 		computed:{
 			...mapState([
-			  'showModal'
+			  'showModal',
+			  'userInfo'
 			]),
 		},
 		onLoad() {
-		 
-		},
+			this.isGetLocation();  // 检查是否开启定位权限
+			this.isUserInfo();  // 检查是否允许获取用户授权
+			 // 用户授全
+			 		
+	    },
 		methods: {
 			...mapMutations(['login','showDialog']),
+			// 滚动到顶部
+			upper(e) {
+				console.log(e)
+				console.log("顶部")
+			},
+			
+			// 滚到底部
+			lower(e) {
+				console.log("底部")
+			},
+			
+			// 滚动时触发
+			scroll(e) {
+				this.old.scrollTop = e.detail.scrollTop
+			},
+			isGetLocation(a="scope.userLocation"){ //  检查当前是否已经授权访问scope属性WEW
+					let _this=this;
+					uni.getSetting({
+					    success(res) {
+							// 用户定位接口
+							if (!res.authSetting[a]) {  // 每次进入程序判断当前是否获得授权,如果没有就去获得授权,如果获得授权,就直接获取当前地理位置
+								_this.getAuthorizeInfo()
+							}else{
+								_this.getLocationInfo()
+							}
+							
+						}
+					});
+				},
+			isUserInfo(b='scope.userInfo') {
+				let _this = this;
+				uni.getSetting({
+					success(res) {
+						// 未授权	
+						if(!res.authSetting[b]) {
+							// 打开授权按钮 用户点击授权
+							_this.showDialog(true);
+						}else {
+							_this.showDialog(false);
+						}
+					}
+				})
+			},
+			getAuthorizeInfo(a="scope.userLocation"){  //uniapp弹窗弹出获取授权弹窗
+					let _this=this;
+					uni.authorize({
+						scope: a,
+						success() { //允许授权
+						   console.log("调用位置授权")
+							_this.getLocationInfo();
+						},
+						fail(){    //拒绝授权
+						  _this.$msg("你拒绝了授权,无法获得周边信息")
+							
+						}
+					})
+				},
+		    getLocationInfo(){  //获取地理位置
+		    		let _this=this;
+		    		uni.getLocation({
+		    			type: 'wgs84',
+		    			success (res) {
+		    				console.log(res)
+		    				let latitude,longitude;
+		    				latitude = res.latitude.toString();
+		    				longitude = res.longitude.toString();
+							this.loaction = '测试定位';
+		    				uni.request({
+		    					header:{
+		    						"Content-Type": "application/text"
+		    					},
+		    					url:'',
+		    					success(re) {
+		    						console.log("中文位置")
+		    						console.log(re)	   
+		    						if(re.statusCode===200){
+		    							console.log("获取中文街道地理位置成功")
+		    						}else{
+		    							console.log("获取信息失败,请重试!")
+		    						}
+		    					 }
+		    				});
+		    			},
+						fail(res) {
+							if(res.errMsg == 'getLocation:fail:system permission denied') {
+								_this.$msg("定位失败开启手机微信定位权限")
+							}
+							console.log(res.errMsg)
+							
+						}
+		    		});
+		    	},
 			wxlogion() {
 				let  that = this;
 			    uni.getUserInfo({
@@ -37,25 +214,51 @@
 					 that.showDialog(false);
 			     },
 			     fail(res) {
-			     uni.showModal({
-					title: 'shouquanshibai',
-				   })
+				 that.$msg("授权失败")
+			//      uni.showModal({
+			// 		title: 'shouquanshibai',
+			// 	   })
 			     }
 			    })
-			
-		 }
-},
+		 },
+		 
+		 // 点击扫码
+		 scan(){
+		 	uni.scanCode({
+		 		success: (res) => {
+		 			console.log(res);
+		 		}
+		 	});
+		 },
+		 
+		 // 跳转到新页面
+		 openinfo() {
+			  uni.navigateTo({
+			                     url: './hotel',
+			                 });
+		 },
+		}
 }
 </script>
 
 <style>
+   .top .uni-navbar__header-btns  {
+		width: 80%!important;
+	}
+	.top .uni-navbar__header-container {
+		width: 50%!important;
+	}
+		
 	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
+		background: #fff;
+	}
+	.city {
+		width: 100%;
+		height: 100%;
+		white-space:nowrap;
+		overflow:hidden;
+		text-overflow:ellipsis;
 	}
-
 	.logo {
 		height: 200upx;
 		width: 200upx;
@@ -74,4 +277,85 @@
 		font-size: 36upx;
 		color: #8f8f94;
 	}
+	.van-cell--borderless {
+		background-color: #e7e7e7!important;
+	}
+	.searchType .input-view {
+		width: 85%;
+		display: flex;
+		background-color: #e7e7e7;
+		height: 30px;
+		border-radius: 15px;
+		padding: 0 4%;
+		flex-wrap: nowrap;
+		margin: 7px 0;
+		line-height: 30px;
+		margin: 24upx auto;
+	}
+	
+	.searchType .input-view .uni-icon {
+		line-height: 30px !important;
+	}
+	
+	.searchType .input-view .input {
+		height: 30px;
+		line-height: 30px;
+		width: 94%;
+		padding: 0 3%;
+	}
+	.uni-navbar--border::after {
+		background: #fff!important;
+	}
+	.swiper {
+		height: 300upx;
+	}
+	.swiper-item {
+		display: block;
+		height: 300upx;
+		line-height: 300upx;
+		text-align: center;
+	}
+		
+	.scrollswiper {
+		width: 90%;
+		margin: 20upx auto;
+	}
+		
+	.tips {
+		color: #303133;
+		font-size: 28upx;
+		text-align: center;
+		margin: 24upx 0;
+	}
+		
+    .hotelList {
+		display: flex;
+		flex-direction: row;
+		padding: 24upx 32upx;
+	}
+		
+	.hotleLeft {
+		width: 214upx;
+		height: 152upx;
+		background-color: #007AFF;
+	}
+		
+	.hotelright {
+		padding-left: 16upx;
+		display: flex;
+		flex-direction: column;
+		width: 100%;
+	}
+		
+	.undertip {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+	}
+	.tipsTop {
+		border: 2upx solid #BBBBBB;
+		margin-right: 14upx;
+		color: #BBBBBB;
+		padding: 4upx;
+	}
 </style>

+ 1 - 1
pages/taBar/one/one.vue → pages/myCenter/index.vue

@@ -1,6 +1,6 @@
 <template>
 </template>
-<view>one 切换</view>
+
 <script>
 </script>
 

+ 139 - 2
pages/myone/oneIndex.vue

@@ -1,8 +1,145 @@
 <template>
+   <view>
+	   <view  class="searchType" style="background: #fff;">
+	   	 <view class="input-view">
+	   	 	<uni-icon type="search" size="22" color="#666666" />
+	   	 	<input confirm-type="search" class="input" type="text" placeholder="搜索文章" @confirm="confirm" />
+	   	 </view>
+	    </view>
+	   <view>
+		   <van-tabs :active="active" @click="onChange">
+			 <van-tab  name="1" title="标签 1"></van-tab>
+			 <van-tab  name="2" title="标签 2"></van-tab>
+			 <van-tab  name="3" title="标签 3"></van-tab>
+			 <van-tab  name="4" title="标签 4"></van-tab>
+		   </van-tabs>
+	   </view>
+	  
+	  
+	  <!-- refresher-enabled  开启自定义下拉--> 
+	   
+		 <scroll-view class="floor-list" 
+		  :scroll-top="scrollTop" scroll-y="true"  @scroll="scroll"  @scrolltoupper="upper" @scrolltolower="lower"
+		  @refresherabort="onAbort"
+		  @refresherrefresh="onRefresh"
+		  @refresherpulling="onPulling"
+		  refresher-enabled="true">
+			<view>
+			   <view class="hotelList">
+					 <view class="hotleLeft">
+						 <image  style="width: 214upx;height: 152upx;" src=""/>
+					 </view>
+					 <view class="hotelright">
+						<view style="font-size: 28upx;color: #303133;">华南城市酒店</view>
+						<view>
+							07-05 14:58
+						</view>
+					
+			   </view>
+			</view>
+			</view>
+		 </scroll-view>
+	 
+	   
+   </view>
 </template>
-  <view>我是分页1</view>
 <script>
+	import uniIcon from '@/component/uni-icon/uni-icon.vue'
+	export default {
+		components: {
+			uniIcon
+		},
+		data() {
+			return {
+				active: 1,
+				scrollTop: 0,
+				old: {
+					scrollTop: 0
+				}
+		    }
+	    },
+		methods: {
+			confirm() {
+				
+			},
+			onChange(event) {
+				this.active = event.detail.name;
+				console.log(this.active)
+			},
+			// 自定义下拉控件被触发
+			onPulling() {
+				
+			},
+			
+			// 自定义下拉刷新被触发
+			onRefresh() {
+				
+			},
+			
+			// 自定义下拉刷新被中止
+			onAbort() {
+				
+			},
+			
+			// 滚动到顶部
+			upper(e) {
+				console.log(e)
+				console.log("顶部")
+			},
+			
+			// 滚到底部
+			lower(e) {
+				console.log("底部")
+			},
+			
+			// 滚动时触发
+			scroll(e) {
+				this.old.scrollTop = e.detail.scrollTop
+			},
+		}
+    }
 </script>
-
 <style>
+	
+	.hotelList {
+		display: flex;
+		flex-direction: row;
+		padding: 24upx 32upx;
+	}
+		
+	.hotleLeft {
+		width: 214upx;
+		height: 152upx;
+		background-color: #007AFF;
+	}
+		
+	.hotelright {
+		padding-left: 16upx;
+		display: flex;
+		flex-direction: column;
+		width: 100%;
+	}
+	.searchType .input-view {
+		width: 85%;
+		display: flex;
+		background-color: #e7e7e7;
+		height: 30px;
+		border-radius: 15px;
+		padding: 0 4%;
+		flex-wrap: nowrap;
+		margin: 7px 0;
+		line-height: 30px;
+		margin: 24upx auto;
+	}
+	
+	.searchType .input-view .uni-icon {
+		line-height: 30px !important;
+	}
+	
+	.searchType .input-view .input {
+		height: 30px;
+		line-height: 30px;
+		width: 94%;
+		padding: 0 3%;
+	}
 </style>

+ 1 - 1
pages/taBar/three/three.vue → pages/taBar/index.vue

@@ -1,6 +1,6 @@
 <template>
 </template>
-<view>three切换</view>
+
 <script>
 </script>
 

BIN
static/logo.png


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/commoNar.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-icon/uni-icon.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-nav-bar/uni-nav-bar.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/uni-status-bar/uni-status-bar.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/component/userInfo.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/hotel.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myone/oneIndex.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/taBar/index.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/taBar/one/one.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/taBar/three/three.js.map


+ 19 - 9
unpackage/dist/dev/mp-weixin/app.json

@@ -1,8 +1,10 @@
 {
   "pages": [
     "pages/index/index",
-    "pages/taBar/one/one",
-    "pages/taBar/three/three"
+    "pages/index/hotel",
+    "pages/myone/oneIndex",
+    "pages/taBar/index",
+    "pages/myCenter/index"
   ],
   "subPackages": [],
   "window": {
@@ -16,18 +18,26 @@
     "list": [
       {
         "pagePath": "pages/index/index",
-        "text": "uni-app"
+        "text": "首页"
       },
       {
-        "pagePath": "pages/taBar/one/one",
-        "text": "二页"
+        "pagePath": "pages/myone/oneIndex",
+        "text": "发现"
       },
       {
-        "pagePath": "pages/taBar/three/three",
-        "text": "三页"
+        "pagePath": "pages/taBar/index",
+        "text": "订单"
+      },
+      {
+        "pagePath": "pages/myCenter/index",
+        "text": "我的"
       }
     ]
   },
-  "usingComponents": {},
-  "sitemapLocation": "sitemap.json"
+  "permission": {
+    "scope.userLocation": {
+      "desc": "演示定位能力"
+    }
+  },
+  "usingComponents": {}
 }

ファイルの差分が大きいため隠しています
+ 66 - 46
unpackage/dist/dev/mp-weixin/common/main.js


+ 1508 - 0
unpackage/dist/dev/mp-weixin/common/main.wxss

@@ -123,4 +123,1512 @@
 
 
 /*每个页面公共css */
+.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
+.van-multi-ellipsis--l2{-webkit-line-clamp:2}
+.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}
+.van-multi-ellipsis--l3{-webkit-line-clamp:3}
+.van-clearfix:after{display:table;clear:both;content:""}
+.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}
+.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}
+.van-hairline--top:after{border-top-width:1px}
+.van-hairline--left:after{border-left-width:1px}
+.van-hairline--right:after{border-right-width:1px}
+.van-hairline--bottom:after{border-bottom-width:1px}
+.van-hairline--top-bottom:after{border-width:1px 0}
+.van-hairline--surround:after{border-width:1px}
+@font-face {
+	font-family: uniicons;
+	font-weight: normal;
+	font-style: normal;
+	src: url('https://img-cdn-qiniu.dcloud.net.cn/fonts/uni.ttf') format('truetype');
+}
+/*通用 */
+view{
+	font-size:28rpx;
+}
+progress, checkbox-group{
+	width: 100%;
+}
+form {
+	width: 100%;
+}
+.uni-flex {
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+}
+.uni-flex-item {
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	        flex: 1;
+}
+.uni-row {
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+}
+.uni-column {
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+}
+.uni-link{
+	color:#576B95;
+	font-size:26rpx;
+}
+.uni-center{
+	text-align:center;
+}
+.uni-inline-item{
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+	-webkit-box-align:center;
+	-webkit-align-items:center;
+	        align-items:center;
+}
+.uni-inline-item text{
+	margin-right: 20rpx;
+}
+.uni-inline-item text:last-child{
+	margin-right: 0rpx;
+	margin-left: 20rpx;
+}
+/* page */
+.uni-page-head{
+	padding:35rpx; 
+	text-align: center;
+}
+.uni-page-head-title {
+	display: inline-block;
+	padding: 0 40rpx;
+	font-size: 30rpx;
+	height: 88rpx;
+	line-height: 88rpx;
+	color: #BEBEBE;
+	box-sizing: border-box;
+	border-bottom: 2rpx solid #D8D8D8;
+}
+.uni-page-body {
+	width: 100%;
+	-webkit-box-flex: 1;
+	-webkit-flex-grow: 1;
+	        flex-grow: 1;
+	overflow-x: hidden;
+}
+.uni-padding-wrap{
+	width:690rpx;
+	padding:0 30rpx;
+}
+.uni-word {
+	text-align: center;
+	padding:200rpx 100rpx;
+}
+.uni-title {
+	font-size:30rpx;
+	font-weight:500;
+	padding:20rpx 0;
+	line-height:1.5;
+}
+.uni-text{
+	font-size:28rpx;
+}
+.uni-title text{
+	font-size:24rpx; 
+	color:#888;
+}
+.uni-text-gray{
+	color: #ccc;
+}
+.uni-text-small {
+	font-size:24rpx;
+}
+.uni-common-mb{
+	margin-bottom:30rpx;
+}
+.uni-common-pb{
+	padding-bottom:30rpx;
+}
+.uni-common-pl{
+	padding-left:30rpx;
+}
+.uni-common-mt{
+	margin-top:30rpx;
+}
+/* 背景色 */
+.uni-bg-red{
+	background:#F76260; color:#FFF;
+}
+.uni-bg-green{
+	background:#09BB07; color:#FFF;
+}
+.uni-bg-blue{
+	background:#007AFF; color:#FFF;
+}
+/* 标题 */
+.uni-h1 {font-size: 80rpx; font-weight:700;}
+.uni-h2 {font-size: 60rpx; font-weight:700;}
+.uni-h3 {font-size: 48rpx; font-weight:700;}
+.uni-h4 {font-size: 36rpx; font-weight:700;}
+.uni-h5 {font-size: 28rpx; color: #8f8f94;}
+.uni-h6 {font-size: 24rpx; color: #8f8f94;}
+.uni-bold{font-weight:bold;}
+/* 文本溢出隐藏 */
+.uni-ellipsis {overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+/* 竖向百分百按钮 */
+.uni-btn-v{
+	padding:10rpx 0;
+}
+.uni-btn-v button{margin:20rpx 0;}
+/* 表单 */
+.uni-form-item{
+	display:-webkit-box;
+	display:-webkit-flex;
+	display:flex;
+	width:100%;
+	padding:10rpx 0;
+}
+.uni-form-item .title{
+	padding:10rpx 25rpx;
+}
+.uni-label {
+	width: 210rpx;
+	word-wrap: break-word;
+	word-break: break-all;
+	text-indent:20rpx;
+}
+.uni-input {
+	height: 50rpx;
+	padding: 15rpx 25rpx;
+	line-height:50rpx;
+	font-size:28rpx;
+	background:#FFF;
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	        flex: 1;
+}
+radio-group, checkbox-group{
+	width:100%;
+}
+radio-group label, checkbox-group label{
+	padding-right:20rpx;
+}
+.uni-form-item .with-fun{
+	display:-webkit-box;
+	display:-webkit-flex;
+	display:flex; 
+	-webkit-flex-wrap:nowrap; 
+	        flex-wrap:nowrap; 
+	background:#FFFFFF;
+}
+.uni-form-item .with-fun .uni-icon{
+	width:40px; 
+	height:80rpx; 
+	line-height:80rpx; 
+	-webkit-flex-shrink:0; 
+	        flex-shrink:0;
+}
+/* loadmore */
+.uni-loadmore{
+	height:80rpx;
+	line-height:80rpx;
+	text-align:center;
+	padding-bottom:30rpx;
+}
+/*数字角标*/
+.uni-badge,
+.uni-badge-default {
+	font-family: 'Helvetica Neue', Helvetica, sans-serif;
+	font-size: 12px;
+	line-height: 1;
+	display: inline-block;
+	padding: 3px 6px;
+	color: #333;
+	border-radius: 100px;
+	background-color: rgba(0, 0, 0, .15);
+}
+.uni-badge.uni-badge-inverted {
+	padding: 0 5px 0 0;
+	color: #929292;
+	background-color: transparent
+}
+.uni-badge-primary {
+	color: #fff;
+	background-color: #007aff
+}
+.uni-badge-blue.uni-badge-inverted,
+.uni-badge-primary.uni-badge-inverted {
+	color: #007aff;
+	background-color: transparent
+}
+.uni-badge-green,
+.uni-badge-success {
+	color: #fff;
+	background-color: #4cd964;
+}
+.uni-badge-green.uni-badge-inverted,
+.uni-badge-success.uni-badge-inverted {
+	color: #4cd964;
+	background-color: transparent
+}
+.uni-badge-warning,
+.uni-badge-yellow {
+	color: #fff;
+	background-color: #f0ad4e
+}
+.uni-badge-warning.uni-badge-inverted,
+.uni-badge-yellow.uni-badge-inverted {
+	color: #f0ad4e;
+	background-color: transparent
+}
+.uni-badge-danger,
+.uni-badge-red {
+	color: #fff;
+	background-color: #dd524d
+}
+.uni-badge-danger.uni-badge-inverted,
+.uni-badge-red.uni-badge-inverted {
+	color: #dd524d;
+	background-color: transparent
+}
+.uni-badge-purple,
+.uni-badge-royal {
+	color: #fff;
+	background-color: #8a6de9
+}
+.uni-badge-purple.uni-badge-inverted,
+.uni-badge-royal.uni-badge-inverted {
+	color: #8a6de9;
+	background-color: transparent
+}
+/*折叠面板 */
+.uni-collapse-content {
+	height: 0;
+	width: 100%;
+	overflow: hidden;
+}
+.uni-collapse-content.uni-active {
+	height: auto;
+}
+/*卡片视图 */
+.uni-card {
+	background: #fff;
+	border-radius: 8rpx;
+	margin:20rpx 0;
+	position: relative;
+	box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, .3);
+}
+.uni-card-content {
+	font-size: 30rpx;
+}
+.uni-card-content.image-view{
+    width: 100%;
+    margin: 0;
+}
+.uni-card-content-inner {
+	position: relative;
+	padding: 30rpx;
+}
+.uni-card-footer,
+.uni-card-header {
+	position: relative;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	min-height: 50rpx;
+	padding: 20rpx 30rpx;
+	-webkit-box-pack: justify;
+	-webkit-justify-content: space-between;
+	        justify-content: space-between;
+	-webkit-box-align: center;
+	-webkit-align-items: center;
+	        align-items: center;
+}
+.uni-card-header {
+	font-size: 36rpx;
+}
+.uni-card-footer {
+	color: #6d6d72;
+}
+.uni-card-footer:before,
+.uni-card-header:after {
+	position: absolute;
+	top: 0;
+	right: 0;
+	left: 0;
+	height: 2rpx;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-card-header:after {
+	top: auto;
+	bottom: 0;
+}
+.uni-card-media {
+	-webkit-box-pack: start;
+	-webkit-justify-content: flex-start;
+	        justify-content: flex-start;
+}
+.uni-card-media-logo {
+	height: 84rpx;
+	width: 84rpx;
+	margin-right: 20rpx;
+}
+.uni-card-media-body {
+	height: 84rpx;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+	-webkit-box-pack: justify;
+	-webkit-justify-content: space-between;
+	        justify-content: space-between;
+	-webkit-box-align: start;
+	-webkit-align-items: flex-start;
+	        align-items: flex-start;
+}
+.uni-card-media-text-top {
+	line-height: 36rpx;
+	font-size: 34rpx;
+}
+.uni-card-media-text-bottom {
+	line-height: 30rpx;
+	font-size: 28rpx;
+	color: #8f8f94;
+}
+.uni-card-link {
+	color: #007AFF;
+}
+/* 列表 */
+.uni-list {
+	background-color: #FFFFFF;
+	position: relative;
+	width: 100%;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+}
+.uni-list:after {
+	position: absolute;
+	z-index: 10;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list::before {
+	position: absolute;
+	z-index: 10;
+	right: 0;
+	top: 0;
+	left: 0;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list-cell {
+	position: relative;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+	-webkit-box-pack: justify;
+	-webkit-justify-content: space-between;
+	        justify-content: space-between;
+	-webkit-box-align: center;
+	-webkit-align-items: center;
+	        align-items: center;
+}
+.uni-list-cell-hover {
+	background-color: #eee;
+}
+.uni-list-cell-pd {
+	padding: 22rpx 30rpx;
+}
+.uni-list-cell-left {
+	font-size:28rpx;
+	padding: 0 30rpx;
+}
+.uni-list-cell-db,
+.uni-list-cell-right {
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	        flex: 1;
+}
+.uni-list-cell::after {
+	position: absolute;
+  z-index: 3;
+	right: 0;
+	bottom: 0;
+	left: 30rpx;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list .uni-list-cell:last-child::after {
+	height: 0rpx;
+}
+.uni-list-cell-last.uni-list-cell::after {
+	height: 0rpx;
+}
+.uni-list-cell-divider {
+	position: relative;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	color: #999;
+	background-color: #f7f7f7;
+	padding:15rpx 20rpx;
+}
+.uni-list-cell-divider::before {
+	position: absolute;
+	right: 0;
+	top: 0;
+	left: 0;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list-cell-divider::after {
+	position: absolute;
+	right: 0;
+	bottom: 0;
+	left: 0rpx;
+	height: 1px;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-list-cell-navigate {
+	font-size:30rpx;
+	padding: 22rpx 30rpx;
+	line-height: 48rpx;
+	position: relative;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	box-sizing: border-box;
+	width: 100%;
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	        flex: 1;
+	-webkit-box-pack: justify;
+	-webkit-justify-content: space-between;
+	        justify-content: space-between;
+	-webkit-box-align: center;
+	-webkit-align-items: center;
+	        align-items: center;
+}
+.uni-list-cell-navigate {
+	padding-right: 36rpx;
+}
+.uni-navigate-badge {
+	padding-right: 50rpx;
+}
+.uni-list-cell-navigate.uni-navigate-right:after {
+	font-family: uniicons;
+	content: '\e583';
+	position: absolute;
+	right: 24rpx;
+	top: 50%;
+	color: #bbb;
+	-webkit-transform: translateY(-50%);
+	transform: translateY(-50%);
+}
+.uni-list-cell-navigate.uni-navigate-bottom:after {
+	font-family: uniicons;
+	content: '\e581';
+	position: absolute;
+	right: 24rpx;
+	top: 50%;
+	color: #bbb;
+	-webkit-transform: translateY(-50%);
+	transform: translateY(-50%);
+}
+.uni-list-cell-navigate.uni-navigate-bottom.uni-active::after {
+	font-family: uniicons;
+	content: '\e580';
+	position: absolute;
+	right: 24rpx;
+	top: 50%;
+	color: #bbb;
+	-webkit-transform: translateY(-50%);
+	transform: translateY(-50%);
+}
+.uni-collapse.uni-list-cell {
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+}
+.uni-list-cell-navigate.uni-active {
+	background: #eee;
+}
+.uni-list.uni-collapse {
+	box-sizing: border-box;
+	height: 0;
+	overflow: hidden;
+}
+.uni-collapse .uni-list-cell {
+	padding-left: 20rpx;
+}
+.uni-collapse .uni-list-cell::after {
+	left: 52rpx;
+}
+.uni-list.uni-active {
+	height: auto;
+}
+/* 三行列表 */
+.uni-triplex-row {
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	        flex: 1;
+	width: 100%;
+	box-sizing: border-box;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+	padding: 22rpx 30rpx;
+}
+.uni-triplex-right,
+.uni-triplex-left {
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+}
+.uni-triplex-left {
+	width: 84%;
+}
+.uni-triplex-left .uni-title{
+	padding:8rpx 0;
+}
+.uni-triplex-left .uni-text, .uni-triplex-left .uni-text-small{color:#999999;}
+.uni-triplex-right {
+	width: 16%;
+	text-align: right;
+}
+/* 图文列表 */
+.uni-media-list {
+	padding: 22rpx 30rpx;
+	box-sizing: border-box;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	width: 100%;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+}
+.uni-navigate-right.uni-media-list {
+	padding-right: 74rpx;
+}
+.uni-pull-right {
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: reverse;
+	-webkit-flex-direction: row-reverse;
+	        flex-direction: row-reverse;
+}
+.uni-pull-right>.uni-media-list-logo {
+	margin-right: 0rpx;
+	margin-left: 20rpx;
+}
+.uni-media-list-logo {
+	height: 84rpx;
+	width: 84rpx;
+	margin-right: 20rpx;
+}
+.uni-media-list-logo image {
+	height: 100%;
+	width: 100%;
+}
+.uni-media-list-body {
+	height: 84rpx;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	        flex: 1;
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+	-webkit-box-pack: justify;
+	-webkit-justify-content: space-between;
+	        justify-content: space-between;
+	-webkit-box-align: start;
+	-webkit-align-items: flex-start;
+	        align-items: flex-start;
+	overflow: hidden;
+}
+.uni-media-list-text-top {
+	width: 100%;
+	line-height: 36rpx;
+	font-size: 30rpx;
+}
+.uni-media-list-text-bottom {
+	width: 100%;
+	line-height: 30rpx;
+	font-size: 26rpx;
+	color: #8f8f94;
+}
+/* 九宫格 */
+.uni-grid-9 {
+	background: #f2f2f2;
+	width: 750rpx;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+	-webkit-flex-wrap: wrap;
+	        flex-wrap: wrap;
+	border-top: 2rpx solid #eee;
+}
+.uni-grid-9-item {
+	width: 250rpx;
+	height: 200rpx;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+	-webkit-box-align: center;
+	-webkit-align-items: center;
+	        align-items: center;
+	-webkit-box-pack: center;
+	-webkit-justify-content: center;
+	        justify-content: center;
+	border-bottom: 2rpx solid;
+	border-right: 2rpx solid;
+	border-color: #eee;
+	box-sizing: border-box;
+}
+.no-border-right {
+	border-right: none;
+}
+.uni-grid-9-image {
+	width: 100rpx;
+	height: 100rpx;
+}
+.uni-grid-9-text {
+	width: 250rpx;
+	line-height: 4rpx;
+	height: 40rpx;
+	text-align: center;
+	font-size: 30rpx;
+}
+.uni-grid-9-item-hover {
+	background: rgba(0, 0, 0, 0.1);
+}
+/* 上传 */
+.uni-uploader {
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	        flex: 1;
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+}
+.uni-uploader-head {
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+	-webkit-box-pack: justify;
+	-webkit-justify-content: space-between;
+	        justify-content: space-between;
+}
+.uni-uploader-info {
+	color: #B2B2B2;
+}
+.uni-uploader-body {
+	margin-top: 16rpx;
+}
+.uni-uploader__files {
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+	-webkit-flex-wrap: wrap;
+	        flex-wrap: wrap;
+}
+.uni-uploader__file {
+	margin: 10rpx;
+	width: 210rpx;
+	height: 210rpx;
+}
+.uni-uploader__img {
+	display: block;
+	width: 210rpx;
+	height: 210rpx;
+}
+.uni-uploader__input-box {
+	position: relative;
+	margin:10rpx;
+	width: 208rpx;
+	height: 208rpx;
+	border: 2rpx solid #D9D9D9;
+}
+.uni-uploader__input-box:before,
+.uni-uploader__input-box:after {
+	content: " ";
+	position: absolute;
+	top: 50%;
+	left: 50%;
+	-webkit-transform: translate(-50%, -50%);
+	transform: translate(-50%, -50%);
+	background-color: #D9D9D9;
+}
+.uni-uploader__input-box:before {
+	width: 4rpx;
+	height: 79rpx;
+}
+.uni-uploader__input-box:after {
+	width: 79rpx;
+	height: 4rpx;
+}
+.uni-uploader__input-box:active {
+	border-color: #999999;
+}
+.uni-uploader__input-box:active:before,
+.uni-uploader__input-box:active:after {
+	background-color: #999999;
+}
+.uni-uploader__input {
+	position: absolute;
+	z-index: 1;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	opacity: 0;
+}
+/*问题反馈*/
+.feedback-title {
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+	-webkit-box-pack: justify;
+	-webkit-justify-content: space-between;
+	        justify-content: space-between;
+	-webkit-box-align: center;
+	-webkit-align-items: center;
+	        align-items: center;
+	padding: 20rpx;
+	color: #8f8f94;
+	font-size: 28rpx;
+}
+.feedback-star-view.feedback-title {
+	-webkit-box-pack: start;
+	-webkit-justify-content: flex-start;
+	        justify-content: flex-start;
+	margin: 0;
+}
+.feedback-quick {
+	position: relative;
+	padding-right: 40rpx;
+}
+.feedback-quick:after {
+	font-family: uniicons;
+	font-size: 40rpx;
+	content: '\e581';
+	position: absolute;
+	right: 0;
+	top: 50%;
+	color: #bbb;
+	-webkit-transform: translateY(-50%);
+	transform: translateY(-50%);
+}
+.feedback-body {
+	background: #fff;
+}
+.feedback-textare {
+	height: 200rpx;
+	font-size: 34rpx;
+	line-height: 50rpx;
+	width: 100%;
+	box-sizing: border-box;
+	padding: 20rpx 30rpx 0;
+}
+.feedback-input {
+	font-size: 34rpx;
+	height: 50rpx;
+	min-height: 50rpx;
+	padding: 15rpx 20rpx;
+	line-height: 50rpx;
+}
+.feedback-uploader {
+	padding: 22rpx 20rpx;
+}
+.feedback-star {
+	font-family: uniicons;
+	font-size: 40rpx;
+	margin-left: 6rpx;
+}
+.feedback-star-view {
+	margin-left: 20rpx;
+}
+.feedback-star:after {
+	content: '\e408';
+}
+.feedback-star.active {
+	color: #FFB400;
+}
+.feedback-star.active:after {
+	content: '\e438';
+}
+.feedback-submit {
+	background: #007AFF;
+	color: #FFFFFF;
+	margin: 20rpx;
+}
+/* input group */
+.uni-input-group {
+	position: relative;
+	padding: 0;
+	border: 0;
+	background-color: #fff;
+}
+.uni-input-group:before {
+	position: absolute;
+	top: 0;
+	right: 0;
+	left: 0;
+	height: 2rpx;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	        transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-input-group:after {
+	position: absolute;
+	right: 0;
+	bottom: 0;
+	left: 0;
+	height: 2rpx;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	        transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-input-row {
+	position: relative;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+	font-size:28rpx;
+	padding: 22rpx 30rpx;
+	-webkit-box-pack: justify;
+	-webkit-justify-content: space-between;
+	        justify-content: space-between;
+}
+.uni-input-group .uni-input-row:after {
+	position: absolute;
+	right: 0;
+	bottom: 0;
+	left: 30rpx;
+	height: 2rpx;
+	content: '';
+	-webkit-transform: scaleY(.5);
+	        transform: scaleY(.5);
+	background-color: #c8c7cc;
+}
+.uni-input-row label {
+	line-height: 70rpx;
+}
+/* textarea */
+.uni-textarea{
+	width:100%;
+	background:#FFF;
+}
+.uni-textarea textarea{
+	width:96%;
+	padding:18rpx 2%;
+	line-height:1.6;
+	font-size:28rpx;
+	height:150rpx;
+}
+/* tab bar */
+.uni-tab-bar {
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	        flex: 1;
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+	overflow: hidden;
+	height: 100%;
+}
+.uni-tab-bar .list {
+	width: 750rpx;
+	height: 100%;
+}
+.uni-swiper-tab {
+	width: 100%;
+	white-space: nowrap;
+	line-height: 100rpx;
+	height: 100rpx;
+	border-bottom: 1px solid #c8c7cc;
+}
+.swiper-tab-list {
+	font-size: 30rpx;
+	width: 150rpx;
+	display: inline-block;
+	text-align: center;
+	color: #555;
+}
+.uni-tab-bar .active {
+	color: #007AFF;
+}
+.uni-tab-bar .swiper-box {
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	        flex: 1;
+	width: 100%;
+	height: calc(100% - 100rpx);
+}
+.uni-tab-bar-loading{
+	padding:20rpx 0;
+}
+/* comment */
+.uni-comment{padding:5rpx 0; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-box-flex:1; -webkit-flex-grow:1; flex-grow:1; -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; flex-direction: column;}
+.uni-comment-list{-webkit-flex-wrap:nowrap;flex-wrap:nowrap; padding:10rpx 0; margin:10rpx 0; width:100%; display: -webkit-box; display: -webkit-flex; display: flex;}
+.uni-comment-face{width:70rpx; height:70rpx; border-radius:100%; margin-right:20rpx; -webkit-flex-shrink:0; flex-shrink:0; overflow:hidden;}
+.uni-comment-face image{width:100%; border-radius:100%;}
+.uni-comment-body{width:100%;}
+.uni-comment-top{line-height:1.5em; -webkit-box-pack:justify; -webkit-justify-content:space-between; justify-content:space-between;}
+.uni-comment-top text{color:#0A98D5; font-size:24rpx;}
+.uni-comment-date{line-height:38rpx; -webkit-box-orient:horizontal; -webkit-box-direction:normal; -webkit-flex-direction:row; flex-direction:row; -webkit-box-pack:justify; -webkit-justify-content:space-between; justify-content:space-between; display:-webkit-box !important; display:-webkit-flex !important; display:flex !important; -webkit-box-flex:1; -webkit-flex-grow:1; flex-grow:1;}
+.uni-comment-date view{color:#666666; font-size:24rpx; line-height:38rpx;}
+.uni-comment-content{line-height:1.6em; font-size:28rpx; padding:8rpx 0;}
+.uni-comment-replay-btn{background:#FFF; font-size:24rpx; line-height:28rpx; padding:5rpx 20rpx; border-radius:30rpx; color:#333 !important; margin:0 10rpx;}
+/* swiper msg */
+.uni-swiper-msg{width:100%; padding:12rpx 0; -webkit-flex-wrap:nowrap; flex-wrap:nowrap; display:-webkit-box; display:-webkit-flex; display:flex;}
+.uni-swiper-msg-icon{width:50rpx; margin-right:20rpx;}
+.uni-swiper-msg-icon image{width:100%; -webkit-flex-shrink:0; flex-shrink:0;}
+.uni-swiper-msg swiper{width:100%; height:50rpx;}
+.uni-swiper-msg swiper-item{line-height:50rpx;}
+/* product */
+.uni-product-list {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: flex;
+    width: 100%;
+    -webkit-flex-wrap: wrap;
+            flex-wrap: wrap;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    -webkit-flex-direction: row;
+            flex-direction: row;
+}
+.uni-product {
+    padding: 20rpx;
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: flex;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    -webkit-flex-direction: column;
+            flex-direction: column;
+}
+.image-view {
+    height: 330rpx;
+    width: 330rpx;
+	margin:12rpx 0;
+}
+.uni-product-image {
+    height: 330rpx;
+    width: 330rpx;
+}
+.uni-product-title {
+    width: 300rpx;
+    word-break: break-all;
+    display: -webkit-box;
+    overflow: hidden;
+	line-height:1.5;
+    text-overflow: ellipsis;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
+.uni-product-price {
+	margin-top:10rpx;
+    font-size: 28rpx;
+	line-height:1.5;
+    position: relative;
+}
+.uni-product-price-original {
+    color: #e80080;
+}
+.uni-product-price-favour {
+    color: #888888;
+    text-decoration: line-through;
+    margin-left: 10rpx;
+}
+.uni-product-tip {
+    position: absolute;
+    right: 10rpx;
+    background-color: #ff3333;
+    color: #ffffff;
+    padding: 0 10rpx;
+    border-radius: 5rpx;
+}
+/* timeline */
+.uni-timeline {
+		margin: 35rpx 0;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		        flex-direction: column;
+		position: relative;
+}
+.uni-timeline-item {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: horizontal;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: row;
+		        flex-direction: row;
+		position: relative;
+		padding-bottom: 20rpx;
+		box-sizing: border-box;
+		overflow: hidden;
+}
+.uni-timeline-item .uni-timeline-item-keynode {
+		width: 160rpx;
+		-webkit-flex-shrink: 0;
+		        flex-shrink: 0;
+		box-sizing: border-box;
+		padding-right: 20rpx;
+		text-align: right;
+		line-height: 65rpx;
+}
+.uni-timeline-item .uni-timeline-item-divider {
+		-webkit-flex-shrink: 0;
+		        flex-shrink: 0;
+		position: relative;
+		width: 30rpx;
+		height: 30rpx;
+		top: 15rpx;
+		border-radius: 50%;
+		background-color: #bbb;
+}
+.uni-timeline-item-divider::before,
+	.uni-timeline-item-divider::after {
+		position: absolute;
+		left: 15rpx;
+		width: 1rpx;
+		height: 100vh;
+		content: '';
+		background: inherit;
+}
+.uni-timeline-item-divider::before {
+		bottom: 100%;
+}
+.uni-timeline-item-divider::after {
+		top: 100%;
+}
+.uni-timeline-last-item .uni-timeline-item-divider:after {
+		display: none;
+}
+.uni-timeline-first-item .uni-timeline-item-divider:before {
+		display: none;
+}
+.uni-timeline-item .uni-timeline-item-content {
+		padding-left: 20rpx;
+}
+.uni-timeline-last-item .bottom-border::after{
+		display: none;
+}
+.uni-timeline-item-content .datetime{
+		color: #CCCCCC;
+}
+/* 自定义节点颜色 */
+.uni-timeline-last-item .uni-timeline-item-divider{
+		background-color: #1AAD19;
+}
+/* uni-icon */
+.uni-icon {
+	font-family: uniicons;
+	font-size: 24px;
+	font-weight: normal;
+	font-style: normal;
+	line-height: 1;
+	display: inline-block;
+	text-decoration: none;
+	-webkit-font-smoothing: antialiased;
+}
+.uni-icon.uni-active {
+	color: #007aff;
+}
+.uni-icon-contact:before {
+	content: '\e100';
+}
+.uni-icon-person:before {
+	content: '\e101';
+}
+.uni-icon-personadd:before {
+	content: '\e102';
+}
+.uni-icon-contact-filled:before {
+	content: '\e130';
+}
+.uni-icon-person-filled:before {
+	content: '\e131';
+}
+.uni-icon-personadd-filled:before {
+	content: '\e132';
+}
+.uni-icon-phone:before {
+	content: '\e200';
+}
+.uni-icon-email:before {
+	content: '\e201';
+}
+.uni-icon-chatbubble:before {
+	content: '\e202';
+}
+.uni-icon-chatboxes:before {
+	content: '\e203';
+}
+.uni-icon-phone-filled:before {
+	content: '\e230';
+}
+.uni-icon-email-filled:before {
+	content: '\e231';
+}
+.uni-icon-chatbubble-filled:before {
+	content: '\e232';
+}
+.uni-icon-chatboxes-filled:before {
+	content: '\e233';
+}
+.uni-icon-weibo:before {
+	content: '\e260';
+}
+.uni-icon-weixin:before {
+	content: '\e261';
+}
+.uni-icon-pengyouquan:before {
+	content: '\e262';
+}
+.uni-icon-chat:before {
+	content: '\e263';
+}
+.uni-icon-qq:before {
+	content: '\e264';
+}
+.uni-icon-videocam:before {
+	content: '\e300';
+}
+.uni-icon-camera:before {
+	content: '\e301';
+}
+.uni-icon-mic:before {
+	content: '\e302';
+}
+.uni-icon-location:before {
+	content: '\e303';
+}
+.uni-icon-mic-filled:before,
+.uni-icon-speech:before {
+	content: '\e332';
+}
+.uni-icon-location-filled:before {
+	content: '\e333';
+}
+.uni-icon-micoff:before {
+	content: '\e360';
+}
+.uni-icon-image:before {
+	content: '\e363';
+}
+.uni-icon-map:before {
+	content: '\e364';
+}
+.uni-icon-compose:before {
+	content: '\e400';
+}
+.uni-icon-trash:before {
+	content: '\e401';
+}
+.uni-icon-upload:before {
+	content: '\e402';
+}
+.uni-icon-download:before {
+	content: '\e403';
+}
+.uni-icon-close:before {
+	content: '\e404';
+}
+.uni-icon-redo:before {
+	content: '\e405';
+}
+.uni-icon-undo:before {
+	content: '\e406';
+}
+.uni-icon-refresh:before {
+	content: '\e407';
+}
+.uni-icon-star:before {
+	content: '\e408';
+}
+.uni-icon-plus:before {
+	content: '\e409';
+}
+.uni-icon-minus:before {
+	content: '\e410';
+}
+.uni-icon-circle:before,
+.uni-icon-checkbox:before {
+	content: '\e411';
+}
+.uni-icon-close-filled:before,
+.uni-icon-clear:before {
+	content: '\e434';
+}
+.uni-icon-refresh-filled:before {
+	content: '\e437';
+}
+.uni-icon-star-filled:before {
+	content: '\e438';
+}
+.uni-icon-plus-filled:before {
+	content: '\e439';
+}
+.uni-icon-minus-filled:before {
+	content: '\e440';
+}
+.uni-icon-circle-filled:before {
+	content: '\e441';
+}
+.uni-icon-checkbox-filled:before {
+	content: '\e442';
+}
+.uni-icon-closeempty:before {
+	content: '\e460';
+}
+.uni-icon-refreshempty:before {
+	content: '\e461';
+}
+.uni-icon-reload:before {
+	content: '\e462';
+}
+.uni-icon-starhalf:before {
+	content: '\e463';
+}
+.uni-icon-spinner:before {
+	content: '\e464';
+}
+.uni-icon-spinner-cycle:before {
+	content: '\e465';
+}
+.uni-icon-search:before {
+	content: '\e466';
+}
+.uni-icon-plusempty:before {
+	content: '\e468';
+}
+.uni-icon-forward:before {
+	content: '\e470';
+}
+.uni-icon-back:before,
+.uni-icon-left-nav:before {
+	content: '\e471';
+}
+.uni-icon-checkmarkempty:before {
+	content: '\e472';
+}
+.uni-icon-home:before {
+	content: '\e500';
+}
+.uni-icon-navigate:before {
+	content: '\e501';
+}
+.uni-icon-gear:before {
+	content: '\e502';
+}
+.uni-icon-paperplane:before {
+	content: '\e503';
+}
+.uni-icon-info:before {
+	content: '\e504';
+}
+.uni-icon-help:before {
+	content: '\e505';
+}
+.uni-icon-locked:before {
+	content: '\e506';
+}
+.uni-icon-more:before {
+	content: '\e507';
+}
+.uni-icon-flag:before {
+	content: '\e508';
+}
+.uni-icon-home-filled:before {
+	content: '\e530';
+}
+.uni-icon-gear-filled:before {
+	content: '\e532';
+}
+.uni-icon-info-filled:before {
+	content: '\e534';
+}
+.uni-icon-help-filled:before {
+	content: '\e535';
+}
+.uni-icon-more-filled:before {
+	content: '\e537';
+}
+.uni-icon-settings:before {
+	content: '\e560';
+}
+.uni-icon-list:before {
+	content: '\e562';
+}
+.uni-icon-bars:before {
+	content: '\e563';
+}
+.uni-icon-loop:before {
+	content: '\e565';
+}
+.uni-icon-paperclip:before {
+	content: '\e567';
+}
+.uni-icon-eye:before {
+	content: '\e568';
+}
+.uni-icon-arrowup:before {
+	content: '\e580';
+}
+.uni-icon-arrowdown:before {
+	content: '\e581';
+}
+.uni-icon-arrowleft:before {
+	content: '\e582';
+}
+.uni-icon-arrowright:before {
+	content: '\e583';
+}
+.uni-icon-arrowthinup:before {
+	content: '\e584';
+}
+.uni-icon-arrowthindown:before {
+	content: '\e585';
+}
+.uni-icon-arrowthinleft:before {
+	content: '\e586';
+}
+.uni-icon-arrowthinright:before {
+	content: '\e587';
+}
+.uni-icon-pulldown:before {
+	content: '\e588';
+}
+.uni-icon-scan:before {
+    content: "\e612";
+}
+/* 分界线 */
+.uni-divider{
+    height: 110rpx;
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: flex;
+    -webkit-box-align:center;
+    -webkit-align-items:center;
+            align-items:center;
+    -webkit-box-pack: center;
+    -webkit-justify-content: center;
+            justify-content: center;
+    position: relative;
+}
+.uni-divider__content{
+    font-size: 28rpx;
+    color: #999;
+    padding: 0 20rpx;
+    position: relative;
+    z-index: 101;
+    background: #F4F5F6;
+}
+.uni-divider__line{
+    background-color: #CCCCCC;
+    height: 1px;
+    width: 100%;
+    position: absolute;
+    z-index: 100;
+    top: 50%;
+    left: 0;
+    -webkit-transform: translateY(50%);
+            transform: translateY(50%);
+}
 

+ 112 - 0
unpackage/dist/dev/mp-weixin/common/runtime.js

@@ -54,6 +54,11 @@
 /******/ 	// The module cache
 /******/ 	var installedModules = {};
 /******/
+/******/ 	// object to store loaded CSS chunks
+/******/ 	var installedCssChunks = {
+/******/ 		"common/runtime": 0
+/******/ 	}
+/******/
 /******/ 	// object to store loaded and loading chunks
 /******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
 /******/ 	// Promise = chunk loading, 0 = chunk loaded
@@ -63,6 +68,11 @@
 /******/
 /******/ 	var deferredModules = [];
 /******/
+/******/ 	// script path function
+/******/ 	function jsonpScriptSrc(chunkId) {
+/******/ 		return __webpack_require__.p + "" + chunkId + ".js"
+/******/ 	}
+/******/
 /******/ 	// The require function
 /******/ 	function __webpack_require__(moduleId) {
 /******/
@@ -87,6 +97,105 @@
 /******/ 		return module.exports;
 /******/ 	}
 /******/
+/******/ 	// This file contains only the entry chunk.
+/******/ 	// The chunk loading function for additional chunks
+/******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
+/******/ 		var promises = [];
+/******/
+/******/
+/******/ 		// mini-css-extract-plugin CSS loading
+/******/ 		var cssChunks = {"component/uni-icon/uni-icon":1,"component/uni-nav-bar/uni-nav-bar":1,"component/commoNar":1,"component/uni-status-bar/uni-status-bar":1};
+/******/ 		if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
+/******/ 		else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
+/******/ 			promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
+/******/ 				var href = "" + ({"component/uni-icon/uni-icon":"component/uni-icon/uni-icon","component/uni-nav-bar/uni-nav-bar":"component/uni-nav-bar/uni-nav-bar","component/commoNar":"component/commoNar","component/uni-status-bar/uni-status-bar":"component/uni-status-bar/uni-status-bar"}[chunkId]||chunkId) + ".wxss";
+/******/ 				var fullhref = __webpack_require__.p + href;
+/******/ 				var existingLinkTags = document.getElementsByTagName("link");
+/******/ 				for(var i = 0; i < existingLinkTags.length; i++) {
+/******/ 					var tag = existingLinkTags[i];
+/******/ 					var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
+/******/ 					if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve();
+/******/ 				}
+/******/ 				var existingStyleTags = document.getElementsByTagName("style");
+/******/ 				for(var i = 0; i < existingStyleTags.length; i++) {
+/******/ 					var tag = existingStyleTags[i];
+/******/ 					var dataHref = tag.getAttribute("data-href");
+/******/ 					if(dataHref === href || dataHref === fullhref) return resolve();
+/******/ 				}
+/******/ 				var linkTag = document.createElement("link");
+/******/ 				linkTag.rel = "stylesheet";
+/******/ 				linkTag.type = "text/css";
+/******/ 				linkTag.onload = resolve;
+/******/ 				linkTag.onerror = function(event) {
+/******/ 					var request = event && event.target && event.target.src || fullhref;
+/******/ 					var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + request + ")");
+/******/ 					err.code = "CSS_CHUNK_LOAD_FAILED";
+/******/ 					err.request = request;
+/******/ 					delete installedCssChunks[chunkId]
+/******/ 					linkTag.parentNode.removeChild(linkTag)
+/******/ 					reject(err);
+/******/ 				};
+/******/ 				linkTag.href = fullhref;
+/******/
+/******/ 				var head = document.getElementsByTagName("head")[0];
+/******/ 				head.appendChild(linkTag);
+/******/ 			}).then(function() {
+/******/ 				installedCssChunks[chunkId] = 0;
+/******/ 			}));
+/******/ 		}
+/******/
+/******/ 		// JSONP chunk loading for javascript
+/******/
+/******/ 		var installedChunkData = installedChunks[chunkId];
+/******/ 		if(installedChunkData !== 0) { // 0 means "already installed".
+/******/
+/******/ 			// a Promise means "currently loading".
+/******/ 			if(installedChunkData) {
+/******/ 				promises.push(installedChunkData[2]);
+/******/ 			} else {
+/******/ 				// setup Promise in chunk cache
+/******/ 				var promise = new Promise(function(resolve, reject) {
+/******/ 					installedChunkData = installedChunks[chunkId] = [resolve, reject];
+/******/ 				});
+/******/ 				promises.push(installedChunkData[2] = promise);
+/******/
+/******/ 				// start chunk loading
+/******/ 				var script = document.createElement('script');
+/******/ 				var onScriptComplete;
+/******/
+/******/ 				script.charset = 'utf-8';
+/******/ 				script.timeout = 120;
+/******/ 				if (__webpack_require__.nc) {
+/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
+/******/ 				}
+/******/ 				script.src = jsonpScriptSrc(chunkId);
+/******/
+/******/ 				onScriptComplete = function (event) {
+/******/ 					// avoid mem leaks in IE.
+/******/ 					script.onerror = script.onload = null;
+/******/ 					clearTimeout(timeout);
+/******/ 					var chunk = installedChunks[chunkId];
+/******/ 					if(chunk !== 0) {
+/******/ 						if(chunk) {
+/******/ 							var errorType = event && (event.type === 'load' ? 'missing' : event.type);
+/******/ 							var realSrc = event && event.target && event.target.src;
+/******/ 							var error = new Error('Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')');
+/******/ 							error.type = errorType;
+/******/ 							error.request = realSrc;
+/******/ 							chunk[1](error);
+/******/ 						}
+/******/ 						installedChunks[chunkId] = undefined;
+/******/ 					}
+/******/ 				};
+/******/ 				var timeout = setTimeout(function(){
+/******/ 					onScriptComplete({ type: 'timeout', target: script });
+/******/ 				}, 120000);
+/******/ 				script.onerror = script.onload = onScriptComplete;
+/******/ 				document.head.appendChild(script);
+/******/ 			}
+/******/ 		}
+/******/ 		return Promise.all(promises);
+/******/ 	};
 /******/
 /******/ 	// expose the modules object (__webpack_modules__)
 /******/ 	__webpack_require__.m = modules;
@@ -140,6 +249,9 @@
 /******/ 	// __webpack_public_path__
 /******/ 	__webpack_require__.p = "/";
 /******/
+/******/ 	// on error function for async loading
+/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
+/******/
 /******/ 	var jsonpArray = global["webpackJsonp"] = global["webpackJsonp"] || [];
 /******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
 /******/ 	jsonpArray.push = webpackJsonpCallback;

+ 1762 - 1769
unpackage/dist/dev/mp-weixin/common/vendor.js

@@ -1,6 +1,6 @@
-(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/vendor"],{
-
-/***/ 1:
+(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/vendor"],[
+/* 0 */,
+/* 1 */
 /*!************************************************************!*\
   !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js ***!
   \************************************************************/
@@ -1554,137 +1554,7 @@ var uni$1 = uni;var _default =
 uni$1;exports.default = _default;
 
 /***/ }),
-
-/***/ 14:
-/*!**********************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***!
-  \**********************************************************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; });
-/* globals __VUE_SSR_CONTEXT__ */
-
-// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
-// This module is a runtime utility for cleaner component module output and will
-// be included in the final webpack user bundle.
-
-function normalizeComponent (
-  scriptExports,
-  render,
-  staticRenderFns,
-  functionalTemplate,
-  injectStyles,
-  scopeId,
-  moduleIdentifier, /* server only */
-  shadowMode, /* vue-cli only */
-  components, // fixed by xxxxxx auto components
-  renderjs // fixed by xxxxxx renderjs
-) {
-  // Vue.extend constructor export interop
-  var options = typeof scriptExports === 'function'
-    ? scriptExports.options
-    : scriptExports
-
-  // fixed by xxxxxx auto components
-  if (components) {
-    if (!options.components) {
-      options.components = {}
-    }
-    var hasOwn = Object.prototype.hasOwnProperty
-    for (var name in components) {
-      if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {
-        options.components[name] = components[name]
-      }
-    }
-  }
-  // fixed by xxxxxx renderjs
-  if (renderjs) {
-    (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {
-      this[renderjs.__module] = this
-    });
-    (options.mixins || (options.mixins = [])).push(renderjs)
-  }
-
-  // render functions
-  if (render) {
-    options.render = render
-    options.staticRenderFns = staticRenderFns
-    options._compiled = true
-  }
-
-  // functional template
-  if (functionalTemplate) {
-    options.functional = true
-  }
-
-  // scopedId
-  if (scopeId) {
-    options._scopeId = 'data-v-' + scopeId
-  }
-
-  var hook
-  if (moduleIdentifier) { // server build
-    hook = function (context) {
-      // 2.3 injection
-      context =
-        context || // cached call
-        (this.$vnode && this.$vnode.ssrContext) || // stateful
-        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
-      // 2.2 with runInNewContext: true
-      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
-        context = __VUE_SSR_CONTEXT__
-      }
-      // inject component styles
-      if (injectStyles) {
-        injectStyles.call(this, context)
-      }
-      // register component module identifier for async chunk inferrence
-      if (context && context._registeredComponents) {
-        context._registeredComponents.add(moduleIdentifier)
-      }
-    }
-    // used by ssr in case component is cached and beforeCreate
-    // never gets called
-    options._ssrRegister = hook
-  } else if (injectStyles) {
-    hook = shadowMode
-      ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
-      : injectStyles
-  }
-
-  if (hook) {
-    if (options.functional) {
-      // for template-only hot-reload because in that case the render fn doesn't
-      // go through the normalizer
-      options._injectStyles = hook
-      // register for functioal component in vue file
-      var originalRender = options.render
-      options.render = function renderWithStyleInjection (h, context) {
-        hook.call(context)
-        return originalRender(h, context)
-      }
-    } else {
-      // inject component registration as beforeCreate hook
-      var existing = options.beforeCreate
-      options.beforeCreate = existing
-        ? [].concat(existing, hook)
-        : [hook]
-    }
-  }
-
-  return {
-    exports: scriptExports,
-    options: options
-  }
-}
-
-
-/***/ }),
-
-/***/ 2:
+/* 2 */
 /*!******************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js ***!
   \******************************************************************************************/
@@ -7713,8 +7583,7 @@ internalMixin(Vue);
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 3)))
 
 /***/ }),
-
-/***/ 3:
+/* 3 */
 /*!***********************************!*\
   !*** (webpack)/buildin/global.js ***!
   \***********************************/
@@ -7744,1987 +7613,2111 @@ module.exports = g;
 
 
 /***/ }),
+/* 4 */
+/*!*****************************************************************************!*\
+  !*** C:/Users/Administrator/Documents/HBuilderProjects/myUinapp/pages.json ***!
+  \*****************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
 
-/***/ 37:
-/*!********************************************!*\
-  !*** ./node_modules/vuex/dist/vuex.esm.js ***!
-  \********************************************/
-/*! exports provided: Store, install, mapState, mapMutations, mapGetters, mapActions, createNamespacedHelpers, default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+"use strict";
+
+
+/***/ }),
+/* 5 */
+/*!*******************************************************!*\
+  !*** ./node_modules/@dcloudio/uni-stat/dist/index.js ***!
+  \*******************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Store", function() { return Store; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "install", function() { return install; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapState", function() { return mapState; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapMutations", function() { return mapMutations; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapGetters", function() { return mapGetters; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapActions", function() { return mapActions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createNamespacedHelpers", function() { return createNamespacedHelpers; });
-/**
- * vuex v3.0.1
- * (c) 2017 Evan You
- * @license MIT
- */
-var applyMixin = function (Vue) {
-  var version = Number(Vue.version.split('.')[0]);
+/* WEBPACK VAR INJECTION */(function(uni) {var _package = __webpack_require__(/*! ../package.json */ 6);function _possibleConstructorReturn(self, call) {if (call && (typeof call === "object" || typeof call === "function")) {return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self) {if (self === void 0) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o) {_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {return o.__proto__ || Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass, superClass) {if (typeof superClass !== "function" && superClass !== null) {throw new TypeError("Super expression must either be null or a function");}subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });if (superClass) _setPrototypeOf(subClass, superClass);}function _setPrototypeOf(o, p) {_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {o.__proto__ = p;return o;};return _setPrototypeOf(o, p);}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}
 
-  if (version >= 2) {
-    Vue.mixin({ beforeCreate: vuexInit });
-  } else {
-    // override init and inject vuex init procedure
-    // for 1.x backwards compatibility.
-    var _init = Vue.prototype._init;
-    Vue.prototype._init = function (options) {
-      if ( options === void 0 ) options = {};
+var STAT_VERSION = _package.version;
+var STAT_URL = 'https://tongji.dcloud.io/uni/stat';
+var STAT_H5_URL = 'https://tongji.dcloud.io/uni/stat.gif';
+var PAGE_PVER_TIME = 1800;
+var APP_PVER_TIME = 300;
+var OPERATING_TIME = 10;
 
-      options.init = options.init
-        ? [vuexInit].concat(options.init)
-        : vuexInit;
-      _init.call(this, options);
-    };
+var UUID_KEY = '__DC_STAT_UUID';
+var UUID_VALUE = '__DC_UUID_VALUE';
+
+function getUuid() {
+  var uuid = '';
+  if (getPlatformName() === 'n') {
+    try {
+      uuid = plus.runtime.getDCloudId();
+    } catch (e) {
+      uuid = '';
+    }
+    return uuid;
   }
 
-  /**
-   * Vuex init hook, injected into each instances init hooks list.
-   */
+  try {
+    uuid = uni.getStorageSync(UUID_KEY);
+  } catch (e) {
+    uuid = UUID_VALUE;
+  }
 
-  function vuexInit () {
-    var options = this.$options;
-    // store injection
-    if (options.store) {
-      this.$store = typeof options.store === 'function'
-        ? options.store()
-        : options.store;
-    } else if (options.parent && options.parent.$store) {
-      this.$store = options.parent.$store;
+  if (!uuid) {
+    uuid = Date.now() + '' + Math.floor(Math.random() * 1e7);
+    try {
+      uni.setStorageSync(UUID_KEY, uuid);
+    } catch (e) {
+      uni.setStorageSync(UUID_KEY, UUID_VALUE);
     }
   }
-};
+  return uuid;
+}
 
-var devtoolHook =
-  typeof window !== 'undefined' &&
-  window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
+var getSgin = function getSgin(statData) {
+  var arr = Object.keys(statData);
+  var sortArr = arr.sort();
+  var sgin = {};
+  var sginStr = '';
+  for (var i in sortArr) {
+    sgin[sortArr[i]] = statData[sortArr[i]];
+    sginStr += sortArr[i] + '=' + statData[sortArr[i]] + '&';
+  }
+  // const options = sginStr.substr(0, sginStr.length - 1)
+  // sginStr = sginStr.substr(0, sginStr.length - 1) + '&key=' + STAT_KEY;
+  // const si = crypto.createHash('md5').update(sginStr).digest('hex');
+  return {
+    sign: '',
+    options: sginStr.substr(0, sginStr.length - 1) };
 
-function devtoolPlugin (store) {
-  if (!devtoolHook) { return }
+};
 
-  store._devtoolHook = devtoolHook;
+var getSplicing = function getSplicing(data) {
+  var str = '';
+  for (var i in data) {
+    str += i + '=' + data[i] + '&';
+  }
+  return str.substr(0, str.length - 1);
+};
 
-  devtoolHook.emit('vuex:init', store);
+var getTime = function getTime() {
+  return parseInt(new Date().getTime() / 1000);
+};
 
-  devtoolHook.on('vuex:travel-to-state', function (targetState) {
-    store.replaceState(targetState);
-  });
-
-  store.subscribe(function (mutation, state) {
-    devtoolHook.emit('vuex:mutation', mutation, state);
-  });
-}
-
-/**
- * Get the first item that pass the test
- * by second argument function
- *
- * @param {Array} list
- * @param {Function} f
- * @return {*}
- */
-/**
- * Deep copy the given object considering circular structure.
- * This function caches all nested objects and its copies.
- * If it detects circular structure, use cached copy to avoid infinite loop.
- *
- * @param {*} obj
- * @param {Array<Object>} cache
- * @return {*}
- */
-
-
-/**
- * forEach for object
- */
-function forEachValue (obj, fn) {
-  Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
-}
-
-function isObject (obj) {
-  return obj !== null && typeof obj === 'object'
-}
-
-function isPromise (val) {
-  return val && typeof val.then === 'function'
-}
-
-function assert (condition, msg) {
-  if (!condition) { throw new Error(("[vuex] " + msg)) }
-}
-
-var Module = function Module (rawModule, runtime) {
-  this.runtime = runtime;
-  this._children = Object.create(null);
-  this._rawModule = rawModule;
-  var rawState = rawModule.state;
-  this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
-};
-
-var prototypeAccessors$1 = { namespaced: { configurable: true } };
+var getPlatformName = function getPlatformName() {
+  var platformList = {
+    'app-plus': 'n',
+    'h5': 'h5',
+    'mp-weixin': 'wx',
+    'mp-alipay': 'ali',
+    'mp-baidu': 'bd',
+    'mp-toutiao': 'tt',
+    'mp-qq': 'qq' };
 
-prototypeAccessors$1.namespaced.get = function () {
-  return !!this._rawModule.namespaced
+  return platformList["mp-weixin"];
 };
 
-Module.prototype.addChild = function addChild (key, module) {
-  this._children[key] = module;
+var getPackName = function getPackName() {
+  var packName = '';
+  if (getPlatformName() === 'wx' || getPlatformName() === 'qq') {
+    // 兼容微信小程序低版本基础库
+    if (uni.canIUse('getAccountInfoSync')) {
+      packName = uni.getAccountInfoSync().miniProgram.appId || '';
+    }
+  }
+  return packName;
 };
 
-Module.prototype.removeChild = function removeChild (key) {
-  delete this._children[key];
+var getVersion = function getVersion() {
+  return getPlatformName() === 'n' ? plus.runtime.version : '';
 };
 
-Module.prototype.getChild = function getChild (key) {
-  return this._children[key]
+var getChannel = function getChannel() {
+  var platformName = getPlatformName();
+  var channel = '';
+  if (platformName === 'n') {
+    channel = plus.runtime.channel;
+  }
+  return channel;
 };
 
-Module.prototype.update = function update (rawModule) {
-  this._rawModule.namespaced = rawModule.namespaced;
-  if (rawModule.actions) {
-    this._rawModule.actions = rawModule.actions;
-  }
-  if (rawModule.mutations) {
-    this._rawModule.mutations = rawModule.mutations;
+var getScene = function getScene(options) {
+  var platformName = getPlatformName();
+  var scene = '';
+  if (options) {
+    return options;
   }
-  if (rawModule.getters) {
-    this._rawModule.getters = rawModule.getters;
+  if (platformName === 'wx') {
+    scene = uni.getLaunchOptionsSync().scene;
   }
+  return scene;
 };
+var First__Visit__Time__KEY = 'First__Visit__Time';
+var Last__Visit__Time__KEY = 'Last__Visit__Time';
 
-Module.prototype.forEachChild = function forEachChild (fn) {
-  forEachValue(this._children, fn);
+var getFirstVisitTime = function getFirstVisitTime() {
+  var timeStorge = uni.getStorageSync(First__Visit__Time__KEY);
+  var time = 0;
+  if (timeStorge) {
+    time = timeStorge;
+  } else {
+    time = getTime();
+    uni.setStorageSync(First__Visit__Time__KEY, time);
+    uni.removeStorageSync(Last__Visit__Time__KEY);
+  }
+  return time;
 };
 
-Module.prototype.forEachGetter = function forEachGetter (fn) {
-  if (this._rawModule.getters) {
-    forEachValue(this._rawModule.getters, fn);
+var getLastVisitTime = function getLastVisitTime() {
+  var timeStorge = uni.getStorageSync(Last__Visit__Time__KEY);
+  var time = 0;
+  if (timeStorge) {
+    time = timeStorge;
+  } else {
+    time = '';
   }
+  uni.setStorageSync(Last__Visit__Time__KEY, getTime());
+  return time;
 };
 
-Module.prototype.forEachAction = function forEachAction (fn) {
-  if (this._rawModule.actions) {
-    forEachValue(this._rawModule.actions, fn);
+
+var PAGE_RESIDENCE_TIME = '__page__residence__time';
+var First_Page_residence_time = 0;
+var Last_Page_residence_time = 0;
+
+
+var setPageResidenceTime = function setPageResidenceTime() {
+  First_Page_residence_time = getTime();
+  if (getPlatformName() === 'n') {
+    uni.setStorageSync(PAGE_RESIDENCE_TIME, getTime());
   }
+  return First_Page_residence_time;
 };
 
-Module.prototype.forEachMutation = function forEachMutation (fn) {
-  if (this._rawModule.mutations) {
-    forEachValue(this._rawModule.mutations, fn);
+var getPageResidenceTime = function getPageResidenceTime() {
+  Last_Page_residence_time = getTime();
+  if (getPlatformName() === 'n') {
+    First_Page_residence_time = uni.getStorageSync(PAGE_RESIDENCE_TIME);
   }
+  return Last_Page_residence_time - First_Page_residence_time;
 };
-
-Object.defineProperties( Module.prototype, prototypeAccessors$1 );
-
-var ModuleCollection = function ModuleCollection (rawRootModule) {
-  // register root module (Vuex.Store options)
-  this.register([], rawRootModule, false);
+var TOTAL__VISIT__COUNT = 'Total__Visit__Count';
+var getTotalVisitCount = function getTotalVisitCount() {
+  var timeStorge = uni.getStorageSync(TOTAL__VISIT__COUNT);
+  var count = 1;
+  if (timeStorge) {
+    count = timeStorge;
+    count++;
+  }
+  uni.setStorageSync(TOTAL__VISIT__COUNT, count);
+  return count;
 };
 
-ModuleCollection.prototype.get = function get (path) {
-  return path.reduce(function (module, key) {
-    return module.getChild(key)
-  }, this.root)
+var GetEncodeURIComponentOptions = function GetEncodeURIComponentOptions(statData) {
+  var data = {};
+  for (var prop in statData) {
+    data[prop] = encodeURIComponent(statData[prop]);
+  }
+  return data;
 };
 
-ModuleCollection.prototype.getNamespace = function getNamespace (path) {
-  var module = this.root;
-  return path.reduce(function (namespace, key) {
-    module = module.getChild(key);
-    return namespace + (module.namespaced ? key + '/' : '')
-  }, '')
+var Set__First__Time = 0;
+var Set__Last__Time = 0;
+
+var getFirstTime = function getFirstTime() {
+  var time = new Date().getTime();
+  Set__First__Time = time;
+  Set__Last__Time = 0;
+  return time;
 };
 
-ModuleCollection.prototype.update = function update$1 (rawRootModule) {
-  update([], this.root, rawRootModule);
+
+var getLastTime = function getLastTime() {
+  var time = new Date().getTime();
+  Set__Last__Time = time;
+  return time;
 };
 
-ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
-    var this$1 = this;
-    if ( runtime === void 0 ) runtime = true;
 
-  if (true) {
-    assertRawModule(path, rawModule);
+var getResidenceTime = function getResidenceTime(type) {
+  var residenceTime = 0;
+  if (Set__First__Time !== 0) {
+    residenceTime = Set__Last__Time - Set__First__Time;
   }
 
-  var newModule = new Module(rawModule, runtime);
-  if (path.length === 0) {
-    this.root = newModule;
-  } else {
-    var parent = this.get(path.slice(0, -1));
-    parent.addChild(path[path.length - 1], newModule);
+  residenceTime = parseInt(residenceTime / 1000);
+  residenceTime = residenceTime < 1 ? 1 : residenceTime;
+  if (type === 'app') {
+    var overtime = residenceTime > APP_PVER_TIME ? true : false;
+    return {
+      residenceTime: residenceTime,
+      overtime: overtime };
+
   }
+  if (type === 'page') {
+    var _overtime = residenceTime > PAGE_PVER_TIME ? true : false;
+    return {
+      residenceTime: residenceTime,
+      overtime: _overtime };
 
-  // register nested modules
-  if (rawModule.modules) {
-    forEachValue(rawModule.modules, function (rawChildModule, key) {
-      this$1.register(path.concat(key), rawChildModule, runtime);
-    });
   }
-};
 
-ModuleCollection.prototype.unregister = function unregister (path) {
-  var parent = this.get(path.slice(0, -1));
-  var key = path[path.length - 1];
-  if (!parent.getChild(key).runtime) { return }
+  return {
+    residenceTime: residenceTime };
+
 
-  parent.removeChild(key);
 };
 
-function update (path, targetModule, newModule) {
-  if (true) {
-    assertRawModule(path, newModule);
-  }
+var getRoute = function getRoute() {
+  var pages = getCurrentPages();
+  var page = pages[pages.length - 1];
+  var _self = page.$vm;
 
-  // update target module
-  targetModule.update(newModule);
-
-  // update nested modules
-  if (newModule.modules) {
-    for (var key in newModule.modules) {
-      if (!targetModule.getChild(key)) {
-        if (true) {
-          console.warn(
-            "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
-            'manual reload is needed'
-          );
-        }
-        return
-      }
-      update(
-        path.concat(key),
-        targetModule.getChild(key),
-        newModule.modules[key]
-      );
-    }
+  if (getPlatformName() === 'bd') {
+    return _self.$mp && _self.$mp.page.is;
+  } else {
+    return _self.$scope && _self.$scope.route || _self.$mp && _self.$mp.page.route;
   }
-}
-
-var functionAssert = {
-  assert: function (value) { return typeof value === 'function'; },
-  expected: 'function'
 };
 
-var objectAssert = {
-  assert: function (value) { return typeof value === 'function' ||
-    (typeof value === 'object' && typeof value.handler === 'function'); },
-  expected: 'function or object with "handler" function'
+var getPageRoute = function getPageRoute(self) {
+  var pages = getCurrentPages();
+  var page = pages[pages.length - 1];
+  var _self = page.$vm;
+  var query = self._query;
+  var str = query && JSON.stringify(query) !== '{}' ? '?' + JSON.stringify(query) : '';
+  // clear
+  self._query = '';
+  if (getPlatformName() === 'bd') {
+    return _self.$mp && _self.$mp.page.is + str;
+  } else {
+    return _self.$scope && _self.$scope.route + str || _self.$mp && _self.$mp.page.route + str;
+  }
 };
 
-var assertTypes = {
-  getters: functionAssert,
-  mutations: functionAssert,
-  actions: objectAssert
+var getPageTypes = function getPageTypes(self) {
+  if (self.mpType === 'page' || self.$mp && self.$mp.mpType === 'page' || self.$options.mpType === 'page') {
+    return true;
+  }
+  return false;
 };
 
-function assertRawModule (path, rawModule) {
-  Object.keys(assertTypes).forEach(function (key) {
-    if (!rawModule[key]) { return }
-
-    var assertOptions = assertTypes[key];
-
-    forEachValue(rawModule[key], function (value, type) {
-      assert(
-        assertOptions.assert(value),
-        makeAssertionMessage(path, key, type, value, assertOptions.expected)
-      );
-    });
-  });
-}
-
-function makeAssertionMessage (path, key, type, value, expected) {
-  var buf = key + " should be " + expected + " but \"" + key + "." + type + "\"";
-  if (path.length > 0) {
-    buf += " in module \"" + (path.join('.')) + "\"";
+var calibration = function calibration(eventName, options) {
+  //  login 、 share 、pay_success 、pay_fail 、register 、title
+  if (!eventName) {
+    console.error("uni.report \u7F3A\u5C11 [eventName] \u53C2\u6570");
+    return true;
   }
-  buf += " is " + (JSON.stringify(value)) + ".";
-  return buf
-}
-
-var Vue; // bind on install
-
-var Store = function Store (options) {
-  var this$1 = this;
-  if ( options === void 0 ) options = {};
-
-  // Auto install if it is not done yet and `window` has `Vue`.
-  // To allow users to avoid auto-installation in some cases,
-  // this code should be placed here. See #731
-  if (!Vue && typeof window !== 'undefined' && window.Vue) {
-    install(window.Vue);
+  if (typeof eventName !== 'string') {
+    console.error("uni.report [eventName] \u53C2\u6570\u7C7B\u578B\u9519\u8BEF,\u53EA\u80FD\u4E3A String \u7C7B\u578B");
+    return true;
+  }
+  if (eventName.length > 255) {
+    console.error("uni.report [eventName] \u53C2\u6570\u957F\u5EA6\u4E0D\u80FD\u5927\u4E8E 255");
+    return true;
   }
 
-  if (true) {
-    assert(Vue, "must call Vue.use(Vuex) before creating a store instance.");
-    assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
-    assert(this instanceof Store, "Store must be called with the new operator.");
+  if (typeof options !== 'string' && typeof options !== 'object') {
+    console.error("uni.report [options] \u53C2\u6570\u7C7B\u578B\u9519\u8BEF,\u53EA\u80FD\u4E3A String \u6216 Object \u7C7B\u578B");
+    return true;
   }
 
-  var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
-  var strict = options.strict; if ( strict === void 0 ) strict = false;
+  if (typeof options === 'string' && options.length > 255) {
+    console.error("uni.report [options] \u53C2\u6570\u957F\u5EA6\u4E0D\u80FD\u5927\u4E8E 255");
+    return true;
+  }
 
-  var state = options.state; if ( state === void 0 ) state = {};
-  if (typeof state === 'function') {
-    state = state() || {};
+  if (eventName === 'title' && typeof options !== 'string') {
+    console.error('uni.report [eventName] 参数为 title 时,[options] 参数只能为 String 类型');
+    return true;
   }
+};
 
-  // store internal state
-  this._committing = false;
-  this._actions = Object.create(null);
-  this._actionSubscribers = [];
-  this._mutations = Object.create(null);
-  this._wrappedGetters = Object.create(null);
-  this._modules = new ModuleCollection(options);
-  this._modulesNamespaceMap = Object.create(null);
-  this._subscribers = [];
-  this._watcherVM = new Vue();
+var PagesJson = __webpack_require__(/*! uni-pages?{"type":"style"} */ 7).default;
+var statConfig = __webpack_require__(/*! uni-stat-config */ 8).default || __webpack_require__(/*! uni-stat-config */ 8);
 
-  // bind commit and dispatch to self
-  var store = this;
-  var ref = this;
-  var dispatch = ref.dispatch;
-  var commit = ref.commit;
-  this.dispatch = function boundDispatch (type, payload) {
-    return dispatch.call(store, type, payload)
-  };
-  this.commit = function boundCommit (type, payload, options) {
-    return commit.call(store, type, payload, options)
-  };
+var resultOptions = uni.getSystemInfoSync();var
 
-  // strict mode
-  this.strict = strict;
+Util = /*#__PURE__*/function () {
+  function Util() {_classCallCheck(this, Util);
+    this.self = '';
+    this._retry = 0;
+    this._platform = '';
+    this._query = {};
+    this._navigationBarTitle = {
+      config: '',
+      page: '',
+      report: '',
+      lt: '' };
 
-  // init root module.
-  // this also recursively registers all sub-modules
-  // and collects all module getters inside this._wrappedGetters
-  installModule(this, state, [], this._modules.root);
+    this._operatingTime = 0;
+    this._reportingRequestData = {
+      '1': [],
+      '11': [] };
 
-  // initialize the store vm, which is responsible for the reactivity
-  // (also registers _wrappedGetters as computed properties)
-  resetStoreVM(this, state);
+    this.__prevent_triggering = false;
 
-  // apply plugins
-  plugins.forEach(function (plugin) { return plugin(this$1); });
+    this.__licationHide = false;
+    this.__licationShow = false;
+    this._lastPageRoute = '';
+    this.statData = {
+      uuid: getUuid(),
+      ut: getPlatformName(),
+      mpn: getPackName(),
+      ak: statConfig.appid,
+      usv: STAT_VERSION,
+      v: getVersion(),
+      ch: getChannel(),
+      cn: '',
+      pn: '',
+      ct: '',
+      t: getTime(),
+      tt: '',
+      p: resultOptions.platform === 'android' ? 'a' : 'i',
+      brand: resultOptions.brand || '',
+      md: resultOptions.model,
+      sv: resultOptions.system.replace(/(Android|iOS)\s/, ''),
+      mpsdk: resultOptions.SDKVersion || '',
+      mpv: resultOptions.version || '',
+      lang: resultOptions.language,
+      pr: resultOptions.pixelRatio,
+      ww: resultOptions.windowWidth,
+      wh: resultOptions.windowHeight,
+      sw: resultOptions.screenWidth,
+      sh: resultOptions.screenHeight };
 
-  if (Vue.config.devtools) {
-    devtoolPlugin(this);
-  }
-};
 
-var prototypeAccessors = { state: { configurable: true } };
+  }_createClass(Util, [{ key: "_applicationShow", value: function _applicationShow()
 
-prototypeAccessors.state.get = function () {
-  return this._vm._data.$$state
-};
+    {
+      if (this.__licationHide) {
+        getLastTime();
+        var time = getResidenceTime('app');
+        if (time.overtime) {
+          var options = {
+            path: this._lastPageRoute,
+            scene: this.statData.sc };
 
-prototypeAccessors.state.set = function (v) {
-  if (true) {
-    assert(false, "Use store.replaceState() to explicit replace store state.");
-  }
-};
+          this._sendReportRequest(options);
+        }
+        this.__licationHide = false;
+      }
+    } }, { key: "_applicationHide", value: function _applicationHide(
 
-Store.prototype.commit = function commit (_type, _payload, _options) {
-    var this$1 = this;
+    self, type) {
 
-  // check object-style commit
-  var ref = unifyObjectStyle(_type, _payload, _options);
-    var type = ref.type;
-    var payload = ref.payload;
-    var options = ref.options;
+      this.__licationHide = true;
+      getLastTime();
+      var time = getResidenceTime();
+      getFirstTime();
+      var route = getPageRoute(this);
+      this._sendHideRequest({
+        urlref: route,
+        urlref_ts: time.residenceTime },
+      type);
+    } }, { key: "_pageShow", value: function _pageShow()
 
-  var mutation = { type: type, payload: payload };
-  var entry = this._mutations[type];
-  if (!entry) {
-    if (true) {
-      console.error(("[vuex] unknown mutation type: " + type));
-    }
-    return
-  }
-  this._withCommit(function () {
-    entry.forEach(function commitIterator (handler) {
-      handler(payload);
-    });
-  });
-  this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); });
-
-  if (
-     true &&
-    options && options.silent
-  ) {
-    console.warn(
-      "[vuex] mutation type: " + type + ". Silent option has been removed. " +
-      'Use the filter functionality in the vue-devtools'
-    );
-  }
-};
+    {
+      var route = getPageRoute(this);
+      var routepath = getRoute();
+      this._navigationBarTitle.config = PagesJson &&
+      PagesJson.pages[routepath] &&
+      PagesJson.pages[routepath].titleNView &&
+      PagesJson.pages[routepath].titleNView.titleText ||
+      PagesJson &&
+      PagesJson.pages[routepath] &&
+      PagesJson.pages[routepath].navigationBarTitleText || '';
 
-Store.prototype.dispatch = function dispatch (_type, _payload) {
-    var this$1 = this;
+      if (this.__licationShow) {
+        getFirstTime();
+        this.__licationShow = false;
+        // console.log('这是 onLauch 之后执行的第一次 pageShow ,为下次记录时间做准备');
+        this._lastPageRoute = route;
+        return;
+      }
 
-  // check object-style dispatch
-  var ref = unifyObjectStyle(_type, _payload);
-    var type = ref.type;
-    var payload = ref.payload;
+      getLastTime();
+      this._lastPageRoute = route;
+      var time = getResidenceTime('page');
+      if (time.overtime) {
+        var options = {
+          path: this._lastPageRoute,
+          scene: this.statData.sc };
 
-  var action = { type: type, payload: payload };
-  var entry = this._actions[type];
-  if (!entry) {
-    if (true) {
-      console.error(("[vuex] unknown action type: " + type));
-    }
-    return
-  }
+        this._sendReportRequest(options);
+      }
+      getFirstTime();
+    } }, { key: "_pageHide", value: function _pageHide()
 
-  this._actionSubscribers.forEach(function (sub) { return sub(action, this$1.state); });
+    {
+      if (!this.__licationHide) {
+        getLastTime();
+        var time = getResidenceTime('page');
+        this._sendPageRequest({
+          url: this._lastPageRoute,
+          urlref: this._lastPageRoute,
+          urlref_ts: time.residenceTime });
 
-  return entry.length > 1
-    ? Promise.all(entry.map(function (handler) { return handler(payload); }))
-    : entry[0](payload)
-};
+        this._navigationBarTitle = {
+          config: '',
+          page: '',
+          report: '',
+          lt: '' };
 
-Store.prototype.subscribe = function subscribe (fn) {
-  return genericSubscribe(fn, this._subscribers)
-};
+        return;
+      }
+    } }, { key: "_login", value: function _login()
 
-Store.prototype.subscribeAction = function subscribeAction (fn) {
-  return genericSubscribe(fn, this._actionSubscribers)
-};
+    {
+      this._sendEventRequest({
+        key: 'login' },
+      0);
+    } }, { key: "_share", value: function _share()
 
-Store.prototype.watch = function watch (getter, cb, options) {
-    var this$1 = this;
+    {
+      this._sendEventRequest({
+        key: 'share' },
+      0);
+    } }, { key: "_payment", value: function _payment(
+    key) {
+      this._sendEventRequest({
+        key: key },
+      0);
+    } }, { key: "_sendReportRequest", value: function _sendReportRequest(
+    options) {
 
-  if (true) {
-    assert(typeof getter === 'function', "store.watch only accepts a function.");
-  }
-  return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)
-};
+      this._navigationBarTitle.lt = '1';
+      var query = options.query && JSON.stringify(options.query) !== '{}' ? '?' + JSON.stringify(options.query) : '';
+      this.statData.lt = '1';
+      this.statData.url = options.path + query || '';
+      this.statData.t = getTime();
+      this.statData.sc = getScene(options.scene);
+      this.statData.fvts = getFirstVisitTime();
+      this.statData.lvts = getLastVisitTime();
+      this.statData.tvc = getTotalVisitCount();
+      if (getPlatformName() === 'n') {
+        this.getProperty();
+      } else {
+        this.getNetworkInfo();
+      }
+    } }, { key: "_sendPageRequest", value: function _sendPageRequest(
 
-Store.prototype.replaceState = function replaceState (state) {
-    var this$1 = this;
+    opt) {var
 
-  this._withCommit(function () {
-    this$1._vm._data.$$state = state;
-  });
-};
+      url =
 
-Store.prototype.registerModule = function registerModule (path, rawModule, options) {
-    if ( options === void 0 ) options = {};
 
-  if (typeof path === 'string') { path = [path]; }
+      opt.url,urlref = opt.urlref,urlref_ts = opt.urlref_ts;
+      this._navigationBarTitle.lt = '11';
+      var options = {
+        ak: this.statData.ak,
+        uuid: this.statData.uuid,
+        lt: '11',
+        ut: this.statData.ut,
+        url: url,
+        tt: this.statData.tt,
+        urlref: urlref,
+        urlref_ts: urlref_ts,
+        ch: this.statData.ch,
+        usv: this.statData.usv,
+        t: getTime(),
+        p: this.statData.p };
 
-  if (true) {
-    assert(Array.isArray(path), "module path must be a string or an Array.");
-    assert(path.length > 0, 'cannot register the root module by using registerModule.');
-  }
+      this.request(options);
+    } }, { key: "_sendHideRequest", value: function _sendHideRequest(
 
-  this._modules.register(path, rawModule);
-  installModule(this, this.state, path, this._modules.get(path), options.preserveState);
-  // reset store to update getters...
-  resetStoreVM(this, this.state);
-};
+    opt, type) {var
 
-Store.prototype.unregisterModule = function unregisterModule (path) {
-    var this$1 = this;
+      urlref =
 
-  if (typeof path === 'string') { path = [path]; }
+      opt.urlref,urlref_ts = opt.urlref_ts;
+      var options = {
+        ak: this.statData.ak,
+        uuid: this.statData.uuid,
+        lt: '3',
+        ut: this.statData.ut,
+        urlref: urlref,
+        urlref_ts: urlref_ts,
+        ch: this.statData.ch,
+        usv: this.statData.usv,
+        t: getTime(),
+        p: this.statData.p };
 
-  if (true) {
-    assert(Array.isArray(path), "module path must be a string or an Array.");
-  }
+      this.request(options, type);
+    } }, { key: "_sendEventRequest", value: function _sendEventRequest()
 
-  this._modules.unregister(path);
-  this._withCommit(function () {
-    var parentState = getNestedState(this$1.state, path.slice(0, -1));
-    Vue.delete(parentState, path[path.length - 1]);
-  });
-  resetStore(this);
-};
 
-Store.prototype.hotUpdate = function hotUpdate (newOptions) {
-  this._modules.update(newOptions);
-  resetStore(this, true);
-};
 
-Store.prototype._withCommit = function _withCommit (fn) {
-  var committing = this._committing;
-  this._committing = true;
-  fn();
-  this._committing = committing;
-};
+    {var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref$key = _ref.key,key = _ref$key === void 0 ? '' : _ref$key,_ref$value = _ref.value,value = _ref$value === void 0 ? "" : _ref$value;
+      var route = this._lastPageRoute;
+      var options = {
+        ak: this.statData.ak,
+        uuid: this.statData.uuid,
+        lt: '21',
+        ut: this.statData.ut,
+        url: route,
+        ch: this.statData.ch,
+        e_n: key,
+        e_v: typeof value === 'object' ? JSON.stringify(value) : value.toString(),
+        usv: this.statData.usv,
+        t: getTime(),
+        p: this.statData.p };
 
-Object.defineProperties( Store.prototype, prototypeAccessors );
+      this.request(options);
+    } }, { key: "getNetworkInfo", value: function getNetworkInfo()
 
-function genericSubscribe (fn, subs) {
-  if (subs.indexOf(fn) < 0) {
-    subs.push(fn);
-  }
-  return function () {
-    var i = subs.indexOf(fn);
-    if (i > -1) {
-      subs.splice(i, 1);
-    }
-  }
-}
+    {var _this = this;
+      uni.getNetworkType({
+        success: function success(result) {
+          _this.statData.net = result.networkType;
+          _this.getLocation();
+        } });
 
-function resetStore (store, hot) {
-  store._actions = Object.create(null);
-  store._mutations = Object.create(null);
-  store._wrappedGetters = Object.create(null);
-  store._modulesNamespaceMap = Object.create(null);
-  var state = store.state;
-  // init all modules
-  installModule(store, state, [], store._modules.root, true);
-  // reset vm
-  resetStoreVM(store, state, hot);
-}
+    } }, { key: "getProperty", value: function getProperty()
 
-function resetStoreVM (store, state, hot) {
-  var oldVm = store._vm;
+    {var _this2 = this;
+      plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {
+        _this2.statData.v = wgtinfo.version || '';
+        _this2.getNetworkInfo();
+      });
+    } }, { key: "getLocation", value: function getLocation()
 
-  // bind store public getters
-  store.getters = {};
-  var wrappedGetters = store._wrappedGetters;
-  var computed = {};
-  forEachValue(wrappedGetters, function (fn, key) {
-    // use computed to leverage its lazy-caching mechanism
-    computed[key] = function () { return fn(store); };
-    Object.defineProperty(store.getters, key, {
-      get: function () { return store._vm[key]; },
-      enumerable: true // for local getters
-    });
-  });
+    {var _this3 = this;
+      if (statConfig.getLocation) {
+        uni.getLocation({
+          type: 'wgs84',
+          geocode: true,
+          success: function success(result) {
+            if (result.address) {
+              _this3.statData.cn = result.address.country;
+              _this3.statData.pn = result.address.province;
+              _this3.statData.ct = result.address.city;
+            }
 
-  // use a Vue instance to store the state tree
-  // suppress warnings just in case the user has added
-  // some funky global mixins
-  var silent = Vue.config.silent;
-  Vue.config.silent = true;
-  store._vm = new Vue({
-    data: {
-      $$state: state
-    },
-    computed: computed
-  });
-  Vue.config.silent = silent;
+            _this3.statData.lat = result.latitude;
+            _this3.statData.lng = result.longitude;
+            _this3.request(_this3.statData);
+          } });
 
-  // enable strict mode for new vm
-  if (store.strict) {
-    enableStrictMode(store);
-  }
+      } else {
+        this.statData.lat = 0;
+        this.statData.lng = 0;
+        this.request(this.statData);
+      }
+    } }, { key: "request", value: function request(
 
-  if (oldVm) {
-    if (hot) {
-      // dispatch changes in all subscribed watchers
-      // to force getter re-evaluation for hot reloading.
-      store._withCommit(function () {
-        oldVm._data.$$state = null;
-      });
-    }
-    Vue.nextTick(function () { return oldVm.$destroy(); });
-  }
-}
+    data, type) {var _this4 = this;
+      var time = getTime();
+      var title = this._navigationBarTitle;
+      data.ttn = title.page;
+      data.ttpj = title.config;
+      data.ttc = title.report;
 
-function installModule (store, rootState, path, module, hot) {
-  var isRoot = !path.length;
-  var namespace = store._modules.getNamespace(path);
+      var requestData = this._reportingRequestData;
+      if (getPlatformName() === 'n') {
+        requestData = uni.getStorageSync('__UNI__STAT__DATA') || {};
+      }
+      if (!requestData[data.lt]) {
+        requestData[data.lt] = [];
+      }
+      requestData[data.lt].push(data);
 
-  // register in namespace map
-  if (module.namespaced) {
-    store._modulesNamespaceMap[namespace] = module;
-  }
+      if (getPlatformName() === 'n') {
+        uni.setStorageSync('__UNI__STAT__DATA', requestData);
+      }
+      if (getPageResidenceTime() < OPERATING_TIME && !type) {
+        return;
+      }
+      var uniStatData = this._reportingRequestData;
+      if (getPlatformName() === 'n') {
+        uniStatData = uni.getStorageSync('__UNI__STAT__DATA');
+      }
+      // 时间超过,重新获取时间戳
+      setPageResidenceTime();
+      var firstArr = [];
+      var contentArr = [];
+      var lastArr = [];var _loop = function _loop(
 
-  // set state
-  if (!isRoot && !hot) {
-    var parentState = getNestedState(rootState, path.slice(0, -1));
-    var moduleName = path[path.length - 1];
-    store._withCommit(function () {
-      Vue.set(parentState, moduleName, module.state);
-    });
-  }
+      i) {
+        var rd = uniStatData[i];
+        rd.forEach(function (elm) {
+          var newData = getSplicing(elm);
+          if (i === 0) {
+            firstArr.push(newData);
+          } else if (i === 3) {
+            lastArr.push(newData);
+          } else {
+            contentArr.push(newData);
+          }
+        });};for (var i in uniStatData) {_loop(i);
+      }
 
-  var local = module.context = makeLocalContext(store, namespace, path);
+      firstArr.push.apply(firstArr, contentArr.concat(lastArr));
+      var optionsData = {
+        usv: STAT_VERSION, //统计 SDK 版本号
+        t: time, //发送请求时的时间戮
+        requests: JSON.stringify(firstArr) };
 
-  module.forEachMutation(function (mutation, key) {
-    var namespacedType = namespace + key;
-    registerMutation(store, namespacedType, mutation, local);
-  });
 
-  module.forEachAction(function (action, key) {
-    var type = action.root ? key : namespace + key;
-    var handler = action.handler || action;
-    registerAction(store, type, handler, local);
-  });
+      this._reportingRequestData = {};
+      if (getPlatformName() === 'n') {
+        uni.removeStorageSync('__UNI__STAT__DATA');
+      }
 
-  module.forEachGetter(function (getter, key) {
-    var namespacedType = namespace + key;
-    registerGetter(store, namespacedType, getter, local);
-  });
+      if (data.ut === 'h5') {
+        this.imageRequest(optionsData);
+        return;
+      }
 
-  module.forEachChild(function (child, key) {
-    installModule(store, rootState, path.concat(key), child, hot);
-  });
-}
+      if (getPlatformName() === 'n' && this.statData.p === 'a') {
+        setTimeout(function () {
+          _this4._sendRequest(optionsData);
+        }, 200);
+        return;
+      }
+      this._sendRequest(optionsData);
+    } }, { key: "_sendRequest", value: function _sendRequest(
+    optionsData) {var _this5 = this;
+      uni.request({
+        url: STAT_URL,
+        method: 'POST',
+        // header: {
+        //   'content-type': 'application/json' // 默认值
+        // },
+        data: optionsData,
+        success: function success() {
+          // if (process.env.NODE_ENV === 'development') {
+          //   console.log('stat request success');
+          // }
+        },
+        fail: function fail(e) {
+          if (++_this5._retry < 3) {
+            setTimeout(function () {
+              _this5._sendRequest(optionsData);
+            }, 1000);
+          }
+        } });
 
-/**
- * make localized dispatch, commit, getters and state
- * if there is no namespace, just use root ones
- */
-function makeLocalContext (store, namespace, path) {
-  var noNamespace = namespace === '';
+    }
+    /**
+       * h5 请求
+       */ }, { key: "imageRequest", value: function imageRequest(
+    data) {
+      var image = new Image();
+      var options = getSgin(GetEncodeURIComponentOptions(data)).options;
+      image.src = STAT_H5_URL + '?' + options;
+    } }, { key: "sendEvent", value: function sendEvent(
 
-  var local = {
-    dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
-      var args = unifyObjectStyle(_type, _payload, _options);
-      var payload = args.payload;
-      var options = args.options;
-      var type = args.type;
+    key, value) {
+      // 校验 type 参数
+      if (calibration(key, value)) return;
 
-      if (!options || !options.root) {
-        type = namespace + type;
-        if ( true && !store._actions[type]) {
-          console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
-          return
-        }
+      if (key === 'title') {
+        this._navigationBarTitle.report = value;
+        return;
       }
+      this._sendEventRequest({
+        key: key,
+        value: typeof value === 'object' ? JSON.stringify(value) : value },
+      1);
+    } }]);return Util;}();var
 
-      return store.dispatch(type, payload)
-    },
 
-    commit: noNamespace ? store.commit : function (_type, _payload, _options) {
-      var args = unifyObjectStyle(_type, _payload, _options);
-      var payload = args.payload;
-      var options = args.options;
-      var type = args.type;
 
-      if (!options || !options.root) {
-        type = namespace + type;
-        if ( true && !store._mutations[type]) {
-          console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
-          return
-        }
+Stat = /*#__PURE__*/function (_Util) {_inherits(Stat, _Util);_createClass(Stat, null, [{ key: "getInstance", value: function getInstance()
+    {
+      if (!this.instance) {
+        this.instance = new Stat();
       }
+      return this.instance;
+    } }]);
+  function Stat() {var _this6;_classCallCheck(this, Stat);
+    _this6 = _possibleConstructorReturn(this, _getPrototypeOf(Stat).call(this));
+    _this6.instance = null;
+    // 注册拦截器
+    if (typeof uni.addInterceptor === 'function' && "development" !== 'development') {
+      _this6.addInterceptorInit();
+      _this6.interceptLogin();
+      _this6.interceptShare(true);
+      _this6.interceptRequestPayment();
+    }return _this6;
+  }_createClass(Stat, [{ key: "addInterceptorInit", value: function addInterceptorInit()
 
-      store.commit(type, payload, options);
-    }
-  };
+    {
+      var self = this;
+      uni.addInterceptor('setNavigationBarTitle', {
+        invoke: function invoke(args) {
+          self._navigationBarTitle.page = args.title;
+        } });
 
-  // getters and state object must be gotten lazily
-  // because they will be changed by vm update
-  Object.defineProperties(local, {
-    getters: {
-      get: noNamespace
-        ? function () { return store.getters; }
-        : function () { return makeLocalGetters(store, namespace); }
-    },
-    state: {
-      get: function () { return getNestedState(store.state, path); }
-    }
-  });
-
-  return local
-}
-
-function makeLocalGetters (store, namespace) {
-  var gettersProxy = {};
+    } }, { key: "interceptLogin", value: function interceptLogin()
 
-  var splitPos = namespace.length;
-  Object.keys(store.getters).forEach(function (type) {
-    // skip if the target getter is not match this namespace
-    if (type.slice(0, splitPos) !== namespace) { return }
+    {
+      var self = this;
+      uni.addInterceptor('login', {
+        complete: function complete() {
+          self._login();
+        } });
 
-    // extract local getter type
-    var localType = type.slice(splitPos);
+    } }, { key: "interceptShare", value: function interceptShare(
 
-    // Add a port to the getters proxy.
-    // Define as getter property because
-    // we do not want to evaluate the getters in this time.
-    Object.defineProperty(gettersProxy, localType, {
-      get: function () { return store.getters[type]; },
-      enumerable: true
-    });
-  });
+    type) {
+      var self = this;
+      if (!type) {
+        self._share();
+        return;
+      }
+      uni.addInterceptor('share', {
+        success: function success() {
+          self._share();
+        },
+        fail: function fail() {
+          self._share();
+        } });
 
-  return gettersProxy
-}
+    } }, { key: "interceptRequestPayment", value: function interceptRequestPayment()
 
-function registerMutation (store, type, handler, local) {
-  var entry = store._mutations[type] || (store._mutations[type] = []);
-  entry.push(function wrappedMutationHandler (payload) {
-    handler.call(store, local.state, payload);
-  });
-}
+    {
+      var self = this;
+      uni.addInterceptor('requestPayment', {
+        success: function success() {
+          self._payment('pay_success');
+        },
+        fail: function fail() {
+          self._payment('pay_fail');
+        } });
 
-function registerAction (store, type, handler, local) {
-  var entry = store._actions[type] || (store._actions[type] = []);
-  entry.push(function wrappedActionHandler (payload, cb) {
-    var res = handler.call(store, {
-      dispatch: local.dispatch,
-      commit: local.commit,
-      getters: local.getters,
-      state: local.state,
-      rootGetters: store.getters,
-      rootState: store.state
-    }, payload, cb);
-    if (!isPromise(res)) {
-      res = Promise.resolve(res);
-    }
-    if (store._devtoolHook) {
-      return res.catch(function (err) {
-        store._devtoolHook.emit('vuex:error', err);
-        throw err
-      })
-    } else {
-      return res
-    }
-  });
-}
+    } }, { key: "report", value: function report(
 
-function registerGetter (store, type, rawGetter, local) {
-  if (store._wrappedGetters[type]) {
-    if (true) {
-      console.error(("[vuex] duplicate getter key: " + type));
-    }
-    return
-  }
-  store._wrappedGetters[type] = function wrappedGetter (store) {
-    return rawGetter(
-      local.state, // local state
-      local.getters, // local getters
-      store.state, // root state
-      store.getters // root getters
-    )
-  };
-}
+    options, self) {
+      this.self = self;
+      // if (process.env.NODE_ENV === 'development') {
+      //   console.log('report init');
+      // }
+      setPageResidenceTime();
+      this.__licationShow = true;
+      this._sendReportRequest(options, true);
+    } }, { key: "load", value: function load(
 
-function enableStrictMode (store) {
-  store._vm.$watch(function () { return this._data.$$state }, function () {
-    if (true) {
-      assert(store._committing, "Do not mutate vuex store state outside mutation handlers.");
-    }
-  }, { deep: true, sync: true });
-}
+    options, self) {
+      if (!self.$scope && !self.$mp) {
+        var page = getCurrentPages();
+        self.$scope = page[page.length - 1];
+      }
+      this.self = self;
+      this._query = options;
+    } }, { key: "show", value: function show(
 
-function getNestedState (state, path) {
-  return path.length
-    ? path.reduce(function (state, key) { return state[key]; }, state)
-    : state
-}
+    self) {
+      this.self = self;
+      if (getPageTypes(self)) {
+        this._pageShow(self);
+      } else {
+        this._applicationShow(self);
+      }
+    } }, { key: "ready", value: function ready(
 
-function unifyObjectStyle (type, payload, options) {
-  if (isObject(type) && type.type) {
-    options = payload;
-    payload = type;
-    type = type.type;
-  }
+    self) {
+      // this.self = self;
+      // if (getPageTypes(self)) {
+      //   this._pageShow(self);
+      // }
+    } }, { key: "hide", value: function hide(
+    self) {
+      this.self = self;
+      if (getPageTypes(self)) {
+        this._pageHide(self);
+      } else {
+        this._applicationHide(self, true);
+      }
+    } }, { key: "error", value: function error(
+    em) {
+      if (this._platform === 'devtools') {
+        if (true) {
+          console.info('当前运行环境为开发者工具,不上报数据。');
+        }
+        // return;
+      }
+      var emVal = '';
+      if (!em.message) {
+        emVal = JSON.stringify(em);
+      } else {
+        emVal = em.stack;
+      }
+      var options = {
+        ak: this.statData.ak,
+        uuid: this.statData.uuid,
+        lt: '31',
+        ut: this.statData.ut,
+        ch: this.statData.ch,
+        mpsdk: this.statData.mpsdk,
+        mpv: this.statData.mpv,
+        v: this.statData.v,
+        em: emVal,
+        usv: this.statData.usv,
+        t: getTime(),
+        p: this.statData.p };
 
-  if (true) {
-    assert(typeof type === 'string', ("Expects string as the type, but found " + (typeof type) + "."));
-  }
+      this.request(options);
+    } }]);return Stat;}(Util);
 
-  return { type: type, payload: payload, options: options }
-}
 
-function install (_Vue) {
-  if (Vue && _Vue === Vue) {
-    if (true) {
-      console.error(
-        '[vuex] already installed. Vue.use(Vuex) should be called only once.'
-      );
+var stat = Stat.getInstance();
+var isHide = false;
+var lifecycle = {
+  onLaunch: function onLaunch(options) {
+    stat.report(options, this);
+  },
+  onReady: function onReady() {
+    stat.ready(this);
+  },
+  onLoad: function onLoad(options) {
+    stat.load(options, this);
+    // 重写分享,获取分享上报事件
+    if (this.$scope && this.$scope.onShareAppMessage) {
+      var oldShareAppMessage = this.$scope.onShareAppMessage;
+      this.$scope.onShareAppMessage = function (options) {
+        stat.interceptShare(false);
+        return oldShareAppMessage.call(this, options);
+      };
     }
-    return
-  }
-  Vue = _Vue;
-  applyMixin(Vue);
-}
-
-var mapState = normalizeNamespace(function (namespace, states) {
-  var res = {};
-  normalizeMap(states).forEach(function (ref) {
-    var key = ref.key;
-    var val = ref.val;
+  },
+  onShow: function onShow() {
+    isHide = false;
+    stat.show(this);
+  },
+  onHide: function onHide() {
+    isHide = true;
+    stat.hide(this);
+  },
+  onUnload: function onUnload() {
+    if (isHide) {
+      isHide = false;
+      return;
+    }
+    stat.hide(this);
+  },
+  onError: function onError(e) {
+    stat.error(e);
+  } };
 
-    res[key] = function mappedState () {
-      var state = this.$store.state;
-      var getters = this.$store.getters;
-      if (namespace) {
-        var module = getModuleByNamespace(this.$store, 'mapState', namespace);
-        if (!module) {
-          return
-        }
-        state = module.context.state;
-        getters = module.context.getters;
-      }
-      return typeof val === 'function'
-        ? val.call(this, state, getters)
-        : state[val]
-    };
-    // mark vuex getter for devtools
-    res[key].vuex = true;
-  });
-  return res
-});
 
-var mapMutations = normalizeNamespace(function (namespace, mutations) {
-  var res = {};
-  normalizeMap(mutations).forEach(function (ref) {
-    var key = ref.key;
-    var val = ref.val;
+function main() {
+  if (true) {
+    uni.report = function (type, options) {};
+  } else { var Vue; }
+}
 
-    res[key] = function mappedMutation () {
-      var args = [], len = arguments.length;
-      while ( len-- ) args[ len ] = arguments[ len ];
+main();
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
 
-      var commit = this.$store.commit;
-      if (namespace) {
-        var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
-        if (!module) {
-          return
-        }
-        commit = module.context.commit;
-      }
-      return typeof val === 'function'
-        ? val.apply(this, [commit].concat(args))
-        : commit.apply(this.$store, [val].concat(args))
-    };
-  });
-  return res
-});
+/***/ }),
+/* 6 */
+/*!******************************************************!*\
+  !*** ./node_modules/@dcloudio/uni-stat/package.json ***!
+  \******************************************************/
+/*! exports provided: _from, _id, _inBundle, _integrity, _location, _phantomChildren, _requested, _requiredBy, _resolved, _shasum, _spec, _where, author, bugs, bundleDependencies, deprecated, description, devDependencies, files, gitHead, homepage, license, main, name, repository, scripts, version, default */
+/***/ (function(module) {
 
-var mapGetters = normalizeNamespace(function (namespace, getters) {
-  var res = {};
-  normalizeMap(getters).forEach(function (ref) {
-    var key = ref.key;
-    var val = ref.val;
+module.exports = {"_from":"@dcloudio/uni-stat@next","_id":"@dcloudio/uni-stat@2.0.0-26820200330001","_inBundle":false,"_integrity":"sha512-Qzo5LcBl+abS7DvpyTXBYW2VVYHVcHBewduQecjn/gbzAn9e90aOVn02/2VZ82wV6TBiDXbGyloXojOY3InzWA==","_location":"/@dcloudio/uni-stat","_phantomChildren":{},"_requested":{"type":"tag","registry":true,"raw":"@dcloudio/uni-stat@next","name":"@dcloudio/uni-stat","escapedName":"@dcloudio%2funi-stat","scope":"@dcloudio","rawSpec":"next","saveSpec":null,"fetchSpec":"next"},"_requiredBy":["#USER","/","/@dcloudio/vue-cli-plugin-uni"],"_resolved":"https://registry.npmjs.org/@dcloudio/uni-stat/-/uni-stat-2.0.0-26820200330001.tgz","_shasum":"880c5c5a4920bb35e9cf691eeb7427a7bf67ffd7","_spec":"@dcloudio/uni-stat@next","_where":"/Users/guoshengqiang/Documents/dcloud-plugins/release/uniapp-cli","author":"","bugs":{"url":"https://github.com/dcloudio/uni-app/issues"},"bundleDependencies":false,"deprecated":false,"description":"","devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","eslint":"^6.1.0","rollup":"^1.19.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-clear":"^2.0.7","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-copy":"^3.1.0","rollup-plugin-eslint":"^7.0.0","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"files":["dist","package.json","LICENSE"],"gitHead":"57ef7f7b5b6164a74ec425ff12f9fe0a1147841a","homepage":"https://github.com/dcloudio/uni-app#readme","license":"Apache-2.0","main":"dist/index.js","name":"@dcloudio/uni-stat","repository":{"type":"git","url":"git+https://github.com/dcloudio/uni-app.git","directory":"packages/uni-stat"},"scripts":{"build":"NODE_ENV=production rollup -c rollup.config.js","dev":"NODE_ENV=development rollup -w -c rollup.config.js"},"version":"2.0.0-26820200330001"};
 
-    val = namespace + val;
-    res[key] = function mappedGetter () {
-      if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
-        return
-      }
-      if ( true && !(val in this.$store.getters)) {
-        console.error(("[vuex] unknown getter: " + val));
-        return
-      }
-      return this.$store.getters[val]
-    };
-    // mark vuex getter for devtools
-    res[key].vuex = true;
-  });
-  return res
-});
+/***/ }),
+/* 7 */
+/*!**********************************************************************************************!*\
+  !*** C:/Users/Administrator/Documents/HBuilderProjects/myUinapp/pages.json?{"type":"style"} ***!
+  \**********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
 
-var mapActions = normalizeNamespace(function (namespace, actions) {
-  var res = {};
-  normalizeMap(actions).forEach(function (ref) {
-    var key = ref.key;
-    var val = ref.val;
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "pages": { "pages/index/index": { "navigationBarTitleText": "首页" }, "pages/index/hotel": {}, "pages/myone/oneIndex": { "navigationBarTitleText": "发现" }, "pages/taBar/index": { "navigationBarTitleText": "订单" }, "pages/myCenter/index": { "navigationBarTitleText": "我的" } }, "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8" } };exports.default = _default;
 
-    res[key] = function mappedAction () {
-      var args = [], len = arguments.length;
-      while ( len-- ) args[ len ] = arguments[ len ];
+/***/ }),
+/* 8 */
+/*!*********************************************************************************************!*\
+  !*** C:/Users/Administrator/Documents/HBuilderProjects/myUinapp/pages.json?{"type":"stat"} ***!
+  \*********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
 
-      var dispatch = this.$store.dispatch;
-      if (namespace) {
-        var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
-        if (!module) {
-          return
-        }
-        dispatch = module.context.dispatch;
-      }
-      return typeof val === 'function'
-        ? val.apply(this, [dispatch].concat(args))
-        : dispatch.apply(this.$store, [val].concat(args))
-    };
-  });
-  return res
-});
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "appid": "__UNI__99C074F" };exports.default = _default;
 
-var createNamespacedHelpers = function (namespace) { return ({
-  mapState: mapState.bind(null, namespace),
-  mapGetters: mapGetters.bind(null, namespace),
-  mapMutations: mapMutations.bind(null, namespace),
-  mapActions: mapActions.bind(null, namespace)
-}); };
+/***/ }),
+/* 9 */,
+/* 10 */,
+/* 11 */,
+/* 12 */
+/*!********************************************!*\
+  !*** ./node_modules/vuex/dist/vuex.esm.js ***!
+  \********************************************/
+/*! exports provided: Store, install, mapState, mapMutations, mapGetters, mapActions, createNamespacedHelpers, default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
 
-function normalizeMap (map) {
-  return Array.isArray(map)
-    ? map.map(function (key) { return ({ key: key, val: key }); })
-    : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
-}
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Store", function() { return Store; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "install", function() { return install; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapState", function() { return mapState; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapMutations", function() { return mapMutations; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapGetters", function() { return mapGetters; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapActions", function() { return mapActions; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createNamespacedHelpers", function() { return createNamespacedHelpers; });
+/**
+ * vuex v3.0.1
+ * (c) 2017 Evan You
+ * @license MIT
+ */
+var applyMixin = function (Vue) {
+  var version = Number(Vue.version.split('.')[0]);
 
-function normalizeNamespace (fn) {
-  return function (namespace, map) {
-    if (typeof namespace !== 'string') {
-      map = namespace;
-      namespace = '';
-    } else if (namespace.charAt(namespace.length - 1) !== '/') {
-      namespace += '/';
-    }
-    return fn(namespace, map)
-  }
-}
+  if (version >= 2) {
+    Vue.mixin({ beforeCreate: vuexInit });
+  } else {
+    // override init and inject vuex init procedure
+    // for 1.x backwards compatibility.
+    var _init = Vue.prototype._init;
+    Vue.prototype._init = function (options) {
+      if ( options === void 0 ) options = {};
 
-function getModuleByNamespace (store, helper, namespace) {
-  var module = store._modulesNamespaceMap[namespace];
-  if ( true && !module) {
-    console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
+      options.init = options.init
+        ? [vuexInit].concat(options.init)
+        : vuexInit;
+      _init.call(this, options);
+    };
   }
-  return module
-}
 
-var index_esm = {
-  Store: Store,
-  install: install,
-  version: '3.0.1',
-  mapState: mapState,
-  mapMutations: mapMutations,
-  mapGetters: mapGetters,
-  mapActions: mapActions,
-  createNamespacedHelpers: createNamespacedHelpers
-};
+  /**
+   * Vuex init hook, injected into each instances init hooks list.
+   */
 
+  function vuexInit () {
+    var options = this.$options;
+    // store injection
+    if (options.store) {
+      this.$store = typeof options.store === 'function'
+        ? options.store()
+        : options.store;
+    } else if (options.parent && options.parent.$store) {
+      this.$store = options.parent.$store;
+    }
+  }
+};
 
-/* harmony default export */ __webpack_exports__["default"] = (index_esm);
+var devtoolHook =
+  typeof window !== 'undefined' &&
+  window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
 
+function devtoolPlugin (store) {
+  if (!devtoolHook) { return }
 
-/***/ }),
+  store._devtoolHook = devtoolHook;
 
-/***/ 38:
-/*!**********************************************************************************!*\
-  !*** C:/Users/Administrator/Documents/HBuilderProjects/myUinapp/store/logion.js ***!
-  \**********************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
+  devtoolHook.emit('vuex:init', store);
 
-"use strict";
-/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
-var _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 37));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
+  devtoolHook.on('vuex:travel-to-state', function (targetState) {
+    store.replaceState(targetState);
+  });
 
-_vue.default.use(_vuex.default);
+  store.subscribe(function (mutation, state) {
+    devtoolHook.emit('vuex:mutation', mutation, state);
+  });
+}
 
-var store = new _vuex.default.Store({
-  state: {
-    hasLogin: false,
-    sessionId: '',
-    showModal: false, //登录授权弹窗
-    userInfo: {} },
+/**
+ * Get the first item that pass the test
+ * by second argument function
+ *
+ * @param {Array} list
+ * @param {Function} f
+ * @return {*}
+ */
+/**
+ * Deep copy the given object considering circular structure.
+ * This function caches all nested objects and its copies.
+ * If it detects circular structure, use cached copy to avoid infinite loop.
+ *
+ * @param {*} obj
+ * @param {Array<Object>} cache
+ * @return {*}
+ */
 
-  mutations: {
-    login: function login(state, provider) {
-      state.hasLogin = true;
-      state.userInfo = provider;
-      uni.setStorage({ //缓存用户登陆状态
-        key: 'userInfo',
-        data: provider });
 
-      console.log(state.userInfo);
-    },
+/**
+ * forEach for object
+ */
+function forEachValue (obj, fn) {
+  Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
+}
 
-    setOpenid: function setOpenid(state, provider) {
-      state.sessionId = provider;
-      uni.setStorage({ //缓存用户登陆状态
-        key: 'sessionId',
-        data: provider });
+function isObject (obj) {
+  return obj !== null && typeof obj === 'object'
+}
 
+function isPromise (val) {
+  return val && typeof val.then === 'function'
+}
 
-    },
-    showDialog: function showDialog(state, status) {
-      state.showModal = status;
-      uni.setStorage({ //缓存用户登陆状态
-        key: 'showModal',
-        data: status });
+function assert (condition, msg) {
+  if (!condition) { throw new Error(("[vuex] " + msg)) }
+}
 
-      console.log(state.showModal);
-    },
+var Module = function Module (rawModule, runtime) {
+  this.runtime = runtime;
+  this._children = Object.create(null);
+  this._rawModule = rawModule;
+  var rawState = rawModule.state;
+  this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
+};
 
+var prototypeAccessors$1 = { namespaced: { configurable: true } };
 
-    logout: function logout(state) {
-      state.hasLogin = false;
-      state.userInfo = {};
-      state.sessionId = '';
-      uni.removeStorage({
-        key: 'userInfo' });
+prototypeAccessors$1.namespaced.get = function () {
+  return !!this._rawModule.namespaced
+};
 
-      uni.removeStorage({
-        key: 'sessionId' });
+Module.prototype.addChild = function addChild (key, module) {
+  this._children[key] = module;
+};
 
-    } }
+Module.prototype.removeChild = function removeChild (key) {
+  delete this._children[key];
+};
 
-  // actions: {
-  // 	// lazy loading openid
-  // 	getUserOpenId: async function ({
-  // 		commit,
-  // 		state
-  // 	}) {
-  // 		return await new Promise((resolve, reject) => {
-  // 			if (state.openid) {
-  // 				resolve(state.openid)
-  // 			} else {
-  // 				uni.login({
-  // 					success: (data) => {
-  // 						commit('login')
-  // 						setTimeout(function () { //模拟异步请求服务器获取 openid
-  // 							const openid = '123456789'
-  // 							commit('setOpenid', openid)
-  // 							resolve(openid)
-  // 						}, 1000)
-  // 					},
-  // 					fail: (err) => {
-  // 						console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', err)
-  // 						reject(err)
-  // 					}
-  // 				})
-  // 			}
-  // 		})
-  // 	}
-  // }
-});var _default =
+Module.prototype.getChild = function getChild (key) {
+  return this._children[key]
+};
 
-store;exports.default = _default;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
+Module.prototype.update = function update (rawModule) {
+  this._rawModule.namespaced = rawModule.namespaced;
+  if (rawModule.actions) {
+    this._rawModule.actions = rawModule.actions;
+  }
+  if (rawModule.mutations) {
+    this._rawModule.mutations = rawModule.mutations;
+  }
+  if (rawModule.getters) {
+    this._rawModule.getters = rawModule.getters;
+  }
+};
 
-/***/ }),
+Module.prototype.forEachChild = function forEachChild (fn) {
+  forEachValue(this._children, fn);
+};
 
-/***/ 4:
-/*!*****************************************************************************!*\
-  !*** C:/Users/Administrator/Documents/HBuilderProjects/myUinapp/pages.json ***!
-  \*****************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
+Module.prototype.forEachGetter = function forEachGetter (fn) {
+  if (this._rawModule.getters) {
+    forEachValue(this._rawModule.getters, fn);
+  }
+};
 
-"use strict";
+Module.prototype.forEachAction = function forEachAction (fn) {
+  if (this._rawModule.actions) {
+    forEachValue(this._rawModule.actions, fn);
+  }
+};
 
+Module.prototype.forEachMutation = function forEachMutation (fn) {
+  if (this._rawModule.mutations) {
+    forEachValue(this._rawModule.mutations, fn);
+  }
+};
 
-/***/ }),
+Object.defineProperties( Module.prototype, prototypeAccessors$1 );
 
-/***/ 5:
-/*!*******************************************************!*\
-  !*** ./node_modules/@dcloudio/uni-stat/dist/index.js ***!
-  \*******************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
+var ModuleCollection = function ModuleCollection (rawRootModule) {
+  // register root module (Vuex.Store options)
+  this.register([], rawRootModule, false);
+};
 
-"use strict";
-/* WEBPACK VAR INJECTION */(function(uni) {var _package = __webpack_require__(/*! ../package.json */ 6);function _possibleConstructorReturn(self, call) {if (call && (typeof call === "object" || typeof call === "function")) {return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self) {if (self === void 0) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o) {_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {return o.__proto__ || Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass, superClass) {if (typeof superClass !== "function" && superClass !== null) {throw new TypeError("Super expression must either be null or a function");}subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });if (superClass) _setPrototypeOf(subClass, superClass);}function _setPrototypeOf(o, p) {_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {o.__proto__ = p;return o;};return _setPrototypeOf(o, p);}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}
+ModuleCollection.prototype.get = function get (path) {
+  return path.reduce(function (module, key) {
+    return module.getChild(key)
+  }, this.root)
+};
 
-var STAT_VERSION = _package.version;
-var STAT_URL = 'https://tongji.dcloud.io/uni/stat';
-var STAT_H5_URL = 'https://tongji.dcloud.io/uni/stat.gif';
-var PAGE_PVER_TIME = 1800;
-var APP_PVER_TIME = 300;
-var OPERATING_TIME = 10;
+ModuleCollection.prototype.getNamespace = function getNamespace (path) {
+  var module = this.root;
+  return path.reduce(function (namespace, key) {
+    module = module.getChild(key);
+    return namespace + (module.namespaced ? key + '/' : '')
+  }, '')
+};
 
-var UUID_KEY = '__DC_STAT_UUID';
-var UUID_VALUE = '__DC_UUID_VALUE';
+ModuleCollection.prototype.update = function update$1 (rawRootModule) {
+  update([], this.root, rawRootModule);
+};
 
-function getUuid() {
-  var uuid = '';
-  if (getPlatformName() === 'n') {
-    try {
-      uuid = plus.runtime.getDCloudId();
-    } catch (e) {
-      uuid = '';
-    }
-    return uuid;
-  }
+ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
+    var this$1 = this;
+    if ( runtime === void 0 ) runtime = true;
 
-  try {
-    uuid = uni.getStorageSync(UUID_KEY);
-  } catch (e) {
-    uuid = UUID_VALUE;
+  if (true) {
+    assertRawModule(path, rawModule);
   }
 
-  if (!uuid) {
-    uuid = Date.now() + '' + Math.floor(Math.random() * 1e7);
-    try {
-      uni.setStorageSync(UUID_KEY, uuid);
-    } catch (e) {
-      uni.setStorageSync(UUID_KEY, UUID_VALUE);
-    }
+  var newModule = new Module(rawModule, runtime);
+  if (path.length === 0) {
+    this.root = newModule;
+  } else {
+    var parent = this.get(path.slice(0, -1));
+    parent.addChild(path[path.length - 1], newModule);
   }
-  return uuid;
-}
 
-var getSgin = function getSgin(statData) {
-  var arr = Object.keys(statData);
-  var sortArr = arr.sort();
-  var sgin = {};
-  var sginStr = '';
-  for (var i in sortArr) {
-    sgin[sortArr[i]] = statData[sortArr[i]];
-    sginStr += sortArr[i] + '=' + statData[sortArr[i]] + '&';
+  // register nested modules
+  if (rawModule.modules) {
+    forEachValue(rawModule.modules, function (rawChildModule, key) {
+      this$1.register(path.concat(key), rawChildModule, runtime);
+    });
   }
-  // const options = sginStr.substr(0, sginStr.length - 1)
-  // sginStr = sginStr.substr(0, sginStr.length - 1) + '&key=' + STAT_KEY;
-  // const si = crypto.createHash('md5').update(sginStr).digest('hex');
-  return {
-    sign: '',
-    options: sginStr.substr(0, sginStr.length - 1) };
-
 };
 
-var getSplicing = function getSplicing(data) {
-  var str = '';
-  for (var i in data) {
-    str += i + '=' + data[i] + '&';
-  }
-  return str.substr(0, str.length - 1);
-};
+ModuleCollection.prototype.unregister = function unregister (path) {
+  var parent = this.get(path.slice(0, -1));
+  var key = path[path.length - 1];
+  if (!parent.getChild(key).runtime) { return }
 
-var getTime = function getTime() {
-  return parseInt(new Date().getTime() / 1000);
+  parent.removeChild(key);
 };
 
-var getPlatformName = function getPlatformName() {
-  var platformList = {
-    'app-plus': 'n',
-    'h5': 'h5',
-    'mp-weixin': 'wx',
-    'mp-alipay': 'ali',
-    'mp-baidu': 'bd',
-    'mp-toutiao': 'tt',
-    'mp-qq': 'qq' };
+function update (path, targetModule, newModule) {
+  if (true) {
+    assertRawModule(path, newModule);
+  }
 
-  return platformList["mp-weixin"];
-};
+  // update target module
+  targetModule.update(newModule);
 
-var getPackName = function getPackName() {
-  var packName = '';
-  if (getPlatformName() === 'wx' || getPlatformName() === 'qq') {
-    // 兼容微信小程序低版本基础库
-    if (uni.canIUse('getAccountInfoSync')) {
-      packName = uni.getAccountInfoSync().miniProgram.appId || '';
+  // update nested modules
+  if (newModule.modules) {
+    for (var key in newModule.modules) {
+      if (!targetModule.getChild(key)) {
+        if (true) {
+          console.warn(
+            "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
+            'manual reload is needed'
+          );
+        }
+        return
+      }
+      update(
+        path.concat(key),
+        targetModule.getChild(key),
+        newModule.modules[key]
+      );
     }
   }
-  return packName;
+}
+
+var functionAssert = {
+  assert: function (value) { return typeof value === 'function'; },
+  expected: 'function'
 };
 
-var getVersion = function getVersion() {
-  return getPlatformName() === 'n' ? plus.runtime.version : '';
+var objectAssert = {
+  assert: function (value) { return typeof value === 'function' ||
+    (typeof value === 'object' && typeof value.handler === 'function'); },
+  expected: 'function or object with "handler" function'
 };
 
-var getChannel = function getChannel() {
-  var platformName = getPlatformName();
-  var channel = '';
-  if (platformName === 'n') {
-    channel = plus.runtime.channel;
-  }
-  return channel;
+var assertTypes = {
+  getters: functionAssert,
+  mutations: functionAssert,
+  actions: objectAssert
 };
 
-var getScene = function getScene(options) {
-  var platformName = getPlatformName();
-  var scene = '';
-  if (options) {
-    return options;
+function assertRawModule (path, rawModule) {
+  Object.keys(assertTypes).forEach(function (key) {
+    if (!rawModule[key]) { return }
+
+    var assertOptions = assertTypes[key];
+
+    forEachValue(rawModule[key], function (value, type) {
+      assert(
+        assertOptions.assert(value),
+        makeAssertionMessage(path, key, type, value, assertOptions.expected)
+      );
+    });
+  });
+}
+
+function makeAssertionMessage (path, key, type, value, expected) {
+  var buf = key + " should be " + expected + " but \"" + key + "." + type + "\"";
+  if (path.length > 0) {
+    buf += " in module \"" + (path.join('.')) + "\"";
   }
-  if (platformName === 'wx') {
-    scene = uni.getLaunchOptionsSync().scene;
+  buf += " is " + (JSON.stringify(value)) + ".";
+  return buf
+}
+
+var Vue; // bind on install
+
+var Store = function Store (options) {
+  var this$1 = this;
+  if ( options === void 0 ) options = {};
+
+  // Auto install if it is not done yet and `window` has `Vue`.
+  // To allow users to avoid auto-installation in some cases,
+  // this code should be placed here. See #731
+  if (!Vue && typeof window !== 'undefined' && window.Vue) {
+    install(window.Vue);
   }
-  return scene;
-};
-var First__Visit__Time__KEY = 'First__Visit__Time';
-var Last__Visit__Time__KEY = 'Last__Visit__Time';
 
-var getFirstVisitTime = function getFirstVisitTime() {
-  var timeStorge = uni.getStorageSync(First__Visit__Time__KEY);
-  var time = 0;
-  if (timeStorge) {
-    time = timeStorge;
-  } else {
-    time = getTime();
-    uni.setStorageSync(First__Visit__Time__KEY, time);
-    uni.removeStorageSync(Last__Visit__Time__KEY);
+  if (true) {
+    assert(Vue, "must call Vue.use(Vuex) before creating a store instance.");
+    assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
+    assert(this instanceof Store, "Store must be called with the new operator.");
   }
-  return time;
-};
 
-var getLastVisitTime = function getLastVisitTime() {
-  var timeStorge = uni.getStorageSync(Last__Visit__Time__KEY);
-  var time = 0;
-  if (timeStorge) {
-    time = timeStorge;
-  } else {
-    time = '';
+  var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
+  var strict = options.strict; if ( strict === void 0 ) strict = false;
+
+  var state = options.state; if ( state === void 0 ) state = {};
+  if (typeof state === 'function') {
+    state = state() || {};
   }
-  uni.setStorageSync(Last__Visit__Time__KEY, getTime());
-  return time;
-};
 
+  // store internal state
+  this._committing = false;
+  this._actions = Object.create(null);
+  this._actionSubscribers = [];
+  this._mutations = Object.create(null);
+  this._wrappedGetters = Object.create(null);
+  this._modules = new ModuleCollection(options);
+  this._modulesNamespaceMap = Object.create(null);
+  this._subscribers = [];
+  this._watcherVM = new Vue();
 
-var PAGE_RESIDENCE_TIME = '__page__residence__time';
-var First_Page_residence_time = 0;
-var Last_Page_residence_time = 0;
+  // bind commit and dispatch to self
+  var store = this;
+  var ref = this;
+  var dispatch = ref.dispatch;
+  var commit = ref.commit;
+  this.dispatch = function boundDispatch (type, payload) {
+    return dispatch.call(store, type, payload)
+  };
+  this.commit = function boundCommit (type, payload, options) {
+    return commit.call(store, type, payload, options)
+  };
 
+  // strict mode
+  this.strict = strict;
 
-var setPageResidenceTime = function setPageResidenceTime() {
-  First_Page_residence_time = getTime();
-  if (getPlatformName() === 'n') {
-    uni.setStorageSync(PAGE_RESIDENCE_TIME, getTime());
-  }
-  return First_Page_residence_time;
-};
+  // init root module.
+  // this also recursively registers all sub-modules
+  // and collects all module getters inside this._wrappedGetters
+  installModule(this, state, [], this._modules.root);
 
-var getPageResidenceTime = function getPageResidenceTime() {
-  Last_Page_residence_time = getTime();
-  if (getPlatformName() === 'n') {
-    First_Page_residence_time = uni.getStorageSync(PAGE_RESIDENCE_TIME);
-  }
-  return Last_Page_residence_time - First_Page_residence_time;
-};
-var TOTAL__VISIT__COUNT = 'Total__Visit__Count';
-var getTotalVisitCount = function getTotalVisitCount() {
-  var timeStorge = uni.getStorageSync(TOTAL__VISIT__COUNT);
-  var count = 1;
-  if (timeStorge) {
-    count = timeStorge;
-    count++;
-  }
-  uni.setStorageSync(TOTAL__VISIT__COUNT, count);
-  return count;
-};
+  // initialize the store vm, which is responsible for the reactivity
+  // (also registers _wrappedGetters as computed properties)
+  resetStoreVM(this, state);
+
+  // apply plugins
+  plugins.forEach(function (plugin) { return plugin(this$1); });
 
-var GetEncodeURIComponentOptions = function GetEncodeURIComponentOptions(statData) {
-  var data = {};
-  for (var prop in statData) {
-    data[prop] = encodeURIComponent(statData[prop]);
+  if (Vue.config.devtools) {
+    devtoolPlugin(this);
   }
-  return data;
 };
 
-var Set__First__Time = 0;
-var Set__Last__Time = 0;
+var prototypeAccessors = { state: { configurable: true } };
 
-var getFirstTime = function getFirstTime() {
-  var time = new Date().getTime();
-  Set__First__Time = time;
-  Set__Last__Time = 0;
-  return time;
+prototypeAccessors.state.get = function () {
+  return this._vm._data.$$state
 };
 
-
-var getLastTime = function getLastTime() {
-  var time = new Date().getTime();
-  Set__Last__Time = time;
-  return time;
+prototypeAccessors.state.set = function (v) {
+  if (true) {
+    assert(false, "Use store.replaceState() to explicit replace store state.");
+  }
 };
 
+Store.prototype.commit = function commit (_type, _payload, _options) {
+    var this$1 = this;
 
-var getResidenceTime = function getResidenceTime(type) {
-  var residenceTime = 0;
-  if (Set__First__Time !== 0) {
-    residenceTime = Set__Last__Time - Set__First__Time;
-  }
+  // check object-style commit
+  var ref = unifyObjectStyle(_type, _payload, _options);
+    var type = ref.type;
+    var payload = ref.payload;
+    var options = ref.options;
 
-  residenceTime = parseInt(residenceTime / 1000);
-  residenceTime = residenceTime < 1 ? 1 : residenceTime;
-  if (type === 'app') {
-    var overtime = residenceTime > APP_PVER_TIME ? true : false;
-    return {
-      residenceTime: residenceTime,
-      overtime: overtime };
+  var mutation = { type: type, payload: payload };
+  var entry = this._mutations[type];
+  if (!entry) {
+    if (true) {
+      console.error(("[vuex] unknown mutation type: " + type));
+    }
+    return
+  }
+  this._withCommit(function () {
+    entry.forEach(function commitIterator (handler) {
+      handler(payload);
+    });
+  });
+  this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); });
 
+  if (
+     true &&
+    options && options.silent
+  ) {
+    console.warn(
+      "[vuex] mutation type: " + type + ". Silent option has been removed. " +
+      'Use the filter functionality in the vue-devtools'
+    );
   }
-  if (type === 'page') {
-    var _overtime = residenceTime > PAGE_PVER_TIME ? true : false;
-    return {
-      residenceTime: residenceTime,
-      overtime: _overtime };
+};
+
+Store.prototype.dispatch = function dispatch (_type, _payload) {
+    var this$1 = this;
+
+  // check object-style dispatch
+  var ref = unifyObjectStyle(_type, _payload);
+    var type = ref.type;
+    var payload = ref.payload;
 
+  var action = { type: type, payload: payload };
+  var entry = this._actions[type];
+  if (!entry) {
+    if (true) {
+      console.error(("[vuex] unknown action type: " + type));
+    }
+    return
   }
 
-  return {
-    residenceTime: residenceTime };
+  this._actionSubscribers.forEach(function (sub) { return sub(action, this$1.state); });
+
+  return entry.length > 1
+    ? Promise.all(entry.map(function (handler) { return handler(payload); }))
+    : entry[0](payload)
+};
 
+Store.prototype.subscribe = function subscribe (fn) {
+  return genericSubscribe(fn, this._subscribers)
+};
 
+Store.prototype.subscribeAction = function subscribeAction (fn) {
+  return genericSubscribe(fn, this._actionSubscribers)
 };
 
-var getRoute = function getRoute() {
-  var pages = getCurrentPages();
-  var page = pages[pages.length - 1];
-  var _self = page.$vm;
+Store.prototype.watch = function watch (getter, cb, options) {
+    var this$1 = this;
 
-  if (getPlatformName() === 'bd') {
-    return _self.$mp && _self.$mp.page.is;
-  } else {
-    return _self.$scope && _self.$scope.route || _self.$mp && _self.$mp.page.route;
+  if (true) {
+    assert(typeof getter === 'function', "store.watch only accepts a function.");
   }
+  return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)
 };
 
-var getPageRoute = function getPageRoute(self) {
-  var pages = getCurrentPages();
-  var page = pages[pages.length - 1];
-  var _self = page.$vm;
-  var query = self._query;
-  var str = query && JSON.stringify(query) !== '{}' ? '?' + JSON.stringify(query) : '';
-  // clear
-  self._query = '';
-  if (getPlatformName() === 'bd') {
-    return _self.$mp && _self.$mp.page.is + str;
-  } else {
-    return _self.$scope && _self.$scope.route + str || _self.$mp && _self.$mp.page.route + str;
-  }
+Store.prototype.replaceState = function replaceState (state) {
+    var this$1 = this;
+
+  this._withCommit(function () {
+    this$1._vm._data.$$state = state;
+  });
 };
 
-var getPageTypes = function getPageTypes(self) {
-  if (self.mpType === 'page' || self.$mp && self.$mp.mpType === 'page' || self.$options.mpType === 'page') {
-    return true;
+Store.prototype.registerModule = function registerModule (path, rawModule, options) {
+    if ( options === void 0 ) options = {};
+
+  if (typeof path === 'string') { path = [path]; }
+
+  if (true) {
+    assert(Array.isArray(path), "module path must be a string or an Array.");
+    assert(path.length > 0, 'cannot register the root module by using registerModule.');
   }
-  return false;
+
+  this._modules.register(path, rawModule);
+  installModule(this, this.state, path, this._modules.get(path), options.preserveState);
+  // reset store to update getters...
+  resetStoreVM(this, this.state);
 };
 
-var calibration = function calibration(eventName, options) {
-  //  login 、 share 、pay_success 、pay_fail 、register 、title
-  if (!eventName) {
-    console.error("uni.report \u7F3A\u5C11 [eventName] \u53C2\u6570");
-    return true;
-  }
-  if (typeof eventName !== 'string') {
-    console.error("uni.report [eventName] \u53C2\u6570\u7C7B\u578B\u9519\u8BEF,\u53EA\u80FD\u4E3A String \u7C7B\u578B");
-    return true;
-  }
-  if (eventName.length > 255) {
-    console.error("uni.report [eventName] \u53C2\u6570\u957F\u5EA6\u4E0D\u80FD\u5927\u4E8E 255");
-    return true;
-  }
+Store.prototype.unregisterModule = function unregisterModule (path) {
+    var this$1 = this;
 
-  if (typeof options !== 'string' && typeof options !== 'object') {
-    console.error("uni.report [options] \u53C2\u6570\u7C7B\u578B\u9519\u8BEF,\u53EA\u80FD\u4E3A String \u6216 Object \u7C7B\u578B");
-    return true;
-  }
+  if (typeof path === 'string') { path = [path]; }
 
-  if (typeof options === 'string' && options.length > 255) {
-    console.error("uni.report [options] \u53C2\u6570\u957F\u5EA6\u4E0D\u80FD\u5927\u4E8E 255");
-    return true;
+  if (true) {
+    assert(Array.isArray(path), "module path must be a string or an Array.");
   }
 
-  if (eventName === 'title' && typeof options !== 'string') {
-    console.error('uni.report [eventName] 参数为 title 时,[options] 参数只能为 String 类型');
-    return true;
-  }
+  this._modules.unregister(path);
+  this._withCommit(function () {
+    var parentState = getNestedState(this$1.state, path.slice(0, -1));
+    Vue.delete(parentState, path[path.length - 1]);
+  });
+  resetStore(this);
 };
 
-var PagesJson = __webpack_require__(/*! uni-pages?{"type":"style"} */ 7).default;
-var statConfig = __webpack_require__(/*! uni-stat-config */ 8).default || __webpack_require__(/*! uni-stat-config */ 8);
+Store.prototype.hotUpdate = function hotUpdate (newOptions) {
+  this._modules.update(newOptions);
+  resetStore(this, true);
+};
 
-var resultOptions = uni.getSystemInfoSync();var
+Store.prototype._withCommit = function _withCommit (fn) {
+  var committing = this._committing;
+  this._committing = true;
+  fn();
+  this._committing = committing;
+};
 
-Util = /*#__PURE__*/function () {
-  function Util() {_classCallCheck(this, Util);
-    this.self = '';
-    this._retry = 0;
-    this._platform = '';
-    this._query = {};
-    this._navigationBarTitle = {
-      config: '',
-      page: '',
-      report: '',
-      lt: '' };
+Object.defineProperties( Store.prototype, prototypeAccessors );
 
-    this._operatingTime = 0;
-    this._reportingRequestData = {
-      '1': [],
-      '11': [] };
+function genericSubscribe (fn, subs) {
+  if (subs.indexOf(fn) < 0) {
+    subs.push(fn);
+  }
+  return function () {
+    var i = subs.indexOf(fn);
+    if (i > -1) {
+      subs.splice(i, 1);
+    }
+  }
+}
 
-    this.__prevent_triggering = false;
+function resetStore (store, hot) {
+  store._actions = Object.create(null);
+  store._mutations = Object.create(null);
+  store._wrappedGetters = Object.create(null);
+  store._modulesNamespaceMap = Object.create(null);
+  var state = store.state;
+  // init all modules
+  installModule(store, state, [], store._modules.root, true);
+  // reset vm
+  resetStoreVM(store, state, hot);
+}
+
+function resetStoreVM (store, state, hot) {
+  var oldVm = store._vm;
+
+  // bind store public getters
+  store.getters = {};
+  var wrappedGetters = store._wrappedGetters;
+  var computed = {};
+  forEachValue(wrappedGetters, function (fn, key) {
+    // use computed to leverage its lazy-caching mechanism
+    computed[key] = function () { return fn(store); };
+    Object.defineProperty(store.getters, key, {
+      get: function () { return store._vm[key]; },
+      enumerable: true // for local getters
+    });
+  });
 
-    this.__licationHide = false;
-    this.__licationShow = false;
-    this._lastPageRoute = '';
-    this.statData = {
-      uuid: getUuid(),
-      ut: getPlatformName(),
-      mpn: getPackName(),
-      ak: statConfig.appid,
-      usv: STAT_VERSION,
-      v: getVersion(),
-      ch: getChannel(),
-      cn: '',
-      pn: '',
-      ct: '',
-      t: getTime(),
-      tt: '',
-      p: resultOptions.platform === 'android' ? 'a' : 'i',
-      brand: resultOptions.brand || '',
-      md: resultOptions.model,
-      sv: resultOptions.system.replace(/(Android|iOS)\s/, ''),
-      mpsdk: resultOptions.SDKVersion || '',
-      mpv: resultOptions.version || '',
-      lang: resultOptions.language,
-      pr: resultOptions.pixelRatio,
-      ww: resultOptions.windowWidth,
-      wh: resultOptions.windowHeight,
-      sw: resultOptions.screenWidth,
-      sh: resultOptions.screenHeight };
+  // use a Vue instance to store the state tree
+  // suppress warnings just in case the user has added
+  // some funky global mixins
+  var silent = Vue.config.silent;
+  Vue.config.silent = true;
+  store._vm = new Vue({
+    data: {
+      $$state: state
+    },
+    computed: computed
+  });
+  Vue.config.silent = silent;
 
+  // enable strict mode for new vm
+  if (store.strict) {
+    enableStrictMode(store);
+  }
 
-  }_createClass(Util, [{ key: "_applicationShow", value: function _applicationShow()
+  if (oldVm) {
+    if (hot) {
+      // dispatch changes in all subscribed watchers
+      // to force getter re-evaluation for hot reloading.
+      store._withCommit(function () {
+        oldVm._data.$$state = null;
+      });
+    }
+    Vue.nextTick(function () { return oldVm.$destroy(); });
+  }
+}
 
-    {
-      if (this.__licationHide) {
-        getLastTime();
-        var time = getResidenceTime('app');
-        if (time.overtime) {
-          var options = {
-            path: this._lastPageRoute,
-            scene: this.statData.sc };
+function installModule (store, rootState, path, module, hot) {
+  var isRoot = !path.length;
+  var namespace = store._modules.getNamespace(path);
 
-          this._sendReportRequest(options);
-        }
-        this.__licationHide = false;
-      }
-    } }, { key: "_applicationHide", value: function _applicationHide(
+  // register in namespace map
+  if (module.namespaced) {
+    store._modulesNamespaceMap[namespace] = module;
+  }
 
-    self, type) {
+  // set state
+  if (!isRoot && !hot) {
+    var parentState = getNestedState(rootState, path.slice(0, -1));
+    var moduleName = path[path.length - 1];
+    store._withCommit(function () {
+      Vue.set(parentState, moduleName, module.state);
+    });
+  }
 
-      this.__licationHide = true;
-      getLastTime();
-      var time = getResidenceTime();
-      getFirstTime();
-      var route = getPageRoute(this);
-      this._sendHideRequest({
-        urlref: route,
-        urlref_ts: time.residenceTime },
-      type);
-    } }, { key: "_pageShow", value: function _pageShow()
+  var local = module.context = makeLocalContext(store, namespace, path);
 
-    {
-      var route = getPageRoute(this);
-      var routepath = getRoute();
-      this._navigationBarTitle.config = PagesJson &&
-      PagesJson.pages[routepath] &&
-      PagesJson.pages[routepath].titleNView &&
-      PagesJson.pages[routepath].titleNView.titleText ||
-      PagesJson &&
-      PagesJson.pages[routepath] &&
-      PagesJson.pages[routepath].navigationBarTitleText || '';
+  module.forEachMutation(function (mutation, key) {
+    var namespacedType = namespace + key;
+    registerMutation(store, namespacedType, mutation, local);
+  });
 
-      if (this.__licationShow) {
-        getFirstTime();
-        this.__licationShow = false;
-        // console.log('这是 onLauch 之后执行的第一次 pageShow ,为下次记录时间做准备');
-        this._lastPageRoute = route;
-        return;
-      }
+  module.forEachAction(function (action, key) {
+    var type = action.root ? key : namespace + key;
+    var handler = action.handler || action;
+    registerAction(store, type, handler, local);
+  });
 
-      getLastTime();
-      this._lastPageRoute = route;
-      var time = getResidenceTime('page');
-      if (time.overtime) {
-        var options = {
-          path: this._lastPageRoute,
-          scene: this.statData.sc };
+  module.forEachGetter(function (getter, key) {
+    var namespacedType = namespace + key;
+    registerGetter(store, namespacedType, getter, local);
+  });
 
-        this._sendReportRequest(options);
-      }
-      getFirstTime();
-    } }, { key: "_pageHide", value: function _pageHide()
+  module.forEachChild(function (child, key) {
+    installModule(store, rootState, path.concat(key), child, hot);
+  });
+}
 
-    {
-      if (!this.__licationHide) {
-        getLastTime();
-        var time = getResidenceTime('page');
-        this._sendPageRequest({
-          url: this._lastPageRoute,
-          urlref: this._lastPageRoute,
-          urlref_ts: time.residenceTime });
+/**
+ * make localized dispatch, commit, getters and state
+ * if there is no namespace, just use root ones
+ */
+function makeLocalContext (store, namespace, path) {
+  var noNamespace = namespace === '';
 
-        this._navigationBarTitle = {
-          config: '',
-          page: '',
-          report: '',
-          lt: '' };
+  var local = {
+    dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
+      var args = unifyObjectStyle(_type, _payload, _options);
+      var payload = args.payload;
+      var options = args.options;
+      var type = args.type;
 
-        return;
+      if (!options || !options.root) {
+        type = namespace + type;
+        if ( true && !store._actions[type]) {
+          console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
+          return
+        }
       }
-    } }, { key: "_login", value: function _login()
 
-    {
-      this._sendEventRequest({
-        key: 'login' },
-      0);
-    } }, { key: "_share", value: function _share()
+      return store.dispatch(type, payload)
+    },
 
-    {
-      this._sendEventRequest({
-        key: 'share' },
-      0);
-    } }, { key: "_payment", value: function _payment(
-    key) {
-      this._sendEventRequest({
-        key: key },
-      0);
-    } }, { key: "_sendReportRequest", value: function _sendReportRequest(
-    options) {
+    commit: noNamespace ? store.commit : function (_type, _payload, _options) {
+      var args = unifyObjectStyle(_type, _payload, _options);
+      var payload = args.payload;
+      var options = args.options;
+      var type = args.type;
 
-      this._navigationBarTitle.lt = '1';
-      var query = options.query && JSON.stringify(options.query) !== '{}' ? '?' + JSON.stringify(options.query) : '';
-      this.statData.lt = '1';
-      this.statData.url = options.path + query || '';
-      this.statData.t = getTime();
-      this.statData.sc = getScene(options.scene);
-      this.statData.fvts = getFirstVisitTime();
-      this.statData.lvts = getLastVisitTime();
-      this.statData.tvc = getTotalVisitCount();
-      if (getPlatformName() === 'n') {
-        this.getProperty();
-      } else {
-        this.getNetworkInfo();
+      if (!options || !options.root) {
+        type = namespace + type;
+        if ( true && !store._mutations[type]) {
+          console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
+          return
+        }
       }
-    } }, { key: "_sendPageRequest", value: function _sendPageRequest(
 
-    opt) {var
+      store.commit(type, payload, options);
+    }
+  };
 
-      url =
+  // getters and state object must be gotten lazily
+  // because they will be changed by vm update
+  Object.defineProperties(local, {
+    getters: {
+      get: noNamespace
+        ? function () { return store.getters; }
+        : function () { return makeLocalGetters(store, namespace); }
+    },
+    state: {
+      get: function () { return getNestedState(store.state, path); }
+    }
+  });
 
+  return local
+}
 
-      opt.url,urlref = opt.urlref,urlref_ts = opt.urlref_ts;
-      this._navigationBarTitle.lt = '11';
-      var options = {
-        ak: this.statData.ak,
-        uuid: this.statData.uuid,
-        lt: '11',
-        ut: this.statData.ut,
-        url: url,
-        tt: this.statData.tt,
-        urlref: urlref,
-        urlref_ts: urlref_ts,
-        ch: this.statData.ch,
-        usv: this.statData.usv,
-        t: getTime(),
-        p: this.statData.p };
+function makeLocalGetters (store, namespace) {
+  var gettersProxy = {};
 
-      this.request(options);
-    } }, { key: "_sendHideRequest", value: function _sendHideRequest(
+  var splitPos = namespace.length;
+  Object.keys(store.getters).forEach(function (type) {
+    // skip if the target getter is not match this namespace
+    if (type.slice(0, splitPos) !== namespace) { return }
 
-    opt, type) {var
+    // extract local getter type
+    var localType = type.slice(splitPos);
 
-      urlref =
+    // Add a port to the getters proxy.
+    // Define as getter property because
+    // we do not want to evaluate the getters in this time.
+    Object.defineProperty(gettersProxy, localType, {
+      get: function () { return store.getters[type]; },
+      enumerable: true
+    });
+  });
 
-      opt.urlref,urlref_ts = opt.urlref_ts;
-      var options = {
-        ak: this.statData.ak,
-        uuid: this.statData.uuid,
-        lt: '3',
-        ut: this.statData.ut,
-        urlref: urlref,
-        urlref_ts: urlref_ts,
-        ch: this.statData.ch,
-        usv: this.statData.usv,
-        t: getTime(),
-        p: this.statData.p };
+  return gettersProxy
+}
 
-      this.request(options, type);
-    } }, { key: "_sendEventRequest", value: function _sendEventRequest()
+function registerMutation (store, type, handler, local) {
+  var entry = store._mutations[type] || (store._mutations[type] = []);
+  entry.push(function wrappedMutationHandler (payload) {
+    handler.call(store, local.state, payload);
+  });
+}
 
+function registerAction (store, type, handler, local) {
+  var entry = store._actions[type] || (store._actions[type] = []);
+  entry.push(function wrappedActionHandler (payload, cb) {
+    var res = handler.call(store, {
+      dispatch: local.dispatch,
+      commit: local.commit,
+      getters: local.getters,
+      state: local.state,
+      rootGetters: store.getters,
+      rootState: store.state
+    }, payload, cb);
+    if (!isPromise(res)) {
+      res = Promise.resolve(res);
+    }
+    if (store._devtoolHook) {
+      return res.catch(function (err) {
+        store._devtoolHook.emit('vuex:error', err);
+        throw err
+      })
+    } else {
+      return res
+    }
+  });
+}
 
+function registerGetter (store, type, rawGetter, local) {
+  if (store._wrappedGetters[type]) {
+    if (true) {
+      console.error(("[vuex] duplicate getter key: " + type));
+    }
+    return
+  }
+  store._wrappedGetters[type] = function wrappedGetter (store) {
+    return rawGetter(
+      local.state, // local state
+      local.getters, // local getters
+      store.state, // root state
+      store.getters // root getters
+    )
+  };
+}
 
-    {var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref$key = _ref.key,key = _ref$key === void 0 ? '' : _ref$key,_ref$value = _ref.value,value = _ref$value === void 0 ? "" : _ref$value;
-      var route = this._lastPageRoute;
-      var options = {
-        ak: this.statData.ak,
-        uuid: this.statData.uuid,
-        lt: '21',
-        ut: this.statData.ut,
-        url: route,
-        ch: this.statData.ch,
-        e_n: key,
-        e_v: typeof value === 'object' ? JSON.stringify(value) : value.toString(),
-        usv: this.statData.usv,
-        t: getTime(),
-        p: this.statData.p };
+function enableStrictMode (store) {
+  store._vm.$watch(function () { return this._data.$$state }, function () {
+    if (true) {
+      assert(store._committing, "Do not mutate vuex store state outside mutation handlers.");
+    }
+  }, { deep: true, sync: true });
+}
 
-      this.request(options);
-    } }, { key: "getNetworkInfo", value: function getNetworkInfo()
+function getNestedState (state, path) {
+  return path.length
+    ? path.reduce(function (state, key) { return state[key]; }, state)
+    : state
+}
 
-    {var _this = this;
-      uni.getNetworkType({
-        success: function success(result) {
-          _this.statData.net = result.networkType;
-          _this.getLocation();
-        } });
+function unifyObjectStyle (type, payload, options) {
+  if (isObject(type) && type.type) {
+    options = payload;
+    payload = type;
+    type = type.type;
+  }
 
-    } }, { key: "getProperty", value: function getProperty()
+  if (true) {
+    assert(typeof type === 'string', ("Expects string as the type, but found " + (typeof type) + "."));
+  }
 
-    {var _this2 = this;
-      plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {
-        _this2.statData.v = wgtinfo.version || '';
-        _this2.getNetworkInfo();
-      });
-    } }, { key: "getLocation", value: function getLocation()
+  return { type: type, payload: payload, options: options }
+}
 
-    {var _this3 = this;
-      if (statConfig.getLocation) {
-        uni.getLocation({
-          type: 'wgs84',
-          geocode: true,
-          success: function success(result) {
-            if (result.address) {
-              _this3.statData.cn = result.address.country;
-              _this3.statData.pn = result.address.province;
-              _this3.statData.ct = result.address.city;
-            }
+function install (_Vue) {
+  if (Vue && _Vue === Vue) {
+    if (true) {
+      console.error(
+        '[vuex] already installed. Vue.use(Vuex) should be called only once.'
+      );
+    }
+    return
+  }
+  Vue = _Vue;
+  applyMixin(Vue);
+}
 
-            _this3.statData.lat = result.latitude;
-            _this3.statData.lng = result.longitude;
-            _this3.request(_this3.statData);
-          } });
+var mapState = normalizeNamespace(function (namespace, states) {
+  var res = {};
+  normalizeMap(states).forEach(function (ref) {
+    var key = ref.key;
+    var val = ref.val;
 
-      } else {
-        this.statData.lat = 0;
-        this.statData.lng = 0;
-        this.request(this.statData);
+    res[key] = function mappedState () {
+      var state = this.$store.state;
+      var getters = this.$store.getters;
+      if (namespace) {
+        var module = getModuleByNamespace(this.$store, 'mapState', namespace);
+        if (!module) {
+          return
+        }
+        state = module.context.state;
+        getters = module.context.getters;
       }
-    } }, { key: "request", value: function request(
+      return typeof val === 'function'
+        ? val.call(this, state, getters)
+        : state[val]
+    };
+    // mark vuex getter for devtools
+    res[key].vuex = true;
+  });
+  return res
+});
 
-    data, type) {var _this4 = this;
-      var time = getTime();
-      var title = this._navigationBarTitle;
-      data.ttn = title.page;
-      data.ttpj = title.config;
-      data.ttc = title.report;
+var mapMutations = normalizeNamespace(function (namespace, mutations) {
+  var res = {};
+  normalizeMap(mutations).forEach(function (ref) {
+    var key = ref.key;
+    var val = ref.val;
 
-      var requestData = this._reportingRequestData;
-      if (getPlatformName() === 'n') {
-        requestData = uni.getStorageSync('__UNI__STAT__DATA') || {};
-      }
-      if (!requestData[data.lt]) {
-        requestData[data.lt] = [];
-      }
-      requestData[data.lt].push(data);
+    res[key] = function mappedMutation () {
+      var args = [], len = arguments.length;
+      while ( len-- ) args[ len ] = arguments[ len ];
 
-      if (getPlatformName() === 'n') {
-        uni.setStorageSync('__UNI__STAT__DATA', requestData);
-      }
-      if (getPageResidenceTime() < OPERATING_TIME && !type) {
-        return;
-      }
-      var uniStatData = this._reportingRequestData;
-      if (getPlatformName() === 'n') {
-        uniStatData = uni.getStorageSync('__UNI__STAT__DATA');
+      var commit = this.$store.commit;
+      if (namespace) {
+        var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
+        if (!module) {
+          return
+        }
+        commit = module.context.commit;
       }
-      // 时间超过,重新获取时间戳
-      setPageResidenceTime();
-      var firstArr = [];
-      var contentArr = [];
-      var lastArr = [];var _loop = function _loop(
+      return typeof val === 'function'
+        ? val.apply(this, [commit].concat(args))
+        : commit.apply(this.$store, [val].concat(args))
+    };
+  });
+  return res
+});
 
-      i) {
-        var rd = uniStatData[i];
-        rd.forEach(function (elm) {
-          var newData = getSplicing(elm);
-          if (i === 0) {
-            firstArr.push(newData);
-          } else if (i === 3) {
-            lastArr.push(newData);
-          } else {
-            contentArr.push(newData);
-          }
-        });};for (var i in uniStatData) {_loop(i);
+var mapGetters = normalizeNamespace(function (namespace, getters) {
+  var res = {};
+  normalizeMap(getters).forEach(function (ref) {
+    var key = ref.key;
+    var val = ref.val;
+
+    val = namespace + val;
+    res[key] = function mappedGetter () {
+      if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
+        return
+      }
+      if ( true && !(val in this.$store.getters)) {
+        console.error(("[vuex] unknown getter: " + val));
+        return
       }
+      return this.$store.getters[val]
+    };
+    // mark vuex getter for devtools
+    res[key].vuex = true;
+  });
+  return res
+});
 
-      firstArr.push.apply(firstArr, contentArr.concat(lastArr));
-      var optionsData = {
-        usv: STAT_VERSION, //统计 SDK 版本号
-        t: time, //发送请求时的时间戮
-        requests: JSON.stringify(firstArr) };
+var mapActions = normalizeNamespace(function (namespace, actions) {
+  var res = {};
+  normalizeMap(actions).forEach(function (ref) {
+    var key = ref.key;
+    var val = ref.val;
 
+    res[key] = function mappedAction () {
+      var args = [], len = arguments.length;
+      while ( len-- ) args[ len ] = arguments[ len ];
 
-      this._reportingRequestData = {};
-      if (getPlatformName() === 'n') {
-        uni.removeStorageSync('__UNI__STAT__DATA');
+      var dispatch = this.$store.dispatch;
+      if (namespace) {
+        var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
+        if (!module) {
+          return
+        }
+        dispatch = module.context.dispatch;
       }
+      return typeof val === 'function'
+        ? val.apply(this, [dispatch].concat(args))
+        : dispatch.apply(this.$store, [val].concat(args))
+    };
+  });
+  return res
+});
 
-      if (data.ut === 'h5') {
-        this.imageRequest(optionsData);
-        return;
-      }
+var createNamespacedHelpers = function (namespace) { return ({
+  mapState: mapState.bind(null, namespace),
+  mapGetters: mapGetters.bind(null, namespace),
+  mapMutations: mapMutations.bind(null, namespace),
+  mapActions: mapActions.bind(null, namespace)
+}); };
 
-      if (getPlatformName() === 'n' && this.statData.p === 'a') {
-        setTimeout(function () {
-          _this4._sendRequest(optionsData);
-        }, 200);
-        return;
-      }
-      this._sendRequest(optionsData);
-    } }, { key: "_sendRequest", value: function _sendRequest(
-    optionsData) {var _this5 = this;
-      uni.request({
-        url: STAT_URL,
-        method: 'POST',
-        // header: {
-        //   'content-type': 'application/json' // 默认值
-        // },
-        data: optionsData,
-        success: function success() {
-          // if (process.env.NODE_ENV === 'development') {
-          //   console.log('stat request success');
-          // }
-        },
-        fail: function fail(e) {
-          if (++_this5._retry < 3) {
-            setTimeout(function () {
-              _this5._sendRequest(optionsData);
-            }, 1000);
-          }
-        } });
+function normalizeMap (map) {
+  return Array.isArray(map)
+    ? map.map(function (key) { return ({ key: key, val: key }); })
+    : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
+}
 
+function normalizeNamespace (fn) {
+  return function (namespace, map) {
+    if (typeof namespace !== 'string') {
+      map = namespace;
+      namespace = '';
+    } else if (namespace.charAt(namespace.length - 1) !== '/') {
+      namespace += '/';
     }
-    /**
-       * h5 请求
-       */ }, { key: "imageRequest", value: function imageRequest(
-    data) {
-      var image = new Image();
-      var options = getSgin(GetEncodeURIComponentOptions(data)).options;
-      image.src = STAT_H5_URL + '?' + options;
-    } }, { key: "sendEvent", value: function sendEvent(
+    return fn(namespace, map)
+  }
+}
 
-    key, value) {
-      // 校验 type 参数
-      if (calibration(key, value)) return;
+function getModuleByNamespace (store, helper, namespace) {
+  var module = store._modulesNamespaceMap[namespace];
+  if ( true && !module) {
+    console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
+  }
+  return module
+}
 
-      if (key === 'title') {
-        this._navigationBarTitle.report = value;
-        return;
-      }
-      this._sendEventRequest({
-        key: key,
-        value: typeof value === 'object' ? JSON.stringify(value) : value },
-      1);
-    } }]);return Util;}();var
+var index_esm = {
+  Store: Store,
+  install: install,
+  version: '3.0.1',
+  mapState: mapState,
+  mapMutations: mapMutations,
+  mapGetters: mapGetters,
+  mapActions: mapActions,
+  createNamespacedHelpers: createNamespacedHelpers
+};
 
 
+/* harmony default export */ __webpack_exports__["default"] = (index_esm);
 
-Stat = /*#__PURE__*/function (_Util) {_inherits(Stat, _Util);_createClass(Stat, null, [{ key: "getInstance", value: function getInstance()
-    {
-      if (!this.instance) {
-        this.instance = new Stat();
-      }
-      return this.instance;
-    } }]);
-  function Stat() {var _this6;_classCallCheck(this, Stat);
-    _this6 = _possibleConstructorReturn(this, _getPrototypeOf(Stat).call(this));
-    _this6.instance = null;
-    // 注册拦截器
-    if (typeof uni.addInterceptor === 'function' && "development" !== 'development') {
-      _this6.addInterceptorInit();
-      _this6.interceptLogin();
-      _this6.interceptShare(true);
-      _this6.interceptRequestPayment();
-    }return _this6;
-  }_createClass(Stat, [{ key: "addInterceptorInit", value: function addInterceptorInit()
 
-    {
-      var self = this;
-      uni.addInterceptor('setNavigationBarTitle', {
-        invoke: function invoke(args) {
-          self._navigationBarTitle.page = args.title;
-        } });
+/***/ }),
+/* 13 */,
+/* 14 */,
+/* 15 */
+/*!**********************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***!
+  \**********************************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
 
-    } }, { key: "interceptLogin", value: function interceptLogin()
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; });
+/* globals __VUE_SSR_CONTEXT__ */
 
-    {
-      var self = this;
-      uni.addInterceptor('login', {
-        complete: function complete() {
-          self._login();
-        } });
+// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
+// This module is a runtime utility for cleaner component module output and will
+// be included in the final webpack user bundle.
 
-    } }, { key: "interceptShare", value: function interceptShare(
+function normalizeComponent (
+  scriptExports,
+  render,
+  staticRenderFns,
+  functionalTemplate,
+  injectStyles,
+  scopeId,
+  moduleIdentifier, /* server only */
+  shadowMode, /* vue-cli only */
+  components, // fixed by xxxxxx auto components
+  renderjs // fixed by xxxxxx renderjs
+) {
+  // Vue.extend constructor export interop
+  var options = typeof scriptExports === 'function'
+    ? scriptExports.options
+    : scriptExports
 
-    type) {
-      var self = this;
-      if (!type) {
-        self._share();
-        return;
+  // fixed by xxxxxx auto components
+  if (components) {
+    if (!options.components) {
+      options.components = {}
+    }
+    var hasOwn = Object.prototype.hasOwnProperty
+    for (var name in components) {
+      if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {
+        options.components[name] = components[name]
       }
-      uni.addInterceptor('share', {
-        success: function success() {
-          self._share();
-        },
-        fail: function fail() {
-          self._share();
-        } });
-
-    } }, { key: "interceptRequestPayment", value: function interceptRequestPayment()
-
-    {
-      var self = this;
-      uni.addInterceptor('requestPayment', {
-        success: function success() {
-          self._payment('pay_success');
-        },
-        fail: function fail() {
-          self._payment('pay_fail');
-        } });
+    }
+  }
+  // fixed by xxxxxx renderjs
+  if (renderjs) {
+    (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {
+      this[renderjs.__module] = this
+    });
+    (options.mixins || (options.mixins = [])).push(renderjs)
+  }
 
-    } }, { key: "report", value: function report(
+  // render functions
+  if (render) {
+    options.render = render
+    options.staticRenderFns = staticRenderFns
+    options._compiled = true
+  }
 
-    options, self) {
-      this.self = self;
-      // if (process.env.NODE_ENV === 'development') {
-      //   console.log('report init');
-      // }
-      setPageResidenceTime();
-      this.__licationShow = true;
-      this._sendReportRequest(options, true);
-    } }, { key: "load", value: function load(
+  // functional template
+  if (functionalTemplate) {
+    options.functional = true
+  }
 
-    options, self) {
-      if (!self.$scope && !self.$mp) {
-        var page = getCurrentPages();
-        self.$scope = page[page.length - 1];
-      }
-      this.self = self;
-      this._query = options;
-    } }, { key: "show", value: function show(
+  // scopedId
+  if (scopeId) {
+    options._scopeId = 'data-v-' + scopeId
+  }
 
-    self) {
-      this.self = self;
-      if (getPageTypes(self)) {
-        this._pageShow(self);
-      } else {
-        this._applicationShow(self);
+  var hook
+  if (moduleIdentifier) { // server build
+    hook = function (context) {
+      // 2.3 injection
+      context =
+        context || // cached call
+        (this.$vnode && this.$vnode.ssrContext) || // stateful
+        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
+      // 2.2 with runInNewContext: true
+      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
+        context = __VUE_SSR_CONTEXT__
       }
-    } }, { key: "ready", value: function ready(
-
-    self) {
-      // this.self = self;
-      // if (getPageTypes(self)) {
-      //   this._pageShow(self);
-      // }
-    } }, { key: "hide", value: function hide(
-    self) {
-      this.self = self;
-      if (getPageTypes(self)) {
-        this._pageHide(self);
-      } else {
-        this._applicationHide(self, true);
+      // inject component styles
+      if (injectStyles) {
+        injectStyles.call(this, context)
       }
-    } }, { key: "error", value: function error(
-    em) {
-      if (this._platform === 'devtools') {
-        if (true) {
-          console.info('当前运行环境为开发者工具,不上报数据。');
-        }
-        // return;
+      // register component module identifier for async chunk inferrence
+      if (context && context._registeredComponents) {
+        context._registeredComponents.add(moduleIdentifier)
       }
-      var emVal = '';
-      if (!em.message) {
-        emVal = JSON.stringify(em);
-      } else {
-        emVal = em.stack;
+    }
+    // used by ssr in case component is cached and beforeCreate
+    // never gets called
+    options._ssrRegister = hook
+  } else if (injectStyles) {
+    hook = shadowMode
+      ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
+      : injectStyles
+  }
+
+  if (hook) {
+    if (options.functional) {
+      // for template-only hot-reload because in that case the render fn doesn't
+      // go through the normalizer
+      options._injectStyles = hook
+      // register for functioal component in vue file
+      var originalRender = options.render
+      options.render = function renderWithStyleInjection (h, context) {
+        hook.call(context)
+        return originalRender(h, context)
       }
-      var options = {
-        ak: this.statData.ak,
-        uuid: this.statData.uuid,
-        lt: '31',
-        ut: this.statData.ut,
-        ch: this.statData.ch,
-        mpsdk: this.statData.mpsdk,
-        mpv: this.statData.mpv,
-        v: this.statData.v,
-        em: emVal,
-        usv: this.statData.usv,
-        t: getTime(),
-        p: this.statData.p };
+    } else {
+      // inject component registration as beforeCreate hook
+      var existing = options.beforeCreate
+      options.beforeCreate = existing
+        ? [].concat(existing, hook)
+        : [hook]
+    }
+  }
 
-      this.request(options);
-    } }]);return Stat;}(Util);
+  return {
+    exports: scriptExports,
+    options: options
+  }
+}
 
 
-var stat = Stat.getInstance();
-var isHide = false;
-var lifecycle = {
-  onLaunch: function onLaunch(options) {
-    stat.report(options, this);
-  },
-  onReady: function onReady() {
-    stat.ready(this);
-  },
-  onLoad: function onLoad(options) {
-    stat.load(options, this);
-    // 重写分享,获取分享上报事件
-    if (this.$scope && this.$scope.onShareAppMessage) {
-      var oldShareAppMessage = this.$scope.onShareAppMessage;
-      this.$scope.onShareAppMessage = function (options) {
-        stat.interceptShare(false);
-        return oldShareAppMessage.call(this, options);
-      };
-    }
-  },
-  onShow: function onShow() {
-    isHide = false;
-    stat.show(this);
-  },
-  onHide: function onHide() {
-    isHide = true;
-    stat.hide(this);
-  },
-  onUnload: function onUnload() {
-    if (isHide) {
-      isHide = false;
-      return;
-    }
-    stat.hide(this);
-  },
-  onError: function onError(e) {
-    stat.error(e);
-  } };
+/***/ }),
+/* 16 */
+/*!**********************************************************************************!*\
+  !*** C:/Users/Administrator/Documents/HBuilderProjects/myUinapp/store/logion.js ***!
+  \**********************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
 
+"use strict";
+/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
+var _vuex = _interopRequireDefault(__webpack_require__(/*! vuex */ 12));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
-function main() {
-  if (true) {
-    uni.report = function (type, options) {};
-  } else { var Vue; }
-}
+_vue.default.use(_vuex.default);
 
-main();
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
+var store = new _vuex.default.Store({
+  state: {
+    hasLogin: false,
+    sessionId: '',
+    showModal: false, //登录授权弹窗
+    userInfo: {} },
 
-/***/ }),
+  mutations: {
+    login: function login(state, provider) {
+      state.hasLogin = true;
+      state.userInfo = provider;
+      uni.setStorage({ //缓存用户登陆状态
+        key: 'userInfo',
+        data: provider });
 
-/***/ 6:
-/*!******************************************************!*\
-  !*** ./node_modules/@dcloudio/uni-stat/package.json ***!
-  \******************************************************/
-/*! exports provided: _from, _id, _inBundle, _integrity, _location, _phantomChildren, _requested, _requiredBy, _resolved, _shasum, _spec, _where, author, bugs, bundleDependencies, deprecated, description, devDependencies, files, gitHead, homepage, license, main, name, repository, scripts, version, default */
-/***/ (function(module) {
+    },
 
-module.exports = {"_from":"@dcloudio/uni-stat@next","_id":"@dcloudio/uni-stat@2.0.0-26820200330001","_inBundle":false,"_integrity":"sha512-Qzo5LcBl+abS7DvpyTXBYW2VVYHVcHBewduQecjn/gbzAn9e90aOVn02/2VZ82wV6TBiDXbGyloXojOY3InzWA==","_location":"/@dcloudio/uni-stat","_phantomChildren":{},"_requested":{"type":"tag","registry":true,"raw":"@dcloudio/uni-stat@next","name":"@dcloudio/uni-stat","escapedName":"@dcloudio%2funi-stat","scope":"@dcloudio","rawSpec":"next","saveSpec":null,"fetchSpec":"next"},"_requiredBy":["#USER","/","/@dcloudio/vue-cli-plugin-uni"],"_resolved":"https://registry.npmjs.org/@dcloudio/uni-stat/-/uni-stat-2.0.0-26820200330001.tgz","_shasum":"880c5c5a4920bb35e9cf691eeb7427a7bf67ffd7","_spec":"@dcloudio/uni-stat@next","_where":"/Users/guoshengqiang/Documents/dcloud-plugins/release/uniapp-cli","author":"","bugs":{"url":"https://github.com/dcloudio/uni-app/issues"},"bundleDependencies":false,"deprecated":false,"description":"","devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","eslint":"^6.1.0","rollup":"^1.19.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-clear":"^2.0.7","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-copy":"^3.1.0","rollup-plugin-eslint":"^7.0.0","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"files":["dist","package.json","LICENSE"],"gitHead":"57ef7f7b5b6164a74ec425ff12f9fe0a1147841a","homepage":"https://github.com/dcloudio/uni-app#readme","license":"Apache-2.0","main":"dist/index.js","name":"@dcloudio/uni-stat","repository":{"type":"git","url":"git+https://github.com/dcloudio/uni-app.git","directory":"packages/uni-stat"},"scripts":{"build":"NODE_ENV=production rollup -c rollup.config.js","dev":"NODE_ENV=development rollup -w -c rollup.config.js"},"version":"2.0.0-26820200330001"};
+    setOpenid: function setOpenid(state, provider) {
+      state.sessionId = provider;
+      uni.setStorage({ //缓存用户登陆状态
+        key: 'sessionId',
+        data: provider });
 
-/***/ }),
 
-/***/ 7:
-/*!**********************************************************************************************!*\
-  !*** C:/Users/Administrator/Documents/HBuilderProjects/myUinapp/pages.json?{"type":"style"} ***!
-  \**********************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
+    },
+    showDialog: function showDialog(state, status) {
+      state.showModal = status;
+      uni.setStorage({ //缓存用户登陆状态
+        key: 'showModal',
+        data: status });
 
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "pages": { "pages/index/index": { "navigationBarTitleText": "uni-app" }, "pages/taBar/one/one": { "navigationBarTitleText": "我得分页1" }, "pages/taBar/three/three": { "navigationBarTitleText": "我得分页3" } }, "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8" } };exports.default = _default;
+      console.log(state.showModal);
+    },
 
-/***/ }),
 
-/***/ 8:
-/*!*********************************************************************************************!*\
-  !*** C:/Users/Administrator/Documents/HBuilderProjects/myUinapp/pages.json?{"type":"stat"} ***!
-  \*********************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
+    logout: function logout(state) {
+      state.hasLogin = false;
+      state.userInfo = {};
+      state.sessionId = '';
+      uni.removeStorage({
+        key: 'userInfo' });
 
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "appid": "__UNI__99C074F" };exports.default = _default;
+      uni.removeStorage({
+        key: 'sessionId' });
 
-/***/ })
+    } }
+
+  // actions: {
+  // 	// lazy loading openid
+  // 	getUserOpenId: async function ({
+  // 		commit,
+  // 		state
+  // 	}) {
+  // 		return await new Promise((resolve, reject) => {
+  // 			if (state.openid) {
+  // 				resolve(state.openid)
+  // 			} else {
+  // 				uni.login({
+  // 					success: (data) => {
+  // 						commit('login')
+  // 						setTimeout(function () { //模拟异步请求服务器获取 openid
+  // 							const openid = '123456789'
+  // 							commit('setOpenid', openid)
+  // 							resolve(openid)
+  // 						}, 1000)
+  // 					},
+  // 					fail: (err) => {
+  // 						console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', err)
+  // 						reject(err)
+  // 					}
+  // 				})
+  // 			}
+  // 		})
+  // 	}
+  // }
+});var _default =
 
-}]);
+store;exports.default = _default;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
+
+/***/ })
+]]);
 //# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map

ファイルの差分が大きいため隠しています
+ 52 - 0
unpackage/dist/dev/mp-weixin/component/commoNar.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/component/commoNar.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/component/commoNar.wxml

@@ -0,0 +1 @@
+<view style="width:95%;margin:12rpx auto;"><view class="typeItem">全部</view><view class="typeItem">上新<van-icon vue-id="d9624d2c-1" size="20px" name="arrow-up" bind:__l="__l"></van-icon><van-icon vue-id="d9624d2c-2" size="20px" name="arrow-down" bind:__l="__l"></van-icon></view><view class="typeItem">价格<van-icon vue-id="d9624d2c-3" size="20px" name="arrow-up" bind:__l="__l"></van-icon><van-icon vue-id="d9624d2c-4" size="20px" name="arrow-down" bind:__l="__l"></van-icon></view><view class="typeItem"><van-dropdown-menu vue-id="d9624d2c-5" bind:__l="__l" vue-slots="{{['default']}}"><van-dropdown-item vue-id="{{('d9624d2c-6')+','+('d9624d2c-5')}}" title="分类" bind:__l="__l"></van-dropdown-item></van-dropdown-menu></view></view>

+ 7 - 0
unpackage/dist/dev/mp-weixin/component/commoNar.wxss

@@ -0,0 +1,7 @@
+
+.typeItem {
+	width: 25%;
+	display: inline-block;
+	text-align: center;
+}
+

ファイルの差分が大きいため隠しています
+ 52 - 0
unpackage/dist/dev/mp-weixin/component/uni-icon/uni-icon.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/component/uni-icon/uni-icon.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/component/uni-icon/uni-icon.wxml

@@ -0,0 +1 @@
+<view data-event-opts="{{[['tap',[['_onClick',['$event']]]]]}}" class="{{['uni-icon','uni-icon-'+type]}}" style="{{'color:'+(color)+';'+('font-size:'+(size+'px')+';')}}" bindtap="__e"></view>

ファイルの差分が大きいため隠しています
+ 5 - 0
unpackage/dist/dev/mp-weixin/component/uni-icon/uni-icon.wxss


ファイルの差分が大きいため隠しています
+ 52 - 0
unpackage/dist/dev/mp-weixin/component/uni-nav-bar/uni-nav-bar.js


+ 7 - 0
unpackage/dist/dev/mp-weixin/component/uni-nav-bar/uni-nav-bar.json

@@ -0,0 +1,7 @@
+{
+  "component": true,
+  "usingComponents": {
+    "uni-status-bar": "/component/uni-status-bar/uni-status-bar",
+    "uni-icon": "/component/uni-icon/uni-icon"
+  }
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/component/uni-nav-bar/uni-nav-bar.wxml

@@ -0,0 +1 @@
+<view class="uni-navbar" style="width:100%;"><view class="{{['uni-navbar__content',(fixed)?'uni-navbar--fixed':'',(border)?'uni-navbar--shadow':'',(border)?'uni-navbar--border':'']}}" style="{{'background-color:'+(backgroundColor)+';'}}"><block wx:if="{{statusBar}}"><uni-status-bar vue-id="672e6a66-1" bind:__l="__l"></uni-status-bar></block><view class="uni-navbar__header uni-navbar__content_view" style="{{'color:'+(color)+';'}}"><view data-event-opts="{{[['tap',[['onClickLeft',['$event']]]]]}}" class="uni-navbar__header-btns uni-navbar__content_view" bindtap="__e"><block wx:if="{{leftIcon.length}}"><view class="uni-navbar__content_view"><uni-icon vue-id="672e6a66-2" type="{{leftIcon}}" color="{{color}}" size="24" bind:__l="__l"></uni-icon></view></block><block wx:if="{{leftText.length}}"><view class="{{['uni-navbar-btn-text uni-navbar__content_view',(!leftIcon.length)?'uni-navbar-btn-icon-left':'']}}">{{leftText}}</view></block><slot name="left"></slot></view><view class="uni-navbar__header-container uni-navbar__content_view"><block wx:if="{{title.length}}"><view class="uni-navbar__header-container-inner uni-navbar__content_view">{{title}}</view></block><slot></slot></view><view data-event-opts="{{[['tap',[['onClickRight',['$event']]]]]}}" class="uni-navbar__header-btns uni-navbar__content_view" bindtap="__e"><block wx:if="{{rightIcon.length}}"><view class="uni-navbar__content_view"><uni-icon vue-id="672e6a66-3" type="{{rightIcon}}" color="{{color}}" size="24" bind:__l="__l"></uni-icon></view></block><block wx:if="{{rightText.length&&!rightIcon.length}}"><view class="uni-navbar-btn-text uni-navbar__content_view">{{rightText}}</view></block><slot name="right"></slot></view></view></view><block wx:if="{{fixed}}"><view class="uni-navbar__placeholder"><block wx:if="{{statusBar}}"><uni-status-bar vue-id="672e6a66-4" bind:__l="__l"></uni-status-bar></block><view class="uni-navbar__placeholder-view"></view></view></block></view>

+ 77 - 0
unpackage/dist/dev/mp-weixin/component/uni-nav-bar/uni-nav-bar.wxss

@@ -0,0 +1,77 @@
+
+@charset "UTF-8";
+.uni-navbar {
+		width: 100%;
+}
+.uni-navbar__content {
+		display: block;
+		position: relative;
+		width: 100%;
+		background-color: #fff;
+		overflow: hidden
+}
+.uni-navbar__content .uni-navbar__content_view {
+		line-height: 44px
+}
+.uni-navbar__header {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: horizontal;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: row;
+		        flex-direction: row;
+		width: 100%;
+		height: 44px;
+		line-height: 44px;
+		font-size: 16px
+}
+.uni-navbar__header-btns {
+		display: -webkit-inline-box;
+		display: -webkit-inline-flex;
+		display: inline-flex;
+		-webkit-flex-wrap: nowrap;
+		        flex-wrap: nowrap;
+		-webkit-flex-shrink: 0;
+		        flex-shrink: 0;
+		width: 120rpx;
+		padding: 0 12rpx
+}
+.uni-navbar__header-btns:first-child {
+		padding-left: 0
+}
+.uni-navbar__header-btns:last-child {
+		width: 60rpx
+}
+.uni-navbar__header-container {
+		width: 100%;
+		margin: 0 10rpx
+}
+.uni-navbar__header-container-inner {
+		font-size: 30rpx;
+		text-align: center;
+		padding-right: 60rpx
+}
+.uni-navbar__placeholder-view {
+		height: 44px
+}
+.uni-navbar--fixed {
+		position: fixed;
+		z-index: 998
+}
+.uni-navbar--shadow {
+		/* box-shadow: 0 1px 6px #ccc */
+}
+.uni-navbar--border:after {
+		position: absolute;
+		z-index: 3;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		height: 1px;
+		content: '';
+		-webkit-transform: scaleY(.5);
+		transform: scaleY(.5);
+		background-color: #c8c7cc
+}
+

ファイルの差分が大きいため隠しています
+ 52 - 0
unpackage/dist/dev/mp-weixin/component/uni-status-bar/uni-status-bar.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/component/uni-status-bar/uni-status-bar.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/component/uni-status-bar/uni-status-bar.wxml

@@ -0,0 +1 @@
+<view class="uni-status-bar" style="{{'height:'+(statusBarHeight)+';'}}"><slot></slot></view>

+ 8 - 0
unpackage/dist/dev/mp-weixin/component/uni-status-bar/uni-status-bar.wxss

@@ -0,0 +1,8 @@
+
+.uni-status-bar {
+	display: block;
+	width: 100%;
+	height: 20px;
+	height: 25px;
+}
+

ファイルの差分が大きいため隠しています
+ 69 - 0
unpackage/dist/dev/mp-weixin/pages/index/hotel.js


+ 16 - 0
unpackage/dist/dev/mp-weixin/pages/index/hotel.json

@@ -0,0 +1,16 @@
+{
+  "usingComponents": {
+    "van-sticky": "/wxcomponents/dist/sticky/index",
+    "van-nav-bar": "/wxcomponents/dist/nav-bar/index",
+    "van-search": "/wxcomponents/dist/search/index",
+    "van-tab": "/wxcomponents/dist/tab/index",
+    "van-tabs": "/wxcomponents/dist/tabs/index",
+    "van-dropdown-menu": "/wxcomponents/dist/dropdown-menu/index",
+    "van-dropdown-item": "/wxcomponents/dist/dropdown-item/index",
+    "van-row": "/wxcomponents/dist/row/index",
+    "van-col": "/wxcomponents/dist/col/index",
+    "van-icon": "/wxcomponents/dist/icon/index",
+    "uni-icon": "/component/uni-icon/uni-icon",
+    "commo-nar": "/component/commoNar"
+  }
+}

ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/hotel.wxml


+ 51 - 0
unpackage/dist/dev/mp-weixin/pages/index/hotel.wxss

@@ -0,0 +1,51 @@
+
+.scrollswiper {
+	width: 100%;
+	position: relative;
+}
+.titleFixed {
+	position: absolute;
+	top: 0;
+	left: 0;
+	z-index: 99;
+	padding-top: 0;
+	background-color: transparent;
+}
+.swiper {
+	height: 300rpx;
+}
+.swiper-item {
+	display: block;
+	height: 100%!important;
+	line-height: 300rpx;
+	text-align: center;
+}
+.tip {
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-pack: justify;
+	-webkit-justify-content: space-between;
+	        justify-content: space-between;
+	padding: 36rpx 32rpx;
+}
+.giveList {
+    padding: 10rpx  12rpx;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-flex-wrap: wrap;
+	        flex-wrap: wrap;
+}
+.giveItem {
+	width: 18%;
+	height: 120rpx;
+	margin: 10rpx 20rpx;
+	/* background-color: #909399 */
+}
+.active {
+	color: #F76260;
+}
+.listType {
+}
+

ファイルの差分が大きいため隠しています
+ 10 - 8
unpackage/dist/dev/mp-weixin/pages/index/index.js


+ 6 - 2
unpackage/dist/dev/mp-weixin/pages/index/index.json

@@ -1,4 +1,8 @@
 {
-  "navigationBarTitleText": "uni-app",
-  "usingComponents": {}
+  "navigationBarTitleText": "首页",
+  "usingComponents": {
+    "van-search": "/wxcomponents/dist/search/index",
+    "uni-nav-bar": "/component/uni-nav-bar/uni-nav-bar",
+    "uni-icon": "/component/uni-icon/uni-icon"
+  }
 }

ファイルの差分が大きいため隠しています
+ 0 - 1
unpackage/dist/dev/mp-weixin/pages/index/index.wxml


+ 121 - 27
unpackage/dist/dev/mp-weixin/pages/index/index.wxss

@@ -1,37 +1,131 @@
 
+.top .uni-navbar__header-btns  {
+		width: 80%!important;
+}
+.top .uni-navbar__header-container {
+		width: 50%!important;
+}
 .content {
-	display: -webkit-box;
-	display: -webkit-flex;
-	display: flex;
-	-webkit-box-orient: vertical;
-	-webkit-box-direction: normal;
-	-webkit-flex-direction: column;
-	        flex-direction: column;
-	-webkit-box-align: center;
-	-webkit-align-items: center;
-	        align-items: center;
-	-webkit-box-pack: center;
-	-webkit-justify-content: center;
-	        justify-content: center;
+		background: #fff;
+}
+.city {
+		width: 100%;
+		height: 100%;
+		white-space:nowrap;
+		overflow:hidden;
+		text-overflow:ellipsis;
 }
 .logo {
-	height: 200rpx;
-	width: 200rpx;
-	margin-top: 200rpx;
-	margin-left: auto;
-	margin-right: auto;
-	margin-bottom: 50rpx;
+		height: 200rpx;
+		width: 200rpx;
+		margin-top: 200rpx;
+		margin-left: auto;
+		margin-right: auto;
+		margin-bottom: 50rpx;
 }
 .text-area {
-	display: -webkit-box;
-	display: -webkit-flex;
-	display: flex;
-	-webkit-box-pack: center;
-	-webkit-justify-content: center;
-	        justify-content: center;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-pack: center;
+		-webkit-justify-content: center;
+		        justify-content: center;
 }
 .title {
-	font-size: 36rpx;
-	color: #8f8f94;
+		font-size: 36rpx;
+		color: #8f8f94;
+}
+.van-cell--borderless {
+		background-color: #e7e7e7!important;
+}
+.searchType .input-view {
+		width: 85%;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		background-color: #e7e7e7;
+		height: 30px;
+		border-radius: 15px;
+		padding: 0 4%;
+		-webkit-flex-wrap: nowrap;
+		        flex-wrap: nowrap;
+		margin: 7px 0;
+		line-height: 30px;
+		margin: 24rpx auto;
+}
+.searchType .input-view .uni-icon {
+		line-height: 30px !important;
+}
+.searchType .input-view .input {
+		height: 30px;
+		line-height: 30px;
+		width: 94%;
+		padding: 0 3%;
+}
+.uni-navbar--border::after {
+		background: #fff!important;
+}
+.swiper {
+		height: 300rpx;
+}
+.swiper-item {
+		display: block;
+		height: 300rpx;
+		line-height: 300rpx;
+		text-align: center;
+}
+.scrollswiper {
+		width: 90%;
+		margin: 20rpx auto;
+}
+.tips {
+		color: #303133;
+		font-size: 28rpx;
+		text-align: center;
+		margin: 24rpx 0;
+}
+.hotelList {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: horizontal;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: row;
+		        flex-direction: row;
+		padding: 24rpx 32rpx;
+}
+.hotleLeft {
+		width: 214rpx;
+		height: 152rpx;
+		background-color: #007AFF;
+}
+.hotelright {
+		padding-left: 16rpx;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		        flex-direction: column;
+		width: 100%;
+}
+.undertip {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: horizontal;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: row;
+		        flex-direction: row;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		        align-items: center;
+}
+.tipsTop {
+		border: 2rpx solid #BBBBBB;
+		margin-right: 14rpx;
+		color: #BBBBBB;
+		padding: 4rpx;
 }
 

ファイルの差分が大きいため隠しています
+ 24 - 24
unpackage/dist/dev/mp-weixin/pages/myCenter/index.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/pages/myCenter/index.json

@@ -0,0 +1,4 @@
+{
+  "navigationBarTitleText": "我的",
+  "usingComponents": {}
+}

+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/taBar/one/one.wxml → unpackage/dist/dev/mp-weixin/pages/myCenter/index.wxml


ファイルの差分が大きいため隠しています
+ 69 - 0
unpackage/dist/dev/mp-weixin/pages/myone/oneIndex.js


+ 8 - 0
unpackage/dist/dev/mp-weixin/pages/myone/oneIndex.json

@@ -0,0 +1,8 @@
+{
+  "navigationBarTitleText": "发现",
+  "usingComponents": {
+    "van-tab": "/wxcomponents/dist/tab/index",
+    "van-tabs": "/wxcomponents/dist/tabs/index",
+    "uni-icon": "/component/uni-icon/uni-icon"
+  }
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/myone/oneIndex.wxml

@@ -0,0 +1 @@
+<view><view class="searchType" style="background:#fff;"><view class="input-view"><uni-icon vue-id="24146ccc-1" type="search" size="22" color="#666666" bind:__l="__l"></uni-icon><input class="input" confirm-type="search" type="text" placeholder="搜索文章" data-event-opts="{{[['confirm',[['confirm',['$event']]]]]}}" bindconfirm="__e"/></view></view><view><van-tabs vue-id="24146ccc-2" active="{{active}}" data-event-opts="{{[['^click',[['onChange']]]]}}" data-com-type="wx" bind:click="__e" bind:__l="__l" vue-slots="{{['default']}}"><van-tab vue-id="{{('24146ccc-3')+','+('24146ccc-2')}}" name="1" title="标签 1" data-com-type="wx" bind:__l="__l"></van-tab><van-tab vue-id="{{('24146ccc-4')+','+('24146ccc-2')}}" name="2" title="标签 2" data-com-type="wx" bind:__l="__l"></van-tab><van-tab vue-id="{{('24146ccc-5')+','+('24146ccc-2')}}" name="3" title="标签 3" data-com-type="wx" bind:__l="__l"></van-tab><van-tab vue-id="{{('24146ccc-6')+','+('24146ccc-2')}}" name="4" title="标签 4" data-com-type="wx" bind:__l="__l"></van-tab></van-tabs></view><scroll-view class="floor-list" scroll-top="{{scrollTop}}" scroll-y="true" refresher-enabled="true" data-event-opts="{{[['scroll',[['scroll',['$event']]]],['scrolltoupper',[['upper',['$event']]]],['scrolltolower',[['lower',['$event']]]],['refresherabort',[['onAbort',['$event']]]],['refresherrefresh',[['onRefresh',['$event']]]],['refresherpulling',[['onPulling',['$event']]]]]}}" bindscroll="__e" bindscrolltoupper="__e" bindscrolltolower="__e" bindrefresherabort="__e" bindrefresherrefresh="__e" bindrefresherpulling="__e"><view><view class="hotelList"><view class="hotleLeft"><image style="width:214rpx;height:152rpx;" src></image></view><view class="hotelright"><view style="font-size:28rpx;color:#303133;">华南城市酒店</view><view>07-05 14:58</view></view></view></view></scroll-view></view>

+ 52 - 0
unpackage/dist/dev/mp-weixin/pages/myone/oneIndex.wxss

@@ -0,0 +1,52 @@
+
+.hotelList {
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: horizontal;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: row;
+	        flex-direction: row;
+	padding: 24rpx 32rpx;
+}
+.hotleLeft {
+	width: 214rpx;
+	height: 152rpx;
+	background-color: #007AFF;
+}
+.hotelright {
+	padding-left: 16rpx;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	        flex-direction: column;
+	width: 100%;
+}
+.searchType .input-view {
+	width: 85%;
+	display: -webkit-box;
+	display: -webkit-flex;
+	display: flex;
+	background-color: #e7e7e7;
+	height: 30px;
+	border-radius: 15px;
+	padding: 0 4%;
+	-webkit-flex-wrap: nowrap;
+	        flex-wrap: nowrap;
+	margin: 7px 0;
+	line-height: 30px;
+	margin: 24rpx auto;
+}
+.searchType .input-view .uni-icon {
+	line-height: 30px !important;
+}
+.searchType .input-view .input {
+	height: 30px;
+	line-height: 30px;
+	width: 94%;
+	padding: 0 3%;
+}
+

ファイルの差分が大きいため隠しています
+ 24 - 24
unpackage/dist/dev/mp-weixin/pages/taBar/index.js


+ 4 - 0
unpackage/dist/dev/mp-weixin/pages/taBar/index.json

@@ -0,0 +1,4 @@
+{
+  "navigationBarTitleText": "订单",
+  "usingComponents": {}
+}

+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/taBar/three/three.wxml → unpackage/dist/dev/mp-weixin/pages/taBar/index.wxml


+ 0 - 4
unpackage/dist/dev/mp-weixin/pages/taBar/one/one.json

@@ -1,4 +0,0 @@
-{
-  "navigationBarTitleText": "我得分页1",
-  "usingComponents": {}
-}

+ 0 - 4
unpackage/dist/dev/mp-weixin/pages/taBar/three/three.json

@@ -1,4 +0,0 @@
-{
-  "navigationBarTitleText": "我得分页3",
-  "usingComponents": {}
-}

+ 30 - 31
unpackage/dist/dev/mp-weixin/project.config.json

@@ -1,33 +1,32 @@
 {
-	"description": "项目配置文件。",
-	"packOptions": {
-		"ignore": []
-	},
-	"setting": {
-		"urlCheck": true
-	},
-	"compileType": "miniprogram",
-	"libVersion": "2.9.2",
-	"appid": "wxc566017770d22c31",
-	"projectname": "myUinapp",
-	"simulatorType": "wechat",
-	"simulatorPluginLibVersion": {},
-	"condition": {
-		"search": {
-			"current": -1,
-			"list": []
-		},
-		"conversation": {
-			"current": -1,
-			"list": []
-		},
-		"game": {
-			"current": -1,
-			"list": []
-		},
-		"miniprogram": {
-			"current": -1,
-			"list": []
-		}
-	}
+  "description": "项目配置文件。",
+  "packOptions": {
+    "ignore": []
+  },
+  "setting": {
+    "urlCheck": true,
+    "es6": true
+  },
+  "compileType": "miniprogram",
+  "libVersion": "2.9.2",
+  "appid": "wxc566017770d22c31",
+  "projectname": "myUinapp",
+  "condition": {
+    "search": {
+      "current": -1,
+      "list": []
+    },
+    "conversation": {
+      "current": -1,
+      "list": []
+    },
+    "game": {
+      "current": -1,
+      "list": []
+    },
+    "miniprogram": {
+      "current": -1,
+      "list": []
+    }
+  }
 }

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap29.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap41.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap73.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap85.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap91.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap93.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.d.ts

@@ -0,0 +1 @@
+export {};

+ 62 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.js

@@ -0,0 +1,62 @@
+import { VantComponent } from '../common/component';
+import { button } from '../mixins/button';
+import { openType } from '../mixins/open-type';
+VantComponent({
+    mixins: [button, openType],
+    props: {
+        show: Boolean,
+        title: String,
+        cancelText: String,
+        description: String,
+        round: {
+            type: Boolean,
+            value: true
+        },
+        zIndex: {
+            type: Number,
+            value: 100
+        },
+        actions: {
+            type: Array,
+            value: []
+        },
+        overlay: {
+            type: Boolean,
+            value: true
+        },
+        closeOnClickOverlay: {
+            type: Boolean,
+            value: true
+        },
+        closeOnClickAction: {
+            type: Boolean,
+            value: true
+        },
+        safeAreaInsetBottom: {
+            type: Boolean,
+            value: true
+        }
+    },
+    methods: {
+        onSelect(event) {
+            const { index } = event.currentTarget.dataset;
+            const item = this.data.actions[index];
+            if (item && !item.disabled && !item.loading) {
+                this.$emit('select', item);
+                if (this.data.closeOnClickAction) {
+                    this.onClose();
+                }
+            }
+        },
+        onCancel() {
+            this.$emit('cancel');
+        },
+        onClose() {
+            this.$emit('close');
+        },
+        onClickOverlay() {
+            this.$emit('click-overlay');
+            this.onClose();
+        }
+    }
+});

+ 8 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.json

@@ -0,0 +1,8 @@
+{
+  "component": true,
+  "usingComponents": {
+    "van-icon": "../icon/index",
+    "van-popup": "../popup/index",
+    "van-loading": "../loading/index"
+  }
+}

+ 67 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.wxml

@@ -0,0 +1,67 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<van-popup
+  show="{{ show }}"
+  position="bottom"
+  round="{{ round }}"
+  z-index="{{ zIndex }}"
+  overlay="{{ overlay }}"
+  custom-class="van-action-sheet"
+  safe-area-inset-bottom="{{ safeAreaInsetBottom }}"
+  close-on-click-overlay="{{ closeOnClickOverlay }}"
+  bind:close="onClickOverlay"
+>
+  <view wx:if="{{ title }}" class="van-hairline--bottom van-action-sheet__header">
+    {{ title }}
+    <van-icon
+      name="close"
+      custom-class="van-action-sheet__close"
+      bind:click="onClose"
+    />
+  </view>
+  <view wx:if="{{ description }}" class="van-action-sheet__description">
+    {{ description }}
+  </view>
+  <view wx:if="{{ actions && actions.length }}">
+    <!-- button外包一层view,防止actions动态变化,导致渲染时button被打散 -->
+    <button
+      wx:for="{{ actions }}"
+      wx:key="index"
+      open-type="{{ item.openType }}"
+      style="{{ item.color ? 'color: ' + item.color : '' }}"
+      class="{{ utils.bem('action-sheet__item', { disabled: item.disabled || item.loading }) }} van-hairline--top {{ item.className || '' }}"
+      hover-class="van-action-sheet__item--hover"
+      data-index="{{ index }}"
+      bind:tap="onSelect"
+      bindgetuserinfo="bindGetUserInfo"
+      bindcontact="bindContact"
+      bindgetphonenumber="bindGetPhoneNumber"
+      binderror="bindError"
+      bindlaunchapp="bindLaunchApp"
+      bindopensetting="bindOpenSetting"
+      lang="{{ lang }}"
+      session-from="{{ sessionFrom }}"
+      send-message-title="{{ sendMessageTitle }}"
+      send-message-path="{{ sendMessagePath }}"
+      send-message-img="{{ sendMessageImg }}"
+      show-message-card="{{ showMessageCard }}"
+      app-parameter="{{ appParameter }}"
+    >
+      <block wx:if="{{ !item.loading }}">
+        {{ item.name }}
+        <text wx:if="{{ item.subname }}" class="van-action-sheet__subname" >{{ item.subname }}</text>
+      </block>
+      <van-loading wx:else custom-class="van-action-sheet__loading" size="20px" />
+    </button>
+  </view>
+  <slot />
+  <view
+    wx:if="{{ cancelText }}"
+    class="van-action-sheet__cancel"
+    hover-class="van-action-sheet__cancel--hover"
+    hover-stay-time="70"
+    bind:tap="onCancel"
+  >
+    {{ cancelText }}
+  </view>
+</van-popup>

ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/action-sheet/index.wxss


+ 1 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.d.ts

@@ -0,0 +1 @@
+export {};

+ 210 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.js

@@ -0,0 +1,210 @@
+import { VantComponent } from '../common/component';
+import { pickerProps } from '../picker/shared';
+const COLUMNSPLACEHOLDERCODE = '000000';
+VantComponent({
+    classes: ['active-class', 'toolbar-class', 'column-class'],
+    props: Object.assign(Object.assign({}, pickerProps), { value: {
+            type: String,
+            observer(value) {
+                this.code = value;
+                this.setValues();
+            },
+        }, areaList: {
+            type: Object,
+            value: {},
+            observer: 'setValues'
+        }, columnsNum: {
+            type: null,
+            value: 3,
+            observer(value) {
+                this.setData({
+                    displayColumns: this.data.columns.slice(0, +value)
+                });
+            }
+        }, columnsPlaceholder: {
+            type: Array,
+            observer(val) {
+                this.setData({
+                    typeToColumnsPlaceholder: {
+                        province: val[0] || '',
+                        city: val[1] || '',
+                        county: val[2] || '',
+                    }
+                });
+            }
+        } }),
+    data: {
+        columns: [{ values: [] }, { values: [] }, { values: [] }],
+        displayColumns: [{ values: [] }, { values: [] }, { values: [] }],
+        typeToColumnsPlaceholder: {}
+    },
+    mounted() {
+        setTimeout(() => {
+            this.setValues();
+        }, 0);
+    },
+    methods: {
+        getPicker() {
+            if (this.picker == null) {
+                this.picker = this.selectComponent('.van-area__picker');
+            }
+            return this.picker;
+        },
+        onCancel(event) {
+            this.emit('cancel', event.detail);
+        },
+        onConfirm(event) {
+            const { index } = event.detail;
+            let { value } = event.detail;
+            value = this.parseOutputValues(value);
+            this.emit('confirm', { value, index });
+        },
+        emit(type, detail) {
+            detail.values = detail.value;
+            delete detail.value;
+            this.$emit(type, detail);
+        },
+        // parse output columns data
+        parseOutputValues(values) {
+            const { columnsPlaceholder } = this.data;
+            return values.map((value, index) => {
+                // save undefined value
+                if (!value)
+                    return value;
+                value = JSON.parse(JSON.stringify(value));
+                if (!value.code || value.name === columnsPlaceholder[index]) {
+                    value.code = '';
+                    value.name = '';
+                }
+                return value;
+            });
+        },
+        onChange(event) {
+            const { index, picker, value } = event.detail;
+            this.code = value[index].code;
+            this.setValues().then(() => {
+                this.$emit('change', {
+                    picker,
+                    values: this.parseOutputValues(picker.getValues()),
+                    index
+                });
+            });
+        },
+        getConfig(type) {
+            const { areaList } = this.data;
+            return (areaList && areaList[`${type}_list`]) || {};
+        },
+        getList(type, code) {
+            const { typeToColumnsPlaceholder } = this.data;
+            let result = [];
+            if (type !== 'province' && !code) {
+                return result;
+            }
+            const list = this.getConfig(type);
+            result = Object.keys(list).map(code => ({
+                code,
+                name: list[code]
+            }));
+            if (code) {
+                // oversea code
+                if (code[0] === '9' && type === 'city') {
+                    code = '9';
+                }
+                result = result.filter(item => item.code.indexOf(code) === 0);
+            }
+            if (typeToColumnsPlaceholder[type] && result.length) {
+                // set columns placeholder
+                const codeFill = type === 'province' ? '' : type === 'city' ? COLUMNSPLACEHOLDERCODE.slice(2, 4) : COLUMNSPLACEHOLDERCODE.slice(4, 6);
+                result.unshift({
+                    code: `${code}${codeFill}`,
+                    name: typeToColumnsPlaceholder[type]
+                });
+            }
+            return result;
+        },
+        getIndex(type, code) {
+            let compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6;
+            const list = this.getList(type, code.slice(0, compareNum - 2));
+            // oversea code
+            if (code[0] === '9' && type === 'province') {
+                compareNum = 1;
+            }
+            code = code.slice(0, compareNum);
+            for (let i = 0; i < list.length; i++) {
+                if (list[i].code.slice(0, compareNum) === code) {
+                    return i;
+                }
+            }
+            return 0;
+        },
+        setValues() {
+            const county = this.getConfig('county');
+            let { code } = this;
+            if (!code) {
+                if (this.data.columnsPlaceholder.length) {
+                    code = COLUMNSPLACEHOLDERCODE;
+                }
+                else if (Object.keys(county)[0]) {
+                    code = Object.keys(county)[0];
+                }
+                else {
+                    code = '';
+                }
+            }
+            const province = this.getList('province');
+            const city = this.getList('city', code.slice(0, 2));
+            const picker = this.getPicker();
+            if (!picker) {
+                return;
+            }
+            const stack = [];
+            stack.push(picker.setColumnValues(0, province, false));
+            stack.push(picker.setColumnValues(1, city, false));
+            if (city.length && code.slice(2, 4) === '00') {
+                [{ code }] = city;
+            }
+            stack.push(picker.setColumnValues(2, this.getList('county', code.slice(0, 4)), false));
+            return Promise.all(stack)
+                .catch(() => { })
+                .then(() => picker.setIndexes([
+                this.getIndex('province', code),
+                this.getIndex('city', code),
+                this.getIndex('county', code)
+            ]))
+                .catch(() => { });
+        },
+        getValues() {
+            const picker = this.getPicker();
+            return picker ? picker.getValues().filter(value => !!value) : [];
+        },
+        getDetail() {
+            const values = this.getValues();
+            const area = {
+                code: '',
+                country: '',
+                province: '',
+                city: '',
+                county: ''
+            };
+            if (!values.length) {
+                return area;
+            }
+            const names = values.map((item) => item.name);
+            area.code = values[values.length - 1].code;
+            if (area.code[0] === '9') {
+                area.country = names[1] || '';
+                area.province = names[2] || '';
+            }
+            else {
+                area.province = names[0] || '';
+                area.city = names[1] || '';
+                area.county = names[2] || '';
+            }
+            return area;
+        },
+        reset(code) {
+            this.code = code || '';
+            return this.setValues();
+        }
+    }
+});

+ 6 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.json

@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "van-picker": "../picker/index"
+  }
+}

+ 18 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.wxml

@@ -0,0 +1,18 @@
+<van-picker
+  class="van-area__picker"
+  active-class="active-class"
+  toolbar-class="toolbar-class"
+  column-class="column-class"
+  show-toolbar
+  value-key="name"
+  title="{{ title }}"
+  loading="{{ loading }}"
+  columns="{{ displayColumns }}"
+  item-height="{{ itemHeight }}"
+  visible-item-count="{{ visibleItemCount }}"
+  cancel-button-text="{{ cancelButtonText }}"
+  confirm-button-text="{{ confirmButtonText }}"
+  bind:change="onChange"
+  bind:confirm="onConfirm"
+  bind:cancel="onCancel"
+/>

+ 1 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/area/index.wxss

@@ -0,0 +1 @@
+@import '../common/index.wxss';

+ 1 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.d.ts

@@ -0,0 +1 @@
+export {};

+ 69 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.js

@@ -0,0 +1,69 @@
+import { VantComponent } from '../common/component';
+import { button } from '../mixins/button';
+import { openType } from '../mixins/open-type';
+VantComponent({
+    mixins: [button, openType],
+    classes: ['hover-class', 'loading-class'],
+    data: {
+        baseStyle: ''
+    },
+    props: {
+        icon: String,
+        plain: Boolean,
+        block: Boolean,
+        round: Boolean,
+        square: Boolean,
+        loading: Boolean,
+        hairline: Boolean,
+        disabled: Boolean,
+        loadingText: String,
+        customStyle: String,
+        loadingType: {
+            type: String,
+            value: 'circular'
+        },
+        type: {
+            type: String,
+            value: 'default'
+        },
+        size: {
+            type: String,
+            value: 'normal'
+        },
+        loadingSize: {
+            type: String,
+            value: '20px'
+        },
+        color: {
+            type: String,
+            observer(color) {
+                let style = '';
+                if (color) {
+                    style += `color: ${this.data.plain ? color : 'white'};`;
+                    if (!this.data.plain) {
+                        // Use background instead of backgroundColor to make linear-gradient work
+                        style += `background: ${color};`;
+                    }
+                    // hide border when color is linear-gradient
+                    if (color.indexOf('gradient') !== -1) {
+                        style += 'border: 0;';
+                    }
+                    else {
+                        style += `border-color: ${color};`;
+                    }
+                }
+                if (style !== this.data.baseStyle) {
+                    this.setData({ baseStyle: style });
+                }
+            }
+        }
+    },
+    methods: {
+        onClick() {
+            if (!this.data.loading) {
+                this.$emit('click');
+            }
+        },
+        noop() { }
+    }
+});

+ 7 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.json

@@ -0,0 +1,7 @@
+{
+  "component": true,
+  "usingComponents": {
+    "van-icon": "../icon/index",
+    "van-loading": "../loading/index"
+  }
+}

+ 68 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.wxml

@@ -0,0 +1,68 @@
+<wxs src="../wxs/utils.wxs" module="utils" />
+
+<button
+  id="{{ id }}"
+  class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]) }} {{ hairline ? 'van-hairline--surround' : '' }}"
+  hover-class="van-button--active hover-class"
+  lang="{{ lang }}"
+  style="{{ baseStyle }} {{ customStyle }}"
+  open-type="{{ openType }}"
+  business-id="{{ businessId }}"
+  session-from="{{ sessionFrom }}"
+  send-message-title="{{ sendMessageTitle }}"
+  send-message-path="{{ sendMessagePath }}"
+  send-message-img="{{ sendMessageImg }}"
+  show-message-card="{{ showMessageCard }}"
+  app-parameter="{{ appParameter }}"
+  aria-label="{{ ariaLabel }}"
+  bindtap="{{ !disabled ? 'onClick' : 'noop' }}"
+  bindgetuserinfo="{{ !disabled ? 'bindGetUserInfo' : 'noop' }}"
+  bindcontact="{{ !disabled ? 'bindContact' : 'noop' }}"
+  bindgetphonenumber="{{ !disabled ? 'bindGetPhoneNumber' : 'noop' }}"
+  binderror="{{ !disabled ? 'bindError' : 'noop' }}"
+  bindlaunchapp="{{ !disabled ? 'bindLaunchApp' : 'noop' }}"
+  bindopensetting="{{ !disabled ? 'bindOpenSetting' : 'noop' }}"
+>
+  <block wx:if="{{ loading }}">
+    <van-loading
+      custom-class="loading-class"
+      size="{{ loadingSize }}"
+      type="{{ loadingType }}"
+      color="{{ loadingColor(type,color,plain) }}"
+    />
+    <view
+      wx:if="{{ loadingText }}"
+      class="van-button__loading-text"
+    >
+      {{ loadingText }}
+    </view>
+  </block>
+  <block wx:else>
+    <van-icon
+      wx:if="{{ icon }}"
+      size="1.2em"
+      name="{{ icon }}"
+      class="van-button__icon"
+      custom-style="line-height: inherit;"
+    />
+    <view class="van-button__text">
+      <slot />
+    </view>
+  </block>
+</button>
+
+
+<wxs module="loadingColor">
+function get(type, color,plain) {
+  if(plain) {
+    return color ? color: '#c9c9c9';
+  }
+
+  if(type === 'default') {
+    return '#c9c9c9';
+  }
+  return 'white';
+}
+
+module.exports = get;
+</wxs>

ファイルの差分が大きいため隠しています
+ 0 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/button/index.wxss


+ 57 - 0
unpackage/dist/dev/mp-weixin/wxcomponents/dist/calendar/calendar.wxml

@@ -0,0 +1,57 @@
+<wxs src="./index.wxs" module="computed"></wxs>
+
+<template name="calendar">
+  <view class="van-calendar">
+    <header
+      title="{{ title }}"
+      showTitle="{{ showTitle }}"
+      subtitle="{{ subtitle }}"
+      showSubtitle="{{ showSubtitle }}"
+    >
+      <slot name="title" slot="title"></slot>
+    </header>
+
+    <scroll-view class="van-calendar__body" scroll-y scroll-into-view="{{ scrollIntoView }}">
+      <month
+        wx:for="{{ computed.getMonths(minDate, maxDate) }}"
+        wx:key="index"
+        id="month{{ index }}"
+        class="month"
+        data-date="{{ item }}"
+        date="{{ item }}"
+        type="{{ type }}"
+        color="{{ color }}"
+        minDate="{{ minDate }}"
+        maxDate="{{ maxDate }}"
+        showMark="{{ showMark }}"
+        formatter="{{ formatter }}"
+        rowHeight="{{ rowHeight }}"
+        currentDate="{{ currentDate }}"
+        showSubtitle="{{ showSubtitle }}"
+        allowSameDay="{{ allowSameDay }}"
+        showMonthTitle="{{ index !== 0 || !showSubtitle }}"
+        bind:click="onClickDay"
+      />
+    </scroll-view>
+
+    <view class="van-calendar__footer {{ safeAreaInsetBottom ? 'van-calendar__footer--safe-area-inset-bottom' : '' }}">
+      <slot name="footer"></slot>
+    </view>
+
+    <view class="van-calendar__footer {{ safeAreaInsetBottom ? 'van-calendar__footer--safe-area-inset-bottom' : '' }}">
+      <van-button
+        wx:if="{{ showConfirm }}"
+        round
+        block
+        type="danger"
+        color="{{ color }}"
+        custom-class="van-calendar__confirm"
+        disabled="{{ computed.getButtonDisabled(type, currentDate) }}"
+        nativeType="text"
+        bind:click="onConfirm"
+      >
+        {{ computed.getButtonDisabled(type, currentDate) ? confirmDisabledText : confirmText }}
+      </van-button>
+    </view>
+  </view>
+</template>

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません