hwq 2 years ago
parent
commit
e705cb38b7
5 changed files with 1556 additions and 1080 deletions
  1. 33 0
      components/js_sdk/xb-copy/uni-copy.js
  2. 466 359
      pages/index/bazaar.vue
  3. 620 621
      pages/product/product.vue
  4. 422 99
      pages/user/team.vue
  5. 15 1
      pages/user/user.vue

+ 33 - 0
components/js_sdk/xb-copy/uni-copy.js

@@ -0,0 +1,33 @@
+export default function uniCopy(content) {
+	/**
+	 * 小程序端 和 app端的复制逻辑
+	 */
+	//#ifndef H5
+	uni.setClipboardData({
+		data: content,
+		success: function() {
+			console.log('success');
+			return true
+		}
+	});
+	//#endif
+	
+	/**
+	 * H5端的复制逻辑
+	 */
+	// #ifdef H5
+	if (!document.queryCommandSupported('copy')) { //为了兼容有些浏览器 queryCommandSupported 的判断
+		// 不支持
+		return false
+	}
+	let textarea = document.createElement("textarea")
+	textarea.value = content
+	textarea.readOnly = "readOnly"
+	document.body.appendChild(textarea)
+	textarea.select() // 选择对象
+	textarea.setSelectionRange(0, content.length) //核心
+	let result = document.execCommand("copy") // 执行浏览器复制命令
+	textarea.remove()
+	return result
+	// #endif
+}

+ 466 - 359
pages/index/bazaar.vue

@@ -1,461 +1,568 @@
 <template>
 	<view class="container">
-		<view class="top">
-			<view class="vheight"></view>
-			<view class="input-box flex">
-				<view class="input-content flex">
-					<view class="iconfont iconsearch"></view>
-					<view class="input"><input type="text" v-model="keyword" placeholder="请输入搜索内容" /></view>
+		<view v-if="isshow == 1">
+			<view class="top">
+				<view class="vheight"></view>
+				<view class="input-box flex">
+					<view class="input-content flex">
+						<view class="iconfont iconsearch"></view>
+						<view class="input"><input type="text" v-model="keyword" placeholder="请输入搜索内容" /></view>
+					</view>
+					<view class="input-button flex" @click="searchNew"><text>搜索</text></view>
 				</view>
-				<view class="input-button flex" @click="searchNew"><text>搜索</text></view>
 			</view>
-		</view>
-		<view class="box">
-			<view class="box-title">
-				<view class="left">
-					艺绘
-				</view>
-				<view class="right" @click="navTo('/pages/index/cangp')">
-					查看更多 >
+			<view class="navbar">
+				<view class="nav-item" :class="{ current: filterIndex === 0 }" @click="tabClick(0)">综合排序</view>
+				<view class="nav-item" :class="{ current: filterIndex === 2 }" @click="tabClick(2)">
+					<text>价格</text>
+					<view class="p-box">
+						<text :class="{ active: priceOrder === 1 && filterIndex === 2 }" class="iconfont iconfold"></text>
+						<text :class="{ active: priceOrder === 2 && filterIndex === 2 }" class="iconfont iconfold xia"></text>
+					</view>
 				</view>
 			</view>
-			<view class="box-content" v-for="(item,index) in list" @click="buy(item)">
-				<view class="img">
-					<image :src="item.class_info.uri" mode=""></image>
+			<view class="box">
+				<view class="box-title">
+					<view class="left">艺绘</view>
+					<view class="right" @click="navTo('/pages/index/cangp')">查看更多 ></view>
 				</view>
-				<view class="content-title">
-					<view class="title">
-						{{item.class_info.name}}
-					</view>
-					<view class="text">
-						持有者:{{item.user.nickname}}
-					</view>
-					<view class="text">
-					价格: <span style = "font-size: 32rpx; color:#A581FF" >¥{{item.price}}</span>
+				<view class="box-content" v-for="(item, index) in list" @click="buy(item)">
+					<view class="img"><image :src="item.class_info.uri" mode=""></image></view>
+					<view class="content-title">
+						<view class="title">{{ item.class_info.name }}</view>
+						<view class="text">持有者:{{ item.user.nickname }}</view>
+						<view class="text">
+							价格:
+							<span style="font-size: 32rpx; color:#A581FF">¥{{ item.price }}</span>
+						</view>
 					</view>
 				</view>
 			</view>
+			<view class="btm" style="height: 44px;"></view>
 		</view>
-		<view class="btm" style="height: 44px;"></view>
+		<view class="jqqd" v-else>敬请期待</view>
 	</view>
 </template>
 
 <script>
-	import {
-		getBargainList,
-		getProducts
-	} from '@/api/product.js';
-	import {
-		nftmall,nftDetail
-	} from '@/api/order.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 {
-				list: [], //卡片信息
-				page: 1,
-				limit: 10,
-				loadType: 'more',
-				text: [],
-				article: [],
-				page:1,
-				limit:10,
-				keyword:'',//搜索内容
-			};
-		},
-		computed: {
-			...mapState(['loginInterceptor', 'baseURL']),
-			...mapState('user', ['hasLogin', 'userInfo'])
+import { getBargainList, getProducts } from '@/api/product.js';
+import { nftmall, nftDetail } from '@/api/order.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 {
+			list: [], //卡片信息
+			page: 1,
+			limit: 10,
+			loadType: 'more',
+			headerPosition: 'fixed',
+			headerTop: '0px',
+			filterIndex: 0, //查询类型
+			priceOrder: 0, //1 价格从低到高 2价格从高到低
+			text: [],
+			article: [],
+			page: 1,
+			limit: 10,
+			isshow: 1, //是否显示1显示2敬请期待
+			keyword: '' //搜索内容
+		};
+	},
+	computed: {
+		...mapState(['loginInterceptor', 'baseURL']),
+		...mapState('user', ['hasLogin', 'userInfo'])
+	},
+	onLoad: function(option) {
+		if (this.hasLogin) {
+			this.loadIndex();
+			// this.getProduct();
+		}
+	},
+	onShow: function() {
+		if (this.hasLogin) {
+			this.pdshow();
+			this.loadIndex();
+			// this.getProduct();
+		}
+	},
+	// onReachBottom() {
+	// 	this.getproducts();
+
+	// },
+	methods: {
+		...mapMutations(['setLat', 'setLon']),
+		// 判断是否显示
+		pdshow() {
+			loadIndexs().then(e => {
+				if (e.data.market_switch == '1') {
+					this.isshow = 1;
+				} else {
+					this.isshow = 2;
+				}
+			});
 		},
-		onLoad: function(option) {
-			if (this.hasLogin) {
-				this.loadIndex()
-				this.getProduct()
+		//市场列表
+		loadIndex() {
+			let obj = this;
+			let data = {
+				page: obj.page,
+				limit: obj.limit,
+				key_word: obj.keyword
+			};
+			if (obj.filterIndex == 2) {
+				if (obj.priceOrder == 1) {
+					data.order = 'price_asc';
+				} else {
+					data.order = 'price_desc';
+				}
 			}
+			nftmall(data).then(res => {
+				// console.log(res, 'res');
+				obj.list = res.data.list;
+				// obj.carouselList = res.data.banner
+				// console.log(res,'res');
+				// obj.list = res.data.info.fastList
+			});
 		},
-		onShow: function() {
-			if (this.hasLogin) {
-				this.loadIndex()
-				this.getProduct()
-			}
+		// 搜索
+		searchNew() {
+			this.page = 1;
+			this.loadIndex();
 		},
-		// onReachBottom() {
-		// 	this.getproducts();
-		
-		// },
-		methods: {
-			...mapMutations(['setLat', 'setLon']),
-			//市场列表
-			loadIndex() {
-				let obj = this
-				nftmall({
-					page:obj.page,
-					limit:obj.limit,
-					key_word:obj.keyword
-				}).then(res => {
-					// console.log(res, 'res');
-					obj.list = res.data.list
-					// obj.carouselList = res.data.banner
-					// console.log(res,'res');
-					// obj.list = res.data.info.fastList
-
-				})
-			},
-			// 搜索
-			searchNew(){
-				this.page=1;
-				this.loadIndex()
-			},
-			getProduct() {
-				let obj = this
-				getProducts().then(res => {
-					// obj.carouselList = res.data.banner
+		getProduct() {
+			let obj = this;
+			getProducts().then(res => {
+				// obj.carouselList = res.data.banner
 				// console.log(res,'rrrrrrrrr')
 				// 	obj.list = res.list
 				// 	console.log(obj.list, 'res');
+			});
+		},
+		buy(item) {
+			console.log(item, 'res');
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + item.id + '&isSc=1'
+			});
+		},
+		navTo(url) {
+			uni.switchTab({
+				url
+			});
+		},
 
-				})
-			},
-			buy(item) {
-				console.log(item, 'res');
-				uni.navigateTo({
-					url: '/pages/product/product?id=' + item.id+'&isSc=1'
-				})
-			},
-			navTo(url) {
-				uni.switchTab({
-					url
-				})
-			},
-
-			// 點擊搜索框
-			clickSearch() {
-				uni.navigateTo({
-					url: '/pages/product/search'
-				});
-			},
-			swiperChange() {}
-
-
-
-		}
-	};
+		// 點擊搜索框
+		clickSearch() {
+			uni.navigateTo({
+				url: '/pages/product/search'
+			});
+		},
+		//筛选点击
+		tabClick(index) {
+			// 防止重复点击综合排序
+			if (this.filterIndex === 0 && this.filterIndex === index) {
+				return;
+			}
+			this.filterIndex = index;
+			// 判断是否为销量优先
+			if (index === 1) {
+				this.numberOrder = this.numberOrder === 1 ? 2 : 1;
+			}
+			// 判断是否为价格优先
+			if (index === 2) {
+				this.priceOrder = this.priceOrder === 1 ? 2 : 1;
+			}
+			// 初始化页数
+			this.page = 1;
+			// 初始化数组
+			uni.pageScrollTo({
+				duration: 300,
+				scrollTop: 0
+			});
+			this.loadIndex();
+		},
+		swiperChange() {}
+	}
+};
 </script>
 
 <style lang="scss">
