<template>
|
|
<view class="page">
|
|
|
|
<navbar
|
|
:title="uid ? '用户订单信息' : '订单中心'"
|
|
:leftClick="uid"
|
|
@leftClick="$utils.navigateBack"
|
|
/>
|
|
|
|
<uv-tabs :list="tabs"
|
|
:activeStyle="{color : '#FD5100', fontWeight : 600}"
|
|
lineColor="#FD5100"
|
|
lineHeight="8rpx"
|
|
lineWidth="50rpx"
|
|
:current="current"
|
|
@click="clickTabs"></uv-tabs>
|
|
|
|
<view v-if="orderList.records.length > 0" class="list">
|
|
<view class="item"
|
|
v-for="(item, index) in orderList.records"
|
|
@click="toOrderDetail(item.id)"
|
|
:key="index">
|
|
|
|
<view class="top">
|
|
<view class="service">
|
|
<text>{{ tabs[item.type + 1].name }}</text>
|
|
</view>
|
|
<view class="status">
|
|
<text> {{item.status_dictText}}</text>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="content"
|
|
v-for="(p, i) in item.orderDetails"
|
|
:key="i">
|
|
|
|
<view class="left">
|
|
<image mode="aspectFill" :src="p.pic"></image>
|
|
</view>
|
|
|
|
<!-- <view class="right"
|
|
v-if="userShop && item.type == 1">
|
|
<view class="text-hidden-1">
|
|
订单号:{{p.goodsName}}
|
|
</view>
|
|
<view class="text-hidden-1">
|
|
产品名称:{{p.goodsName}}
|
|
</view>
|
|
<view class="text-hidden-1">
|
|
产品规格:{{p.sku}} x{{ p.num }}
|
|
</view>
|
|
</view> -->
|
|
|
|
<view class="right">
|
|
<view class="text-hidden-1">
|
|
产品名称:{{p.goodsName}}
|
|
</view>
|
|
<view class="text-hidden-1">
|
|
产品规格:{{p.sku}}
|
|
</view>
|
|
<view class="text-hidden-1">
|
|
数量:{{ p.num }}
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="userInfo"
|
|
v-if="!userShop">
|
|
<text>{{ item.userName }}</text>
|
|
<text>{{ item.userPhone }}</text>
|
|
<text>{{ item.userAddress }}</text>
|
|
</view>
|
|
|
|
<view class="userInfo"
|
|
v-if="userShop">
|
|
<text>用户:</text>
|
|
<text>{{ item.id }}</text>
|
|
</view>
|
|
|
|
<view class="userInfo"
|
|
v-if="userShop">
|
|
<text>订单号:</text>
|
|
<text>{{ item.id }}</text>
|
|
</view>
|
|
|
|
<view class="userInfo">
|
|
<text>下单时间:</text>
|
|
<text>{{ item.createTime }}</text>
|
|
</view>
|
|
|
|
<!-- 水洗店按钮 -->
|
|
<view class="bottom" v-if="userShop">
|
|
<view class="pay">
|
|
|
|
<view
|
|
v-if="item.shopCoin && item.type == 1">
|
|
佣金:{{ item.shopCoin }}元
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<!-- 水洗订单:水洗店选择收货方式 -->
|
|
<template v-if="[4, 6].includes(item.status)">
|
|
<view @click.stop="orderConfirmAccept(item, {logisticsFlag : 0})" class="b2">
|
|
{{ item.status == 4 ? '快递取货' : '快递寄回' }}
|
|
</view>
|
|
<view @click.stop="orderConfirmAccept(item, {logisticsFlag : 1})" class="b1">
|
|
自行配送
|
|
</view>
|
|
</template>
|
|
|
|
<!-- 待接单 -->
|
|
<view
|
|
v-if="[18, 19].includes(item.status)"
|
|
@click.stop="orderConfirmAccept(item)" class="b2">
|
|
确认接单
|
|
</view>
|
|
|
|
<!-- 待收货 -->
|
|
<template v-if="[2, 21].includes(item.status)">
|
|
<view @click.stop="confirmReceiveGoods(item)" class="b2">
|
|
确认收货
|
|
</view>
|
|
<view @click.stop="toQueryLogistics(item)" class="b1">
|
|
查看物流
|
|
</view>
|
|
</template>
|
|
|
|
<!-- 待检查 -->
|
|
<template v-if="item.status == 5">
|
|
<view @click.stop="orderConfirmedDamage(item, 1)" class="b2"
|
|
>
|
|
确认下一步
|
|
</view>
|
|
|
|
<!-- <view @click.stop="$utils.navigateTo
|
|
(`/pages_order/order/damageReport?id=${item.id}`)" class="b1"
|
|
>
|
|
破损上报
|
|
</view> -->
|
|
<view @click.stop="$utils.navigateTo
|
|
(`/pages_order/order/damageReport?id=${item.id}`)" class="b1"
|
|
>
|
|
破损上报
|
|
</view>
|
|
</template>
|
|
|
|
<view
|
|
v-if="[8, 12, 22].includes(item.status)"
|
|
@click.stop="orderId = item.id;$refs.deliverGoods.open()" class="b2">
|
|
发货填写单号
|
|
</view>
|
|
|
|
<!-- <view
|
|
v-if="[6].includes(item.status)"
|
|
@click.stop="orderFinishedWashing(item)" class="b2">
|
|
水洗完成
|
|
</view> -->
|
|
|
|
</view>
|
|
|
|
<!-- 酒店按钮 -->
|
|
<view class="bottom"
|
|
v-else>
|
|
|
|
<view class="pay">
|
|
<!-- <view
|
|
v-if="item.washPay">
|
|
水洗费用:{{ item.washPay }}元
|
|
</view>
|
|
|
|
<view
|
|
v-if="item.rentPay">
|
|
租赁费用:{{ item.rentPay }}元
|
|
</view>
|
|
|
|
<view
|
|
v-if="item.deposit">
|
|
押金:{{ item.deposit }}元
|
|
</view> -->
|
|
|
|
<view class="price"
|
|
v-if="item.orderPay">
|
|
合计:<text class="num">{{ item.orderPay }}元</text>
|
|
</view>
|
|
</view>
|
|
|
|
|
|
<!-- 取消订单 -->
|
|
<view class="">
|
|
<view
|
|
@click.stop="orderCancel(item)" class="b1"
|
|
v-if="[0, 3].includes(item.status)">
|
|
取消订单
|
|
</view>
|
|
</view>
|
|
|
|
|
|
<!-- 待支付 -->
|
|
<view class="">
|
|
<view
|
|
@click.stop="payOrder(item.orderLogId,
|
|
item.id, item.status == 10)" class="b2"
|
|
v-if="[0, 3, 10].includes(item.status)">
|
|
{{ item.status == 10 ? '支付费用' : '立即付款' }}
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 待收货 -->
|
|
<template v-if="[2, 23].includes(item.status)">
|
|
<view @click.stop="confirmReceiveGoods(item)" class="b2">
|
|
确认收货
|
|
</view>
|
|
<view @click.stop="toQueryLogistics(item)" class="b1">
|
|
查看物流
|
|
</view>
|
|
</template>
|
|
|
|
<view
|
|
v-if="[20].includes(item.status)"
|
|
@click.stop="orderId = item.id;$refs.deliverGoods.open()" class="b2">
|
|
发货填写单号
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
</view>
|
|
|
|
<uv-empty
|
|
v-else
|
|
text="空空如也"
|
|
textSize="30rpx"
|
|
iconSize="200rpx"
|
|
icon="list"></uv-empty>
|
|
|
|
<deliverGoods
|
|
ref="deliverGoods"
|
|
:orderId="orderId"
|
|
@getData="getData"/>
|
|
|
|
<tabber select="2" v-if="!uid"/>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
|
|
// 状态
|
|
// 租赁订单:0待支付 1待发货 2待收货
|
|
// 水洗订单:3待支付 4水洗店接单 5水洗店检查
|
|
// 6开始清洗
|
|
// 换货订单:7待回收 8待发货 9平台待收货
|
|
// 10平台检查损失待用户支付 18待接单
|
|
// 退货订单:11待回收 12待发货 13平台待收货
|
|
// 14平台检查损失并且退还定金 19待接单
|
|
// 15 已完成
|
|
import tabber from '@/components/base/tabbar.vue'
|
|
import { mapGetters } from 'vuex'
|
|
import mixinOrder from '@/mixins/order.js'
|
|
import deliverGoods from '@/components/userShop/deliverGoods.vue'
|
|
export default {
|
|
components : {
|
|
tabber,
|
|
deliverGoods,
|
|
},
|
|
mixins : [mixinOrder],
|
|
computed : {
|
|
...mapGetters(['userShop']),
|
|
},
|
|
data() {
|
|
return {
|
|
tabs: [{
|
|
name: '全部'
|
|
},
|
|
{
|
|
name: '租赁押金'
|
|
},
|
|
{
|
|
name: '水洗租赁'
|
|
},
|
|
{
|
|
name: '破损换货'
|
|
},
|
|
{
|
|
name: '退货退款'
|
|
}
|
|
],
|
|
queryParams: {
|
|
pageNo: 1,
|
|
pageSize: 10
|
|
},
|
|
// orderList: [
|
|
// {
|
|
// money : 99.99,
|
|
// address : '广东省广州市越秀区城南故事C3栋2802',
|
|
// name : '李**',
|
|
// phone : '150*****091',
|
|
// unit : '120*40*75【桌子尺寸】',
|
|
// image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg',
|
|
// status_dictText : '已完成',
|
|
// }
|
|
// ], //订单列表数据
|
|
orderList : {
|
|
records : [],
|
|
total : 0,
|
|
},
|
|
type : -1,
|
|
uid : 0,
|
|
orderId : 0,
|
|
current : 0,
|
|
}
|
|
},
|
|
onLoad(args) {
|
|
this.uid = args.uid || 0
|
|
this.current = args.current || 0
|
|
},
|
|
onShow() {
|
|
this.getData()
|
|
if(this.userShop){
|
|
this.tabs[1].name = '桌布库存'
|
|
this.tabs[2].name = '水洗订单'
|
|
this.$forceUpdate()
|
|
}
|
|
},
|
|
onPullDownRefresh() {
|
|
this.getData()
|
|
},
|
|
//滚动到屏幕底部
|
|
onReachBottom() {
|
|
if(this.queryParams.pageSize < this.orderList.total){
|
|
this.queryParams.pageSize += 10
|
|
this.getData()
|
|
}
|
|
},
|
|
methods: {
|
|
getData(){
|
|
let queryParams = {
|
|
...this.queryParams,
|
|
}
|
|
if(this.type != -1){
|
|
queryParams.type = this.type
|
|
}
|
|
|
|
// 水洗店查询用户订单
|
|
if(this.uid != 0){
|
|
queryParams.uid = this.uid
|
|
}
|
|
this.$api('orderPage', queryParams, res => {
|
|
uni.stopPullDownRefresh()
|
|
if(res.code == 200){
|
|
this.orderList = res.result
|
|
}
|
|
})
|
|
},
|
|
//点击tab栏
|
|
clickTabs({ index, name }) {
|
|
this.current = index
|
|
if (index == 0) {
|
|
this.type = -1;
|
|
} else {
|
|
this.type = index - 1;
|
|
}
|
|
this.queryParams.pageSize = 10
|
|
this.getData()
|
|
},
|
|
//跳转订单详情页面
|
|
toOrderDetail(id) {
|
|
uni.navigateTo({
|
|
url: '/pages_order/order/orderDetail?id=' + id
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.page{
|
|
}
|
|
.list {
|
|
.item {
|
|
width: calc(100% - 40rpx);
|
|
background-color: #fff;
|
|
margin: 20rpx;
|
|
box-sizing: border-box;
|
|
border-radius: 16rpx;
|
|
padding: 30rpx;
|
|
|
|
.top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
font-size: 30rpx;
|
|
|
|
.service {}
|
|
|
|
.status {
|
|
font-size: 26rpx;
|
|
font-weight: 600;
|
|
}
|
|
}
|
|
|
|
.content {
|
|
display: flex;
|
|
margin: 10rpx 0;
|
|
|
|
.left {
|
|
width: 130rpx;
|
|
height: 130rpx;
|
|
border-radius: 10rpx;
|
|
|
|
image {
|
|
width: 130rpx;
|
|
height: 130rpx;
|
|
border-radius: 10rpx;
|
|
}
|
|
}
|
|
|
|
.right {
|
|
width: calc(100% - 160rpx);
|
|
color: #777;
|
|
font-size: 24rpx;
|
|
padding-left: 20rpx;
|
|
line-height: 40rpx;
|
|
background-color: #F8F8F8;
|
|
}
|
|
}
|
|
|
|
.userInfo{
|
|
font-size: 24rpx;
|
|
margin-bottom: 10rpx;
|
|
text{
|
|
margin-right: 26rpx;
|
|
}
|
|
}
|
|
|
|
.bottom {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
font-size: 25rpx;
|
|
.pay{
|
|
margin: 12rpx;
|
|
margin-right: auto;
|
|
}
|
|
.price {
|
|
font-weight: 900;
|
|
text {
|
|
color: #ff780099;
|
|
font-size: 30rpx;
|
|
}
|
|
}
|
|
.b1 {
|
|
border: 1px solid #777;
|
|
color: #777;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.b2 {
|
|
background: $uni-color;
|
|
color: #fff;
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.b1,.b2 {
|
|
margin: 12rpx;
|
|
border-radius: 28rpx;
|
|
padding: 8rpx 28rpx;
|
|
margin-bottom: 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|