Browse Source

2022-8-17

cmy 2 years ago
parent
commit
d64f41db75
100 changed files with 2009 additions and 1479 deletions
  1. 4 0
      .gitignore
  2. 279 241
      App.vue
  3. 38 0
      api/user.js
  4. 10 12
      manifest.json
  5. 32 2
      pages.json
  6. 4 4
      pages/contract/privacy.vue
  7. 2 2
      pages/index/bazaar.vue
  8. 6 3
      pages/index/cangp.vue
  9. 266 226
      pages/index/index.vue
  10. 4 2
      pages/money/pay.vue
  11. 32 36
      pages/money/withdrawal.vue
  12. 207 165
      pages/product/product.vue
  13. 17 4
      pages/product/search.vue
  14. 131 0
      pages/public/agreement.vue
  15. 211 0
      pages/public/privacy.vue
  16. 136 0
      pages/public/start.vue
  17. 26 0
      pages/set/set.vue
  18. 2 2
      pages/set/userinfo.vue
  19. 52 36
      pages/user/about.vue
  20. 30 34
      pages/user/feedback.vue
  21. 360 0
      pages/user/myvip.vue
  22. 153 117
      pages/user/user.vue
  23. BIN
      static/img/ali.png
  24. BIN
      static/user/user12.png
  25. 1 1
      store/index.js
  26. 1 1
      unpackage/cache/apk/apkurl
  27. 0 0
      unpackage/cache/apk/cmManifestCache.json
  28. 2 2
      unpackage/cache/appleConfig.ini
  29. 1 1
      unpackage/cache/certdata
  30. 2 2
      unpackage/cache/certdataios
  31. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/google-keystore.keystore
  32. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-hdpi.png
  33. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xhdpi.png
  34. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xxhdpi.png
  35. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xxxhdpi.png
  36. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-hdpi.png
  37. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-xhdpi.png
  38. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-xxhdpi.png
  39. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappchooselocation.js
  40. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/__uniapperror.png
  41. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappes6.js
  42. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappopenlocation.js
  43. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniapppicker.js
  44. 0 6
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappquill.js
  45. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappquillimageresize.js
  46. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappscan.js
  47. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappsuccess.png
  48. 0 25
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappview.html
  49. 0 3
      unpackage/cache/wgt/__UNI__6E56E0F/app-config-service.js
  50. 0 1
      unpackage/cache/wgt/__UNI__6E56E0F/app-config.js
  51. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/app-service.js
  52. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/app-view.js
  53. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/manifest.json
  54. 0 551
      unpackage/cache/wgt/__UNI__6E56E0F/static/css/cmy.css
  55. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/error/emptyCart.png
  56. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/error/errorImage.jpg
  57. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/error/missing-face.png
  58. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game02.png
  59. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game03.png
  60. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game04.png
  61. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game05.png
  62. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game06.png
  63. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game07.png
  64. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game08.png
  65. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game1.gif
  66. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game10.png
  67. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game11.png
  68. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game12.png
  69. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game13.png
  70. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game14.png
  71. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game2.gif
  72. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game3.gif
  73. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb01.png
  74. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb02.png
  75. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb03.png
  76. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb04.png
  77. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb05.png
  78. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/1.png
  79. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/add.png
  80. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/appleIcon.png
  81. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/bdsj.png
  82. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c3.png
  83. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c5.png
  84. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c6.png
  85. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c7.png
  86. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c8.png
  87. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/dsjh.png
  88. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/fanhui.png
  89. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/goto.png
  90. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i1.png
  91. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i2.png
  92. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i3.png
  93. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i4.png
  94. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i5.png
  95. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i6.png
  96. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i7.png
  97. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i8.png
  98. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/img01.png
  99. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/img02.png
  100. BIN
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/img03.png

+ 4 - 0
.gitignore

@@ -0,0 +1,4 @@
+.DS_Store
+/dist
+unpackage
+.hbuilderx

+ 279 - 241
App.vue

@@ -1,264 +1,302 @@
 <script>
-/**
- * vuex管理登陆状态,具体可以参考官方登陆模板示例
- */
-import { mapMutations } from 'vuex';
-// #ifdef H5
-import { weixindata, setRouter } from './utils/wxAuthorized';
-// #endif
-// #ifdef APP-PLUS
-import { getUpApp } from './utils/upApp.js';
-// #endif
-export default {
-	data() {
-		return {
-			/* 保存微信信息 */
-			appData: {}
-		};
-	},
-	methods: {
-		...mapMutations('user', ['setUserInfo', 'login', 'hasLogin'])
-	},
-	onLaunch: function(urlObj) {
-		let obj = this;
-		// 加载缓存中的用户信息
-		let userInfo = uni.getStorageSync('userInfo') || '';
-		// 判断是否拥有用户信息
-		if (userInfo.uid) {
-			//更新登陆状态
-			uni.getStorage({
-				key: 'userInfo',
-				success: res => {
-					obj.setUserInfo(res.data);
-					obj.login(res.data);
-				}
-			});
+	/**
+	 * vuex管理登陆状态,具体可以参考官方登陆模板示例
+	 */
+	import {
+		mapMutations
+	} from 'vuex';
+	// #ifdef H5
+	import {
+		weixindata,
+		setRouter
+	} from './utils/wxAuthorized';
+	// #endif
+	// #ifdef APP-PLUS
+	import {
+		getUpApp
+	} from './utils/upApp.js';
+	// #endif
+	export default {
+		data() {
+			return {
+				/* 保存微信信息 */
+				appData: {}
+			};
+		},
+		methods: {
+			...mapMutations('user', ['setUserInfo', 'login', 'hasLogin'])
+		},
+		onLaunch: function(urlObj) {
+			let obj = this;
+			// 加载缓存中的用户信息
+			let userInfo = uni.getStorageSync('userInfo') || '';
+			// 判断是否拥有用户信息
+			if (userInfo.uid) {
+				obj.login();
+				//更新登陆状态
+				obj.setUserInfo(userInfo);
+			}
+			// #ifdef H5
+			// 保存路由对象
+			setRouter(this.$router);
+			//判断是否已经缓存浏览器
+			let bool = uni.getStorageSync('weichatBrowser') || '';
+			if (bool === '') {
+				//判断是否为微信浏览
+				bool = navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger';
+				// 保存当前是否为微信内核浏览器
+				uni.setStorageSync('weichatBrowser', bool);
+			}
+			if (bool) {
+				// 加载微信信息
+				weixindata();
+			}
+			// #endif
+			let agree = uni.getStorageSync('agree') || false;
+			//#ifdef APP-PLUS
+			// 判断是否已经同意协议
+			if (!agree) {
+				uni.redirectTo({
+					url: '/pages/public/start'
+				});
+			}
+			//#endif
+			// #ifdef APP-PLUS
+			// 判断是否升级
+			getUpApp();
+			// 获取当前运行系统
+			let system = uni.getStorageSync('platform') || '';
+			if (!system) {
+				uni.setStorage({
+					key: 'platform',
+					data: uni.getSystemInfoSync().platform
+				});
+			}
+			// #endif
+		},
+		onShow: function() {
+			// 加载拦截
+			// console.log('App Show');
+		},
+		onHide: function() {
+			// console.log('App Hide');
 		}
-		// #ifdef H5
-		// 保存路由对象
-		setRouter(this.$router);
-		//判断是否已经缓存浏览器
-		let bool = uni.getStorageSync('weichatBrowser') || '';
-		if (bool === '') {
-			//判断是否为微信浏览
-			bool = navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger';
-			// 保存当前是否为微信内核浏览器
-			uni.setStorageSync('weichatBrowser', bool);
-		}
-		if (bool) {
-			// 加载微信信息
-			weixindata();
-		}
-		// #endif
-		// #ifdef APP-PLUS
-		// 判断是否升级
-		// getUpApp();
-		// 获取当前运行系统
-		let system = uni.getStorageSync('platform') || '';
-		if (!system) {
-			uni.setStorage({
-				key: 'platform',
-				data: uni.getSystemInfoSync().platform
-			});
-		}
-		// #endif
-	},
-	onShow: function() {
-		// 加载拦截
-		// console.log('App Show');
-	},
-	onHide: function() {
-		// console.log('App Hide');
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-/*全局公共样式和字体图标*/
-@import '/static/css/cmy.css';
-@import "uview-ui/index.scss";
-view,
-scroll-view,
-swiper,
-swiper-item,
-cover-view,
-cover-image,
-icon,
-text,
-rich-text,
-progress,
-button,
-checkbox,
-form,
-input,
-label,
-radio,
-slider,
-switch,
-textarea,
-navigator,
-audio,
-camera,
-image,
-video {
-	box-sizing: border-box;
-}
-/* 骨架屏替代方案 */
-.Skeleton {
-	background: #f3f3f3;
-	padding: 20rpx 0;
-	border-radius: 8rpx;
-}
-
-/* 图片载入替代方案 */
-.image-wrapper {
-	font-size: 0;
-	background: #f3f3f3;
-	border-radius: 4px;
-	image {
-		width: 100%;
-		height: 100%;
-		transition: 0.6s;
-		opacity: 0;
-		&.loaded {
-			opacity: 1;
+	/*全局公共样式和字体图标*/
+	@import '/static/css/cmy.css';
+	@import "uview-ui/index.scss";
+
+	view,
+	scroll-view,
+	swiper,
+	swiper-item,
+	cover-view,
+	cover-image,
+	icon,
+	text,
+	rich-text,
+	progress,
+	button,
+	checkbox,
+	form,
+	input,
+	label,
+	radio,
+	slider,
+	switch,
+	textarea,
+	navigator,
+	audio,
+	camera,
+	image,
+	video {
+		box-sizing: border-box;
+	}
+
+	/* 骨架屏替代方案 */
+	.Skeleton {
+		background: #f3f3f3;
+		padding: 20rpx 0;
+		border-radius: 8rpx;
+	}
+
+	/* 图片载入替代方案 */
+	.image-wrapper {
+		font-size: 0;
+		background: #f3f3f3;
+		border-radius: 4px;
+
+		image {
+			width: 100%;
+			height: 100%;
+			transition: 0.6s;
+			opacity: 0;
+
+			&.loaded {
+				opacity: 1;
+			}
 		}
 	}
-}
-
-// 设置富文本中图片最大宽度
-uni-rich-text img {
-	max-width: 100% !important;
-}
-/*边框*/
-.b-b:after,
-.b-t:after {
-	position: absolute;
-	z-index: 3;
-	left: 0;
-	right: 0;
-	height: 0;
-	content: '';
-	transform: scaleY(0.5);
-	border-bottom: 1px solid $border-color-base;
-}
-
-.b-b:after {
-	bottom: 0;
-}
-
-.b-t:after {
-	top: 0;
-}
-
-/* button样式改写 */
-uni-button,
-button {
-	height: 80rpx;
-	line-height: 80rpx;
-	font-size: $font-lg + 2rpx;
-	font-weight: normal;
-
-	&.no-border:before,
-	&.no-border:after {
-		border: 0;
+
+	// 设置富文本中图片最大宽度
+	uni-rich-text img {
+		max-width: 100% !important;
 	}
-}
-
-uni-button[type='default'],
-button[type='default'] {
-	color: $font-color-dark;
-}
-
-/* input 样式 */
-.input-placeholder {
-	color: #999999;
-}
-
-.placeholder {
-	color: #999999;
-}
-// 边距样式
-@for $i from 1 to 4 {
-	.margin-l-#{$i * 10} {
-		margin-left: $i * 10rpx !important;
+
+	/*边框*/
+	.b-b:after,
+	.b-t:after {
+		position: absolute;
+		z-index: 3;
+		left: 0;
+		right: 0;
+		height: 0;
+		content: '';
+		transform: scaleY(0.5);
+		border-bottom: 1px solid $border-color-base;
 	}
-	.margin-r-#{$i * 10} {
-		margin-right: $i * 10rpx !important;
+
+	.b-b:after {
+		bottom: 0;
 	}
-	.margin-t-#{$i * 10} {
-		margin-top: $i * 10rpx !important;
+
+	.b-t:after {
+		top: 0;
 	}
-	.margin-b-#{$i * 10} {
-		margin-bottom: $i * 10rpx !important;
+
+	/* button样式改写 */
+	uni-button,
+	button {
+		height: 80rpx;
+		line-height: 80rpx;
+		font-size: $font-lg + 2rpx;
+		font-weight: normal;
+
+		&.no-border:before,
+		&.no-border:after {
+			border: 0;
+		}
 	}
-	.margin-#{$i * 10} {
-		margin: $i * 10rpx !important;
+
+	uni-button[type='default'],
+	button[type='default'] {
+		color: $font-color-dark;
 	}
-	.margin-v-#{$i * 10} {
-		margin-top: $i * 10rpx !important;
-		margin-bottom: $i * 10rpx !important;
+
+	/* input 样式 */
+	.input-placeholder {
+		color: #999999;
 	}
-	.margin-c-#{$i * 10} {
-		margin-left: $i * 10rpx !important;
-		margin-right: $i * 10rpx !important;
+
+	.placeholder {
+		color: #999999;
 	}
-	.padding-l-#{$i * 10} {
-		padding-left: $i * 10rpx !important;
+
+	// 边距样式
+	@for $i from 1 to 4 {
+		.margin-l-#{$i * 10} {
+			margin-left: $i * 10rpx !important;
+		}
+
+		.margin-r-#{$i * 10} {
+			margin-right: $i * 10rpx !important;
+		}
+
+		.margin-t-#{$i * 10} {
+			margin-top: $i * 10rpx !important;
+		}
+
+		.margin-b-#{$i * 10} {
+			margin-bottom: $i * 10rpx !important;
+		}
+
+		.margin-#{$i * 10} {
+			margin: $i * 10rpx !important;
+		}
+
+		.margin-v-#{$i * 10} {
+			margin-top: $i * 10rpx !important;
+			margin-bottom: $i * 10rpx !important;
+		}
+
+		.margin-c-#{$i * 10} {
+			margin-left: $i * 10rpx !important;
+			margin-right: $i * 10rpx !important;
+		}
+
+		.padding-l-#{$i * 10} {
+			padding-left: $i * 10rpx !important;
+		}
+
+		.padding-r-#{$i * 10} {
+			padding-right: $i * 10rpx !important;
+		}
+
+		.padding-t-#{$i * 10} {
+			padding-top: $i * 10rpx !important;
+		}
+
+		.padding-b-#{$i * 10} {
+			padding-bottom: $i * 10rpx !important;
+		}
+
+		.padding-#{$i * 10} {
+			padding: $i * 10rpx !important;
+		}
+
+		.padding-v-#{$i * 10} {
+			padding-top: $i * 10rpx !important;
+			padding-bottom: $i * 10rpx !important;
+		}
+
+		.padding-c-#{$i * 10} {
+			padding-left: $i * 10rpx !important;
+			padding-right: $i * 10rpx !important;
+		}
 	}
-	.padding-r-#{$i * 10} {
-		padding-right: $i * 10rpx !important;
+
+	// 字体大小
+	.font-size-sm {
+		font-size: $font-sm;
 	}
-	.padding-t-#{$i * 10} {
-		padding-top: $i * 10rpx !important;
+
+	.font-size-base {
+		font-size: $font-base;
 	}
-	.padding-b-#{$i * 10} {
-		padding-bottom: $i * 10rpx !important;
+
+	.font-size-lg {
+		font-size: $font-lg;
 	}
-	.padding-#{$i * 10} {
-		padding: $i * 10rpx !important;
+
+	// 字体颜色
+	.font-color-yellow {
+		color: $color-yellow;
 	}
-	.padding-v-#{$i * 10} {
-		padding-top: $i * 10rpx !important;
-		padding-bottom: $i * 10rpx !important;
+
+	.font-color-gray {
+		color: $color-gray;
 	}
-	.padding-c-#{$i * 10} {
-		padding-left: $i * 10rpx !important;
-		padding-right: $i * 10rpx !important;
+
+	.font-color-red {
+		color: $color-red;
+	}
+
+	// 边框颜色
+	.border-color-yellow {
+		border: 1rpx solid $color-yellow;
+	}
+
+	// 修改默认背景颜色
+	uni-page-wrapper {
+		background-color: $page-color-base;
+	}
+
+	page {
+		background-color: $page-color-base;
+		// 设置默认字体
+		font-family: PingFang SC, STHeitiSC-Light, Helvetica-Light, arial, sans-serif, Droid Sans Fallback;
 	}
-}
-// 字体大小
-.font-size-sm {
-	font-size: $font-sm;
-}
-.font-size-base {
-	font-size: $font-base;
-}
-.font-size-lg {
-	font-size: $font-lg;
-}
-// 字体颜色
-.font-color-yellow {
-	color: $color-yellow;
-}
-.font-color-gray {
-	color: $color-gray;
-}
-.font-color-red {
-	color: $color-red;
-}
-// 边框颜色
-.border-color-yellow {
-	border: 1rpx solid $color-yellow;
-}
-
-// 修改默认背景颜色
-uni-page-wrapper {
-	background-color: $page-color-base;
-}
-page {
-	background-color: $page-color-base;
-	// 设置默认字体
-	font-family: PingFang SC, STHeitiSC-Light, Helvetica-Light, arial, sans-serif, Droid Sans Fallback;
-}
 </style>

+ 38 - 0
api/user.js

@@ -260,4 +260,42 @@ export function myGdList(data) {
 		data
 	});
 }
+
+//获取vip列表
+export function vipList(data) {
+	return request({
+		url: '/api/vip/index',
+		method: 'get',
+		data
+	});
+}
+//开通分公司
+export function vipCompany(data) {
+	return request({
+		url: '/api/vip/company',
+		method: 'post',
+		data
+	});
+}
+
+//开通分销商
+export function vipPartner(data) {
+	return request({
+		url: '/api/vip/partner',
+		method: 'post',
+		data
+	});
+}
+
+//提交意见
+export function proposal(data) {
+	return request({
+		url: '/api/proposal',
+		method: 'post',
+		data
+	});
+}
+
+
+
 

+ 10 - 12
manifest.json

