Browse Source

Merge branch 'master' of http://git.liuniu946.com/xuhaolan/lishang

xuhaolan 4 years ago
parent
commit
3aaa26b85e
68 changed files with 2711 additions and 725 deletions
  1. 1 1
      components/wangding-pickerAddress/wangding-pickerAddress.vue
  2. 81 21
      pages.json
  3. 204 33
      pages/cart/cart.vue
  4. 82 22
      pages/category/category.vue
  5. 46 31
      pages/index/child/hotGoods.vue
  6. 137 0
      pages/index/child/recommend.vue
  7. 58 54
      pages/index/index.vue
  8. 84 18
      pages/index/sign.vue
  9. 427 0
      pages/money/USDT.vue
  10. 153 0
      pages/money/conversionIntegral.vue
  11. 4 4
      pages/money/pay.vue
  12. 36 29
      pages/money/paySuccess.vue
  13. 201 232
      pages/money/recharge.vue
  14. 88 0
      pages/money/rechargeUSDT.vue
  15. 76 0
      pages/money/record.vue
  16. 56 0
      pages/money/submitSuccess.vue
  17. 185 80
      pages/money/withdrawal.vue
  18. 63 26
      pages/order/createOrder.vue
  19. 76 29
      pages/product/classify.vue
  20. 5 4
      pages/product/common/contentText.vue
  21. 19 16
      pages/product/common/productBottom.vue
  22. 50 7
      pages/product/common/productContent.vue
  23. 222 72
      pages/product/product.vue
  24. 23 18
      pages/set/address.vue
  25. 63 22
      pages/set/addressManage.vue
  26. 91 0
      pages/user/exchangeIntegral.vue
  27. 97 0
      pages/user/integralTransforms.vue
  28. 83 6
      pages/user/scoreAccumulate.vue
  29. BIN
      static/icon/decline.png
  30. BIN
      static/icon/jf.png
  31. BIN
      static/icon/logo.png
  32. BIN
      static/icon/money.png
  33. BIN
      static/icon/right.png
  34. BIN
      static/icon/sd1.png
  35. BIN
      static/icon/sd2.png
  36. BIN
      static/img/change.png
  37. BIN
      static/img/i-bg.png
  38. BIN
      static/img/i-t.png
  39. BIN
      static/img/i1.png
  40. BIN
      static/img/i2.png
  41. BIN
      static/img/i3.png
  42. BIN
      static/img/i4.png
  43. BIN
      static/img/ic1.png
  44. BIN
      static/img/ic2.png
  45. BIN
      static/img/ic3.png
  46. BIN
      static/img/ic4.png
  47. BIN
      static/img/is.png
  48. BIN
      static/img/pays.png
  49. BIN
      static/img/sign-bg.png
  50. BIN
      static/img/sign-btn.png
  51. BIN
      static/img/submitsuccess.png
  52. BIN
      static/img/x.png
  53. BIN
      static/tabBar/tab-cart-current.png
  54. BIN
      static/tabBar/tab-cart-current1.png
  55. BIN
      static/tabBar/tab-cart.png
  56. BIN
      static/tabBar/tab-cart1.png
  57. BIN
      static/tabBar/tab-cate-current.png
  58. BIN
      static/tabBar/tab-cate-current1.png
  59. BIN
      static/tabBar/tab-cate.png
  60. BIN
      static/tabBar/tab-cate1.png
  61. BIN
      static/tabBar/tab-home-current.png
  62. BIN
      static/tabBar/tab-home-current1.png
  63. BIN
      static/tabBar/tab-home.png
  64. BIN
      static/tabBar/tab-home1.png
  65. BIN
      static/tabBar/tab-my-current.png
  66. BIN
      static/tabBar/tab-my-current1.png
  67. BIN
      static/tabBar/tab-my.png
  68. 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>

+ 81 - 21
pages.json

@@ -44,11 +44,14 @@
 			"path": "pages/index/sign",
 			"style": {
 				"navigationBarTitleText": "每日签到",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
+				"navigationBarBackgroundColor": "transparent",
+				"navigationBarTextStyle": "white",
+					"app-plus": {
+						"titleNView": {
+							"type": "float",
+							"titleText": "每日签到"
+						}
 					}
-				}
 			}
 		},{
 			"path": "pages/public/register",
@@ -218,15 +221,7 @@
 			}
 		},
 		{
-			"path": "pages/product/classify",
-			"style": {
-				"navigationStyle": "custom",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
+			"path": "pages/product/classify"
 		},
 		{
 			"path": "pages/set/set",
@@ -237,7 +232,18 @@
 		{
 			"path": "pages/set/address",
 			"style": {
-				"navigationBarTitleText": "收货地址"
+				"navigationBarTitleText": "收货地址",
+				"app-plus": {
+					"titleNView": {
+						"buttons": [{
+							"text": "新增",
+							"fontSize": "16",
+							"width": "80rpx",
+							"color":"#3F454B",
+							"height": "60rpx"
+						}]
+					}
+				}
 			}
 		},
 		{
@@ -266,7 +272,9 @@
 		}, {
 			"path": "pages/cart/cart",
 			"style": {
-				"navigationBarTitleText": "购物车"
+				"navigationBarTitleText": "购物车",
+				"navigationBarBackgroundColor": "#438BED",
+				"navigationBarTextStyle": "white"
 			}
 		},
 		
@@ -339,9 +347,30 @@
 		{
 			"path": "pages/user/scoreAccumulate",
 			"style": {
-				"navigationBarTitleText": "积分明细"
+				"navigationBarTitleText": "我的积分",
+				"navigationBarBackgroundColor": "transparent",
+				"navigationBarTextStyle": "white",
+					"app-plus": {
+						"titleNView": {
+							"type": "float",
+							"titleText": "我的积分"
+						}
+					}
+			}
+		},
+		{
+			"path": "pages/user/integralTransforms",
+			"style": {
+				"navigationBarTitleText": "积分转账"
+			}
+		},
+		{
+			"path": "pages/user/exchangeIntegral",
+			"style": {
+				"navigationBarTitleText": "兑换购物积分"
 			}
 		},
+		
 		{
 			"path": "pages/order/order",
 			"style": {
@@ -381,7 +410,7 @@
 		{
 			"path": "pages/order/createOrder",
 			"style": {
-				"navigationBarTitleText": "创建订单"
+				"navigationBarTitleText": "支付详情"
 			}
 		},  {
 			"path": "pages/money/pay",
@@ -418,6 +447,37 @@
 				"navigationBarTitleText": "提现"
 			}
 		},
+		{
+			"path": "pages/money/rechargeUSDT",
+			"style": {
+				"navigationBarTitleText": "充币"
+			}
+		},
+		{
+			"path": "pages/money/conversionIntegral",
+			"style": {
+				"navigationBarTitleText": "兑换"
+			}
+		},
+		
+		{
+			"path": "pages/money/USDT",
+			"style": {
+				"navigationBarTitleText": "USDT专区"
+			}
+		},
+		{
+			"path": "pages/money/submitSuccess",
+			"style": {
+				"navigationBarTitleText": "提交成功"
+			}
+		},
+		{
+			"path": "pages/money/record",
+			"style": {
+				"navigationBarTitleText": "收款记录"
+			}
+		},
 		{
 			"path": "pages/money/recharge",
 			"style": {
@@ -437,10 +497,10 @@
 						"searchInput": {
 							"backgroundColor": "rgba(231, 231, 231,.7)",
 							"borderRadius": "16px",
-							"placeholder": "商品搜索",
+							"placeholder": "输入关键字",
 							"disabled": true,
 							"placeholderColor": "#606266",
-							"align": "left"
+							"align": "center"
 						}
 					}
 				},
@@ -584,12 +644,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": "首页"
 			},

+ 204 - 33
pages/cart/cart.vue

@@ -13,10 +13,23 @@
 			</view>
 		</view>
 		<view v-else>
+			<view class="header">
+				<view class="">
+					购物车共3件商品
+				</view>
+				<view class=""  @click="allChecked ? clearCart() : ''">
+					清空购物车
+				</view>
+			</view>
 			<!-- 列表 -->
-			<view class="cart-list">
+			<scroll-view scroll-y="true" class="scrollBox">
+				<view class="cart-list">
 				<block v-for="(item, index) in cartList" :key="item.id">
 					<view class="cart-item" :class="{ 'b-b': index !== cartList.length - 1 }">
+						<view class="iconfont iconroundcheckfill checkbox" 
+						 :class="{ checked: item.checked }" @click="check('item', index)">
+							
+						</view>
 						<view class="image-wrapper">
 							<image
 								:src="item.productInfo.image"
@@ -26,13 +39,32 @@
 								@load="onImageLoad('cartList', index)"
 								@error="onImageError('cartList', index)"
 							></image>
-							<view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.checked }" @click="check('item', index)"></view>
+							<!-- <view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.checked }" @click="check('item', index)"></view> -->
 						</view>
 						<view class="item-right">