-	page {
-		width: 750rpx;
-		height: 100%;
-		background: #111111;
-	}
-.container{
+page {
+	width: 750rpx;
+	height: 100%;
+	background: #111111;
+}
+.container {
 	/* #ifdef H5 */
 	padding-top: 100rpx;
 	/* #endif */
 	/* #ifdef APP */
-	padding-top: calc(100rpx + var(--status-bar-height)) ;
+	padding-top: calc(100rpx + var(--status-bar-height));
 	/* #endif */
 }
-	.top {
-		position: fixed;
-		z-index: 9999;
+.top {
+	position: fixed;
+	z-index: 9999;
+	top: 0;
+	left: 0;
+	width: 100%;
+	.top-bg {
+		position: absolute;
 		top: 0;
 		left: 0;
+		right: 0;
 		width: 100%;
-		.top-bg {
-			position: absolute;
-			top: 0;
-			left: 0;
-			right: 0;
-			width: 100%;
-			height: 100%;
-		}
+		height: 100%;
+	}
 
-		.top-main {
-			position: relative;
-			z-index: 2;
-			padding: 30rpx;
+	.top-main {
+		position: relative;
+		z-index: 2;
+		padding: 30rpx;
 
-			.search-box {
-				justify-content: center;
-				width: 698rpx;
-				height: 60rpx;
-				background: #191919;
+		.search-box {
+			justify-content: center;
+			width: 698rpx;
+			height: 60rpx;
+			background: #191919;
 
-				// box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
-				border-radius: 30rpx;
+			// box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
+			border-radius: 30rpx;
 
-				.search {
-					width: 34rpx;
-					height: 34rpx;
-				}
+			.search {
+				width: 34rpx;
+				height: 34rpx;
+			}
 
-				.search-font {
-					margin-left: 14rpx;
-					font-size: 28rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #a4a4a4;
-				}
+			.search-font {
+				margin-left: 14rpx;
+				font-size: 28rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #a4a4a4;
 			}
 		}
 	}
+}
 
-	.box {
-		margin: 0 30rpx;
-
-		.box-title {
-			display: flex;
-			justify-content: space-between;
+.box {
+	margin: 0 30rpx;
 
-			.left {
-				font-size: 38rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #FFFFFF;
-				line-height: 120rpx;
-			}
+	.box-title {
+		display: flex;
+		justify-content: space-between;
 
-			.right {
-
-				font-size: 24rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #FFFFFF;
-				line-height: 120rpx;
-			}
+		.left {
+			font-size: 38rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ffffff;
+			line-height: 120rpx;
+		}
 
+		.right {
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #ffffff;
+			line-height: 120rpx;
 		}
+	}
 
-		.box-content {
-			width: 690rpx;
-			height: 915rpx;
-			margin: 50rpx 0;
+	.box-content {
+		width: 690rpx;
+		height: 915rpx;
+		margin: 50rpx 0;
 
-			.img {
-				width: 690rpx;
-				height: 690rpx;
+		.img {
+			width: 690rpx;
+			height: 690rpx;
 
-				image {
-					width: 100%;
-					height: 100%;
-				}
+			image {
+				width: 100%;
+				height: 100%;
 			}
+		}
 
-			.content-title {
-				margin-top: -10rpx;
-				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);
+		.content-title {
+			margin-top: -10rpx;
+			padding: 30rpx 20rpx;
 
-				.title {
-					font-size: 39rpx;
-					font-weight: bold;
-					color: #FFFFFF;
-					margin-bottom: 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 {
+				font-size: 39rpx;
+				font-weight: bold;
+				color: #ffffff;
+				margin-bottom: 20rpx;
+			}
 
-				.text {
-					margin: 10rpx 0;
-					color: #FFFFFF;
-					font-size: 26rpx;
-				}
+			.text {
+				margin: 10rpx 0;
+				color: #ffffff;
+				font-size: 26rpx;
 			}
 		}
 	}
+}
 
-	.popup-box {
-		width: 522rpx;
-		height: 605rpx;
-		background-color: #ffffff;
-		border-radius: 20rpx;
+.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;
 
-		.img {
-			position: relative;
-			top: -56rpx;
-			left: 0;
-			width: 522rpx;
+		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;
+		background-color: #ffffff;
+		border-radius: 0 0 20rpx 20rpx;
+		text-align: center;
+
+		.delivery {
+			font-size: 40rpx;
+			color: #333333;
 			display: flex;
-			justify-content: center;
+			align-items: center;
+			flex-direction: column;
+
+			.title {
+			}
 
 			image {
-				border-radius: 20rpx 20rpx 0 0;
-				width: 450rpx;
-				height: 132rpx;
+				margin-top: 48rpx;
+				width: 172rpx;
+				height: 160rpx;
 			}
 		}
 
-		.mian {
-			margin-top: -44rpx;
+		.nocancel {
+			font-size: 32rpx;
+			color: #333333;
+			margin-top: 14rpx;
+		}
+
+		.comfirm-box {
+			margin-top: 52rpx;
 			display: flex;
-			flex-direction: column;
-			align-items: center;
-			// padding: 32rpx 32rpx;
-			background-color: #ffffff;
-			border-radius: 0 0 20rpx 20rpx;
-			text-align: center;
-
-			.delivery {
-				font-size: 40rpx;
-				color: #333333;
+			// margin-bottom: 32rpx;
+
+			// justify-content: space-around;
+			.cancel {
 				display: flex;
 				align-items: center;
-				flex-direction: column;
-
-				.title {}
-
-				image {
-					margin-top: 48rpx;
-					width: 172rpx;
-					height: 160rpx;
-				}
-			}
+				justify-content: center;
+				width: 197rpx;
+				height: 74rpx;
+				border: 1px solid #dcc786;
+				border-radius: 38rpx;
 
-			.nocancel {
 				font-size: 32rpx;
-				color: #333333;
-				margin-top: 14rpx;
+				color: #605128;
 			}
 
-			.comfirm-box {
-				margin-top: 52rpx;
+			.comfirm {
+				margin-left: 32rpx;
 				display: flex;
-				// 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;
-				}
+				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 {
+	.tongz-bg {
+		position: absolute;
+		top: 0;
+		right: 0;
+		left: 0;
 		width: 690rpx;
 		height: 70rpx;
-		margin: 32rpx auto 0;
-		padding: 18rpx 30rpx 18rpx 24rpx;
-		align-items: center;
-		position: relative;
 
-		.tongz-bg {
-			position: absolute;
-			top: 0;
-			right: 0;
-			left: 0;
-			width: 690rpx;
-			height: 70rpx;
-
-			image {
-				width: 100%;
-				height: 100%;
-			}
+		image {
+			width: 100%;
+			height: 100%;
 		}
+	}
 
-		.tongz-left {
-			width: 640rpx;
+	.tongz-left {
+		width: 640rpx;
 
-			.image-left {
-				width: 28rpx;
-				height: 34rpx;
-			}
+		.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-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;
+	.tongz-right {
+		position: relative;
+		z-index: 11;
+		width: 12rpx;
+		height: 26rpx;
 
-			image {
-				width: 100%;
-				height: 100%;
-			}
+		image {
+			width: 100%;
+			height: 100%;
 		}
 	}
-	.vheight{
-		height: var(--status-bar-height);
-		background-color: #111111;
+}
+.vheight {
+	height: var(--status-bar-height);
+	background-color: #111111;
+}
+.input-box {
+	padding: 25rpx;
+	background-color: #111111;
+	height: 44px;
+	.iconsearch {
+		font-size: 50rpx;
 	}
-	.input-box {
-		padding: 25rpx;
-		background-color: #111111;
-		height: 44px;
-		.iconsearch {
-			font-size: 50rpx;
+	.leftIcon {
+		padding-right: 10px;
+		.icon {
+			width: 20px;
 		}
-		.leftIcon{
-			padding-right: 10px;
-			.icon{
-				width: 20px;
+	}
+	.input-content {
+		border-radius: 99rpx;
+		flex-grow: 1;
+		padding: 10rpx 30rpx;
+		background-color: rgba(231, 231, 231, 0.7);
+		.input {
+			flex-grow: 1;
+			input {
+				font-size: $font-lg;
 			}
 		}
-		.input-content {
-			border-radius: 99rpx;
-			flex-grow: 1;
-			padding: 10rpx 30rpx;
-			background-color: rgba(231, 231, 231, 0.7);
-			.input {
-				flex-grow: 1;
-				input {
-					font-size: $font-lg;
-				}
+	}
+	.input-button {
+		padding-left: 20rpx;
+		font-size: $font-lg;
+		height: 100%;
+		color: #ffffff;
+	}
+}
+.navbar {
+	display: flex;
+	width: 100%;
+	height: 80rpx;
+	box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.06);
+	z-index: 10;
+	.nav-item {
+		flex: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 30rpx;
+		color: #fff;
+		position: relative;
+		&.current {
+			color: #917bf6;
+			&:after {
+				content: '';
+				position: absolute;
+				left: 50%;
+				bottom: 0;
+				transform: translateX(-50%);
+				width: 120rpx;
+				height: 0;
+				border-bottom: 4rpx solid #917bf6;
 			}
 		}
-		.input-button {
-			padding-left: 20rpx;
-			font-size: $font-lg;
-			height: 100%;
-			color: #FFFFFF;
+	}
+	.p-box {
+		display: flex;
+		flex-direction: column;
+		.iconfont {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 30rpx;
+			height: 14rpx;
+			line-height: 1;
+			margin-left: 4rpx;
+			font-size: 26rpx;
+			color: #888;
+			&.active {
+				color: #917bf6;
+			}
+		}
+		.xia {
+			transform: scaleY(-1);
+		}
+	}
+	.cate-item {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		width: 80rpx;
+		position: relative;
+		font-size: 44rpx;
+		&:after {
+			content: '';
+			position: absolute;
+			left: 0;
+			top: 50%;
+			transform: translateY(-50%);
+			border-left: 1px solid #ddd;
+			width: 0;
+			height: 36rpx;
 		}
 	}
+}
+.jqqd {
+	color: #fff;
+	text-align: center;
+	font-size: 40rpx;
+}
 </style>

+ 620 - 621
pages/product/product.vue

@@ -1,83 +1,67 @@
 <template>
 	<view class="container">
 		<view class="swiper-box">
-			<view class="img" v-if="isSc==2">
-				<image :src="shopDetail.image" mode="widthFix"></image>
-			</view>
-			<view class="img" v-if="isSc==1">
-				<image :src="shopDetail.class_info.uri" mode="widthFix"></image>
-			</view>
+			<view class="img" v-if="isSc == 2"><image :src="shopDetail.image" mode="widthFix"></image></view>
+			<view class="img" v-if="isSc == 1"><image :src="shopDetail.class_info.uri" mode="widthFix"></image></view>
 		</view>
 		<view class="content-box">
 			<view class="content-top">
-				<view class="hd">
-					{{shopDetail.store_name}}
-				</view>
+				<view class="hd">{{ shopDetail.store_name }}</view>
 				<!-- <view class="content-img">
 					<image src="../../static/img/fx.png" mode=""></image>分享
 				</view> -->
 			</view>
-			<view class="content-center" v-if="isSc==2">
-				<view class="title">
-					发行数量: {{shopDetail.ficti+shopDetail.stock}}份
-				</view>
-				<view class="title">
-					已售数量: {{shopDetail.ficti}}份
-				</view>
-				<view class="title">
-					个人限购: {{shopDetail.buy_limit}}
-				</view>
-				<view class="title">
-					开售时间: {{shopDetail.cmy_pay_time}}
-				</view>
+			<view class="content-center" v-if="isSc == 2">
+				<view class="title">发行数量: {{ shopDetail.ficti + shopDetail.stock }}份</view>
+				<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;">
-					{{shopDetail.class_info.name}}
-				</view>
-				<view class="title">
-					持有者: {{shopDetail.user.nickname}}
-				</view>
+				<view class="title" style="font-size: 38rpx;font-weight: bold;color: #FFFFFF;">{{ shopDetail.class_info.name }}</view>
+				<view class="title">持有者: {{ shopDetail.user.nickname }}</view>
 			</view>
 			<view class="content-bottom">
 				<view class="price">
-					{{shopDetail.price}} <span>RMB</span>
-				</view>
-				<view class="gobuy" @click="buy()">
-					立即购买
+					{{ shopDetail.price }}
+					<span>RMB</span>
 				</view>
+				<view class="gobuy" @click="buy()">立即购买</view>
 			</view>
 		</view>
-		<view class="rz" v-show="isSc==2">
-			<view class="rz-title">
-				作品描述
+		<view class="rz" v-show="isSc == 2">
+			<view class="rz-title">作品描述</view>
+			<view class="rz-ms">{{ shopDetail.store_info }}</view>
+		</view>
+		<view class="rz">
+			<view class="rz-title">链上信息</view>
+			<view class="tc-item flex">
+				<view class="tcitem-name">地址</view>
+				<view class="ali-name clamp">{{ nft.id }}</view>
+				<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(nft.id)"></image>
 			</view>
-			<view class="rz-ms">
-				{{shopDetail.store_info}}
+			<view class="tc-item flex">
+				<view class="tcitem-name">Token Hash</view>
+				<view class="ali-name clamp">{{ nft.tx_hash }}</view>
+				<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(nft.id)"></image>
 			</view>
 		</view>
-		<view class="rz" v-show="isSc==2">
-			<view class="rz-title">
-				作品详情
-			</view>
+		<view class="rz" v-show="isSc == 2">
+			<view class="rz-title">作品详情</view>
 			<rich-text class="rich" :nodes="shopDetail.description"></rich-text>
 		</view>
 		<uni-popup ref="popupkf" type="bottom">
 			<view class="popup-box">
-				<view class="pop-title">
-					选择支付方式
-				</view>
+				<view class="pop-title">选择支付方式</view>
 				<view class="pop-radio">
 					<radio-group name="">
 						<!-- #ifdef APP-PLUS -->
-						<label class="pop-radio-box" @click="type='ali'">
+						<label class="pop-radio-box" @click="type = 'ali'">
 							<view class="pop-radio-cont">
-								<image src="../../static/img/ali.png" style="width: 40rpx;height: 40rpx;"
-									mode="scaleToFill">
-								</image>
+								<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);" />
+							<radio :checked="type == 'ali'" style="transform: scale(0.8);" />
 						</label>
 						<!-- <label class="pop-radio-box" @click="type='weixin'">
 							<view class="pop-radio-cont">
@@ -89,29 +73,24 @@
 							<radio :checked="type=='weixin'" style="transform: scale(0.8);" />
 						</label> -->
 						<!-- #endif -->
-						<label class="pop-radio-box" @click="type='yue'">
+						<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="scaleToFill">
-								</image>
-								<text>余额支付:{{now_money}}</text>
+								<image src="../../static/img/yue.png" style="width: 40rpx;height: 40rpx;" mode="scaleToFill"></image>
+								<text>余额支付:{{ now_money }}</text>
 							</view>
-							<radio :checked="type=='yue'" style="transform: scale(0.8);" />
+							<radio :checked="type == 'yue'" style="transform: scale(0.8);" />
 						</label>
 					</radio-group>
 					<view class="pop-bottom">
 						<view class="pirce">
-							<view class="price-left">
-								合计:
-							</view>
+							<view class="price-left">合计:</view>
 							<view class="price-right">
-								¥<span>{{shopDetail.price}}</span>
+								¥
+								<span>{{ shopDetail.price }}</span>
 							</view>
 						</view>
 						<!-- "!payLoding ? pay() : ''" -->
-						<view class="buy" @click="pay()" :class="{ clickbg: payLoding }">
-							立即支付
-						</view>
+						<view class="buy" @click="pay()" :class="{ clickbg: payLoding }">立即支付</view>
 					</view>
 				</view>
 			</view>
@@ -123,194 +102,202 @@
 </template>
 
 <script>
-	// import uniPopup from '@/components/uni-popup/uni-popup.vue'
-	import {
-		balance
-	} from '@/api/wallet.js';
-	import {
-		mapState
-	} from 'vuex';
-	import {
-		goodsDetails,
-		cartAdd
-	} from '@/api/product.js';
-	import {
-		confirm,
-		orderPay,
-		createOrderkey,
-		nftmall,
-		nftDetail,
-		nftBuy
-	} from '@/api/order.js'
-
-	export default {
-		data() {
-			return {
-				orderId: '', //订单编号
-				moneyAll: '', //购物车订单
-				now_money: 0, //余额
-				payLoding: true, //判断是否支付中
-				orderKey: '', //订单的key值
-				addressData: {}, //地址信息
-				shopList: [], //商品列表
-				cartId: '', //购物车id
-				uniqueId: '',
-				type: 'yue', //支付状态
-				shopDetail: {
-					class_info: {},
-					user: {}
-				}, //商品详情
-				weixin: '',
-				yue: '',
-				shopId: '', //商品id
-				list: [
-					// 'https://img.php.cn/upload/article/202104/15/2021041518005466284.jpg',
-					// 'https://img.php.cn/upload/article/202104/15/2021041518005466284.jpg',
-					// 'https://img.php.cn/upload/article/202104/15/2021041518005466284.jpg'
-				],
-				froms: '', //保存h5中数据来源对象
-				isSc: 0, //是否是是市场传递过来的参数
-			};
+// import uniPopup from '@/components/uni-popup/uni-popup.vue'
+import { balance } from '@/api/wallet.js';
+import { mapState } from 'vuex';
+import uniCopy from '@/components/js_sdk/xb-copy/uni-copy.js';
+import { goodsDetails, cartAdd } from '@/api/product.js';
+import { confirm, orderPay, createOrderkey, nftmall, nftDetail, nftBuy } from '@/api/order.js';
+
+export default {
+	data() {
+		return {
+			orderId: '', //订单编号
+			moneyAll: '', //购物车订单
+			now_money: 0, //余额
+			payLoding: true, //判断是否支付中
+			orderKey: '', //订单的key值
+			addressData: {}, //地址信息
+			shopList: [], //商品列表
+			cartId: '', //购物车id
+			uniqueId: '',
+			nft: '',
+			type: 'yue', //支付状态
+			shopDetail: {
+				class_info: {},
+				user: {}
+			}, //商品详情
+			weixin: '',
+			yue: '',
+			shopId: '', //商品id
+			list: [
+				// 'https://img.php.cn/upload/article/202104/15/2021041518005466284.jpg',
+				// 'https://img.php.cn/upload/article/202104/15/2021041518005466284.jpg',
+				// 'https://img.php.cn/upload/article/202104/15/2021041518005466284.jpg'
+			],
+			froms: '', //保存h5中数据来源对象
+			isSc: 0 //是否是是市场传递过来的参数
+		};
+	},
+	onLoad(options) {
+		// 保存当前获取数据的类型
+		this.isSc = options.isSc;
+		// 商品id
+		this.shopId = options.id;
+		// 判断是否是首页
+		if (this.isSc == 2) {
+			this.goodsDetail();
+		}
+		// 判断是否是市场
+		if (this.isSc == 1) {
+			this.getNftDetail();
+		}
+		// 载入余额
+		balance({}).then(({ data }) => {
+			// 获取余额
+			this.now_money = data.now_money;
+		});
+	},
+	computed: {
+		...mapState(['weichatObj', 'baseURL', 'urlFile']),
+		...mapState('user', ['userInfo', 'hasLogin'])
+	},
+	methods: {
+		//选择支付方式
+		changePayType(type) {
+			this.type = type;
 		},
-		onLoad(options) {
-			// 保存当前获取数据的类型
-			this.isSc = options.isSc
-			// 商品id
-			this.shopId = options.id
+		copy(value) {
+			let obj = this;
+			let content = value; //需要复制的内容
+			console.log('复制的内容:', content);
+			// content = typeof content === 'string' ? content : content.toString(); // 复制内容,必须字符串,数字需要转换为字符串
+			const result = uniCopy(content);
+			if (result === false) {
+				uni.showToast({
+					title: '不支持'
+				});
+			} else {
+				uni.showToast({
+					title: '复制成功',
+					icon: 'none'
+				});
+			}
+		},
+		buy() {
 			// 判断是否是首页
 			if (this.isSc == 2) {
-				this.goodsDetail()
+				this.indexPay();
 			}
 			// 判断是否是市场
 			if (this.isSc == 1) {
-				this.getNftDetail()
+				this.$refs.popupkf.open();
 			}
-			// 载入余额
-			balance({}).then(({
-				data
-			}) => {
-				// 获取余额
-				this.now_money = data.now_money;
-			});
-
 		},
-		computed: {
-			...mapState(['weichatObj', 'baseURL', 'urlFile']),
-			...mapState('user', ['userInfo', 'hasLogin'])
-		},
-		methods: {
-			//选择支付方式
-			changePayType(type) {
-				this.type = type;
-			},
-			buy() {
-				// 判断是否是首页
-				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, //商品标签.默认无
-					new: '1',
-					// mer_id: '',//商店id暂未知晓
-					productId: obj.shopId
-				}
-				//生成订单
-				cartAdd(data).then(res => {
-					console.log(res, 'res');
-					//需要获取购物车号
-					obj.cartId = res.data.cartId
-					this.getKeys()
-				}).catch(e => {
-					console.log(e);
-				});
-				this.$refs.popupkf.open()
-			},
-			getKeys() {
-				let obj = this
-				confirm({
-					cartId: obj.cartId
-				}).then(data => {
-					console.log(data, '生平具体信息');
-					obj.addressData = data.data.addressInfo || {};
-					obj.shopList = data.data.cartInfo; //商品列表
-					// obj.moneyAll = data.data.cartInfo.truePrice; //金额数据
-					obj.orderKey = data.data.orderKey; //订单key
-					// let url = `/pages/money/pay?key=${obj.orderKey}`
-					// console.log(url);
-				})
-			},
-			//支付
-			async pay() {
-				let obj = this
-				if (obj.type == 'yue' && obj.now_money * 1 < obj.shopDetail.price * 1) {
+		// 判断是否是首页进入交易
+		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: '账户余额不足!',
+						title: '错误',
+						content: '未到开售时间,不能购买',
 						showCancel: false,
+						success: res => {},
+						fail: () => {}
 					});
 					return;
 				}
-				// uni.hideLoading()
-				uni.showLoading({
-					title: "支付中",
-					mask: true
+			}
+			let data = {
+				cartNum: 1,
+				uniqueId: obj.uniqueId, //商品标签.默认无
+				new: '1',
+				// mer_id: '',//商店id暂未知晓
+				productId: obj.shopId
+			};
+			//生成订单
+			cartAdd(data)
+				.then(res => {
+					console.log(res, 'res');
+					//需要获取购物车号
+					obj.cartId = res.data.cartId;
+					this.getKeys();
 				})
-				// 判断是否支付中
-				if (!obj.payLoding) {
-					return
-				}
-				obj.payLoding = false;
-				if (obj.type == 'weixin') {
-					obj.$api.msg('微信暂未开通!')
-					uni.hideLoading()
-					obj.payLoding = true
-					return
-				}
-				// 判断是否是市场进入
-				if (obj.isSc == 1) {
-					console.log('sc');
-					obj.marketPay();
-				}
-				// 判断是否是市场进入
-				if (obj.isSc == 2) {
-					obj.firstCreateOrder();
-				}
-			},
-			// 市场支付
-			marketPay() {
-				const obj = this;
-				nftBuy({
+				.catch(e => {
+					console.log(e);
+				});
+			this.$refs.popupkf.open();
+		},
+		getKeys() {
+			let obj = this;
+			confirm({
+				cartId: obj.cartId
+			}).then(data => {
+				console.log(data, '生平具体信息');
+				obj.addressData = data.data.addressInfo || {};
+				obj.shopList = data.data.cartInfo; //商品列表
+				// obj.moneyAll = data.data.cartInfo.truePrice; //金额数据
+				obj.orderKey = data.data.orderKey; //订单key
+				// let url = `/pages/money/pay?key=${obj.orderKey}`
+				// console.log(url);
+			});
+		},
+		//支付
+		async pay() {
+			let obj = this;
+			if (obj.type == 'yue' && obj.now_money * 1 < obj.shopDetail.price * 1) {
+				uni.showModal({
+					title: '提示',
+					content: '账户余额不足!',
+					showCancel: false
+				});
+				return;
+			}
+			// uni.hideLoading()
+			uni.showLoading({
+				title: '支付中',
+				mask: true
+			});
+			// 判断是否支付中
+			if (!obj.payLoding) {
+				return;
+			}
+			obj.payLoding = false;
+			if (obj.type == 'weixin') {
+				obj.$api.msg('微信暂未开通!');
+				uni.hideLoading();
+				obj.payLoding = true;
+				return;
+			}
+			// 判断是否是市场进入
+			if (obj.isSc == 1) {
+				console.log('sc');
+				obj.marketPay();
+			}
+			// 判断是否是市场进入
+			if (obj.isSc == 2) {
+				obj.firstCreateOrder();
+			}
+		},
+		// 市场支付
+		marketPay() {
+			const obj = this;
+			nftBuy(
+				{
 					pay_type: obj.type
-				}, obj.shopId).then(res => {
+				},
+				obj.shopId
+			)
+				.then(res => {
 					console.log(res, '购入');
-					uni.hideLoading()
+					uni.hideLoading();
 					if (obj.type == 'yue') {
 						obj.paySuccessTo();
 					}
@@ -327,478 +314,490 @@
 								uni.showModal({
 									title: '错误',
 									content: '未成功支付',
-									showCancel: false,
+									showCancel: false
 								});
 								console.log(e);
 							},
 							complete: () => {}
 						});
 					}
-				}).catch(() => {
-					obj.payLoding = true
 				})
+				.catch(() => {
+					obj.payLoding = true;
+				});
 
-				return
-
-			},
-			//普通商品支付
-			firstCreateOrder() {
-				let obj = this;
-				// 获取下单页面数据
-				// let prepage = obj.$api.prePage();
-				// console.log(prepage,'prepage');
-				let pages = getCurrentPages(); // 获取页面栈
-				let current = pages[pages.length - 1]; // 当前页面
-				console.log(current, 'current');
-			
-				let data = {
-					real_name: '', //联系人名称
-					phone: '', //联系人号码
-					couponId: '', //优惠券编号
-					addressId: '', //支付地址id
-					useIntegral: 0, //是否积分抵扣1为是0为否
-					payType: obj.type, //支付类型  weixin-微信 yue-余额
-					mark: '', //备注
-					from: 'app', //来源
-					shipping_type: 1 //提货方式 1 快递 2自提
-				}
-				// 生成订单
-				console.log(obj.orderKey, 'obj.orderKey');
-				createOrderkey(data, obj.orderKey)
-					.then(({
-						data,
-						status,
-						msg
-					}) => {
-						console.log(status);
-						// 判断是否支付失败
-						if (data.status == 'ORDER_EXIST') {
-							uni.showModal({
-								title: '提示',
-								content: msg,
-								showCancel: false
-							});
-							uni.hideLoading();
-							obj.payLoding = true;
-							return;
-						}
-						// 保存订单号
-						obj.orderId = data.result.orderId;
-						// 判断是否为余额支付
-						if (obj.type == 'yue') {
-							if (status == 200) {
-								obj.paySuccessTo();
-							} else {
-								obj.$api.msg(msg);
-							}
-						} else {
-							// 立即支付
-							obj.orderMoneyPay();
-						}
-					})
-					.catch(e => {
+			return;
+		},
+		//普通商品支付
+		firstCreateOrder() {
+			let obj = this;
+			// 获取下单页面数据
+			// let prepage = obj.$api.prePage();
+			// console.log(prepage,'prepage');
+			let pages = getCurrentPages(); // 获取页面栈
+			let current = pages[pages.length - 1]; // 当前页面
+			console.log(current, 'current');
+
+			let data = {
+				real_name: '', //联系人名称
+				phone: '', //联系人号码
+				couponId: '', //优惠券编号
+				addressId: '', //支付地址id
+				useIntegral: 0, //是否积分抵扣1为是0为否
+				payType: obj.type, //支付类型  weixin-微信 yue-余额
+				mark: '', //备注
+				from: 'app', //来源
+				shipping_type: 1 //提货方式 1 快递 2自提
+			};
+			// 生成订单
+			console.log(obj.orderKey, 'obj.orderKey');
+			createOrderkey(data, obj.orderKey)
+				.then(({ data, status, msg }) => {
+					console.log(status);
+					// 判断是否支付失败
+					if (data.status == 'ORDER_EXIST') {
+						uni.showModal({
+							title: '提示',
+							content: msg,
+							showCancel: false
+						});
 						uni.hideLoading();
 						obj.payLoding = true;
-						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()
+						return;
+					}
+					// 保存订单号
+					obj.orderId = data.result.orderId;
+					// 判断是否为余额支付
+					if (obj.type == 'yue') {
+						if (status == 200) {
+							obj.paySuccessTo();
 						} else {
-							obj.$api.msg(msg)
-							console.log('失败');
+							obj.$api.msg(msg);
 						}
+					} else {
+						// 立即支付
+						obj.orderMoneyPay();
 					}
-					if (obj.type == 'ali') {
-						const url = res.data.result.jsConfig;
-						console.log(url, 'url');
-						uni.requestPayment({
-							provider: 'alipay',
-							orderInfo: url,
-							success: res => {
-								console.log(res);
-								uni.showToast({
-									title: '支付成功',
-									duration: 2000
-								});
-								obj.paySuccessTo();
-							},
-							fail: e => {
-								console.log(e);
-							},
-							complete: () => {}
-						});
-					}
+				})
+				.catch(e => {
 					uni.hideLoading();
 					obj.payLoding = true;
-				})
-			},
-			// 获取商品详情
-			goodsDetail() {
-				let obj = this
-				console.log(obj.isSc, 'issc');
-				goodsDetails({}, obj.shopId).then(res => {
-					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>'
+					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('失败');
 					}
-					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 => {
-					// obj.uniqueId = res.data.productValue['默认'].unique
-					// obj.shopDetail = res.data.storeInfo
-					obj.shopDetail = res.data.info
-					console.log(res, obj.isSc, 'res1111');
-
-				})
-			},
-			// 支付成功跳转
-			paySuccessTo() {
+				}
+				if (obj.type == 'ali') {
+					const url = res.data.result.jsConfig;
+					console.log(url, 'url');
+					uni.requestPayment({
+						provider: 'alipay',
+						orderInfo: url,
+						success: res => {
+							console.log(res);
+							uni.showToast({
+								title: '支付成功',
+								duration: 2000
+							});
+							obj.paySuccessTo();
+						},
+						fail: e => {
+							console.log(e);
+						},
+						complete: () => {}
+					});
+				}
 				uni.hideLoading();
-				uni.redirectTo({
-					url: '/pages/money/paySuccess?orderKey=' + this.orderKey
-				});
-			},
+				obj.payLoding = true;
+			});
+		},
+		// 获取商品详情
+		goodsDetail() {
+			let obj = this;
+			console.log(obj.isSc, 'issc');
+			goodsDetails({}, obj.shopId).then(res => {
+				console.log(res, '123456789');
+				obj.uniqueId = res.data.productValue['默认'].unique;
+				obj.nft = res.data.nft_class;
+				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 => {
+				// obj.uniqueId = res.data.productValue['默认'].unique
+				// obj.shopDetail = res.data.storeInfo
+				obj.shopDetail = res.data.info;
+				console.log(res, obj.isSc, 'res1111');
+			});
+		},
+		// 支付成功跳转
+		paySuccessTo() {
+			uni.hideLoading();
+			uni.redirectTo({
+				url: '/pages/money/paySuccess?orderKey=' + this.orderKey
+			});
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
-	.container,
-	page {
-		background: #111111;
-		min-height: 100%;
+.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: 0 auto;
+	width: 750rpx;
+
+	image {
+		width: 100%;
 	}
+}
 
-	/deep/ .rich-img {
-		width: 100% !important;
-		height: auto;
-	}
+.content-box {
+	border-bottom: 2rpx solid #919295;
+	padding: 30rpx;
+	display: flex;
+	flex-direction: column;
 
-	/* #ifdef MP */
-	.rich-img {
-		width: 100% !important;
-		height: auto;
-	}
-
-	// 处理图片间白色间距问题
-	.pHeight {
-		line-height: 0;
-	}
+	.content-top {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
 
-	/* #endif */
+		.hd {
+			font-size: 38rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #ffffff;
+			line-height: 42rpx;
+		}
 
-	.swiper-box {
-		background: #0C0A36;
+		.content-img {
+			display: flex;
+			align-items: center;
+			justify-content: space-around;
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #585be7;
+			line-height: 39rpx;
+			padding: 10rpx;
+			height: 41rpx;
+			border: 2rpx solid #585be7;
+			border-radius: 5rpx;
+
+			image {
+				width: 26rpx;
+				height: 26rpx;
+			}
+		}
 	}
 
-	.img {
-		margin: 0 auto;
-		width: 750rpx;
+	.content-center {
+		margin: 20rpx 0;
+		display: flex;
+		flex-direction: column;
 
-		image {
-			width: 100%;
+		.title {
+			font-size: 24rpx;
+			font-weight: 500;
+			color: #ffffff;
+			line-height: 42rpx;
 		}
 	}
 
-	.content-box {
-		border-bottom: 2rpx solid #919295;
-		padding: 30rpx;
+	.content-bottom {
 		display: flex;
-		flex-direction: column;
+		align-items: center;
+		justify-content: space-between;
 
-		.content-top {
+		.price {
 			display: flex;
-			justify-content: space-between;
-			align-items: center;
-
-			.hd {
-				font-size: 38rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #FFFFFF;
-				line-height: 42rpx;
-			}
+			justify-content: flex-end;
+			font-size: 48rpx;
+			font-weight: bold;
+			color: #585be7;
 
-			.content-img {
-				display: flex;
-				align-items: center;
-				justify-content: space-around;
+			span {
 				font-size: 24rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #585BE7;
-				line-height: 39rpx;
-				padding: 10rpx;
-				height: 41rpx;
-				border: 2rpx solid #585BE7;
-				border-radius: 5rpx;
-
-				image {
-					width: 26rpx;
-					height: 26rpx;
-				}
+				font-weight: bold;
+				color: #666666;
+				font-family: SourceHanSerifSC;
+				line-height: 66rpx;
 			}
 		}
 
-		.content-center {
-			margin: 20rpx 0;
-			display: flex;
-			flex-direction: column;
-
-			.title {
-				font-size: 24rpx;
-				font-weight: 500;
-				color: #FFFFFF;
-				line-height: 42rpx;
-			}
+		.gobuy {
+			width: 334rpx;
+			height: 90rpx;
+			background: linear-gradient(270deg, #6e8df7, #9977f6);
+			border-radius: 10rpx;
+			font-size: 36rpx;
+			font-weight: 500;
+			color: #ffffff;
+			line-height: 90rpx;
+			text-align: center;
 		}
+	}
+}
+
+.rz {
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+
+	.rz-title {
+		margin: 35rpx 0;
+		font-size: 36rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+		line-height: 42rpx;
+	}
 
-		.content-bottom {
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-
-			.price {
-				display: flex;
-				justify-content: flex-end;
-				font-size: 48rpx;
-				font-weight: bold;
-				color: #585BE7;
-
-				span {
-					font-size: 24rpx;
-					font-weight: bold;
-					color: #666666;
-					font-family: SourceHanSerifSC;
-					line-height: 66rpx;
-				}
-			}
-
-			.gobuy {
-				width: 334rpx;
-				height: 90rpx;
-				background: linear-gradient(270deg, #6E8DF7, #9977F6);
-				border-radius: 10rpx;
-				font-size: 36rpx;
-				font-weight: 500;
-				color: #FFFFFF;
-				line-height: 90rpx;
-				text-align: center;
-			}
-		}
+	.rich {
+		display: block;
+		justify-content: center;
+		margin: 30rpx;
+		width: 750rpx;
+		overflow: hidden;
 	}
 
-	.rz {
+	.rz-ms {
+		padding: 0 20rpx;
+		width: 690rpx;
+		font-size: 24rpx;
+		line-height: 36rpx;
+		color: #ffffff;
+		word-wrap: break-word;
+		word-break: normal;
+	}
 
+	.rz-content {
+		padding: 20rpx;
 		display: flex;
 		flex-direction: column;
-		align-items: center;
+		width: 690rpx;
+		background: #222222;
+		border-radius: 20rpx;
 
-		.rz-title {
-			margin: 35rpx 0;
-			font-size: 36rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #FFFFFF;
-			line-height: 42rpx;
-		}
-
-		.rich {
-			display: block;
-			justify-content: center;
-			margin: 30rpx;
-			width: 750rpx;
-			overflow: hidden;
-		}
-
-		.rz-ms {
-			padding: 0 20rpx;
-			width: 690rpx;
-			font-size: 24rpx;
-			line-height: 36rpx;
-			color: #FFFFFF;
-			word-wrap: break-word;
-			word-break: normal;
-
-		}
-
-		.rz-content {
-			padding: 20rpx;
+		.con-box {
+			line-height: 60rpx;
 			display: flex;
-			flex-direction: column;
-			width: 690rpx;
-			background: #222222;
-			border-radius: 20rpx;
+			justify-content: space-between;
+			align-items: center;
 
-			.con-box {
-				line-height: 60rpx;
+			.left {
+				font-size: 24rpx;
+				color: #a5a5a5;
+			}
+
+			.right {
 				display: flex;
-				justify-content: space-between;
 				align-items: center;
 
-				.left {
+				.address {
+					color: #6363fe;
 					font-size: 24rpx;
-					color: #A5A5A5;
-
+					width: 300rpx;
+					text-align: right;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					white-space: nowrap;
 				}
 
-				.right {
-					display: flex;
-					align-items: center;
+				.copy {
+					margin-left: 15rpx;
+					margin-bottom: 22rpx;
+					width: 30rpx;
+					height: 30rpx;
 
-
-					.address {
-						color: #6363FE;
-						font-size: 24rpx;
-						width: 300rpx;
-						text-align: right;
-						overflow: hidden;
-						text-overflow: ellipsis;
-						white-space: nowrap;
-					}
-
-					.copy {
-						margin-left: 15rpx;
-						margin-bottom: 22rpx;
+					image {
 						width: 30rpx;
 						height: 30rpx;
-
-						image {
-							width: 30rpx;
-							height: 30rpx;
-						}
 					}
 				}
 			}
 		}
 	}
-
-	.popup-box {
-		width: 750rpx;
-		background: #FFFFFF;
-		border-radius: 10rpx 10rpx 0px 0px;
-		padding-bottom: 130rpx;
-
-		.pop-title {
-			line-height: 1;
-			padding-top: 30rpx;
-			padding-left: 30rpx;
-			padding-bottom: 10rpx;
-			font-size: 34rpx;
-			font-weight: bold;
-			color: #333333;
+	.tc-item {
+		width: 100%;
+		padding: 50rpx 40rpx 0;
+		line-height: 1;
+		.tcitem-name {
+			flex-shrink: 0;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #fff;
+		}
+		.ali-name {
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			padding: 0 20rpx;
+			color: #fff;
 		}
+		.tcitem-image {
+			flex-shrink: 0;
+			width: 26rpx;
+			height: 28rpx;
+		}
+	}
+}
+
+.popup-box {
+	width: 750rpx;
+	background: #ffffff;
+	border-radius: 10rpx 10rpx 0px 0px;
+	padding-bottom: 130rpx;
+
+	.pop-title {
+		line-height: 1;
+		padding-top: 30rpx;
+		padding-left: 30rpx;
+		padding-bottom: 10rpx;
+		font-size: 34rpx;
+		font-weight: bold;
+		color: #333333;
+	}
 
-		.pop-radio {
+	.pop-radio {
+		display: flex;
+
+		.pop-radio-box {
+			height: 100rpx;
 			display: flex;
+			align-items: center;
+			padding: 25rpx;
+			justify-content: space-between;
+			width: 750rpx;
 
-			.pop-radio-box {
-				height: 100rpx;
+			.pop-radio-cont {
 				display: flex;
-				align-items: center;
-				padding: 25rpx;
-				justify-content: space-between;
-				width: 750rpx;
 
-				.pop-radio-cont {
-					display: flex;
+				img {
+					width: 40rpx;
+					height: 40rpx;
+				}
 
-					img {
-						width: 40rpx;
-						height: 40rpx;
+				text {
+					margin-left: 10rpx;
+					font-size: 28rpx;
+					font-weight: 400;
+					color: #3f454b;
+				}
+			}
+		}
 
-					}
+		.pop-bottom {
+			position: fixed;
+			bottom: 0;
+			right: 0;
+			height: 93rpx;
+			width: 750rpx;
+			display: flex;
+			justify-content: space-between;
 
-					text {
-						margin-left: 10rpx;
-						font-size: 28rpx;
-						font-weight: 400;
-						color: #3F454B;
-					}
+			.pirce {
+				display: flex;
+				align-items: center;
+				margin-left: 25rpx;
+
+				.price-left {
+					font-size: 28rpx;
+					font-family: PingFang SC;
+					font-weight: 400;
+					color: #3f454b;
+					line-height: 100px;
 				}
-			}
 
-			.pop-bottom {
-				position: fixed;
-				bottom: 0;
-				right: 0;
-				height: 93rpx;
-				width: 750rpx;
 				display: flex;
-				justify-content: space-between;
-
-				.pirce {
-					display: flex;
-					align-items: center;
-					margin-left: 25rpx;
-
-					.price-left {
-						font-size: 28rpx;
-						font-family: PingFang SC;
-						font-weight: 400;
-						color: #3F454B;
-						line-height: 100px;
-					}
 
-					display: flex;
+				.price-right {
+					font-size: 24rpx;
+					font-weight: 500;
+					color: #fd3b39;
+					line-height: 55px;
 
-					.price-right {
-						font-size: 24rpx;
+					span {
+						font-size: 36rpx;
 						font-weight: 500;
-						color: #FD3B39;
+						color: #fd3b39;
 						line-height: 55px;
-
-						span {
-							font-size: 36rpx;
-							font-weight: 500;
-							color: #FD3B39;
-							line-height: 55px;
-						}
 					}
 				}
+			}
 
-				.buy {
-					width: 360rpx;
-					height: 93rpx;
-					background: linear-gradient(270deg, #6E8DF7, #9977F6);
-					font-size: 32rpx;
-					font-weight: bold;
-					line-height: 93rpx;
-					text-align: center;
-					color: #FFFFFF;
-				}
-
+			.buy {
+				width: 360rpx;
+				height: 93rpx;
+				background: linear-gradient(270deg, #6e8df7, #9977f6);
+				font-size: 32rpx;
+				font-weight: bold;
+				line-height: 93rpx;
+				text-align: center;
+				color: #ffffff;
 			}
 		}
 	}
+}
 
-	.clickbg {
-		background-color: $color-gray !important;
-	}
+.clickbg {
+	background-color: $color-gray !important;
+}
 </style>

+ 422 - 99
pages/user/team.vue

@@ -1,76 +1,123 @@
 <template>
 	<view class="content">
-		<view class="status_bar"><!-- 这里是状态栏 --></view>
-		<view class="" style="height: 20rpx;"></view>
-		<view class="user-top flex">
-			id: {{ userInfo.uid }}
-			<text style="margin-left: 20rpx;" class="clamp">昵称:{{ userInfo.nickname }}</text>
+		<view class="content-money">
+			<view class="status_bar"><!-- 这里是状态栏 --></view>
+			<view class="body-title">
+				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
+				<view class="header">我的推广</view>
+			</view>
+			<view class="content-bg"><image src="../../static/img/promotion-bg.png" mode=""></image></view>
+			<view class="money-box">
+				<view class="money">{{ count || 0 }}</view>
+				<view>我的推广人数</view>
+			</view>
 		</view>
-		<view class="yeji-wraper flex">
-			<view class="yeji-item">
-				<view class="yeji-val">{{ group_num || '0' }}</view>
-				<view class="yeji-name">团队总人数</view>
+		<view class="info-box flex">
+			<view class="info-item">
+				<view class="info-font">参与人数</view>
+				<view class="info-num">{{ count || 0 }}</view>
 			</view>
-			<view class="yeji-item">
-				<view class="yeji-val">{{ group_price || '0' }}</view>
-				<view class="yeji-name">总销售额</view>
+			<view class="shu"></view>
+			<view class="info-item">
+				<view class="info-font">团队总销售金额</view>
+				<view class="info-num">{{ user_price || 0 }}</view>
 			</view>
-			<view class="yeji-item">
-				<view class="yeji-val">{{ group_award || '0' }}</view>
-				<view class="yeji-name">团队奖</view>
+			<view class="shu"></view>
+			<view class="info-item">
+				<view class="info-font">团队奖</view>
+				<view class="info-num">{{ week_price || 0 }}</view>
 			</view>
 		</view>
-		<!-- <view class="nav-wraper flex">
-			<view class="nav-item" v-for="(nitem, nindex) in navList" :class="{ action: nindex == tabCurrentIndex }" @click="navClick(nindex)">{{ nitem.text }}</view>
-		</view> -->
-		<template v-if="tabCurrentIndex == 0">
-			<view class="wlg-sb flex" style="margin-top: 40rpx;" @click="navto('/pages/user/teamList?type=0')">
-				<view class="">直推列表</view>
-				<view class="">></view>
+		<view class="content-box" v-for="(item, index) in ztlist" :key="index">
+			<!-- <view class="tgTop">
+				<image src="../../static/img/top.png" mode=""></image>
+			</view> -->
+			<view class="content-box-left">
+				<!-- <view class="left-img">
+					<image :src="item.avatar" mode=""></image>
+				</view> -->
+				<view class="right-title">
+					<view class="top">{{ item.nickname }}</view>
+					<view class="bottom">ID:{{ item.uid }}</view>
+					<!-- <view class="bottom " style="font-size: 24rpx;">手机号:{{ item.phone }}</view> -->
+					<!-- <view class="bottom " style="font-size: 24rpx;">返回额度:{{ item.price }}</view>
+					<view class="bottom " style="font-size: 24rpx;">参与中金额:{{ item.cy_price }}</view> -->
+				</view>
+			</view>
+
+			<view class="content-box-right">
+				<view class="state">直推</view>
+				<view class="box-right">
+					销售金额:
+					<span>{{ item.sells }}</span>
+				</view>
+				<!-- <view class="bottom " style="font-size: 24rpx;">待返回金额:{{ item.dfh_price }}</view>
+				<view class="bottom " style="font-size: 24rpx;">充值金额:{{ item.order_price }}</view> -->
 			</view>
-			<view class="wlg-sb flex" @click="navto('/pages/user/teamList?type=1')">
-				<view class="">间推列表</view>
-				<view class="">></view>
+		</view>
+		<view class="content-box" v-for="(item, index) in jtlist" :key="index">
+			<view class="content-box-left">
+				<view class="right-title">
+					<view class="top">{{ item.nickname }}</view>
+					<view class="bottom">ID:{{ item.uid }}</view>
+					<!-- <view class="bottom " style="font-size: 24rpx;">手机号:{{ item.phone }}</view>
+					<view class="bottom " style="font-size: 24rpx;">返回额度:{{ item.price }}</view>
+					<view class="bottom " style="font-size: 24rpx;">参与中金额:{{ item.cy_price }}</view> -->
+				</view>
+			</view>
+
+			<view class="content-box-right">
+				<view class="state">间推</view>
+				<view class="box-right">
+					销售金额:
+					<span>{{ item.sells }}</span>
+				</view>
+				<!-- 	<view class="bottom " style="font-size: 24rpx;">待返回金额:{{ item.dfh_price }}</view>
+				<view class="bottom " style="font-size: 24rpx;">充值金额:{{ item.order_price }}</view> -->
 			</view>
-		</template>
+		</view>
 	</view>
 </template>
 <script>
 import { myspread } from '@/api/user.js';
 import { mapState, mapMutations } from 'vuex';
 export default {
+	onReady(res) {
+		var _this = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.swiper-box').boundingClientRect();
+				query.exec(function(res) {
+					_this.maxheight = resu.windowHeight - res[0].top + 'px';
+					console.log('打印页面的剩余高度', _this.height);
+				});
+			},
+			fail: res => {}
+		});
+	},
 	data() {
 		return {
+			nowIndex: 0, //'当前选中'
 			// 头部图高度
+
 			maxheight: '',
 			tabCurrentIndex: 0,
-			group_num: '',
-			group_price: '',
-			group_award: '',
-			direct_push_count: '', //直推人数
-			between_count: '', //间推人数
-			list: ''
+			ztlist: [], //直推列表
+			jtlist: [], //间推列表
+			count: '',
+			user_price: '',
+			week_price: ''
 		};
 	},
 	computed: {
-		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin']),
-		getPhone() {
-			let reg = /(\d{3})\d{4}(\d{4})/;
-			this.navList.user_list.forEach(e => {
-				return e.phone.replace(reg, '$1****$2');
-				console.log(e.phone.replace(reg, '$1****$2'));
-			});
-		}
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
 	},
 	onLoad(options) {},
 	onShow() {
 		this.loadData();
 	},
 	methods: {
-		...mapMutations(['setSbList']),
-		navClick(index) {
-			this.tabCurrentIndex = index;
-		},
 		// 页面跳转
 		navto(e) {
 			uni.navigateTo({
@@ -79,12 +126,25 @@ export default {
 		},
 		//获取收入支出信息
 		async loadData(source) {
-			let obj = this;
-			myspread().then(res => {
+			const obj = this;
+			myspread({
+				page: 1,
+				limit: 1000,
+				grade: 0
+			}).then(res => {
+				obj.count = res.data.group_num;
+				obj.user_price = res.data.group_sells;
+				obj.week_price = res.data.group_vip_award;
 				console.log(res, 'data');
-				this.group_num = res.data.group_num;
-				this.group_price = res.data.group_sells;
-				this.group_award = res.data.group_vip_award;
+				obj.ztlist = res.data.list;
+			});
+			myspread({
+				page: 1,
+				limit: 1000,
+				grade: 1
+			}).then(res => {
+				console.log(res, 'data');
+				obj.jtlist = res.data.list;
 			});
 		},
 		// 点击返回 我的页面
@@ -98,71 +158,334 @@ export default {
 </script>
 
 <style lang="scss">
-page,
-.content {
-	background: #111111;
-	min-height: 100%;
-	height: auto;
+page {
+	background: #f8f8f8;
+	height: 100%;
 }
+
+.info-box {
+	width: 670rpx;
+	height: 186rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 20rpx;
+	margin: -100rpx auto 0;
+	position: relative;
+	z-index: 2;
+
+	.info-item {
+		width: 50%;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		line-height: 1;
+
+		.info-font {
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #999999;
+		}
+
+		.info-num {
+			margin-top: 30rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #181818;
+		}
+	}
+
+	.shu {
+		width: 2rpx;
+		height: 74rpx;
+		background: #dcdfe6;
+	}
+}
+
 .status_bar {
 	height: var(--status-bar-height);
 	width: 100%;
+	background: #5dbc7c;
 }
-.user-top {
-	color: #fff;
-	width: 680rpx;
-	height: 80rpx;
-	line-height: 80rpx;
-	box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.2);
-	margin: 20rpx auto;
-	border-radius: 8rpx;
-	padding: 0 30rpx;
-	font-size: 32rpx;
-	justify-content: flex-start;
+
+.content-money {
+	position: relative;
+	height: 480rpx;
+
+	.content-bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		width: 750rpx;
+		height: 480rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.body-title {
+		height: 80rpx;
+		text-align: center;
+		font-size: 35rpx;
+		position: relative;
+
+		.header {
+			position: absolute;
+			left: 0;
+			top: 0;
+			width: 100%;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #fffeff;
+			height: 80rpx;
+			font-size: 36rpx;
+			font-weight: 700;
+			z-index: 9;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+		}
+
+		.goback-box {
+			position: absolute;
+			left: 18rpx;
+			top: 0;
+			height: 80rpx;
+			display: flex;
+			align-items: center;
+		}
+
+		.goback {
+			z-index: 100;
+			width: 34rpx;
+			height: 34rpx;
+		}
+	}
 }
-.yeji-wraper {
-	width: 590rpx;
-	height: 134rpx;
-	box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.2);
-	margin: 20rpx auto;
-	border-radius: 10rpx;
+
+.money-box {
+	position: relative;
+	z-index: 2;
+	padding-top: 90rpx;
+	color: #ffffff;
 	text-align: center;
-	font-size: 28rpx;
-	color: #fff;
-	.yeji-item {
-		width: 33%;
-		.yeji-val {
-			padding-bottom: 20rpx;
-			font-weight: bold;
+
+	.money {
+		font-size: 72rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #ffffff;
+	}
+
+	.text {
+		font-size: 30rpx;
+	}
+}
+
+.order-item {
+	padding: 20rpx 30rpx;
+	line-height: 1.5;
+
+	.title-box {
+		width: 100%;
+
+		.title-avatar {
+			flex-shrink: 0;
+			width: 100rpx;
+			height: 100rpx;
+			margin-right: 25rpx;
+			border-radius: 100%;
+
+			image {
+				width: 100%;
+				height: 100%;
+				border-radius: 100%;
+			}
+		}
+
+		.list_tpl {
+			width: 85%;
+
+			.title {
+				display: flex;
+				justify-content: flex-start;
+				font-size: $font-lg;
+				color: $font-color-base;
+				overflow: hidden; //超出的文本隐藏
+				text-overflow: ellipsis; //溢出用省略号显示
+				white-space: nowrap;
+				line-height: 1;
+				text-align: center;
+
+				.title-name {
+					max-width: 40%;
+				}
+
+				.dl {
+					margin-left: 10rpx;
+					width: 93rpx;
+					height: 32rpx;
+					border-radius: 16rpx;
+
+					image {
+						width: 93rpx;
+						height: 32rpx;
+						border-radius: 16rpx;
+					}
+				}
+
+				.class {
+					display: inline-block;
+					margin-left: 10rpx;
+					padding: 6rpx;
+					text-align: center;
+					border: 1px solid #2e58ff;
+					border-radius: 16rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #2e58ff;
+				}
+			}
+
+			.time {
+				font-size: $font-base;
+				color: $font-color-light;
+			}
 		}
 	}
+
+	.money {
+		width: 50%;
+		text-align: right;
+		color: #db1935;
+		font-size: $font-lg;
+	}
 }
-.nav-wraper {
-	width: 630rpx;
-	height: 80rpx;
-	box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.2);
-	margin: auto;
-	border-radius: 15rpx;
-	.nav-item {
+
+.yeji {
+	position: relative;
+	margin: -72rpx auto 0;
+	width: 690rpx;
+	height: 143rpx;
+	background: #ffffff;
+	box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(50, 50, 52, 0.06);
+	border-radius: 10rpx;
+	display: flex;
+	align-items: center;
+
+	.yeji-a {
 		width: 50%;
-		text-align: center;
-		height: 80rpx;
-		line-height: 80rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+
+		.yeji-top {
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+
+		.yeji-buttom {
+			font-size: 42rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
 	}
-	.action {
-		background-color: #2b2d54;
-		border-radius: 20rpx;
-		color: #fff;
-		font-weight: bold;
+
+	.border {
+		width: 1rpx;
+		height: 51rpx;
+		background: #dddddd;
 	}
 }
-.wlg-sb {
-	color: #fff;
-	width: 590rpx;
-	height: 140rpx;
-	border: 1px solid #fff;
-	margin: 20rpx auto;
+.bottomm {
+	padding: 20rpx;
+	position: relative;
+	background: red;
+	display: flex;
+	justify-content: space-between;
+	margin: 30rpx;
 	border-radius: 10rpx;
+}
+
+.content-box {
+	overflow: hidden;
 	padding: 20rpx;
+	position: relative;
+	background: #fffeff;
+	display: flex;
+	justify-content: space-between;
+	margin: 30rpx;
+	border-radius: 10rpx;
+
+	.tgTop {
+		position: absolute;
+		right: 50rpx;
+		top: 30rpx;
+		width: 30rpx;
+		height: 30rpx;
+
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+
+	.content-box-left {
+		display: flex;
+
+		.left-img {
+			width: 100rpx;
+			height: 100rpx;
+			border-radius: 50%;
+			overflow: hidden;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.right-title {
+			margin-left: 15rpx;
+			display: flex;
+			flex-direction: column;
+			justify-content: space-around;
+
+			.top {
+				font-weight: 500;
+				font-size: 30rpx;
+			}
+
+			.bottom {
+				color: #999999;
+			}
+		}
+	}
+
+	.content-box-right {
+		display: flex;
+		flex-direction: column;
+		width: 230rpx;
+		color: #999999;
+
+		.state {
+			color: red;
+		}
+
+		span {
+			color: red;
+			font-size: 28rpx;
+		}
+	}
 }
 </style>

+ 15 - 1
pages/user/user.vue

@@ -105,7 +105,7 @@
 
 									<!-- ¥{{item.class_info.name}} -->
 								</view>
-								<view class="" v-show="tabCurrentIndex != 1">
+								<view class="" v-show="tabCurrentIndex != 1 && isshow == 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>
@@ -163,6 +163,7 @@ import { mapState, mapMutations } from 'vuex';
 import uniList from '@/components/uni-list/uni-list.vue';
 import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
 import { orderData, getUserInfo, getMyNft, myGdList } from '@/api/user.js';
+import { loadIndexs } from '@/api/index.js';
 import { saveUrl, interceptor } from '@/utils/loginUtils.js';
 export default {
 	components: {
@@ -178,6 +179,7 @@ export default {
 			kfWX: 'liuniu', //客服微信
 			// 头部图高度
 			tabCurrentIndex: 0,
+			isshow: 1, //是否可以交易1可以交易2不能交易
 			navList: [
 				{
 					state: 0,
@@ -226,6 +228,8 @@ export default {
 			];
 			// 获取我的挂单
 			this.getMyNft();
+			// 判断是否可以交易
+			this.pdshow();
 		} else {
 			this.loadBaseData();
 		}
@@ -236,6 +240,16 @@ export default {
 	},
 	methods: {
 		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		// 判断是否可以交易
+		pdshow() {
+			loadIndexs().then(e => {
+				if (e.data.market_switch == '1') {
+					this.isshow = 1;
+				} else {
+					this.isshow = 2;
+				}
+			});
+		},
 		loadBaseData() {
 			getUserInfo({})
 				.then(({ data }) => {