<template>
<view class="content unifont">
<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="uni-list"></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"> -->
<scroll-view class="list-scroll-content" scroll-y>
<!-- 空白页 -->
<!-- <empty v-if="tabItem.orderList.length === 0"></empty> -->
<!-- 订单号 -->
<view style="height: 1upx;"></view>
<view v-for="(oritem, orid) in tabItem.order" :key="orid" class="orderitems">
<!-- <view class="">订单号{{or._id}}</view> -->
<!-- 订单列表 -->
<view v-for="(sh, k) in oritem.shoplist" :key="k" class="shopsty">
<view class="item">
<view class="item-left">
<image :src="sh.shop_logo" mode="aspectFill" lazy-load></image>
<view class="shopname">{{sh.shop_name}}</view>
<view class="yticon icon-you"></view>
</view>
<view class="item-right">已评价</view>
</view>
<!-- 订单商品列表 -->
<view v-if="oritem._id==item._id && item.ru_id==sh.ru_id " v-for="(item,index) in tabItem.orderList" :key="index"
class="order-item">
<view class="item-good">
<image :src="item.image" mode="aspectFill" lazy-load></image>
<view class="good">
<view class="good-name">{{item.title}}</view>
<view class="good-attr">{{item.attr_val}}</view>
</view>
<view class="good-price">
<!-- <view class="price">¥{{floatjs.subtract(floatjs.multiply(item.price,item.number),item.cou_price)}}</view> -->
<view class="price">¥{{goodprice("789")}}</view> <!-- 这里这句加上就报错 -->
<view class="num">x{{item.number}}</view>
</view>
</view>
</view>
</view>
<view class="tongji">共{{oritem.count}}件商品 合计:{{oritem.surplus}}(含运费{{oritem.shipping_price}}元)</view>
<view class="uni-list"></view>
<view class="good-bot">
<view class="but"><button type="default" size="mini">再次购买</button></view>
<view class="but"><button type="warn" size="mini" @click="deleteOrder(oritem._id)">删除订单</button></view>
</view>
</view>
<view style="height: 1upx;"></view>
<!-- <uni-load-more :status="tabItem.loadingType"></uni-load-more> -->
</scroll-view>
</swiper-item>
</swiper>
<!-- <mix-loading v-if="isview" :mask="true"></mix-loading> -->
</view>
</template>
<script>
// import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
// import empty from "@/components/empty";
export default {
components: {
// uniLoadMore,
// empty
},
data() {
return {
isview: false,
uInfo: uni.getStorageSync('userInfo'),
tabCurrentIndex: 0,
//0等确认1待付款3无效5完成
navList: [{
state: -1,
text: '全部',
loadingType: 'more',
order: [],
orderList: []
},
{
state: 0,
text: '待付款',
order: [],
loadingType: 'more',
orderList: []
},
{
state: 1,
text: '待发货',
order: [],
loadingType: 'more',
orderList: []
},
{
state: 2,
text: '待收货',
order: [],
loadingType: 'more',
orderList: []
},
{
state: 3,
text: '待评价',
order: [],
loadingType: 'more',
orderList: []
},
{
state: 4,
text: '售后',
order: [],
loadingType: 'more',
orderList: []
}
],
};
},
async onLoad(options) {
this.isview = true;
await this.loadData();
this.isview = false;
},
methods: {
//获取订单列表
async loadData() {
if (this.uInfo) {
let userid = this.uInfo._id;
let formData = {
tabname: "ny_order",
page: 1,
everpagenumber: 10,
orderby: "nieyunaddtime",
desc: "desc",
data: {
user_id: userid,
isdel: false
}
}
let rst = await this.request.paging_query(formData);
let arr = rst[1].data;
let navo = this.navList[0];
arr.forEach((item) => {
let order_status = item.order_status + 1;
let navitem = this.navList[order_status]
let garr = item.goods;
let ordercount = 0
garr.forEach((e) => {
e._id = item._id;
ordercount += e.number;
})
navitem.orderList = navitem.orderList.concat(garr);
navo.orderList = navo.orderList.concat(garr);
// 共{{oritem.count}}件商品合计:{{oritem.goods_amount}} 优惠:{{oritem.coupons}}元 合计:{{or.surplus}}(含运费{{or.shipping_price}}元)</view>
let obj = {
_id: item._id,
shoplist: item.shoplist,
count: ordercount,
goods_amount: item.prices,
coupons: item.cou_price,
surplus: item.actprice,
shipping_price: item.postprice,
}
navitem.order.push(obj);
navo.order.push(obj);
})
} else {
}
},
//子店铺处理
sonshop(item) {
item.order.forEach((k) => {
let son = [];
item.orderList.forEach((s) => {
if (s.order_sn == k.order_sn) {
let obj = {};
this.$set(obj, 'ru_id', s.ru_id);
this.$set(obj, 'shop_logo', s.shop_logo);
this.$set(obj, 'shop_name', s.shop_name);
let y = son.findIndex((e) => (e.ru_id == s.ru_id));
if (y == -1) {
son.push(obj);
}
}
})
this.$set(k, 'shoplist', son);
})
},
//swiper 切换
changeTab(e) {
this.tabCurrentIndex = e.target.current;
},
//顶部tab点击
tabClick(index) {
this.tabCurrentIndex = index;
},
//删除订单
deleteOrder(id) {
uni.showModal({
content: '订单删除后无法恢复,客官您再想想哦~',
success: async (res) => {
if (res.confirm) {
let rst = await this.$api.updateunicloud({
tabname: "ny_order",
id: id,
data: {
isdel: true
}
})
console.log(rst.affectedDocs);
if (rst.affectedDocs == 1) {
this.navList.forEach((o) => {
o.order.forEach((t, a) => {
if (t._id == id) {
this.$delete(o.order, a);
}
})
o.orderList.forEach((s, i) => {
if (s._id == id) {
this.$delete(o.orderList, i);
}
})
})
}
} else if (res.cancel) {
}
}
});
},
//取消订单
cancelOrder(item) {
this.isview = true;
setTimeout(() => {
let {
stateTip,
stateTipColor
} = this.orderStateExp(9);
item = Object.assign(item, {
state: 9,
stateTip,
stateTipColor
})
//取消订单后删除待付款中该项
let list = this.navList[1].orderList;
let index = list.findIndex(val => val.id === item.id);
index !== -1 && list.splice(index, 1);
this.isview = false;
}, 600)
},
//订单状态文字和颜色
orderStateExp(state) {
let stateTip = '',
stateTipColor = '#fa436a';
switch (+state) {
case 1:
stateTip = '待付款';
break;
case 2:
stateTip = '待发货';
break;
case 9:
stateTip = '订单已关闭';
stateTipColor = '#909399';
break;
//更多自定义
}
return {
stateTip,
stateTipColor
};
}
},
computed: {
goodprice(iem) {
return (item) => {
return item;
}
}
}
}
</script>
<style lang="scss">
</style>