xiaol 10 maanden geleden
bovenliggende
commit
2660442feb
3 gewijzigde bestanden met toevoegingen van 205 en 187 verwijderingen
  1. 9 0
      pages.json
  2. 193 170
      pages/index/order.vue
  3. 3 17
      pages/index/pledge.vue

+ 9 - 0
pages.json

@@ -210,6 +210,15 @@
 				"navigationBarBackgroundColor": "#051137",
 				"navigationBarTextStyle": "white"
 			}
+		},
+		{
+			"path": "pages/index/order",
+			"style": {
+				"navigationBarTitleText": "C2C订单",
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#051137",
+				"navigationBarTextStyle": "white"
+			}
 		}
 	],
 	"subPackages": [{ // 模块分包

+ 193 - 170
pages/index/order.vue

@@ -1,69 +1,37 @@
 <template>
 	<view class="all">
-		<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 class="fixedBox">
+			<view class="navList flex">
+				<view v-for="(item, index) in navItem" :key="index" class="navItem" 
+				:class="{ activeItem: tabIndex === index,tip:index == 0 }" @click="tabClick(index,0,1)">{{ item }}</view>
+			</view>
+			<view class="navList flex navList2">
+				<view v-for="(item, index) in navList" :key="index" class="navItem" 
+				:class="{ activeItem: tabCurr === index}" @click="tabClick(index,item.status,2)">{{ item.name }}</view>
+			</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">
-					<!-- 空白页 -->
-					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-		
-					<!-- 订单列表 -->
-					<view @click="goToOrderDetail(item)" v-for="(item, index) in tabItem.orderList" :key="index" class="order-item">
-						<view class="i-top b-b">
-							<text class="time">{{ item._add_time }}</text>
-							<text class="state" :style="{ color: item.stateTipColor }">{{ item._status._title }}</text>
-							<text v-if="item.status === 4" class="del-btn iconfont icondelete" @click="deleteOrder(index)"></text>
-						</view>
-		
-						<scroll-view v-if="item.cartInfo.length > 1" class="goods-box" scroll-x>
-							<view v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex" class="goods-item">
-								<image class="goods-img" :src="goodsItem.productInfo.image" mode="aspectFill"></image>
-							</view>
-						</scroll-view>
-						<!-- <view v-if="item.cartInfo.length === 1" class="goods-box-single" v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex">
-							<image class="goods-img" :src="goodsItem.productInfo.image" mode="aspectFill"></image>
-							<view class="right">
-								<text class="title clamp">{{ goodsItem.productInfo.store_name }}</text>
-								<text class="attr-box">{{ goodsItem.attrInfo ? goodsItem.attrInfo.suk : '' }} x {{ goodsItem.cart_num }}</text>
-								<text class="price">{{ moneyNum(goodsItem.productInfo.price)}}</text>
-							</view>
-						</view> -->
-						<view class="goods-box-single" v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex">
-							<image class="goods-img" :src="goodsItem.productInfo.image" mode="scaleToFill"></image>
-							<view class="right">
-								<view class="flex-start">
-									<text class="title clamp">{{ goodsItem.productInfo.store_name }}</text>
-									<text class="price">{{ goodsItem.productInfo.price|moneyNum }}</text>
-								</view>
-								<view class="row flex">
-									<text class="row_title">{{ goodsItem.productInfo.attrInfo ? goodsItem.productInfo.attrInfo.suk : '' }}</text>
-									<text class="attr-box"> x {{ goodsItem.cart_num }}</text>
-								</view>
-							</view>
-						</view>
-		
-						<view class="price-box">
-							共
-							<text class="num">{{ item.cartInfo.length }}</text>
-							件商品 邮费
-							<text class="price">{{ moneyNum(item.pay_postage)}}</text>
-							实付款
-							<text class="price">{{ moneyNum(item.pay_price)}}</text>
-						</view>
-						<view class="action-box b-t" v-if="item.status != 5">
-							<button v-if="item._status._title == '未支付'" class="action-btn" @click.stop="cancelOrder(item)">取消订单</button>
-							<button v-if="item._status._title == '未支付'" @click.stop="orderPay(item)" class="action-btn recom">立即支付</button>
-							<button v-if="item._status._title == '待评价'" class="action-btn">评价</button>
-							<button v-if="item._status._title == '待收货'" @click.stop="orderTake(item, index)" class="action-btn">确认收货</button>
-							<button v-if="item._status._title == '未发货'" class="action-btn" @click.stop="orderRefund(item)">申请退款</button>
-						</view>
+		<view class="listItemBox">
+			<view class="listItem" v-for="item,index in list" :key="index">
+				<view class="itemInfo flex">
+					<view class="flex_item">
+						<image src="/static/image/img20.png" style="width: 55rpx;" mode="widthFix"></image>
+						<view class="name">李丹丹</view>
 					</view>
-					<uni-load-more :status="tabItem.loadingType" color='#FFF'></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
+					<view class="" style="font-size: 24rpx;font-weight: bold;color: #0C5AFA;">进行中</view>
+				</view>
+				<view class="itemTip flex">
+					<view class="tipBox">
+						<view class="tipText">数量:10USTD</view>
+						<view class="tipText">总价:¥500</view>
+						<view class="tipText">2023-04-25 14:20:30</view>
+					</view>
+					<view class="" style="text-align: right;">
+						<image src="/static/image/img21.png" style="width: 40rpx;margin-bottom: 25rpx;" mode="widthFix"></image>
+						<view class="tipBtn">查看凭证</view>
+					</view>
+				</view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -80,125 +48,101 @@
 		},
 		data() {
 			return {
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '待付款',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '待发货',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '待收货',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 3,
-					text: '待评价',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 4,
-					text: '已完成',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				}
-			]
+			tabIndex: 0,
+			navItem: ['卖币订单','买币订单'],
+			tabCurr:0,
+			status:0,//状态
+			navList: [{
+				name:'全部',
+				status:0
+			},{
+				name:'挂单中',
+				status:1
+			},{
+				name:'已售罄',
+				status:2
+			},{
+				name:'已下架',
+				status:3
+			}],
+			page:1,
+			loadingType: "more",
+			list:[{},{},{},{},{},{},{},{},{},{}]
 		}
 		},