@@ -1,9 +1,9 @@
 {
     "name" : "艺绘",
-    "appid" : "__UNI__6E56E0F",
+    "appid" : "__UNI__E01ACD1",
     "description" : "",
-    "versionName" : "1.0.0",
-    "versionCode" : 100,
+    "versionName" : "1.0.4",
+    "versionCode" : 104,
     "transformPx" : false,
     "app-plus" : {
         /* 5+App特有相关 */
@@ -57,10 +57,8 @@
                 "oauth" : {},
                 "geolocation" : {},
                 "payment" : {
-                    "weixin" : {
-                        "__platform__" : [ "ios", "android" ],
-                        "appid" : "wxc45bba547e921b9f",
-                        "UniversalLinks" : "https://static-f2ce8da9-3823-402a-bd21-675f08b3b09b.bspapp.com/uni-universallinks/__UNI__CDE33A2/"
+                    "alipay" : {
+                        "__platform__" : [ "ios", "android" ]
                     }
                 },
                 "push" : {},
@@ -104,9 +102,9 @@
             "splashscreen" : {
                 "androidStyle" : "default",
                 "android" : {
-                    "hdpi" : "C:/Users/Administrator/Desktop/数字藏品/480.png",
-                    "xhdpi" : "C:/Users/Administrator/Desktop/数字藏品/720.png",
-                    "xxhdpi" : "C:/Users/Administrator/Desktop/数字藏品/1080.png"
+                    "hdpi" : "unpackage/res/bage/480.9.png",
+                    "xhdpi" : "unpackage/res/bage/720.9.png",
+                    "xxhdpi" : "unpackage/res/bage/1080.9.png"
                 },
                 "iosStyle" : "common",
                 "ios" : {
@@ -136,8 +134,8 @@
         "devServer" : {
             "proxy" : {
                 "/api" : {
-                    // "target" : "http://lnpt.frp.liuniu946.com/api",
-                    "target" : "http://bsn.frp.liuniu946.com/api",
+                    "target" : "http://www.zhejianghuiyi.art/api",
+                    // "target" : "http://bsn.frp.liuniu946.com/api",
                     // "changeOrigin": true,
                     "pathRewrite" : {
                         "/api" : "" // rewrite path

+ 32 - 2
pages.json

@@ -42,6 +42,12 @@
 				"navigationBarTitleText": "余额转账"
 			}
 		},
+		{
+			"path": "pages/user/myvip",
+			"style": {
+				"navigationBarTitleText": "加盟"
+			}
+		},
 		{
 			"path": "pages/user/about",
 			"style": {
@@ -59,6 +65,31 @@
 
 			}
 		},
+		{
+			"path": "pages/public/start",
+			"style": {
+				"navigationBarTitleText": "授权页",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/public/agreement",
+			"style": {
+				"navigationBarTitleText": "用户协议",
+				"navigationBarBackgroundColor": "#111111",
+				"navigationBarTextStyle": "white"
+			}
+		},
+		{
+			"path": "pages/public/privacy",
+			"style": {
+				"navigationBarTitleText": "隐私协议",
+				"navigationBarBackgroundColor": "#111111",
+				"navigationBarTextStyle": "white"
+			}
+		},
 		{
 			"path": "pages/public/register",
 			"style": {
@@ -295,7 +326,7 @@
 						"buttons": [{
 							"text": "搜索",
 							"fontSize": "14",
-							"color": "#303133",
+							"color": "#FFFFFF",
 							"background": "rgba(0,0,0,0)",
 							"width": "40px"
 						}]
@@ -758,7 +789,6 @@
 				"navigationBarBackgroundColor": "#111111",
 				"navigationBarTextStyle":"white"
             }
-            
         }
     ],
 	"globalStyle": {

+ 4 - 4
pages/contract/privacy.vue

@@ -53,15 +53,15 @@
 			一、注销账号的后果 您可以通过客服的联系方式联系我们要求注销账户或在我们的产品中直接申请注销账号。
 			敬请您注意并知悉,您提交注销申请后,我们需要15天时间处理您的账户注销。如您在15天内没有再次使用该注销账号登录,我们将在15天后清除您的账号信息,完成注销,如果您在15天内进行了此账号的登录,则视为您主动放弃此次注销操作的申请。当您注销账号后,将(可能)产生包括但不限于如下后果:
 		</view>
-		<view class="content">1.注销账号后,您将无法登录、使用该账号及账号原验证手机或邮箱登录咪兔和合商城与服务,即您将无法再以此账号登录、使用咪兔和合商城与服务。</view>
+		<view class="content">1.注销账号后,您将无法登录、使用该账号及账号原验证手机或邮箱登录艺绘与服务,即您将无法再以此账号登录、使用艺绘与服务。</view>
 		<view class="content">
-			2.注销账号后,您曾通过该账号登录、使用的咪兔和合商城与服务下的所有内容、信息、数据、记录将会被全部删除或匿名化处理(但国家法律法规、规章、规范性文件,政府的政策、命令等另有要求或为履行我们的合规义务的除外),您也无法再检索、访问、获取、继续使用和找回这些信息或数据,包括但不限于:
+			2.注销账号后,您曾通过该账号登录、使用的艺绘与服务下的所有内容、信息、数据、记录将会被全部删除或匿名化处理(但国家法律法规、规章、规范性文件,政府的政策、命令等另有要求或为履行我们的合规义务的除外),您也无法再检索、访问、获取、继续使用和找回这些信息或数据,包括但不限于:
 		</view>
 		<view class="content">(1)该账号下的您自主设置的个人资料(如:头像、昵称等);</view>
 		<view class="content">(2)该账号下您主动提供或在使用过程中授权我们收集的个人信息(如:绑定的手机号、邮箱等);</view>
 		<view class="content">(3)其他与该账号相关的内容、信息、数据、历史记录或服务记录等。</view>
-		<view class="content">3.注销账号后,您在使用咪兔和合商城产品与服务期间产生的账号内资产和虚拟权益将视为自动放弃,无法予以退还或退换,包括但不限于:</view>
-		<view class="content">(1)您在咪兔和合商城产品与服务中的账户等级、会员等级等各类身份权益、积分、金币等;</view>
+		<view class="content">3.注销账号后,您在使用艺绘产品与服务期间产生的账号内资产和虚拟权益将视为自动放弃,无法予以退还或退换,包括但不限于:</view>
+		<view class="content">(1)您在艺绘产品与服务中的账户等级、会员等级等各类身份权益、积分、金币等;</view>
 		<view class="content">(2)其他已产生但未消耗完毕的权益及资产或未来的预期收益。</view>
 		<view class="content">
 			4.账号注销具有不可逆转和不可撤销性,账号一旦注销完成,将无法恢复,您的原账号对应的数字ID将可能分配给其他新注册的用户。如果您在注销后以相同手机号码或相同电子邮箱再次向我们申请账号,此时该账号将默认为新的用户账号。

+ 2 - 2
pages/index/bazaar.vue

@@ -156,7 +156,7 @@
 					page:obj.page,
 					limit:obj.limit
 				}).then(res => {
-					console.log(res, 'res');
+					// console.log(res, 'res');
 					obj.list = res.data.list
 					// obj.carouselList = res.data.banner
 					// console.log(res,'res');
@@ -189,7 +189,7 @@
 			// 點擊搜索框
 			clickSearch() {
 				uni.navigateTo({
-					// url: '/pages/product/search'
+					url: '/pages/product/search'
 				});
 			},
 			swiperChange() {}

+ 6 - 3
pages/index/cangp.vue

@@ -35,7 +35,7 @@
 						黑道研究会 发行
 					</view>
 					<view class="text">
-						发行数量: {{item.sales}}份
+						发行数量: {{item.stock}}份
 					</view>
 				</view>
 			</view>
@@ -133,7 +133,7 @@ export default {
 		loadIndex(){
 			let obj = this
 			loadIndexs().then(res=>{
-				console.log(res,'res');
+				// console.log(res,'res');
 				obj.carouselList = res.data.banner
 				// console.log(res,'res');
 				// obj.list = res.data.info.fastList
@@ -144,7 +144,7 @@ export default {
 			let obj = this
 			getProducts().then(res=>{
 				// obj.carouselList = res.data.banner
-				console.log(res,'res');
+				// console.log(res,'res');
 				obj.list = res.data
 				
 			})
@@ -169,6 +169,9 @@ export default {
 			});
 		},
 		swiperChange(){
+			uni.navigateTo({
+				url: '/pages/product/search'
+			});
 		}
 	
 		

+ 266 - 226
pages/index/index.vue

@@ -9,8 +9,9 @@
 				</view>
 			</view>
 			<swiper class="carousel" autoplay="true" duration="400" interval="5000" @change="swiperChange">
-				<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item" @click="bannerNavToUrl(item)">
-					<image :src="item.pic" />
+				<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item"
+					@click="bannerNavToUrl(item)">
+					<image class="img" :src="item.pic" mode="scaleToFill" />
 				</swiper-item>
 			</swiper>
 		</view>
@@ -24,7 +25,7 @@
 				</view>
 			</view>
 			<view class="box-content" v-for="(item,index) in list" @click="buy(item)">
-				<view class="img" >
+				<view class="img">
 					<image :src="item.image" mode=""></image>
 				</view>
 				<view class="content-title">
@@ -35,7 +36,10 @@
 						黑道研究会 发行
 					</view>
 					<view class="text">
-						发行数量: {{item.sales}}份
+						发行数量: {{item.stock}}份
+					</view>
+					<view class="text">
+						开售时间: {{item.cmy_pay_time}}
 					</view>
 				</view>
 			</view>
@@ -57,8 +61,6 @@
 			</view> -->
 		</view>
 		<view class="btm" style="height: 44px;"></view>
-		
-		
 		<!-- 客服 -->
 		<!-- <uni-popup ref="popupkf" type="center">
 			<view class="popup-box">
@@ -76,7 +78,7 @@
 				</view>
 			</view>
 		</uni-popup> -->
-		
+
 	</view>
 </template>
 
@@ -86,108 +88,132 @@
 		getProducts
 	} from '@/api/product.js';
 	// import {mapState} from 'vuex'
-	import {loadIndexs} from '@/api/index.js'
-import { mapState, mapMutations } from 'vuex';
-// #ifdef H5
-import { weixindata, shareLoad } from '@/utils/wxAuthorized';
-// #endif
-export default {
-	data() {
-		return {
-			isSc:2,
-			text: '',
-			checkid: 0,
-			titleNViewBackground: '',
-			longitude: 0, //经度
-			latitude: 0, //纬度
-			swiperCurrent: 0,
-			swiperLength: 0,
-			carouselList: [], //轮播列表
-			bastList: [], //会员礼包
-			integralList: [], //兑换专区
-			list:[],//卡片信息
-			page: 1,
-			limit: 10,
-			loadType: 'more',
-			text: [],
-			article: []
-		};
-	},
-	computed: {
-		...mapState(['loginInterceptor', 'baseURL']),
-		...mapState('user', ['hasLogin', 'userInfo'])
-	},
-	onLoad: function(option) {
-		
-	},
-	onShow: function() {
-		if(this.hasLogin){
-			this.loadIndex()
-			this.getProduct()
-		}
-	},
-	// onReachBottom() {
-	// 	this.getproducts();
-	// },
-	methods: {
-		...mapMutations(['setLat', 'setLon']),
-		loadIndex(){
-			let obj = this
-			loadIndexs().then(res=>{
-				console.log(res,'res');
-				obj.carouselList = res.data.banner
-				// console.log(res,'res');
-				// obj.list = res.data.info.fastList
-				
-			})
+	import {
+		loadIndexs
+	} from '@/api/index.js'
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	// #ifdef H5
+	import {
+		weixindata,
+		shareLoad
+	} from '@/utils/wxAuthorized';
+	// #endif
+	export default {
+		data() {
+			return {
+				isSc: 2,
+				text: '',
+				checkid: 0,
+				titleNViewBackground: '',
+				longitude: 0, //经度
+				latitude: 0, //纬度
+				swiperCurrent: 0,
+				swiperLength: 0,
+				carouselList: [], //轮播列表
+				bastList: [], //会员礼包
+				integralList: [], //兑换专区
+				list: [], //卡片信息
+				page: 1,
+				limit: 10,
+				loadType: 'more',
+				text: [],
+				article: []
+			};
 		},
-		getProduct(){
-			let obj = this
-			getProducts().then(res=>{
-				// obj.carouselList = res.data.banner
-				console.log(res,'res');
-				obj.list = res.data
-				
-			})
+		computed: {
+			...mapState(['loginInterceptor', 'baseURL']),
+			...mapState('user', ['hasLogin', 'userInfo'])
 		},
-		buy(item){
-			console.log(item,'res');
-			uni.navigateTo({
-				url:'/pages/product/product?id='+item.id+'&isSc='+this.isSc
-			})
-		}
-		,
-		navTo(url){
-			uni.switchTab({
-				url
-			})
+		onLoad: function(option) {
+				this.loadIndex()
+				this.getProduct()
 		},
-		
-		// 點擊搜索框
-		clickSearch() {
-			uni.navigateTo({
-				// url: '/pages/product/search'
-			});
+		onShow: function() {
+			if (this.hasLogin) {
+				this.loadIndex()
+				this.getProduct()
+			}
 		},
-		swiperChange(){
+		// onReachBottom() {
+		// 	this.getproducts();
+		// },
+		methods: {
+			...mapMutations(['setLat', 'setLon']),
+			loadIndex() {
+				let obj = this
+				loadIndexs().then(res => {
+					// console.log(res, 'res');
+					obj.carouselList = res.data.banner
+					// console.log(res,'res');
+					// obj.list = res.data.info.fastList
+
+				})
+			},
+			getProduct() {
+				let obj = this
+				getProducts().then(res => {
+					// obj.carouselList = res.data.banner
+					// console.log(res, 'res');
+					obj.list = res.data.map((e) => {
+						let time = new Date(e.sell_time * 1000);
+						e.cmy_pay_time = time.getFullYear() + '年' + (time.getMonth() + 1) + '月' + time
+							.getDate() + '日' + time.getHours() + '时' + time.getMinutes() + '分' + time
+							.getSeconds() + '秒'
+						return e
+					})
+
+				})
+			},
+			buy(item) {
+				console.log(item, 'res');
+				uni.navigateTo({
+					url: '/pages/product/product?id=' + item.id + '&isSc=' + this.isSc
+				})
+			},
+			navTo(url) {
+				uni.switchTab({
+					url
+				})
+			},
+			// 點擊搜索框
+			clickSearch() {
+				uni.navigateTo({
+					url: '/pages/product/search'
+				});
+			},
+			swiperChange() {}
+
+
+
 		}
-	
-		
-		
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page{
-	width: 750rpx;
-	height: 100%;
-	background: #111111;
-}
+	page {
+		width: 750rpx;
+		height: 100%;
+		background: #111111;
+	}
+	.carousel {
+		width: 750rpx;
+		height: 375rpx;
+		.carousel-item {
+			height:100%;
+			width:100%;
+			.img{
+				height:100%;
+				width:100%;
+			}
+		}
+	}
+
 	.top {
 		position: relative;
 		width: 100%;
-		height: 360rpx;
 
 		.top-bg {
 			position: absolute;
@@ -208,7 +234,7 @@ page{
 				width: 698rpx;
 				height: 60rpx;
 				background: #191919;
-				
+
 				// box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
 				border-radius: 30rpx;
 
@@ -227,59 +253,65 @@ page{
 			}
 		}
 	}
-	.box{
-		margin:  30rpx;
-		.box-title{
+
+	.box {
+		padding: 30rpx;
+
+		.box-title {
 			margin-top: 20rpx;
 			display: flex;
 			justify-content: space-between;
-			.left{
+
+			.left {
 				font-size: 38rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
 				color: #FFFFFF;
 				line-height: 120rpx;
 			}
-			.right{
-				
+
+			.right {
+
 				font-size: 24rpx;
 				font-family: PingFang SC;
 				font-weight: 500;
 				color: #FFFFFF;
 				line-height: 120rpx;
 			}
-			
+
 		}
-		.box-content{
-			width: 690rpx;
-			height: 915rpx;
+
+		.box-content {
 			margin: 50rpx 0;
-			.img{
+
+			.img {
 				width: 690rpx;
 				height: 690rpx;
-		
-				image{
+
+				image {
 					width: 100%;
 					height: 100%;
 				}
 			}
-			.content-title{
+
+			.content-title {
 				margin-top: -10rpx;
-				padding: 30rpx 20rpx ;
-				
+				padding: 30rpx 20rpx;
+
 				border-bottom-left-radius: 10rpx;
 				border-bottom-right-radius: 10rpx;
 				border: 2rpx solid #533A6A;
 				// box-shadow: 0px 0px 20rpx 0px rgba(79,59,103,0.0600);
-				
-				.title{
+
+				.title {
 					font-size: 39rpx;
 					font-weight: bold;
 					color: #FFFFFF;
 					margin-bottom: 20rpx;
-					
+
 				}
-				.text{
+
+				.text {
 					margin: 10rpx 0;
 					color: #FFFFFF;
 					font-size: 28rpx;
@@ -287,138 +319,146 @@ page{
 			}
 		}
 	}
-.popup-box {
-	width: 522rpx;
-	height: 605rpx;
-	background-color: #ffffff;
-	border-radius: 20rpx;
-	position: relative;
-
-	.img {
-		position: relative;
-		top: -56rpx;
-		left: 0;
-		width: 522rpx;
-		height: 132rpx;
-		display: flex;
-		justify-content: center;
-
-		image {
-			border-radius: 20rpx 20rpx 0 0;
-			width: 450rpx;
-			height: 132rpx;
-		}
-	}
 
-	.mian {
-		margin-top: -44rpx;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		// padding: 32rpx 32rpx;
+	.popup-box {
+		width: 522rpx;
+		height: 605rpx;
 		background-color: #ffffff;
-		border-radius: 0 0 20rpx 20rpx;
-		text-align: center;
+		border-radius: 20rpx;
+		position: relative;
 
-		.delivery {
-			font-size: 40rpx;
-			color: #333333;
+		.img {
+			position: relative;
+			top: -56rpx;
+			left: 0;
+			width: 522rpx;
+			height: 132rpx;
 			display: flex;
-			align-items: center;
-			flex-direction: column;
-
-			.title {
-			}
+			justify-content: center;
 
 			image {
-				margin-top: 48rpx;
-				width: 172rpx;
-				height: 160rpx;
+				border-radius: 20rpx 20rpx 0 0;
+				width: 450rpx;
+				height: 132rpx;
 			}
 		}
 
-		.nocancel {
-			font-size: 32rpx;
-			color: #333333;
-			margin-top: 14rpx;
-		}
-
-		.comfirm-box {
-			margin-top: 52rpx;
+		.mian {
+			margin-top: -44rpx;
 			display: flex;
-			// margin-bottom: 32rpx;
+			flex-direction: column;
+			align-items: center;
+			// padding: 32rpx 32rpx;
+			background-color: #ffffff;
+			border-radius: 0 0 20rpx 20rpx;
+			text-align: center;
 
-			// justify-content: space-around;
-			.cancel {
+			.delivery {
+				font-size: 40rpx;
+				color: #333333;
 				display: flex;
 				align-items: center;
-				justify-content: center;
-				width: 197rpx;
-				height: 74rpx;
-				border: 1px solid #dcc786;
-				border-radius: 38rpx;
+				flex-direction: column;
+
+				.title {}
+
+				image {
+					margin-top: 48rpx;
+					width: 172rpx;
+					height: 160rpx;
+				}
+			}
 
+			.nocancel {
 				font-size: 32rpx;
-				color: #605128;
+				color: #333333;
+				margin-top: 14rpx;
 			}
 
-			.comfirm {
-				margin-left: 32rpx;
+			.comfirm-box {
+				margin-top: 52rpx;
 				display: flex;
-				align-items: center;
-				justify-content: center;
-				width: 197rpx;
-				height: 74rpx;
-				background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
-				border-radius: 38px;
-				font-size: 32rpx;
-				color: #605128;
+				// margin-bottom: 32rpx;
+
+				// justify-content: space-around;
+				.cancel {
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					width: 197rpx;
+					height: 74rpx;
+					border: 1px solid #dcc786;
+					border-radius: 38rpx;
+
+					font-size: 32rpx;
+					color: #605128;
+				}
+
+				.comfirm {
+					margin-left: 32rpx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					width: 197rpx;
+					height: 74rpx;
+					background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
+					border-radius: 38px;
+					font-size: 32rpx;
+					color: #605128;
+				}
 			}
 		}
 	}
-}
-.tongz {
-	width: 690rpx;
-	height: 70rpx;
-	margin: 32rpx auto 0;
-	padding: 18rpx 30rpx 18rpx 24rpx;
-	align-items: center;
-	position: relative;
-	.tongz-bg {
-		position: absolute;
-		top: 0;
-		right: 0;
-		left: 0;
+
+	.tongz {
 		width: 690rpx;
 		height: 70rpx;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-	.tongz-left {
-		width: 640rpx;
-		.image-left {
-			width: 28rpx;
-			height: 34rpx;
+		margin: 32rpx auto 0;
+		padding: 18rpx 30rpx 18rpx 24rpx;
+		align-items: center;
+		position: relative;
+
+		.tongz-bg {
+			position: absolute;
+			top: 0;
+			right: 0;
+			left: 0;
+			width: 690rpx;
+			height: 70rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
 		}
-		.tongz-font {
-			margin-left: 22rpx;
-			font-size: 28rpx;
-			font-family: Source Han Sans CN;
-			font-weight: 400;
-			color: #0f253a;
+
+		.tongz-left {
+			width: 640rpx;
+
+			.image-left {
+				width: 28rpx;
+				height: 34rpx;
+			}
+
+			.tongz-font {
+				margin-left: 22rpx;
+				font-size: 28rpx;
+				font-family: Source Han Sans CN;
+				font-weight: 400;
+				color: #0f253a;
+			}
 		}
-	}
-	.tongz-right {
-		position: relative;
-		z-index: 11;
-		width: 12rpx;
-		height: 26rpx;
-		image {
-			width: 100%;
-			height: 100%;
+
+		.tongz-right {
+			position: relative;
+			z-index: 11;
+			width: 12rpx;
+			height: 26rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
 		}
 	}
-}
 </style>

+ 4 - 2
pages/money/pay.vue

@@ -6,6 +6,7 @@
 		</view>
 		<view class="pay-type-list">
 			<!-- v-if="ispg == 'android'" -->
+			<!-- #ifdef APP-PLUS -->
 			<view class="type-item b-b" @click="changePayType(1)">
 				<text class="icon iconfont iconweixin"></text>
 				<view class="con">
@@ -14,11 +15,12 @@
 				</view>
 				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 1"></radio></label>
 			</view>
-			<!-- <view class="type-item b-b" @click="changePayType(2)">
+			<view class="type-item b-b" @click="changePayType(2)">
 				<text class="icon iconfont iconzhifubao"></text>
 				<view class="con"><text class="tit">支付宝支付</text></view>
 				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 2"></radio></label>
-			</view> -->
+			</view>
+			<!-- #endif -->
 			<view class="type-item" @click="changePayType(3)">
 				<text class="icon iconfont iconyue"></text>
 				<view class="con">

+ 32 - 36
pages/money/withdrawal.vue

@@ -83,7 +83,7 @@
 		<view class="row b-b" v-if="type == 'alipay'">
 			<text class="tit">手机号</text>
 			<input class="input" v-model="alipay_phone" type="number" placeholder="请输入手机号"
-			placeholder-class="placeholder"/>
+				placeholder-class="placeholder" />
 		</view>
 		<view class="row b-b" v-if="type == 'bank'">
 			<text class="tit">银行卡号</text>
@@ -150,7 +150,7 @@
 				bankData: {},
 				alipay_code: '',
 				alipay_name: '',
-				alipay_phone:'',
+				alipay_phone: '',
 				bank_code: '',
 				bank_people: '',
 				bank_name: '',
@@ -183,24 +183,19 @@
 			// 加载余额信息
 			async loadData() {
 				let obj = this
-				aliInfo().then(e=>{
-					console.log(e,'eeee');
-					obj.alipay_code=e.data.zfb.payment
-					obj.alipay_name=e.data.zfb.name
-					obj.alipay_phone=e.data.zfb.phone
+				aliInfo().then(e => {
+					console.log(e, 'eeee');
+					obj.alipay_code = e.data.zfb.payment
+					obj.alipay_name = e.data.zfb.name
+					obj.alipay_phone = e.data.zfb.phone
 				});
 				getUserInfo({})
 					.then(({
 						data
 					}) => {
-						console.log(data,'data')
+						console.log(data, 'data')
 						this.setUserInfo(data);
-						if (obj.from == 'purple') {
-							obj.money = data.purple_integral
-						}
-						if (obj.from == 'shop') {
-							obj.money = data.business_integral
-						}
+						obj.money = data.brokerage_price
 						obj.load = false
 					})
 					.catch(e => {
@@ -222,11 +217,11 @@
 				if (this.load) {
 					return
 				}
-				let zfbData= {
-					phone:this.alipay_phone,
-					type:2,
-					payment:this.alipay_code,
-					name:this.alipay_name
+				let zfbData = {
+					phone: this.alipay_phone,
+					type: 2,
+					payment: this.alipay_code,
+					name: this.alipay_name
 				}
 				let data = {
 					extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
@@ -255,7 +250,7 @@
 					console.log('alipay');
 					data.name = this.alipay_name;
 					data.alipay_code = this.alipay_code;
-					zfbData.phone=this.alipay_phone;
+					zfbData.phone = this.alipay_phone;
 				}
 				if (this.type == 'bank') {
 					data.name = this.bank_people;
@@ -265,7 +260,7 @@
 				this.load = true
 				getMoneyType(zfbData)
 					.then(e => {
-						console.log(e,"eeeeee");
+						console.log(e, "eeeeee");
 						// uni.showToast({
 						// 	title: '修改成功',
 						// 	duration: 2000,
@@ -277,14 +272,14 @@
 						// 	})
 						// },1500)
 						this.$api.prePage().dataUp()
-						
+
 					})
 					.catch(e => {
 						console.log(e);
 					});
 				extractCash(data)
 					.then(e => {
-						console.log(e,'eeeeee');
+						console.log(e, 'eeeeee');
 						this.loadData()
 						uni.showToast({
 							title: '提交成功',
@@ -314,7 +309,7 @@
 	}
 
 	.flex {
-		background-color:#111111;
+		background-color: #111111;
 		text-align: center;
 		margin: 0 30rpx;
 		border-radius: $border-radius-sm;
@@ -323,7 +318,8 @@
 			font-size: $font-lg;
 			width: 50%;
 		}
-		.butt{
+
+		.butt {
 			font-size: 26rpx;
 			font-weight: normal;
 			color: #A581FF;
@@ -339,25 +335,25 @@
 		.icon {
 			background-size: 100%;
 			font-size: 42rpx;
-			color:#fff;
+			color: #fff;
 			font-weight: bold;
 			background-repeat: no-repeat;
 			background-position: center;
 		}
 
 		.text {
-			color:#fff;
+			color: #fff;
 		}
 	}
 
 	.row-box {
 		margin-top: 30rpx;
 		padding: 20rpx 30rpx;
-		background:#111111;
+		background: #111111;
 
 		.title {
 			font-size: $font-base + 2rpx;
-			color:#fff;
+			color: #fff;
 		}
 
 		.row {
@@ -365,7 +361,7 @@
 			align-items: center;
 			position: relative;
 			height: 80rpx;
-			background:#111111;
+			background: #111111;
 			color: #fff;
 
 			.tit {
@@ -380,7 +376,7 @@
 				font-size: 30rpx;
 				color: #fff;
 			}
-			
+
 
 			.iconlocation {
 				font-size: 36rpx;
@@ -388,8 +384,8 @@
 			}
 
 			.buttom {
-				
-				color:#A581FF;
+
+				color: #A581FF;
 			}
 		}
 	}
@@ -420,7 +416,7 @@
 		padding-left: 30rpx;
 		margin-top: 30rpx;
 		// background-color: #ffffff;
-		background:#111111;
+		background: #111111;
 
 		.box {
 			display: flex;
@@ -475,8 +471,8 @@
 		position: relative;
 		padding: 0 30upx;
 		height: 110upx;
-		
-		background:#111111;
+
+		background: #111111;
 
 		.tit {
 			flex-shrink: 0;

+ 207 - 165
pages/product/product.vue

@@ -2,10 +2,10 @@
 	<view class="container">
 		<view class="swiper-box">
 			<view class="img" v-if="isSc==2">
-				<image :src="shopDetail.image" mode=""></image>
+				<image :src="shopDetail.image" mode="widthFix"></image>
 			</view>
-			<view class="img" v-else>
-				<image :src="shopDetail.class_info.uri" mode=""></image>
+			<view class="img" v-if="isSc==1">
+				<image :src="shopDetail.class_info.uri" mode="widthFix"></image>
 			</view>
 		</view>
 		<view class="content-box">
@@ -24,6 +24,12 @@
 				<view class="title">
 					已售数量: {{shopDetail.ficti}}份
 				</view>
+				<view class="title">
+					个人限购: {{shopDetail.buy_limit}}
+				</view>
+				<view class="title">
+					开售时间: {{shopDetail.cmy_pay_time}}
+				</view>
 			</view>
 			<view class="content-center" v-else>
 				<view class="title" style="font-size: 38rpx;font-weight: bold;color: #FFFFFF;">
@@ -42,59 +48,6 @@
 				</view>
 			</view>
 		</view>
-		<!-- <view class="rz">
-			<view class="rz-title">
-				认证信息
-			</view>
-			<view class="rz-content">
-				<view class="con-box">
-					<view class="left">
-						合约地址
-					</view>
-					<view class="right">
-						<view class="address">
-							qwoeijwoqjeoiqwjeiqwqjwijeowqjeoqwhiqwjeoqj
-						</view>
-						<view class="copy">
-							<image src="../../static/img/copy.png" mode=""></image>
-						</view>
-					</view>
-				</view>
-				<view class="con-box">
-					<view class="left">
-						TokenID
-					</view>
-					<view class="right">
-						<view class="address">
-							18252757278
-						</view>
-						<view class="copy">
-							<image src="../../static/img/copy.png" mode=""></image>
-						</view>
-					</view>
-				</view>
-				<view class="con-box">
-					<view class="left">
-						认证编号
-					</view>
-					<view class="right">
-						<view class="address">
-							#2501/2500
-						</view>
-					</view>
-				</view>
-				<view class="con-box">
-					<view class="left">
-						认证网络
-					</view>
-					<view class="right">
-						<view class="address">
-							蚂蚁链
-						</view>
-					</view>
-				</view>
-			</view>
-		</view> -->
 		<view class="rz" v-show="isSc==2">
 			<view class="rz-title">
 				作品描述
@@ -116,21 +69,34 @@
 				</view>
 				<view class="pop-radio">
 					<radio-group name="">
-						<label class="pop-radio-box" @click="changePayType(1)">
+						<!-- #ifdef APP-PLUS -->
+						<label class="pop-radio-box" @click="type='ali'">
 							<view class="pop-radio-cont">
-								<image src="../../static/img/weixin.png" style="width: 40rpx;height: 40rpx;" mode="">
+								<image src="../../static/img/ali.png" style="width: 40rpx;height: 40rpx;"
+									mode="scaleToFill">
+								</image>
+								<text>支付宝支付</text>
+							</view>
+							<radio :checked="type=='ali'" style="transform: scale(0.8);" />
+						</label>
+						<label class="pop-radio-box" @click="type='weixin'">
+							<view class="pop-radio-cont">
+								<image src="../../static/img/weixin.png" style="width: 40rpx;height: 40rpx;"
+									mode="scaleToFill">
 								</image>
 								<text>微信支付</text>
 							</view>
-							<radio :value="weixin" :checked="type=='weixin'" style="transform: scale(0.8);" />
+							<radio :checked="type=='weixin'" style="transform: scale(0.8);" />
 						</label>
-						<label class="pop-radio-box" @click="changePayType(2)">
+						<!-- #endif -->
+						<label class="pop-radio-box" @click="type='yue'">
 							<view class="pop-radio-cont">
-								<image src="../../static/img/yue.png" style="width: 40rpx;height: 40rpx;" mode="">
+								<image src="../../static/img/yue.png" style="width: 40rpx;height: 40rpx;"
+									mode="scaleToFill">
 								</image>
-								<text>余额支付</text>
+								<text>余额支付:{{now_money}}</text>
 							</view>
-							<radio :value="yue" :checked="type=='yue'" style="transform: scale(0.8);" />
+							<radio :checked="type=='yue'" style="transform: scale(0.8);" />
 						</label>
 					</radio-group>
 					<view class="pop-bottom">
@@ -143,7 +109,7 @@
 							</view>
 						</view>
 						<!-- "!payLoding ? pay() : ''" -->
-						<view class="buy" @click="pay()" :class="{ clickbg: payLoding }" >
+						<view class="buy" @click="pay()" :class="{ clickbg: payLoding }">
 							立即支付
 						</view>
 					</view>
@@ -182,7 +148,7 @@
 			return {
 				orderId: '', //订单编号
 				moneyAll: '', //购物车订单
-				now_money: '', //余额
+				now_money: 0, //余额
 				payLoding: false, //判断是否支付中
 				orderKey: '', //订单的key值
 				addressData: {}, //地址信息
@@ -190,7 +156,10 @@
 				cartId: '', //购物车id
 				uniqueId: '',
 				type: 'yue', //支付状态
-				shopDetail: '', //商品详情
+				shopDetail: {
+					class_info: {},
+					user: {}
+				}, //商品详情
 				weixin: '',
 				yue: '',
 				shopId: '', //商品id
@@ -204,15 +173,17 @@
 			};
 		},
 		onLoad(options) {
-			console.log(options, 'sss');
+			// 保存当前获取数据的类型
 			this.isSc = options.isSc
+			// 商品id
 			this.shopId = options.id
-			if (this.isSc != 1) {
-				console.log("goods");
+			// 判断是否是首页
+			if (this.isSc == 2) {
 				this.goodsDetail()
-			} else {
+			}
+			// 判断是否是市场
+			if (this.isSc == 1) {
 				this.getNftDetail()
-				console.log("getNftDetail");
 			}
 			// 载入余额
 			balance({}).then(({
@@ -224,25 +195,45 @@
 
 		},
 		computed: {
-			...mapState(['weichatObj', 'baseURL', 'urlFile'])
+			...mapState(['weichatObj', 'baseURL', 'urlFile']),
+			...mapState('user', ['userInfo', 'hasLogin'])
 		},
-		methods: {	
+		methods: {
 			//选择支付方式
-		changePayType(type) {
-			this.payType = type;
-			if (this.payType == 1) {
-				this.type = 'weixin';
-			}
-			if (this.payType == 2) {
-				this.type = 'yue';
-			}
-			
-		},
-			
-			
+			changePayType(type) {
+				this.type = type;
+			},
 			buy() {
-				let obj = this
-
+				// 判断是否是首页
+				if (this.isSc == 2) {
+					this.indexPay()
+				}
+				// 判断是否是市场
+				if (this.isSc == 1) {
+					this.$refs.popupkf.open()
+				}
+			},
+			// 判断是否是首页进入交易
+			indexPay() {
+				let obj = this;
+				let lj = true;
+				// 判断是否需要拦截
+				if (obj.userInfo.is_company == 1 || obj.userInfo.is_partner == 1) {
+					lj = false
+				}
+				if (lj) {
+					let time = new Date();
+					if (time.getTime() < obj.shopDetail.sell_time * 1000) {
+						uni.showModal({
+							title: '错误',
+							content: '未到开售时间,不能购买',
+							showCancel: false,
+							success: res => {},
+							fail: () => {},
+						});
+						return
+					}
+				}
 				let data = {
 					cartNum: 1,
 					uniqueId: obj.uniqueId, //商品标签.默认无
@@ -251,7 +242,6 @@
 					productId: obj.shopId
 				}
 				//生成订单
-			if(obj.isSc!=1){
 				cartAdd(data).then(res => {
 					console.log(res, 'res');
 					//需要获取购物车号
@@ -260,14 +250,8 @@
 				}).catch(e => {
 					console.log(e);
 				});
-			}
-
 				this.$refs.popupkf.open()
-				//点击购买之后自动生成订单
-				//如果订单生成没有付款,提示尚未付款,是否离开,确认离开,在我的订单里可看到尚未支付订单,点击付款,付款成功订单待发货,失败,尚未支付
 			},
-
-
 			getKeys() {
 				let obj = this
 				confirm({
@@ -285,13 +269,7 @@
 			//支付
 			async pay() {
 				let obj = this
-				// console.log('eeeeeeeeeeeeeee');
-				console.log(obj.type == 'yue', obj.now_money, obj.shopDetail.price);
-
-			
-
-				if (obj.type == 'yue' && obj.now_money*1 < obj.shopDetail.price*1) {
-
+				if (obj.type == 'yue' && obj.now_money * 1 < obj.shopDetail.price * 1) {
 					uni.showModal({
 						title: '提示',
 						content: '账户余额不足!',
@@ -304,65 +282,58 @@
 					title: "支付中",
 					mask: true
 				})
-				console.log(obj.type,'tttttyyy');
+				if (!obj.payLoding) {
+					return
+				}
 				if (obj.type == 'weixin') {
-					this.$api.msg('微信暂未开通!')
+					obj.$api.msg('微信暂未开通!')
 					uni.hideLoading()
 					obj.payLoding = true
 					return
 				}
+				// 判断是否是市场进入
 				if (obj.isSc == 1) {
-					nftBuy({
-						pay_type: this.type
-					}, obj.shopId).then(res => {
-						console.log(res, '购入');
-						if(res.status ==200){
-							uni.hideLoading()
-							setTimeout(()=>{
-								this.paySuccessTo()
-							},2000)
-							
-						}else if(res.status==400){
-							obj.payLoding = true
-						}
-					})
+					obj.marketPay();
 				}
-				
-				if (obj.type != 1 && obj.isSc != 1 ) {
-					// 初次生成订单
+				// 判断是否是市场进入
+				if (obj.isSc == 2) {
 					obj.firstCreateOrder();
-				} else {
-					// 已经生成订单未支付
-					if(obj.isSc != 1){
-						obj.orderMoneyPay();
-					}
 				}
 			},
-			//非第一次支付订单
-			orderMoneyPay() {
-				let obj = this;
-				orderPay({
-					uni: obj.orderKey,
-					from: 'app', //来源
-					paytype: obj.type //支付类型  weixin-微信 yue-余额
-
-				}).then(res => {
-					console.log(res, '订单支付信息')
-					if (res.data.status == 'SUCCESS' && obj.type == 'yue') {
-						if (res.status == 200) {
-							obj.paySuccessTo()
-						} else {
-							obj.$api.msg(msg)
-							console.log('失败');
-						}
+			// 市场支付
+			marketPay() {
+				const obj = this;
+				nftBuy({
+					pay_type: obj.type
+				}, obj.shopId).then(res => {
+					console.log(res, '购入');
+					uni.hideLoading()
+					if (obj.type == 'yue') {
+						obj.paySuccessTo();
 					}
-					console.log('失败2');
-					uni.hideLoading();
-					obj.payLoding = false;
-
+					if (obj.type == 'ali') {
+						const url = res.data.result.payConfig;
+						console.log(url, 'url');
+						uni.requestPayment({
+							provider: 'alipay',
+							orderInfo: url,
+							success: res => {
+								obj.paySuccessTo();
+							},
+							fail: e => {
+								console.log(e);
+							},
+							complete: () => {}
+						});
+					}
+				}).catch(() => {
+					obj.payLoding = true
 				})
+
+				return
+
 			},
-			//首次创建订单
+			//普通商品支付
 			firstCreateOrder() {
 				let obj = this;
 				// 获取下单页面数据
@@ -371,7 +342,7 @@
 				let pages = getCurrentPages(); // 获取页面栈
 				let current = pages[pages.length - 1]; // 当前页面
 				console.log(current, 'current');
-
+			
 				let data = {
 					real_name: '', //联系人名称
 					phone: '', //联系人号码
@@ -384,7 +355,7 @@
 					shipping_type: 1 //提货方式 1 快递 2自提
 				}
 				// 生成订单
-				console.log(obj.orderKey,'obj.orderKey');
+				console.log(obj.orderKey, 'obj.orderKey');
 				createOrderkey(data, obj.orderKey)
 					.then(({
 						data,
@@ -423,7 +394,49 @@
 						console.log(e, '123456789');
 					});
 			},
+			//立即支付订单
+			orderMoneyPay() {
+				let obj = this;
+				orderPay({
+					uni: obj.orderKey,
+					from: 'app', //来源
+					paytype: obj.type //支付类型  weixin-微信 yue-余额
 
+				}).then(res => {
+					console.log(res, '订单支付信息')
+					if (res.data.status == 'SUCCESS' && obj.type == 'yue') {
+						if (res.status == 200) {
+							obj.paySuccessTo()
+						} else {
+							obj.$api.msg(msg)
+							console.log('失败');
+						}
+					}
+					if (obj.type == 'ali') {
+						const url = res.data.result.payConfig;
+						console.log(url, 'url');
+						uni.requestPayment({
+							provider: 'alipay',
+							orderInfo: url,
+							success: res => {
+								console.log(res);
+								uni.showToast({
+									title: '支付成功',
+									duration: 2000
+								});
+								obj.paySuccessTo();
+							},
+							fail: e => {
+								console.log(e);
+							},
+							complete: () => {}
+						});
+					}
+					uni.hideLoading();
+					obj.payLoding = true;
+				})
+			},
+			// 获取商品详情
 			goodsDetail() {
 				let obj = this
 				console.log(obj.isSc, 'issc');
@@ -431,9 +444,21 @@
 					obj.uniqueId = res.data.productValue['默认'].unique
 					obj.shopDetail = res.data.storeInfo
 					console.log(obj.shopDetail, obj.uniqueId, 'res1111');
+					if (obj.shopDetail.description != null) {
+						obj.shopDetail.description = obj.shopDetail.description.replace(/<img/g,
+							'<img class="rich-img"').replace(/<p>\s*<img/g, '<p class="pHeight"><img');
+					}
+					if (obj.shopDetail.rule != null) {
+						obj.shopDetail.rule = '<p>' + obj.shopDetail.rule.replace(/\n/g, '</p><p>').trim() + '</p>'
+					}
+					let time = new Date(obj.shopDetail.sell_time * 1000);
+					obj.shopDetail.cmy_pay_time = time.getFullYear() + '年' + (time.getMonth() + 1) + '月' + time
+						.getDate() + '日' + time.getHours() + '时' + time.getMinutes() + '分' + time.getSeconds() +
+						'秒'
 					return
 				})
 			},
+			// 获取交易市场进入时候的数据
 			getNftDetail() {
 				let obj = this
 				nftDetail({}, obj.shopId).then(res => {
@@ -456,27 +481,40 @@
 </script>
 
 <style lang="scss">
-	page,
-	.container {
-		height: 100%;
-		width: 750rpx;
-		margin: 0;
-		padding: 0;
+	.container,
+	page {
 		background: #111111;
+		min-height: 100%;
+	}
+
+	/deep/ .rich-img {
+		width: 100% !important;
+		height: auto;
+	}
+
+	/* #ifdef MP */
+	.rich-img {
+		width: 100% !important;
+		height: auto;
+	}
+
+	// 处理图片间白色间距问题
+	.pHeight {
+		line-height: 0;
 	}
 
+	/* #endif */
+
 	.swiper-box {
 		background: #0C0A36;
 	}
 
 	.img {
-		margin: 50rpx auto;
-		width: 614rpx;
-		height: 660rpx;
+		margin: 0 auto;
+		width: 750rpx;
 
 		image {
 			width: 100%;
-			height: 100%;
 		}
 	}
 
@@ -582,10 +620,13 @@
 			color: #FFFFFF;
 			line-height: 42rpx;
 		}
-		.rich{
+
+		.rich {
 			display: block;
 			justify-content: center;
 			margin: 30rpx;
+			width: 750rpx;
+			overflow: hidden;
 		}
 
 		.rz-ms {
@@ -651,16 +692,17 @@
 	}
 
 	.popup-box {
-
 		width: 750rpx;
-		height: 404rpx;
 		background: #FFFFFF;
 		border-radius: 10rpx 10rpx 0px 0px;
+		padding-bottom: 130rpx;
 
 		.pop-title {
-			line-height: 70rpx;
-			margin: 25rpx;
-			font-size: 28rpx;
+			line-height: 1;
+			padding-top: 30rpx;
+			padding-left: 30rpx;
+			padding-bottom: 10rpx;
+			font-size: 34rpx;
 			font-weight: bold;
 			color: #333333;
 		}

+ 17 - 4
pages/product/search.vue

@@ -4,7 +4,10 @@
 		<!-- #ifdef MP || APP-PLUS -->
 		<view class="vheight"></view>
 		<view class="input-box flex">
-			<view class=" input-content flex">
+			<view class="leftIcon "  @click="back">
+				<image class="icon" src="../../static/icon/fanhui.png" mode="widthFix"></image>
+			</view>
+			<view class="input-content flex">
 				<view class="iconfont iconsearch"></view>
 				<view class="input"><input type="text" v-model="keyword" placeholder="请输入搜索内容" /></view>
 			</view>
@@ -229,8 +232,11 @@ export default {
 			//测试数据没有写id,用title代替
 			let id = item.id;
 			uni.navigateTo({
-				url: '/pages/product/product?id=' + id
+				url: '/pages/product/product?id=' + id+'&isSc=2'
 			});
+		},
+		back(){
+			uni.navigateBack()
 		}
 	}
 };
@@ -245,15 +251,21 @@ page,
 /* #ifdef MP || APP-PLUS */
 .vheight{
 	height: var(--status-bar-height);
-	background-color: #FFFFFF;
+	background-color: #111111;
 }
 .input-box {
 	padding: 25rpx;
-	background-color: #ffffff;
+	background-color: #111111;
 	height: 44px;
 	.iconsearch {
 		font-size: 50rpx;
 	}
+	.leftIcon{
+		padding-right: 10px;
+		.icon{
+			width: 20px;
+		}
+	}
 	.input-content {
 		border-radius: 99rpx;
 		flex-grow: 1;
@@ -270,6 +282,7 @@ page,
 		padding-left: 20rpx;
 		font-size: $font-lg;
 		height: 100%;
+		color: #FFFFFF;
 	}
 }
 /* #endif */

+ 131 - 0
pages/public/agreement.vue

@@ -0,0 +1,131 @@
+<template>
+	<view class="box">
+		<view class="title pt20 pb30">艺绘用户/会员注册协议</view>
+		<view class="content">欢迎您访问并使用艺绘服务平台!本协议是您与艺绘平台所有者就艺绘平台服务的相关事宜所订立的协议。</view>
+		<view class="content">
+			为维护您自身权益,请您仔细阅读本协议,您点击“同意并继续”按钮后,本协议即构成对双方具有约束力的法律文件; 阅读本协议过程中,
+			如您不同意本协议或其中任何条款的约定,您应立即停止注册程序。
+		</view>
+		<view class="title">总则所有权和运营权归浙江青春集健康科技有限公司所有。(浙江青春集健康科技有限公司以下简称:青春集公司)</view>
+		<view class="title">一、用户协议细则</view>
+		<view class="content">1.1 用户在注册之前,应当仔细阅读本协议,并同意遵守本协议后方可成为注册用户。一旦注册成功,则用户与青春集公司间自动形成协议关系,用户应当受本协议的约束。用户在使用特殊的服务或产品时,应当同意接受相关协议后方能使用。</view>
+		<view class="content">1.2 本协议可由青春集公司随时更新,用户应当及时关注并同意本站不承担通知义务。本站的通知、公告、声明或其它类似内容是本协议的一部分。</view>
+		<view class="title">二、服务内容</view>
+		<view class="content">2.1 青春集公司的具体内容由本站根据实际情况提供。</view>
+		<view class="content">2.2 本站仅提供相关的网络服务,除此之外与相关网络服务有关的设备(如个人电脑、手机、及其他与接入互联网或移动网有关的装置)及所需的费用(如为接入互联网而支付的电话费及上网费、为使用移动网而支付的手机费)均应由用户自行负担。</view>
+		<view class="title">三、用户帐号</view>
+		<view class="content">
+			3.1 经本站注册系统完成注册程序并通过身份认证的用户即成为正式用户,可以获得本站规定用户所应享有的一切权限;未经认证仅享有本站规定的部分会员权限。青春集公司有权对会员的权限设计进行变更。
+		</view>
+		<view class="content">3.2 用户只能按照注册要求使用真实姓名,及身份证号注册。用户有义务保证密码和帐号的安全,用户利用该密码和帐号所进行的一切活动引起的任何损失或损害,由用户自行承担全部责任,本站不承担任何责任。如用户发现帐号遭到未授权的使用或发生其他任何安全问题,应立即修改帐号密码并妥善保管,如有必要,请通知本站。因黑客行为或用户的保管疏忽导致帐号非法使用,本站不承担任何责任。</view>
+		<view class="title">四、使用规则</view>
+		<view class="content">
+			4.1遵守中华人民共和国相关法律法规,包括但不限于《中华人民共和国计算机信息系统安全保护条例》、《计算机软件保护条例》、《最高人民法院关于审理涉及计算机网络著作权纠纷案件适用法律若干问题的解释(法释[2004]1号)》、《全国人大常委会关于维护互联网安全的决定》、《互联网电子公告服务管理规定》、《互联网新闻信息服务管理规定》、《互联网著作权行政保护办法》和《信息网络传播权保护条例》等有关计算机互联网规定和知识产权的法律和法规、实施办法。
+		</view>
+		<view class="content">4.2 用户对其自行发表、上传或传送的内容负全部责任,所有用户不得在本站任何页面发布、转载、传送含有下列内容之一的信息,否则本站有权自行处理并不通知用户:</view>
+		<view class="content">
+			①违反宪法确定的基本原则的;
+		</view>
+		<view class="content">②危害国家安全,泄漏国家机密,颠覆国家政权,破坏国家统一的;</view>
+		<view class="content">③损害国家荣誉和利益的;</view>
+		<view class="content">④煽动民族仇恨、民族歧视,破坏民族团结的;</view>
+		<view class="content">⑤破坏国家宗教政策,宣扬邪教和封建迷信的;</view>
+		<view class="content">⑥散布谣言,扰乱社会秩序,破坏社会稳定的;</view>
+		<view class="content">⑦散布淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的;</view>
+		<view class="content">⑧侮辱或者诽谤他人,侵害他人合法权益的;</view>
+		<view class="content">⑨煽动非法集会、结社、游行、示威、聚众扰乱社会秩序的;</view>
+		<view class="content">⑩以非法民间组织名义活动的;</view>
+		<view class="content">⑪含有法律、行政法规禁止的其他内容的。</view>
+		<view class="content">4.3 用户承诺对其发表或者上传于本站的所有信息(即属于《中华人民共和国著作权法》规定的作品,包括但不限于文字、图片、音乐、电影、表演和录音录像制品和电脑程序等)均享有完整的知识产权,或者已经得到相关权利人的合法授权;如用户违反本条规定造成本站被第三人索赔的,用户应全额补偿本站一切费用(包括但不限于各种赔偿费、诉讼代理费及为此支出的其它合理费用);</view>
+		<view class="content">4.4 当第三方认为用户发表或者上传于本站的信息侵犯其权利,并根据《信息网络传播权保护条例》或者相关法律规定向本站发送权利通知书时,用户同意本站可以自行判断决定删除涉嫌侵权信息,除非用户提交书面证据材料排除侵权的可能性,本站将不会自动恢复上述删除的信息</view>
+		<view class="content">
+			①不得为任何非法目的而使用网络服务系统;
+		</view>
+		<view class="content">②遵守所有与网络服务有关的网络协议、规定和程序;</view>
+		<view class="content">③不得利用本站进行任何可能对互联网的正常运转造成不利影响的行;</view>
+		<view class="content">④不得利用本站进行任何不利于本站的行为。</view>
+		<view class="content">4.5 如用户在使用网络服务时违反上述任何规定,本站有权要求用户改正或直接采取一切必要的措施(包括但不限于删除用户张贴的内容、暂停或终止用户使用网络服务的权利)以减轻用户不当行为而造成的影响。</view>
+		<view class="title">五、隐私保护</view>
+		<view class="content">
+			5.1
+			本站不对外公开或向第三方提供单个用户的注册资料及用户在使用网络服务时存储在本站的非公开内容,但下列情况除外:(1)事先获得用户的明确授权;(2)根据有关的法律法规要求;(3)按照相关政府主管部门的要求;(4)为维护社会公众的利益。
+		</view>
+		<view class="content">
+			5.2 本站可能会与第三方合作向用户提供相关的网络服务,在此情况下,如该第三方同意承担与本站同等的保护用户隐私的责任,则本站有权将用户的注册资料等提供给该第三方。
+		</view>
+		<view class="content">
+			5.3 在不透露单个用户隐私资料的前提下,本站有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。
+		</view>
+		<view class="title">六、版权声明</view>
+		<view class="content">
+			6.1 本站的文字、图、音频、视频等版权均归青春集公司享有或与作者共同享有,未经本站许可,不得任意转载。
+		</view>
+		<view class="content">
+			6.2 本站特有的标识、版面设计、编排方式等版权均属青春集公司享有,未经本站许可,不得任意复制或转载。
+		</view>
+		<view class="content">6.3 使用本站的任何内容均应注明“来源于咪兔合和商城”及署上作者姓名,按法律规定需要支付稿酬的,应当通知本站及作者及支付稿酬,并独立承担一切法律责任。</view>
+		<view class="content">6.4 本站享有所有作品用于其它用途的优先权,包括但不限于网站、电子杂志、平面出版等,但在使用前会通知作者,并按同行业的标准支付稿酬。</view>
+		<view class="content">6.5 本站所有内容仅代表作者自己的立场和观点,与本站无关,由作者本人承担一切法律责任。</view>
+		<view class="content">6.6 恶意转载本站内容的,本站保留将其诉诸法律的权利。</view>
+		<view class="content">七、责任声明</view>
+		<view class="content">
+			7.1 用户明确同意其使用本站网络服务所存在的风险及一切后果将完全由用户本人承担,咪兔合和商城对此不承担任何责任。
+		</view>
+		<view class="content">
+			7.2 本站无法保证网络服务一定能满足用户的要求,也不保证网络服务的及时性、安全性、准确性。
+		</view>
+		<view class="content">
+			7.3 本站不保证为方便用户而设置的外部链接的准确性和完整性,同时,对于该等外部链接指向的不由本站实际控制的任何网页上的内容,本站不承担任何责任。
+		</view>
+		<view class="content">
+			7.4 对于因不可抗力或本站不能控制的原因造成的网络服务中断或其它缺陷,本站不承担任何责任,但将尽力减少因此而给用户造成的损失和影响。
+		</view>
+		<view class="content">
+			7.5 对于站向用户提供的下列产品或者服务的质量缺陷本身及其引发的任何损失,本站无需承担任何责任:</br>
+			(1)本站向用户免费提供的各项网络服务;</br>(2)本站向用户赠送的任何产品或者服务。
+		</view>
+		<view class="content">
+			7.6 本站有权于任何时间暂时或永久修改或终止本服务(或其任何部分),而无论其通知与否,本站对用户和任何第三人均无需承担任何责任。
+		</view>
+		<view class="content">
+			7.7 任务补贴活动的特别提醒:
+		</view>
+		<view class="content">
+			①本站是为了前期推广才推出的任务补贴活动;
+		</view>
+		<view class="content">②您已经确认了参加任务补贴活动时购买的产品的价值了,您对产品的价值与你购买的价格没有异议。本站不会对您购买后的产品进行保价行为。</view>
+		<view class="content">③任务补贴活动时给您的总任务数只是一个最高补贴数,您只能作为参考不能当成您的报酬,只有通过您完成任务后获得的补贴才能算您的报酬。</view>
+		<view class="content">④您在参加任务补贴活动时一定按照自己需求购买产品,不能当成投资或投机行为购买产品,因此造成损失本站概不负责。</view>
+		<view class="content">⑤您不能听信任何人在推广活动时的口头承诺,一切以本协议为准。</view>
+		<view class="content">⑥任务补贴活动会根据总的推广量或分享量随时调整或取消。。</view>
+		<view class="content">⑦因政策不允许此种补贴活动时,本站立即取消本活动.</view>
+		<view class="title">八、附则</view>
+		<view class="content">
+			8.1 本协议的订立、执行和解释及争议的解决均应适用中华人民共和国法律。
+		</view>
+		<view class="content">
+			8.2 如本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力,本协议的其余条款仍应有效并且有约束力。
+		</view>
+		<view class="content">
+			8.3 本协议解释权及修订权归青春集公司所有。
+		</view>
+	</view>
+</template>
+
+<script></script>
+
+<style>
+	.box{
+		padding: 30rpx;
+	}
+.title {
+	font-size: 32rpx;
+	font-weight: 700;
+	line-height: 2;
+}
+.content {
+	font-size: 28rpx;
+	color: #666;
+	line-height: 2;
+}
+</style>

+ 211 - 0
pages/public/privacy.vue

@@ -0,0 +1,211 @@
+<template>
+	<view class="box">
+		<view class="title">隐私政策</view>
+
+		<view class="title">隐私政策引言</view>
+		<view class="content">
+			我们重视用户的隐私。您在使用我们的服务时,我们可能会收集和使用您的相关信息。我们希望通过本《隐私政策》向您说明,在使用我们的服务时,我们如何收集、使用、储存和分享这些信息,以及我们为您提供的访问、更新、控制和保护这些信息的方式。本《隐私政策》与您所使用的我们平台服务息息相关,希望您仔细阅读,在需要时,按照本《隐私政策》的指引,作出您认为适当的选择。本《隐私政策》中涉及的相关技术词汇,我们尽量以简明扼要的表述,并提供进一步说明的链接,以便您的理解。
+		</view>
+		<view class="content">您使用或继续使用我们的服务,即意味着同意我们按照本《隐私政策》收集、使用、储存和分享您的相关信息。</view>
+		<view class="content">
+			我们可能收集的信息
+			我们提供服务时,可能会收集、储存和使用下列与您有关的信息。如果您不提供相关信息,可能无法注册成为我们的用户或无法享受我们提供的某些服务,或者无法达到相关服务拟达到的效果。
+		</view>
+		<view class="title">1.您提供的信息:</view>
+		<view class="content">(1)您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如电话号码、电子邮件或银行卡号等;</view>
+		<view class="content">(2)您通过我们的服务向其他方提供的共享信息,以及您使用我们的服务时所储存的信息。</view>
+		<view class="content">2.其他方分享的您的信息</view>
+		<view class="content">(1)其他方使用我们的服务时所提供有关您的共享信息。</view>
+		<view class="content">1.日志信息,指您使用我们的服务时,系统可能通过 cookies 、 web beacon 或其他方式自动采集的技术信息,包括: :</view>
+		<view class="content">(1)设备或软件信息,例如您的移动设备、网页浏览器或用于接入我们服务的其他程序所提供的配置信息、您的 IP 地址和移动设备所用的版本和设备识别码</view>
+		<view class="content">
+			(2)在使用我们服务时搜索或浏览的信息,例如您使用的网页搜索词语、访问的社交媒体页面 url 地址,以及您在使用我们服务时浏览或要求提供的其他信息和内容详情;
+		</view>
+		<view class="content">(3)有关您曾使用的移动应用( APP )和其他软件的信息,以及您曾经使用该等移动应用和软件的信息;</view>
+		<view class="content">(4)您通过我们的服务进行通讯的信息,例如曾通讯的账号,以及通讯时间、数据和时长;</view>
+		<view class="content">(5)您通过我们的服务分享的内容所包含的信息(元数据),例如拍摄或上传的共享照片或录像的日期、时间或地点等。</view>
+		<view class="title">2.位置信息,指您开启设备定位功能并使用我们基于位置提供的相关服务时,收集的有关您位置的信息,包括:</view>
+		<view class="content">(1)您通过具有定位功能的移动设备使用我们的服务时,通过 GPS 或 WiFi 等方式收集的您的地理位置信息;</view>
+		<view class="content">
+			(2)您或其他用户提供的包含您所处地理位置的实时信息,例如您提供的账户信息中包含的您所在地区信息,您或其他人上传的显示您当前或曾经所处地理位置的共享信息,您或其他人共享的照片包含的地理标记信息;
+		</view>
+		<view class="content">(3)您可以通过关闭定位功能,停止对您的地理位置信息的收集。</view>
+		<view class="title">3.我们可能如何使用信息 我们可能将在向您提供服务的过程之中所收集的信息用作下列用途:</view>
+		<view class="content">1.向您提供服务;</view>
+		<view class="content">2.在我们提供服务时,用于身份验证、客户服务、安全防范、诈骗监测、存档和备份用途,确保我们向您提供的产品和服务的安全性</view>
+		<view class="content">3.帮助我们设计新服务,改善我们现有服务;</view>
+		<view class="content">
+			4.使我们更加了解您如何接入和使用我们的服务,从而针对性地回应您的个性化需求,例如语言设定、位置设定、个性化的帮助服务和指示,或对您和其他用户作出其他方面的回应;
+		</view>
+		<view class="content">5.向您提供与您更加相关的广告以替代普遍投放的广告;</view>
+		<view class="content">6.评估我们服务中的广告和其他促销及推广活动的效果,并加以改善;</view>
+		<view class="content">7.软件认证或管理软件升级;</view>
+		<view class="content">8.让您参与有关我们产品和服务的调查。</view>
+		<view class="content">
+			为了让您有更好的体验、改善我们的服务或您同意的其他用途,在符合相关法律法规的前提下,我们可能将通过某一项服务所收集的信息,以汇集信息或者个性化的方式,用于我们的其他服务。例如,在您使用我们的一项服务时所收集的信息,可能在另一服务中用于向您提供特定内容,或向您展示与您相关的、非普遍推送的信息。如果我们在相关服务中提供了相应选项,您也可以授权我们将该服务所提供和储存的信息用于我们的其他服务。
+		</view>
+		<view class="title">您如何访问和控制自己的个人信息</view>
+		<view class="content">
+			我们将尽一切可能采取适当的技术手段,保证您可以访问、更新和更正自己的注册信息或使用我们的服务时提供的其他个人信息。在访问、更新、更正和删除前述信息时,我们可能会要求您进行身份验证,以保障账户安全。
+		</view>
+		<view class="title">注销账户</view>
+		<view class="content">
+			一、注销账号的后果 您可以通过客服的联系方式联系我们要求注销账户或在我们的产品中直接申请注销账号。
+			敬请您注意并知悉,您提交注销申请后,我们需要15天时间处理您的账户注销。如您在15天内没有再次使用该注销账号登录,我们将在15天后清除您的账号信息,完成注销,如果您在15天内进行了此账号的登录,则视为您主动放弃此次注销操作的申请。当您注销账号后,将(可能)产生包括但不限于如下后果:
+		</view>
+		<view class="content">1.注销账号后,您将无法登录、使用该账号及账号原验证手机或邮箱登录艺绘与服务,即您将无法再以此账号登录、使用艺绘与服务。</view>
+		<view class="content">
+			2.注销账号后,您曾通过该账号登录、使用的艺绘与服务下的所有内容、信息、数据、记录将会被全部删除或匿名化处理(但国家法律法规、规章、规范性文件,政府的政策、命令等另有要求或为履行我们的合规义务的除外),您也无法再检索、访问、获取、继续使用和找回这些信息或数据,包括但不限于:
+		</view>
+		<view class="content">(1)该账号下的您自主设置的个人资料(如:头像、昵称等);</view>
+		<view class="content">(2)该账号下您主动提供或在使用过程中授权我们收集的个人信息(如:绑定的手机号、邮箱等);</view>
+		<view class="content">(3)其他与该账号相关的内容、信息、数据、历史记录或服务记录等。</view>
+		<view class="content">3.注销账号后,您在使用艺绘产品与服务期间产生的账号内资产和虚拟权益将视为自动放弃,无法予以退还或退换,包括但不限于:</view>
+		<view class="content">(1)您在艺绘产品与服务中的账户等级、会员等级等各类身份权益、积分、金币等;</view>
+		<view class="content">(2)其他已产生但未消耗完毕的权益及资产或未来的预期收益。</view>
+		<view class="content">
+			4.账号注销具有不可逆转和不可撤销性,账号一旦注销完成,将无法恢复,您的原账号对应的数字ID将可能分配给其他新注册的用户。如果您在注销后以相同手机号码或相同电子邮箱再次向我们申请账号,此时该账号将默认为新的用户账号。
+		</view>
+		<view class="content">
+			5.账号一旦注销,您将不再享有您与我们签署的相关用户协议、其他权利义务性文件中约定的适用于注册用户的权利,但法律法规、规章、规范性文件,政府的政策、命令等另有要求或用户服务协议中另有规定的除外。
+		</view>
+		<view class="content">二、注销须满足的条件</view>
+		<view class="content">在您向我们申请注销账号前,为保障您的账号安全和财产权益,您的账号需同时满足以下条件:</view>
+		<view class="content">1.该账号是您通过我们的官方渠道注册的账号,且为您本人注册、使用的账号;</view>
+		<view class="content">2.该账号内无未处理完毕的交易或已提供服务但未支付的订单或服务;</view>
+		<view class="content">3.该账号下无未处理完毕的纠纷(如:与其他用户的侵权纠纷、投诉举报或被投诉举报)。</view>
+		<view class="title">我们可能分享的信息</view>
+		<view class="content">除以下情形外,未经您同意,我们以及我们的关联公司不会与任何第三方分享您的个人信息:</view>
+		<view class="content">
+			1.我们以及我们的关联公司,可能将您的个人信息与我们的关联公司、合作伙伴及第三方服务供应商、承包商及代理(例如代表我们发出电子邮件或推送通知的通讯服务提供商、为我们提供位置数据的地图服务供应商)分享(他们可能并非位于您所在的法域),用作下列用途:
+		</view>
+		<view class="content">(1)向您提供我们的服务;</view>
+		<view class="content">(2)实现“我们可能如何使用信息”部分所述目的;</view>
+		<view class="content">(3)履行我们在《服务协议》或本《隐私政策》中的义务和行使我们的权利;</view>
+		<view class="content">(4)理解、维护和改善我们的服务。</view>
+		<view class="content">3、我们通过间接获得方式收集到的您的个人信息</view>
+		<view class="content">
+			如我们或我们的关联公司与任何上述第三方分享您的个人信息,我们将努力确保该等第三方在使用您的个人信息时遵守本《隐私政策》及我们要求其遵守的其他适当的保密和安全措施。
+		</view>
+		<view class="content">
+			2.随着我们业务的持续发展,我们以及我们的关联公司有可能进行合并、收购、资产转让或类似的交易,您的个人信息有可能作为此类交易的一部分而被转移。我们将在转移前通知您。
+			我们或我们的关联公司还可能为以下需要而保留、保存或披露您的个人信息:
+		</view>
+		<view class="content">(1)遵守适用的法律法规;</view>
+		<view class="content">(2)遵守法院命令或其他法律程序的规定;</view>
+		<view class="content">(3)遵守相关政府机关的要求;</view>
+		<view class="content">(4)为遵守适用的法律法规、维护社会公共利益,或保护我们的客户、我们或我们的集团公司、其他用户或雇员的人身和财产安全或合法权益所合理必需的用途。</view>
+		<view class="title">信息安全</view>
+		<view class="content">我们仅在本《隐私政策》所述目的所必需的期间和法律法规要求的时限内保留您的个人信息。</view>
+		<view class="content">
+			我们使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如 SSL
+			)来保护您提供的个人信息。但请您理解,由于技术的限制以及可能存在的各种恶意手段,在互联网行业,即便竭尽所能加强安全措施,也不可能始终保证信息百分之百的安全。您需要了解,您接入我们的服务所用的系统和通讯网络,有可能因我们可控范围外的因素而出现问题。
+		</view>
+		<view class="title">您分享的信息</view>
+		<view class="content">
+			我们的多项服务,可让您不仅与自己的社交网络,也与使用该服务的所有用户公开分享您的相关信息,例如,您在我们的服务中所上传或发布的信息(包括您公开的个人信息、您建立的名单)、您对其他人上传或发布的信息作出的回应,以及包括与这些信息有关的位置数据和日志信息。使用我们服务的其他用户也有可能分享与您有关的信息(包括位置数据和日志信息)。特别是,我们的社交媒体服务,是专为使您与世界各地的用户共享信息而设计,您可以使共享信息实时、广泛地传递。只要您不删除共享信息,有关信息会一直留存在公共领域;即使您删除共享信息,有关信息仍可能由其他用户或不受我们控制的非关联第三方独立地缓存、复制或储存,或由其他用户或该等第三方在公共领域保存。
+		</view>
+		<view class="content">
+			因此,请您谨慎考虑通过我们的服务上传、发布和交流的信息内容。在一些情况下,您可通过我们某些服务的隐私设定来控制有权浏览您共享信息的用户范围。如要求从我们的服务中删除您的相关信息,请通过该等特别服务条款提供的方式操作。
+		</view>
+		<view class="title">您分享的敏感个人信息</view>
+		<view class="content">某些个人信息因其特殊性可能被认为是敏感个人信息,例如您的种族、宗教、个人健康和医疗信息等。相比其他个人信息,敏感个人信息受到更加严格的保护。</view>
+		<view class="content">
+			请注意,您在使用我们的服务时所提供、上传或发布的内容和信息(例如有关您社交活动的照片等信息),可能会泄露您的敏感个人信息。您需要谨慎地考虑,是否在使用我们的服务时披露相关敏感个人信息。
+		</view>
+		<view class="content">您同意按本《隐私政策》所述的目的和方式来处理您的敏感个人信息。</view>
+		<view class="title">我们可能如何收集信息</view>
+		<view class="content">我们或我们的第三方合作伙伴,可能通过 cookies 和 web, beacon 收集和使用您的信息,并将该等信息储存为日志信息。</view>
+		<view class="content">我们使用自己的 cookies 和 web beacon ,目的是为您提供更个性化的用户体验和服务,并用于以下用途:</view>
+		<view class="content">1.记住您的身份。例如: cookies 和 web beacon 有助于我们辨认您作为我们的注册用户的身份,或保存您向我们提供的有关您的喜好或其他信息;</view>
+		<view class="content">2.分析您使用我们服务的情况。例如,我们可利用 cookies 和 web beacon 来了解您使用我们的服务进行什么活动,或哪些网页或服务最受您的欢迎;</view>
+		<view class="content">
+			3.广告优化。 Cookies 和 web beacon 有助于我们根据您的信息,向您提供与您相关的广告而非进行普遍的广告投放。我们为上述目的使用 cookies 和 web beacon 的同时,可能将通过
+			cookies 和 web beacon 收集的非个人身份信息,经统计加工后提供给广告商或其他合作伙伴,用于分析用户如何使用我们的服务,并用于广告服务。
+		</view>
+		<view class="content">
+			我们的产品和服务上可能会有广告商或其他合作方放置的 cookies 和 web beacon 。这些 cookies 和 web beacon
+			可能会收集与您相关的非个人身份信息,以用于分析用户如何使用该等服务、向您发送您可能感兴趣的广告,或用于评估广告服务的效果。这些第三方 cookies 和 web beacon
+			收集和使用该等信息,不受本《隐私政策》约束,而是受相关使用者的隐私政策约束,我们不对第三方的 cookies 或 web beacon 承担责任。
+		</view>
+		<view class="content">
+			您可以通过浏览器设置拒绝或管理 cookies 或 web beacon 。但请注意,如果停用 cookies 或 web beacon
+			,您有可能无法享受最佳的服务体验,某些服务也可能无法正常使用。同时,您还会收到同样数量的广告,但这些广告与您的相关性会降低。
+		</view>
+		<view class="title">广告服务</view>
+		<view class="content">我们可能使用您的相关信息,向您提供与您更加相关的广告。</view>
+		<view class="content">我们也可能使用您的信息,通过我们的服务、电子邮件或其他方式向您发送营销信息,提供或推广我们或第三方的如下商品和服务</view>
+		<view class="content">
+			1.我们的商品或服务,我们的关联公司和合作伙伴的商品或服务,包括即时通讯服务、网上媒体服务、互动娱乐服务、社交网络服务、付款服务、互联网搜索服务、位置和地图服务、应用软件和服务、数据管理软件和服务、网上广告服务、互联网金融,以及其他社交媒体、娱乐、电子商务、资讯和通讯软件或服务(统称“互联网服务”);:
+		</view>
+		<view class="content">
+			2.第三方互联网服务供应商,以及与下列有关的第三方商品或服务:食物和餐饮、体育、音乐、电影、电视、现场表演及其他艺术和娱乐、书册、杂志和其他刊物、服装和配饰、珠宝、化妆品、个人健康和卫生、电子、收藏品、家用器皿、电器、家居装饰和摆设、宠物、汽车、酒店、交通和旅游、银行、保险及其他金融服务、会员积分和奖励计划,以及我们认为可能与您相关的其他商品或服务。
+		</view>
+		<view class="content">
+			如您不希望我们将您的个人信息用作前述广告用途,您可以通过我们在广告中提供的相关提示,或在特定服务中提供的指引,要求我们停止为上述用途使用您的个人信息。
+		</view>
+		<view class="title">我们可能向您发送的邮件和信息。</view>
+		<view class="title">1.邮件和信息推送</view>
+		<view class="content">
+			您在使用我们的服务时,我们可能使用您的信息向您的设备发送电子邮件、新闻或推送通知。如您不希望收到这些信息,可以按照我们的相关提示,在设备上选择取消订阅。
+		</view>
+		<view class="title">2.与服务有关的公告</view>
+		<view class="content">我们可能在必要时(例如因系统维护而暂停某一项服务时)向您发出与服务有关的公告。您可能无法取消这些与服务有关、性质不属于推广的公告。</view>
+		<view class="title">隐私政策的适用例外</view>
+		<view class="content">
+			我们的服务可能包括或链接至第三方提供的社交媒体或其他服务(包括网站)。例如:您利用“分享”键将某些内容分享到我们的服务,或您利用第三方连线服务登录我们的服务。这些功能可能会收集您的相关信息(包括您的日志信息),并可能在您的电脑装置
+			cookies ,从而正常运行上述功能;
+		</view>
+		<view class="content">
+			我们通过广告或我们服务的其他方式向您提供链接,使您可以接入第三方的服务或网站。
+			该等第三方社交媒体或其他服务可能由相关的第三方或我们运营。您使用该等第三方的社交媒体服务或其他服务(包括您向该等第三方提供的任何个人信息),须受该第三方的服务条款及隐私政策(而非《通用服务条款》或本《隐私政策》)约束,您需要仔细阅读其条款。本《隐私政策》仅适用于我们所收集的信息,并不适用于任何第三方提供的服务或第三方的信息使用规则,我们对任何第三方使用由您提供的信息不承担任何责任。
+		</view>
+		<view class="title">未成年人使用我们的服务</view>
+		<view class="content">
+			我们鼓励父母或监护人指导未满十八岁的未成年人使用我们的服务。我们建议未成年人鼓励他们的父母或监护人阅读本《隐私政策》,并建议未成年人在提交的个人信息之前寻求父母或监护人的同意和指导。
+		</view>
+		<view class="title">隐私政策的适用范围</view>
+		<view class="content">
+			除某些特定服务外,我们所有的服务均适用本《隐私政策》。这些特定服务将适用特定的隐私政策。针对某些特定服务的特定隐私政策,将更具体地说明我们在该等服务中如何使用您的信息。该特定服务的隐私政策构成本《隐私政策》的一部分。如相关特定服务的隐私政策与本《隐私政策》有不一致之处,适用该特定服务的隐私政策。
+		</view>
+		<view class="content">除本《隐私政策》另有规定外,本《隐私条款》所用词语将与《服务协议》所定义的词语具有相同的涵义。请您注意,本《隐私政策》不适用于以下情况:</view>
+		<view class="content">1.通过我们的服务而接入的第三方服务(包括任何第三方网站)收集的信息;</view>
+		<view class="content">2.通过在我们服务中进行广告服务的其他公司或机构所收集的信息。</view>
+		<view class="title">变更</view>
+		<view class="content">
+			我们可能适时修订本《隐私政策》的条款,该等修订构成本《隐私政策》的一部分。如该等修订造成您在本《隐私政策》下权利的实质减少,我们将在修订生效前通过在主页上显著位置提示或向您发送电子邮件或以其他方式通知您。在该种情况下,若您继续使用我们的服务,即表示同意受经修订的本《隐私政策》的约束。
+		</view>
+		<view class="content">
+			本《隐私政策》尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本《隐私政策》会按照本隐私权政策的规定使用和披露您的个人信息。但本《隐私政策》将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本《隐私政策》不会将这些信息对外披露或向第三方提供。本《隐私政策》会不时更新本隐私权政策。您在同意本《隐私政策》服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本《隐私政策》服务使用协议不可分割的一部分。
+		</view>
+		<view class="title">开发者:台州咪兔网络科技有限公司</view>
+		<view class="title">应用名:艺绘</view>
+		<view class="title">公司名称:台州咪兔网络科技有限公司</view>
+		<view class="title">注册地址:台州市曙光大厦305室</view>
+		<view class="title">办公地址:台州市曙光大厦305室</view>
+		<view class="title">负责人电话:13216943666</view>
+	</view>
+</template>
+
+<script>
+export default {};
+</script>
+
+<style>
+.box {
+	padding: 30rpx;
+}
+.title {
+	font-size: 32rpx;
+	font-weight: 700;
+	line-height: 2;
+}
+.content {
+	font-size: 28rpx;
+	color: #666;
+	line-height: 2;
+}
+.pb10 {
+	font-size: 28rpx;
+}
+</style>

+ 136 - 0
pages/public/start.vue

@@ -0,0 +1,136 @@
+<template>
+	<view class="start">
+		<view class="background"></view>
+		<view class="popup">
+			<view class="title">温馨提示</view>
+			<scroll-view :scroll-y="true" class="content">
+				<text>欢迎使用艺绘APP。我们非常重视您的用户权益和个人信息的保护,在您使用艺绘APP服务前,请认真阅读</text>
+				<text class="money" @click="goUser">《用户协议》</text>
+				<text>和</text>
+				<text class="money" @click="goYs">《隐私政策》</text>
+				<text>
+					全部条款。我们将通过上述协议向您说明我们如何为您提供服务并保障您的用户权益,
+					如何收集、使用、保存、共享和保护您的相关信息,以及我们为您提供的访问、更正、删除和申诉您信息相关问题的方式。
+					我们会严格按照您的授权,在上述协议约定的范围内收集、存储和使用您的注册信息、设备信息、位置信息、日志信息或其他经您授权的信息。
+					您点击“同意并继续”视为您已同意上述协议的全部内容
+				</text>
+			</scroll-view>
+			<view class="button flex">
+				<text class="disagree" @click="disagree">不同意</text>
+				<text class="agree" @click="agree">同意并继续</text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {};
+	},
+	onLoad() {
+		let agree = uni.getStorageSync('agree');
+		if (agree) {
+			uni.redirectTo({ url: '/pages/index/index' });
+		}
+	},
+	methods: {
+		//前往用户协议
+		goUser() {
+			uni.navigateTo({ url: './agreement' });
+		},
+		goYs() {
+			uni.navigateTo({ url: './privacy' });
+		},
+		//不同意
+		disagree() {
+			plus.runtime.quit();
+		},
+		//同意
+		agree() {
+			uni.setStorageSync('agree', true);
+			uni.switchTab({
+				url: '/pages/index/index',
+				success(e) {
+					console.log(e);
+				},
+				fail(e) {
+					console.log(e);
+				}
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.money {
+	color: $base-color;
+}
+.disagree {
+	padding: 10rpx 30rpx;
+	font-size: 28rpx;
+	width: 200rpx;
+	height: 64rpx;
+	color: $base-color;
+	border-radius: 999rpx;
+	border: 2rpx solid $base-color;
+}
+.agree {
+	padding: 10rpx 30rpx;
+	width: 210rpx;
+	height: 64rpx;
+	font-size: 28rpx;
+	color: #fff;
+	background-color: $base-color;
+	border-radius: 999rpx;
+	border: 2rpx solid $base-color;
+}
+.button {
+	position: absolute;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	z-index: 0;
+	display: flex;
+	padding: 24rpx;
+	justify-content: center;
+	text-align: center;
+	justify-content: space-around;
+}
+.content {
+	position: absolute;
+	left: 0;
+	right: 0;
+	top: 100rpx;
+	bottom: 120rpx;
+	z-index: 0;
+	font-size: 28rpx;
+	padding: 0 50rpx;
+	line-height: 44rpx;
+}
+.title {
+	font-size: 36rpx;
+	padding: 20rpx 50rpx;
+}
+.background {
+	position: fixed;
+	left: 0;
+	right: 0;
+	top: 0;
+	bottom: 0;
+	z-index: 0;
+	background-color: rgba(0, 0, 0, 0.4);
+}
+.popup {
+	position: absolute;
+	z-index: 0;
+	left: 50%;
+	top: 50%;
+	transform: translate(-50%, -50%);
+	width: 600rpx;
+	height: 700rpx;
+	background-color: #fff;
+	border-radius: 30rpx;
+}
+</style>

+ 26 - 0
pages/set/set.vue

@@ -26,6 +26,32 @@
 				<image src="../../static/user/right01.png" mode=""></image>
 			</view>
 		</view>
+		<view class="box" @click="navTo('/pages/user/about')">
+			<view class="box-left">
+				<view class="img">
+					<image src="../../static/user/set02.png" mode=""></image>
+				</view>
+				<view class="title">
+					注销账号
+				</view>
+			</view>
+			<view class="img-right">
+				<image src="../../static/user/right01.png" mode=""></image>
+			</view>
+		</view>
+		<view class="box" @click="navTo('/pages/set/userinfo')">
+			<view class="box-left">
+				<view class="img">
+					<image src="../../static/user/set02.png" mode=""></image>
+				</view>
+				<view class="title">
+					个人信息
+				</view>
+			</view>
+			<view class="img-right">
+				<image src="../../static/user/right01.png" mode=""></image>
+			</view>
+		</view>
 		<!-- <view class="box" 	@click="navTo('/pages/set/password')">
 			<view class="box-left">
 				<view class="img">

+ 2 - 2
pages/set/userinfo.vue

@@ -10,12 +10,12 @@
 		</view>
 		<view class="row b-b flex">
 			<text class="tit">邀请码</text>
-			<input class="input" v-model="userInfo.uid" type="text" disabled="true" placeholder-class="placeholder" style="color: #999;" />
+			<input class="input" :value="userInfo.uid" type="text" disabled="true" placeholder-class="placeholder" style="color: #999;" />
 		</view>
 
 		<view class="row b-b flex" v-if="userInfo.account || userInfo.phone">
 			<text class="tit">用户账号</text>
-			<input class="input" v-model="userInfo.account || userInfo.phone" type="number" disabled="true" placeholder-class="placeholder" />
+			<input class="input" :value="userInfo.account || userInfo.phone" type="number" disabled="true" style="color: #999;" placeholder-class="placeholder" />
 		</view>
 		<view class="submit-box flex">
 			<view class="submit" @click="edit">确认修改</view>

+ 52 - 36
pages/user/about.vue

@@ -2,8 +2,10 @@
 	<view class="conter">
 		<view class="box">
 			<!-- <image src="../../static/img/about.png" class="image" mode=""></image> -->
-			<view class="image"><image src="../../static/img/logo.png" mode=""></image></view>
-			<view class="title">V1.0.0</view>
+			<view class="image">
+				<image src="../../static/img/logo.png" mode=""></image>
+			</view>
+			<view class="title margin-t-20">V1.0.0</view>
 		</view>
 		<view class="main">
 			<text>
@@ -11,54 +13,68 @@
 			</text>
 		</view>
 		<view class="tip">
-		艺绘(浙江)数字科技有限公司
+			艺绘(浙江)数字科技有限公司
 			<br />
 			版权所有
 		</view>
+		<view class="text-info flex-center">
+			<navigator url="/pages/public/agreement">
+				《用户协议》
+			</navigator>
+			<navigator url="/pages/public/privacy">
+				《隐私协议》
+			</navigator>
+		</view>
 	</view>
 </template>
 
 <script></script>
 
 <style lang="scss">
-.conter,
-page {
-	background: #f1f1f1;
-	height: 100%;
-}
-.box {
-	width: 100%;
-	text-align: center;
-	.image {
-		width: 162rpx;
-		height: 162rpx;
-		margin: 0 auto;
-		margin-top: 88rpx;
-		image {
-			width: 100%;
-			height: 100%;
+	.conter,
+	page {
+		background: #f1f1f1;
+		height: 100%;
+	}
+
+	.box {
+		width: 100%;
+		text-align: center;
+
+		.image {
+			width: 162rpx;
+			height: 162rpx;
+			margin: 0 auto;
+			margin-top: 88rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.title {
+			font-size: 30rpx;
+			font-family: PingFangSC;
+			font-weight: 500;
+			color: #666666;
 		}
 	}
-	.title {
+
+	.main {
+		background-color: #ffffff;
+		padding: 20rpx 50rpx;
+		margin-top: 70rpx;
 		font-size: 30rpx;
 		font-family: PingFangSC;
 		font-weight: 500;
+		color: #000000;
+		line-height: 54rpx;
+	}
+
+	.tip {
+		margin-top: 100rpx;
+		text-align: center;
 		color: #666666;
 	}
-}
-.main {
-	background-color: #ffffff;
-	padding: 20rpx 50rpx;
-	margin-top: 70rpx;
-	font-size: 30rpx;
-	font-family: PingFangSC;
-	font-weight: 500;
-	color: #000000;
-	line-height: 54rpx;
-}
-.tip {
-	margin-top: 100rpx;
-	text-align: center;
-	color: #666666;
-}
 </style>

+ 30 - 34
pages/user/feedback.vue

@@ -1,18 +1,17 @@
 <template>
-	<view>
-		<textarea name="" class="text-area" cols="30" rows="10" :value="value"
+	<view class="padding-30">
+		<textarea name="" class="text-area" cols="30" rows="10" v-model="value"
 			placeholder="请提出您遇到的问题,或者反馈意见~"></textarea>
-		<view class="imgg">
+		<!-- <view class="imgg">
 			<view class="chooseImg" v-for="(item,index) in imgList">
 				<image :src="item" mode=""></image>
 				<image src="../../static/user/delete.png" class="del" mode="" @click="dele(index)"></image>
 			</view>
 			<view class="chooseImg" @click="shangchaun">
-
 				<image src="../../static/img/chooseImg.png" mode=""></image>
 			</view>
-		</view>
-		<view class="button">
+		</view> -->
+		<view class="button" @click="proposal">
 			提交
 		</view>
 
@@ -21,42 +20,39 @@
 </template>
 
 <script>
+	import {proposal} from '@/api/user.js'
+	import { upload } from '@/api/order.js';
 	export default {
 		data() {
 			return {
 				value: '', //反馈内容
-				imgList: [] //照片
+				imgList: [] ,//照片
+				up:false
 			}
 		},
 		methods: {
+			proposal(){
+				proposal({
+					content:this.value,
+				}).then(()=>{
+					uni.showModal({
+						title: '提示',
+						content: '提交成功',
+						showCancel: false,
+						success: res => {},
+						fail: () => {},
+						complete: () => {}
+					});
+				})
+			},
 			//上传图片
 			shangchaun() {
-				let obj = this
-				uni.chooseImage({
-					count: 3,
-					sizeType: ['original', 'compressed'],
-
-					success(res) {
-						console.log(res);
-						if (res.tempFilePaths.length != 0 ) {
-							obj.imgList.push(res.tempFilePaths[0]);
-						}
-						console.log(JSON.stringify(res.tempFilePaths));
-						let tempFilePaths = res.tempFilePaths;
-
-						console.log(tempFilePaths);
-						console.log(tempFilePaths[0]);
-						// uni.uploadFile({
-						// 	url: 'http://douzhuoqianshouba.xieenguoji.com/api/ajax/upload',
-						// 	filePath: tempFilePaths[0],
-						// 	name: 'file',
-						// 	success: uploadFileRes => {
-						// 		console.log('上传图片', JSON.parse(uploadFileRes.data));
-
-						// 	}
-						// })
-					},
-				})
+				const that = this;
+				upload({
+					filename: ''
+				}).then(res => {
+					that.imgList.push(res[0].url)
+				});
 			},
 			dele(index) {
 				console.log('删除');
@@ -80,7 +76,7 @@
 		.text-area {
 			color: aliceblue;
 			width: 750rpx;
-			height: 200rpx;
+			height: 400rpx;
 			background: #181818;
 			padding: 40rpx 20rpx;
 		}

+ 360 - 0
pages/user/myvip.vue

@@ -0,0 +1,360 @@
+<template>
+	<view class="content">
+		<view class="list">
+			<view @click="actionIndex=index" class="list-box" v-for="(item,index) in list" :key='index'
+				:class="{'action':actionIndex==index}">
+				<view class="list-foot">
+					<view class="list-pir">
+						¥{{item.pir}}
+					</view>
+				</view>
+				<view class="list-level">
+					{{item.level}}
+				</view>
+			</view>
+		</view>
+		<view class="top">
+			<view class="top-sub">
+				申请加盟立享特权
+			</view>
+		</view>
+		<view class="app margin-t-30">
+			<view class="pay-type-list">
+				<!-- v-if="ispg == 'android'" -->
+				<!-- #ifdef APP-PLUS -->
+				<view class="type-item b-b" @click="type = 'wechat'">
+					<text class="icon iconfont iconweixin"></text>
+					<view class="con">
+						<text class="tit">微信支付</text>
+						<text>推荐使用微信支付</text>
+					</view>
+					<label class="radio">
+						<radio value="" color="#5dbc7c" :checked="type == 'wechat'"></radio>
+					</label>
+				</view>
+				<view class="type-item b-b" @click="type = 'ali'">
+					<text class="icon iconfont iconzhifubao"></text>
+					<view class="con"><text class="tit">支付宝支付</text></view>
+					<label class="radio">
+						<radio value="" color="#5dbc7c" :checked="type == 'ali'"></radio>
+					</label>
+				</view>
+				<!-- #endif -->
+				<view class="type-item" @click="type = 'yue'">
+					<text class="icon iconfont iconyue"></text>
+					<view class="con">
+						<text class="tit">余额支付</text>
+						<text>可用余额 ¥{{ now_money }}</text>
+					</view>
+					<label class="radio">
+						<radio value="" color="#5dbc7c" :checked="type == 'yue'"></radio>
+					</label>
+				</view>
+			</view>
+		</view>
+		<view class="footer">
+			<view class="price-content">
+				<text>{{list[actionIndex].level}}</text>
+				<text class="price-tip">¥</text>
+				<text class="price">{{ list[actionIndex].pir }}</text>
+			</view>
+			<text class="submit" :class="{ submitNo: !payType }" @click="payType ? submit() : ''">提交订单</text>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		vipList,
+		vipCompany,
+		vipPartner
+	} from '@/api/user.js';
+	import { balance } from '@/api/wallet.js';
+	export default {
+		data() {
+			return {
+				actionIndex: 0,
+				type: 'yue',
+				now_money: 0,
+				payType: true,
+				list: [{
+						src: '../../static/img/le1.png',
+						level: '分公司',
+						pir: 2000,
+					},
+					{
+						src: '../../static/img/le1.png',
+						level: '分销商',
+						pir: 2000,
+					},
+				],
+
+			}
+		},
+		onLoad() {
+			this.vipList();
+			this.getBalance();
+		},
+		methods: {
+			// 获取vipList
+			vipList() {
+				const list = this.list
+				vipList().then((e) => {
+					list[0].pir = e.data.company;
+					list[1].pir = e.data.partner;
+				}).catch((e) => {
+					console.log(e);
+				})
+			},
+			getBalance(){
+				// 载入余额
+				balance({}).then(({
+					data
+				}) => {
+					// 获取余额
+					this.now_money = data.now_money;
+				});
+			},
+			// 支付回调
+			payChecked(data){
+				console.log(data,'fanhui ');
+				const that = this;
+				if (that.type == 'ali') {
+					const url = data.payConfig;
+					console.log(url, 'url');
+					uni.requestPayment({
+						provider: 'alipay',
+						orderInfo: url,
+						success: res => {
+							console.log(res);
+							uni.showToast({
+								title: '支付成功',
+								duration: 2000
+							});
+							obj.paySuccessTo();
+						},
+						fail: e => {
+							console.log(e);
+						},
+						complete: () => {}
+					});
+					obj.payLoding = false;
+					return
+				}
+				if (that.type == 'yue') {
+					that.paySuccess();
+					that.getBalance()
+				}
+			},
+			// 支付成功
+			paySuccess(){
+				const that = this;
+				uni.showModal({
+					title: '恭喜',
+					content: '成功开通'+that.list[that.actionIndex].level,
+					showCancel: false,
+				});
+				that.payType = true;
+			},
+			// 提交订单
+			submit() {
+				const that = this;
+				if (!that.payType) {
+					return
+				}
+				that.payType = false;
+				if (that.actionIndex == 0) {
+					vipCompany({
+						pay_type: that.type
+					}).then((data) => {
+						
+						that.payChecked(data)
+					}).catch(() => {
+						that.payType = true;
+					})
+				}
+				if (that.actionIndex == 1) {
+					vipPartner({
+						pay_type: that.type
+					}).then((data) => {
+						that.payChecked(data)
+					}).catch(() => {
+						that.payType = true;
+					})
+				}
+			}
+
+		}
+	}
+</script>
+
+<style lang="scss">
+	.pay-type-list {
+		margin-top: 20upx;
+		background-color: #fff;
+		padding-left: 60upx;
+
+		.type-item {
+			height: 120upx;
+			padding: 20upx 0;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding-right: 60upx;
+			font-size: 30upx;
+			position: relative;
+		}
+
+		.icon {
+			width: 100upx;
+			font-size: 52upx;
+		}
+
+		.iconyue {
+			color: #fe8e2e;
+		}
+
+		.iconweixin {
+			color: #36cb59;
+		}
+
+		.iconzhifubao {
+			color: #01aaef;
+		}
+
+		.tit {
+			font-size: $font-lg;
+			color: $font-color-dark;
+			margin-bottom: 4upx;
+		}
+
+		.con {
+			flex: 1;
+			display: flex;
+			flex-direction: column;
+			font-size: $font-sm;
+			color: $font-color-light;
+		}
+	}
+
+	.content {
+		line-height: 1;
+		padding-top: 50rpx;
+
+		.top {
+			padding-top: 40rpx;
+			position: relative;
+
+			.top-sub {
+				width: 377rpx;
+				margin: 0 auto;
+				height: 65rpx;
+				background: #554637;
+				border-radius: 33rpx;
+				font-size: 30rpx;
+				font-weight: 500;
+				color: #E2D29F;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				// margin:0rpx auto;
+			}
+		}
+
+		.center {
+			text-align: center;
+			margin: 40rpx 0;
+
+			.center-img {
+				width: 331rpx;
+				height: 31rpx;
+			}
+		}
+
+		.list {
+			padding-left: 20rpx;
+			display: flex;
+			flex-wrap: wrap;
+
+			.list-box {
+				width: 345rpx;
+				padding-top: 30rpx;
+				background: #FFFFFF;
+				box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+				border-radius: 10rpx;
+				margin-right: 20rpx;
+				margin-bottom: 20rpx;
+
+				&.action {
+					border: 2px solid #E2D29F;
+					;
+				}
+
+				.list-level {
+					padding-left: 20rpx;
+					font-size: 36rpx;
+					font-weight: bold;
+					color: #554637;
+					line-height: 70rpx;
+					text-align: center;
+					padding-bottom: 30rpx;
+				}
+
+				.list-foot {
+					text-align: center;
+					padding: 0 20rpx;
+					font-size: 50rpx;
+					color: #E2D29F;
+					font-weight: bold;
+					padding: 30rpx 0;
+				}
+			}
+		}
+	}
+
+	.footer {
+		position: fixed;
+		left: 0;
+		bottom: 0;
+		z-index: 995;
+		display: flex;
+		align-items: center;
+		width: 100%;
+		height: 90rpx;
+		justify-content: space-between;
+		font-size: 30rpx;
+		background-color: #fff;
+		z-index: 998;
+		color: $font-color-base;
+		box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
+
+		.price-content {
+			padding-left: 30rpx;
+		}
+
+		.price-tip {
+			color: $font-color-base;
+			margin-left: 8rpx;
+		}
+
+		.price {
+			font-size: 36rpx;
+			color: $font-color-base;
+		}
+
+		.submit {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 280rpx;
+			height: 100%;
+			color: #fff;
+			font-size: 32rpx;
+			background-color: $base-color;
+
+			&.submitNo {
+				background-color: $font-color-disabled;
+			}
+		}
+	}
+</style>

+ 153 - 117
pages/user/user.vue

@@ -51,41 +51,70 @@
 		</view>
 		<view class="manage-box">
 			<view class="manage" @click="navTo('/pages/money/wallet')">
-				<image src="../../static/user/user06.png" mode=""></image>
+				<view class="flex-center">
+					<image src="../../static/user/user06.png" mode="widthFix"></image>
+				</view>
 				<view class="manage-title">
 					钱包
 				</view>
 			</view>
+			<view class="manage" @click="navTo('/pages/user/myvip')">
+				<view class="flex-center">
+					<image src="../../static/user/user12.png" mode="widthFix"></image>
+				</view>
+				<view class="manage-title">
+					加盟
+				</view>
+			</view>
 			<view class="manage" @click="navTo('/pages/user/personal')">
-				<image src="../../static/user/user08.png" mode=""></image>
+				<view class="flex-center">
+					<image src="../../static/user/user08.png" mode="widthFix"></image>
+				</view>
 				<view class="manage-title">
 					实名认证
 				</view>
 			</view>
 			<view class="manage" @click="navTo('/pages/user/shareQrCode')">
-				<image src="../../static/user/user05.png" mode=""></image>
+				<view class="flex-center">
+					<image src="../../static/user/user05.png" mode="widthFix"></image>
+				</view>
 				<view class="manage-title">
 					邀请好友
 				</view>
 			</view>
 			<view class="manage" @click="kfOpen()">
-				<image src="../../static/user/kf.png" mode=""></image>
+				<view class="flex-center">
+					<image src="../../static/user/kf.png" mode="widthFix"></image>
+				</view>
 				<view class="manage-title">
 					联系客服
 				</view>
 			</view>
-			<!-- <view class="manage" @click="navTo('/pages/user/feedback')">
-				<image src="../../static/user/user09.png" mode=""></image>
+
+			<view class="manage" @click="navTo('/pages/user/feedback')">
+				<view class="flex-center">
+					<image src="../../static/user/user09.png" mode="widthFix"></image>
+				</view>
 				<view class="manage-title">
 					提交意见
 				</view>
-			</view> -->
+			</view>
 			<view class="manage" @click="navTo('/pages/set/set')">
-				<image src="../../static/user/user07.png" mode=""></image>
+				<view class="flex-center">
+					<image src="../../static/user/user07.png" mode="widthFix"></image>
+				</view>
 				<view class="manage-title">
 					设置
 				</view>
 			</view>
+			<!-- <view class="manage" @click="navTo('/pages/user/about')">
+				<view class="flex-center">
+					<image src="../../static/user/user09.png" mode="widthFix"></image>
+				</view>
+				<view class="manage-title">
+					关于我们
+				</view>
+			</view> -->
 		</view>
 		<view class="navbar">
 			<view class="nav-item" v-for="(item,index) in navList" :class="{current:tabCurrentIndex===index}"
@@ -93,7 +122,46 @@
 				{{item.text}}
 			</view>
 		</view>
-		<swiper :current="tabCurrentIndex" duration="300" class="swiper-box" :style="{ height: height }"
+		<view v-for="(navitem,key) in navList" v-if="key==tabCurrentIndex">
+			<scroll-view scroll-y="true" class="uni-scroll-view-content ">
+				<u-empty v-if="navitem.orderList && navitem.orderList.length == 0 && navitem.loaded"></u-empty>
+				<view class="flex dy-list">
+					<view class="box-content" v-for="item in navitem.orderList">
+						<view class="img">
+							<image :src="item.class_info.uri" mode=""></image>
+						</view>
+						<view class="content-title">
+							<view class="title">
+								<view class="text clamp">
+									{{item.class_info.name}}
+								</view>
+								<view class="zm" v-if="item.hang!=null">
+									转卖中
+								</view>
+							</view>
+							<view class="content-price">
+								<view class="price">
+									¥{{item.price}}
+			
+									<!-- ¥{{item.class_info.name}} -->
+								</view>
+								<view class="" v-show="tabCurrentIndex!=1">
+									<view class="button" @click="navPop(item)" v-if="item.hang==null ">
+										卖出
+									</view>
+									<view class="button" @click="qxMai(item.hang.id)" v-else>
+										取消卖出
+									</view>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+				<uni-load-more :status="navitem.loadingType"
+					v-if="!(navitem.orderList.length == 0 && navitem.loaded)"></uni-load-more>
+			</scroll-view>
+		</view>
+		<!-- <swiper :current="tabCurrentIndex" duration="300" class="swiper-box" :style="{ height: height }"
 			@change="changeTab">
 			<swiper-item v-for="navitem in navList">
 				<scroll-view scroll-y="true" class="uni-scroll-view-content ">
@@ -108,21 +176,19 @@
 									<view class="text clamp">
 										{{item.class_info.name}}
 									</view>
-									<view class="zm"v-if="item.hang!=null">
+									<view class="zm" v-if="item.hang!=null">
 										转卖中
 									</view>
 								</view>
 								<view class="content-price">
 									<view class="price">
-									¥{{item.price}}
-										
-										<!-- ¥{{item.class_info.name}} -->
+										¥{{item.price}}
 									</view>
 									<view class="" v-show="tabCurrentIndex!=1">
-										<view class="button" @click="navPop(item)" v-if="item.hang==null " >
+										<view class="button" @click="navPop(item)" v-if="item.hang==null ">
 											卖出
 										</view>
-										<view class="button" @click="qxMai(item.id)" v-else >
+										<view class="button" @click="qxMai(item.hang.id)" v-else>
 											取消卖出
 										</view>
 									</view>
@@ -130,10 +196,11 @@
 							</view>
 						</view>
 					</view>
-					<uni-load-more :status="navitem.loadingType" v-if="!(navitem.orderList.length == 0 && navitem.loaded)"></uni-load-more>
+					<uni-load-more :status="navitem.loadingType"
+						v-if="!(navitem.orderList.length == 0 && navitem.loaded)"></uni-load-more>
 				</scroll-view>
 			</swiper-item>
-		</swiper>
+		</swiper> -->
 		<!-- 客服 -->
 		<uni-popup ref="popupkf" type="center">
 			<view class="popup-box">
@@ -190,7 +257,10 @@
 	</view>
 </template>
 <script>
-	import {sell,qxgd} from '@/api/order.js'
+	import {
+		sell,
+		qxgd
+	} from '@/api/order.js'
 	import uEmpty from '@/uview-ui/components/u-empty/u-empty.vue'
 	import {
 		mapState,
@@ -209,10 +279,6 @@
 		saveUrl,
 		interceptor
 	} from '@/utils/loginUtils.js';
-	import uniCopy from '@/js_sdk/xb-copy/uni-copy.js';
-	let startY = 0,
-		moveY = 0,
-		pageAtTop = true;
 	export default {
 		components: {
 			uniList,
@@ -221,22 +287,11 @@
 		},
 		data() {
 			return {
-				id:0,
-				isBuy:false,//是否卖出
-				item:'',//存放的数据
-				money:'',//卖出价格
-				height: '',
+				id: 0,
+				item: '', //当前选中要操作卖出商品的数据
+				money: '', //卖出价格
 				// 头部图高度
-				maxheight: '',
 				tabCurrentIndex: 0,
-				greenNum: 0,
-				text: 'liuniu',
-				coverTransform: 'translateY(0px)',
-				coverTransition: '0s',
-				moving: false,
-				userDowm: 0, //卡片升级专属高度
-				userMaxDowm: 0, //卡片最高高度
-				name: 'zyjshiwoshanver',
 				navList: [{
 					state: 0,
 					text: '我拥有的',
@@ -254,18 +309,13 @@
 					limit: 10,
 					loaded: false
 				}],
-				maiId: '',//当前卖出id
 			};
-		},
-		filters: {
-
 		},
 		onShow() {
-			console.log(this.userInfo,'//////');
 			if (this.hasLogin) {
 				this.loadBaseData();
 				// 返回页面刷新我的挂单数据
-				this.navList =  [{
+				this.navList = [{
 					state: 0,
 					text: '我拥有的',
 					loadingType: 'more',
@@ -284,26 +334,11 @@
 				}]
 				// 获取我的挂单
 				this.getMyNft()
-			}else {
+			} else {
 				this.loadBaseData();
 			}
 		},
 		onReady() {
-			
-			// 初始化获取页面宽度
-			let _this = this
-			uni.getSystemInfo({
-				success: resu => {
-					const query = uni.createSelectorQuery();
-					console.log(resu, 'query');
-					query.select('.swiper-box').boundingClientRect();
-					query.exec(function(res) {
-						_this.height = resu.windowHeight - res[0].top + 'px';
-						console.log('打印页面的剩余高度', _this.height);
-					});
-				},
-				fail: res => {}
-			});
 		},
 		computed: {
 			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
@@ -340,44 +375,48 @@
 			navPop(item) {
 				this.item = item
 				this.$refs.maipop.open()
-				
+
 			},
-			
-			buy(){
+
+			buy() {
 				let obj = this
-				console.log(obj.item,'item');
-				if(obj.price == '' ){
+				console.log(obj.item, 'item');
+				if (obj.price == '') {
 					obj.$api.msg('请输入价格')
 					return
 				}
 				sell({
-					price:obj.money
-				},obj.item.id).then(res=>{
-					console.log(res,'res');
-					obj.$api.msg('挂售成功!')
+					price: obj.money
+				}, obj.item.id).then(res => {
+					console.log(res, 'res');
+					uni.showModal({
+						title: '成功',
+						content: '挂售成功!',
+						showCancel: false,
+					});
 					obj.$refs.maipop.close()
-					obj.$set(this.navList[0].orderList,'isBuy',true)
-					
-					// this.getMyNft('tab')
-					
 				})
 			},
 			//取消卖出弹窗
-			qxMai(item){
+			qxMai(item) {
 				this.$refs.qumaipop.open()
-				console.log(item,'id');
+				console.log(item, 'id');
 				this.id = item
 			},
-			quxbuy(){
-				qxgd({},this.id).then(res=>{
-					console.log(res,"取消挂单");
+			// 取消挂单
+			quxbuy() {
+				qxgd({}, this.id).then(res => {
+					console.log(res, "取消挂单");
 					this.$refs.qumaipop.close()
-					this.$api.msg(res.msg)
-					
+					uni.showModal({
+						title: '成功',
+						content: '已成功取消挂单',
+						showCancel: false,
+					});
 				})
-				
+
 			},
-			
+
 			navGet(index) {
 				this.tabCurrentIndex = index
 				this.getMyNft('tab')
@@ -388,17 +427,6 @@
 				this.getMyNft('tab')
 			},
 			async loadData(sourse) {},
-			//复制
-			cope(name) {
-				uni.setClipboardData({
-					data: this.name,
-					success() {
-						uni.showToast({
-							title: '复制成功'
-						})
-					}
-				})
-			},
 			navTo(url) {
 				if (url == '') {
 					this.$api.msg('敬请期待');
@@ -445,30 +473,30 @@
 				let obj = this
 				let index = obj.tabCurrentIndex
 				let navitem = obj.navList[index]
-				if(type == 'tab' && navitem.loaded) {
+				if (type == 'tab' && navitem.loaded) {
 					return
 				}
-				if(navitem.loadingType == 'loading' || navitem.loadingType == 'noMore' ) {
+				if (navitem.loadingType == 'loading' || navitem.loadingType == 'noMore') {
 					return
 				}
 				navitem.loadingType = 'loading'
-				if(index == 0) {
+				if (index == 0) {
 					getMyNft({
 						page: navitem.page,
 						limit: navitem.limit
 					}).then(res => {
-						console.log(res,'res');
+						// console.log(res, 'res');
 						navitem.orderList = navitem.orderList.concat(res.data.list)
 						navitem.page++
-						if(res.data.list.length == navitem.limit ) {
+						if (res.data.list.length == navitem.limit) {
 							navitem.loadingType = 'more'
-						}else {
+						} else {
 							navitem.loadingType = 'noMore'
 						}
-						obj.$set(navitem,'loaded',true)
+						obj.$set(navitem, 'loaded', true)
 					})
 				}
-				if(index == 1) {
+				if (index == 1) {
 					console.log('get22')
 					myGdList({
 						page: navitem.page,
@@ -476,14 +504,14 @@
 						status: 2,
 					}).then(res => {
 						navitem.orderList = navitem.orderList.concat(res.data.list)
-						console.log(navitem.orderList,'navitem.orderList');
+						console.log(navitem.orderList, 'navitem.orderList');
 						navitem.page++
-						if(res.data.list.length == navitem.limit ) {
+						if (res.data.list.length == navitem.limit) {
 							navitem.loadingType = 'more'
-						}else {
+						} else {
 							navitem.loadingType = 'noMore'
 						}
-						obj.$set(navitem,'loaded',true)
+						obj.$set(navitem, 'loaded', true)
 					})
 				}
 			}
@@ -492,7 +520,8 @@
 	};
 </script>
 <style lang="scss">
-	page,.container {
+	page,
+	.container {
 		width: 750rpx;
 		height: 100%;
 		background: #111111;
@@ -643,9 +672,12 @@
 			margin: 30rpx 0 20rpx;
 			width: 25%;
 
+			.flex-center {
+				min-height: 60rpx;
+			}
+
 			image {
 				width: 42rpx;
-				height: 42rpx;
 				margin-bottom: 15rpx;
 			}
 
@@ -867,29 +899,30 @@
 			}
 		}
 	}
+
 	.main-box {
 		margin: 30rpx auto;
 		width: 690rpx;
-		background:#181818 ;
+		background: #181818;
 		// box-shadow: 0px 4rpx 14rpx 0px rgba(229, 229, 229, 0.46);
 		border-radius: 20rpx;
-	
+
 		.title {
 			display: flex;
 			justify-content: space-between;
 			align-items: center;
 			padding: 24rpx;
 			border-bottom: 1px solid #2f2f2f;
-	
+
 			.title-left {
 				display: flex;
 				align-items: center;
-	
+
 				.title-icon {
 					width: 32rpx;
 					height: 32rpx;
 				}
-	
+
 				.title-font {
 					margin-left: 20rpx;
 					font-size: 28rpx;
@@ -898,34 +931,36 @@
 					color: #fff;
 				}
 			}
-	
+
 			.title-right {
 				width: 14rpx;
 				height: 24rpx;
 			}
 		}
-	
+
 		.main {
 			padding: 50rpx 0 30rpx;
+
 			.jg {
 				width: 1px;
 				height: 100rpx;
 				background: #EEEEEE;
 			}
+
 			.item {
 				padding-bottom: 20rpx;
 				width: 25%;
 				display: flex;
 				flex-direction: column;
 				align-items: center;
-	
+
 				.item-num {
 					font-size: 36rpx;
 					font-family: PingFang SC;
 					font-weight: bold;
 					color: #333333;
 				}
-	
+
 				.item-font {
 					margin-top: 18rpx;
 					font-size: 22rpx;
@@ -934,18 +969,18 @@
 					color: #666666;
 				}
 			}
-	
+
 			.oitem {
 				width: 25%;
 				display: flex;
 				flex-direction: column;
 				align-items: center;
-	
+
 				.oitem-image {
 					height: 50rpx;
 					width: 48rpx;
 				}
-	
+
 				.oitem-font {
 					margin-top: 20rpx;
 					font-size: 24rpx;
@@ -956,6 +991,7 @@
 			}
 		}
 	}
+
 	.dy-list {
 		flex-wrap: wrap;
 		padding: 30rpx;

BIN
static/img/ali.png


BIN
static/user/user12.png


+ 1 - 1
store/index.js

@@ -12,7 +12,7 @@ Vue.use(Vuex)
 const store = new Vuex.Store({
 	state: {
 		// baseURL:"http://yrh.liuniu946.com",//'http://eb.shuibo.net',//请求地址配置 
-		baseURL:"http://bsn.frp.liuniu946.com/", //请求地址配置 
+		baseURL:"http://www.zhejianghuiyi.art", //请求地址配置 
 		// baseURL:'http://lnpt.frp.liuniu946.com/',//请求地址配置 
 		urlFile: '/index', //项目部署所在文件夹
 		userInfo: {}, //登录信息

+ 1 - 1
unpackage/cache/apk/apkurl

@@ -1 +1 @@
-https://ide.dcloud.net.cn/build/download/96de91c0-17c2-11ed-9dfb-c51001aac538
+https://ide.dcloud.net.cn/build/download/5d3c7840-1d0d-11ed-80ee-835ff0d8c65a

File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/apk/cmManifestCache.json


+ 2 - 2
unpackage/cache/appleConfig.ini

@@ -1,11 +1,11 @@
 [appleAppid]
-appleAppid=com.wlg.appname
+appleAppid=com.szcp.cn
 
 [appstore]
 appstore=a345c7818898c33f7f08ea15fd19f7d8
 
 [iosStyle]
-iosStyle=storyboard
+iosStyle=common
 
 [universalLinks]
 universalLinks=https://static-f2ce8da9-3823-402a-bd21-675f08b3b09b.bspapp.com/uni-universallinks/__UNI__CDE33A2/

+ 1 - 1
unpackage/cache/certdata

@@ -1,3 +1,3 @@
-andrCertfile=C:/Users/Administrator/Desktop/szcp.keystore
+andrCertfile=E:/item/item/shuzi/unpackage/key/android/szcp.keystore
 andrCertAlias=com.szcp.cn
 andrCertPass=7IwuiYJfyRjKKTfhI7sjzw==

+ 2 - 2
unpackage/cache/certdataios

@@ -1,3 +1,3 @@
-iosProfile=C:/Users/Administrator/Desktop/wlgapp.mobileprovision
-ioscertFile=C:/Users/Administrator/Desktop/证书(4).p12
+iosProfile=E:/item/item/shuzi/unpackage/key/ios/yihuiapp.mobileprovision
+ioscertFile=E:/item/item/shuzi/unpackage/key/ios/证书.p12
 ioscertPassword=ep/Tdjka4Y7WYqDB6/S7dw==

BIN
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/google-keystore.keystore


BIN
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-hdpi.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xhdpi.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xxhdpi.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xxxhdpi.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-hdpi.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-xhdpi.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-xxhdpi.png


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/__uniappchooselocation.js


BIN
unpackage/cache/wgt/__UNI__6E56E0F/__uniapperror.png


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/__uniappes6.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/__uniappopenlocation.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/__uniapppicker.js


File diff suppressed because it is too large
+ 0 - 6
unpackage/cache/wgt/__UNI__6E56E0F/__uniappquill.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/__uniappquillimageresize.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/__uniappscan.js


BIN
unpackage/cache/wgt/__UNI__6E56E0F/__uniappsuccess.png


+ 0 - 25
unpackage/cache/wgt/__UNI__6E56E0F/__uniappview.html

@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-CN">
-
-  <head>
-    <meta charset="UTF-8" />
-    <script>
-      var __UniViewStartTime__ = Date.now();
-      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
-        CSS.supports('top: constant(a)'))
-      document.write(
-        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
-        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
-    </script>
-    <title>View</title>
-    <link rel="stylesheet" href="view.css" />
-  </head>
-
-  <body>
-    <div id="app"></div>
-    <script src="__uniappes6.js"></script>
-    <script src="view.umd.min.js"></script>
-    <script src="app-view.js"></script>
-  </body>
-
-</html>

File diff suppressed because it is too large
+ 0 - 3
unpackage/cache/wgt/__UNI__6E56E0F/app-config-service.js


+ 0 - 1
unpackage/cache/wgt/__UNI__6E56E0F/app-config.js

@@ -1 +0,0 @@
-(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);

File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/app-service.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/app-view.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/manifest.json


+ 0 - 551
unpackage/cache/wgt/__UNI__6E56E0F/static/css/cmy.css

@@ -1,551 +0,0 @@
-/*初始化类*/
-@font-face {
-	font-family: 'iconfont';
-	/* project id 1482221 */
-	src: url('https://at.alicdn.com/t/font_1482221_x9emymthrxs.eot');
-	src: url('https://at.alicdn.com/t/font_1482221_x9emymthrxs.eot?#iefix') format('embedded-opentype'),
-		url('https://at.alicdn.com/t/font_1482221_x9emymthrxs.woff2') format('woff2'),
-		url('https://at.alicdn.com/t/font_1482221_x9emymthrxs.woff') format('woff'),
-		url('https://at.alicdn.com/t/font_1482221_x9emymthrxs.ttf') format('truetype'),
-		url('https://at.alicdn.com/t/font_1482221_x9emymthrxs.svg#iconfont') format('svg');
-}
-
-.acea-row {
-	display: -webkit-box;
-	display: -moz-box;
-	display: -webkit-flex;
-	display: -ms-flexbox;
-	display: flex;
-	-webkit-box-lines: multiple;
-	-moz-box-lines: multiple;
-	-o-box-lines: multiple;
-	-webkit-flex-wrap: wrap;
-	-ms-flex-wrap: wrap;
-	flex-wrap: wrap
-}
-
-.acea-row.row-middle {
-	-webkit-box-align: center;
-	-moz-box-align: center;
-	-o-box-align: center;
-	-ms-flex-align: center;
-	-webkit-align-items: center;
-	align-items: center
-}
-
-.bg-color-red {
-	background-color: #e93323 !important;
-}
-
-.acea-row.row-right {
-	-webkit-box-pack: end;
-	-moz-box-pack: end;
-	-o-box-pack: end;
-	-ms-flex-pack: end;
-	-webkit-justify-content: flex-end;
-	justify-content: flex-end
-}
-
-.acea-row.row-between-wrapper {
-	-webkit-box-align: center;
-	-moz-box-align: center;
-	-o-box-align: center;
-	-ms-flex-align: center;
-	-webkit-align-items: center;
-	align-items: center;
-	-webkit-box-pack: justify;
-	-moz-box-pack: justify;
-	-o-box-pack: justify;
-	-ms-flex-pack: justify;
-	-webkit-justify-content: space-between;
-	justify-content: space-between
-}
-
-.acea-row.row-column-around {
-	-webkit-flex-direction: column;
-	-ms-flex-direction: column;
-	flex-direction: column;
-	justify-content: space-around;
-	-webkit-justify-content: space-around
-}
-
-.acea-row.row-center-wrapper {
-	-webkit-box-align: center;
-	-moz-box-align: center;
-	-o-box-align: center;
-	-ms-flex-align: center;
-	-webkit-align-items: center;
-	align-items: center;
-	-webkit-box-pack: center;
-	-moz-box-pack: center;
-	-o-box-pack: center;
-	-ms-flex-pack: center;
-	-webkit-justify-content: center;
-	justify-content: center
-}
-
-.iconfont {
-	font-family: "iconfont" !important;
-	font-size: 34rpx;
-	font-style: normal;
-	-webkit-font-smoothing: antialiased;
-	-webkit-text-stroke-width: 0rpx;
-	-moz-osx-font-smoothing: grayscale;
-}
-
-.iconedit:before {
-	content: "\e649";
-}
-
-.iconfavorfill:before {
-	content: "\e64b";
-}
-
-.iconfavor:before {
-	content: "\e64c";
-}
-
-.iconlocation:before {
-	content: "\e651";
-}
-
-.iconroundcheckfill:before {
-	content: "\e656";
-}
-
-.iconroundcheck:before {
-	content: "\e657";
-}
-
-.iconunfold:before {
-	content: "\e661";
-}
-
-.iconlikefill:before {
-	content: "\e668";
-}
-
-.iconlike:before {
-	content: "\e669";
-}
-
-.iconshop:before {
-	content: "\e676";
-}
-
-.iconcart:before {
-	content: "\e6af";
-}
-
-.icondelete:before {
-	content: "\e6b4";
-}
-
-.iconhome:before {
-	content: "\e6b8";
-}
-
-.iconcartfill:before {
-	content: "\e6b9";
-}
-
-.iconhomefill:before {
-	content: "\e6bb";
-}
-
-.iconlock:before {
-	content: "\e6c0";
-}
-
-.iconfriendadd:before {
-	content: "\e6ca";
-}
-
-.iconfold:before {
-	content: "\e6de";
-}
-
-.iconapps:before {
-	content: "\e729";
-}
-
-.iconadd:before {
-	content: "\e767";
-}
-
-.iconmove:before {
-	content: "\e768";
-}
-
-.icontriangledownfill:before {
-	content: "\e79b";
-}
-
-.icontriangleupfill:before {
-	content: "\e79c";
-}
-
-.iconshaixuan:before {
-	content: "\e74a";
-}
-
-.iconyanzhengma:before {
-	content: "\e684";
-}
-
-.iconjifen:before {
-	content: "\e60f";
-}
-
-.iconwuliuxinxi:before {
-	content: "\e62b";
-}
-
-.iconmessage:before {
-	content: "\e78a";
-}
-
-.iconsetting:before {
-	content: "\e78e";
-}
-
-.iconaddition:before {
-	content: "\e6e0";
-}
-
-.iconclose:before {
-	content: "\e6e9";
-}
-
-.iconenter:after {
-	content: "\e6f8";
-}
-
-.iconprompt:before {
-	content: "\e71b";
-}
-
-.iconreturn:before {
-	content: "\e720";
-}
-
-.iconsearch:before {
-	content: "\e741";
-}
-
-.iconpengyouquan:before {
-	content: "\e62c";
-}
-
-.iconweixin:before {
-	content: "\e60e";
-}
-
-.iconzhifubao:before {
-	content: "\e673";
-}
-
-.iconyue:before {
-	content: "\e618";
-}
-
-.iconweixin1:before {
-	content: "\e622";
-}
-
-.iconlock1:before {
-	content: "\e64d";
-}
-
-.iconuser:before {
-	content: "\e64e";
-}
-
-.iconchenggongtixianshouyi:before {
-	content: "\e64f";
-}
-
-.iconviptuiguangdingdan:before {
-	content: "\e650";
-}
-
-.icondaifukuan:before {
-	content: "\e652";
-}
-
-.icondaijiesuanshouyi:before {
-	content: "\e653";
-}
-
-.icondaidakuanshouyi:before {
-	content: "\e654";
-}
-
-.icondaifahuo:before {
-	content: "\e655";
-}
-
-.icondaishouhuoshouyi:before {
-	content: "\e658";
-}
-
-.icondaishouhuo:before {
-	content: "\e659";
-}
-
-.iconwuxiaoshouyi:before {
-	content: "\e65a";
-}
-
-.icontixianmingxi:before {
-	content: "\e65b";
-}
-
-.iconshouyi:before {
-	content: "\e65c";
-}
-
-.iconkouchutixianshouxufei:before {
-	content: "\e65d";
-}
-
-.iconyishenqingshouyi:before {
-	content: "\e65e";
-}
-
-.icontuihuanhuo:before {
-	content: "\e65f";
-}
-
-
-/*水平线*/
-.hr {
-	width: 100%;
-	position: relative;
-	border-bottom: 1px solid #dddddd;
-	/* height: 0.5rpx; */
-}
-
-/* 一行显示 */
-.clamp {
-	overflow: hidden;
-	text-overflow: ellipsis;
-	white-space: nowrap;
-	display: block;
-}
-
-/* 二行显示 */
-.clamp2 {
-	overflow: hidden;
-	text-overflow: ellipsis;
-	display: -webkit-box;
-	-webkit-line-clamp: 2;
-	-webkit-box-orient: vertical;
-}
-
-/* 二行显示 */
-.ellipsis {
-	overflow: hidden;
-	text-overflow: ellipsis;
-	display: -webkit-box;
-	-webkit-box-orient: vertical;
-	-webkit-line-clamp: 2;
-}
-
-.common-hover {
-	background: #f5f5f5;
-}
-
-/* 角标 */
-.corner {
-	background-color: #e51c23;
-	position: absolute;
-	right: -18rpx;
-	top: -18rpx;
-	color: #FFFFFF;
-	text-align: center;
-	border-radius: 999px;
-	font-size: 24rpx !important;
-	min-width: 35rpx;
-	min-height: 35rpx;
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	line-height: 1;
-}
-
-.flex_item {
-	display: flex;
-	align-items: center;
-	/* justify-content: space-between; */
-}
-
-/* 左右顶格加上下居中 */
-.flex-between-center {
-	display: flex;
-	justify-content: space-between;
-	align-items: center;
-}
-
-/* flex布局-整体居中 */
-.flex-center {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-}
-
-.flex-start {
-	display: flex;
-	align-items: center;
-	justify-content: flex-start;
-}
-
-/*文字对齐*/
-.text-left {
-	text-align: left !important;
-}
-
-.text-center {
-	text-align: center !important;
-}
-
-.text-justify {
-	text-align: justify !important;
-}
-
-.text-right {
-	text-align: right !important;
-}
-
-.text-default {
-	color: #212121 !important;
-}
-
-.text-white {
-	color: #ffffff !important;
-}
-
-.text-primary {
-	color: #00bcd4 !important;
-}
-
-.text-success {
-	color: #009688 !important;
-}
-
-.text-info {
-	color: #03a9f4 !important;
-}
-
-.text-warning {
-	color: #ffc107 !important;
-}
-
-.text-danger {
-	color: #e51c23 !important;
-}
-
-.text-pink {
-	color: #e91e63 !important;
-}
-
-.text-purple {
-	color: #673ab7 !important;
-}
-
-.text-indigo {
-	color: #3f51b5 !important;
-}
-
-.text-gray {
-	color: #999999 !important;
-}
-
-.bg-default {
-	background-color: #f5f5f5 !important;
-}
-
-.bg-primary {
-	background-color: #00bcd4 !important;
-}
-
-.bg-success {
-	background-color: #009688 !important;
-}
-
-.bg-info {
-	background-color: #03a9f4 !important;
-}
-
-.bg-warning {
-	background-color: #FFB238 !important;
-}
-
-.bg-danger {
-	background-color: #DC4D46 !important;
-}
-
-.bg-pink {
-	background-color: #e91e63 !important;
-}
-
-.bg-purple {
-	background-color: #673ab7 !important;
-}
-
-.bg-indigo {
-	background-color: #3f51b5 !important;
-}
-
-.bg-white {
-	background-color: white !important;
-}
-
-.bg-gray {
-	background-color: #e3e3e3 !important;
-}
-
-/* 边框 */
-.border-radius-15 {
-	border-radius: 15rpx;
-}
-
-.border-radius-10 {
-	border-radius: 10rpx;
-}
-
-.border-radius-all {
-	border-radius: 1000rpx;
-}
-
-/* 底部边线 */
-.borde-b {
-	border-bottom: 1px solid #dddddd;
-}
-
-/* 弹性盒子 */
-.flex {
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-}
-
-.items-left {
-	justify-content: flex-start;
-}
-
-.items-right {
-	justify-content: flex-end;
-}
-
-.flex-shrink-false {
-	flex-shrink: 0;
-}
-
-.flex-grow-true {
-	flex-grow: 1;
-}
-
-.position-relative {
-	position: relative;
-}

BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/error/emptyCart.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/error/errorImage.jpg


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/error/missing-face.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game02.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game03.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game04.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game05.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game06.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game07.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game08.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game1.gif


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game10.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game11.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game12.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game13.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game14.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game2.gif


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/game3.gif


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb01.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb02.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb03.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb04.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb05.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/1.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/add.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/appleIcon.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/bdsj.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c3.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c5.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c6.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c7.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c8.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/dsjh.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/fanhui.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/goto.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i1.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i2.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i3.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i4.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i5.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i6.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i7.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i8.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/img01.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/img02.png


BIN
unpackage/cache/wgt/__UNI__6E56E0F/static/icon/img03.png


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