hwq 2 lat temu
rodzic
commit
ff8ab78e73

+ 2 - 2
pages/category/category.vue

@@ -1,8 +1,8 @@
 <template>
 	<view class="content">
-		<scroll-view scroll-y class="left-aside">
+		<!-- <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-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>

+ 5 - 0
pages/hall/hall.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="center">
+		<view class="status_bar"><!-- 这里是状态栏 --></view>
 		<view class="top">
 			<image class="top-bg" src="../../static/img/hall-bg.png" mode=""></image>
 			<view class="title">易趣会馆</view>
@@ -91,6 +92,10 @@ page {
 	min-height: 100%;
 	background: #ffffff;
 }
+.status_bar {
+	height: var(--status-bar-height);
+	width: 100%;
+}
 .top {
 	position: relative;
 	width: 750rpx;

+ 12 - 6
pages/hall/hallinfo.vue

@@ -19,12 +19,12 @@
 				</view>
 			</view>
 		</view>
-		<view class="djs" v-if="!isbuy">
+		<view class="djs" v-if="!isbuy1">
 			<view class="djs-bg"><image src="../../static/img/djs.png" mode=""></image></view>
 			<view class="djs-font">客官请稍后,请{{ time }}入场</view>
 			<view class="djs-main">入场倒计时:{{ countdown_time }}</view>
 		</view>
-		<view v-if="firstList.length != 0 && isbuy">
+		<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>
@@ -51,6 +51,7 @@
 <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 {
@@ -64,7 +65,6 @@ export default {
 			loadingType: 'more',
 			countdown_time: '',
 			canbuy: 0, //结束时间
-			isbuy: false,
 			time: '', //进场时间
 			timers: '', //延时器id
 			isLast: true
@@ -75,14 +75,19 @@ export default {
 		this.peoplename = option.peoplename;
 		this.id = option.id;
 	},
+	computed: {
+		...mapState(['isbuy1'])
+	},
 	onShow() {
-		this.isDjs();
+		if (!this.isbuy1) {
+			this.isDjs();
+		}
 		this.loadData();
 		this.loadDataNext();
 	},
 	onReachBottom() {
 		console.log('123456');
-		if (this.isbuy) {
+		if (this.isbuy1) {
 			this.loadData();
 		}
 	},
@@ -100,6 +105,7 @@ export default {
 		clearTimeout(this.timers);
 	},
 	methods: {
+		...mapMutations(['setBuy1']),
 		isDjs() {
 			uni.showLoading({
 				title: '加载中'
@@ -124,7 +130,7 @@ export default {
 			console.log(this.la, '2222222');
 			if (leftTime <= 0) {
 				console.log('已结束');
-				this.isbuy = true;
+				this.setBuy1(true);
 				return;
 			}
 			//定义保存倒计时时间

+ 4 - 0
pages/hall/halllist.vue

@@ -365,6 +365,10 @@ page,
 	min-height: 100%;
 	background: #f2f5f4;
 }
+.status_bar {
+	height: var(--status-bar-height);
+	width: 100%;
+}
 .money-box {
 	color: #ffffff;
 	text-align: center;

+ 53 - 46
pages/hall/hallpay.vue

@@ -14,7 +14,7 @@
 				<!-- <image class="top-image" src="../../static/img/copy.png" mode=""></image> -->
 			</view>
 
-			<view>
+			<view v-if="status == 1">
 				<view class="downtime" v-if="stopTime.stopTimeH < 0 || stopTime.stopTimeM < 0 || stopTime.stopTimeS < 0">订单已过期</view>
 				<view class="downtime" v-else>
 					<uni-countdowns
@@ -79,56 +79,62 @@
 				disable-touch
 			>
 				<swiper-item class="tab-content" v-if="zfb != ''">
-					<view class="tc-item flex">
-						<view class="tcitem-name">账号</view>
-						<view class="ali-name">{{ zfb.payment }}</view>
-						<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(zfb.payment)"></image>
-					</view>
-					<view class="tc-item flex">
-						<view class="tcitem-name">姓名</view>
-						<view class="ali-name">{{ zfb.name }}</view>
-						<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(zfb.name)"></image>
-					</view>
+					<scroll-view scroll-y="true" style="height: 100%;">
+						<view class="tc-item flex">
+							<view class="tcitem-name">账号</view>
+							<view class="ali-name">{{ zfb.payment }}</view>
+							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(zfb.payment)"></image>
+						</view>
+						<view class="tc-item flex">
+							<view class="tcitem-name">姓名</view>
+							<view class="ali-name">{{ zfb.name }}</view>
+							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(zfb.name)"></image>
+						</view>
+					</scroll-view>
 				</swiper-item>
 				<swiper-item class="tab-content" v-else></swiper-item>
 				<swiper-item class="tab-content" v-if="bank != ''">
-					<view class="tc-item flex">
-						<view class="tcitem-name">姓名</view>
-						<view class="ali-name">{{ bank.name }}</view>
-						<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.name)"></image>
-					</view>
-					<view class="tc-item flex">
-						<view class="tcitem-name">银行</view>
-						<view class="ali-name">{{ bank.bank }}</view>
-						<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.bank)"></image>
-					</view>
-					<view class="tc-item flex">
-						<view class="tcitem-name">支行</view>
-						<view class="ali-name">{{ bank.bank_name }}</view>
-						<image @click="copy(bank.bank_name)" class="tcitem-image" src="../../static/img/copy.png" mode=""></image>
-					</view>
-					<view class="tc-item flex">
-						<view class="tcitem-name">账号</view>
-						<view class="ali-name">{{ bank.payment }}</view>
-						<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.payment)"></image>
-					</view>
+					<scroll-view scroll-y="true" style="height: 100%;">
+						<view class="tc-item flex">
+							<view class="tcitem-name">姓名</view>
+							<view class="ali-name">{{ bank.name }}</view>
+							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.name)"></image>
+						</view>
+						<view class="tc-item flex">
+							<view class="tcitem-name">银行</view>
+							<view class="ali-name">{{ bank.bank }}</view>
+							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.bank)"></image>
+						</view>
+						<view class="tc-item flex">
+							<view class="tcitem-name">支行</view>
+							<view class="ali-name">{{ bank.bank_name }}</view>
+							<image @click="copy(bank.bank_name)" class="tcitem-image" src="../../static/img/copy.png" mode=""></image>
+						</view>
+						<view class="tc-item flex">
+							<view class="tcitem-name">账号</view>
+							<view class="ali-name">{{ bank.payment }}</view>
+							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.payment)"></image>
+						</view>
+					</scroll-view>
 				</swiper-item>
 				<swiper-item class="tab-content" v-else></swiper-item>
 				<swiper-item class="tab-content" v-if="wx != ''">
-					<view class="tc-item flex">
-						<view class="tcitem-name">账号</view>
-						<view class="ali-name">{{ wx.payment }}</view>
-						<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(wx.payment)"></image>
-					</view>
-					<view class="tc-item flex">
-						<view class="tcitem-name">姓名</view>
-						<view class="ali-name">{{ wx.name }}</view>
-						<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(wx.name)"></image>
-					</view>
-					<view class="tc-item">
-						<view class="upload-title" style="color: #9d9d9d;">微信二维码</view>
-						<view class="upload-main" @click="lookimg(wx.image)"><image class="upload-image" :src="wx.image" mode="aspectFit"></image></view>
-					</view>
+					<scroll-view scroll-y="true" style="height: 100%;">
+						<view class="tc-item flex">
+							<view class="tcitem-name">账号</view>
+							<view class="ali-name">{{ wx.payment }}</view>
+							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(wx.payment)"></image>
+						</view>
+						<view class="tc-item flex">
+							<view class="tcitem-name">姓名</view>
+							<view class="ali-name">{{ wx.name }}</view>
+							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(wx.name)"></image>
+						</view>
+						<view class="tc-item">
+							<view class="upload-title" style="color: #9d9d9d;">微信二维码</view>
+							<view class="upload-main" @click="lookimg(wx.image)"><image class="upload-image" :src="wx.image" mode="aspectFit"></image></view>
+						</view>
+					</scroll-view>
 				</swiper-item>
 				<swiper-item class="tab-content" v-else></swiper-item>
 			</swiper>
@@ -198,6 +204,7 @@ export default {
 			wx: '',
 			zfb: '',
 			image: '',
+			status: 1,
 			text: '123456'
 		};
 	},
@@ -220,7 +227,7 @@ export default {
 		loadData() {
 			user_auction_order({ type: 1, order_id: this.id }).then(({ data }) => {
 				let now_time = timeComputed(data.time + 3600);
-				console.log(now_time);
+				this.status = data.status;
 				this.stopTime.stopTimeH = now_time.hours;
 				this.stopTime.stopTimeM = now_time.minutes;
 				this.stopTime.stopTimeS = now_time.seconds;

+ 10 - 3
pages/hall/porducthall.vue

@@ -115,6 +115,7 @@
 
 <script>
 import { details, purchase, count_down } from '@/api/hall.js';
+import { mapState, mapMutations } from 'vuex';
 import { getTime } from '@/utils/rocessor.js';
 export default {
 	data() {
@@ -128,7 +129,6 @@ export default {
 			imageList: [],
 			countdown_time: '',
 			canbuy: 0, //结束时间
-			isbuy: false,
 			time: '', //进场时间
 			timers: '' //延时器id
 		};
@@ -139,9 +139,15 @@ export default {
 		this.name = option.name;
 		this.peoplename = option.peoplename;
 	},
+	computed: {
+		...mapState(['isbuy'])
+	},
 	onShow() {
 		this.loadData();
-		this.isDjs();
+		console.log(this.isbuy);
+		if (!this.isbuy) {
+			this.isDjs();
+		}
 	},
 	onHide() {
 		clearTimeout(this.timers);
@@ -157,6 +163,7 @@ export default {
 		clearTimeout(this.timers);
 	},
 	methods: {
+		...mapMutations(['setBuy']),
 		isDjs() {
 			clearTimeout(this.timers);
 			count_down({ id: this.uid }).then(({ data }) => {
@@ -178,7 +185,7 @@ export default {
 			console.log(this.la, '2222222');
 			if (leftTime <= 0) {
 				console.log('已结束');
-				this.isbuy = true;
+				this.setBuy(true);
 				return;
 			}
 			//定义保存倒计时时间

+ 131 - 47
pages/index/index.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="center">
 		<view class="top">
+			<view class="vheigh"></view>
 			<image class="top-bg" src="../../static/img/top-bg.png" mode=""></image>
 			<view class="top-main flex">
 				<view class="search-box flex" @click="clickSearch()">
@@ -31,38 +32,9 @@
 			</view>
 		</view>
 		<view class="navbar flex">
-			<view class="navbar-item" @click="nav('/pages/product/classify?type=4')">
-				<image class="nitem-image" src="../../static/img/index-inco1.png" mode=""></image>
-				<view class="nitem-font">随意嗨购</view>
-			</view>
-
-			<view class="navbar-item" @click="nav('/pages/product/classify?type=5')">
-				<image class="nitem-image" src="../../static/img/index-inco3.png" mode=""></image>
-				<view class="nitem-font">置换</view>
-			</view>
-			<view class="navbar-item" @click="nav('/pages/product/seckill')">
-				<image class="nitem-image" src="../../static/img/index-inco5.png" mode=""></image>
-				<view class="nitem-font">秒杀</view>
-			</view>
-			<view class="navbar-item" @click="nav('/pages/store/store')">
-				<image class="nitem-image" src="../../static/img/index-inco7.png" mode=""></image>
-				<view class="nitem-font">合作专区</view>
-			</view>
-			<view class="navbar-item" @click="nav('/pages/category/category')">
-				<image class="nitem-image" src="../../static/img/index-inco8.png" mode=""></image>
-				<view class="nitem-font">大品牌区</view>
-			</view>
-			<!-- <view class="navbar-item" @click="nav('/pages/index/message?type=2')">
-				<image class="nitem-image" src="../../static/img/index-inco6.png" mode=""></image>
-				<view class="nitem-font">拍卖品</view>
-			</view> -->
-			<view class="navbar-item" @click="nav('/pages/product/classify?type=1')">
-				<image class="nitem-image" src="../../static/img/index-inco2.png" mode=""></image>
-				<view class="nitem-font">医斯佳专区</view>
-			</view>
-			<view class="navbar-item" @click="nav('/pages/product/classify?type=3')">
-				<image class="nitem-image" src="../../static/img/index-inco4.png" mode=""></image>
-				<view class="nitem-font">CBB专区</view>
+			<view class="navbar-item" v-for="(item, index) in navbarList[0].children" @click="nav('/pages/product/list?tid=' + item.id)">
+				<image class="nitem-image" :src="item.pic" mode=""></image>
+				<view class="nitem-font">{{ item.cate_name }}</view>
 			</view>
 		</view>
 		<view class="shingle" v-if="list">
@@ -106,9 +78,9 @@
 			</view>
 		</view>
 		<!-- 秒杀楼层 -->
-		<seckill></seckill>
+		<!-- <seckill></seckill> -->
 		<view class="ge" v-if="stop.length != 0"></view>
-		<view class="serve" v-if="stop.length != 0">
+		<!-- <view class="serve" v-if="stop.length != 0">
 			<view class="seckill-title flex">
 				<view class="seckill-left flex">
 					<image class="seckill-inco" src="../../static/img/serve.png" mode=""></image>
@@ -129,6 +101,27 @@
 					</view>
 				</view>
 			</view>
+		</view> -->
+		<view class="product" v-for="(item, index) in navbarList[0].children">
+			<view class="seckill-title flex">
+				<view class="seckill-left flex">
+					<view class="seckill-font">{{ item.cate_name }}</view>
+				</view>
+				<view class="seckill-right" @click="nav('/pages/product/list?tid=' + item.id)">
+					<view class="seckill-rfont">更多</view>
+					<image class="seckill-back" src="../../static/img/back.png" mode=""></image>
+				</view>
+			</view>
+			<view class="priduct-main">
+				<view class="priduct-item" v-for="itm in item.product" :key="itm.id" @click="navToDetailPage(itm)">
+					<view class="priduct-main-image"><image :src="itm.image" mode="scaleToFill"></image></view>
+					<view class="priduct-main-name clamp margin-c-20">{{ itm.store_name }}</view>
+					<view class="priduct-main-price">
+						<view class="price" v-if="item.integral != 0">¥{{ itm.price * 1 }} + {{ itm.integral }}趣豆</view>
+						<view class="price" v-else>¥{{ itm.price }}</view>
+					</view>
+				</view>
+			</view>
 		</view>
 		<u-tabbar activeColor="#f42b4e" v-model="current" :list="tabbar"></u-tabbar>
 	</view>
@@ -138,9 +131,12 @@
 import { tabbar1 } from '@/utils/tabbar.js';
 import seckill from '../../components/seckill/seckill.vue';
 import { article } from '@/api/user.js';
+import { getCategoryList, getProducts } from '@/api/product.js';
 import { loadIndexs, store_list } from '@/api/index.js';
 import uniCountdowns from '@/components/uni-countdown/uni-countdowns.vue';
-import { openMap } from '@/utils/rocessor.js';
+// #ifdef H5
+// import { openMap } from '@/utils/rocessor.js';
+// #endif
 import { auction_gu } from '@/api/hall.js';
 export default {
 	components: {
@@ -161,7 +157,8 @@ export default {
 			text: [],
 			article: [],
 			list: {},
-			stop: []
+			stop: [],
+			navbarList: [{ child: [] }]
 		};
 	},
 	onPullDownRefresh() {
@@ -174,9 +171,26 @@ export default {
 	},
 	onShow() {
 		this.loadData();
+		this.getnavbar();
 		this.getaddress();
 	},
 	methods: {
+		getnavbar() {
+			let obj = this;
+			getCategoryList({})
+				.then(({ data }) => {
+					data[0].children.forEach(e => {
+						getProducts({ page: 1, limit: 2, sid: e.id }).then(info => {
+							obj.$set(e, 'product', info.data);
+						});
+					});
+					this.navbarList = data;
+					console.log(data, '123456');
+				})
+				.catch(err => {
+					console.log(err);
+				});
+		},
 		loadData() {
 			article({}, 1).then(({ data }) => {
 				data.forEach(e => {
@@ -234,10 +248,11 @@ export default {
 					});
 				},
 				fail: err => {
-					console.log(err, '123456789');
+					// #ifdef H5
 					openMap().then(e => {
 						this.getaddress();
 					});
+					// #endif
 				}
 			});
 		},
@@ -291,6 +306,10 @@ page,
 	height: auto;
 	background: #ffffff;
 }
+.vheigh {
+	height: var(--status-bar-height);
+	background-color: $base-color;
+}
 .top {
 	position: relative;
 	width: 100%;
@@ -331,8 +350,15 @@ page,
 .carousel {
 	width: 700rpx;
 	height: 276rpx;
+	/* #ifndef APP-PLUS */
 	margin: -240rpx auto 0;
+	/* #endif */
+	/* #ifdef APP-PLUS */
+	margin: -180rpx auto 0;
+	/* #endif */
+	border-radius: 40rpx;
 	image {
+		border-radius: 40rpx;
 		width: 700rpx;
 		height: 276rpx;
 	}
@@ -395,6 +421,7 @@ page,
 			height: 90rpx;
 		}
 		.nitem-font {
+			margin-top: 10rpx;
 			font-size: 24rpx;
 			font-family: PingFang SC;
 			font-weight: 500;
@@ -402,15 +429,6 @@ page,
 		}
 	}
 }
-.product {
-	width: 662rpx;
-	height: 180rpx;
-	margin: 44rpx auto;
-	.product-image {
-		width: 662rpx;
-		height: 180rpx;
-	}
-}
 .shingle {
 	width: 750rpx;
 	background: #f8f8f8;
@@ -539,6 +557,9 @@ page,
 		}
 	}
 }
+.seckill-title {
+	padding: 32rpx 30rpx 0;
+}
 .seckill-left {
 	justify-content: flex-start;
 	.seckill-inco {
@@ -548,7 +569,7 @@ page,
 	}
 	.seckill-font {
 		margin-left: 8rpx;
-		font-size: 32rpx;
+		font-size: 40rpx;
 		font-family: PingFang SC;
 		font-weight: bold;
 		color: #333333;
@@ -583,6 +604,7 @@ page,
 	background: #f8f8f8;
 }
 .serve {
+	padding: 32rpx 30rpx;
 	padding: 32rpx 30rpx;
 	background: #ffffff;
 	.serve-main {
@@ -631,4 +653,66 @@ page,
 		}
 	}
 }
+.product {
+	background: #f0f0f0;
+}
+.priduct-main {
+	margin-top: 38rpx;
+	width: 100%;
+	display: flex;
+	flex-wrap: wrap;
+	padding: 0 32rpx;
+
+	.priduct-item {
+		width: 48%;
+		background-color: #ffffff;
+		border-radius: 12rpx;
+		margin-bottom: 24rpx;
+
+		&:nth-child(2n + 1) {
+			margin-right: 24rpx;
+		}
+
+		.priduct-main-image {
+			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>

+ 43 - 5
pages/money/moneyPwd.vue

@@ -1,8 +1,13 @@
 <template>
 	<view class="container">
 		<view class="row b-b" v-if="type == 2">
-			<text class="tit">原密码</text>
-			<input class="input" v-model="oldPassword" type="text" placeholder="请填写原密码" placeholder-class="placeholder" />
+			<text class="tit">手机号</text>
+			<input class="input" v-model="account" type="text" placeholder="请填写手机号" placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b" v-if="type == 2">
+			<text class="tit">验证码</text>
+			<input class="input" v-model="captcha" type="text" placeholder="请填写验证码" placeholder-class="placeholder" />
+			<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
 		</view>
 		<view class="row b-b">
 			<text class="tit">新密码</text>
@@ -24,7 +29,10 @@ export default {
 	data() {
 		return {
 			type: 1,
-			oldPassword: '', //老密码
+			time: '', //保存倒计时对象
+			countDown: 0, //倒计时
+			account: '', //手机号
+			captcha: '', //验证码
 			password: '', //新密码
 			yzpassword: '', //重复输入
 			loding: false //是否载入中
@@ -50,6 +58,35 @@ export default {
 		}
 	},
 	methods: {
+		verification() {
+			let obj = this;
+			if (this.account == '') {
+				this.$api.msg('请输入电话号码');
+				return;
+			}
+			if (!/(^1[2|3|4|5|7|8|9][0-9]{9}$)/.test(this.account)) {
+				this.$api.msg('请输入正确的手机号');
+				return;
+			}
+			// 判断是否在倒计时
+			if (obj.countDown > 0) {
+				return false;
+			} else {
+				obj.countDown = 60;
+				obj.time = setInterval(() => {
+					obj.countDown--;
+				}, 1000);
+				//调用验证码接口
+				verify({
+					phone: obj.account,
+					type: 'login'
+				})
+					.then(({ data }) => {})
+					.catch(err => {
+						console.log(err);
+					});
+			}
+		},
 		confirm(e) {
 			const reg = /^[0-9]{6}$/;
 			console.log(this.yzpassword);
@@ -73,7 +110,8 @@ export default {
 			transaction({
 				type: this.type,
 				payment: this.password,
-				old_payment: this.oldPassword
+				account: this.account,
+				captcha: this.captcha
 			})
 				.then(({ data }) => {
 					this.loding = false;
@@ -147,7 +185,7 @@ page {
 	background-color: $color-gray;
 }
 .code {
-	color: #5dbc7c;
+	color: #dc262b;
 	font-size: 23rpx;
 	border-left: 1px solid #eeeeee;
 	width: 150rpx;

+ 5 - 10
pages/money/pay.vue

@@ -35,18 +35,13 @@
 
 <script>
 import { balance } from '@/api/wallet.js';
-import { createOrderkey,computedOrderkey,orderPay } from '@/api/order.js';
+import { createOrderkey, computedOrderkey, orderPay } from '@/api/order.js';
 import { mapState } from 'vuex';
 export default {
 	data() {
 		return {
 			payType: 1, //支付类型
-			// #ifdef H5
-			payName: 'weixin',
-			// #endif
-			// #ifdef MP-WEIXIN
 			payName: 'weixin',
-			// #endif
 			orderInfo: {},
 			money: 0.0, //订单金额
 			now_money: 0.0, //余额
@@ -155,12 +150,12 @@ export default {
 							}
 						};
 						// #ifdef H5
-						if(obj.payName == 'weixin'){
-						obj.weichatObj.chooseWXPay(data);
+						if (obj.payName == 'weixin') {
+							obj.weichatObj.chooseWXPay(data);
 						}
 						// #endif
 						// #ifdef MP-WEIXIN
-						if(obj.payName == 'routine'){
+						if (obj.payName == 'routine') {
 							wx.requestPayment(data);
 						}
 						// #endif
@@ -188,7 +183,7 @@ export default {
 			uni.showLoading({
 				title: '支付中',
 				mask: true
-			})
+			});
 			// 判断是否余额不足
 			if (obj.payName == 'yue' && +obj.now_money < obj.money) {
 				uni.showModal({

+ 50 - 44
pages/order/hallorderDetail.vue

@@ -85,56 +85,62 @@
 					disable-touch
 				>
 					<swiper-item class="tab-content" v-if="zfb != ''">
-						<view class="tc-item flex">
-							<view class="tcitem-name">账号</view>
-							<view class="ali-name">{{ zfb.payment }}</view>
-							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(zfb.payment)"></image>
-						</view>
-						<view class="tc-item flex">
-							<view class="tcitem-name">姓名</view>
-							<view class="ali-name">{{ zfb.name }}</view>
-							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(zfb.name)"></image>
-						</view>
+						<scroll-view scroll-y="true" style="height: 100%;">
+							<view class="tc-item flex">
+								<view class="tcitem-name">账号</view>
+								<view class="ali-name">{{ zfb.payment }}</view>
+								<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(zfb.payment)"></image>
+							</view>
+							<view class="tc-item flex">
+								<view class="tcitem-name">姓名</view>
+								<view class="ali-name">{{ zfb.name }}</view>
+								<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(zfb.name)"></image>
+							</view>
+						</scroll-view>
 					</swiper-item>
 					<swiper-item class="tab-content" v-else></swiper-item>
 					<swiper-item class="tab-content" v-if="bank != ''">
-						<view class="tc-item flex">
-							<view class="tcitem-name">姓名</view>
-							<view class="ali-name">{{ bank.name }}</view>
-							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.name)"></image>
-						</view>
-						<view class="tc-item flex">
-							<view class="tcitem-name">银行</view>
-							<view class="ali-name">{{ bank.bank }}</view>
-							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.bank)"></image>
-						</view>
-						<view class="tc-item flex">
-							<view class="tcitem-name">支行</view>
-							<view class="ali-name">{{ bank.bank_name }}</view>
-							<image @click="copy(bank.bank_name)" class="tcitem-image" src="../../static/img/copy.png" mode=""></image>
-						</view>
-						<view class="tc-item flex">
-							<view class="tcitem-name">账号</view>
-							<view class="ali-name">{{ bank.payment }}</view>
-							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.payment)"></image>
-						</view>
+						<scroll-view scroll-y="true" style="height: 100%;">
+							<view class="tc-item flex">
+								<view class="tcitem-name">姓名</view>
+								<view class="ali-name">{{ bank.name }}</view>
+								<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.name)"></image>
+							</view>
+							<view class="tc-item flex">
+								<view class="tcitem-name">银行</view>
+								<view class="ali-name">{{ bank.bank }}</view>
+								<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.bank)"></image>
+							</view>
+							<view class="tc-item flex">
+								<view class="tcitem-name">支行</view>
+								<view class="ali-name">{{ bank.bank_name }}</view>
+								<image @click="copy(bank.bank_name)" class="tcitem-image" src="../../static/img/copy.png" mode=""></image>
+							</view>
+							<view class="tc-item flex">
+								<view class="tcitem-name">账号</view>
+								<view class="ali-name">{{ bank.payment }}</view>
+								<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(bank.payment)"></image>
+							</view>
+						</scroll-view>
 					</swiper-item>
 					<swiper-item class="tab-content" v-else></swiper-item>
 					<swiper-item class="tab-content" v-if="wx != ''">
-						<view class="tc-item flex">
-							<view class="tcitem-name">账号</view>
-							<view class="ali-name">{{ wx.payment }}</view>
-							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(wx.payment)"></image>
-						</view>
-						<view class="tc-item flex">
-							<view class="tcitem-name">姓名</view>
-							<view class="ali-name">{{ wx.name }}</view>
-							<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(wx.name)"></image>
-						</view>
-						<view class="tc-item">
-							<view class="upload-title" style="color: #9d9d9d;">微信二维码</view>
-							<view class="upload-main" @click="lookimg(wx.image)"><image class="upload-image" :src="wx.image" mode="aspectFit"></image></view>
-						</view>
+						<scroll-view scroll-y="true" style="height: 100%;">
+							<view class="tc-item flex">
+								<view class="tcitem-name">账号</view>
+								<view class="ali-name">{{ wx.payment }}</view>
+								<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(wx.payment)"></image>
+							</view>
+							<view class="tc-item flex">
+								<view class="tcitem-name">姓名</view>
+								<view class="ali-name">{{ wx.name }}</view>
+								<image class="tcitem-image" src="../../static/img/copy.png" mode="" @click="copy(wx.name)"></image>
+							</view>
+							<view class="tc-item">
+								<view class="upload-title" style="color: #9d9d9d;">微信二维码</view>
+								<view class="upload-main" @click="lookimg(wx.image)"><image class="upload-image" :src="wx.image" mode="aspectFit"></image></view>
+							</view>
+						</scroll-view>
 					</swiper-item>
 					<swiper-item class="tab-content" v-else></swiper-item>
 				</swiper>

+ 39 - 26
pages/order/order.vue

@@ -116,9 +116,7 @@
 							<button @click.stop="appeal(item)" class="action-btn recom">{{ item.appeal == 0 ? '申诉' : '取消申诉' }}</button>
 							<button @click.stop="orderPay(item)" class="action-btn recom">通过</button>
 						</view>
-						<!-- <view class="action-box b-t" v-if="!item.status && item.status != 0">
-							<button @click.stop="cancel(item)" class="action-btn recom">取消挂售</button>
-						</view> -->
+						<view class="action-box b-t" v-if="!item.status && item.status != 0"><button @click.stop="cancel(item)" class="action-btn recom">取消挂售</button></view>
 					</view>
 
 					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
@@ -449,18 +447,28 @@ export default {
 		},
 		//取消挂售
 		cancel(e) {
-			if (this.loading) {
-				return;
-			}
-			this.loading = true;
-			uni.showLoading({
-				title: '取消挂售中'
-			});
-			cancel({ id: e.id }).then(({ data }) => {
-				uni.hideLoading();
-				this.loading = false;
-				this.loadData('reload');
-				this.upData();
+			const obj = this;
+			uni.showModal({
+				title: '提示',
+				content: '是否取消挂售',
+				success: function(res) {
+					if (res.confirm) {
+						if (obj.loading) {
+							return;
+						}
+						obj.loading = true;
+						uni.showLoading({
+							title: '取消挂售中'
+						});
+						cancel({ id: e.id }).then(({ data }) => {
+							uni.hideLoading();
+							obj.loading = false;
+							obj.loadData('reload');
+							obj.upData();
+						});
+					} else if (res.cancel) {
+					}
+				}
 			});
 		},
 		//获取订单列表
@@ -475,14 +483,8 @@ export default {
 				index = this.tabCurrentIndex1;
 				navItem = this.navList1[index];
 			}
-
+			console.log(source, 'load');
 			let state = navItem.state;
-			if (source == 'reload') {
-				navItem.orderList = [];
-				navItem.page = 1;
-				navItem.limit = 10;
-				navItem.loadingType = 'more';
-			}
 			// if ( navItem.loaded === true) {
 			// 	//tab切换只有第一次需要加载数据
 			// 	return;
@@ -491,6 +493,12 @@ export default {
 				//防止重复加载
 				return;
 			}
+			if (source == 'reload') {
+				navItem.orderList = [];
+				navItem.page = 1;
+				navItem.limit = 10;
+				navItem.loadingType = 'more';
+			}
 			if (navItem.loadingType === 'noMore') {
 				//防止重复加载
 				return;
@@ -554,9 +562,14 @@ export default {
 								e.stateTip = '售卖中';
 								e.stateTipColor = '#fa436a';
 							} else {
-								let b = this.orderStateExp(e.status);
-								e.stateTip = b.stateTip;
-								e.stateTipColor = b.stateTipColor;
+								if (e.status == 3 && e.appeal == 1) {
+									e.stateTip = '冻结中';
+									e.stateTipColor = '#fa436a';
+								} else {
+									let b = this.orderStateExp(e.status);
+									e.stateTip = b.stateTip;
+									e.stateTipColor = b.stateTipColor;
+								}
 							}
 							return e;
 						});
@@ -588,7 +601,7 @@ export default {
 			if (this.currentIndex == 1) {
 				this.tabCurrentIndex1 = e.target.current;
 			}
-			this.loadData('tabChange');
+			this.loadData('reload');
 		},
 
 		//删除订单

+ 64 - 52
pages/product/list.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<view class="navbar" :style="{ position: headerPosition, top: headerTop }">
+		<!-- <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>
@@ -17,20 +17,21 @@
 				</view>
 			</view>
 			<text class="cate-item iconfont iconapps" @click="toggleCateMask('show')"></text>
-		</view>
-		<view class="goods-list">
-			<view v-for="(item, index) in goodsList" :key="index" class="goods-item" @click="navToDetailPage(item)">
-				<view class="image-wrapper"><image :src="item.image" mode="aspectFill"></image></view>
+		</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="price-box">
-					<text class="price">{{ item.price }}</text>
-					<text>已售 {{ item.sales }}</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-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">
@@ -41,7 +42,7 @@
 					</view>
 				</scroll-view>
 			</view>
-		</view>
+		</view> -->
 	</view>
 </template>
 
@@ -61,7 +62,7 @@ export default {
 			loadingType: 'more', //加载更多状态
 			filterIndex: 0, //查询类型
 			numberOrder: 0, //1 销量从低到高 2销量从高到低
-			limit: 6, //每次加载数据条数
+			limit: 8, //每次加载数据条数
 			page: 1, //当前页数
 			cateId: 0, //已选三级分类id
 			priceOrder: 0, //1 价格从低到高 2价格从高到低
@@ -72,10 +73,10 @@ export default {
 
 	onLoad(options) {
 		// #ifdef H5
-		this.headerTop = document.getElementsByTagName('uni-page-head')[0].offsetHeight + 'px';
+		// this.headerTop = document.getElementsByTagName('uni-page-head')[0].offsetHeight + 'px';
 		// #endif
 		this.cateId = options.tid;
-		this.loadCateList(options.fid, options.sid);
+		// this.loadCateList(options.fid, options.sid);
 		this.loadData();
 	},
 	onPageScroll(e) {
@@ -230,7 +231,7 @@ page,
 	background: $page-color-base;
 }
 .content {
-	padding-top: 96rpx;
+	// padding-top: 96rpx;
 }
 
 .navbar {
@@ -363,51 +364,62 @@ page,
 }
 
 /* 商品列表 */
-.goods-list {
+.priduct-main {
+	margin-top: 38rpx;
+	width: 100%;
 	display: flex;
 	flex-wrap: wrap;
-	padding: 0 30rpx;
-	background: #fff;
-	.goods-item {
-		display: flex;
-		flex-direction: column;
+	padding: 0 32rpx;
+
+	.priduct-item {
 		width: 48%;
-		padding-bottom: 40rpx;
+		background-color: #ffffff;
+		border-radius: 12rpx;
+		margin-bottom: 24rpx;
+
 		&:nth-child(2n + 1) {
-			margin-right: 4%;
+			margin-right: 24rpx;
 		}
-	}
-	.image-wrapper {
-		width: 100%;
-		height: 330rpx;
-		border-radius: 3px;
-		overflow: hidden;
-		image {
+
+		.priduct-main-image {
 			width: 100%;
-			height: 100%;
-			opacity: 1;
+			height: 330rpx;
+			// background: red;
+			border-radius: 3px;
+			overflow: hidden;
+
+			image {
+				width: 100%;
+				height: 100%;
+				opacity: 1;
+				border-radius: 12rpx 12rpx 0 0;
+			}
 		}
-	}
-	.title {
-		font-size: $font-lg;
-		color: $font-color-dark;
-		line-height: 80rpx;
-	}
-	.price-box {
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		padding-right: 10rpx;
-		font-size: 24rpx;
-		color: $font-color-light;
-	}
-	.price {
-		font-size: $font-lg;
-		color: $uni-color-primary;
-		line-height: 1;
-		&:before {
-			content: '¥';
-			font-size: 26rpx;
+
+		.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;
+				}
+			}
 		}
 	}
 }

+ 119 - 51
pages/public/forget.vue

@@ -1,29 +1,32 @@
 <template>
 	<view class="container">
-		<view class="logo-img"><image src="../../static/img/log.png" mode=""></image></view>
-		<view class="logo">易趣go</view>
+		<view class="container_text">
+			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
+			<view class="title-img"><image class="title-image" src="../../static/img/login-title.png" mode=""></image></view>
+		</view>
+		<view class="loginTitle"><text>修改密码</text></view>
 		<view class="login_text">
 			<view class="login_input flex_item">
-				<view class="login_img"><image class="phone" src="/static/img/phone.png"></image></view>
+				<view class="login_img"><image class="phone" src="/static/icon/img03.png"></image></view>
 				<view class="login_name"><input class="uni-input" type="text" v-model="phone" focus placeholder="请输入手机" /></view>
 			</view>
 			<view class="login_input flex_item">
-				<view class="login_img"><image src="/static/img/zfpwd.png"></image></view>
+				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
 				<view class="login_name"><input class="uni-input" type="password" v-model="password" focus placeholder=" 请输入新的不少于6位的密码" /></view>
 			</view>
 			<view class="login_input flex_item">
-				<view class="login_img"><image src="/static/img/zfpwd.png"></image></view>
+				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
 				<view class="login_name"><input class="uni-input" type="password" v-model="password2" focus placeholder="请重复输入新密码" /></view>
 			</view>
 			<view class="login_input flex">
-				<view class="login_img"><image class="codeimg" src="/static/img/yan.png"></image></view>
+				<view class="login_img"><image class="codeimg" src="/static/icon/img06.png"></image></view>
 				<view class="login_name flex">
 					<input class="uni-input width" v-model="code" type="number" focus placeholder="请输入验证码" />
 					<view class="code" @click="verification">{{ countDown == 0 ? '发送验证码' : countDown }}</view>
 				</view>
 			</view>
+			<view class="uni-button uni-button-green" @click="updatalogin">确认修改</view>
 		</view>
-		<view class="login" @click="updatalogin">确认修改</view>
 	</view>
 </template>
 <script>
@@ -53,11 +56,11 @@ export default {
 		updatalogin() {
 			let obj = this;
 			if (obj.phone == '') {
-				obj.$api.msg('请输入邮箱');
+				obj.$api.msg('请输入手机');
 				return;
 			}
-			if (!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(obj.phone) && (!/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone))) {
-				obj.$api.msg('请输入正确的邮箱或手机');
+			if (!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(obj.phone) && !/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone)) {
+				obj.$api.msg('请输入正确的手机');
 				return;
 			}
 			if (obj.password == '') {
@@ -100,7 +103,7 @@ export default {
 				this.$api.msg('请输入邮箱号码');
 				return;
 			}
-			if (!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(obj.phone) && (!/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone))) {
+			if (!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(obj.phone) && !/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone)) {
 				obj.$api.msg('请输入正确的邮箱或手机');
 				return;
 			}
@@ -140,28 +143,37 @@ page {
 	background-color: #ffffff;
 	.container {
 		width: 100%;
-		padding: 60rpx 70rpx;
 	}
 }
-.logo-img {
-	width: 161rpx;
-	height: 161rpx;
-	margin:auto;
-	margin-top: 52rpx !important;
-	margin-bottom: 15rpx !important;
-	box-shadow: 0px 12rpx 13rpx 0px rgba(68, 150, 157, 0.47);
-	border-radius: 50%;
-	image {
-		width: 161rpx;
-		height: 161rpx;
-		border-radius: 50%;
+.container_text {
+	position: relative;
+	width: 100%;
+	height: 500rpx;
+	top: 0rpx;
+	.banner-img {
+		width: 100%;
+		height: 100%;
+	}
+	.title-img {
+		position: absolute;
+		left: 50%;
+		top: 100rpx;
+		margin-left: -130rpx;
+		width: 260rpx;
+		height: 156rpx;
+		.title-image {
+			width: 260rpx;
+			height: 156rpx;
+		}
 	}
 }
-.logo {
-	font-size: 36rpx;
-	font-weight: 400;
-	color: #5dbc7c;
+.loginTitle {
+	position: absolute;
+	top: 270rpx;
+	width: 100%;
 	text-align: center;
+	color: white;
+	font-size: 40rpx;
 }
 .phone {
 	height: 43rpx !important;
@@ -172,42 +184,98 @@ page {
 	width: 31rpx !important;
 }
 .login_text {
-	border-radius: 20rpx;
-	margin-top: 80rpx;
+	margin: -100rpx 0 0;
+	position: relative;
+	padding: 100rpx 102rpx;
+	background-color: #ffffff;
+	border-top-left-radius: 40rpx;
+	border-top-right-radius: 40rpx;
 	.login_input {
-		// border-bottom: 1px solid #C5CEE0;
-		margin-bottom: 35rpx;
-		padding-bottom: 60rpx;
-		.login_img {
-			height: 35rpx;
-			width: 31rpx;
+		border-bottom: 1px solid #f0f0f0;
+		margin-bottom: 65rpx;
+		.login_img image {
+			height: 36rpx;
+			width: 30rpx;
 			margin-right: 20rpx;
-			image {
-				width: 100%;
-				height: 100%;
-			}
 		}
 		.uni-input {
 			text-align: left;
-			width: 400rpx;
-			font-size: 32rpx !important;
+			width: 470rpx;
+			font-size: 28rpx !important;
 		}
 		.login_name {
 			color: #333333;
-			.code {
-				color: #5dbc7c;
-				font-size: 23rpx;
-				border-left: 1px solid #eeeeee;
-				width: 150rpx;
-				flex-shrink: 0;
-				text-align: center;
-			}
 		}
 	}
+
+	.other {
+		margin-top: 60rpx;
+		.fenge {
+			width: 30%;
+			height: 2rpx;
+			background-color: #eeeeee;
+		}
+		.qita {
+			font-size: 28rpx;
+			color: #999999;
+		}
+	}
+	.weixin {
+		width: 75rpx;
+		height: 75rpx;
+		margin: 25rpx auto;
+	}
+	.weixin image {
+		width: 100%;
+		height: 100%;
+	}
+	.weixin_text {
+		text-align: center;
+		font-size: 28rpx;
+		color: #999999;
+	}
+	.forget {
+		font-size: 28rpx;
+		width: 100%;
+		text-align: right;
+		color: #999999;
+	}
+
+	.uni-button-green {
+		text-align: center;
+		color: #ffffff;
+		background-color: #db292b;
+		margin: 40rpx 10rpx;
+		border-radius: 50rpx;
+	}
+	.uni-button-green-plain {
+		border: 1px solid #db292b;
+		margin: 40rpx 10rpx;
+		border-radius: 50rpx;
+		color: #db292b;
+		background-color: #ffffff;
+	}
+	.uni-button {
+		height: 85rpx;
+		line-height: 85rpx;
+	}
+}
+
+.code {
+	color: #db292b;
+	font-size: 23rpx;
+	border-left: 1px solid #eeeeee;
+	width: 150rpx;
+	flex-shrink: 0;
+	text-align: center;
+}
+
+.width {
+	width: 325rpx !important;
 }
 
 .login {
-	background: #5dbc7c;
+	background: #db292b;
 	margin-top: 96rpx;
 	color: #ffffff;
 	text-align: center;

+ 80 - 93
pages/public/login.vue

@@ -2,8 +2,9 @@
 	<view class="container">
 		<view class="container_text">
 			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
+			<view class="title-img"><image class="title-image" src="../../static/img/login-title.png" mode=""></image></view>
 		</view>
-		<view class="loginTitle"><text>登录</text></view>
+		<view class="loginTitle"><text>欢迎登录易趣CBB</text></view>
 		<view class="login_text">
 			<view class="login_input flex">
 				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
@@ -16,39 +17,14 @@
 			<view><button type="green" class="uni-button uni-button-green" @click="toLogin">登录</button></view>
 			<view><button type="green" class="uni-button uni-button-green uni-button-green-plain" plain="true" hover-class="none" @click="register">注册</button></view>
 			<navigator url="./forget"><view class="forget">忘记密码</view></navigator>
-			<view class="flex other">
-				<view class="fenge"></view>
-				<view class="qita">其他方式登录</view>
-				<view class="fenge"></view>
-			</view>
-			<!-- #ifndef APP-PLUS -->
-					<view class="weixin" @click="wecahtLogin"><image src="/static/img/img05.png"></image></view>
-					<view class="weixin_text" @click="wecahtLogin">微信登录</view>
-					<!-- #endif -->
-					<!-- #ifdef APP-PLUS -->
-					<block v-if="!is_ios">
-						<view class="weixin" @click="wecahtLogin"><image src="/static/img/img05.png" mode="scaleToFill"></image></view>
-						<view class="weixin_text" @click="wecahtLogin">微信登录</view>
-					</block>
-					<block v-else>
-						<view class="ios_login flex" @click="wecahtLogin('weixin')">
-							<text class="iconfont iconweixin"></text>
-							<text class="weixin_text">微信登录</text>
-						</view>
-						<view v-if='is_apple_login' class="ios_login flex" @click="wecahtLogin('apple')">
-							<image class="loginIcon" src="/static/icon/appleIcon.png" mode=" scaleToFill"></image>
-							<text class="weixin_text">通过Apple登录</text>
-						</view>
-					</block>
-					<!-- #endif -->
-				</view>
-			</view>
+		</view>
+	</view>
 </template>
 
 <script>
 import { mapMutations } from 'vuex';
-import { login} from '@/api/login.js';
-import { getUserInfo} from '@/api/user.js';
+import { login } from '@/api/login.js';
+import { getUserInfo } from '@/api/user.js';
 // #ifdef APP-PLUS
 // applelogin接口需要开发编写,基础项目中可能没有
 import { applelogin } from '@/api/set.js';
@@ -64,8 +40,8 @@ export default {
 			username: '',
 			passward: '',
 			// #ifdef APP-PLUS
-			is_ios: false ,//判断是否为ios手机
-			is_apple_login:false,//是否有ios授权登录功能
+			is_ios: false, //判断是否为ios手机
+			is_apple_login: false //是否有ios授权登录功能
 			// #endif
 		};
 	},
@@ -79,11 +55,11 @@ export default {
 		}
 		uni.getSystemInfo({
 			success(e) {
-				if(+e.system.split('.')[0]>=13){
-					obj.is_apple_login=true;
+				if (+e.system.split('.')[0] >= 13) {
+					obj.is_apple_login = true;
 				}
 			}
-		})
+		});
 		// #endif
 	},
 	methods: {
@@ -104,7 +80,7 @@ export default {
 					uni.getUserInfo({
 						provider: type,
 						success(es) {
-							if(type==='weixin'){
+							if (type === 'weixin') {
 								loginWx(es.userInfo)
 									.then(e => {
 										uni.setStorageSync('token', e.data.token);
@@ -127,13 +103,13 @@ export default {
 										});
 									});
 							}
-							if(type==='apple'){
+							if (type === 'apple') {
 								console.log(es.userInfo);
 								applelogin({
-									account: es.userInfo.openId,
+									account: es.userInfo.openId
 								})
 									.then(function(e) {
-										console.log(e,'token')
+										console.log(e, 'token');
 										uni.setStorageSync('token', e.data.token);
 										getUserInfo({}).then(e => {
 											obj.login();
@@ -144,13 +120,11 @@ export default {
 												url: '/pages/index/index'
 											});
 										});
-										
 									})
 									.catch(function(e) {
 										console.log(e);
 									});
 							}
-							
 						},
 						fail(es) {
 							uni.showModal({
@@ -195,7 +169,7 @@ export default {
 				password: obj.passward
 			})
 				.then(function(e) {
-					console.log(e.data.token,"123456");
+					console.log(e.data.token, '123456');
 					uni.setStorageSync('token', e.data.token);
 					// obj.$store.commit('hasLogin', true);
 					getUserInfo({}).then(e => {
@@ -205,7 +179,7 @@ export default {
 						// let ur = uni.getStorageSync('present')|| '/pages/index/index';
 						//成功跳转首页
 						uni.switchTab({
-							url: "/pages/index/index",
+							url: '/pages/index/index'
 							// fail(e) {
 							// 	uni.navigateTo({
 							// 		url: ur,
@@ -238,51 +212,51 @@ export default {
 </script>
 
 <style lang="scss">
-	/* #ifdef APP-PLUS */
-	
-	.ios_login {
-		width: 260rpx;
-		border-radius: 12rpx;
-		justify-content: center;
-		border: 1px solid #212121;
-		margin: 24rpx auto;
-		padding: 10rpx;
-		background-color: #212121;
-		color: #ffffff;
-		.loginIcon {
-			width: 50rpx;
-			height: 50rpx;
-		}
-		.weixin_text {
-			line-height: 1;
-			margin-left: 20rpx;
-			color: #ffffff !important;
-		}
+/* #ifdef APP-PLUS */
+
+.ios_login {
+	width: 260rpx;
+	border-radius: 12rpx;
+	justify-content: center;
+	border: 1px solid #212121;
+	margin: 24rpx auto;
+	padding: 10rpx;
+	background-color: #212121;
+	color: #ffffff;
+	.loginIcon {
+		width: 50rpx;
+		height: 50rpx;
 	}
-	
-	/* #endif */
-	.ios_login {
-		width: 350rpx;
-		border-radius: 12rpx;
-		justify-content: center;
-		border: 1px solid #212121;
-		margin: 24rpx auto;
-		padding: 15rpx;
-		background-color: #212121;
-		color: #ffffff;
-		font-size: 32rpx;
-		.loginIcon {
-			font-size: 35rpx;
-			width: 35rpx;
-			height: 35rpx;
-		}
-		.weixin_text {
-			line-height: 1;
-			margin-left: 20rpx;
-			color: #ffffff !important;
-		}
+	.weixin_text {
+		line-height: 1;
+		margin-left: 20rpx;
+		color: #ffffff !important;
+	}
+}
+
+/* #endif */
+.ios_login {
+	width: 350rpx;
+	border-radius: 12rpx;
+	justify-content: center;
+	border: 1px solid #212121;
+	margin: 24rpx auto;
+	padding: 15rpx;
+	background-color: #212121;
+	color: #ffffff;
+	font-size: 32rpx;
+	.loginIcon {
+		font-size: 35rpx;
+		width: 35rpx;
+		height: 35rpx;
+	}
+	.weixin_text {
+		line-height: 1;
+		margin-left: 20rpx;
+		color: #ffffff !important;
 	}
-	
+}
+
 page {
 	height: 100%;
 }
@@ -292,6 +266,7 @@ page {
 	background-size: 100%;
 }
 .container_text {
+	position: relative;
 	width: 100%;
 	height: 500rpx;
 	top: 0rpx;
@@ -299,14 +274,26 @@ page {
 		width: 100%;
 		height: 100%;
 	}
+	.title-img {
+		position: absolute;
+		left: 50%;
+		top: 100rpx;
+		margin-left: -130rpx;
+		width: 260rpx;
+		height: 156rpx;
+		.title-image {
+			width: 260rpx;
+			height: 156rpx;
+		}
+	}
 }
 .login_text {
-	margin: auto 30rpx;
+	margin: -100rpx 0 0;
 	position: relative;
 	padding: 100rpx 102rpx;
 	background-color: #ffffff;
-	margin-top: -180rpx;
-	border-radius: 20rpx;
+	border-top-left-radius: 40rpx;
+	border-top-right-radius: 40rpx;
 	.login_input {
 		border-bottom: 1px solid #f0f0f0;
 		margin-bottom: 65rpx;
@@ -360,15 +347,15 @@ page {
 
 	.uni-button-green {
 		color: #ffffff;
-		background-color: #5dbc7c;
+		background-color: #db292b;
 		margin: 40rpx 10rpx;
 		border-radius: 50rpx;
 	}
 	.uni-button-green-plain {
-		border: 1px solid #5dbc7c;
+		border: 1px solid #db292b;
 		margin: 40rpx 10rpx;
 		border-radius: 50rpx;
-		color: #5dbc7c;
+		color: #db292b;
 		background-color: #ffffff;
 	}
 	.uni-button {
@@ -378,7 +365,7 @@ page {
 }
 .loginTitle {
 	position: absolute;
-	top: 250rpx;
+	top: 270rpx;
 	width: 100%;
 	text-align: center;
 	color: white;

+ 36 - 25
pages/public/register.vue

@@ -1,9 +1,10 @@
 <template>
 	<view class="container">
-		<view class="container_text" >
+		<view class="container_text">
 			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
+			<view class="title-img"><image class="title-image" src="../../static/img/login-title.png" mode=""></image></view>
 		</view>
-		<view class="loginTitle"><text>注册</text></view>
+		<view class="loginTitle"><text>欢迎注册易趣CBB</text></view>
 		<view class="login_text">
 			<view class="login_input flex">
 				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
@@ -17,7 +18,7 @@
 				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
 				<view class="login_name"><input class="uni-input" type="password" v-model="repassword" focus placeholder="请重复输入密码" /></view>
 			</view>
-			<view class="login_input flex" >
+			<view class="login_input flex">
 				<view class="login_img"><image src="/static/icon/img07.png"></image></view>
 				<view class="login_name"><input class="uni-input" type="text" v-model="invitation" focus placeholder="请输入邀请码" /></view>
 			</view>
@@ -44,14 +45,14 @@ export default {
 			invitation: '', //邀请码
 			code: '', //验证码
 			time: '', //保存倒计时对象
-			countDown: 0 ,//倒计时
+			countDown: 0 //倒计时
 		};
 	},
 	onLoad(options) {
 		// 获取扫码邀请人id
-		this.invitation = uni.getStorageSync('spread')||'';
-		if(options.spread) {
-			this.invitation = options.spread
+		this.invitation = uni.getStorageSync('spread') || '';
+		if (options.spread) {
+			this.invitation = options.spread;
 		}
 	},
 	watch: {
@@ -97,20 +98,19 @@ export default {
 			register({
 				account: obj.phone, //账号
 				captcha: obj.code, //验证码
-				password: obj.password ,//密码
-				spread:this.invitation//上级推广人
+				password: obj.password, //密码
+				spread: this.invitation //上级推广人
 			}).then(function(e) {
 				uni.showToast({
-					title:'注册成功',
-					duration:2000,
-					position:'top'
+					title: '注册成功',
+					duration: 2000,
+					position: 'top'
 				});
-				setTimeout(function () {
+				setTimeout(function() {
 					uni.navigateTo({
 						url: '/pages/public/login'
 					});
-				},1000)
-				
+				}, 1000);
 			});
 			//调用注册接口,成功跳转登录页
 		},
@@ -164,6 +164,7 @@ page {
 	background-size: 100%;
 }
 .container_text {
+	position: relative;
 	width: 100%;
 	height: 500rpx;
 	top: 0rpx;
@@ -171,14 +172,26 @@ page {
 		width: 100%;
 		height: 100%;
 	}
+	.title-img {
+		position: absolute;
+		left: 50%;
+		top: 100rpx;
+		margin-left: -130rpx;
+		width: 260rpx;
+		height: 156rpx;
+		.title-image {
+			width: 260rpx;
+			height: 156rpx;
+		}
+	}
 }
 .login_text {
-	margin: auto 30rpx;
+	margin: -100rpx 0 0;
 	position: relative;
 	padding: 100rpx 102rpx;
 	background-color: #ffffff;
-	margin-top: -180rpx;
-	border-radius: 20rpx;
+	border-top-left-radius: 40rpx;
+	border-top-right-radius: 40rpx;
 	.login_input {
 		border-bottom: 1px solid #f0f0f0;
 		margin-bottom: 65rpx;
@@ -232,15 +245,15 @@ page {
 
 	.uni-button-green {
 		color: #ffffff;
-		background-color: #5dbc7c;
+		background-color: #db292b;
 		margin: 40rpx 10rpx;
 		border-radius: 50rpx;
 	}
 	.uni-button-green-plain {
-		border: 1px solid #5dbc7c;
+		border: 1px solid #db292b;
 		margin: 40rpx 10rpx;
 		border-radius: 50rpx;
-		color: #5dbc7c;
+		color: #db292b;
 		background-color: #ffffff;
 	}
 	.uni-button {
@@ -250,7 +263,7 @@ page {
 }
 .loginTitle {
 	position: absolute;
-	top: 250rpx;
+	top: 270rpx;
 	width: 100%;
 	text-align: center;
 	color: white;
@@ -268,7 +281,7 @@ page {
 	width: 325rpx !important;
 }
 .code {
-	color: #5dbc7c;
+	color: #db292b;
 	font-size: 23rpx;
 	border-left: 1px solid #eeeeee;
 	width: 150rpx;
@@ -279,6 +292,4 @@ uni-button {
 	height: 80rpx !important;
 	line-height: 80rpx !important;
 }
-
 </style>
-

+ 22 - 19
pages/set/address.vue

@@ -11,7 +11,7 @@
 				</view>
 			</view>
 			<view class="buttom">
-				<view class="default-buttom" @click.stop="defaultUp(item,index)">
+				<view class="default-buttom" @click.stop="defaultUp(item, index)">
 					<view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.is_default == 1 }"></view>
 					<text class="text">设为默认地址</text>
 				</view>
@@ -33,7 +33,7 @@
 </template>
 
 <script>
-import { getAddressList,setAddressDefault,addressDel } from '@/api/user.js';
+import { getAddressList, setAddressDefault, addressDel } from '@/api/user.js';
 export default {
 	data() {
 		return {
@@ -42,7 +42,7 @@ export default {
 		};
 	},
 	onLoad(option) {
-		this.source = option.source||0
+		this.source = option.source || 0;
 		this.loadAddress();
 	},
 	methods: {
@@ -52,31 +52,34 @@ export default {
 				page: 1,
 				limit: 100
 			}).then(({ data }) => {
+				console.log(data);
 				this.addressList = data;
 			});
 		},
 		// 设为默认地址
-		defaultUp(data,ind) {
-			this.addressList=this.addressList.map((e) => {
-				e.is_default=0
-				return e
-			})
-			this.addressList[ind].is_default=1
+		defaultUp(data, ind) {
+			this.addressList = this.addressList.map(e => {
+				e.is_default = 0;
+				return e;
+			});
+			this.addressList[ind].is_default = 1;
 			setAddressDefault({
 				id: data.id
-			}).then(({ data }) => {
-				this.loadAddress();
-			}).catch((e) => {
-				console.log(e);
-			});
+			})
+				.then(({ data }) => {
+					this.loadAddress();
+				})
+				.catch(e => {
+					console.log(e);
+				});
 		},
 		//删除地址
 		delAddress(item) {
 			addressDel({
-				id:item.id
-			}).then(({data})=>{
-				this.$api.msg('删除成功')
-			})
+				id: item.id
+			}).then(({ data }) => {
+				this.$api.msg('删除成功');
+			});
 			let s = this.addressList.indexOf(item);
 			this.addressList.splice(s, 1);
 		},
@@ -97,7 +100,7 @@ export default {
 		//添加或修改成功之后回调
 		refreshList() {
 			// 重新加载地址
-			this.loadAddress()
+			this.loadAddress();
 		}
 	}
 };

+ 25 - 16
pages/set/addressManage.vue

@@ -10,7 +10,7 @@
 		</view>
 		<view class="row b-b">
 			<text class="tit">地址</text>
-			<pickerAddress class="input" @change="onCityClick">{{addressDetail||'请选择地址'}}</pickerAddress>
+			<pickerAddress class="input" @change="onCityClick">{{ addressDetail || '请选择地址' }}</pickerAddress>
 			<text class="iconfont iconlocation"></text>
 		</view>
 		<view class="row b-b">
@@ -37,7 +37,7 @@
 import uniList from '@/components/uni-list/uni-list.vue';
 import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
 import uniPopup from '@/components/uni-popup/uni-popup.vue';
-import  pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
+import pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
 import { addressEdit } from '@/api/user.js';
 export default {
 	components: {
@@ -49,6 +49,7 @@ export default {
 	data() {
 		return {
 			addressDetail: '',
+			loadingType: 1,
 			addressData: {
 				name: '',
 				mobile: '',
@@ -90,7 +91,7 @@ export default {
 	},
 	methods: {
 		// 选中城市切换
-		onCityClick({data}) {
+		onCityClick({ data }) {
 			let address = this.addressData.address;
 			address.province = data[0];
 			address.city = data[1];
@@ -119,7 +120,7 @@ export default {
 				this.$api.msg('请填写收货人姓名');
 				return;
 			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(data.mobile)) {
+			if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(data.mobile)) {
 				this.$api.msg('请输入正确的手机号码');
 				return;
 			}
@@ -131,7 +132,11 @@ export default {
 				this.$api.msg('请填写门牌号信息');
 				return;
 			}
-
+			if (obj.loadingType == 2) {
+				console.log('1111');
+				return;
+			}
+			obj.loadingType = 2;
 			//this.$api.prePage()获取上一页实例,可直接调用上页所有数据和方法,在App.vue定义
 			addressEdit({
 				real_name: data.name,
@@ -143,18 +148,22 @@ export default {
 				},
 				detail: data.area,
 				is_default: data.default,
-				id: data.id||"",
-				type:1
-			}).then(function(e) {
-				obj.$api.prePage().refreshList();
-				uni.showToast({
-					title:'提交成功',
-					duration:2000
+				id: data.id || '',
+				type: 1
+			})
+				.then(function(e) {
+					obj.$api.prePage().refreshList();
+					uni.showToast({
+						title: '提交成功',
+						duration: 2000
+					});
+					setTimeout(function() {
+						uni.navigateBack();
+					}, 800);
+				})
+				.catch(err => {
+					obj.loadingType = 1;
 				});
-				setTimeout(function() {
-					uni.navigateBack();
-				}, 800);
-			});
 		}
 	}
 };

+ 7 - 5
pages/set/phone.vue

@@ -4,7 +4,7 @@
 			<text class="tit">手机号</text>
 			<input class="input" v-model="account" type="text" placeholder="请填写手机号" placeholder-class="placeholder" />
 		</view>
-		<view>
+		<view v-if="show">
 			<view class="row b-b">
 				<text class="tit">验证码</text>
 				<input class="input" v-model="captcha" type="text" placeholder="请填写验证码" placeholder-class="placeholder" />
@@ -22,6 +22,7 @@ import { registerReset, binding } from '@/api/set.js';
 export default {
 	data() {
 		return {
+			show: true,
 			time: '', //保存倒计时对象
 			countDown: 0, //倒计时
 			account: '', //手机号
@@ -39,10 +40,11 @@ export default {
 		}
 	},
 	computed: {
-		...mapState(['userInfo'])
+		...mapState('user', ['userInfo'])
 	},
 	onLoad() {
-		if (this.userInfo.phone == null) {
+		console.log(this.userInfo, '123456');
+		if (!this.userInfo.phone) {
 			this.account = '';
 		} else {
 			this.account = this.userInfo.phone;
@@ -57,7 +59,7 @@ export default {
 				this.$api.msg('请输入电话号码');
 				return;
 			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.account)) {
+			if (!/(^1[2|3|4|5|6|7|8|9][0-9]{9}$)/.test(this.account)) {
 				this.$api.msg('请输入正确的手机号');
 				return;
 			}
@@ -151,7 +153,7 @@ page {
 	background-color: $color-gray;
 }
 .code {
-	color: #5dbc7c;
+	color: #dc262b;
 	font-size: 23rpx;
 	border-left: 1px solid #eeeeee;
 	width: 150rpx;

+ 8 - 0
pages/user/about.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 1 - 1
pages/user/approve.vue

@@ -7,7 +7,7 @@
 		</u-form>
 		<view class="userBox">
 			<view class="title">上传身份证照片</view>
-			<view class="imgUp" @click.stop="upImg"><image class="img" :src="form.img || 'https://zhibo.liuniu946.com/img/upImgbg.png'" mode="scaleToFill"></image></view>
+			<view class="imgUp" @click.stop="upImg"><image class="img" :src="form.img || '../../static/img/sfz.png'" mode="scaleToFill"></image></view>
 		</view>
 		<button class="add-btn" @click="pushData('add')">提交</button>
 	</view>

+ 3 - 1
pages/user/myAppointment.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
+		<view class="status_bar"><!-- 这里是状态栏 --></view>
 		<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>
@@ -181,6 +181,7 @@ page {
 .status_bar {
 	height: var(--status-bar-height);
 	width: 100%;
+	background: #00bdff;
 }
 .content-money {
 	position: relative;
@@ -241,6 +242,7 @@ page {
 	background: #ffffff;
 	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
 	border-radius: 20rpx;
+	// #ifdef MP
 	margin: -100rpx auto 0;
 	position: relative;
 	z-index: 2;

+ 2 - 2
pages/user/shareQrCode.vue

@@ -39,10 +39,10 @@ export default {
 				type: 2,
 				//#endif
 				//#ifdef MP
-				type:1,
+				type: 1,
 				//#endif
 				//#ifdef APP-PLUS
-				type:2,
+				type: 3
 				//#endif
 			}).then(({ data }) => {
 				console.log(data);

Plik diff jest za duży
+ 586 - 651
pages/user/user.vue


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików