Browse Source

首页,详情页,购买页,地址添加

hrjy 4 years ago
parent
commit
44a0ccc1c4
45 changed files with 1606 additions and 620 deletions
  1. 1 1
      components/wangding-pickerAddress/wangding-pickerAddress.vue
  2. 30 14
      pages.json
  3. 40 30
      pages/index/child/hotGoods.vue
  4. 136 0
      pages/index/child/recommend.vue
  5. 58 54
      pages/index/index.vue
  6. 427 0
      pages/money/USDT.vue
  7. 137 0
      pages/money/conversionIntegral.vue
  8. 4 4
      pages/money/pay.vue
  9. 70 244
      pages/money/recharge.vue
  10. 185 80
      pages/money/withdrawal.vue
  11. 63 26
      pages/order/createOrder.vue
  12. 73 28
      pages/product/classify.vue
  13. 5 4
      pages/product/common/contentText.vue
  14. 19 16
      pages/product/common/productBottom.vue
  15. 50 7
      pages/product/common/productContent.vue
  16. 222 72
      pages/product/product.vue
  17. 23 18
      pages/set/address.vue
  18. 63 22
      pages/set/addressManage.vue
  19. BIN
      static/icon/decline.png
  20. BIN
      static/icon/jf.png
  21. BIN
      static/icon/logo.png
  22. BIN
      static/icon/money.png
  23. BIN
      static/icon/right.png
  24. BIN
      static/icon/sd1.png
  25. BIN
      static/icon/sd2.png
  26. BIN
      static/img/change.png
  27. BIN
      static/img/i-t.png
  28. BIN
      static/img/is.png
  29. BIN
      static/img/x.png
  30. BIN
      static/tabBar/tab-cart-current.png
  31. BIN
      static/tabBar/tab-cart-current1.png
  32. BIN
      static/tabBar/tab-cart.png
  33. BIN
      static/tabBar/tab-cart1.png
  34. BIN
      static/tabBar/tab-cate-current.png
  35. BIN
      static/tabBar/tab-cate-current1.png
  36. BIN
      static/tabBar/tab-cate.png
  37. BIN
      static/tabBar/tab-cate1.png
  38. BIN
      static/tabBar/tab-home-current.png
  39. BIN
      static/tabBar/tab-home-current1.png
  40. BIN
      static/tabBar/tab-home.png
  41. BIN
      static/tabBar/tab-home1.png
  42. BIN
      static/tabBar/tab-my-current.png
  43. BIN
      static/tabBar/tab-my-current1.png
  44. BIN
      static/tabBar/tab-my.png
  45. BIN
      static/tabBar/tab-my1.png

+ 1 - 1
components/wangding-pickerAddress/wangding-pickerAddress.vue

@@ -99,5 +99,5 @@
 	}
 </script>
 
-<style>
+<style lang="scss" scoped>
 </style>

+ 30 - 14
pages.json

