Browse Source

2023.11.9

zyx 1 year ago
parent
commit
4f3b62a45d

+ 19 - 9
pages.json

@@ -18,6 +18,15 @@
 				"navigationBarTitleText": "商城首页"
 			}
 		},
+		{
+			"path": "pages/hall/halllist",
+			"style": {
+				"navigationBarTitleText": "会馆详情",
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
 		{
 			"path": "pages/index/downLoad",
 			"style": {
@@ -143,6 +152,15 @@
 				"navigationBarTitleText": "详情"
 			}
 		},
+		{
+			"path": "pages/order/hallorderDetail",
+			"style": {
+				"navigationBarTitleText": "订单详情",
+				"app-plus": {
+					"bounce": "none"
+				}
+			}
+		},
 		{
 			"path": "pages/index/messageInfo",
 			"style": {
@@ -229,15 +247,7 @@
 				}
 			}
 		},
-		{
-			"path": "pages/hall/halllist",
-			"style": {
-				"navigationBarTitleText": "会馆详情",
-				"app-plus": {
-					"titleNView": false
-				}
-			}
-		},
+		
 		{
 			"path": "pages/user/shareQrCode",
 			"style": {

+ 0 - 222
pages/category/category.vue

@@ -1,222 +0,0 @@
-<template>
-	<view class="content">
-		<!-- <scroll-view scroll-y class="left-aside">
-			<view v-for="item in flist" :key="item.id" class="f-item b-b" :class="{ active: item.id === currentId }" @click="tabtap(item)">{{ item.cate_name }}</view>
-		</scroll-view> -->
-		<scroll-view scroll-with-animation scroll-y class="right-aside" @scroll="asideScroll" :scroll-top="tabScrollTop">
-			<view v-for="item in flist" :key="item.id" class="s-list" :id="'main-' + item.id">
-				<text class="s-item">{{ item.cate_name }}</text>
-				<view class="t-list ">
-					<view @click="navToList(item.id, titem.id)" class="t-item" v-for="titem in item.children" :key="titem.id">
-						<image :src="titem.pic"></image>
-						<text>{{ titem.cate_name }}</text>
-					</view>
-				</view>
-			</view>
-		</scroll-view>
-		<u-tabbar activeColor="#333333" inactive-color='#999999' v-model="current" :list="tabbar"></u-tabbar>
-	</view>
-</template>
-
-<script>
-import { tabbar1 } from '@/utils/tabbar.js';
-import { getCategoryList } from '@/api/product.js';
-export default {
-	data() {
-		return {
-			current: 1,
-			tabbar: tabbar1,
-			sizeCalcState: false,
-			tabScrollTop: 0,
-			currentId: 9,
-			flist: []
-		};
-	},
-	onLoad() {
-		this.loadData();
-	},
-	// 监听导航栏输入框点击事件
-	onNavigationBarSearchInputClicked(e) {
-		uni.navigateTo({
-			url: '/pages/product/search'
-		});
-	},
-	methods: {
-		// 载入数据
-		async loadData() {
-			let obj = this;
-			getCategoryList({})
-				.then(({ data }) => {
-					obj.flist = data.map(function(s) {
-						return s;
-					});
-				})
-				.catch(err => {
-					console.log(err);
-				});
-		},
-		//一级分类点击
-		tabtap(item) {
-			console.log(item);
-			// 判断有没有初始化页面高度对象数据
-			if (!this.sizeCalcState) {
-				this.calcSize();
-			}
-			// 获取当前点击的id
-			this.currentId = item.id;
-			console.log(item.top);
-			this.tabScrollTop = item.top;
-			console.log(this.tabScrollTop);
-		},
-		//右侧栏滚动
-		asideScroll(e) {
-			// 判断有没有初始化页面高度对象数据
-			if (!this.sizeCalcState) {
-				this.calcSize();
-			}
-			let scrollTop = e.detail.scrollTop;
-			let box = 0; //列表包裹框高度初始化
-			let bottom = 10; //距离页面底部多少像素左侧列表切换到最后一个一级分类
-			// 查询当前页面对象
-			let view = uni.createSelectorQuery().select('.content');
-			view.fields(
-				{
-					id: true,
-					dataset: true,
-					rect: true,
-					size: true,
-					scrollOffset: true
-				},
-				function(e) {
-					// 保存包裹框高度
-					box = e.height;
-				}
-			).exec();
-			// 获取所有距离顶部大于滚轮距离页面高度的所有分类
-			let tabs = this.flist.filter(item => item.top - 10 <= scrollTop).reverse();
-			if (tabs.length > 0) {
-				// 判断是否已经到达滚轮底部
-				if (box + scrollTop + bottom >= e.detail.scrollHeight) {
-					this.currentId = this.flist[this.flist.length - 1].id;
-				} else {
-					this.currentId = tabs[0].id;
-				}
-			}
-		},
-		//计算右侧栏每个tab的高度等信息
-		calcSize() {
-			let h = 0;
-			this.flist.forEach(item => {
-				let view = uni.createSelectorQuery().select('#main-' + item.id);
-				view.fields(
-					{
-						size: true
-					},
-					data => {
-						item.top = h;
-						h += data.height;
-						item.bottom = h;
-					}
-				).exec();
-			});
-			this.sizeCalcState = true;
-		},
-		navToList(sid, tid) {
-			// 点击导航跳转到详细页面
-			uni.navigateTo({
-				url: '/pages/product/list?fid=' + this.currentId + '&sid=' + sid + '&tid=' + tid
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.content {
-	height: auto;
-	min-height: 100%;
-	background-color: #f8f8f8;
-}
-
-.content {
-	display: flex;
-}
-.left-aside {
-	flex-shrink: 0;
-	width: 200rpx;
-	height: 100%;
-	background-color: #fff;
-}
-.f-item {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 100%;
-	height: 100rpx;
-	font-size: 28rpx;
-	color: $font-color-base;
-	position: relative;
-	&.active {
-		color: $base-color;
-		background: #f8f8f8;
-		&:before {
-			content: '';
-			position: absolute;
-			left: 0;
-			top: 50%;
-			transform: translateY(-50%);
-			height: 36rpx;
-			width: 8rpx;
-			background-color: $base-color;
-			border-radius: 0 4px 4px 0;
-			opacity: 0.8;
-		}
-	}
-}
-
-.right-aside {
-	flex: 1;
-	overflow: hidden;
-	padding-left: 20rpx;
-	padding-right: 20rpx;
-	padding-bottom: 44px;
-}
-.s-item {
-	display: flex;
-	align-items: center;
-	height: 70rpx;
-	padding-top: 8rpx;
-	font-size: 28rpx;
-	color: $font-color-dark;
-}
-.t-list {
-	display: flex;
-	flex-wrap: wrap;
-	border-radius: 15rpx;
-	width: 100%;
-	background: #fff;
-	padding-top: 12rpx;
-	&:after {
-		content: '';
-		flex: 99;
-		height: 0;
-	}
-}
-.t-item {
-	flex-shrink: 0;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	flex-direction: column;
-	width: 171rpx;
-	font-size: 26rpx;
-	color: #666;
-	padding-bottom: 20rpx;
-
-	image {
-		width: 140rpx;
-		height: 140rpx;
-	}
-}
-</style>

+ 0 - 511
pages/hall/hallinfo.vue

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

+ 0 - 162
pages/hall/history.vue

@@ -1,162 +0,0 @@
-<template>
-	<view class="center">
-		<view class="product">
-			<image class="product-image" :src="info.image" mode=""></image>
-			<view class="product-font font1">{{info.name}}</view>
-			<view class="product-font font2" v-if="info.user_nickname">艺术家:{{info.user_nickname}}</view>
-			<view class="product-font font2">{{info.create_time | time}}</view>
-		</view>
-		<view class="main" v-if="list.length != 0">
-			<view class="main-item">
-				<view class="main-left">日期</view>
-				<view class="main-right">归属人</view>
-			</view>
-			<view class="main-item" v-for="(item,index) in list" :key="index">
-				<view class="main-left">{{item.create_time | time}}</view>
-				<view class="main-right">{{item.nickname}}</view>
-			</view>
-		</view>
-		<!-- <view class="ma">
-			<view class="ma-main">
-				
-			</view>
-			<view class="ma-font">
-				溯源二维码
-			</view>
-		</view> -->
-	</view>
-</template>
-
-<script>
-import { belong,details } from '@/api/hall.js'
-export default {
-	data() {
-		return {
-			id:'',
-			info:'',
-			list:[],
-		}
-	},
-	filters:{
-		time(e){
-			if(e){
-				let times = e.split(" ")
-				let years = times[0].split("-")
-				return years[0]+'年'+years[1]+'月'+years[2]+'日'
-			}
-			
-		}
-	},
-	onLoad(option) {
-		this.id = option.id;
-		this.loadData();
-	},
-	methods: {
-		loadData() {
-			belong({product_id: this.id}).then(({data}) =>{
-				this.list = data
-				console.log(data);
-				details({product_id: this.id}).then(({data}) =>{
-					this.info = data
-					console.log(info);
-				}).catch(e =>{
-					
-				})
-			}).catch(e =>{
-				console.log(e);
-			})
-		}
-	},
-}
-</script>
-
-<style lang="scss">
-.center {
-	background: #f8f8f8;
-	height: auto;
-	min-height: 100%;
-}
-.product {
-	width: 670rpx;
-	padding: 44rpx 0 40rpx 0;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	margin: 34rpx auto 0;
-	display: flex;
-	flex-direction: column;
-	align-items: center;
-	.product-image {
-		width: 300rpx;
-		height: 300rpx;
-		border-radius: 20rpx;
-	}
-	.product-font {
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #1d2023;
-	}
-	.font1 {
-		margin-top: 34rpx;
-	}
-	.font2 {
-		margin-top: 44rpx;
-	}
-}
-.main {
-	width: 670rpx;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	margin: 30rpx auto 0;
-	.main-item:first-child {
-		border-top: none;
-	}
-	.main-item {
-		padding: 2rpx 20rpx;
-		display: flex;
-		align-items: center;
-		height: 104rpx;
-		border-top: 1px solid #dddddd;
-		.main-left {
-			width: 50%;
-			text-align: center;
-			font-size: 32rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #1d2023;
-		}
-		.main-right {
-			width: 50%;
-			text-align: center;
-			font-size: 32rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #1d2023;
-		}
-	}
-}
-.ma {
-	width: 670rpx;
-	padding: 46rpx 0;
-	background: #FFFFFF;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	margin: 30rpx auto 0;
-	.ma-main {
-		width: 300rpx;
-		height: 300rpx;
-		margin: 0 auto;
-		background: #000;
-	}
-	.ma-font {
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #1D2023;
-		margin-top: 34rpx;
-		text-align: center;
-	}
-}
-</style>

+ 0 - 697
pages/hall/porducthall.vue

@@ -1,697 +0,0 @@
-<template>
-	<view class="container">
-		<view class="carousel">
-			<swiper indicator-dots :circular="true" duration="400">
-				<swiper-item class="swiper-item" v-for="(item, index) in imageList" :key="index">
-					<view class="image-wrapper">
-						<image :src="item" class="loaded" mode="scaleToFill"></image>
-					</view>
-				</swiper-item>
-			</swiper>
-			<view class="title flex">
-				<view class="title-num">
-					<text>¥</text>
-					{{ info.hanging_price }}
-				</view>
-				<view class="title-time">挂售时间:{{ info.time }}</view>
-			</view>
-		</view>
-		<view class="title-main flex">
-			<view class="tm-left">
-				<view class="tm-title clamp">{{ info.name }}</view>
-				<view class="tm-people flex">
-					<image class="people-image" src="../../static/img/people.png" mode=""></image>
-					<view class="people-name">归属人:{{ info.user_nickname }}</view>
-				</view>
-			</view>
-			<view class="tm-right flex">
-				<!-- <view class="tmr-item" @click="isDjs()">
-					<image class="tmr-image" src="../../static/img/shua.png" mode=""></image>
-					<view class="tmr-font">刷新倒计时</view>
-				</view> -->
-				<view class="tmr-item" @click="nav('/pages/hall/history?id=' + id)">
-					<image class="tmr-image1" src="../../static/img/yuan.png" mode=""></image>
-					<view class="tmr-font">溯源</view>
-				</view>
-			</view>
-		</view>
-		<view class="dz"></view>
-		<!-- <view class="introduce">
-			<view class="introduct-title">
-				<image class="introduce-image" src="../../static/img/productIcon.png" mode=""></image>
-				<view class="introduce-font">艺术品挂售交易平台</view>
-			</view>
-			<view class="introduct-main">
-				<view class="im-item">
-					<image class="im-image" src="../../static/img/jian.png" mode=""></image>
-					<view class="im-font">大师作品</view>
-				</view>
-				<view class="im-item">
-					<image class="im-image" src="../../static/img/zheng.png" mode=""></image>
-					<view class="im-font">证书收藏</view>
-				</view>
-				<view class="im-item">
-					<image class="im-image" src="../../static/img/gong.png" mode=""></image>
-					<view class="im-font">自由交易</view>
-				</view>
-			</view>
-		</view> -->
-		<view class="dz"></view>
-		<view class="explain">
-			<view class="explain-title">商品挂售说明</view>
-			<view class="explain-main">
-				<view class="explainImage-box">
-					<image class="explain-image-item" src="../../static/img/lc1.png" mode=""></image>
-					<image class="explain-image-jiant" src="../../static/img/jingt.png" mode=""></image>
-					<image class="explain-image-item" src="../../static/img/lc2.png" mode=""></image>
-					<image class="explain-image-jiant" src="../../static/img/jingt.png" mode=""></image>
-					<image class="explain-image-item" src="../../static/img/lc3.png" mode=""></image>
-					<image class="explain-image-jiant" src="../../static/img/jingt.png" mode=""></image>
-					<image class="explain-image-item" src="../../static/img/lc4.png" mode=""></image>
-				</view>
-				<view class="explainfont-box">
-					<view class="explain-font-item">挂售商品</view>
-					<view class="explain-font-item">支付货款</view>
-					<view class="explain-font-item">卖家发货</view>
-					<view class="explain-font-item">挂售/提货</view>
-				</view>
-			</view>
-		</view>
-		<view class="detail-desc">
-			<view class="d-header"><text>商品详情</text></view>
-			<rich-text class="detail-centent" :nodes="info.description"></rich-text>
-			<view class="contentBottomHeight"></view>
-		</view>
-		<view class="bottom flex">
-			<view class="bottom-item">
-				<image class="bi-image" src="../../static/img/quan.png" mode=""></image>
-				<view class="bottom-font">易趣卷</view>
-				<!-- <view class="bottom-num">200</view> -->
-			</view>
-			<view class="shu"></view>
-			<view class="bottom-item" @click="openKf()">
-				<image class="bi-image" src="../../static/img/kf.png" mode=""></image>
-				<view class="bottom-font">联系</view>
-				<view class="bottom-num">客服</view>
-			</view>
-			<view class="btn" @click="buy()">{{ isbuy ? '立即购买' : countdown_time }}</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		details,
-		purchase,
-		count_down,
-		verify_code,
-		captcha
-	} from '@/api/hall.js';
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		getTime
-	} from '@/utils/rocessor.js';
-	export default {
-		data() {
-			return {
-				isbiao: 0,
-				text: '123456',
-				id: '',
-				uid: '',
-				name: '',
-				peoplename: '',
-				info: '',
-				imageList: [],
-				countdown_time: '',
-				unicode: '',
-				key: '',
-				code: '',
-				isdian: 0,
-				canbuy: 0, //结束时间
-				time: '', //进场时间
-				timers: '' //延时器id
-			};
-		},
-		onLoad(option) {
-			this.id = option.id;
-			this.uid = option.uid;
-			this.name = option.name;
-			this.peoplename = option.peoplename;
-		},
-		computed: {
-			...mapState(['isbuy', 'baseURL'])
-		},
-		onShow() {
-			this.loadData();
-			console.log(this.isbuy);
-			if (!this.isbuy) {
-				this.isDjs();
-			}
-		},
-		onHide() {
-			clearTimeout(this.timers);
-		},
-		// 监听页面卸载
-		onUnload() {
-			// 关闭倒计时
-			clearTimeout(this.timers);
-		},
-		// 监听页面后退
-		onBackPress() {
-			// 关闭倒计时
-			clearTimeout(this.timers);
-		},
-		methods: {
-			...mapMutations(['setBuy']),
-			isDjs() {
-				clearTimeout(this.timers);
-				count_down({
-					id: this.uid
-				}).then(({
-					data
-				}) => {
-					this.canbuy = data.times;
-					let day = getTime(this.canbuy * 1000).split(' ');
-					this.time = day[1];
-					this.counTime();
-				});
-			},
-			counTime() {
-				//获取当前时间
-				let data = new Date();
-				let newTime = data.getTime();
-				//结束时间
-				let end = this.canbuy;
-				//时间差
-				let leftTime = end * 1000 - newTime;
-				console.log(leftTime);
-				console.log(this.la, '2222222');
-				if (leftTime <= 0) {
-					console.log('已结束');
-					this.setBuy(true);
-					return;
-				}
-				//定义保存倒计时时间
-				let m, s;
-				if (leftTime >= 0) {
-					m = Math.floor((leftTime / 1000 / 60) % 60);
-					s = Math.floor((leftTime / 1000) % 60);
-					this.second = s;
-					this.la = m + s;
-					//倒计时赋值view
-					this.countdown_time = `${m}:${s}`;
-					this.timers = setTimeout(this.counTime, 1000);
-					//显示动态时间效果
-					if (s < 10) {
-						return (this.countdown_time = `${m}:0${s}`);
-						this.timers = setTimeout(this.counTime, 1000);
-					}
-					if (m < 10) {
-						return (this.countdown_time = `0${m}:${s}`);
-						this.timers = setTimeout(this.counTime, 1000);
-					}
-				}
-			},
-			loadData() {
-				details({
-						product_id: this.id
-					})
-					.then(({
-						data
-					}) => {
-						console.log(data);
-						this.imageList = data.slider_image;
-						this.unicode = data.unicode
-						if (data.description != '') {
-							data.description = data.description.replace(/\<img/gi, '<img class="rich-img"');
-						}
-						this.info = data;
-					})
-					.catch(e => {});
-			},
-			// 打开客服
-			openKf() {
-				this.$refs.popupkf.open();
-			},
-			// 关闭客服
-			cancel() {
-				this.$refs.popupkf.close();
-			},
-			nav(url) {
-				uni.navigateTo({
-					url
-				});
-			},
-			buy() {
-				if (!this.isbuy) {
-					return this.$api.msg('还未到购买时间');
-				}
-				uni.showLoading({
-					title: '抢购中'
-				})
-				console.log(this.isdian, '123456');
-				if (this.isdian != 0) {
-					uni.hideLoading()
-					return
-				}
-				this.isdian = 1
-				purchase({
-						product_id: this.id,
-						unicode: this.unicode,
-					})
-					.then(({
-						data
-					}) => {
-						this.isdian = 0
-						uni.hideLoading()
-						uni.navigateTo({
-							url: '/pages/money/paySuccess?type=1&uid=' + this.uid + +'&name=' + this.name +
-								'&peoplename=' + this.peoplename
-						});
-						console.log(data);
-					})
-					.catch(e => {
-						this.isdian = 0;
-						uni.hideLoading();
-						console.log(e);
-					});
-			}
-		}
-	};
-</script>
-
-<style lang="less">
-	.carousel {
-		width: 750rpx;
-		height: 710rpx;
-		position: relative;
-
-		swiper {
-			height: 100%;
-		}
-
-		.image-wrapper {
-			width: 100%;
-			height: 100%;
-		}
-
-		.swiper-item {
-			display: flex;
-			justify-content: center;
-			align-content: center;
-			// height: 750rpx;
-			height: 710rpx;
-			overflow: hidden;
-
-			image {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.title {
-			background: linear-gradient(90deg, #ef4e51 0%, #f4713b 100%);
-			width: 750rpx;
-			position: absolute;
-			bottom: 0;
-			padding: 30rpx;
-
-			.title-num {
-				font-size: 50rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #ffffff;
-
-				text {
-					font-size: 30rpx;
-				}
-			}
-
-			.title-time {
-				font-size: 28rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #ffffff;
-			}
-		}
-	}
-
-	.title-main {
-		padding: 30rpx 30rpx 30rpx 22rpx;
-
-		.tm-left {
-			width: 50%;
-
-			.tm-title {
-				width: 100%;
-				font-size: 30rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #1d2023;
-			}
-
-			.tm-people {
-				margin-top: 30rpx;
-				justify-content: flex-start;
-
-				.people-image {
-					width: 22rpx;
-					height: 22rpx;
-					flex-shrink: 0;
-				}
-
-				.people-name {
-					margin-left: 12rpx;
-					font-size: 24rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #333333;
-				}
-			}
-		}
-
-		.tm-right {
-			justify-content: flex-end;
-
-			.tmr-item {
-				margin-left: 38rpx;
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-
-				.tmr-image {
-					width: 42rpx;
-					height: 38rpx;
-				}
-
-				.tmr-image1 {
-					width: 42rpx;
-					height: 42rpx;
-				}
-
-				.tmr-font {
-					margin-top: 16rpx;
-					font-size: 24rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #333333;
-				}
-			}
-		}
-	}
-
-	.dz {
-		width: 750rpx;
-		height: 20rpx;
-		background: #f8f6f6;
-	}
-
-	.introduce {
-		padding: 40rpx 24rpx;
-
-		.introduct-title {
-			display: flex;
-			align-items: center;
-
-			.introduce-image {
-				width: 36rpx;
-				height: 36rpx;
-			}
-
-			.introduce-font {
-				margin-left: 10rpx;
-				font-size: 28rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #333333;
-			}
-		}
-
-		.introduct-main {
-			display: flex;
-			justify-content: space-between;
-			margin-top: 26rpx;
-
-			.im-item {
-				display: flex;
-				align-items: center;
-
-				.im-image {
-					width: 44rpx;
-					height: 44rpx;
-				}
-
-				.im-font {
-					margin-left: 6rpx;
-					font-size: 28rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #333333;
-				}
-			}
-		}
-	}
-
-	.explain {
-		padding: 40rpx 34rpx 46rpx 34rpx;
-
-		.explain-title {
-			font-size: 32rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #333333;
-		}
-
-		.explain-main {
-			margin-top: 52rpx;
-
-			.explainImage-box {
-				display: flex;
-				justify-content: space-around;
-				align-items: center;
-
-				.explain-image-item {
-					width: 42rpx;
-					height: 40rpx;
-				}
-
-				.explain-image-jiant {
-					width: 38rpx;
-					height: 10rpx;
-				}
-			}
-
-			.explainfont-box {
-				margin-top: 20rpx;
-				display: flex;
-				justify-content: space-between;
-
-				.explain-font-item {
-					font-size: 28rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #333333;
-				}
-			}
-		}
-	}
-
-	.detail-desc {
-		background: #fff;
-		margin-top: 16rpx;
-
-		/deep/ img {
-			max-width: 100% !important;
-			display: inline !important;
-		}
-
-		/deep/ div {
-			max-width: 100% !important;
-		}
-
-		.d-header {
-			display: flex;
-			justify-content: center;
-			align-items: center;
-			height: 80rpx;
-			font-size: 30rpx;
-			color: #303133;
-			position: relative;
-
-			text {
-				padding: 0 20rpx;
-				background: #fff;
-				position: relative;
-				z-index: 1;
-			}
-
-			&:after {
-				position: absolute;
-				left: 50%;
-				top: 50%;
-				transform: translateX(-50%);
-				width: 300rpx;
-				height: 0;
-				content: '';
-				border-bottom: 1px solid #ccc;
-			}
-		}
-	}
-
-	.bottom {
-		position: fixed;
-		z-index: 10;
-		bottom: 0;
-		background: #ffffff;
-		width: 750rpx;
-		height: 146rpx;
-		justify-content: flex-start;
-
-		.bottom-item {
-			margin-left: 42rpx;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-
-			.bi-image {
-				width: 38rpx;
-				height: 34rpx;
-			}
-
-			.bottom-font {
-				margin-top: 14rpx;
-				font-size: 24rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #333333;
-			}
-
-			.bottom-num {
-				line-height: 1;
-				font-size: 24rpx;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #333333;
-			}
-		}
-
-		.shu {
-			margin-left: 38rpx;
-			width: 2px;
-			height: 74rpx;
-			background: #c0bfc0;
-		}
-
-		.btn {
-			margin-left: 40rpx;
-			width: 430rpx;
-			height: 80rpx;
-			background: #fd3b39;
-			border-radius: 20rpx;
-			text-align: center;
-			font-size: 34rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #ffffff;
-			line-height: 80rpx;
-		}
-	}
-
-	.popup-box {
-		width: 522rpx;
-		height: 605rpx;
-		background-color: #ffffff;
-		border-radius: 20rpx;
-		position: relative;
-
-		.img {
-			position: relative;
-			top: -56rpx;
-			left: 0;
-			width: 522rpx;
-			height: 132rpx;
-			display: flex;
-			justify-content: center;
-
-			image {
-				border-radius: 20rpx 20rpx 0 0;
-				width: 450rpx;
-				height: 132rpx;
-			}
-		}
-
-		.mian {
-			margin-top: -44rpx;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			// padding: 32rpx 32rpx;
-			background-color: #ffffff;
-			border-radius: 0 0 20rpx 20rpx;
-			text-align: center;
-
-			.delivery {
-				font-size: 40rpx;
-				color: #333333;
-				display: flex;
-				align-items: center;
-				flex-direction: column;
-
-				.title {}
-
-				image {
-					margin-top: 48rpx;
-					width: 172rpx;
-					height: 160rpx;
-				}
-			}
-
-			.nocancel {
-				font-size: 32rpx;
-				color: #333333;
-				margin-top: 14rpx;
-			}
-
-			.comfirm-box {
-				margin-top: 52rpx;
-				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;
-				}
-			}
-		}
-	}
-
-	// 文章页底部高度撑开
-	.contentBottomHeight {
-		height: 150rpx;
-	}
-</style>

+ 0 - 442
pages/money/jifen.vue

@@ -1,442 +0,0 @@
-<template>
-	<view class="content">
-		<view class="content-money">
-			<view class="status_bar"><!-- 这里是状态栏 --></view>
-			<view class="body-title">
-				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">我的积分</view>
-			</view>
-			<view class="content-bg"><image src="../../static/img/jifen.png" mode=""></image></view>
-			<view class="money-box">
-				<view class="money">{{ userInfo.brokerage_price }}</view>
-				<view>余额</view>
-			</view>
-			<view class="money-btn" @click="navto('/pages/money/withdrawal')">
-				兑换置换券
-				<!-- <text>></text> -->
-			</view>
-		</view>
-		<view class="info-box flex">
-			<view class="info-item">
-				<view class="info-font">累计收入</view>
-				<view class="info-num">{{recharge}}</view>
-			</view>
-			<view class="shu"></view>
-			<view class="info-item">
-				<view class="info-font">累计支出</view>
-				<view class="info-num">{{orderStatusSum}}</view>
-			</view>
-		</view>
-		<view class="navbar">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
-					<!-- 空白页 -->
-					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-
-					<!-- 订单列表 -->
-					<view>
-						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
-							<view class="title-box">
-								<view class="title">
-									<text>{{ item.title }}</text>
-								</view>
-								<view class="time">
-									<text>{{ item.add_time }}</text>
-								</view>
-							</view>
-							<view class="money">
-								<view>{{ (item.pm == 0 ? '-' : '+') + item.number }}</view>
-								<view v-if="item.status == 0" class="status">待发放</view>
-							</view>
-						</view>
-					</view>
-					<uni-load-more :status="tabItem.loadingType" v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import { spreadCommission, userBalance } from '@/api/wallet.js';
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { mapState, mapMutations } from 'vuex';
-import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
-import empty from '@/uview-ui/components/u-empty/u-empty.vue';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	computed: {
-		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
-	},
-	components: {
-		empty,
-		uniLoadMore
-	},
-	onReady(res) {
-		var _this = this;
-		uni.getSystemInfo({
-			success: resu => {
-				const query = uni.createSelectorQuery();
-				query.select('.swiper-box').boundingClientRect();
-				query.exec(function(res) {
-					_this.maxheight = resu.windowHeight - res[0].top + 'px';
-					console.log('打印页面的剩余高度', _this.height);
-				});
-			},
-			fail: res => {}
-		});
-	},
-	data() {
-		return {
-			// 头部图高度
-			maxheight: '',
-			tabCurrentIndex: 0,
-			orderStatusSum: 0,
-			recharge: 0,
-			
-			navList: [
-				{
-					state: 0,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [
-						{
-							title:'2233',
-							add_time:'2021-5-4',
-							number:22222
-						},
-						{
-							title:'2233',
-							add_time:'2021-5-4',
-							number:22222
-						},
-						{
-							title:'2233',
-							add_time:'2021-5-4',
-							number:22222
-						},
-						{
-							title:'2233',
-							add_time:'2021-5-4',
-							number:22222
-						}
-					],
-					page: 1, //当前页数
-					limit: 10 ,//每次信息条数
-					loaded: false
-				},
-				{
-					state: 1,
-					text: '支出',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 ,//每次信息条数
-					loaded: false
-				}
-			],
-			money: ''
-		};
-	},
-	onLoad(options) {},
-	onShow() {
-		this.loadData();
-	},
-	methods: {
-		// 页面跳转
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		},
-		// 点击返回 我的页面
-		toBack() {
-			uni.navigateBack({});
-		},
-		//获取收入支出信息
-		async loadData(source) {
-			let obj = this;
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state + 3;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-
-			spreadCommission(
-				{
-					page: navItem.page,
-					limit: navItem.limit
-				},
-				state
-			)
-				.then(({ data }) => {
-					obj.recharge = data.income;
-					obj.orderStatusSum = data.expend;
-						console.log(data);
-					if (data.list.length > 0) {
-						navItem.orderList = navItem.orderList.concat(data.list[0].list);
-						console.log(navItem.orderList);
-						navItem.page++;
-					}else {
-						navItem.loadingType = 'noMore';
-					}
-					if (navItem.limit == data.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: #f1f1f1;
-	height: 100%;
-}
-.status_bar {
-	height: var(--status-bar-height);
-	width: 100%;
-}
-.content-money {
-	position: relative;
-	height: 480rpx;
-	.content-bg {
-		position: absolute;
-		top: 0;
-		left: 0;
-		right: 0;
-		width: 750rpx;
-		height: 480rpx;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-	.body-title {
-		height: 80rpx;
-		text-align: center;
-		font-size: 35rpx;
-		position: relative;
-		.header {
-			position: absolute;
-			left: 0;
-			top: 0;
-			width: 100%;
-			font-size: 36rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #fffeff;
-			height: 80rpx;
-			font-size: 36rpx;
-			font-weight: 700;
-			z-index: 9;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-		}
-		.goback-box {
-			position: absolute;
-			left: 18rpx;
-			top: 0;
-			height: 80rpx;
-			display: flex;
-			align-items: center;
-		}
-
-		.goback {
-			z-index: 100;
-			width: 34rpx;
-			height: 34rpx;
-		}
-	}
-}
-.info-box {
-	width: 670rpx;
-	height: 186rpx;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	margin: -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-weight: bold;
-			color: #999999;
-		}
-		.info-num {
-			margin-top: 30rpx;
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #181818;
-		}
-	}
-	.shu {
-		width: 2rpx;
-		height: 74rpx;
-		background: #dcdfe6;
-	}
-}
-.money-box {
-	position: relative;
-	z-index: 2;
-	padding-top: 90rpx;
-	color: #ffffff;
-	text-align: center;
-	.money {
-		font-size: 72rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-	}
-	.text {
-		font-size: 30rpx;
-	}
-}
-.money-btn {
-	position: relative;
-	z-index: 2;
-	color: #ffffff;
-	padding-right: 50rpx;
-	text-align: right;
-	font-size: 30rpx;
-	font-family: PingFang SC;
-	font-weight: bold;
-	color: #FFFFFF;
-	text {
-		display: inline-block;
-		padding-left: 10rpx;
-	}
-}
-
-.navbar {
-	margin-top: 20rpx;
-	display: flex;
-	height: 88rpx;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: #999999;
-		position: relative;
-		&.current {
-			color: #000;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid #fe5b38;
-			}
-		}
-	}
-}
-//列表
-.swiper-box {
-	.order-item:last-child {
-		margin-bottom: 60rpx;
-	}
-	.order-item {
-		padding: 20rpx 30rpx;
-		line-height: 1.5;
-		.title-box {
-			.title {
-				font-size: $font-lg;
-				color: $font-color-base;
-			}
-			.time {
-				font-size: $font-base;
-				color: $font-color-light;
-			}
-		}
-		.money {
-			color: #fd5b23;
-			font-size: $font-lg;
-			text-align: right;
-			.status {
-				color: $font-color-light;
-			}
-		}
-	}
-}
-.list-scroll-content {
-	background: #ffffff;
-	height: 100%;
-}
-.content {
-	height: 100%;
-	.empty-content {
-		background-color: #ffffff;
-	}
-}
-.btn-box {
-	width: 674rpx;
-	height: 88rpx;
-	background: linear-gradient(0deg, #2e58ff, #32c6ff);
-	border-radius: 44rpx;
-	font-size: 36rpx;
-	font-family: PingFang SC;
-	font-weight: 500;
-	color: #ffffff;
-	text-align: center;
-	line-height: 88rpx;
-	position: fixed;
-	bottom: 48rpx;
-	left: 0;
-	right: 0;
-	margin: 0 auto;
-}
-</style>

+ 0 - 365
pages/money/pay.vue

@@ -1,365 +0,0 @@
-<template>
-	<view class="app">
-		<view class="price-box">
-			<text>支付金额</text>
-			<text class="price">{{ money }}</text>
-		</view>
-		<view class="pay-type-list">
-			<view class="type-item b-b" @click="changePayType(1)">
-				<text class="icon iconfont iconweixin"></text>
-				<view class="con">
-					<text class="tit">微信支付</text>
-					<text>推荐使用微信支付</text>
-				</view>
-				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 1"></radio></label>
-			</view>
-			<!-- #ifdef APP-PLUS -->
-			<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>
-			<!-- #endif -->
-			<view class="type-item" @click="changePayType(3)">
-				<text class="icon iconfont iconyue"></text>
-				<view class="con">
-					<text class="tit">余额支付</text>
-					<text>可用余额 ¥{{ now_money }}</text>
-				</view>
-				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 3"></radio></label>
-			</view>
-		</view>
-		<text class="mix-btn" :class="{ clickbg: payLoding }" @click="!payLoding ? confirm() : ''">确认支付</text>
-	</view>
-</template>
-
-<script>
-import { balance } from '@/api/wallet.js';
-import { createOrderkey, computedOrderkey, orderPay } from '@/api/order.js';
-import { mapState } from 'vuex';
-export default {
-	data() {
-		return {
-			payType: 1, //支付类型
-			payName: 'weixin',
-			orderInfo: {},
-			money: 0.0, //订单金额
-			now_money: 0.0, //余额
-			orderKey: '',
-			orderId: '', //保存订单id
-			payLoding: false, //判断是否支付中
-			type: '', //判断是否从订单中进入
-			// #ifdef H5
-			froms: '', //保存h5中数据来源对象
-			// #endif
-			pinkid: '' //保存拼团商品id
-		};
-	},
-	computed: {
-		// #ifdef H5
-		...mapState(['weichatObj'])
-		// #endif
-	},
-	onLoad(options) {
-		if (options.type == 1) {
-			this.type = 1;
-			this.orderId = options.ordid;
-			this.money = options.money;
-		} else {
-			this.orderKey = options.key;
-			let prepage = this.$api.prePage();
-			computedOrderkey({
-				orderkey: this.orderKey,
-				couponId: prepage.couponChecked.id, //优惠券编号
-				addressId: prepage.addressData.id, //地址编号
-				useIntegral: prepage.checkedPoints ? 1 : 0
-			}).then(({ data }) => {
-				// 获取支付金额
-				this.money = data.result.pay_price;
-			});
-		}
-		// 保存pinkid
-		if (options.pinkid) {
-			this.pinkid = options.pinkid;
-		}
-		// 载入余额
-		balance({}).then(({ data }) => {
-			// 获取余额
-			this.now_money = data.now_money;
-		});
-	},
-	methods: {
-		//选择支付方式
-		changePayType(type) {
-			this.payType = type;
-			if (this.payType == 1) {
-				this.payName = 'weixin';
-			}
-			if (this.payType == 2) {
-				this.payName = 'ali';
-			}
-			if (this.payType == 3) {
-				this.payName = 'yue';
-			}
-		},
-		// 支付金额
-		orderMoneyPay() {
-			let obj = this;
-			orderPay({
-				uni: obj.orderId,
-				// #ifdef H5
-				from: obj.froms ? 'weixin' : 'H5', //来源
-				// #endif
-				// #ifdef MP-WEIXIN
-				from: 'routine', //来源
-				// #endif
-				// #ifdef APP-PLUS
-				from: 'app', //来源
-				// #endif
-				paytype: obj.payName //支付类型  weixin-微信 yue-余额
-			})
-				.then(e => {
-					// 判断是否为余额支付
-					if (obj.payName == 'yue' && e.data.status == 'SUCCESS') {
-						if (e.status == 200) {
-							obj.paySuccessTo();
-						} else {
-							obj.$api.msg(msg);
-						}
-					}
-					if (obj.payName == 'weixin' || obj.payName == 'routine') {
-						let da = e.data.result.jsConfig;
-						let data = {
-							// #ifdef H5
-							timestamp: da.timestamp,
-							// #endif
-							// #ifdef MP
-							timeStamp: da.timestamp,
-							// #endif
-							nonceStr: da.nonceStr,
-							package: da.package,
-							signType: da.signType,
-							paySign: da.paySign,
-							success: function(res) {
-								obj.paySuccessTo();
-							},
-							fail: () => {
-								uni.navigateTo({
-									url: '/pages/order/order?state=0'
-								});
-							}
-						};
-						// #ifdef H5
-						if (obj.payName == 'weixin') {
-							obj.weichatObj.chooseWXPay(data);
-						}
-						// #endif
-						// #ifdef MP-WEIXIN
-						if (obj.payName == 'routine') {
-							wx.requestPayment(data);
-						}
-						// #endif
-					}
-					uni.hideLoading();
-					obj.payLoding = false;
-				})
-				.catch(e => {
-					// 支付完成
-					uni.hideLoading();
-					obj.payLoding = false;
-					console.log(e);
-				});
-		},
-		// 支付成功跳转
-		paySuccessTo() {
-			uni.hideLoading();
-			uni.redirectTo({
-				url: '/pages/money/paySuccess?orderid=' + this.orderId
-			});
-		},
-		//确认支付
-		confirm: async function() {
-			let obj = this;
-			uni.showLoading({
-				title: '支付中',
-				mask: true
-			});
-			// 判断是否余额不足
-			if (obj.payName == 'yue' && +obj.now_money < obj.money) {
-				uni.showModal({
-					title: '提示',
-					content: '账户余额不足!',
-					showCancel: false,
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-				return;
-			}
-			// 支付中
-			obj.payLoding = true;
-			// #ifdef H5
-			// 获取当前是否为微信浏览器
-			obj.froms = uni.getStorageSync('weichatBrowser') || '';
-			// #endif
-			// 判断是否为未支付订单中跳转进入
-			if (obj.type != 1) {
-				// 初次生成订单
-				obj.firstCreateOrder();
-			} else {
-				// 已经生成订单未支付
-				obj.orderMoneyPay();
-			}
-		},
-		// 初次订单创建
-		firstCreateOrder() {
-			let obj = this;
-			// 获取下单页面数据
-			let prepage = obj.$api.prePage();
-
-			let data = {
-				real_name: prepage.addressData.real_name, //联系人名称
-				phone: prepage.addressData.phone, //联系人号码
-				couponId: prepage.couponChecked.id, //优惠券编号
-				addressId: prepage.addressData.id, //支付地址id
-				useIntegral: prepage.checkedPoints ? 1 : 0, //是否积分抵扣1为是0为否
-				payType: obj.payName, //支付类型  weixin-微信 yue-余额
-				mark: prepage.desc, //备注
-				// #ifdef H5
-				from: obj.froms ? 'weixin' : 'H5', //来源
-				// #endif
-				// #ifdef MP-WEIXIN
-				from: 'routine', //来源
-				// #endif
-				// #ifdef APP-PLUS
-				from: 'app', //来源
-				// #endif
-				shipping_type: 1 //提货方式 1 快递 2自提
-			};
-			// 判断是否拼团商品
-			if (obj.pinkid) {
-				data.pinkId = obj.pinkid;
-			}
-			// 生成订单
-			createOrderkey(data, obj.orderKey)
-				.then(({ data, status, msg }) => {
-					// 判断是否支付失败
-					if (data.status == 'ORDER_EXIST') {
-						uni.showModal({
-							title: '提示',
-							content: msg,
-							showCancel: false
-						});
-						uni.hideLoading();
-						obj.payLoding = false;
-						return;
-					}
-					// 保存订单号
-					obj.orderId = data.result.orderId;
-					// 判断是否为余额支付
-					if (obj.payName == 'yue') {
-						if (status == 200 && data.status == 'SUCCESS') {
-							obj.paySuccessTo();
-						} else {
-							obj.$api.msg(msg);
-						}
-					} else {
-						// 立即支付
-						obj.orderMoneyPay();
-					}
-				})
-				.catch(e => {
-					uni.hideLoading();
-					obj.payLoding = false;
-					console.log(e);
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-.app {
-	width: 100%;
-}
-
-.price-box {
-	background-color: #fff;
-	height: 265upx;
-	display: flex;
-	flex-direction: column;
-	justify-content: center;
-	align-items: center;
-	font-size: 28upx;
-	color: #909399;
-
-	.price {
-		font-size: 50upx;
-		color: #303133;
-		margin-top: 12upx;
-		&:before {
-			content: '¥';
-			font-size: 40upx;
-		}
-	}
-}
-
-.pay-type-list {
-	margin-top: 20upx;
-	background-color: #fff;
-	padding-left: 60upx;
-	.type-item {
-		height: 120upx;
-		padding: 20upx 0;
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		padding-right: 60upx;
-		font-size: 30upx;
-		position: relative;
-	}
-
-	.icon {
-		width: 100upx;
-		font-size: 52upx;
-	}
-	.iconyue {
-		color: #fe8e2e;
-	}
-	.iconweixin {
-		color: #36cb59;
-	}
-	.iconzhifubao {
-		color: #01aaef;
-	}
-	.tit {
-		font-size: $font-lg;
-		color: $font-color-dark;
-		margin-bottom: 4upx;
-	}
-	.con {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		font-size: $font-sm;
-		color: $font-color-light;
-	}
-}
-.mix-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 630upx;
-	height: 80upx;
-	margin: 80upx auto 30upx;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10upx;
-	/* box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4); */
-}
-
-.clickbg {
-	background-color: $color-gray !important;
-}
-</style>

+ 0 - 83
pages/money/paySuccess.vue

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

+ 0 - 454
pages/money/zhihuanquan.vue

@@ -1,454 +0,0 @@
-<template>
-	<view class="content">
-		<view class="content-money">
-			<view class="status_bar"><!-- 这里是状态栏 --></view>
-			<view class="body-title">
-				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">我的趣豆</view>
-			</view>
-			<view class="content-bg"><image src="../../static/img/zhihuanjuan.png" mode=""></image></view>
-			<view class="money-box">
-				<view class="money">{{ userInfo.brokerage_price }}</view>
-				<view>余额</view>
-			</view>
-			<view class="bth-box">
-				<view class="money-btn" @click="navto('/pages/money/withdrawal')">
-					兑换积分
-					<!-- <text>></text> -->
-				</view>
-				<view class="money-btn" @click="navto('/pages/money/withdrawal')">
-					转账艺金劵
-					<!-- <text>></text> -->
-				</view>
-			</view>
-		</view>
-		<view class="info-box flex">
-			<view class="info-item">
-				<view class="info-font">冻结中</view>
-				<view class="info-num">{{recharge}}</view>
-			</view>
-			<view class="shu"></view>
-			<view class="info-item">
-				<view class="info-font">已释放</view>
-				<view class="info-num">{{orderStatusSum}}</view>
-			</view>
-		</view>
-		<view class="navbar">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-		<swiper :current="tabCurrentIndex" :style="{ height: maxheight }" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
-					<!-- 空白页 -->
-					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-
-					<!-- 订单列表 -->
-					<view>
-						<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
-							<view class="title-box">
-								<view class="title">
-									<text>{{ item.title }}</text>
-								</view>
-								<view class="time">
-									<text>{{ item.add_time }}</text>
-								</view>
-							</view>
-							<view class="money">
-								<view>{{ (item.pm == 0 ? '-' : '+') + item.number }}</view>
-								<view v-if="item.status == 0" class="status">待发放</view>
-							</view>
-						</view>
-					</view>
-					<uni-load-more :status="tabItem.loadingType" v-if="!(tabItem.orderList.length == 0 && tabItem.loaded)"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import { spreadCommission, userBalance } from '@/api/wallet.js';
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { mapState, mapMutations } from 'vuex';
-import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
-import empty from '@/uview-ui/components/u-empty/u-empty.vue';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	computed: {
-		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
-	},
-	components: {
-		empty,
-		uniLoadMore
-	},
-	onReady(res) {
-		var _this = this;
-		uni.getSystemInfo({
-			success: resu => {
-				const query = uni.createSelectorQuery();
-				query.select('.swiper-box').boundingClientRect();
-				query.exec(function(res) {
-					_this.maxheight = resu.windowHeight - res[0].top + 'px';
-					console.log('打印页面的剩余高度', _this.height);
-				});
-			},
-			fail: res => {}
-		});
-	},
-	data() {
-		return {
-			// 头部图高度
-			maxheight: '',
-			tabCurrentIndex: 0,
-			orderStatusSum: 0,
-			recharge: 0,
-			
-			navList: [
-				{
-					state: 0,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [
-						{
-							title:'2233',
-							add_time:'2021-5-4',
-							number:22222
-						},
-						{
-							title:'2233',
-							add_time:'2021-5-4',
-							number:22222
-						},
-						{
-							title:'2233',
-							add_time:'2021-5-4',
-							number:22222
-						},
-						{
-							title:'2233',
-							add_time:'2021-5-4',
-							number:22222
-						}
-					],
-					page: 1, //当前页数
-					limit: 10 ,//每次信息条数
-					loaded: false
-				},
-				{
-					state: 1,
-					text: '支出',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 ,//每次信息条数
-					loaded: false
-				}
-			],
-			money: ''
-		};
-	},
-	onLoad(options) {},
-	onShow() {
-		this.loadData();
-	},
-	methods: {
-		// 页面跳转
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		},
-		// 点击返回 我的页面
-		toBack() {
-			uni.navigateBack({});
-		},
-		//获取收入支出信息
-		async loadData(source) {
-			let obj = this;
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state + 3;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-
-			spreadCommission(
-				{
-					page: navItem.page,
-					limit: navItem.limit
-				},
-				state
-			)
-				.then(({ data }) => {
-					obj.recharge = data.income;
-					obj.orderStatusSum = data.expend;
-						console.log(data);
-					if (data.list.length > 0) {
-						navItem.orderList = navItem.orderList.concat(data.list[0].list);
-						console.log(navItem.orderList);
-						navItem.page++;
-					}else {
-						navItem.loadingType = 'noMore';
-					}
-					if (navItem.limit == data.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: #f1f1f1;
-	height: 100%;
-}
-.status_bar {
-	height: var(--status-bar-height);
-	width: 100%;
-}
-.content-money {
-	position: relative;
-	height: 480rpx;
-	.content-bg {
-		position: absolute;
-		top: 0;
-		left: 0;
-		right: 0;
-		width: 750rpx;
-		height: 480rpx;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-	.body-title {
-		height: 80rpx;
-		text-align: center;
-		font-size: 35rpx;
-		position: relative;
-		.header {
-			position: absolute;
-			left: 0;
-			top: 0;
-			width: 100%;
-			font-size: 36rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #fffeff;
-			height: 80rpx;
-			font-size: 36rpx;
-			font-weight: 700;
-			z-index: 9;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-		}
-		.goback-box {
-			position: absolute;
-			left: 18rpx;
-			top: 0;
-			height: 80rpx;
-			display: flex;
-			align-items: center;
-		}
-
-		.goback {
-			z-index: 100;
-			width: 34rpx;
-			height: 34rpx;
-		}
-	}
-}
-.info-box {
-	width: 670rpx;
-	height: 186rpx;
-	background: #ffffff;
-	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-	border-radius: 20rpx;
-	margin: -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-weight: bold;
-			color: #999999;
-		}
-		.info-num {
-			margin-top: 30rpx;
-			font-size: 30rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #181818;
-		}
-	}
-	.shu {
-		width: 2rpx;
-		height: 74rpx;
-		background: #dcdfe6;
-	}
-}
-.money-box {
-	position: relative;
-	z-index: 2;
-	padding-top: 90rpx;
-	color: #ffffff;
-	text-align: center;
-	.money {
-		font-size: 72rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-	}
-	.text {
-		font-size: 30rpx;
-	}
-}
-
-.bth-box{
-	display: flex;
-	justify-content: space-between;
-	padding: 0 50rpx;
-}
-.money-btn {
-	position: relative;
-	z-index: 2;
-	color: #ffffff;
-	
-	text-align: right;
-	font-size: 30rpx;
-	font-family: PingFang SC;
-	font-weight: bold;
-	color: #FFFFFF;
-	text {
-		display: inline-block;
-		padding-left: 10rpx;
-	}
-}
-
-.navbar {
-	margin-top: 20rpx;
-	display: flex;
-	height: 88rpx;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: #999999;
-		position: relative;
-		&.current {
-			color: #000;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid #fe5b38;
-			}
-		}
-	}
-}
-//列表
-.swiper-box {
-	.order-item:last-child {
-		margin-bottom: 60rpx;
-	}
-	.order-item {
-		padding: 20rpx 30rpx;
-		line-height: 1.5;
-		.title-box {
-			.title {
-				font-size: $font-lg;
-				color: $font-color-base;
-			}
-			.time {
-				font-size: $font-base;
-				color: $font-color-light;
-			}
-		}
-		.money {
-			color: #fd5b23;
-			font-size: $font-lg;
-			text-align: right;
-			.status {
-				color: $font-color-light;
-			}
-		}
-	}
-}
-.list-scroll-content {
-	background: #ffffff;
-	height: 100%;
-}
-.content {
-	height: 100%;
-	.empty-content {
-		background-color: #ffffff;
-	}
-}
-.btn-box {
-	width: 674rpx;
-	height: 88rpx;
-	background: linear-gradient(0deg, #2e58ff, #32c6ff);
-	border-radius: 44rpx;
-	font-size: 36rpx;
-	font-family: PingFang SC;
-	font-weight: 500;
-	color: #ffffff;
-	text-align: center;
-	line-height: 88rpx;
-	position: fixed;
-	bottom: 48rpx;
-	left: 0;
-	right: 0;
-	margin: 0 auto;
-}
-</style>

+ 0 - 422
pages/product/list.vue

@@ -1,422 +0,0 @@
-<template>
-	<view class="content">
-		<!-- <view class="navbar" :style="{ position: headerPosition, top: headerTop }">
-			<view class="nav-item" :class="{ current: filterIndex === 0 }" @click="tabClick(0)">综合排序</view>
-			<view class="nav-item" :class="{ current: filterIndex === 1 }" @click="tabClick(1)">
-				<text>销量优先</text>
-				<view class="p-box">
-					<text :class="{ active: numberOrder === 1 && filterIndex === 1 }" class="iconfont iconfold"></text>
-					<text :class="{ active: numberOrder === 2 && filterIndex === 1 }" class="iconfont iconfold xia"></text>
-				</view>
-			</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>
-			<text class="cate-item iconfont iconapps" @click="toggleCateMask('show')"></text>
-		</view> -->
-		<view class="priduct-main">
-			<view v-for="(item, index) in goodsList" :key="index" class="priduct-item" @click="navToDetailPage(item)">
-				<view class="priduct-main-image"><image :src="item.image" mode="aspectFill"></image></view>
-				<text class="title clamp">{{ item.title }}</text>
-				<view class="priduct-main-name clamp margin-c-20">{{ item.store_name }}</view>
-				<view class="priduct-main-price">
-					<view class="price" v-if="item.integral != 0">¥{{ item.price * 1 }} + {{ item.integral }}趣豆</view>
-					<view class="price" v-else>¥{{ item.price }}</view>
-				</view>
-			</view>
-		</view>
-		<uni-load-more :status="loadingType"></uni-load-more>
-
-		<!-- <view class="cate-mask" :class="cateMaskState === 0 ? 'none' : cateMaskState === 1 ? 'show' : ''" @click="toggleCateMask">
-			<view class="cate-content" @click.stop.prevent="stopPrevent" @touchmove.stop.prevent="stopPrevent">
-				<scroll-view scroll-y class="cate-list">
-					<view v-for="item in cateList" :key="item.id">
-						<view class="cate-item b-b two">{{ item.cate_name }}</view>
-						<view v-for="tItem in item.children" :key="tItem.id" class="cate-item b-b" :class="{ active: tItem.id == cateId }" @click="changeCate(tItem)">
-							{{ tItem.cate_name }}
-						</view>
-					</view>
-				</scroll-view>
-			</view>
-		</view> -->
-	</view>
-</template>
-
-<script>
-import { getProducts } from '@/api/product.js';
-import { getCategoryList } from '@/api/product.js';
-export default {
-	data() {
-		return {
-			cateMaskState: 0, //分类面板展开状态
-			headerPosition: 'fixed',
-			headerTop: '0px',
-			loadingType: 'more', //加载更多状态
-			filterIndex: 0, //查询类型
-			numberOrder: 0, //1 销量从低到高 2销量从高到低
-			limit: 8, //每次加载数据条数
-			page: 1, //当前页数
-			cateId: 0, //已选三级分类id
-			priceOrder: 0, //1 价格从低到高 2价格从高到低
-			cateList: [], //分类列表
-			goodsList: [] //商品列表
-		};
-	},
-
-	onLoad(options) {
-		// #ifdef H5
-		// this.headerTop = document.getElementsByTagName('uni-page-head')[0].offsetHeight + 'px';
-		// #endif
-		this.cateId = options.tid;
-		// this.loadCateList(options.fid, options.sid);
-		this.loadData();
-	},
-	onPageScroll(e) {
-		//兼容iOS端下拉时顶部漂移
-		if (e.scrollTop >= 0) {
-			this.headerPosition = 'fixed';
-		} else {
-			this.headerPosition = 'absolute';
-		}
-	},
-	//下拉刷新
-	onPullDownRefresh() {
-		this.loadData('refresh');
-	},
-	//监听页面是否滚动到底部加载更多
-	onReachBottom() {
-		this.loadData();
-	},
-	methods: {
-		//加载分类
-		async loadCateList(fid, sid) {
-			let obj = this;
-			getCategoryList({}).then(function(e) {
-				console.log(e);
-				e.data.forEach(function(e) {
-					if (e.id == fid) {
-						obj.cateList = e.children;
-						return;
-					}
-				});
-				console.log(obj.cateList);
-			});
-		},
-		//加载商品 ,带下拉刷新和上滑加载
-		async loadData(type = 'add', loading) {
-			let obj = this;
-			let data = {
-				page: obj.page,
-				limit: obj.limit,
-				sid: obj.cateId //分类id
-			};
-			//没有更多直接返回
-			if (type === 'add') {
-				if (obj.loadingType === 'nomore') {
-					return;
-				}
-				obj.loadingType = 'loading';
-			} else {
-				obj.loadingType = 'more';
-			}
-			if (type === 'refresh') {
-				// 清空数组
-				obj.goodsList = [];
-				obj.page = 1;
-			}
-			if (this.filterIndex == 1) {
-				console.log(obj.salesOrder);
-				data.salesOrder = obj.numberOrder == 1 ? 'asc' : 'desc';
-			}
-			if (this.filterIndex == 2) {
-				console.log(obj.priceOrder);
-				data.priceOrder = obj.priceOrder == 1 ? 'asc' : 'desc';
-			}
-			getProducts(data).then(function(e) {
-				console.log(e.data);
-				obj.goodsList = obj.goodsList.concat(e.data);
-				//判断是否还有下一页,有是more  没有是nomore
-				if (obj.limit == e.data.length) {
-					obj.page++;
-					obj.loadingType = 'more';
-				} else {
-					obj.loadingType = 'nomore';
-				}
-				if (type === 'refresh') {
-					if (loading == 1) {
-						uni.hideLoading();
-					} else {
-						uni.stopPullDownRefresh();
-					}
-				}
-			});
-		},
-		//筛选点击
-		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.loadData('refresh', 1);
-			uni.showLoading({
-				title: '正在加载'
-			});
-		},
-		//显示分类面板
-		toggleCateMask(type) {
-			let timer = type === 'show' ? 10 : 300;
-			let state = type === 'show' ? 1 : 0;
-			this.cateMaskState = 2;
-			setTimeout(() => {
-				this.cateMaskState = state;
-			}, timer);
-		},
-		//分类点击
-		changeCate(item) {
-			this.cateId = item.id;
-			// 显示右侧分类
-			this.toggleCateMask();
-			// 滚轮返回顶部
-			uni.pageScrollTo({
-				duration: 300,
-				scrollTop: 0
-			});
-			// 初始化查询页数
-			this.page = 1;
-			// 重新加载数据
-			this.loadData('refresh', 1);
-			uni.showLoading({
-				title: '正在加载'
-			});
-		},
-		//详情
-		navToDetailPage(item) {
-			let id = item.id;
-			uni.navigateTo({
-				url: `/pages/product/product?id=${id}`
-			});
-		},
-		stopPrevent() {}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.content {
-	background: $page-color-base;
-}
-.content {
-	// padding-top: 96rpx;
-}
-
-.navbar {
-	position: fixed;
-	left: 0;
-	top: var(--window-top);
-	display: flex;
-	width: 100%;
-	height: 80rpx;
-	background: #fff;
-	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: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 120rpx;
-				height: 0;
-				border-bottom: 4rpx solid $base-color;
-			}
-		}
-	}
-	.p-box {
-		display: flex;
-		flex-direction: column;
-		.iconfont {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			width: 30rpx;
-			height: 14rpx;
-			line-height: 1;
-			margin-left: 4rpx;
-			font-size: 26rpx;
-			color: #888;
-			&.active {
-				color: $base-color;
-			}
-		}
-		.xia {
-			transform: scaleY(-1);
-		}
-	}
-	.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;
-		}
-	}
-}
-
-/* 分类 */
-.cate-mask {
-	position: fixed;
-	left: 0;
-	top: var(--window-top);
-	bottom: 0;
-	width: 100%;
-	background: rgba(0, 0, 0, 0);
-	z-index: 95;
-	transition: 0.3s;
-
-	.cate-content {
-		width: 630rpx;
-		height: 100%;
-		background: #fff;
-		float: right;
-		transform: translateX(100%);
-		transition: 0.3s;
-	}
-	&.none {
-		display: none;
-	}
-	&.show {
-		background: rgba(0, 0, 0, 0.4);
-
-		.cate-content {
-			transform: translateX(0);
-		}
-	}
-}
-.cate-list {
-	display: flex;
-	flex-direction: column;
-	height: 100%;
-	.cate-item {
-		display: flex;
-		align-items: center;
-		height: 90rpx;
-		padding-left: 30rpx;
-		font-size: 28rpx;
-		color: #555;
-		position: relative;
-	}
-	.two {
-		height: 64rpx;
-		color: #303133;
-		font-size: 30rpx;
-		background: #f8f8f8;
-	}
-	.active {
-		color: $base-color;
-	}
-}
-
-/* 商品列表 */
-.priduct-main {
-	margin-top: 38rpx;
-	width: 100%;
-	display: flex;
-	flex-wrap: wrap;
-	padding: 0 32rpx;
-
-	.priduct-item {
-		width: 48%;
-		background-color: #ffffff;
-		border-radius: 12rpx;
-		margin-bottom: 24rpx;
-
-		&:nth-child(2n + 1) {
-			margin-right: 24rpx;
-		}
-
-		.priduct-main-image {
-			width: 100%;
-			height: 330rpx;
-			// background: red;
-			border-radius: 3px;
-			overflow: hidden;
-
-			image {
-				width: 100%;
-				height: 100%;
-				opacity: 1;
-				border-radius: 12rpx 12rpx 0 0;
-			}
-		}
-
-		.priduct-main-name {
-			font-size: $font-base;
-			color: $font-color-dark;
-			font-weight: bold;
-			line-height: 80rpx;
-		}
-
-		.priduct-main-price {
-			display: flex;
-			justify-content: space-between;
-			padding: 0 16rpx 12rpx;
-
-			.price {
-				font-size: 36rpx;
-				font-weight: bold;
-				color: #fd3b39;
-			}
-
-			.cart-icon {
-				image {
-					width: 44rpx;
-					height: 44rpx;
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 1335
pages/product/product.vue

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

+ 0 - 448
pages/product/search.vue

@@ -1,448 +0,0 @@
-<template>
-	<view class="content">
-		<!-- 兼容小程序搜索 -->
-		<!-- #ifdef MP || APP-PLUS -->
-		<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="navTo"><text>搜索</text></view>
-		</view>
-		<!-- #endif -->
-		<swiper :current="tabCurrentIndex" class="swiper-box " duration="300">
-			<swiper-item class="search-hot">
-				<view class="title"><text>热门搜索</text></view>
-				<view class="hot-list">
-					<view @click="clickHotText(ls)" class="list-item" :key="ind" v-for="(ls, ind) in list">
-						<text>{{ ls }}</text>
-					</view>
-				</view>
-			</swiper-item>
-			<swiper-item class="search-hot position-relative">
-				<view class="navbar">
-					<view class="nav-item" @click="defaultSearch()">默认</view>
-					<view class="nav-item" :class="{ current: searchType === 1 }" @click="sortTab(1)">
-						<text>销量优先</text>
-						<view class="p-box">
-							<text :class="{ active: searchType === 1 && numberOrder === 1 }" class="iconfont iconfold"></text>
-							<text :class="{ active: searchType === 1 && numberOrder === 2 }" class="iconfont iconfold xia"></text>
-						</view>
-					</view>
-					<view class="nav-item" :class="{ current: searchType === 2 }" @click="sortTab(2)">
-						<text>价格</text>
-						<view class="p-box">
-							<text :class="{ active: searchType === 2 && priceOrder === 1 }" class="iconfont iconfold"></text>
-							<text :class="{ active: searchType === 2 && priceOrder === 2 }" class="iconfont iconfold xia"></text>
-						</view>
-					</view>
-					<view class="nav-item" :class="{ current: newOrder == 1 }" @click="newGoodsTab()">新品</view>
-				</view>
-				<scroll-view scroll-y class="cate-list" @scrolltolower='getProducts'>
-					<view class="guess-section">
-						<view v-for="(item, index) in goodsList" :key="index" class="guess-item" @click="navToDetailPage(item)">
-							<view class="image-wrapper"><image :src="item.image" mode="aspectFill"></image></view>
-							<text class="title clamp margin-c-20">{{ item.store_name }}</text>
-							<view class="cmy-hr"></view>
-							<view class="price margin-c-20 flex">
-								<view>
-									<text class="font-size-sm ">¥</text>
-									{{ item.price }}
-								</view>
-								<view class="font-size-sm">
-									<text class="font-color-gray">{{ item.sales }}人购买</text>
-								</view>
-							</view>
-						</view>
-					</view>
-					<uni-load-more :status="loadingType"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import { searchKeyword, getProducts } from '@/api/product.js';
-export default {
-	data() {
-		return {
-			arrlist: [], //热门关键词
-			keyword: '', //关键字
-			list: [], //搜索内容
-			tabCurrentIndex: 0, //切换
-			goodsList: [],
-			limit: 6, //每次加载数据条数
-			page: 1, //当前页数
-			loadingType: 'more', //加载更多状态
-			numberOrder: 1, //1 销量从低到高 2销量从高到低
-			priceOrder: 1, //1 价格从低到高 2价格从高到低
-			newOrder: 0, //0 不是新品 1是新品
-			searchType: 0 //0为默认查询 1为销量 2 为价格
-		};
-	},
-	// #ifndef MP
-	//点击导航栏 buttons 时触发
-	onNavigationBarButtonTap(e) {
-		const index = e.index;
-		if (index === 0) {
-			this.navTo();
-		}
-	},
-	// 点击键盘搜索事件
-	onNavigationBarSearchInputConfirmed(e) {
-		this.navTo();
-	},
-	// 搜索栏内容变化事件
-	onNavigationBarSearchInputChanged(e) {
-		this.keyword = e.text;
-	},
-	// #endif
-	onLoad() {
-		this.loadData();
-	},
-	//下拉刷新
-		onPullDownRefresh() {
-			this.page = 1
-			this.getProducts('refresh');
-		},
-	methods: {
-		// 加载商品
-		async getProducts(type, loading) {
-			let obj = this;
-			// 判断是否为加载数据
-			if (type !== 'refresh') {
-				//没有更多数据直接跳出方法
-				if (obj.loadingType === 'nomore') {
-					return;
-				} else {
-					// 设置当前为数据载入中
-					obj.loadingType = 'loading';
-				}
-			} else {
-				//当重新加载数据时更新状态为可继续添加数据
-				obj.loadingType = 'more';
-			}
-			let data = {
-				page: obj.page,
-				limit: obj.limit,
-				news: obj.newOrder,
-				keyword: this.keyword
-			};
-			// 判断是否为销售数量排序
-			if (this.searchType === 1) {
-				data.salesOrder = obj.numberOrder === 1 ? 'asc' : 'desc';
-			}
-			// 判断是否为金额排序
-			if (this.searchType === 2) {
-				data.priceOrder = obj.priceOrder === 1 ? 'asc' : 'desc';
-			}
-			getProducts(data).then(e => {
-				if (type === 'refresh') {
-					obj.goodsList = [];
-				}
-				obj.goodsList = obj.goodsList.concat(e.data);
-				//判断是否还有下一页,有是more  没有是nomore
-				if (obj.limit == e.data.length) {
-					obj.page++;
-					obj.loadingType = 'more';
-				} else {
-					obj.loadingType = 'nomore';
-				}
-				// 判断是否为刷新数据
-				if (type === 'refresh') {
-					// 判断是否为点击搜索按钮跳转加载
-					if (loading == 1) {
-						uni.hideLoading();
-					} else {
-						uni.stopPullDownRefresh();
-					}
-				}
-			});
-		},
-		// 点击关键词触发事件
-		clickHotText(e) {
-			this.keyword = e;
-			this.navTo();
-		},
-		// 加载搜索关键字
-		async loadData() {
-			searchKeyword({})
-				.then(e => {
-					this.list = e.data;
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 点击触发搜索事件
-		navTo() {
-			this.tabCurrentIndex = 1;
-			this.infoData()
-		},
-		// 默认搜索
-		defaultSearch() {
-			// 初始化查询
-			this.numberOrder = '';
-			this.priceOrder = '';
-			this.newOrder = 0;
-			this.searchType = 0;
-			this.infoData();
-		},
-		// 是否为新品
-		newGoodsTab() {
-			this.newOrder = this.newOrder === 1 ? 0 : 1;
-			this.infoData();
-		},
-		// 排序
-		sortTab(nub) {
-			this.searchType = nub;
-			if (this.searchType === 1) {
-				this.numberOrder = this.numberOrder === 1 ? 2 : 1;
-			}
-			if (this.searchType === 2) {
-				this.priceOrder = this.priceOrder === 1 ? 2 : 1;
-			}
-			this.infoData();
-		},
-		// 查询切换后初始化
-		infoData() {
-			// 初始化页数
-			this.page = 1;
-			// 初始化数组
-			uni.pageScrollTo({
-				duration: 300,
-				scrollTop: 0
-			});
-			// 加载数据
-			this.getProducts('refresh', 1);
-			uni.showLoading({
-				title: '正在加载'
-			});
-		},
-		navToDetailPage(item) {
-			//测试数据没有写id,用title代替
-			let id = item.id;
-			uni.navigateTo({
-				url: '/pages/product/product?id=' + id
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.content {
-	height: 100%;
-	background-color: $page-color-base;
-}
-/* #ifdef MP || APP-PLUS */
-.vheight{
-	height: var(--status-bar-height);
-	background-color: #FFFFFF;
-}
-.input-box {
-	padding: 25rpx;
-	background-color: #ffffff;
-	height: 44px;
-	.iconsearch {
-		font-size: 50rpx;
-	}
-	.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%;
-	}
-}
-/* #endif */
-
-.swiper-box {
-	/* #ifndef MP */
-	height: 100%;
-	/* #endif */
-	/* #ifdef MP */
-	height: calc(100% - 44px);
-	/* #endif */
-	.search-hot {
-		padding: 25rpx;
-		.title {
-			font-size: $font-lg;
-			color: $font-color-light;
-		}
-		.hot-list {
-			display: flex;
-			flex-wrap: wrap;
-			margin-top: 30rpx;
-			.list-item {
-				padding: 10rpx 20rpx;
-				border: 1px solid $border-color-dark;
-				color: $font-color-dark;
-				font-size: $font-base;
-				margin-right: 20rpx;
-				margin-bottom: 20rpx;
-			}
-		}
-	}
-}
-
-// 订单
-%icon {
-	margin-right: 10rpx;
-	display: inline-block;
-	padding: 2rpx 10rpx;
-	border: 1rpx solid $color-yellow;
-	color: $color-yellow;
-	line-height: 1;
-	font-size: $font-base;
-	border-radius: 10rpx;
-}
-.guess-section {
-	display: flex;
-	flex-wrap: wrap;
-	.guess-item {
-		overflow: hidden;
-		display: flex;
-		flex-direction: column;
-		width: 48%;
-		margin-bottom: 4%;
-		border-radius: $border-radius-sm;
-		background-color: white;
-		box-shadow: $box-shadow;
-		&:nth-child(2n + 1) {
-			margin-right: 4%;
-		}
-	}
-	.image-wrapper {
-		width: 100%;
-		height: 330rpx;
-		border-radius: 3px;
-		overflow: hidden;
-		image {
-			width: 100%;
-			height: 100%;
-			opacity: 1;
-		}
-	}
-	.title {
-		font-size: $font-base;
-		color: $font-color-dark;
-		font-weight: bold;
-		line-height: 80rpx;
-	}
-	.price {
-		font-size: $font-lg;
-		color: $font-color-base;
-		font-weight: bold;
-		line-height: 1;
-		line-height: 80rpx;
-	}
-
-	.icon {
-		@extend %icon;
-	}
-
-	.detail {
-		line-height: 1;
-	}
-	.tip {
-		color: white;
-		background-color: $color-yellow;
-		line-height: 1.5;
-		font-size: $font-sm;
-		padding-left: 20rpx;
-	}
-}
-
-.navbar {
-	position: absolute;
-	top: 0;
-	left: 0;
-	display: flex;
-	width: 100%;
-	height: 40px;
-	background: #fff;
-	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: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 120rpx;
-				height: 0;
-				border-bottom: 4rpx solid $base-color;
-			}
-		}
-	}
-	.p-box {
-		display: flex;
-		flex-direction: column;
-		.iconfont {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			width: 30rpx;
-			height: 14rpx;
-			line-height: 1;
-			margin-left: 4rpx;
-			font-size: 26rpx;
-			color: #888;
-			&.active {
-				color: $base-color;
-			}
-		}
-		.xia {
-			transform: scaleY(-1);
-		}
-	}
-	.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;
-		}
-	}
-}
-.cate-list {
-	height: 100%;
-	padding-top: 40px;
-}
-</style>