Ver Fonte

修改问题

hejie há 3 anos atrás
pai
commit
ed22232817

+ 643 - 0
src/components/not-goods/index.vue

@@ -0,0 +1,643 @@
+<template>
+	<view class="container">
+	    <view class="status-box">
+	        <view class='status_tap_box' style="position: relative;">
+	            <view @tap="statusTap" class="status-label" v-for="(item,index) in statusType" :key="index" :class="item[0] == currentType ? 'active' : ''" :data-index="item[0]">
+	                {{item[1]}} <!-- {{index && (index+1) != statusType.length ? item[2] ? '(' + item[2] + ')' : '(0)' : ''}} -->
+	            </view>
+	        </view>
+	    </view>
+	    <not-goods v-if="haveGoods" textStr="抱歉!暂无相关订单" />
+	    <view class="order-list" v-if="orderList && orderList.length > 0">
+	        <view v-for="(li,index) in orderList"  :key="index">
+	            <!-- 未付款 -->
+	            <view class="a-order">
+	                <view class='overflow' :data-id="li.id">
+	                    <view class="list-title flex_r flex_ac flex_jb ellipsis">
+	                        <view class="flex_r flex_ac">
+	                            <view class="imgs_bar avaImgs">
+	                                <image class="image" :src="pt.platFormLogo" mode="widthFix" />
+	                            </view>{{pt.platFormName}}
+	                        </view>
+	                        <view class="fz_text r_color" v-if="li.data.assembleType != 1 && li.data.assembleStatus == 1">正在拼团中</view>
+	                        <view class="fz_text" v-else>{{li.data.statusMsg}}</view>
+	                    </view>
+	                    <view class="goods-info flex_r flex_ac flex_jb" :data-type="li.type" :data-id="li.data.orderDetailId" @tap="toDetails(li)">
+	                        <view class="goods-info-bar overflow flex_r flex_ac">
+	                            <block v-if="li.type == 1 || li.data.orderTypes == 4">
+	                                <view class="imgs_bar img-box">
+	                                    <image :src="li.data.image" mode='' class="goods-img"></image>
+	                                </view>
+	                                <view class='goods_name ellipsis2'>{{li.data.goodsName || ''}}</view>
+	                            </block>
+	                            <block v-else>
+	                                <scroll-view class="goods-img-container" scroll-x="true">
+	                                    <view class="imgs_bar img-box" v-for="(item,ind) in li.data.imgs" :key="ind">
+	                                        <image :src="item" mode='' class="goods-img"></image>
+	                                    </view>
+	                                </scroll-view>
+	                            </block>
+	                        </view>
+	                        <view class='goodsDetail_info'>
+	                            <view class='goods_price r_color' v-if="li.data.orderTypes!=5">¥<text class="r_color">{{li.data.totalPrice}}</text></view>
+								<view class='goods_price r_color' v-if="li.data.orderTypes==5"><text class="r_color">{{li.data.integral}}</text>积分</view>
+	                            <view class='unimport'>共{{li.data.buyCount}}件</view>
+	                        </view>
+	                    </view>
+	                </view>
+	                <view class="price-box flex_r flex_ac">
+						<view class="ptz" v-if="li.data.orderTypes == 7">
+							拼团金:{{li.data.totalAccountSpell}}
+						</view>
+	                    <view class="btn cancel-btn" :data-type="li.type" :data-types="li.data.orderTypes" :data-id="li.data.orderDetailId" @tap="toCancel" v-if="li.data.status == 2">取消订单</view>
+	                    <view class="btn topay-btn" :data-id="li.data.orderDetailId" :data-index="index" :data-ojsType="li.data.ojsType" @tap="toPay" v-if="li.data.status == 2">立即支付</view>
+	                    
+						<block v-else>
+							<block v-if="(li.data.status == 4 || li.data.status == 5) && li.returnType == 1 && li.data.orderTypes!=2">
+								<view class="btn" :data-orderno="li.data.orderNo" v-if="li.data.assembleStatus==2">拼团成功</view>
+								<view
+									v-if="li.refundId"
+								    class="btn"
+									:class="li&&li.refundId ? 'topay-btn':'cancel-btn'"
+								    :data-type="li.type"
+								    :data-id="li.data.orderDetailId"
+								    :data-reid="li.refundId"
+								    @tap="toRefundDetails(li)"
+								>
+								    退款中
+								</view>
+								<view
+									v-else
+								    class="btn"
+									:class="li&&li.refundId ? 'topay-btn':'cancel-btn'"
+								    :data-type="li.type"
+								    :data-id="li.data.orderDetailId"
+								    :data-reid="li.refundId"
+								    @tap="toRefund(li)"
+								>
+								    退货/退款
+								</view>
+							</block>
+	                        <view class="btn cancel-btn" v-if="li.data.status != 2" :data-type="li.type" :ata-id="li.data.orderDetailId" @tap="toDetail(li)">查看订单</view>
+	                        <view class="btn topay-btn" :data-id="li.data.orderDetailId" :data-status="li.data.status" :data-type="li.type" @tap="toTake" v-if="li.data.status == 4 || li.data.status == 3">确认收货</view>
+							<view class="btn topay-btn" :data-type="li.type" :data-id="li.data.orderDetailId" :data-no="li.data.orderNo" @tap="toCommen" v-if="li.comType && li.comType == 1">去评价</view>
+						</block>
+	                </view>
+	            </view>
+	            <!-- 未付款 end -->
+	        </view>
+	    </view>
+	    <view class="loading-indicator" :class="loadingMoreHidden ? 'opacity' : ''">{{loadingTip}}</view>
+	</view>
+</template>
+
+<script>
+// var reqApi = new ReqApi();
+// var toPayOpre = new ToPayOpre();
+var app = getApp();
+var appEv = app.$vm.$options;
+var page = 1;
+import notGoods from '@/components/not-goods/index'
+// import terraceTagbar from '@/components/terrace-tagbar/index'
+// import { ReqApi, ToPayOpre } from "../../utils/reqTools.js";
+	export default {
+		components:{
+			notGoods,
+			// terraceTagbar
+		},
+		data() {
+			return {
+				statusType: [
+				    ["1", "全部"],
+				    ["2", "待付款"],
+				    ["3", "待发货"],
+				    ["4", "待收货"],
+				    ["5", "已收货"]
+				],
+				orderList: [],
+				currentType: "1",
+				haveGoods: false,
+				loadingMoreHidden: true,
+				loadingTip: '没有更多了',
+				userId:"",
+				isweixin:'',
+				pt:{}
+			};
+		}, 
+		onLoad: function (options) {
+			var that = this;
+			this.currentType=options.status ? options.status : 1
+		},
+		onShow:function(){
+			let that=this
+			const userId = app.globalData.systemUserInfo && app.globalData.systemUserInfo.userId ? app.globalData.systemUserInfo.userId : '';
+			if (!userId || userId == '' || userId==undefined) {
+				// that.showAuth=true
+				appEv.authorizeUserInfo(res=>{
+					if(res){
+						that.clearData()
+						that.loadData()
+					}
+				},true)
+			}else{
+				that.clearData()
+				that.loadData()
+			}
+		},
+		methods:{
+			returnBtn:function(){
+				uni.navigateBack({})
+			},
+			clearData(isclearCat = true, callBack){
+			    page = 1;
+			    this.orderList=[]
+			    this.haveGoods=false
+			    if (callBack){
+			        callBack();
+			    }
+			},
+			loadData: function() {
+			    if (page == -1){
+			        return;
+			    }
+			    uni.showLoading({
+			        title: '加载中…',
+			        mask: true
+			    });
+			    var data = {
+			        page,
+			        status: this.currentType == 1 ? '' : this.currentType
+			    };
+			    
+			    var orderList = reqApi.pendingPayment(data);
+			    var that = this;
+			    
+			    if (orderList) {
+			        orderList.then(res => {
+			            setTimeout(() => {
+			                uni.hideLoading();
+			            }, 100)
+			            uni.stopPullDownRefresh();
+			            var resData = res.data.mallGoods;
+			            if (resData && resData.length <= 0) {
+			                if (page <= 1) {
+			                    that.haveGoods=true
+			                    that.loadingMoreHidden=true
+			                } else {
+			                    that.loadingMoreHidden=false
+			                }
+			            }
+			
+			            if (res.data.status == 200) {
+			                var obj = res.data.data;
+			                
+			                // that.arrangeData(obj);
+			                
+			                if (resData && resData.length > 0) {
+			                    var orderList = that.orderList;
+			                    var list = orderList.concat(resData);
+								that.pt=res.data.platform
+			                    that.orderList=list
+			                    that.haveGoods=false
+			                    that.loadingMoreHidden=true
+			                }
+			            } else {
+			                appEv.errTips(res.data.msg || '');
+			                if (res.data.status == 999) {
+			                    // that.arrangeData(res.data.data);
+			                    page = -1;
+			                    that.loadingMoreHidden=false
+			                }
+			            }
+			        })
+			    }
+			},
+			toDetails(data){
+				if(data.data.orderTypes == 4){
+					uni.navigateTo({
+					    url: '/pages/szw-order-details/index?id=' + data.data.orderDetailId + '&type=1',
+					})
+				}else{
+					uni.navigateTo({
+					    url: '/pages/szw-order-details/index?id=' + data.data.orderDetailId + '&type=' + data.type,
+					})
+				}
+			},
+			toDetail:function(data){
+				if(data.data.orderTypes == 4){
+					uni.navigateTo({
+					    url: '/pages/szw-order-details/index?id=' + data.data.orderDetailId + '&type=1',
+					})
+				}else{
+					uni.navigateTo({
+					    url: '/pages/szw-order-details/index?id=' + data.data.orderDetailId + '&type=' + data.type,
+					})
+				}
+			},
+			toRefund(data){
+			    uni.navigateTo({
+			        url: '/pages/order-refund/index?id=' + data.data.orderDetailId + '&type=' + data.type,
+			    })
+			},
+			toRefundDetails(data){
+			    uni.navigateTo({	
+			        url: '/pages/order-refund-details/index?id=' + data.refundId,
+			    })
+			},
+			// 立即支付
+			toPay(e){
+				var orderDetailIds = e.currentTarget.dataset.id;
+				var index = e.currentTarget.dataset.index;
+				var price = this.orderList[index].data.totalPrice;
+				var type = this.orderList[index].data.patType;
+				var teaIntegral = this.orderList[index].data.totalTeaInt;
+				var pfIntegral = this.orderList[index].data.totalPfInt;
+				var xfIntegral = this.orderList[index].data.totalXfInt;
+				var totalAccount = this.orderList[index].data.totalAccount;
+				var orderNo = this.orderList[index].data.orderNo;
+				let data = {
+					orderDetailIds:orderDetailIds,
+					types:1,
+					price:price,
+					account:totalAccount,
+					teaIntegral:teaIntegral,
+					pfIntegral:pfIntegral,
+					xfIntegral:xfIntegral,
+					zfType:type,
+					ojsType:e.currentTarget.dataset.ojstype
+				}
+				var info
+			    info = reqApi.payOrder(data);
+			    var that = this;
+			    if (info) {
+			        info.then(res => {
+			            if (res.data.status == 200) {
+			                toPayOpre.toPay(res.data.payParam);
+			            } else {
+			                appEv.errTips(res.data.msg || '支付失败');
+			            }
+			        });
+			    }
+			},
+			// 取消订单
+			toCancel(e){
+			    var isTuan = e.currentTarget.dataset.tuan;
+			    if (isTuan){
+			        uni.showModal({
+			            title: '温馨提示',
+			            content: '发起拼单24小时后,若未拼单成功将自动取消订单并退款哦~',
+			            showCancel: false,
+			            confirmText: "知道了",
+			            confirmColor: "#f02f2f"
+			        })
+			    }else{
+					var orderDetailId = e.currentTarget.dataset.id, type = e.currentTarget.dataset.type;
+					let types =e.currentTarget.dataset.types;
+					console.log(types)
+					if(types == 4){
+						type = 1;
+					}
+			        const info = reqApi.cancelOrder({ orderDetailId, type });
+			        var that = this;
+			        if (info) {
+			            info.then(res => {
+			                if (res.data.status == 200) {
+			                    uni.showToast({
+			                        title: res.data.msg || '订单已取消',
+			                        duration: 1200,
+			                        mask: true
+			                    })
+			                    setTimeout(function () {
+			                        that.clearData(false, () => {
+			                            that.loadData();
+			                        });
+			                    }, 1200);
+			                } else {
+			                    appEv.errTips(res.data.msg || '取消失败');
+			                }
+			            });
+			        }
+			    }
+			},
+			// 确认收货
+			toTake(e){
+				let type = e.currentTarget.dataset.type;
+			    var that = this;
+			    uni.showModal({
+			        content: '亲,“确定收货”代表着本订单的交付流程已经完成,不再支持任何形式的退换货。',
+			        confirmText: "确认收货",
+			        confirmColor: "#fa2f2e",
+			        cancelText: "取消",
+			        cancelColor: "#bbb",
+			        success(res) {
+			            if (res.confirm) {
+			                var orderDetailId = e.currentTarget.dataset.id
+			                const info = reqApi.takeOrder({ orderDetailId:orderDetailId, type:type });
+			                if (info) {
+			                    info.then(res => {
+			                        if (res.data.status == 200) {
+			                            appEv.errTips(res.data.msg);
+			                            setTimeout(function () {
+			                                that.clearData(false, () => {
+			                                    that.loadData();
+			                                });
+			                            }, 1200);
+			                        } else {
+			                            appEv.errTips(res.data.msg || '收货失败');
+			                        }
+			                    });
+			                }
+			            } else if (res.cancel) {
+			                // console.log('用户点击取消');
+			            }
+			        }
+			    })
+			},
+			// 整理数据
+			arrangeData(data = appEv.parameter("data")){
+			    var statusType = this.data.statusType;
+			    statusType[0][2] = data.wholeCount;
+			    statusType[1][2] = data.AlreadyPaymentCount;
+			    statusType[2][2] = data.AlreadyCompleteCount;
+			    statusType[3][2] = data.AlreadySettlementCount;
+			    this.statusType=statusType
+			},
+			//菜单切换
+			statusTap: function(e) {
+			    //重置数据
+			    var curType = e.currentTarget.dataset.index;
+			    this.currentType=curType
+			    this.clearData(false, this.loadData);
+			},
+			// 跳转拼团分享页面
+			toTuanShare(e){
+			    uni.navigateTo({
+			        url: '/pages/tuan-share-info/index?orderNo=' + e.currentTarget.dataset.orderno
+			    })
+			},
+			// 加评价
+			toCommen(e) {
+				let id = e.currentTarget.dataset.id
+				let no = e.currentTarget.dataset.no
+				let orderType = e.currentTarget.dataset.type
+				uni.navigateTo({
+					url: '/pages/add-goods-commen/index?orderId=' + id + '&orderNo=' + no + '&orderType=' + orderType
+				})
+			},
+			pageBack:function(){
+				uni.reLaunch({
+				    url: '/pages/my/index'
+				});
+			}
+		},
+		//上拉加载事件
+		onReachBottom: function () {
+		    if (page != -1) {
+		        var that = this;
+		        setTimeout(function () {
+		            // 为页数迭加1
+		            ++page;
+		            that.loadData();
+		        }, 800);
+		    }
+		},
+		// 下拉刷新
+		onPullDownRefresh: function () {
+		    var that = this;
+		    that.clearData(false, () => {
+		        that.loadData();
+		    });
+		}
+	}
+</script>
+
+<style lang="scss">
+page{
+	background-color: #f3f5f7;
+}
+.container {
+    width: 100%;
+}
+.fl{
+	float: left;
+}
+.fr{
+	float: right;
+}
+.overflow{
+	overflow: hidden;
+}
+.r_color{
+	color: #fa2f2e;
+}
+.loading-indicator{
+	width: 100%;
+	text-align: center;
+	font-size: 24rpx;
+	color: #666;
+	margin: 20rpx 0;
+	line-height: 1.5;
+}
+.opacity{
+	opacity: 0;
+	display: none;
+}
+.terraceComp{
+    height: 84rpx;
+}
+.terraceComp_fix{
+    position: fixed;
+    top: -12rpx;
+    left: 0;
+    right: 0;
+    z-index: 15;
+}
+.status-box {
+    width: 100%;
+    height: 94rpx;
+}
+.status_tap_box{
+	position: fixed;
+	left: 0;
+	top: 0;
+	width: 100%;
+	overflow: hidden;
+	line-height: 88rpx;
+	display: flex;
+    justify-content: space-between;
+    align-items: center;
+    background-color: #fff;
+	z-index: 300;
+	box-shadow: 0rpx 8rpx 8rpx rgba(0,0,0,0.025);
+}
+.status-box .status-label {
+	flex-grow: 1;
+    height: 100%;
+    text-align: center;
+    font-size: 28rpx;
+    color: #353535;
+    box-sizing: border-box;
+    position: relative;
+    border-bottom: 6rpx solid transparent;
+}
+
+.status-box .status-label.active {
+    color: #E05F0B;
+    border-bottom-color: #E05F0B;
+}
+
+.order-list {
+    width: 100%;
+	overflow: hidden;
+}
+
+.order-list .a-order {
+    width: 100%;
+    background-color: #fff;
+    margin-top: 24rpx;
+}
+
+.order-list .a-order .order-date {
+    padding: 16rpx 30rpx 20rpx;
+	line-height: 40rpx;
+    font-size: 26rpx;
+    color: #000;
+	overflow: hidden;
+}
+
+.order-list .a-order .order-date .red {
+    font-size: 26rpx;
+    color: #fa2f2e;
+}
+.order-list .a-order .order-date text.r_color{
+    font-weight: 600;
+}
+
+.a-order .goods-info{
+    width: 100%;
+	overflow: hidden;
+}
+.a-order .list-title {
+    font-size: 28rpx;
+    font-weight: 600;
+    color: #000;
+    padding: 16rpx 24rpx;
+}
+.avaImgs{
+    width: 54rpx;
+    height: 54rpx;
+    overflow: hidden;
+    border-radius: 50%;
+    background-color: #f3f5f7;
+    margin-right: 20rpx;
+}
+
+.goods-info{
+    width: 100%;
+    line-height: 39rpx;
+    font-size: 26rpx;
+    color: #000;
+    overflow: hidden;
+	padding: 30rpx;
+	background-color: #f3f5f7;
+	box-sizing: border-box;
+}
+.goods-info-bar{
+    width: calc(100% - 190rpx);
+}
+.goods-info .img-box {
+    width: 172rpx;
+    height: 120rpx;
+    overflow: hidden;
+    background-color: #fff;
+    border-radius: 12rpx;
+    margin-right: 20rpx;
+}
+.goods-info .img-box .goods-img {
+	width: 100%;
+	display: block;
+    height: 100%;
+}
+.goods-img-container {
+	overflow: hidden;
+	box-sizing: border-box;
+    width: 100%;
+    height: 172rpx;
+    white-space: nowrap;
+}
+.goods-img-container .img-box{
+    display: inline-block;
+}
+.goods-img-container .img-box:last-of-type{
+    margin-right: 0;
+}
+.goods-info .goods_name{
+    width: calc(100% - 192rpx);
+	font-size: 28rpx;
+    font-weight: 500;
+    color: #121212;
+}
+.goodsDetail_info{
+	overflow: hidden;
+	width: 180rpx;
+	line-height: 1.5;
+    text-align: right;
+}
+.goodsDetail_info .unimport{
+	font-size: 24rpx;
+	color: #999;
+}
+.goodsDetail_info .goods_price{
+	font-size: 26rpx;
+    line-height: 1.2;
+    font-weight:600;
+    margin-bottom: 10rpx;
+}
+.goodsDetail_info .goods_price text{
+    font-size: 36rpx;
+}
+
+.order-list .a-order .price-box {
+    position: relative;
+    width: 100%;
+    box-sizing: border-box;
+    padding: 16rpx 30rpx;
+    display: flex;
+	justify-content: flex-end;
+    font-size: 26rpx;
+}
+
+.a-order .price-box .btn {
+    box-sizing: border-box;
+    text-align: center;
+    border-radius: 40rpx;
+    margin-left: 20rpx;
+	border: 1rpx solid #ccc;
+    padding: 12rpx 24rpx;
+}
+.order-list .a-order .price-box .total-price {
+    color: #E05F0B;
+}
+
+.a-order .price-box .topay-btn {
+    border-color: #E05F0B;
+    color: #E05F0B;
+}
+
+.a-order .price-box .r_topay-btn {
+    border-color: #E05F0B;
+    background-color: #E05F0B;
+    color: #fff;
+}
+
+//拼团金
+.flot_left{
+	// float: left;
+	margin-left:auto;
+}
+.ptz{
+	color: #18BB88;font-size: 30rpx;
+	position: absolute;
+	left: 30rpx;
+}
+</style>