-		
-		onNavigationBarButtonTap(res){
-			console.log(res,['res']);
-		},
 		onLoad() {
-			this.loadData()
+			// this.loadData()
 		},
 		onReachBottom() {
 			this.loadData()
 		},
 		methods: {
-			nav(url) {
-				if (!this.hasLogin) {
-					// 保存地址
-					saveUrl();
-					// 登录拦截
-					interceptor();
-				} else {
-					uni.navigateTo({
-						url
-					});
-				}
-			},
-			loadData(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;
-				}
-				if (navItem.loadingType === 'noMore') {
-					//防止重复加载
+			loadData(){
+				let obj = this;
+				if (obj.loadingType == "nomore" ||
+					obj.loadingType == "loading"){
 					return;
 				}
-				// 修改当前对象状态为加载中
-				navItem.loadingType = 'loading';
-				if(index==0){
-					getsell({
-						type: state,
-						page: navItem.page,
-						limit: navItem.limit
-					})
-						.then(({ data }) => {
-							let arr = data.map(e => {
-								let b = this.orderStateExp(e.status);
-								e.stateTip = b.stateTip;
-								e.stateTipColor = b.stateTipColor;
-								return e;
-							});
-							navItem.orderList = navItem.orderList.concat(arr);
-							// console.log(navItem.orderList);
-							navItem.page++;
-							if (navItem.limit == data.length) {
-								//判断是否还有数据, 有改为 more, 没有改为noMore
-								navItem.loadingType = 'more';
-								return;
-							} else {
-								//判断是否还有数据, 有改为 more, 没有改为noMore
-								navItem.loadingType = 'noMore';
-							}
-							uni.hideLoading();
-							this.$set(navItem, 'loaded', true);
-						})
-						.catch(e => {
-							console.log(e);
-						});
+				obj.loadingType = "loading";
+				getList({
+					page:obj.page,
+					limit:10
+				},obj.status).then(res => {
+					if (res.length > 0) {
+						obj.list = obj.list.concat(res);
+						obj.page++;
+						if (obj.limit == res.length) {
+							obj.loadingType = "more";
+						} else {
+							obj.loadingType = "nomore";
+						}
+					}
+				});
+			},
+			tabClick(index,status,type) {
+				this.page = 1;
+				this.loadingType = "more";
+				this.list = []
+				if(type == 1){
+					this.tabIndex = index;
+					this.tabCurr = 0
+					if(this.tabIndex == 0){
+						this.navList = [{
+							name:'全部',
+							status:0
+						},{
+							name:'挂单中',
+							status:1
+						},{
+							name:'已售罄',
+							status:2
+						},{
+							name:'已下架',
+							status:3
+						}]
+					}
+					if(this.tabIndex == 1){
+						this.navList = [{
+							name:'全部',
+							status:0
+						},{
+							name:'进行中',
+							status:1
+						},{
+							name:'已完成',
+							status:2
+						},{
+							name:'已取消',
+							status:3
+						}]
+					}
+					this.loadData()
+				}else{
+					this.tabCurr = index
+					this.status = status
+					
+					this.loadData()
 				}
-				
 			},
 		}
 	};
@@ -211,4 +155,83 @@
 		background-color: #051137;
 		padding-top: var(--status-bar-height);
 	}