-							<text class="clamp title">{{ item.productInfo.store_name }}</text>
-							<text class="attr">{{ item.attr_val }}</text>
-							<text class="price">¥{{ item.productInfo.price }}</text>
-							<uni-number-box
+							<view class="item-top">
+								<text class="title">{{ item.productInfo.store_name }}</text>
+								<text class="attr">{{ item.attr_val }}</text>
+							</view>
+							
+							<view class="item-footer">
+								<view class="price">¥{{ item.productInfo.price }}</view>
+								<view class="num">
+									<view class="del"@click="changeNum('del',index,item)">
+										-
+									</view>
+									<view class="number">
+										<input type="number" @input = "inputChangeNum($event,index,item)"
+										v-model="item.cart_num > item.productInfo.stock ? item.productInfo.stock : item.cart_num"/>
+										<!-- {{ item.cart_num > item.productInfo.stock ? item.productInfo.stock : item.cart_num }} -->
+									</view>
+									<view class="add" @click="changeNum('add',index,item)">
+										+
+									</view>
+								</view>
+							</view>
+							
+							<!-- <uni-number-box
 								class="step"
 								:min="1"
 								:max="item.productInfo.stock"
@@ -41,27 +73,33 @@
 								:isMin="item.cart_num === 1"
 								:index="index"
 								@eventChange="numberChange"
-							></uni-number-box>
+							></uni-number-box> -->
 						</view>
-						<text class="del-btn iconfont iconclose" @click="deleteCartItem(index)"></text>
+						<!-- <text class="del-btn iconfont iconclose" @click="deleteCartItem(index)"></text> -->
 					</view>
 				</block>
 			</view>
+			</scroll-view>
+			
 			<!-- 底部菜单栏 -->
 			<view class="action-section">
 				<view class="checkbox">
 					<view class="iconfont iconroundcheckfill icon-checked-box" @click="check('all')" :class="{ 'icon-checked': allChecked }"></view>
-					<view class="clear-btn" @click="allChecked ? clearCart() : ''" :class="{ show: allChecked }"><text>清空</text></view>
+					<view class="text">全选</view>
+					<!-- <view class="clear-btn" @click="allChecked ? clearCart() : ''" :class="{ show: allChecked }"><text>清空</text></view> -->
 				</view>
 				<view class="total-box">
-					<text class="price">¥{{ total }}</text>
+					<text class="price"><text style="color: #333333;">合计:</text>¥{{ total }}</text>
 					<!-- <text class="coupon">
 						已优惠
 						<text>74.35</text>
 					</text> -->
 				</view>
-				<button type="primary" class="no-border confirm-btn" @click="createOrder">去结算</button>
+				<view class="button" @click="createOrder">
+					去结算 ({{choseNum}})
+				</view>
+				<!-- <button type="primary" class="no-border confirm-btn"></button> -->
 			</view>
 		</view>
 	</view>
@@ -81,7 +119,8 @@ export default {
 			total: 0, //总价格
 			allChecked: false, //全选状态  true|false
 			empty: false, //空白页现实  true|false
-			cartList: []
+			cartList: [],
+			choseNum: 0,
 		};
 	},
 	onShow() {
@@ -163,11 +202,42 @@ export default {
 			}
 			this.calcTotal(type);
 		},