@@ -218,15 +218,7 @@
 			}
 		},
 		{
-			"path": "pages/product/classify",
-			"style": {
-				"navigationStyle": "custom",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
+			"path": "pages/product/classify"
 		},
 		{
 			"path": "pages/set/set",
@@ -237,7 +229,18 @@
 		{
 			"path": "pages/set/address",
 			"style": {
-				"navigationBarTitleText": "收货地址"
+				"navigationBarTitleText": "收货地址",
+				"app-plus": {
+					"titleNView": {
+						"buttons": [{
+							"text": "新增",
+							"fontSize": "16",
+							"width": "80rpx",
+							"color":"#3F454B",
+							"height": "60rpx"
+						}]
+					}
+				}
 			}
 		},
 		{
@@ -381,7 +384,7 @@
 		{
 			"path": "pages/order/createOrder",
 			"style": {
-				"navigationBarTitleText": "创建订单"
+				"navigationBarTitleText": "支付详情"
 			}
 		},  {
 			"path": "pages/money/pay",
@@ -421,7 +424,20 @@
 		{
 			"path": "pages/money/recharge",
 			"style": {
-				"navigationBarTitleText": "充值"
+				"navigationBarTitleText": "充币"
+			}
+		},
+		{
+			"path": "pages/money/conversionIntegral",
+			"style": {
+				"navigationBarTitleText": "兑换"
+			}
+		},
+		
+		{
+			"path": "pages/money/USDT",
+			"style": {
+				"navigationBarTitleText": "USDT专区"
 			}
 		},
 		{
@@ -503,12 +519,12 @@
 	},
 	"tabBar": {
 		"color": "#C0C4CC",
-		"selectedColor": "#5DBC7C",
+		"selectedColor": "#438BED",
 		"borderStyle": "black",
 		"backgroundColor": "#ffffff",
 		"list": [{
 				"pagePath": "pages/index/index",
-				"iconPath": "static/tabBar/tab-home.png",
+				"iconPath": "./static/tabBar/tab-home.png",
 				"selectedIconPath": "static/tabBar/tab-home-current.png",
 				"text": "首页"
 			},

+ 40 - 30
pages/index/child/hotGoods.vue

@@ -10,37 +10,23 @@
 					<text>精选好货 平台推荐</text><br>
 					<text>买到就是赚到</text>
 				</view>
-				<view class="goods-list-more">
-					<image src="@/static/icon/more.png"></image>
-				</view>
+				<navigator url="/pages/product/classify?type=1">
+					<view class="goods-list-more">
+						<image src="@/static/icon/more.png"></image>
+					</view>
+				</navigator>
 		</view>
 		<view class="list">
 			<view class="list-g">
 				<view class="scroll-boxs">
-					<scroll-view scroll-x :scrollLeft="scrollLeft" @scroll="scroll" class="right-head"  style="white-space: nowrap">
-					    <view  class="goods-item" >
+					<scroll-view scroll-x class="right-head"  style="white-space: nowrap">
+					    <view  class="goods-item" v-for="g in goodsList" @click="navToDetailPage(g)">
 							<view class="item-img">
 								<image src="../../../static/error/errorImage.jpg" mode=""></image>
 							</view>
-							<text class="clamp">学芝灵雪莲贴...</text>
-							<text class="ot-price">¥289</text>
-							<text class="price">¥99</text>
-						</view>
-						<view  class="goods-item" >
-							<view class="item-img">
-								<image src="../../../static/error/errorImage.jpg" mode=""></image>
-							</view>
-							<text>学芝灵雪莲贴</text>
-							<text class="ot-price">¥289</text>
-							<text class="price">¥99</text>
-						</view>
-						<view  class="goods-item" >
-							<view class="item-img">
-								<image src="../../../static/error/errorImage.jpg" mode=""></image>
-							</view>
-							<text class="clamp">学芝灵雪莲贴学芝灵雪莲贴</text>
-							<text class="ot-price">¥289</text>
-							<text class="price">¥99</text>
+							<view class="name">{{g.store_name}}</view>
+							<view class="ot_price">¥{{g.price}}</view>
+							<view class="price">¥{{g.vip_price}}</view>
 						</view>
 					</scroll-view>
 				</view>
@@ -53,6 +39,18 @@
 </template>
 
 <script>
+	export default {
+		props: ["goodsList"],
+		mounted() {
+			// console.log(this.goodsList)
+		},
+		methods: {
+			//详情页
+			navToDetailPage(item) {
+				this.$parent.$parent.$parent.navToDetailPage(item)
+			},
+		}
+	}
 </script>
 
 <style lang="scss" scoped>
@@ -103,6 +101,7 @@
 	}
 	.list {
 		background-color: #F4F4F4;
+		height: 300rpx;
 		.list-g {
 			border-radius: 15rpx;
 			position: relative;
@@ -117,16 +116,27 @@
 				padding: 20rpx;
 				background-color: #fff;
 				display: inline-block;
-				text {
-					max-width: 200rpx;
+				.name {
+					width: 174rpx;
+					//超出文字隐藏
 					overflow: hidden;
-					display: -webkit-box;
-					-webkit-line-clamp: 1
+					//当文本溢出,省略号代替
+					text-overflow:ellipsis;
+					font-size: 31rpx;
+					}
+				.ot_price {
+					color: #999999;
+					font-size: 20rpx;
+					text-decoration: line-through
+				}
+				.price {
+					color: #EF3A55;
+					font-size: 35rpx;
 				}
 				.item-img {
 					image {
-						width: 200rpx;
-						height: 200rpx;
+						width: 174rpx;
+						height: 174rpx;
 					}
 				}
 			}

+ 136 - 0
pages/index/child/recommend.vue

@@ -0,0 +1,136 @@
+<template>
+	<view class="all">
+		<image src="@/static/img/i-t.png"></image>
+		<view class="title">
+			<text>为你推荐</text>
+		</view>
+		<view class="list">
+				<view class="item" v-for="b in bastList">
+					<view class="item-img">
+						<!-- <image :src=b.image  mode="" v-if="b.image"></image> -->
+						<image :src=errorImage></image>
+					</view>
+					<view class="item-right">
+						<view class="name">
+							{{b.store_name}}
+						</view>
+						<view class="item-price">
+							<view class="">
+								<text class="ot-price">¥{{b.ot_price}}</text><image src="../../../static/icon/decline.png"></image>
+								<text>直降{{b.ot_price - b.price}}元</text><br>
+								<text class="price">¥{{b.price}}</text>
+							</view>
+							<view class="button" @click="navToDetailPage(b)">立即购买</view>
+						</view>
+					</view>
+				</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				errorImage: require('../../../static/error/errorImage.jpg'),
+			}
+		},
+		methods: {
+			//详情页
+			navToDetailPage(item) {
+				this.$parent.$parent.$parent.navToDetailPage(item)
+			},
+		},
+		mounted() {
+			this.getList()
+		},
+		props: ["bastList"]
+	}
+</script>
+
+<style lang="scss" scoped>
+	.all {
+		text-align: center;
+		padding-bottom: 30rpx;
+	}
+		
+	image {
+		width: 350rpx;
+		height: 30rpx;
+	}
+	.title {
+		position: relative;
+		top: -45rpx;
+		color: #438BED ;
+		font-size: 30rpx;
+		font-weight: bold;
+	}
+	.list {
+		padding: 0 5%;
+		.item {
+			display: flex;
+			padding: 20rpx;
+			box-shadow:0 0 20rpx 6rpx #f1f1f1;
+			border-radius: 20rpx;
+			margin-bottom: 20rpx;
+			.item-img {
+				margin-right: 40rpx;
+				image {
+					width: 200rpx;
+					height: 200rpx;
+				}
+			}
+			.item-right {
+				width: 100%;
+				text-align: left;
+				display: grid;
+				align-content: space-between;
+				.name {
+					color: #333333;
+					font-size: 30rpx;
+					font-weight: bold;
+					font-family: PingFang-SC-Bold;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					display: -webkit-box;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+				}
+				text {
+					color: #FFB238;
+					font-size: 20rpx;
+				}
+				.item-price {
+					display: flex;
+					justify-content: space-between;
+					image {
+						width: 20rpx;
+						height: 20rpx;
+						margin-right: 5rpx;
+					}
+					.ot-price {
+						color: #999999;
+						text-decoration: line-through;
+						margin-right: 15rpx;
+					}
+					.price {
+						color: #EF3A55;
+						font-size: 35rpx;
+					}
+					.button {
+						background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+						background-color: #438BED;
+						height: 50rpx;
+						border-radius: 20rpx;
+						padding: 10rpx 15rpx;
+						color: #fff;
+						font-size: 25rpx;
+						position: relative;
+						top: 30rpx;
+					}
+				}
+				
+			}
+		}
+	}
+</style>

+ 58 - 54
pages/index/index.vue

@@ -2,21 +2,22 @@
 	<view class="container">
 		<!-- 小程序头部兼容 -->
 		<!-- #ifdef MP -->
-		<view class="input-box flex" @click="clickSearch">
+		<!-- <view class="input-box flex" @click="clickSearch">
 			<view class=" input-content flex">
 				<view class="iconfont iconsearch"></view>
 				<view class="input"><input type="text" disabled placeholder="请输入搜索内容" /></view>
 			</view>
 		</view>
-		<view class="mp-height"></view>
+		<view class="mp-height"></view> -->
 		<!-- #endif -->
 		<!-- 头部轮播 -->
 		<!-- <view class="headerInput" >
 			<input type="text" placeholder="请输入搜索内容"/>
 		</view> -->
 		<view class="carousel-section" style="background-color: #fff;">
-			<view class="headerInput">
-				<input type="text" value="" placeholder="请输入搜索内容" />
+			<view class="headerInput" @click="clickSearch">
+				<image src="../../static/img/is.png" mode=""></image>请输入搜索内容
+				<!-- <input type="text" value="" placeholder="请输入搜索内容" /> -->
 			</view>
 			<!-- 标题栏和状态栏占位符 -->
 			<view class="titleNview-placing"></view>
@@ -36,57 +37,38 @@
 		</view>
 		<!-- 分类 -->
 		<view class="cate-section">
-			<view class="cate-item">
+			<view class="cate-item" @click="tabTo('/pages/category/category')">
 				<image src="/static/icon/in1.png"></image>
 				<text>全部分类</text>
 			</view>
-			<navigator url="/pages/product/groupBooking/index">
+			<navigator url="/pages/product/classify?type=2">
 				<view class="cate-item">
 					<image src="/static/icon/in2.png"></image>
 					<text>热销专区</text>
 				</view>
 			</navigator>
-			<navigator url="/pages/product/seckill">
+			<navigator url="/pages/money/USDT">
 				<view class="cate-item">
 					<image src="/static/icon/in3.png"></image>
 					<text>充值送积分</text>
 				</view>
 			</navigator>
-			<navigator url="/pages/index/sign">
-				<view class="cate-item">
+			<!-- <navigator url="/pages/index/sign"> -->
+				<view class="cate-item" @click="Toshare">
 					<image src="/static/icon/in4.png"></image>
 					<text>邀请有礼</text>
 				</view>
-			</navigator>
+			<!-- </navigator> -->
 		</view>
 		
 		<!-- 精选好物 -->
 		<view class="goods">
-			<hot-goods></hot-goods>
-			<!-- <view class="goods-top">
-				<image src="../../static/icon/jxgoods.png" mode=""></image>
-				<text>精选好物</text><text>买多赚多</text>
-			</view>
-			<view class="goods-list">
-				<view class="goods-list-top">
-						<view class="goods-list-title">
-							<text>精选好货 平台推荐</text><br>
-							<text>买到就是赚到</text>
-						</view>
-						<view class="goods-list-more">
-							<image src="../../static/icon/more.png"></image>
-						</view>
-				</view>
-				<view class="list">
-					<view class="list-g">
-						<scroll-view class="scroll-x" :scroll-x="true">
-							<view>A</view>
-							<view>B</view>
-							<view>C</view>
-						</scroll-view>
-					</view>
-				</view>
-			</view> -->
+			<hot-goods :goodsList="goodsList"></hot-goods>
+		</view>
+		<!-- <br> -->
+		<!-- 为你推荐 -->
+		<view class="recommend-h">
+			<recommend :bastList="bastList"></recommend>
 		</view>
 		<!-- <view class="ad-1"><image src="/static/temp/ad1.jpg" mode="scaleToFill"></image></view> -->
 		<!-- 可领取优惠券 -->
@@ -163,7 +145,7 @@
 		<!-- </view> -->
 		<!-- 拼团楼层 -->
 
-		<view class="recommend flex">
+		<!-- <view class="recommend flex">
 			<view class="recommend_list" @click="change(ls.id)" v-for="ls in recommend">
 				<view class="re_title" v-bind:class="{ active_color: ls.id == checkid }">{{ ls.re_title }}</view>
 				<view class="re_name" v-bind:class="{ active_color: ls.id == checkid }">{{ ls.re_name }}</view>
@@ -171,9 +153,9 @@
 			</view>
 		</view>
 		<swiper id="list-box" @change="listChange" :style="{ height: swiperHeight + 'px' }" :current="checkid">
-			<swiper-item>
+			<swiper-item> -->
 				<!-- <scroll-view scroll-y="true" class="list-box-h"> -->
-				<view class="guess-section">
+				<!-- <view class="guess-section">
 					<view v-for="(item, index) in bastList" :key="index" class="guess-item" @click="navToDetailPage(item)">
 						<view class="image-wrapper"><image :src="item.image" mode="scaleToFill"></image></view>
 						<text class="title clamp margin-c-20">{{ item.store_name }}</text>
@@ -188,10 +170,10 @@
 							</view>
 						</view>
 					</view>
-				</view>
+				</view> -->
 				<!-- </scroll-view> -->
-			</swiper-item>
-			<swiper-item>
+			<!-- </swiper-item> -->
+			<!-- <swiper-item>
 				<scroll-view scroll-y="true" class="list-box-h">
 					<view class="guess-section">
 						<view v-for="(item, index) in goodsList" :key="index" class="guess-item" @click="navToDetailPage(item)">
@@ -234,9 +216,9 @@
 				</scroll-view>
 			</swiper-item>
 		</swiper>
-
+ -->
 		<!-- 精品 商品 -->
-		<view class="f-header m-t">
+		<!-- <view class="f-header m-t">
 			<view class="f-left-icon"></view>
 			<view class="tit-box"><text class="tit">精品推荐</text></view>
 			<navigator url="/pages/product/classify?type=1"><text class="iconfont iconenter">更多</text></navigator>
@@ -256,9 +238,9 @@
 					</view>
 				</view>
 			</view>
-		</view>
+		</view> -->
 		<!-- 最新 商品 -->
-		<view class="f-header m-t">
+		<!-- <view class="f-header m-t">
 			<view class="f-left-icon"></view>
 			<view class="tit-box"><text class="tit">最新商品</text></view>
 			<navigator url="/pages/product/classify?type=3"><text class="iconfont iconenter">更多</text></navigator>
@@ -278,9 +260,9 @@
 					</view>
 				</view>
 			</view>
-		</view>
+		</view> -->
 		<!-- 促销 商品 -->
-		<view class="f-header m-t">
+		<!-- <view class="f-header m-t">
 			<view class="f-left-icon"></view>
 			<view class="tit-box"><text class="tit">促销商品</text></view>
 			<navigator url="/pages/product/classify?type=4"><text class="iconfont iconenter">更多</text></navigator>
@@ -300,7 +282,7 @@
 					</view>
 				</view>
 			</view>
-		</view>
+		</view> -->
 		<!-- 会员升级专区 -->
 		<!-- <view class="f-header m-t">
 			<view class="f-left-icon"></view>
@@ -366,6 +348,7 @@
 <script>
 import seckill from '../../components/seckill/seckill.vue';
 import hotGoods from './child/hotGoods.vue';
+import recommend from './child/recommend.vue'
 import { loadIndexs } from '@/api/index.js';
 import { getUserInfo } from '@/api/user.js';
 import { setCoupons } from '@/api/functionalUnit.js';
@@ -376,7 +359,8 @@ import { mapState } from 'vuex';
 export default {
 	components: {
 		seckill,
-		hotGoods
+		hotGoods,
+		recommend
 	},
 	watch: {
 		//自适应swiper高度
@@ -519,6 +503,12 @@ export default {
 	},
 	// #endif
 	methods: {
+		//跳转
+		tabTo(url) {
+			uni.switchTab({
+				url: url
+			})
+		},
 		//砍价商品推荐详情页
 		navToDetailPages(item) {
 			let id = item.product_id;
@@ -652,6 +642,7 @@ export default {
 					this.swiperLength = this.carouselList.length;
 					this.menusList = data.menus;
 					this.goodsList = goods.firstList; //最新商品
+					console.log(goods.firstList)
 					this.bastList = goods.bastList; //精品推荐
 					this.bastBanner = data.benefit; //促销单品
 					this.$set(this, 'couponArray', data.couponList); //保存卡包券
@@ -696,20 +687,35 @@ export default {
 	//搜索栏
 	.headerInput {
 		z-index: 9;
-		background-color: rgba(255,255,255,0.8);
+		background-color: rgba(255,255,255,0.5);
 		border-radius: 25rpx;
-		padding: 5rpx 28rpx;
+		padding: 8rpx 28rpx;
 		width: 90%;
 		position: relative;
 		top: 30px;
 		left: 5%;
 		text-align: center;
+		color: #fff;
+		image {
+			width: 34rpx;
+			height: 34rpx;
+			margin-bottom: -5rpx;
+			margin-right: 10rpx;
+		}
 	}
 	//精选好物
 	.goods {
 		margin-top: 20rpx;
 		background-color: #fff;
 		padding: 40rpx 5%;
+		margin-bottom: 20rpx;
+	}
+	//为你推荐
+	.recommend-h {
+		margin: 0rpx auto;
+		background-color: #fff;
+		padding-top: 30rpx;
+		font-size: 26rpx;
 	}
 .Mask {
 	width: 100%;
@@ -943,7 +949,7 @@ page {
 		.carousel-item {
 			width: 100%;
 			height: 100%;
-			padding: 0 28rpx;
+			padding: 0 5%;
 			overflow: hidden;
 		}
 
@@ -1156,12 +1162,10 @@ page {
 // 推荐
 .recommend {
 	width: 95%;
-	height: 155rpx;
 	margin: 0rpx auto;
 	padding-top: 30rpx;
 	font-size: 26rpx;
 	text-align: center;
-	color: #333333;
 	align-items: flex-start;
 
 	.recommend_list {

+ 427 - 0
pages/money/USDT.vue

@@ -0,0 +1,427 @@
+<template>
+	<view class="content">
+		<view class="header">
+			<view class="money">
+				<image src="../../static/icon/logo.png" mode=""></image>
+				<view class="">
+					3330.30
+				</view>
+			</view>
+			<view class="header-right">
+				<view>USDT互转</view>
+				<view @click="navTo('/pages/money/conversionIntegral')">转换积分</view>
+			</view>
+		</view>
+		<view class="list">
+			<scroll-view scroll-y="true" class="scroll-y">
+				<view class="item" v-for="l in list">
+					<view class="item-left">
+						<image src="../../static/icon/money.png" mode=""></image>
+						<text>{{l.type}}</text>
+						<text>{{l.time}}</text>
+					</view>
+					<view class="item-right">
+						{{l.money}}
+					</view>
+				</view>
+			</scroll-view>
+		</view>
+		<!-- <view class="row-box">
+			<view class="title">充值金额</view>
+			<view class="row">
+				<text class="tit">¥</text>
+				<input class="input" type="number" v-model="money" placeholder="请输入充值金额" placeholder-class="placeholder" />
+			</view>
+		</view> -->
+
+		<!-- <view class="list"> -->
+			<!-- <radio-group @change="tabRadio"> -->
+				<!-- #ifdef APP-PLUS -->
+				<!-- <label>
+					<view class="box">
+						<view class="icon iconfont iconzhifubao"></view>
+						<view class="title-box">
+							<view class="title"><text>支付宝充值</text></view>
+						</view>
+						<view class="right"><radio value="alipay" color="#5dbc7c" :checked="type == 'alipay'" /></view>
+					</view>
+				</label>
+				<label>
+					<view class="box">
+						<view class="icon iconfont iconweixin1"></view>
+						<view class="title-box">
+							<view class="title"><text>微信充值</text></view>
+							<view class="node"><text>真实姓名(代勇明)</text></view>
+						</view>
+						<view class="right"><radio value="weixin" color=" #5dbc7c" :checked="type == 'weixin'" /></view>
+					</view>
+				</label> -->
+				<!-- #endif -->
+			<!-- </radio-group> -->
+		<!-- </view> -->
+		<!-- <button class="add-btn up" :class="{ 'active-bg': payLoding }" @click="!payLoding ? confirm() : ''">确认充值</button> -->
+		<view class="footer">
+			<view class="recharge" @click="navTo('/pages/money/recharge')">
+				充币
+			</view>
+			<view class="withdrawal" @click="navTo('/pages/money/withdrawal')">
+				提币
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { getMoneyStyle } from '@/utils/rocessor.js';
+// #ifdef H5
+import { rechargeWechat } from '@/api/wallet.js';
+// #endif
+// #ifdef MP
+import { rechargeRoutine } from '@/api/wallet.js';
+// #endif
+import { mapState } from 'vuex';
+export default {
+	filters: {
+		getMoneyStyle
+	},
+	data() {
+		return {
+			type: 'weixin',
+			money: '', //充值金额
+			payLoding: false ,//是否加载中
+			list: [{
+				type: "充币",
+				time: "2018-05-12 16:24:45",
+				money: 9898,
+			},
+			{
+				type: "提币",
+				time: "2020-05-12 16:24:45",
+				money: 99,
+			},
+			{
+				type: "充币",
+				time: "2018-05-12 16:24:45",
+				money: 9898,
+			},
+			{
+				type: "充币",
+				time: "2018-05-12 16:24:45",
+				money: 9898,
+			},
+			{
+				type: "充币",
+				time: "2018-05-12 16:24:45",
+				money: 9898,
+			},
+			{
+				type: "充币",
+				time: "2018-05-12 16:24:45",
+				money: 9898,
+			},
+			{
+				type: "充币",
+				time: "2018-05-12 16:24:45",
+				money: 9898,
+			},
+			{
+				type: "充币",
+				time: "2018-05-12 16:24:45",
+				money: 9898,
+			}]
+		};
+	},
+	onLoad(options) {},
+	computed: {
+		// #ifdef H5
+		...mapState(['weichatObj'])
+		// #endif
+	},
+	methods: {
+		// 跳转
+		navTo(url) {
+			uni.navigateTo({
+				url: url
+			});
+		},
+		// 切换选中对象
+		tabRadio(e) {
+			this.type = e;
+		},
+		// 提交
+		confirm() {
+			let obj = this;
+			obj.payLoding = true;
+			// #ifdef H5
+			rechargeWechat({ price: this.money, from: this.type })
+				.then(e => {
+					let da = e.data.data;
+					obj.weichatObj.chooseWXPay({
+						timestamp: da.timestamp,
+						nonceStr: da.nonceStr,
+						package: da.package,
+						signType: da.signType,
+						paySign: da.paySign,
+						success: function(res) {
+							uni.showToast({
+								title: '充值成功',
+								duration: 2000,
+								position: 'top'
+							});
+						}
+					});
+					obj.payLoding = false;
+				})
+				.catch(e => {
+					obj.payLoding = false;
+					console.log(e);
+				});
+			// #endif
+			// #ifdef MP
+			rechargeRoutine({ price: this.money})
+				.then(e => {
+					let da = e.data;
+						wx.requestPayment({
+								timeStamp: da.timestamp,
+								nonceStr: da.nonceStr,
+								package: da.package,
+								signType: da.signType,
+								paySign: da.paySign,
+								success: function(res) {
+									uni.redirectTo({
+										url: '/pages/money/paySuccess'
+									});
+								},
+								
+							})
+					
+					obj.payLoding = false;
+				})
+				.catch(e => {
+					obj.payLoding = false;
+					console.log(e);
+				});
+			// #endif
+		},
+		//获取订单列表
+		loadData(source) {
+			console.log(source);
+			//这里是将订单挂载到tab列表下
+			let index = this.tabCurrentIndex;
+			let navItem = this.navList[index];
+			let state = navItem.state;
+			if (source === 'tabChange' && navItem.loaded === true) {
+				//tab切换只有第一次需要加载数据
+				return;
+			}
+			if (navItem.loadingType === 'loading') {
+				//防止重复加载
+				return;
+			}
+			navItem.loadingType = 'loading';
+			setTimeout(() => {
+				let orderList = [];
+				orderList.forEach(item => {
+					navItem.orderList.push(item);
+				});
+				//loaded新字段用于表示数据加载完毕,如果为空可以显示空白页
+				this.$set(navItem, 'loaded', true);
+				//判断是否还有数据, 有改为 more, 没有改为noMore
+				navItem.loadingType = 'more';
+			}, 600);
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page {
+	height: 100%;
+	background-color: #fff;
+}
+
+// .add-btn {
+// 	&.modified {
+// 		color: $base-color;
+// 	}
+// 	&.up {
+// 		background-color: $base-color;
+// 		color: #fff;
+// 	}
+// 	display: flex;
+// 	align-items: center;
+// 	justify-content: center;
+// 	width: 690rpx;
+// 	height: 80rpx;
+// 	margin: 0 auto;
+// 	margin-top: 30rpx;
+// 	font-size: $font-lg;
+// 	border-radius: 10rpx;
+// 	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+// }
+.content {
+	height: 100%;
+}
+.header {
+	height: 350rpx;
+	
+	.money {
+		text-align: center;
+		height: 300rpx;
+		padding: calc(50% - 300rpx) 0;
+		image {
+			width: 140rpx;
+			height: 140rpx;
+		}
+		view {
+			height: 60rpx;
+			line-height: 60rpx;
+		}
+	}
+	.header-right {
+		position: absolute;
+		right: 0;
+		top: 80rpx;		
+		view {
+			text-align: center;
+			border-radius: 10rpx 0 0 10rpx;
+			margin-bottom: 10rpx;
+			padding: 10rpx;
+			background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+			color: #fff;
+			font-size: 28rpx;
+		}
+		view:nth-child(2) {
+			background: linear-gradient(90deg, #FFB238 0%,  #FFE138 100%);
+		}
+	}
+}
+.list {
+	height: calc(100% - 350rpx - 100rpx - 10rpx);//350rpx头部100rpx底部30rpx
+	.scroll-y {
+		height: 100%;
+	}
+	.item {
+		display: flex;
+		justify-content: space-between;
+		padding: 50rpx;
+		margin: 30rpx;
+		border-radius: 20rpx;
+		box-shadow:0 0 20rpx 6rpx #f1f1f1;
+		.item-left {
+			image {
+				width: 35rpx;
+				height: 40rpx;
+				margin-bottom: -10rpx;
+				margin-right: 20rpx;
+			}
+			text:nth-child(2) {
+				color: #333333;
+				margin-right: 20rpx;
+			}
+			text:nth-child(3) {
+				color: #999999;
+				font-size: 20rpx;
+			}
+		}
+		.item-right {
+			color: #FB3A2F;
+			font-size: 38rpx;
+		}
+		
+	}
+}
+// .row-box {
+// 	margin-top: 30rpx;
+// 	padding: 20rpx 30rpx;
+// 	background: #fff;
+// 	.title {
+// 		font-size: $font-base + 2rpx;
+// 		color: $font-color-dark;
+// 	}
+// 	.row {
+// 		display: flex;
+// 		align-items: center;
+// 		position: relative;
+// 		height: 80rpx;
+// 		.tit {
+// 			flex-shrink: 0;
+// 			width: 40rpx;
+// 			font-size: 30rpx;
+// 			color: $font-color-dark;
+// 		}
+// 		.input {
+// 			flex: 1;
+// 			font-size: 30rpx;
+// 			color: $font-color-dark;
+// 		}
+// 		.iconlocation {
+// 			font-size: 36rpx;
+// 			color: $font-color-light;
+// 		}
+
+// 		.buttom {
+// 			color: $font-color;
+// 			font-size: $font-base;
+// 		}
+// 	}
+// }
+// .list {
+// 	padding-left: 30rpx;
+// 	margin-top: 30rpx;
+// 	background-color: #ffffff;
+// 	.box {
+// 		display: flex;
+// 		align-items: center;
+// 		width: 100%;
+// 		height: 120rpx;
+// 		border-bottom: 1px solid $border-color-light;
+// 		.icon {
+// 			font-size: 48rpx;
+// 			padding-right: 20rpx;
+// 		}
+// 		.iconweixin1 {
+// 			color: #18bf16;
+// 		}
+// 		.iconzhifubao {
+// 			color: #08aaec;
+// 		}
+// 		.title-box {
+// 			flex-grow: 1;
+// 			text-align: left;
+// 			.title {
+// 				font-size: $font-base + 2rpx;
+// 				color: $font-color-base;
+// 			}
+// 			.node {
+// 				font-size: $font-sm;
+// 				color: $font-color-light;
+// 			}
+// 		}
+// 	}
+// }
+// /deep/ .uni-radio-input {
+// 	width: 45rpx;
+// 	height: 45rpx;
+// }
+.footer {
+	height: 100rpx;
+	position: absolute;
+	bottom: 0;
+	display: flex;
+	text-align: center;
+	width: 100%;
+	view {
+		width: 50%;
+		line-height: 100rpx;
+		// padding: 20rpx;
+		color: #fff;
+	}
+	.recharge {
+		background-color: #FFB238;
+	}
+	.withdrawal {
+		background-color: #438BED;
+	}
+}
+</style>

+ 137 - 0
pages/money/conversionIntegral.vue

@@ -0,0 +1,137 @@
+<template>
+	<view class="conversionIntegral">
+		<view class="header">
+				<text>实时汇率</text><br>
+				<text>1USDT≈XXXX积分</text>
+		</view>
+		<view class="title">
+			<view class="title-t">
+				兑换币种
+			</view>
+		</view>
+		<view class="content">
+			<text>兑出币种</text>
+			<view class="it">
+				<view class="left">
+					<image src="../../static/icon/logo.png"></image>
+					USDT
+				</view>
+				<view class="center">
+					<image src="../../static/icon/sd1.png" mode=""></image>
+				</view>
+				<view class="right">
+					<input type="number" value="" placeholder="请输入需要兑换的数量" />
+				</view>
+			</view>
+			<view class="img">
+				<image src="../../static/img/change.png" mode=""></image>
+			</view>
+			<view class="it">
+				<view class="left">
+					<image src="../../static/icon/jf.png"></image>
+					积分
+				</view>
+				<view class="center2">
+					<image src="../../static/icon/sd2.png" mode=""></image>
+				</view>
+				<view class="right">
+					<text>0.00</text>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+</script>
+
+<style lang="scss" scoped>
+	.conversionIntegral {
+		.header {
+			background-color: #fff;
+			padding: 30rpx;
+			text:nth-child(1) {
+				color: #0F253A;
+				font-size: 28rpx;
+			}
+			text:nth-child(3) {
+				color: #6D7C88;
+				font-size: 25rpx;
+			}
+		}
+		.title {
+			background-color: #fff;
+			padding: 30rpx;
+			margin-bottom: 1rpx;
+			.title-t {
+				font-weight: Medium;
+				padding: 0 15rpx;
+				color: #333333;
+				border-left: solid 2rpx #75EFFA;
+			}
+		}
+		.content {
+			background-color: #fff;
+			padding: 30rpx;
+			text {
+				font-size: 25rpx;
+			}
+			.img {
+				text-align: center;
+				image {
+					width: 80rpx;
+					height: 80rpx;
+				}
+			}
+			.it {
+				position: relative;
+				padding: 80rpx 20rpx;
+				display: flex;
+				justify-content: space-between;
+				.left {
+					font-family: PingFang-SC-Medium;
+					font-weight: 500;
+					color: #0F253A;
+					font-size: 30rpx;
+					image {
+						margin-right: 20rpx;
+						margin-bottom: -13rpx;
+						width: 60rpx;
+						height: 60rpx;
+					}
+				}
+				.center {
+					position: absolute;
+					right: 400rpx;
+					// font-weight: bold;
+					padding-top: 10rpx;
+					image {
+						width: 20rpx;
+						height: 15rpx;
+					}
+				}
+				.center2 {
+					padding-top: 10rpx;
+					position: absolute;
+					right: 390rpx;
+					image {
+						width: 35rpx;
+						height: 42rpx;
+					}
+				}
+				.right {
+					padding: 10rpx 0;
+					width: 340rpx;
+					border-bottom: solid 1rpx #ECECEC;
+					color: #6D7C88;
+						font-size: 28rpx;
+					input {
+						font-size: 28rpx;
+					}
+					text {
+					}
+				}
+			}
+		}
+	}
+</style>

+ 4 - 4
pages/money/pay.vue

@@ -11,13 +11,13 @@
 					<text class="tit">微信支付</text>
 					<text>推荐使用微信支付</text>
 				</view>
-				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 1"></radio></label>
+				<label class="radio"><radio value="" color="#ff4c4c" :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>
+				<label class="radio"><radio value="" color="#ff4c4c" :checked="payType == 2"></radio></label>
 			</view>
 			<!-- #endif -->
 			<view class="type-item" @click="changePayType(3)">
@@ -26,7 +26,7 @@
 					<text class="tit">余额支付</text>
 					<text>可用余额 ¥{{ now_money }}</text>
 				</view>
-				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 3"></radio></label>
+				<label class="radio"><radio value="" color="#ff4c4c" :checked="payType == 3"></radio></label>
 			</view>
 		</view>
 		<text class="mix-btn" :class="{ clickbg: payLoding }" @click="!payLoding ? confirm() : ''">确认支付</text>
@@ -359,7 +359,7 @@ export default {
 	margin: 80upx auto 30upx;
 	font-size: $font-lg;
 	color: #fff;
-	background-color: $base-color;
+	background-color: #438BED;
 	border-radius: 10upx;
 	/* box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4); */
 }

+ 70 - 244
pages/money/recharge.vue

@@ -1,264 +1,90 @@
 <template>
-	<view class="content">
-		<view class="row-box">
-			<view class="title">充值金额</view>
-			<view class="row">
-				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="money" placeholder="请输入充值金额" placeholder-class="placeholder" />
+	<view class="recharge">
+		<view class="title">
+			<view class="title-t">
+				充币二维码
 			</view>
 		</view>
-
-		<view class="list">
-			<radio-group @change="tabRadio">
-				<!-- #ifdef APP-PLUS -->
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconzhifubao"></view>
-						<view class="title-box">
-							<view class="title"><text>支付宝充值</text></view>
-						</view>
-						<view class="right"><radio value="alipay" color="#5dbc7c" :checked="type == 'alipay'" /></view>
-					</view>
-				</label>
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconweixin1"></view>
-						<view class="title-box">
-							<view class="title"><text>微信充值</text></view>
-							<view class="node"><text>真实姓名(代勇明)</text></view>
-						</view>
-						<view class="right"><radio value="weixin" color=" #5dbc7c" :checked="type == 'weixin'" /></view>
-					</view>
-				</label>
-				<!-- #endif -->
-			</radio-group>
+		
+		<view class="content">
+			请转入USDT<br>
+			<image src="../../static/error/errorImage.jpg" mode=""></image>
+			<view class="button" @click="downLoad">保存二维码</view>
 		</view>
-		<button class="add-btn up" :class="{ 'active-bg': payLoding }" @click="!payLoding ? confirm() : ''">确认充值</button>
 	</view>
 </template>
 
 <script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-// #ifdef H5
-import { rechargeWechat } from '@/api/wallet.js';
-// #endif
-// #ifdef MP
-import { rechargeRoutine } from '@/api/wallet.js';
-// #endif
-import { mapState } from 'vuex';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	data() {
-		return {
-			type: 'weixin',
-			money: '', //充值金额
-			payLoding: false //是否加载中
-		};
-	},
-	onLoad(options) {},
-	computed: {
-		// #ifdef H5
-		...mapState(['weichatObj'])
-		// #endif
-	},
-	methods: {
-		// 跳转
-		navTo(url) {
-			uni.navigateTo({
-				url: url
-			});
-		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e;
-		},
-		// 提交
-		confirm() {
-			let obj = this;
-			obj.payLoding = true;
-			// #ifdef H5
-			rechargeWechat({ price: this.money, from: this.type })
-				.then(e => {
-					let da = e.data.data;
-					obj.weichatObj.chooseWXPay({
-						timestamp: da.timestamp,
-						nonceStr: da.nonceStr,
-						package: da.package,
-						signType: da.signType,
-						paySign: da.paySign,
-						success: function(res) {
-							uni.showToast({
-								title: '充值成功',
-								duration: 2000,
-								position: 'top'
-							});
-						}
-					});
-					obj.payLoding = false;
-				})
-				.catch(e => {
-					obj.payLoding = false;
-					console.log(e);
-				});
-			// #endif
-			// #ifdef MP
-			rechargeRoutine({ price: this.money})
-				.then(e => {
-					let da = e.data;
-						wx.requestPayment({
-								timeStamp: da.timestamp,
-								nonceStr: da.nonceStr,
-								package: da.package,
-								signType: da.signType,
-								paySign: da.paySign,
-								success: function(res) {
-									uni.redirectTo({
-										url: '/pages/money/paySuccess'
-									});
-								},
-								
-							})
-					
-					obj.payLoding = false;
-				})
-				.catch(e => {
-					obj.payLoding = false;
-					console.log(e);
-				});
-			// #endif
-		},
-		//获取订单列表
-		loadData(source) {
-			console.log(source);
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
+	export default {
+		data() {
+			return {
+				url: ''
 			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
+		},
+		methods: {
+			//下载
+			downLoad() {
+				// const obj = this
+				// uni.downloadFile({
+				// 	url: url,
+				// 	success(res) {
+				// 		if (res.errMsg == 'downloadFile:ok') {
+				// 			obj.src = res.tempFilePath;
+				// 			// 生成画布
+				// 			obj.loadImg(obj.src);
+				// 			uni.hideLoading();
+				// 		}
+				// 		console.log(res);
+				// 	},
+				// 	fail(e) {
+				// 		console.log(e);
+				// 	}
+				// })
 			}
-			navItem.loadingType = 'loading';
-			setTimeout(() => {
-				let orderList = [];
-				orderList.forEach(item => {
-					navItem.orderList.push(item);
-				});
-				//loaded新字段用于表示数据加载完毕,如果为空可以显示空白页
-				this.$set(navItem, 'loaded', true);
-				//判断是否还有数据, 有改为 more, 没有改为noMore
-				navItem.loadingType = 'more';
-			}, 600);
 		}
 	}
-};
 </script>
 
-<style lang="scss">
-page {
-	height: 100%;
-}
-
-.add-btn {
-	&.modified {
-		color: $base-color;
-	}
-	&.up {
-		background-color: $base-color;
-		color: #fff;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-.row-box {
-	margin-top: 30rpx;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	.title {
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-	}
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		height: 80rpx;
-		.tit {
-			flex-shrink: 0;
-			width: 40rpx;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.input {
-			flex: 1;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.iconlocation {
-			font-size: 36rpx;
-			color: $font-color-light;
-		}
-
-		.buttom {
-			color: $font-color;
-			font-size: $font-base;
-		}
-	}
-}
-.list {
-	padding-left: 30rpx;
-	margin-top: 30rpx;
-	background-color: #ffffff;
-	.box {
-		display: flex;
-		align-items: center;
-		width: 100%;
-		height: 120rpx;
-		border-bottom: 1px solid $border-color-light;
-		.icon {
-			font-size: 48rpx;
-			padding-right: 20rpx;
-		}
-		.iconweixin1 {
-			color: #18bf16;
-		}
-		.iconzhifubao {
-			color: #08aaec;
+<style lang="scss" scoped>
+	.recharge {
+		font-family: PingFang-SC-Bold;
+		.title {
+			background-color: #fff;
+			padding: 30rpx;
+			margin-bottom: 1rpx;
+			.title-t {
+				// margin: 30rpx;
+				padding: 0 15rpx;
+				color: #333333;
+				font-weight: bold;
+				border-left: solid 2rpx #75EFFA;
+			}
 		}
-		.title-box {
-			flex-grow: 1;
-			text-align: left;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-base;
+		.content {
+			padding: 50rpx;
+			background-color: #fff;
+			text-align: center;
+			color: #333333;
+			font-weight: bold;
+			image {
+				margin-top: 20rpx;
+				width: 200rpx;
+				height: 200rpx;
 			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
+			.button {
+				margin: 0 auto;
+				width: 450rpx;
+				background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+				background-color: #438BED;
+				height: 60rpx;
+				line-height: 60rpx;
+				border-radius: 50rpx;
+				color: #fff;
+				font-size: 30rpx;
+				margin-top: 20rpx;
+				font-weight: 500;
 			}
 		}
+		
 	}
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
-
-.active-bg {
-	background-color: $color-gray !important;
-}
 </style>

+ 185 - 80
pages/money/withdrawal.vue

@@ -1,29 +1,67 @@
 <template>
 	<view class="content">
-		<uni-notice-bar single="true" text="每月25号到月底可提现上月结算余额"></uni-notice-bar>
+		<!-- <uni-notice-bar single="true" text="每月25号到月底可提现上月结算余额"></uni-notice-bar> -->
 		<view class="content-money">
 			<view class="flex ">
 				<view class="buttom">
 					<view class="icon">{{ money | getMoneyStyle }}</view>
-					<text class="text">可提现金额</text>
+					<text class="text">可用额度</text>
 				</view>
-				<view class="interval"></view>
+				<!-- <view class="interval"></view>
 				<view class="buttom">
 					<view class=" icon">{{ freeze | getMoneyStyle }}</view>
 					<text class="text">待审核提现金额</text>
-				</view>
+				</view> -->
+			</view>
+		</view>
+		<view class="title">
+			<view class="title-t">
+				提现信息
+			</view>
+		</view>
+		<view class="information">
+			<view class="left">
+				二维码
+			</view>
+			<view class="right">
+				<image src="../../static/img/add.png" @click="updataImg" v-if="!imgUrl"></image>
+				<image :src="imgUrl" @click="updataImg" v-else></image>
+			</view>
+		</view>
+		<view class="information">
+			<view class="left">
+				提现数量
+			</view>
+			<view class="right">
+				<input type="text" value="" placeholder="输入所需提币数量(最低 USTD起提)"/>
+			</view>
+		</view>
+		<view class="information">
+			<view class="left">
+				手续费
+			</view>
+			<view class="right">
+				收取 %手续费
 			</view>
 		</view>
-		<view class="row-box">
+		<view class="information">
+			<view class="left">
+				实际到账数量
+			</view>
+			<view class="right"style="color: #000;line-height: 45rpx;">
+				0.00
+			</view>
+		</view>
+		<!-- <view class="row-box">
 			<view class="title">提现金额</view>
 			<view class="row">
 				<text class="tit">¥</text>
 				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'" placeholder-class="placeholder" />
 				<view class="buttom" @click="withdrawal = money">全部提现</view>
 			</view>
-		</view>
+		</view> -->
 		<!-- #ifndef MP-WEIXIN -->
-		<view class="list" v-if="!weichatBsrowser">
+		<!-- <view class="list" v-if="!weichatBsrowser">
 			<radio-group @change="tabRadio">
 				<label>
 					<view class="box">
@@ -65,10 +103,13 @@
 					</view>
 				</label>
 			</radio-group>
-		</view>
+		</view> -->
 		<!-- #endif -->
-		<button class="add-btn up" @click="confirm">提交申请</button>
-		<button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button>
+		<view class="button">
+			确认提现
+		</view>
+		<!-- <button class="add-btn up" @click="confirm">提交申请</button> -->
+		<!-- <button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button> -->
 	</view>
 </template>
 
@@ -92,47 +133,68 @@ export default {
 			minPrice: '', //最少提现金额
 			aliData: {},
 			bankData: {},
+			imgUrl: "",
 			// #ifdef H5
 			weichatBsrowser: false
 			// #endif
 		};
 	},
-	onLoad(options) {
-		// #ifdef H5
-		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
-		// #endif
-		//加载提现信息
-		this.loadData();
-		// 加载提款账号信息
-		this.loadAli();
-		this.loadBank();
-	},
+	// onLoad(options) {
+	// 	// #ifdef H5
+	// 	this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+	// 	// #endif
+	// 	//加载提现信息
+	// 	this.loadData();
+	// 	// 加载提款账号信息
+	// 	this.loadAli();
+	// 	this.loadBank();
+	// },
 	methods: {
-		// 更新数据
-		dataUp(){
-			this.loadAli();
-			this.loadBank();
-		},
-		//加载数据
-		async loadAli(source) {
-			aliInfo({}).then(e => {
-				this.aliData = e.data;
-			});
-		},
-		// 加载银行卡信息
-		async loadBank() {
-			bankInfo({}).then(e => {
-				this.bankData = e.data;
-			});
-		},
-		// 加载余额信息
-		async loadData() {
-			extractBank({}).then(({ data }) => {
-				this.money = data.moneyCount;//可提现余额
-				this.minPrice = data.minPrice;//最小提现
-				this.freeze =data.inmoneyCount//提现中的余额
+		//上传二维码
+		updataImg() {
+			uni.chooseImage({
+			    success: (chooseImageRes) => {
+			        this.imgUrl = chooseImageRes.tempFilePaths[0];
+					console.log(this.imgUrl)
+			        // uni.uploadFile({
+			        //     url: 'https://www.example.com/upload', //仅为示例,非真实的接口地址
+			        //     filePath: tempFilePaths[0],
+			        //     name: 'file',
+			        //     formData: {
+			        //         'user': 'test'
+			        //     },
+			        //     success: (uploadFileRes) => {
+			        //         console.log(uploadFileRes.data);
+			        //     }
+			        // });
+			    }
 			});
 		},
+		// 更新数据
+		// dataUp(){
+		// 	this.loadAli();
+		// 	this.loadBank();
+		// },
+		// //加载数据
+		// async loadAli(source) {
+		// 	aliInfo({}).then(e => {
+		// 		this.aliData = e.data;
+		// 	});
+		// },
+		// // 加载银行卡信息
+		// async loadBank() {
+		// 	bankInfo({}).then(e => {
+		// 		this.bankData = e.data;
+		// 	});
+		// },
+		// // 加载余额信息
+		// async loadData() {
+		// 	extractBank({}).then(({ data }) => {
+		// 		this.money = data.moneyCount;//可提现余额
+		// 		this.minPrice = data.minPrice;//最小提现
+		// 		this.freeze =data.inmoneyCount//提现中的余额
+		// 	});
+		// },
 		// 跳转
 		navTo(url) {
 			uni.navigateTo({
@@ -140,39 +202,39 @@ export default {
 			});
 		},
 		// 切换选中对象
-		tabRadio(e) {
-			this.type = e.detail.value;
-		},
+		// tabRadio(e) {
+		// 	this.type = e.detail.value;
+		// },
 		// 提交
-		confirm() {
-			let data = {
-				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
-				money: this.withdrawal, //金额
-				money_type: 1//0佣金1余额
-			}
-			if (this.type=='alipay') {
-				data.name = this.aliData.fullname;
-				data.alipay_code = this.aliData.alino;
-			}
-			if (this.type=='bank') {
-				data.name = this.bankData.fullname;
-				data.bankname = this.bankData.bank;
-				data.cardnum = this.bankData.bankno;
-			}
+		// confirm() {
+		// 	let data = {
+		// 		extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
+		// 		money: this.withdrawal, //金额
+		// 		money_type: 1//0佣金1余额
+		// 	}
+		// 	if (this.type=='alipay') {
+		// 		data.name = this.aliData.fullname;
+		// 		data.alipay_code = this.aliData.alino;
+		// 	}
+		// 	if (this.type=='bank') {
+		// 		data.name = this.bankData.fullname;
+		// 		data.bankname = this.bankData.bank;
+		// 		data.cardnum = this.bankData.bankno;
+		// 	}
 			
 			
-			extractCash(data)
-				.then(e => {
-					uni.showToast({
-						title: '提交成功',
-						duration: 2000,
-						position: 'top'
-					});
-				})
-				.catch(e => {
-					console.log();
-				});
-		}
+		// 	extractCash(data)
+		// 		.then(e => {
+		// 			uni.showToast({
+		// 				title: '提交成功',
+		// 				duration: 2000,
+		// 				position: 'top'
+		// 			});
+		// 		})
+		// 		.catch(e => {
+		// 			console.log();
+		// 		});
+		// }
 	}
 };
 </script>
@@ -192,12 +254,7 @@ page {
 	border-radius: $border-radius-sm;
 	.buttom {
 		font-size: $font-lg;
-		width: 50%;
-	}
-	.interval {
-		width: 2px;
-		height: 60rpx;
-		background-color: #eeeeee;
+		width: 100%;
 	}
 	.icon {
 		background-size: 100%;
@@ -211,7 +268,55 @@ page {
 		color: $font-color-light;
 	}
 }
-
+.title {
+	background-color: #fff;
+	padding: 30rpx;
+	margin-bottom: 5rpx;
+	font-weight: bold;
+	margin-top: 20rpx;
+	.title-t {
+		font-weight: Medium;
+		padding: 0 15rpx;
+		color: #333333;
+		border-left: solid 3rpx #44BFEC;
+	}
+}
+.information {
+	display: flex;
+	background-color: #fff;
+	padding: 30rpx;
+	margin-bottom: 5rpx;
+	.left {
+		width: 350rpx;
+		font-size: 28rpx;
+		color: #333333;
+	}
+	.right {
+		font-size: 25rpx;
+		color: #999999;
+		width: 100%;
+		input {
+			font-size: 25rpx;
+		}
+		image {
+			width: 120rpx;
+			height: 120rpx;
+		}
+	}
+}
+.button {
+	width: 80%;
+	text-align: center;
+	margin: 0 auto;
+	background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+	background-color: #438BED;
+	height: 80rpx;
+	border-radius: 50rpx;
+	line-height: 80rpx;
+	color: #fff;
+	font-size: 30rpx;
+	margin-top: 80rpx;
+}
 .row-box {
 	margin-top: 30rpx;
 	padding: 20rpx 30rpx;

+ 63 - 26
pages/order/createOrder.vue

@@ -1,8 +1,8 @@
 <template>
 	<view>
-		<view class="navbar">
+		<!-- <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>
+		</view> -->
 
 		<!-- 地址 -->
 		<navigator v-if="tabCurrentIndex == 0" url="/pages/set/address?source=1" class="address-section">
@@ -13,7 +13,9 @@
 						<text class="name">{{ addressData.real_name }}</text>
 						<text class="mobile">{{ addressData.phone }}</text>
 					</view>
-					<text class="address">{{ addressData.province + addressData.city + addressData.district }} {{ addressData.detail }}</text>
+					<text class="address">
+						{{ addressData.province }} {{ addressData.city }} {{ addressData.district }} {{ addressData.detail }}
+					</text>
 				</view>
 				<text class="iconfont iconenter"></text>
 			</view>
@@ -26,7 +28,7 @@
 
 			<image class="a-bg" :src="addressImg"></image>
 		</navigator>
-		<navigator v-if="tabCurrentIndex == 1" url="/pages/address/shopList" class="address-section">
+		<!-- <navigator v-if="tabCurrentIndex == 1" url="/pages/address/shopList" class="address-section">
 			<view class="order-content" v-if="shopAddress.name">
 				<text class="iconfont iconlocation"></text>
 				<view class="cen">
@@ -46,7 +48,7 @@
 			</view>
 
 			<image class="a-bg" :src="addressImg"></image>
-		</navigator>
+		</navigator> -->
 
 		<view class="goods-section" v-for="(ls, ind) in shopList" :key="ind">
 			<!-- <view class="g-header b-b">
@@ -61,7 +63,8 @@
 					<text class="spec">{{ ls.productInfo.attrInfo ? ls.productInfo.attrInfo.suk : '默认' }}</text>
 					<view class="price-box">
 						<text class="price">¥{{ ls.productInfo.attrInfo ? ls.productInfo.attrInfo.price : ls.productInfo.price }}</text>
-						<text class="number">{{ 'x ' + ls.cart_num + (ls.productInfo.unit_name || '') }}</text>
+						<text class="ot-price">¥{{ ls.productInfo.attrInfo ? ls.productInfo.attrInfo.ot_price : ls.productInfo.ot_price }}</text>
+						<!-- <text class="number">{{ 'x ' + ls.cart_num + (ls.productInfo.unit_name || '') }}</text> -->
 						<!-- <view><text class="price">¥{{lss.price}}</text></view> -->
 						<!-- <view class="number">
 							<uni-number-box class="step" :value="lss.number" :index="indx" @eventChange="numberChange"></uni-number-box>
@@ -72,7 +75,7 @@
 		</view>
 
 		<!-- 优惠明细 -->
-		<view class="yt-list">
+		<!-- <view class="yt-list">
 			<view class="yt-list-cell b-b" @click="couponListshow ? toggleMask('show') : ''">
 				<view class="cell-icon">券</view>
 				<text class="cell-tit clamp">优惠券</text>
@@ -86,41 +89,59 @@
 				<text class="cell-tit clamp">商家促销</text>
 				<text class="cell-tip disabled">满{{ moneyAll.storeFreePostage }}包邮</text>
 			</view>
-		</view>
+		</view> -->
 		<!-- 金额明细 -->
-		<view class="yt-list">
+		<!-- <view class="yt-list"> -->
 			<!-- <view class="yt-list-cell b-b">
 				<text class="cell-tit clamp">优惠金额</text>
 				<text class="cell-tip red">-¥35</text>
 			</view> -->
-			<view class="yt-list-cell b-b">
+			<!-- <view class="yt-list-cell b-b">
 				<text class="cell-tit clamp">积分抵扣{{ '(当前积分:' + integralAll + ')' }}</text>
 				<view class="cell-tip"><radio @click="checkedPoints = !checkedPoints" color=" #5dbc7c" :checked="checkedPoints" /></view>
-			</view>
-			<view class="yt-list-cell b-b">
+			</view> -->
+			<!-- <view class="yt-list-cell b-b">
 				<text class="cell-tit clamp">运费</text>
 				<text class="cell-tip">{{ Postage }}</text>
-			</view>
-			<view class="yt-list-cell b-b">
+			</view> -->
+			<!-- <view class="yt-list-cell b-b">
 				<text class="cell-tit clamp">备注</text>
 				<input class="desc" type="text" v-model="desc" placeholder="请填写备注信息" placeholder-class="placeholder" />
-			</view>
-		</view>
-		<view class="yt-list">
+			</view> -->
+		<!-- </view> -->
+		<!-- <view class="yt-list">
 			<view class="yt-list-cell b-b">
 				<text class="cell-tit clamp">商品金额</text>
 				<text class="cell-tip">¥{{ payAllMoney }}</text>
 			</view>
-			<view class="yt-list-cell b-b" v-if="checkedPoints && integralShow">
+			<view class="yt-list-cell b-b" v-if="integralMoney" v-if="checkedPoints && integralShow"> 
 				<text class="cell-tit clamp">积分抵扣</text>
 				<text class="cell-tip">-¥{{ integralMoney }}</text>
 			</view>
-			<view class="yt-list-cell b-b" v-if="moneyAll.vipPrice > 0">
+			<view class="yt-list-cell b-b"  v-if="moneyAll.vipPrice > 0">
+				<text class="cell-tit clamp">VIP优惠</text>
+				<text class="cell-tip">-¥{{ moneyAll.vipPrice }}</text>
+			</view>
+		</view> -->
+		
+		<view class="price-list">
+			<view class="item">
+				<text class="cell-tit clamp">商品金额</text>
+				<text class="cell-tip">¥{{ payAllMoney }}</text>
+			</view>
+			<view class="item">
+				<text class="cell-tit clamp">运费</text>
+				<text class="cell-tip">{{ Postage }}</text>
+			</view>
+			<view class="item" v-if="integralMoney">
+				<text class="cell-tit clamp">积分抵扣</text>
+				<text class="cell-tip">-¥{{ integralMoney }}</text>
+			</view>
+			<view class="item" v-if="moneyAll.vipPrice > 0">
 				<text class="cell-tit clamp">VIP优惠</text>
 				<text class="cell-tip">-¥{{ moneyAll.vipPrice }}</text>
 			</view>
 		</view>
-
 		<!-- 底部 -->
 		<view class="footer">
 			<view class="price-content">
@@ -456,7 +477,6 @@ page {
 	.address {
 		margin-top: 16rpx;
 		margin-right: 20rpx;
-		color: $font-color-light;
 	}
 
 	.icon-you {
@@ -474,9 +494,8 @@ page {
 		height: 5rpx;
 	}
 }
-
 .goods-section {
-	margin-top: 16rpx;
+	margin-top: 20rpx;
 	background: #fff;
 	padding-bottom: 1px;
 
@@ -540,6 +559,11 @@ page {
 				margin-bottom: 4rpx;
 				color: $color-red;
 			}
+			.ot-price {
+				font-size: 26rpx;
+				color: #909399;
+				text-decoration: line-through
+			}
 			.number {
 				font-size: 26rpx;
 				color: $font-color-base;
@@ -552,10 +576,23 @@ page {
 		}
 	}
 }
-.yt-list {
-	margin-top: 16rpx;
+.price-list {
+	margin-top: 20rpx;
+	padding: 10rpx;
 	background: #fff;
+	.item {
+		font-size: 26rpx;
+		color: #909399;
+		display: flex;
+		justify-content: space-between;
+		padding: 5rpx 30rpx;
+		align-items: center;
+	}
 }
+// .yt-list {
+// 	margin-top: 16rpx;
+// 	background: #fff;
+// }
 .yt-list-cell {
 	display: flex;
 	align-items: center;
@@ -706,7 +743,7 @@ page {
 		height: 100%;
 		color: #fff;
 		font-size: 32rpx;
-		background-color: $base-color;
+		background-color: #438BED;
 		&.submitNo {
 			background-color: $font-color-disabled;
 		}

+ 73 - 28
pages/product/classify.vue

@@ -1,14 +1,14 @@
 <template>
 	<view class="container">
 		<!-- 头部轮播 -->
-		<view class="carousel-section">
+		<!-- <view class="carousel-section">
 			<swiper class="carousel" autoplay="true" duration="400" interval="5000">
 				<swiper-item v-for="(item, index) in bannerImg" :key="index" class="carousel-item" @click="bannerNavToUrl(item)">
 					<image :src="item.img" mode=" scaleToFill" />
 				</swiper-item>
 			</swiper>
-		</view>
-		<view class="type-title-box flex">
+		</view> -->
+		<!-- <view class="type-title-box flex">
 			<view class="title-border"></view>
 			<view class="title-content">
 				<text v-if="type == 1">精品推荐</text>
@@ -17,27 +17,27 @@
 				<text v-if="type == 4">促销单品</text>
 			</view>
 			<view class="title-border"></view>
-		</view>
+		</view> -->
 
 		<view class="goodsList-box">
 			<view class="goodsList-item flex" :key="ind" v-for="(ls, ind) in list">
 				<image :src="ls.image" mode=" scaleToFill"></image>
 				<view class="goodsList-content">
 					<view class="title">
-						<text>{{ ls.store_name }}</text>
+						<text class="clamp2">{{ ls.store_name }}</text>
 					</view>
 					<view class="goods-money flex">
 						<view class="money-box">
-							<view class="money">
-								<text class="font-size-sm">¥</text>
-								{{ ls.price }}
-							</view>
-							<view class="otMoney-box">
-								<text class="otMoney">¥{{ ls.ot_price }}</text>
-								<text class="sales">已售{{ ls.sales }}件</text>
-							</view>
+							<text class="otMoney">¥{{ ls.ot_price }}</text>
+							<image src="@/static/icon/decline.png"></image>
+							<text class="decline">直降{{ ls.ot_price - ls.price}}元</text>
+							<!-- <view class="otMoney-box"> -->
+								<view class="money">¥{{ ls.price }}</view>
+								<!-- <text class="sales">已售{{ ls.sales }}件</text> -->
+							<!-- </view> -->
 						</view>
-						<view @click="navTo(ls)" class="cart iconfont iconcart"></view>
+						<view class="button" @click="navTo(ls)">立即购买</view>
+						<!-- <view @click="navTo(ls)" class="cart iconfont iconcart"></view> -->
 					</view>
 				</view>
 			</view>
@@ -51,7 +51,8 @@ export default {
 	data() {
 		return {
 			list: [],
-			bannerImg: []
+			bannerImg: [],
+			title: '',
 		};
 	},
 	onLoad(option) {
@@ -59,8 +60,30 @@ export default {
 		this.type = option.type;
 		// 加载基础数据
 		this.loadData();
+	},
+	created() {
+		this.getTitle()
+	},
+	mounted() {
+		
 	},
 	methods: {
+		//动态改变标头
+		getTitle() {
+			let title = ''
+			if(this.type == 1) {
+				title = "精选好货"
+			}else if(this.type == 2) {
+				title = "热销专区"
+			}else if(this.type == 3) {
+				title = "收藏夹"
+			}else {
+				title = "促销单品"
+			}
+			uni.setNavigationBarTitle({
+				title: title
+			});
+		},
 		navTo: function(ls) {
 			uni.navigateTo({
 				url: '/pages/product/product?id=' + ls.id
@@ -143,8 +166,11 @@ page {
 }
 // 商品列表
 .goodsList-box {
+	padding: 30rpx;
 	.goodsList-item {
-		margin-bottom: 40rpx;
+		box-shadow:0 0 20rpx 6rpx #f1f1f1;
+		border-radius: 10rpx;
+		margin-bottom: 30rpx;
 		background-color: #ffffff;
 		padding: 30rpx;
 		image {
@@ -161,7 +187,7 @@ page {
 			.title {
 				font-size: $font-base;
 				color: $font-color-dark;
-				font-weight: 500;
+				font-weight: bold;
 			}
 			.goods-money {
 				position: absolute;
@@ -169,21 +195,40 @@ page {
 				bottom: 0;
 				width:100%;
 				.money-box {
+					.otMoney {
+						color: #999999;
+						text-decoration: line-through;
+						margin-right: 15rpx;
+						font-size: 20rpx;
+					}
 					.money {
-						font-size: $font-lg;
-						color: $color-red;
+						color: #EF3A55;
 						font-weight: bold;
+						font-size: 35rpx;
+					}
+					image {
+						width: 20rpx;
+						height: 20rpx;
+						margin-right: 5rpx;
 					}
-					.otMoney-box {
-						font-size: $font-sm;
-						.otMoney {
-							color: $font-color-dark;
-							padding-right: 20rpx;
-						}
-						.sales {
-							color: $font-color-light;
-						}
+					.decline {
+						color: #FFB238;
+						font-size: 20rpx;
 					}
+					.sales {
+						color: $font-color-light;
+					}
+				}
+				.button {
+					background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+					background-color: #438BED;
+					height: 50rpx;
+					border-radius: 20rpx;
+					padding: 10rpx 15rpx;
+					color: #fff;
+					font-size: 25rpx;
+					position: relative;
+					top: 20rpx;
 				}
 				.cart {
 					border: 1px solid $color-red;

+ 5 - 4
pages/product/common/contentText.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="detail-desc">
-		<view class="d-header"><text>图文详情</text></view>
+		<view class="d-header"><text>商品详情</text></view>
 		<rich-text class="detail-centent" :nodes="description"></rich-text>
 		<!-- 底部高度撑开 -->
 	</view>
@@ -25,7 +25,7 @@ export default {
 	/*  详情 */
 	.detail-desc {
 		margin-top: 14rpx;
-		background: #fff;
+		// background: #fff;
 		/deep/ img {
 			max-width: 100% !important;
 			display: inline !important;
@@ -44,16 +44,17 @@ export default {
 	
 			text {
 				padding: 0 20rpx;
-				background: #fff;
+				background: #f0f0f0;
 				position: relative;
 				z-index: 1;
+				overflow: hidden;
 			}
 			&:after {
 				position: absolute;
 				left: 50%;
 				top: 50%;
 				transform: translateX(-50%);
-				width: 300rpx;
+				width: 250rpx;
 				height: 0;
 				content: '';
 				border-bottom: 1px solid #ccc;

+ 19 - 16
pages/product/common/productBottom.vue

@@ -1,16 +1,16 @@
 <template>
 	<view class="page-bottom">
-		<navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
+		<!-- <navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
 			<text class="iconfont iconhome"></text>
 			<text>首页</text>
-		</navigator>
+		</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 add-cart-btn" @click="buy(2)">加入购物车</button>
-			<button type="primary" class=" action-btn no-border buy-now-btn" @click="buy(1)">立即购买</button>
+			<button type="primary" class=" action-btn no-border add-cart-btn" @click="buy">加入购物车</button>
+			<button type="primary" class=" action-btn no-border buy-now-btn" @click="buy">立即购买</button>
 		</view>
 	</view>
 </template>
@@ -35,8 +35,8 @@ export default {
 		return {};
 	},
 	methods: {
-		buy(type) {
-			this.$emit('specOPne',type);
+		buy() {
+			this.$emit('specOPne');
 		},
 		//收藏
 		toFavorite(item) {
@@ -73,8 +73,8 @@ export default {
 	display: flex;
 	justify-content: center;
 	align-items: center;
-	width: 750rpx;
-	height: 120rpx;
+	width: 100%;
+	// height: 120rpx;
 	background-color: #ffffff;
 	/* box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
 	border-radius: 16rpx; */
@@ -85,7 +85,7 @@ export default {
 		justify-content: center;
 		font-size: $font-sm;
 		color: $font-color-base;
-		width: 96rpx;
+		width: 20%;
 		height: 80rpx;
 		.iconfont {
 			font-size: 40rpx;
@@ -94,7 +94,7 @@ export default {
 		}
 		&.active,
 		&.active .iconfont {
-			color: $uni-color-primary;
+			color: #438BED;
 		}
 		.iconlikefill {
 			font-size: 46rpx;
@@ -105,11 +105,12 @@ export default {
 		}
 	}
 	.action-btn-group {
+		width: 80%;
 		display: flex;
-		height: 76rpx;
-		border-radius: 100px;
+		height: 80rpx;
+		// border-radius: 100px;
 		overflow: hidden;
-		margin-left: 20rpx;
+		// margin-left: 20rpx;
 		position: relative;
 		&:after {
 			content: '';
@@ -122,20 +123,22 @@ export default {
 			border-right: 1px solid rgba(255, 255, 255, 0.5);
 		}
 		.action-btn {
+			text-align: center;
+			margin: auto auto;
 			display: flex;
 			align-items: center;
 			justify-content: center;
-			width: 270rpx;
+			width:100%;
 			height: 100%;
 			font-size: $font-base;
 			padding: 0;
 			border-radius: 0;
 			background: transparent;
 			&.buy-now-btn {
-				background-color: #303e49;
+				background-color: #438BED;
 			}
 			&.add-cart-btn {
-				background-color: $base-color;
+				background-color: #31332D;
 			}
 		}
 	}

+ 50 - 7
pages/product/common/productContent.vue

@@ -1,16 +1,16 @@
 <template>
 	<view class="introduce-section">
+		<view class="price">
+			<text>¥</text><text>{{ goodsObjact.price }}</text>
+			<text>¥</text><text>{{ goodsObjact.ot_price }}</text>
+		</view>
 		<text class="title clamp2">{{ goodsObjact.store_name }}</text>
-		<button open-type="share" class="shareDate">
-			<image class="share-img" src="../../../static/img/img57.png"></image>
-			好物推荐
-		</button>
 		<text class="info" v-if="goodsObjact.store_info">{{ goodsObjact.store_info }}</text>
 		<!-- <view class="progress-box">
 			<progress :percent="goodsObjact.percent | parseIntTo" activeColor="#F65527" font-size="10" show-info border-radius="5" stroke-width="9" />
 			<view class="number">剩余{{ goodsObjact.percent | parseIntTo }}%</view>
 		</view> -->
-		<view class="price-box">
+		<!-- <view class="price-box">
 			<text class="price-tip">¥</text>
 			<view class="price">
 				{{ goodsObjact.price }}
@@ -21,6 +21,17 @@
 		<view class="price-green">
 			¥{{ goodsObjact.ot_price }}
 			<text>市场价</text>
+		</view> -->
+		<view class="header-footer">
+			<view class="">
+				快递:¥12
+			</view>
+			<view class="">
+				销量:88件
+			</view>
+			<view class="">
+				浙江 台州
+			</view>
 		</view>
 	</view>
 </template>
@@ -61,14 +72,46 @@ export default {
 	background: #fff;
 	padding: 35rpx 0rpx;
 	padding-left: 35rpx;
+	.price {
+		text:nth-child(1) {
+			color: #EF3A55;
+			font-size: 25rpx;
+			font-weight: bold;
+		}
+		text:nth-child(3) {
+			font-size: 25rpx;
+			color: #999999;
+		}
+		text:nth-child(2) {
+			color: #EF3A55;
+			font-weight: bold;
+			font-size: 40rpx;
+		}
+		text:nth-child(4) {
+			font-size: 25rpx;
+			color: #999999;
+			text-decoration: line-through
+		}
+		
+	}
 	.title {
-		font-size: 32rpx;
-		color: $font-color-dark;
+		margin-top: 10rpx;
+		font-size: 30rpx;
+		font-weight: bold;
+		color: #1D2023;
 		.tip-o {
 			color: #ff3334;
 			padding-left: 15rpx;
 		}
 	}
+	.header-footer {
+		display: flex;
+		justify-content: space-between;
+		padding-right: 30rpx;
+		color: #999999;
+		margin-top: 10rpx;
+		font-size: 25rpx;
+	}
 	.shareDate {
 		position: absolute;
 		top: 25rpx;

+ 222 - 72
pages/product/product.vue

@@ -9,7 +9,20 @@
 		<!-- 猜你喜欢 -->
 		<!-- <guess-like @Addcar='Addcar' @clickNavTo='navToDetailPage' :goodList = 'good_list||[]'></guess-like> -->
 		<!-- 评价 -->
-		<estimate @navTo="navTo('/pages/product/reply?id=' + goodsid)" v-if="reply" :reply="reply" :list="list"></estimate>
+		<!-- <estimate @navTo="navTo('/pages/product/reply?id=' + goodsid)" v-if="reply" :reply="reply" :list="list"></estimate> -->
+		<!-- 积分 -->
+		<view class="integral">
+			积分<text>最高可用购物积分抵扣20元</text>
+		</view>
+		<!-- 选择数量 -->
+		<view class="num">
+			<view class="">
+				选择<text>请选择数量</text>
+			</view>
+			<view class="num-right">
+				<image src="../../static/img/img39.png" mode=""></image>
+			</view>
+		</view>
 		<!-- 规格信息 -->
 		<fresh-detail :goodsObjact="goodsObjact"></fresh-detail>
 		<!-- 图文详情 -->
@@ -23,19 +36,23 @@
 			<!-- 遮罩层 -->
 			<view class="mask"></view>
 			<view class="layer attr-content" @click.stop="stopPrevent">
+				<view class="x" @click="toggleSpec">
+					<image src="../../static/img/x.png" mode=""></image>
+				</view>
 				<view class="a-t">
 					<image :src="actionImage"></image>
 					<view class="right">
 						<text class="name">{{ goodsObjact.store_name }}</text>
-						<text class="price">¥{{ actionPrice * goodsNumber }}</text>
-						<text class="stock">库存:{{ goodsStore }}件</text>
+						<text class="price"><text>¥</text>{{ actionPrice * goodsNumber }}</text>
+						<!-- <text class="stock">库存:{{ goodsStore }}件</text> -->
 						<view class="selected" v-if="specList != ''">
 							已选:
 							<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">
+				<!-- 规格 -->
+				<!-- <view v-for="(item, index) in specList" :key="index" class="attr-list">
 					<text>{{ item.attr_name }}</text>
 					<view class="item-list">
 						<text
@@ -48,15 +65,39 @@
 							{{ childItem.attr }}
 						</text>
 					</view>
-				</view>
-				<!-- <view class="attr-list">
-					<text>购买数量</text>
+				</view> -->
+				<view class="attr-list">
+					<view class="">
+						<text>购买数量</text>
+					</view>
 					<view class="item-list">
-						<uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax" @eventChange="numberChange"></uni-number-box>
+						<view class="da" @click="delNum">
+							-
+						</view>
+						<view class="item-num">
+							<input type="text" v-model="goodsNumber" />
+						</view>
+						<view class="da" @click="addNum">
+							+
+						</view>
+						<!-- <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" v-show="buys_show">完成</button>
-				<button class="btn" style="background-color: #999999;" v-show="buys_shows">售罄</button>
+				</view>
+				<view class="footer" v-show="buys_show">
+					<view class="" @click.stop="buy(2)">
+						加入购物车
+					</view>
+					<view class="" @click.stop="buy(1)">
+						立即购买
+					</view>
+				</view>
+				<view  class="footer" v-show="buys_shows">
+					<view :class="{sq: buys_show}"style="background-color: #999999;">
+						售罄
+					</view>
+				</view>
+				<!-- <button class="btn" @click.stop="buy" v-show="buys_show">完成</button>
+				<button class="btn" style="background-color: #999999;" v-show="buys_shows">售罄</button> -->
 			</view>
 		</view>
 	</view>
@@ -162,6 +203,7 @@ export default {
 		}
 	},
 	async onLoad(options) {
+		console.log(this.$data);
 		let obj = this;
 		obj.userInfo = uni.getStorageSync('userInfo');
 		//保存商品id
@@ -187,34 +229,49 @@ export default {
 		...mapState(['weichatObj', 'baseURL', 'urlFile'])
 	},
 	// 分享
-	onShareAppMessage(options) {
-		// 设置菜单中的转发按钮触发转发事件时的转发内容
-		let pages = getCurrentPages(); //获取加载的页面
-		let currentPage = pages[pages.length - 1]; //获取当前页面的对象
-		let url = currentPage.route; //当前页面url
-		let item = currentPage.options; //如果要获取url中所带的参数可以查看options
-		let shareObj = {
-			title: this.goodsObjact.store_name + '   价格:' + this.goodsObjact.price, // 默认是小程序的名称(可以写slogan等)
-			path: url + '?id=' + item.id + '&spread=' + this.userInfo.uid, // 默认是当前页面,必须是以‘/’开头的完整路径
-			imageUrl: this.goodsObjact.image,
-			success: function(res) {
-				// 转发成功之后的回调
-				if (res.errMsg == 'shareAppMessage:ok') {
-				}
-			},
-			fail: function() {
-				// 转发失败之后的回调
-				if (res.errMsg == 'shareAppMessage:fail cancel') {
-					// 用户取消转发
-				} else if (res.errMsg == 'shareAppMessage:fail') {
-					// 转发失败,其中 detail message 为详细失败信息
-				}
-			}
-		};
-
-		return shareObj;
-	},
+	// onShareAppMessage(options) {
+	// 	// 设置菜单中的转发按钮触发转发事件时的转发内容
+	// 	let pages = getCurrentPages(); //获取加载的页面
+	// 	let currentPage = pages[pages.length - 1]; //获取当前页面的对象
+	// 	let url = currentPage.route; //当前页面url
+	// 	let item = currentPage.options; //如果要获取url中所带的参数可以查看options
+	// 	let shareObj = {
+	// 		title: this.goodsObjact.store_name + '   价格:' + this.goodsObjact.price, // 默认是小程序的名称(可以写slogan等)
+	// 		path: url + '?id=' + item.id + '&spread=' + this.userInfo.uid, // 默认是当前页面,必须是以‘/’开头的完整路径
+	// 		imageUrl: this.goodsObjact.image,
+	// 		success: function(res) {
+	// 			// 转发成功之后的回调
+	// 			if (res.errMsg == 'shareAppMessage:ok') {
+	// 			}
+	// 		},
+	// 		fail: function() {
+	// 			// 转发失败之后的回调
+	// 			if (res.errMsg == 'shareAppMessage:fail cancel') {
+	// 				// 用户取消转发
+	// 			} else if (res.errMsg == 'shareAppMessage:fail') {
+	// 				// 转发失败,其中 detail message 为详细失败信息
+	// 			}
+	// 		}
+	// 	};
+
+	// 	return shareObj;
+	// },
 	methods: {
+		delNum() {
+			this.goodsNumber < 2 || this.goodsNumber--
+		},
+		addNum() {
+			if(this.goodsNumberMax > this.goodsNumber ) {
+				this.goodsNumber++
+			}else {
+				uni.showToast({
+					title: '超出最大购买数',
+					type: 'top',
+					duration: 2000,
+					icon: 'none'
+				});
+			}
+		},
 		//选择规格
 		selectSpec(item, arr, ind) {
 			arr.attr_value.forEach(function(e) {
@@ -242,10 +299,9 @@ export default {
 			}
 		},
 		// 打開彈窗
-		specOPne(type=1) {
+		specOPne() {
 			let obj = this;
 			obj.specClass = 'show';
-			obj.type = type
 		},
 		//规格弹窗开关
 		toggleSpec(str) {
@@ -348,7 +404,8 @@ export default {
 			});
 		},
 		// 立即购买
-		buy() {
+		buy(type) {
+			this.type = type
 			let obj = this;
 			// 创建传值对象
 			let data = {
@@ -391,7 +448,39 @@ export default {
 };
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
+	//积分
+	.integral {
+		background-color: #fff;
+		margin-top: 20rpx;
+		padding: 30rpx;
+		color: #666666;
+		font-size: 28rpx;
+		text {
+			margin-left: 40rpx;
+			color: #000;
+		}
+	}
+	//选择数量
+	.num {
+		display: flex;
+		justify-content: space-between;
+		background-color: #fff;
+		margin-top: 20rpx;
+		padding: 30rpx;
+		color: #666666;
+		font-size: 28rpx;
+		text {
+			margin-left: 40rpx;
+			color: #000;
+		}
+		.num-right {
+			image {
+				width: 25rpx;
+				height: 25rpx;
+			}
+		}
+	}
 /*  弹出层 */
 .popup {
 	position: fixed;
@@ -440,7 +529,7 @@ export default {
 		z-index: 99;
 		bottom: 0;
 		width: 100%;
-		min-height: 35vh;
+		min-height: 650rpx;
 		border-radius: 10rpx 10rpx 0 0;
 		background-color: #fff;
 
@@ -498,10 +587,21 @@ export default {
 /* 规格选择弹窗 */
 .attr-content {
 	padding: 25rpx 30rpx;
+	
+	.x {
+		position: absolute;
+		top: 30rpx;
+		right: 30rpx;
+		image {
+			width: 40rpx;
+			height: 40rpx;
+		}
+	}
 
 	.a-t {
 		display: flex;
-
+		padding: 80rpx 0;
+		border-bottom: solid 1rpx #EEEEEE;
 		image {
 			width: 170rpx;
 			height: 170rpx;
@@ -519,9 +619,13 @@ export default {
 			width: 75%;
 
 			.price {
-				font-size: $font-lg;
-				color: $uni-color-primary;
+				font-size: 50rpx;
+				color: #EF3A55;
 				margin: 10rpx 0rpx;
+				text {
+					font-size: 30rpx;
+					margin-right: 10rpx;
+				}
 			}
 
 			.name {
@@ -541,39 +645,62 @@ export default {
 	}
 
 	.attr-list {
+		width: 100%;
 		display: flex;
-		flex-direction: column;
+		justify-content: space-between;
 		font-size: $font-base + 2rpx;
 		color: $font-color-base;
-		padding-top: 30rpx;
+		padding-top: 80rpx;
 		padding-left: 10rpx;
-	}
-
-	.item-list {
-		padding: 20rpx 0 0;
-		display: flex;
-		flex-wrap: wrap;
-
-		text {
+		// padding: 40rpx;
+		.item-list {
+			text-align: center;
 			display: flex;
-			align-items: center;
-			justify-content: center;
-			background: #eee;
-			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: #ddffdf;
-			color: $uni-color-primary;
+				height: 60rpx;
+			.item-num {
+				width: 100rpx;
+				border: solid 1rpx #CFCFCF;
+			}
+			.da {
+				line-height: 60rpx;
+				height: 60rpx;
+				width: 60rpx;
+				border: solid 1rpx #CFCFCF;
+				margin: auto 0;
+				background-color: #F6F6F6 ;
+			}
+			input {
+				width: 100rpx;
+				height: 60rpx;
+			}
 		}
 	}
+
+	// .item-list {
+	// 	padding: 20rpx 0 0;
+	// 	display: flex;
+	// 	flex-wrap: wrap;
+
+	// 	text {
+	// 		display: flex;
+	// 		align-items: center;
+	// 		justify-content: center;
+	// 		background: #eee;
+	// 		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: #ddffdf;
+	// 		color: $uni-color-primary;
+	// 	}
+	// }
 }
 
 //默认商品底部高度
@@ -610,4 +737,27 @@ page {
 	width: 100% !important;
 	height: auto;
 }
+.footer {
+	width: 100%;
+	text-align: center;
+	display: flex;
+	position: absolute;
+	bottom: 0;
+	height: 100rpx;
+	line-height: 100rpx;
+	margin-left: -30rpx;
+	view {
+		width: 50%;
+		color: #fff;
+	}
+	view:nth-child(1) {
+		background-color: #FFB238;
+	}
+	view:nth-child(2) {
+		background-color: #438BED;
+	}
+	.sq {
+		width: 100%;
+	}
+}
 </style>

+ 23 - 18
pages/set/address.vue

@@ -28,7 +28,7 @@
 				</view>
 			</view>
 		</view>
-		<button class="add-btn" @click="addAddress('add')">新增地址</button>
+		<!-- <button class="add-btn" @click="addAddress('add')">新增地址</button> -->
 	</view>
 </template>
 
@@ -46,6 +46,10 @@ export default {
 		this.loadAddress();
 	},
 	methods: {
+		//点击导航栏 buttons 时触发
+		onNavigationBarButtonTap(e) {
+			e.text != "新增" || this.addAddress('add')
+		},
 		// 加载地址
 		loadAddress() {
 			getAddressList({
@@ -132,7 +136,8 @@ page {
 			border-radius: 50px;
 		}
 		.checkbox.checked {
-			color: $base-color;
+			color: #438BED;
+			// background-image: radialGradient(90deg, #FFB238 0%,  #FFE138 100%);
 		}
 		.default-buttom {
 			display: flex;
@@ -189,20 +194,20 @@ page {
 	padding-left: 30rpx;
 }
 
-.add-btn {
-	position: fixed;
-	left: 30rpx;
-	right: 30rpx;
-	bottom: 16rpx;
-	z-index: 95;
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10rpx;
-}
+// .add-btn {
+// 	position: fixed;
+// 	left: 30rpx;
+// 	right: 30rpx;
+// 	bottom: 16rpx;
+// 	z-index: 95;
+// 	display: flex;
+// 	align-items: center;
+// 	justify-content: center;
+// 	width: 690rpx;
+// 	height: 80rpx;
+// 	font-size: $font-lg;
+// 	color: #fff;
+// 	background-color: $base-color;
+// 	border-radius: 10rpx;
+// }
 </style>

+ 63 - 22
pages/set/addressManage.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<view class="row b-b">
-			<text class="tit">联系人</text>
+			<text class="tit">收货人</text>
 			<input class="input" type="text" v-model="addressData.name" placeholder="收货人姓名" placeholder-class="placeholder" />
 		</view>
 		<view class="row b-b">
@@ -9,27 +9,42 @@
 			<input class="input" type="number" v-model="addressData.mobile" placeholder="收货人手机号码" placeholder-class="placeholder" />
 		</view>
 		<view class="row b-b">
-			<text class="tit">地址</text>
-			<pickerAddress class="input" @change="onCityClick">{{addressDetail||'请选择地址'}}</pickerAddress>
-			<text class="iconfont iconlocation"></text>
+			<text class="tit">所在地区</text>
+			<pickerAddress class="input" @change="onCityClick">
+				<view class="addressDetail">
+					{{addressDetail}}
+					<image src="../../static/icon/right.png"></image>
+				</view>
+			</pickerAddress>
 		</view>
+		<!-- <view class="row b-b">
+			<text class="tit">街道</text>
+			<pickerAddress class="input" @change="onCityClick">
+				<view class="addressDetail">
+					{{addressDetail}}
+					<image src="../../static/icon/right.png"></image>
+				</view>
+			</pickerAddress>
+		</view> -->
 		<view class="row b-b">
-			<text class="tit">门牌号</text>
-			<input class="input" type="text" v-model="addressData.area" placeholder="楼号、门牌" placeholder-class="placeholder" />
+			<input class="input" type="text" v-model="addressData.area" 
+			placeholder="楼号、门牌" placeholder-class="placeholder" style="color: $font-color-dark;"/>
 		</view>
-
 		<uni-list class="margin-t-20">
 			<uni-list-item
 				title="设为默认"
 				:switch-checked="addressData.default"
 				:show-switch="true"
 				:show-arrow="false"
-				switch-color="#5dbc7c"
+				switch-color="#438BED"
 				@switchChange="switchChange"
 			></uni-list-item>
 		</uni-list>
-
-		<button class="add-btn" @click="confirm">提交</button>
+		<view class="row b-b" style="color: #EF3A55;"@click="delAddress" v-if="addressData.id">
+			删除地址
+		</view>
+		<button class="add-btn" @click="confirm" v-if="addressData.id">确定修改</button>
+		<button class="add-btn" @click="confirm" v-else>确定添加</button>
 	</view>
 </template>
 
@@ -38,7 +53,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 { addressEdit } from '@/api/user.js';
+import { addressEdit,addressDel } from '@/api/user.js';
 export default {
 	components: {
 		uniList,
@@ -89,6 +104,24 @@ export default {
 		});
 	},
 	methods: {
+		//删除地址
+		delAddress() {
+			addressDel({
+				id:this.addressData.id
+			}).then(({data})=>{
+				this.$api.msg('删除成功')
+			})
+			setTimeout(() => {
+				let pages = getCurrentPages(); // 当前页面
+				let beforePage = pages[pages.length - 2]; // 上一页
+				uni.navigateBack({
+					success: function() {
+						beforePage.loadAddress(); // 执行上一页加载地址方法
+					}
+				})
+			},500)
+			
+		},
 		// 选中城市切换
 		onCityClick({data}) {
 			let address = this.addressData.address;
@@ -165,7 +198,9 @@ page {
 	background: $page-color-base;
 	padding-top: 16rpx;
 }
-
+.margin-t-20 {
+	margin-bottom: 20rpx;
+}
 .row {
 	display: flex;
 	align-items: center;
@@ -183,7 +218,17 @@ page {
 	.input {
 		flex: 1;
 		font-size: 30rpx;
-		color: $font-color-dark;
+		color: #999999;
+		.addressDetail {
+			float: right;
+			image {
+				width: 35rpx;
+				height: 38rpx;
+				margin-bottom: -7rpx;
+				margin-left: 15rpx;
+			}
+		}
+		
 	}
 	.iconlocation {
 		font-size: 36rpx;
@@ -200,17 +245,13 @@ page {
 	}
 }
 .add-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
+	width: 75%;
+	background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
 	height: 80rpx;
-	margin: 60rpx auto;
-	font-size: $font-lg;
+	border-radius: 50rpx;
 	color: #fff;
-	background-color: $base-color;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+	font-size: 30rpx;
+	margin-top: 50rpx;
 }
 
 .alert-box {

BIN
static/icon/decline.png


BIN
static/icon/jf.png


BIN
static/icon/logo.png


BIN
static/icon/money.png


BIN
static/icon/right.png


BIN
static/icon/sd1.png


BIN
static/icon/sd2.png


BIN
static/img/change.png


BIN
static/img/i-t.png


BIN
static/img/is.png


BIN
static/img/x.png


BIN
static/tabBar/tab-cart-current.png


BIN
static/tabBar/tab-cart-current1.png


BIN
static/tabBar/tab-cart.png


BIN
static/tabBar/tab-cart1.png


BIN
static/tabBar/tab-cate-current.png


BIN
static/tabBar/tab-cate-current1.png


BIN
static/tabBar/tab-cate.png


BIN
static/tabBar/tab-cate1.png


BIN
static/tabBar/tab-home-current.png


BIN
static/tabBar/tab-home-current1.png


BIN
static/tabBar/tab-home.png


BIN
static/tabBar/tab-home1.png


BIN
static/tabBar/tab-my-current.png


BIN
static/tabBar/tab-my-current1.png


BIN
static/tabBar/tab-my.png


BIN
static/tabBar/tab-my1.png