+	.fixedBox{
+		position: fixed;
+		top: 44px;
+		left: 0;
+		width: 100%;
+		z-index: 9;
+	}
+	.navList{
+		padding: 30rpx 50rpx 20rpx 50rpx;
+		background: #1F2A4A;
+		.navItem{
+			color: #fff;
+			font-size: 30rpx;
+			text-align: center;
+			width: 50%;
+			&.activeItem{
+				color: #0C5AFA;
+				position: relative;
+				&:after {
+					content: '';
+					position: absolute;
+					left:36%;
+					bottom: -20rpx;
+					width: 30%;
+					height: 8rpx;
+					 // transform: translateX(-50%);
+					border-bottom: 4rpx solid #0C5AFA;
+					border-radius: 0rpx 20rpx 0rpx 0rpx;
+				}
+			}
+			&.tip{
+				border-right: 1rpx solid #333D5B;
+			}
+		}
+	}
+	.navList2{
+		background: #051137;
+		padding: 30rpx 25rpx 20rpx 25rpx;
+	}
+	.listItemBox{
+		padding-top: 88px;
+		.listItem{
+			padding: 34rpx 34rpx;
+			background: #1F2A4A;
+			margin-bottom: 25rpx;
+			.name{
+				font-family: PingFang SC;
+				font-weight: bold;
+				font-size: 30rpx;
+				color: #FFFFFF;
+				padding-left: 25rpx;
+			}
+			.itemTpl{
+				font-family: PingFang SC;
+				font-weight: bold;
+				font-size: 36rpx;
+				color: #0C5AFA;
+				padding-top: 25rpx;
+			}
+			.itemTip{
+				.tipText{
+					font-family: PingFang SC;
+					font-weight: 500;
+					font-size: 26rpx;
+					color: #999999;
+					padding-top: 15rpx;
+				}
+				.tipBtn{
+					font-family: PingFang SC;
+					font-weight: bold;
+					font-size: 24rpx;
+					color: #FFFFFF;
+					background: linear-gradient(90deg, #0C5AFA, #1356FF);
+					border-radius: 7rpx;
+					padding: 15rpx 35rpx;
+				}
+			}
+		}
+	}
 </style>

+ 3 - 17
pages/index/pledge.vue

@@ -78,7 +78,9 @@
 		}
 		},
 		onNavigationBarButtonTap(res){
-			console.log(res,['res']);
+			uni.navigateTo({
+				url:'/pages/index/order'
+			})
 		},
 		onLoad() {
 			
@@ -99,22 +101,6 @@
 		padding-top: var(--status-bar-height);
 		color: #fff;
 	}
-	.navBar{
-		width: 100%;
-		position: fixed;
-		top: 0;
-		/* #ifdef H5 */
-		padding-top: calc(44px + env(safe-area-inset-top));
-		/* #endif */
-		/* #ifdef APP ||MP */
-		padding-top: calc(0px + env(safe-area-inset-top));
-		/* #endif */
-		background: #fff;
-		z-index: 99;
-		.searchBox{
-			padding: 25rpx 25rpx;
-		}
-	}
 	.navList{
 		padding: 30rpx 50rpx 20rpx 50rpx;
 		background: #1F2A4A;