+		//数量输入变化
+		inputChangeNum(e,index,item) {
+			const cartList = this.cartList[index]
+			let num = e.detail.value
+			if(num < cartList.trueStock ) {
+				cartList.cart_num = num
+			}else {
+				cartList.cart_num = cartList.trueStock
+			}
+			const data = {
+				number: num,
+				id: item.id
+			}
+			this.numberChange(data)
+		},
+		//数量加减变化
+		changeNum(type,index,item) {
+			const cartList = this.cartList[index]
+			if(type == "add") {
+				cartList.cart_num >= cartList.trueStock || cartList.cart_num++
+			}else if(type == "del") {
+				if(cartList.cart_num <=1) {
+					this.deleteCartItem(index)
+					// this.cartList.splice(index, 1);
+				}
+				cartList.cart_num <= 1 || cartList.cart_num--
+			}
+			const data = {
+				number: cartList.cart_num,
+				id: item.id
+			}
+			this.numberChange(data)
+		},
 		//数量
 		numberChange(data) {
-			let arr = this.cartList[data.index];
-			arr.cart_num = data.number;
-			getCartNum({ id: arr.id, number: data.number })
+			getCartNum({ id: data.id, number: data.number })
 				.then(e => {
 					console.log(e);
 				})
@@ -209,6 +279,7 @@ export default {
 		},
 		//计算总价
 		calcTotal() {
+			let num = 0
 			let list = this.cartList;
 			if (list.length === 0) {
 				this.empty = true;
@@ -218,12 +289,15 @@ export default {
 			let checked = true;
 			list.forEach(item => {
 				if (item.checked === true) {
+					num++
+					
 					total += item.productInfo.price * item.cart_num;
 				} else if (checked === true) {
 					checked = false;
 				}
 			});
 			this.allChecked = checked;
+			this.choseNum = num
 			this.total = Number(total.toFixed(2));
 		},
 		//创建订单
@@ -245,9 +319,48 @@ export default {
 </script>
 
 <style lang="scss">
+	page {
+		// height: 100%;
+	}
+	.header {
+		height: 140rpx;
+		position: absolute;
+		top: 0;
+		width: 100%;
+		display: flex;
+		justify-content: space-between;
+		background-color: #fff;
+		padding: 30rpx;
+		margin-bottom: 20rpx;
+		z-index: 99;
+		view {
+			margin: auto 0;
+		}
+		view:nth-child(1) {
+			color: #333333;
+			font-weight: bold;
+			font-size: 30rpx;
+		}
+		view:nth-child(2) {
+			border: solid 1rpx #EF3A55;
+			color: #EF3A55;
+			border-radius: 50rpx;
+			padding: 10rpx;
+			font-weight: bold;
+			font-size: 28rpx;
+		}
+	}
 .container {
+	height: 100%;
 	padding-bottom: 134rpx;
 	background-color: $page-color-base;
+	
+	.scrollBox {
+		position: absolute;
+		top: 140rpx;
+		// margin-top: 120rpx;
+		height: calc(100% - 300rpx);
+	}
 	/* 空白页 */
 	.empty {
 		position: fixed;
@@ -271,7 +384,7 @@ export default {
 			font-size: $font-sm + 2rpx;
 			color: $font-color-disabled;
 			.navigator {
-				color: $uni-color-primary;
+				color: #438BED;
 				margin-left: 16rpx;
 			}
 		}
@@ -279,12 +392,16 @@ export default {
 }
 /* 购物车列表项 */
 .cart-item {
+	height: 100%;
 	display: flex;
 	position: relative;
-	padding: 30rpx 40rpx;
+	margin: 15rpx;
+	background-color: #fff;
+	padding: 20rpx;
+	border-radius: 10rpx;
 	.image-wrapper {
-		width: 230rpx;
-		height: 230rpx;
+		width: 180rpx;
+		height: 180rpx;
 		flex-shrink: 0;
 		position: relative;
 		image {
@@ -292,9 +409,11 @@ export default {
 		}
 	}
 	.checkbox {
-		position: absolute;
-		left: -16rpx;
-		top: -16rpx;
+		// position: absolute;
+		// left: -16rpx;
+		// top: -16rpx;
+		margin: auto 0;
+		margin-right: 20rpx;
 		z-index: 8;
 		font-size: 44rpx;
 		line-height: 1;
@@ -304,8 +423,8 @@ export default {
 		border-radius: 50px;
 	}
 	.item-right {
-		display: flex;
-		flex-direction: column;
+		display: grid;
+		align-content: space-between;
 		flex: 1;
 		overflow: hidden;
 		position: relative;
@@ -317,6 +436,13 @@ export default {
 			height: 40rpx;
 			line-height: 40rpx;
 		}
+		.title {
+			overflow: hidden;
+			text-overflow: ellipsis;
+			display: -webkit-box;
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 1;
+		}
 		.attr {
 			font-size: $font-sm + 2rpx;
 			color: $font-color-light;
@@ -324,12 +450,40 @@ export default {
 			line-height: 50rpx;
 		}
 		.price {
+			font-size: $font-base + 4rpx;
+			color: #EF3A55;
 			height: 50rpx;
 			line-height: 50rpx;
 		}
 		.step {
 			margin-top: 20rpx;
 		}
+		.item-footer {
+			display: flex;
+			justify-content: space-between;
+			.num {
+				display: flex;
+				view {
+					width: 40rpx;
+					height: 40rpx;
+					border-radius: 50%;
+					text-align: center;
+					line-height: 40rpx;
+				}
+				.del {
+					border: solid 1rpx #767477;
+					color: #767477;
+					line-height: 30rpx;
+				}
+				.add {
+					color: #fff;
+					background-color: #438BED;
+				}
+				.number {
+					width: 70rpx;
+				}
+			}
+		}
 	}
 	.del-btn {
 		padding: 4rpx 10rpx;
@@ -338,26 +492,43 @@ export default {
 		color: $font-color-light;
 	}
 }
+.button {
+	background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+	background-color: #438BED;
+	height: 70rpx;
+	width: 200rpx;
+	text-align: center;
+	line-height: 70rpx;
+	border-radius: 50rpx;
+	color: #fff;
+	font-size: 30rpx;
+}
 /* 底部栏 */
 .action-section {
 	/* #ifdef H5 */
-	margin-bottom: 100rpx;
+	margin-bottom: 70rpx;
 	/* #endif */
 	position: fixed;
-	left: 30rpx;
+	// left: 30rpx;
 	bottom: 30rpx;
 	z-index: 95;
 	display: flex;
 	align-items: center;
-	width: 690rpx;
-	height: 100rpx;
+	width: 100%;
+	height: 140rpx;
 	padding: 0 30rpx;
 	background: rgba(255, 255, 255, 0.9);
-	box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
-	border-radius: 16rpx;
+	// box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
+	// border-radius: 16rpx;
 	.checkbox {
+		display: flex;
 		height: 52rpx;
 		position: relative;
+		.text {
+			color: #767477;
+			margin-left: 10rpx;
+			margin-top: 4rpx;
+		}
 		.icon-checked-box {
 			border-radius: 50rpx;
 			background-color: #ffffff;
@@ -370,7 +541,7 @@ export default {
 			color: $font-color-light;
 		}
 		.icon-checked {
-			color: $base-color;
+			color: #438BED;
 		}
 	}
 	.clear-btn {
@@ -401,7 +572,7 @@ export default {
 		padding-right: 40rpx;
 		.price {
 			font-size: $font-lg;
-			color: $font-color-dark;
+			color: #EF3A55;
 		}
 		.coupon {
 			font-size: $font-sm;
@@ -424,6 +595,6 @@ export default {
 /* 复选框选中状态 */
 .action-section .checkbox.checked,
 .cart-item .checkbox.checked {
-	color: $base-color;
+	color: #438BED;
 }
 </style>

+ 82 - 22
pages/category/category.vue

@@ -1,15 +1,31 @@
 <template>
 	<view class="content">
 		<scroll-view scroll-y class="left-aside">
-			<view v-for="item in flist" :key="item.id" class="f-item b-b" :class="{ active: item.id === currentId }" @click="tabtap(item)">{{ item.cate_name }}</view>
+			<view v-for="item in flist" :key="item.id" class="f-item b-b" :class="{ active: item.id === currentId }" @click="tabtap(item)">
+				{{ item.cate_name }}
+			</view>
 		</scroll-view>
 		<scroll-view scroll-with-animation scroll-y class="right-aside" @scroll="asideScroll" :scroll-top="tabScrollTop">
 			<view v-for="item in flist" :key="item.id" class="s-list" :id="'main-' + item.id">
 				<text class="s-item">{{ item.cate_name }}</text>
 				<view class="t-list ">
 					<view @click="navToList(item.id, titem.id)" class="t-item" v-for="titem in item.children" :key="titem.id">
-						<image :src="titem.pic"></image>
-						<text>{{ titem.cate_name }}</text>
+						<view class="">
+							<image :src="titem.pic"></image>
+						</view>
+						
+						<view class="titem-right">
+							<text>{{ titem.cate_name }}<br><text>跨店联盟洗护专属礼包</text></text>
+							<view class="titem-right-d">
+								<view class="price">
+									¥138
+								</view>
+								<view class="button">
+									马上购
+								</view>
+							</view>
+						</view>
+						
 					</view>
 				</view>
 			</view>
@@ -139,7 +155,8 @@ page,
 	flex-shrink: 0;
 	width: 200rpx;
 	height: 100%;
-	background-color: #fff;
+	background-color: #F2F2F2;
+	
 }
 .f-item {
 	display: flex;
@@ -151,17 +168,18 @@ page,
 	color: $font-color-base;
 	position: relative;
 	&.active {
-		color: $base-color;
-		background: #f8f8f8;
+		color: #000;
+		font-weight: bold;
+		background: #fff;
 		&:before {
 			content: '';
 			position: absolute;
 			left: 0;
 			top: 50%;
 			transform: translateY(-50%);
-			height: 36rpx;
-			width: 8rpx;
-			background-color: $base-color;
+			height: 100%;
+			width: 4rpx;
+			background-color: #1075FF;
 			border-radius: 0 4px 4px 0;
 			opacity: 0.8;
 		}
@@ -169,22 +187,27 @@ page,
 }
 
 .right-aside {
-	flex: 1;
+	// flex: 1;
+	background-color: #fff;
 	overflow: hidden;
-	padding-left: 20rpx;
-	padding-right: 20rpx;
+	.s-list {
+		margin-top: 2rpx;
+		// padding: 5rpx;
+		margin: 25rpx;
+	}
 }
 .s-item {
 	display: flex;
-	align-items: center;
+	// align-items: center;
 	height: 70rpx;
-	padding-top: 8rpx;
+	padding: 30rpx;
+	padding-top: 20rpx;
 	font-size: 28rpx;
 	color: $font-color-dark;
 }
 .t-list {
-	display: flex;
-	flex-wrap: wrap;
+	// display: flex;
+	// flex-wrap: wrap;
 	border-radius: 15rpx;
 	width: 100%;
 	background: #fff;
@@ -196,19 +219,56 @@ page,
 	}
 }
 .t-item {
+	margin-top: 20rpx;
 	flex-shrink: 0;
 	display: flex;
-	justify-content: center;
-	align-items: center;
-	flex-direction: column;
-	width: 171rpx;
+	border-bottom: solid 1rpx #F2F2F2;
+	// justify-content: center;
+	// align-items: center;
+	// flex-direction: column;
+	// padding: 30rpx;
+	width: 100%;
 	font-size: 26rpx;
 	color: #666;
 	padding-bottom: 20rpx;
 
 	image {
-		width: 140rpx;
-		height: 140rpx;
+		width: 180rpx;
+		height: 180rpx;
+		margin: 0 20rpx;
+		border-radius: 10rpx;
+	}
+	
+	.titem-right {
+		display: grid;
+		align-content: space-between;
+		text:nth-child(1) {
+			color: #333333;
+			font-size: 32rpx;
+		}
+		text:nth-child(2) {
+			color: #666666;
+			font-size: 28rpx;
+		}
+		.titem-right-d {
+			display: flex;
+			justify-content: space-between;
+			.price {
+				color: #FB3A2F;
+				font-size: 32rpx;
+			}
+			.button {
+				background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+				background-color: #438BED;
+				height: 50rpx;
+				line-height: 50rpx;
+				border-radius: 25rpx;
+				padding: 0 30rpx;
+				color: #fff;
+				font-size: 25rpx;
+			}
+		}
+		
 	}
 }
 </style>

+ 46 - 31
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" >
-							<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" >
+					<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>
+								<image :src="g.image" onerror="@/static/error/errorImage.jpg"></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,23 @@
 </template>
 
 <script>
+	export default {
+		data() {
+			return {
+				errImg: require('@/static/error/errorImage.jpg'),
+			}
+		},
+		props: ["goodsList"],
+		mounted() {
+			console.log(this.goodsList)
+		},
+		methods: {
+			//详情页
+			navToDetailPage(item) {
+				this.$parent.$parent.$parent.navToDetailPage(item)
+			},
+		}
+	}
 </script>
 
 <style lang="scss" scoped>
@@ -103,6 +106,7 @@
 	}
 	.list {
 		background-color: #F4F4F4;
+		height: 300rpx;
 		.list-g {
 			border-radius: 15rpx;
 			position: relative;
@@ -117,16 +121,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;
 					}
 				}
 			}

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

@@ -0,0 +1,137 @@
+<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 = "b.image" :onerror="defaultImg"></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" v-if="b.ot_price - b.price > 0"></image>
+								<text v-if="b.ot_price - b.price > 0">直降{{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 {
+				defaultImg: 'this.src="' + 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/recharge">
 				<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 {

+ 84 - 18
pages/index/sign.vue

@@ -1,20 +1,34 @@
 <template>
 	<view>
 		<view class="title-box">
-			<view class=" title-conetnt  position-relative">
-				<view class="title-img"><image src="/static/img/img08.png" mode="aspectFit"></image></view>
+			<view class="bg">
+				<image src="/static/img/sign-bg.png">
+			</view>
+			<view class=" title-conetnt  position-relative" @click="signTrue?'':integral()">
+				<view class="title-img"><image src="/static/img/sign-btn.png" mode="aspectFit"></image></view>
 				<view class="title-content-box">
-					<view class="title-text">已连续签到</view>
+					<view class="title-text">签到</view>
 					<view class="title-day-text">
-						<text class="title-day">{{actionDay}}</text>
-						<text>天</text>
+						今日签到可得10购物积分
+						<!-- <text class="title-day">签到</text> -->
+						<!-- <text>天</text> -->
 					</view>
-					<view class="title-button" :class="{'signAction':signTrue}" @click="signTrue?'':integral()">{{signTrue?'已签到':'立即签到'}}</view>
+					<!-- <view class="title-button" :class="{'signAction':signTrue}" @click="signTrue?'':integral()">{{signTrue?'已签到':'立即签到'}}</view> -->
 				</view>
 			</view>
-			<view class="title-tip"><text>共获得{{sum_integral}}积分,总签到{{allSign}}天</text></view>
+			<!-- <view class="title-tip"><text>共获得{{sum_integral}}积分,总签到{{allSign}}天</text></view> -->
+		</view>
+		<view class="conenter">
+			<view class="money"><text>{{sum_integral}}</text><br>获得金额
+			</view>
+			<view class="l"></view>
+			<view class="day"><text>{{allSign}}</text><br>签到天数</view>
 		</view>
-		<calendar class="sign-date-box" :checks="signList" checksClass="" :checkTextShow="true" checksIcon="/static/img/img07.png"></calendar>
+		<view class="explain">
+			签到说明
+			<image src="../../static/img/img74.png"></image>
+		</view>
+		<!-- <calendar class="sign-date-box" :checks="signList" checksClass="" :checkTextShow="true" checksIcon="/static/img/img07.png"></calendar> -->
 	</view>
 </template>
 
@@ -121,14 +135,23 @@ page {
 	padding-top: 120rpx;
 	color: #ffffff;
 	height: 590rpx;
+	.bg {
+		position: absolute;
+		width: 100%;
+		top: 0;
+		image {
+			width: 100%;
+			height: 590rpx;
+		}
+		
+	}
 	.title-conetnt {
-		height: 350rpx;
-		width: 350rpx;
+		height: 240rpx;
 		margin: 0 auto;
 		text-align: center;
 		.title-img {
 			position: absolute;
-			top: 0;
+			top: 60rpx;
 			left: 0;
 			height: 100%;
 			width: 100%;
@@ -140,16 +163,18 @@ page {
 		.title-content-box {
 			position: absolute;
 			width: 100%;
+			text-align: center;
 			.title-day-text {
-				padding: 20rpx;
-				font-size: $font-base - 2rpx;
-				.title-day {
-					font-size: 60rpx;
-				}
+				// margin: auto 0 ;
+				// width: 150%;
+				padding-top: 100rpx;
+				// margin-right: 75%;
+				// padding: -50rpx;
+				font-size: $font-base + 2rpx;
 			}
 			.title-text {
-				font-size: 26rpx;
-				padding-top: 100rpx;
+				font-size: 50rpx;
+				padding-top: 140rpx;
 			}
 			.title-button {
 				background-color: #fe7e51;
@@ -174,4 +199,45 @@ page {
 	text-align: center;
 	margin-top: -40rpx;
 }
+.conenter {
+	background-color: #fff;
+	display: flex;
+	padding: 60rpx 0;
+	margin: 0 30rpx;
+	border-radius: 10rpx;
+	position: relative;
+	top: -80rpx;
+	
+	.l {
+		width: 2rpx;
+		background-color: #EFEFEF;
+	}
+	.money,.day {
+		width: 50%;
+		text-align: center;
+		color: #7e7e7e;
+		font-family: PingFang-SC-Bold;
+		text {
+			font-size: 50rpx;
+			font-weight: bold;
+		}
+	}
+}
+.explain {
+	font-family: PingFang-SC-Bold;
+	font-size: 30rpx;
+	color: #333333;
+	position: relative;
+	top: -60rpx;
+	background-color: #fff;
+	padding: 30rpx;
+	margin: 0 30rpx;
+	border-radius: 10rpx;
+	image {
+		float: right;
+		width: 14rpx;
+		height: 30rpx;
+		margin-top: 6rpx;
+	}
+}
 </style>

+ 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>

+ 153 - 0
pages/money/conversionIntegral.vue

@@ -0,0 +1,153 @@
+<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 class="button">
+			确定兑换
+		</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 {
+					}
+				}
+			}
+		}
+		
+		.button {
+			text-align: center;
+			margin: 0 auto;
+			width: 90%;
+			background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+			height: 70rpx;
+			line-height: 70rpx;
+			border-radius: 50rpx;
+			color: #fff;
+			font-size: 32rpx;
+			margin-top: 80rpx ;
+		}
+	}
+</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); */
 }

+ 36 - 29
pages/money/paySuccess.vue

@@ -1,10 +1,11 @@
 <template>
 	<view class="content">
-		<text class="success-icon iconfont iconroundcheck"></text>
+		<image src="../../static/img/pays.png" class="headerImg"></image>
+		<!-- <text class="success-icon iconfont iconroundcheck"></text> -->
 		<text class="tit">支付成功</text>
 		<view class="btn-group">
-			<navigator :url="'/pages/order/orderDetail?id='+orderId" open-type="redirect" class="mix-btn">查看订单</navigator>
-			<navigator url="/pages/index/index" open-type="switchTab" class="mix-btn hollow">返回首页</navigator>
+			<navigator :url="'/pages/order/orderDetail?id='+orderId"><view class="lookorder">查看订单</view></navigator>
+			<view class="btntoindex" @click="tabTo('/pages/index/index')">返回首页</view>
 		</view>
 	</view>
 </template>
@@ -21,45 +22,51 @@
 			this.orderId = opt.orderid;
 		},
 		methods: {
-			
+			//跳转
+			tabTo(url) {
+				uni.switchTab({
+					url: url
+				})
+			},
 		}
 	}
 </script>
 
-<style lang='scss'>
+<style lang='scss' scoped>
+	page {
+		background-color: #fff;
+		height: 100%;
+	}
+	.headerImg {
+		margin-top: 70rpx;
+		width: 280rpx;
+		height: 280rpx;
+	}
 	.content{
 		display: flex;
 		flex-direction: column;
 		justify-content: center;
 		align-items: center;
 	}
-	.success-icon{
-		font-size: 160upx;
-		color: #5dbc7c;
-		margin-top: 100upx;
+	.btn-group {
+		display: flex;
+		margin-top: 80rpx;
+		view {
+			padding: 15rpx 80rpx;
+			margin: 30rpx;
+			border-radius: 15rpx;
+			border: solid 2rpx #438BED;
+		}
+		.lookorder {
+			background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+			color: #fff;
+		}
+		.btntoindex {
+			color: #438BED;
+		}
 	}
 	.tit{
 		font-size: 38upx;
 		color: #303133;
 	}
-	.btn-group{
-		padding-top: 100upx;
-	}
-	.mix-btn {
-		margin-top: 30upx;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		width: 600upx;
-		height: 80upx;
-		font-size: $font-lg;
-		color: #fff;
-		background-color: $base-color;
-		border-radius: 10upx;
-		&.hollow{
-			background: #fff;
-			color: #303133;
-			border: 1px solid #ccc;
-		}
-	}
 </style>

+ 201 - 232
pages/money/recharge.vue

@@ -1,264 +1,233 @@
 <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>
+	<view class="recharge">
+		<view class="header">
+			<text>{{ integral || '0.00' }}</text><br>
+			<text>我的当前积分</text>
 		</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="footer">
+			<view class="item" v-for="l in list" @click="confirm(l)">
+				<image :src="l.img" class="border"></image>
+				<image :src="l.icon" class="i"></image>
+				<view class="rechargetext">{{l.recharge}}<text>积分</text></view>
+				<view class="pay">充{{l.pay}}</view>
+				<view class="song" :style="{color: l.color}">送</view>
+				<view class="button">充值{{l.pay}}元</view>
+			</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;
+	export default {
+		data() {
+			return {
+				type: 'weixin',
+				list: 
+					[{
+						pay: 1000,
+						recharge: 100,
+						img: require('@/static/img/i1.png'),
+						icon: require('@/static/img/ic1.png'),
+						color: "#FF6000",
+					},
+					{
+						pay: 500,
+						recharge: 50,
+						img: require('@/static/img/i2.png'),
+						icon: require('@/static/img/ic2.png'),
+						color: "#FF3115",
+					},
+					{
+						pay: 200,
+						recharge: 20,
+						img: require('@/static/img/i3.png'),
+						icon: require('@/static/img/ic3.png'),
+						color: "#FF2C4F",
+					},
+					{
+						pay: 100,
+						recharge: 10,
+						img: require('@/static/img/i4.png'),
+						icon: require('@/static/img/ic3.png'),
+						color: "#9525FE ",
+					}]
+			}
 		},
-		// 提交
-		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'
-							});
+		methods: {
+			//充值
+			confirm(item) {
+				let obj = this
+				uni.showModal({
+					// title: "是否确认充值",
+					content: "确认充值?",
+					success:function(res){
+						if(res.confirm) {
+							obj.submit(item.pay)
+						}else {
+							console.log("xu")
 						}
-					});
-					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;
+			},
+			// 提交
+			submit(money) {
+				let obj = this;
+				// obj.payLoding = true;
+				// #ifdef H5
+				rechargeWechat({ price: 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: 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
 			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
+		},
+		computed: {
+			//积分
+			integral() {
+				return this.$store.state.user.userInfo.integral
 			}
-			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;
+<style lang="scss" scoped>
+	page {
+		height: 100%;
+		background-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;
+	.recharge {
+		background-color: #EBF3FF;
 	}
-	.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;
+	.header {
+		padding: 80rpx;
+		padding-top: 100rpx;
+		color: #438BED;
+		text-align: center;
+		text:nth-child(1) {
+			font-size: 80rpx;
 		}
 	}
-}
-.list {
-	padding-left: 30rpx;
-	margin-top: 30rpx;
-	background-color: #ffffff;
-	.box {
+	.footer {
+		border-radius: 50rpx 50rpx 0 0;
+		height: 70%;
 		display: flex;
-		align-items: center;
+		flex-wrap: wrap;
+		justify-content: space-between;
+		background-color: #fff;
 		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;
+		padding: 30rpx;
+		.item {
+			margin: 10rpx;
+			width: 320rpx;
+			height: 180rpx;
+			margin-bottom: 30rpx;
+			.border {
+				position: absolute;
+				width: 320rpx;
+				height: 190rpx;
+			}
+			.i {
+				width: 100rpx;
+				height: 100rpx;
+				position: relative;
+				left: 30rpx;
+				top: 20rpx;
+			}
+			view {
+				position: relative;
+			}
+			.rechargetext {
+				font-weight: bold;
+				color: #fff;
+				position: relative;
+				left: calc(10% + 120rpx);
+				font-size: 50rpx;
+				bottom: 55rpx;
+				text {
+					font-weight: 500;
+					margin-left: 5rpx;
+					font-size: 28rpx;
+				}
 			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
+			.pay {
+				text-align: center;
+				width: 150rpx;
+				bottom: 162rpx;
+				left: calc(50% - 75rpx);
+				color: #fff;
+				font-size: 28rpx;
+			}
+			.song {
+				height: 20rpx;
+				bottom: 156.8rpx;
+				left: 64rpx;
+				font-weight: bold;
+				color: #FF6000;
+				font-size: 36rpx;
+			}
+			.button {
+				background-color: #FFF583;
+				width: 200rpx;
+				height: 50rpx;
+				bottom: 95rpx;
+				line-height: 50rpx;
+				text-align: center;
+				border-radius: 10rpx;
+				color: #722E18;
+				left: calc(50% - 100rpx);
+				font-size: 26rpx;
+				box-shadow: 0px 3px 8px #aaa,
 			}
 		}
 	}
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
-
-.active-bg {
-	background-color: $color-gray !important;
-}
 </style>

+ 88 - 0
pages/money/rechargeUSDT.vue

@@ -0,0 +1,88 @@
+<template>
+	<view class="recharge">
+		<view class="title">
+			<view class="title-t">
+				充币二维码
+			</view>
+		</view>
+		<view class="content">
+			请转入USDT<br>
+			<image src="../../static/error/errorImage.jpg" mode=""></image>
+			<view class="button" @click="downLoad">保存二维码</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				url: ''
+			}
+		},
+		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);
+				// 	}
+				// })
+			}
+		}
+	}
+</script>
+
+<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;
+			}
+		}
+		.content {
+			padding: 50rpx;
+			background-color: #fff;
+			text-align: center;
+			color: #333333;
+			font-weight: bold;
+			image {
+				margin-top: 20rpx;
+				width: 200rpx;
+				height: 200rpx;
+			}
+			.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;
+			}
+		}
+	}
+</style>

+ 76 - 0
pages/money/record.vue

@@ -0,0 +1,76 @@
+<template>
+	<view class="record">
+		<view class=" item" v-for="l in list">
+			<view class="name">
+				<image src="../../static/error/missing-face.png" mode=""></image>
+				<view class="name-right">
+					<view class="nickname">{{l.name}}</view>
+					<view class="time">{{l.time}}</view>
+				</view>
+			</view>
+			<view class="u">
+				{{l.money}}
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				list: [{
+					name: "御风",
+					time: "2019-12-02 12:00:00",
+					money: "5000U"
+				},
+				{
+					name: "茶荷酒",
+					time: "2008-10-02 12:00:00",
+					money: "1000U"
+				}]
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+.record {
+	margin-top: 20rpx;
+	background-color: #fff;
+	.item {
+		padding: 30rpx;
+		margin: 20rpx;
+		margin-bottom: 0;
+		display: flex;
+		justify-content: space-between;
+		border-bottom: solid 1rpx #f8f8f8;
+		.name {
+			display: flex;
+			image {
+				height: 100rpx;
+				width: 100rpx;
+				margin-right: 30rpx;
+			}
+			.name-right {
+				display: grid;
+				align-content: space-between;
+				.nickname {
+					color: #3F454B;
+					font-size: 32rpx;
+				}
+				.time {
+					color: #999999;
+					font-size: 28rpx;
+				}
+			}
+		}
+		.u {
+			color: #EF3A55;
+			margin: auto 0;
+			font-weight: bold;
+			font-size: 35rpx;
+		}
+	}
+}
+</style>

+ 56 - 0
pages/money/submitSuccess.vue

@@ -0,0 +1,56 @@
+<template>
+	<view class="success">
+		<view class="header">
+			<image src="../../static/img/submitsuccess.png" mode=""></image><br>
+			<text>提交成功</text>
+		</view>
+		<view class="button" @click="tabTo('/pages/index/index')" >返回首页</view>
+		<!-- <navigator url="@/pages/index/index"><view class="btntoindex">返回首页</view></navigator> -->
+		<!-- <navigator url="/pages/index/index"><view class="btntoindex">返回首页</view></navigator> -->
+	</view>
+</template>
+
+<script>
+	export default {
+		methods: {
+			//跳转
+			tabTo(url) {
+				uni.switchTab({
+					url: url
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		height: 100%;
+		background-color: #fff;
+	}
+	.success {
+		.header {
+			margin-top: 200rpx;
+			text-align: center;
+			image {
+				width: 400rpx;
+				height: 300rpx;
+			}
+			text {
+				position: relative;
+				top: -40rpx;
+				font-size: 38rpx;
+				color: #333333;
+			}
+		}
+		.button {
+			margin: 50rpx auto;
+			border-radius: 10rpx;
+			padding: 15rpx;
+			text-align: center;
+			width: 320rpx;
+			border: solid 1rpx #438BED;
+			color: #438BED;
+		}
+	}
+</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;
 		}

+ 76 - 29
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,28 @@
 				<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>
+				<image :src="ls.image || errImg" 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>
+							<!-- <image src="../../static/error/errorImage.jpg"></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 +52,9 @@ export default {
 	data() {
 		return {
 			list: [],
-			bannerImg: []
+			bannerImg: [],
+			title: '',
+			errImg: require('@/static/error/errorImage.jpg')
 		};
 	},
 	onLoad(option) {
@@ -59,8 +62,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 +168,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 +189,7 @@ page {
 			.title {
 				font-size: $font-base;
 				color: $font-color-dark;
-				font-weight: 500;
+				font-weight: bold;
 			}
 			.goods-money {
 				position: absolute;
@@ -169,21 +197,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 {

+ 91 - 0
pages/user/exchangeIntegral.vue

@@ -0,0 +1,91 @@
+<template>
+	<view class="exchangeIntegral">
+		<view class="integral">
+			<view class="">
+				可兑换积分
+			</view>
+			<view class="num">
+				{{integral}}
+			</view>
+		</view>
+		<view class="applyIntegral">
+			<view class="">
+				申请兑换购物积分
+			</view>
+			<input type="number" class="num" v-model="num"/>
+		</view>
+		<view class="all" @click="all"><text>全部转换</text></view>
+		<view class="button" @click="submit">提交申请</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				integral: 1000,
+				num: ''
+			}
+		},
+		methods: {
+			all() {
+				this.num = this.integral
+			},
+			submit() {
+				if(this.integral < this.num) {
+					this.all()
+				}
+			}
+		},
+		watch: {
+			num() {
+				if(this.integral < this.num) {
+					this.all()
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.exchangeIntegral {
+		.integral,.applyIntegral{
+			display: flex;
+			justify-content: space-between;
+			padding: 30rpx;
+			background-color: #fff;
+			margin-bottom: 5rpx;
+			font-size: 30rpx;
+			.num {
+				font-size: 40rpx;
+				text-align: right;
+				max-width: 400rpx;
+			}
+		}
+		.all {
+			width: 100%;
+			height: 80rpx;
+			line-height: 80rpx;
+			margin-top: 2rpx;
+			background-color: #fff;
+			padding: 0 30rpx;
+			margin-bottom: 380rpx;
+			text {
+				margin:auto 0 ;
+				float: right;
+				font-size: 28rpx;
+				color: #EF3A55;
+			}
+		}
+		.button {
+			background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+			color: #fff;
+			width: 70%;
+			padding: 20rpx;
+			font-size: 30rpx;
+			border-radius: 10rpx;
+			text-align: center;
+			margin: 0 auto;
+		}
+	}
+</style>

+ 97 - 0
pages/user/integralTransforms.vue

@@ -0,0 +1,97 @@
+<template>
+	<view class="integralTransforms">
+		<view class="header">
+			<text class="title">{{ integral || '0.00' }}</text><br>
+			<text>可转换积分</text>
+		</view>
+		<view class="account">
+			<text class="title">收款人账户</text>
+			<input type="text" placeholder="请输入收款人账户" v-model="account"/>
+		</view>
+		<view class="num">
+			<text class="title">转账数量</text>
+				<view class="">
+					<text class="ti">¥</text>
+					<input type="number" v-model.number="num" placeholder="请输入转账数量" />
+				</view>
+		</view>
+		<view class="button" @click="submit">
+			提交申请
+		</view>
+	</view>
+</template>
+
+<script> 
+	export default {
+		data() {
+			return {
+				num: '',//转账数量
+				account: '',//收款人账户
+			}
+		},
+		methods: {
+			submit() {
+				const data = {
+					num: this.num,
+					account: this.account
+				}
+				console.log(data)
+			}
+		},
+		computed: {
+			//积分
+			integral() {
+				return this.$store.state.user.userInfo.integral
+			}
+		},
+		watch: {
+			num() {
+				if (this.num > this.integral) {
+					this.num = this.integral
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.integralTransforms {
+		.header,.account,.num {
+			background-color: #fff;
+			margin: 20rpx 0;
+			padding: 30rpx;
+			input {
+				margin-top: 10rpx;
+			}
+			.title {
+				font-size: 30rpx;
+				color: #333333;
+				font-family: PingFang-SC-Regular;
+			}
+		}
+		.header {
+			text-align: center;
+			text:nth-child(1) {
+				font-size: 45rpx;
+			}
+			text:nth-child(3) {
+				font-size: 30rpx;
+				color: #666666;
+			}
+		}
+		.num {
+			.ti {
+				float: left;
+			}
+		}
+		.button {
+			width: 520rpx;
+			margin: 60rpx auto;
+			padding: 20rpx;
+			text-align: center;
+			border-radius: 10rpx;
+			background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+			color: #fff;
+		}
+	}
+</style>

+ 83 - 6
pages/user/scoreAccumulate.vue

@@ -3,6 +3,16 @@
 		<!-- <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 class="header">
+			<image src="../../static/img/i-bg.png" mode=""></image>
+			<view class="integral">
+				{{ integral || '0.00' }}
+			</view>
+			<navigator url="/pages/money/conversionIntegral"><view class="right">转换USDT</view></navigator>
+		</view>
+		<view class="navbar">
+			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
+		</view>
 		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
 			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
 				<scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadData">
@@ -27,6 +37,10 @@
 				</scroll-view>
 			</swiper-item>
 		</swiper>
+		<view class="button">
+			<navigator url="/pages/user/integralTransforms" class="b-left">积分转账</navigator>
+			<navigator url="/pages/user/exchangeIntegral" class="b-right">转换购物积分</navigator>
+		</view>
 	</view>
 </template>
 
@@ -49,7 +63,15 @@ export default {
 			navList: [
 				{
 					state: 0,
-					text: '全部',
+					text: '收入',
+					loadingType: 'more',
+					orderList: [],
+					page: 1, //当前页数
+					limit: 10 //每次信息条数
+				},
+				{
+					state: 1,
+					text: '支出',
 					loadingType: 'more',
 					orderList: [],
 					page: 1, //当前页数
@@ -123,7 +145,13 @@ export default {
 		tabClick(index) {
 			this.tabCurrentIndex = index;
 		}
-	}
+	},
+	computed: {
+		//积分
+		integral() {
+			return this.$store.state.user.userInfo.integral
+		}
+	},
 };
 </script>
 
@@ -132,6 +160,31 @@ page {
 	background: #ffffff;
 	height: 100%;
 }
+.header {
+	image {
+		width: 100%;
+		height: 400rpx;
+	}
+	.integral {
+		width: 100%;
+		text-align: center;
+		position: absolute;
+		top: 160rpx;
+		color: #fff;
+		font-size: 80rpx;
+		font-weight: bold;
+	}
+	.right {
+		position: absolute;
+		top: 120rpx;
+		right: 0;
+		background-color: #fff;
+		border-radius: 10rpx 0 0 10rpx;
+		color: #438BED;
+		padding: 5rpx 15rpx;
+		font-size: 28rpx;
+	}
+}
 .navbar {
 	display: flex;
 	height: 40px;
@@ -150,7 +203,7 @@ page {
 		color: $font-color-dark;
 		position: relative;
 		&.current {
-			color: $base-color;
+			color: #438BED;
 			&:after {
 				content: '';
 				position: absolute;
@@ -159,7 +212,7 @@ page {
 				transform: translateX(-50%);
 				width: 44px;
 				height: 0;
-				border-bottom: 2px solid $base-color;
+				border-bottom: 2px solid #438BED;
 			}
 		}
 	}
@@ -167,7 +220,7 @@ page {
 // 列表
 
 .swiper-box {
-	height: calc(100% - 44px);
+	height: calc(100% - 180rpx - 400rpx);
 	padding-top: 10rpx;
 	.order-item {
 		padding: 20rpx 30rpx;
@@ -183,7 +236,7 @@ page {
 			}
 		}
 		.money {
-			color: #fd5b23;
+			color: #EF3A55;
 			font-size: $font-lg;
 		}
 	}
@@ -197,4 +250,28 @@ page {
 		background-color: #ffffff;
 	}
 }
+.button {
+	height: 180rpx;
+	width: 100%;
+	display: flex;
+	position: absolute;
+	padding: 40rpx 30rpx 60rpx 30rpx;
+	bottom: 0;
+	text-align: center;
+	.b-left,.b-right {
+		flex: 1;
+		height: 80rpx;
+		line-height: 80rpx;
+		margin: 0 30rpx;
+		border-radius: 50rpx;
+	}
+	.b-left {
+		color: #438BED;
+		border: solid 1rpx #438BED;
+	}
+	.b-right {
+		background: linear-gradient(90deg, #438BED 0%,  #44BFEC 100%);
+		color: #fff;
+	}
+}
 </style>

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-bg.png


BIN
static/img/i-t.png


BIN
static/img/i1.png


BIN
static/img/i2.png


BIN
static/img/i3.png


BIN
static/img/i4.png


BIN
static/img/ic1.png


BIN
static/img/ic2.png


BIN
static/img/ic3.png


BIN
static/img/ic4.png


BIN
static/img/is.png


BIN
static/img/pays.png


BIN
static/img/sign-bg.png


BIN
static/img/sign-btn.png


BIN
static/img/submitsuccess.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