+ 29 - 1
src/pages.json

@@ -47,8 +47,36 @@
 			"style":{
 				"navigationBarTitleText": "购买协议"
 			}
+		},
+		{
+            "path" : "pages/notice/index",
+            "style":{
+            	"navigationBarTitleText": "用户须知"
+            }
+            
+        },
+		{
+		    "path" : "pages/about/index",
+		    "style":{
+		    	"navigationBarTitleText": "关于我们"
+		    }
+		    
+		},
+		{
+		    "path" : "pages/course/index",
+		    "style":{
+		    	"navigationBarTitleText": "新手教程"
+		    }
+		    
+		},
+		{
+		    "path" : "pages/szw-order-list/index",
+		    "style":{
+		    	"navigationBarTitleText": "订单详情"
+		    }
+		    
 		}
-	],
+    ],
 	"tabBar": {
 	    "color": "#505050",
 	    "selectedColor": "#12B280",

+ 46 - 0
src/pages/about/index.vue

@@ -0,0 +1,46 @@
+<template>
+	<view class="container">
+		<!-- 用户须知 -->
+		<jyf-parser :html="content" class="mar_t50"></jyf-parser>
+		<!-- 用户须知-end -->
+	</view>
+</template>
+
+<script>
+let app=getApp();
+// let reqApi = new ReqApi();
+var appEv = app.$vm.$options;
+import { post } from "@/request/api.js";
+import jyfParser from '@/components/jyf-parser/jyf-parser.vue'
+// import { ReqApi } from "@/utils/reqTools.js";
+	export default {
+		data() {
+			return {
+				content:''
+			};
+		},
+		onLoad(){
+			this.loadData()
+		},
+		methods:{
+			loadData(){
+				post("ShuZiTeaYW/shop/aboutUs").then(res => {
+				  if (res.status == 200) {
+				    this.content = res.data.content
+					console.log(this.content)
+				    // this.BannerImg = res.list;
+				  }
+				}); 
+			}
+		},
+		components:{
+					jyfParser
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+// 用户须知
+.container{border-top: 20rpx solid #f5f5f5;padding: 0 20rpx;box-sizing: border-box;}
+// 用户须知-end
+</style>

+ 22 - 0
src/pages/course/index.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 46 - 0
src/pages/notice/index.vue

@@ -0,0 +1,46 @@
+<template>
+	<view class="container">
+		<!-- 用户须知 -->
+		<jyf-parser :html="content" class="mar_t50"></jyf-parser>
+		<!-- 用户须知-end -->
+	</view>
+</template>
+
+<script>
+let app=getApp();
+// let reqApi = new ReqApi();
+var appEv = app.$vm.$options;
+import { post } from "@/request/api.js";
+import jyfParser from '@/components/jyf-parser/jyf-parser.vue'
+// import { ReqApi } from "@/utils/reqTools.js";
+	export default {
+		data() {
+			return {
+				content:''
+			};
+		},
+		onLoad(){
+			this.loadData()
+		},
+		methods:{
+			loadData(){
+				post("ShuZiTeaYW/shop/teaFriendNotice").then(res => {
+				  if (res.status == 200) {
+				    this.content = res.data.content
+					console.log(this.content)
+				    // this.BannerImg = res.list;
+				  }
+				});
+			}
+		},
+		components:{
+					jyfParser
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+// 用户须知
+.container{border-top: 20rpx solid #f5f5f5;padding: 0 20rpx;box-sizing: border-box;}
+// 用户须知-end
+</style>

+ 23 - 0
src/pages/product/productRetail.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class='partner'>
+    <span>测试</span>
+  </div>
+</template>
+<script>
+import { get, post } from '@/request/api.js';
+export default {
+  name: 'partner',
+  data () {
+    return {}
+  },
+  onLoad (option) {},
+  onLaunch () {},
+  onShow () {},
+  onHide () {},
+  methods: {},
+  computed: {},
+  watch: {}
+}
+</script>
+<style scoped lang='scss'>
+</style>

+ 23 - 0
src/pages/product/productWholesale.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class='partner'>
+    <span>测试</span>
+  </div>
+</template>
+<script>
+import { get, post } from '@/request/api.js';
+export default {
+  name: 'partner',
+  data () {
+    return {}
+  },
+  onLoad (option) {},
+  onLaunch () {},
+  onShow () {},
+  onHide () {},
+  methods: {},
+  computed: {},
+  watch: {}
+}
+</script>
+<style scoped lang='scss'>
+</style>

+ 643 - 0
src/pages/szw-order-list/index.vue

@@ -0,0 +1,643 @@
+<template>
+	<view class="container">
+	    <view class="status-box">
+	        <view class='status_tap_box' style="position: relative;">
+	            <view @tap="statusTap" class="status-label" v-for="(item,index) in statusType" :key="index" :class="item[0] == currentType ? 'active' : ''" :data-index="item[0]">
+	                {{item[1]}} <!-- {{index && (index+1) != statusType.length ? item[2] ? '(' + item[2] + ')' : '(0)' : ''}} -->
+	            </view>
+	        </view>
+	    </view>
+	    <not-goods v-if="haveGoods" textStr="抱歉!暂无相关订单" />
+	    <view class="order-list" v-if="orderList && orderList.length > 0">
+	        <view v-for="(li,index) in orderList"  :key="index">
+	            <!-- 未付款 -->
+	            <view class="a-order">
+	                <view class='overflow' :data-id="li.id">
+	                    <view class="list-title flex_r flex_ac flex_jb ellipsis">
+	                        <view class="flex_r flex_ac">
+	                            <view class="imgs_bar avaImgs">
+	                                <image class="image" :src="pt.platFormLogo" mode="widthFix" />
+	                            </view>{{pt.platFormName}}
+	                        </view>
+	                        <view class="fz_text r_color" v-if="li.data.assembleType != 1 && li.data.assembleStatus == 1">正在拼团中</view>
+	                        <view class="fz_text" v-else>{{li.data.statusMsg}}</view>
+	                    </view>
+	                    <view class="goods-info flex_r flex_ac flex_jb" :data-type="li.type" :data-id="li.data.orderDetailId" @tap="toDetails(li)">
+	                        <view class="goods-info-bar overflow flex_r flex_ac">
+	                            <block v-if="li.type == 1 || li.data.orderTypes == 4">
+	                                <view class="imgs_bar img-box">
+	                                    <image :src="li.data.image" mode='' class="goods-img"></image>
+	                                </view>
+	                                <view class='goods_name ellipsis2'>{{li.data.goodsName || ''}}</view>
+	                            </block>
+	                            <block v-else>
+	                                <scroll-view class="goods-img-container" scroll-x="true">
+	                                    <view class="imgs_bar img-box" v-for="(item,ind) in li.data.imgs" :key="ind">
+	                                        <image :src="item" mode='' class="goods-img"></image>
+	                                    </view>
+	                                </scroll-view>
+	                            </block>
+	                        </view>
+	                        <view class='goodsDetail_info'>
+	                            <view class='goods_price r_color' v-if="li.data.orderTypes!=5">¥<text class="r_color">{{li.data.totalPrice}}</text></view>
+								<view class='goods_price r_color' v-if="li.data.orderTypes==5"><text class="r_color">{{li.data.integral}}</text>积分</view>
+	                            <view class='unimport'>共{{li.data.buyCount}}件</view>
+	                        </view>
+	                    </view>
+	                </view>
+	                <view class="price-box flex_r flex_ac">
+						<view class="ptz" v-if="li.data.orderTypes == 7">
+							拼团金:{{li.data.totalAccountSpell}}
+						</view>
+	                    <view class="btn cancel-btn" :data-type="li.type" :data-types="li.data.orderTypes" :data-id="li.data.orderDetailId" @tap="toCancel" v-if="li.data.status == 2">取消订单</view>
+	                    <view class="btn topay-btn" :data-id="li.data.orderDetailId" :data-index="index" :data-ojsType="li.data.ojsType" @tap="toPay" v-if="li.data.status == 2">立即支付</view>
+	                    
+						<block v-else>
+							<block v-if="(li.data.status == 4 || li.data.status == 5) && li.returnType == 1 && li.data.orderTypes!=2">
+								<view class="btn" :data-orderno="li.data.orderNo" v-if="li.data.assembleStatus==2">拼团成功</view>
+								<view
+									v-if="li.refundId"
+								    class="btn"
+									:class="li&&li.refundId ? 'topay-btn':'cancel-btn'"
+								    :data-type="li.type"
+								    :data-id="li.data.orderDetailId"
+								    :data-reid="li.refundId"
+								    @tap="toRefundDetails(li)"
+								>
+								    退款中
+								</view>
+								<view
+									v-else
+								    class="btn"
+									:class="li&&li.refundId ? 'topay-btn':'cancel-btn'"
+								    :data-type="li.type"
+								    :data-id="li.data.orderDetailId"
+								    :data-reid="li.refundId"
+								    @tap="toRefund(li)"
+								>
+								    退货/退款
+								</view>
+							</block>
+	                        <view class="btn cancel-btn" v-if="li.data.status != 2" :data-type="li.type" :ata-id="li.data.orderDetailId" @tap="toDetail(li)">查看订单</view>
+	                        <view class="btn topay-btn" :data-id="li.data.orderDetailId" :data-status="li.data.status" :data-type="li.type" @tap="toTake" v-if="li.data.status == 4 || li.data.status == 3">确认收货</view>
+							<view class="btn topay-btn" :data-type="li.type" :data-id="li.data.orderDetailId" :data-no="li.data.orderNo" @tap="toCommen" v-if="li.comType && li.comType == 1">去评价</view>
+						</block>
+	                </view>
+	            </view>
+	            <!-- 未付款 end -->
+	        </view>
+	    </view>
+	    <view class="loading-indicator" :class="loadingMoreHidden ? 'opacity' : ''">{{loadingTip}}</view>
+	</view>
+</template>
+
+<script>
+var reqApi = new ReqApi();
+var toPayOpre = new ToPayOpre();
+var app = getApp();
+var appEv = app.$vm.$options;
+var page = 1;
+import notGoods from '@/components/not-goods/index'
+// import terraceTagbar from '@/components/terrace-tagbar/index'
+// import { ReqApi, ToPayOpre } from "../../utils/reqTools.js";
+	export default {
+		components:{
+			notGoods,
+			// terraceTagbar
+		},
+		data() {
+			return {
+				statusType: [
+				    ["1", "全部"],
+				    ["2", "待付款"],
+				    ["3", "待发货"],
+				    ["4", "待收货"],
+				    ["5", "已收货"]
+				],
+				orderList: [],
+				currentType: "1",
+				haveGoods: false,
+				loadingMoreHidden: true,
+				loadingTip: '没有更多了',
+				userId:"",
+				isweixin:'',
+				pt:{}
+			};
+		}, 
+		onLoad: function (options) {
+			var that = this;
+			this.currentType=options.status ? options.status : 1
+		},
+		onShow:function(){
+			let that=this
+			const userId = app.globalData.systemUserInfo && app.globalData.systemUserInfo.userId ? app.globalData.systemUserInfo.userId : '';
+			if (!userId || userId == '' || userId==undefined) {
+				// that.showAuth=true
+				appEv.authorizeUserInfo(res=>{
+					if(res){
+						that.clearData()
+						that.loadData()
+					}
+				},true)
+			}else{
+				that.clearData()
+				that.loadData()
+			}
+		},
+		methods:{
+			returnBtn:function(){
+				uni.navigateBack({})
+			},
+			clearData(isclearCat = true, callBack){
+			    page = 1;
+			    this.orderList=[]
+			    this.haveGoods=false
+			    if (callBack){
+			        callBack();
+			    }
+			},
+			loadData: function() {
+			    if (page == -1){
+			        return;
+			    }
+			    uni.showLoading({
+			        title: '加载中…',
+			        mask: true
+			    });
+			    var data = {
+			        page,
+			        status: this.currentType == 1 ? '' : this.currentType
+			    };
+			    
+			    var orderList = reqApi.pendingPayment(data);
+			    var that = this;
+			    
+			    if (orderList) {
+			        orderList.then(res => {
+			            setTimeout(() => {
+			                uni.hideLoading();
+			            }, 100)
+			            uni.stopPullDownRefresh();
+			            var resData = res.data.mallGoods;
+			            if (resData && resData.length <= 0) {
+			                if (page <= 1) {
+			                    that.haveGoods=true
+			                    that.loadingMoreHidden=true
+			                } else {
+			                    that.loadingMoreHidden=false
+			                }
+			            }
+			
+			            if (res.data.status == 200) {
+			                var obj = res.data.data;
+			                
+			                // that.arrangeData(obj);
+			                
+			                if (resData && resData.length > 0) {
+			                    var orderList = that.orderList;
+			                    var list = orderList.concat(resData);
+								that.pt=res.data.platform
+			                    that.orderList=list
+			                    that.haveGoods=false
+			                    that.loadingMoreHidden=true
+			                }
+			            } else {
+			                appEv.errTips(res.data.msg || '');
+			                if (res.data.status == 999) {
+			                    // that.arrangeData(res.data.data);
+			                    page = -1;
+			                    that.loadingMoreHidden=false
+			                }
+			            }
+			        })
+			    }
+			},
+			toDetails(data){
+				if(data.data.orderTypes == 4){
+					uni.navigateTo({
+					    url: '/pages/szw-order-details/index?id=' + data.data.orderDetailId + '&type=1',
+					})
+				}else{
+					uni.navigateTo({
+					    url: '/pages/szw-order-details/index?id=' + data.data.orderDetailId + '&type=' + data.type,
+					})
+				}
+			},
+			toDetail:function(data){
+				if(data.data.orderTypes == 4){
+					uni.navigateTo({
+					    url: '/pages/szw-order-details/index?id=' + data.data.orderDetailId + '&type=1',
+					})
+				}else{
+					uni.navigateTo({
+					    url: '/pages/szw-order-details/index?id=' + data.data.orderDetailId + '&type=' + data.type,
+					})
+				}
+			},
+			toRefund(data){
+			    uni.navigateTo({
+			        url: '/pages/order-refund/index?id=' + data.data.orderDetailId + '&type=' + data.type,
+			    })
+			},
+			toRefundDetails(data){
+			    uni.navigateTo({	
+			        url: '/pages/order-refund-details/index?id=' + data.refundId,
+			    })
+			},
+			// 立即支付
+			toPay(e){
+				var orderDetailIds = e.currentTarget.dataset.id;
+				var index = e.currentTarget.dataset.index;
+				var price = this.orderList[index].data.totalPrice;
+				var type = this.orderList[index].data.patType;
+				var teaIntegral = this.orderList[index].data.totalTeaInt;
+				var pfIntegral = this.orderList[index].data.totalPfInt;
+				var xfIntegral = this.orderList[index].data.totalXfInt;
+				var totalAccount = this.orderList[index].data.totalAccount;
+				var orderNo = this.orderList[index].data.orderNo;
+				let data = {
+					orderDetailIds:orderDetailIds,
+					types:1,
+					price:price,
+					account:totalAccount,
+					teaIntegral:teaIntegral,
+					pfIntegral:pfIntegral,
+					xfIntegral:xfIntegral,
+					zfType:type,
+					ojsType:e.currentTarget.dataset.ojstype
+				}
+				var info
+			    info = reqApi.payOrder(data);
+			    var that = this;
+			    if (info) {
+			        info.then(res => {
+			            if (res.data.status == 200) {
+			                toPayOpre.toPay(res.data.payParam);
+			            } else {
+			                appEv.errTips(res.data.msg || '支付失败');
+			            }
+			        });
+			    }
+			},
+			// 取消订单
+			toCancel(e){
+			    var isTuan = e.currentTarget.dataset.tuan;
+			    if (isTuan){
+			        uni.showModal({
+			            title: '温馨提示',
+			            content: '发起拼单24小时后,若未拼单成功将自动取消订单并退款哦~',
+			            showCancel: false,
+			            confirmText: "知道了",
+			            confirmColor: "#f02f2f"
+			        })
+			    }else{
+					var orderDetailId = e.currentTarget.dataset.id, type = e.currentTarget.dataset.type;
+					let types =e.currentTarget.dataset.types;
+					console.log(types)
+					if(types == 4){
+						type = 1;
+					}
+			        const info = reqApi.cancelOrder({ orderDetailId, type });
+			        var that = this;
+			        if (info) {
+			            info.then(res => {
+			                if (res.data.status == 200) {
+			                    uni.showToast({
+			                        title: res.data.msg || '订单已取消',
+			                        duration: 1200,
+			                        mask: true
+			                    })
+			                    setTimeout(function () {
+			                        that.clearData(false, () => {
+			                            that.loadData();
+			                        });
+			                    }, 1200);
+			                } else {
+			                    appEv.errTips(res.data.msg || '取消失败');
+			                }
+			            });
+			        }
+			    }
+			},
+			// 确认收货
+			toTake(e){
+				let type = e.currentTarget.dataset.type;
+			    var that = this;
+			    uni.showModal({
+			        content: '亲,“确定收货”代表着本订单的交付流程已经完成,不再支持任何形式的退换货。',
+			        confirmText: "确认收货",
+			        confirmColor: "#fa2f2e",
+			        cancelText: "取消",
+			        cancelColor: "#bbb",
+			        success(res) {
+			            if (res.confirm) {
+			                var orderDetailId = e.currentTarget.dataset.id
+			                const info = reqApi.takeOrder({ orderDetailId:orderDetailId, type:type });
+			                if (info) {
+			                    info.then(res => {
+			                        if (res.data.status == 200) {
+			                            appEv.errTips(res.data.msg);
+			                            setTimeout(function () {
+			                                that.clearData(false, () => {
+			                                    that.loadData();
+			                                });
+			                            }, 1200);
+			                        } else {
+			                            appEv.errTips(res.data.msg || '收货失败');
+			                        }
+			                    });
+			                }
+			            } else if (res.cancel) {
+			                // console.log('用户点击取消');
+			            }
+			        }
+			    })
+			},
+			// 整理数据
+			arrangeData(data = appEv.parameter("data")){
+			    var statusType = this.data.statusType;
+			    statusType[0][2] = data.wholeCount;
+			    statusType[1][2] = data.AlreadyPaymentCount;
+			    statusType[2][2] = data.AlreadyCompleteCount;
+			    statusType[3][2] = data.AlreadySettlementCount;
+			    this.statusType=statusType
+			},
+			//菜单切换
+			statusTap: function(e) {
+			    //重置数据
+			    var curType = e.currentTarget.dataset.index;
+			    this.currentType=curType
+			    this.clearData(false, this.loadData);
+			},
+			// 跳转拼团分享页面
+			toTuanShare(e){
+			    uni.navigateTo({
+			        url: '/pages/tuan-share-info/index?orderNo=' + e.currentTarget.dataset.orderno
+			    })
+			},
+			// 加评价
+			toCommen(e) {
+				let id = e.currentTarget.dataset.id
+				let no = e.currentTarget.dataset.no
+				let orderType = e.currentTarget.dataset.type
+				uni.navigateTo({
+					url: '/pages/add-goods-commen/index?orderId=' + id + '&orderNo=' + no + '&orderType=' + orderType
+				})
+			},
+			pageBack:function(){
+				uni.reLaunch({
+				    url: '/pages/my/index'
+				});
+			}
+		},
+		//上拉加载事件
+		onReachBottom: function () {
+		    if (page != -1) {
+		        var that = this;
+		        setTimeout(function () {
+		            // 为页数迭加1
+		            ++page;
+		            that.loadData();
+		        }, 800);
+		    }
+		},
+		// 下拉刷新
+		onPullDownRefresh: function () {
+		    var that = this;
+		    that.clearData(false, () => {
+		        that.loadData();
+		    });
+		}
+	}
+</script>
+
+<style lang="scss">
+page{
+	background-color: #f3f5f7;
+}
+.container {
+    width: 100%;
+}
+.fl{
+	float: left;
+}
+.fr{
+	float: right;
+}
+.overflow{
+	overflow: hidden;
+}
+.r_color{
+	color: #fa2f2e;
+}
+.loading-indicator{
+	width: 100%;
+	text-align: center;
+	font-size: 24rpx;
+	color: #666;
+	margin: 20rpx 0;
+	line-height: 1.5;
+}
+.opacity{
+	opacity: 0;
+	display: none;
+}
+.terraceComp{
+    height: 84rpx;
+}
+.terraceComp_fix{
+    position: fixed;
+    top: -12rpx;
+    left: 0;
+    right: 0;
+    z-index: 15;
+}
+.status-box {
+    width: 100%;
+    height: 94rpx;
+}
+.status_tap_box{
+	position: fixed;
+	left: 0;
+	top: 0;
+	width: 100%;
+	overflow: hidden;
+	line-height: 88rpx;
+	display: flex;
+    justify-content: space-between;
+    align-items: center;
+    background-color: #fff;
+	z-index: 300;
+	box-shadow: 0rpx 8rpx 8rpx rgba(0,0,0,0.025);
+}
+.status-box .status-label {
+	flex-grow: 1;
+    height: 100%;
+    text-align: center;
+    font-size: 28rpx;
+    color: #353535;
+    box-sizing: border-box;
+    position: relative;
+    border-bottom: 6rpx solid transparent;
+}
+
+.status-box .status-label.active {
+    color: #E05F0B;
+    border-bottom-color: #E05F0B;
+}
+
+.order-list {
+    width: 100%;
+	overflow: hidden;
+}
+
+.order-list .a-order {
+    width: 100%;
+    background-color: #fff;
+    margin-top: 24rpx;
+}
+
+.order-list .a-order .order-date {
+    padding: 16rpx 30rpx 20rpx;
+	line-height: 40rpx;
+    font-size: 26rpx;
+    color: #000;
+	overflow: hidden;
+}
+
+.order-list .a-order .order-date .red {
+    font-size: 26rpx;
+    color: #fa2f2e;
+}
+.order-list .a-order .order-date text.r_color{
+    font-weight: 600;
+}
+
+.a-order .goods-info{
+    width: 100%;
+	overflow: hidden;
+}
+.a-order .list-title {
+    font-size: 28rpx;
+    font-weight: 600;
+    color: #000;
+    padding: 16rpx 24rpx;
+}
+.avaImgs{
+    width: 54rpx;
+    height: 54rpx;
+    overflow: hidden;
+    border-radius: 50%;
+    background-color: #f3f5f7;
+    margin-right: 20rpx;
+}
+
+.goods-info{
+    width: 100%;
+    line-height: 39rpx;
+    font-size: 26rpx;
+    color: #000;
+    overflow: hidden;
+	padding: 30rpx;
+	background-color: #f3f5f7;
+	box-sizing: border-box;
+}
+.goods-info-bar{
+    width: calc(100% - 190rpx);
+}
+.goods-info .img-box {
+    width: 172rpx;
+    height: 120rpx;
+    overflow: hidden;
+    background-color: #fff;
+    border-radius: 12rpx;
+    margin-right: 20rpx;
+}
+.goods-info .img-box .goods-img {
+	width: 100%;
+	display: block;
+    height: 100%;
+}
+.goods-img-container {
+	overflow: hidden;
+	box-sizing: border-box;
+    width: 100%;
+    height: 172rpx;
+    white-space: nowrap;
+}
+.goods-img-container .img-box{
+    display: inline-block;
+}
+.goods-img-container .img-box:last-of-type{
+    margin-right: 0;
+}
+.goods-info .goods_name{
+    width: calc(100% - 192rpx);
+	font-size: 28rpx;
+    font-weight: 500;
+    color: #121212;
+}
+.goodsDetail_info{
+	overflow: hidden;
+	width: 180rpx;
+	line-height: 1.5;
+    text-align: right;
+}
+.goodsDetail_info .unimport{
+	font-size: 24rpx;
+	color: #999;
+}
+.goodsDetail_info .goods_price{
+	font-size: 26rpx;
+    line-height: 1.2;
+    font-weight:600;
+    margin-bottom: 10rpx;
+}
+.goodsDetail_info .goods_price text{
+    font-size: 36rpx;
+}
+
+.order-list .a-order .price-box {
+    position: relative;
+    width: 100%;
+    box-sizing: border-box;
+    padding: 16rpx 30rpx;
+    display: flex;
+	justify-content: flex-end;
+    font-size: 26rpx;
+}
+
+.a-order .price-box .btn {
+    box-sizing: border-box;
+    text-align: center;
+    border-radius: 40rpx;
+    margin-left: 20rpx;
+	border: 1rpx solid #ccc;
+    padding: 12rpx 24rpx;
+}
+.order-list .a-order .price-box .total-price {
+    color: #E05F0B;
+}
+
+.a-order .price-box .topay-btn {
+    border-color: #E05F0B;
+    color: #E05F0B;
+}
+
+.a-order .price-box .r_topay-btn {
+    border-color: #E05F0B;
+    background-color: #E05F0B;
+    color: #fff;
+}
+
+//拼团金
+.flot_left{
+	// float: left;
+	margin-left:auto;
+}
+.ptz{
+	color: #18BB88;font-size: 30rpx;
+	position: absolute;
+	left: 30rpx;
+}
+</style>