663 lines
14 KiB
Vue
663 lines
14 KiB
Vue
|
<template>
|
||
|
<view class="pos-order-list" ref="container">
|
||
|
<view class="top-header">
|
||
|
<view class="search">
|
||
|
<view class="search-content acea-row row-middle">
|
||
|
<text class="iconfont icon-sousuo"></text>
|
||
|
<input v-model="where.keyword" confirm-type="search" placeholder="请输收货人手机号或订单号搜索" class="input"
|
||
|
@confirm="handleSearch" />
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="pubilc_footer">
|
||
|
<view class="footer_bon" v-for="(item,index) in list" :key="index">
|
||
|
<view class="" v-for="(val, key) in item.orderProduct">
|
||
|
<view class="bon_top" :key="key" @click="toDetail(item)">
|
||
|
<view class="public_img">
|
||
|
<image class="public_img" :src="val.cart_info.product.image" mode=""></image>
|
||
|
</view>
|
||
|
<view>
|
||
|
<view class="text_top">
|
||
|
<view class="text">
|
||
|
{{ val.cart_info.product.store_name }}
|
||
|
</view>
|
||
|
<view class="monry">
|
||
|
¥{{ val.total_price }}
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="text_order">
|
||
|
订单号: {{ item.order_sn }}
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="bon_bon" :key="key" @click="toDetail(item)">
|
||
|
<view class="order">
|
||
|
采购数量
|
||
|
<view class="txt">
|
||
|
{{ val.product_num }}
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="order" style="border-left: 1px solid #999999;border-right: 1px solid #999999;">
|
||
|
已售数量
|
||
|
<view class="txt">
|
||
|
{{ val.sales_volume }}
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="order">
|
||
|
库存数量
|
||
|
<view class="txt">
|
||
|
{{ val.product_num - val.sales_volume }}
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
|
||
|
<Loading :loaded="loaded" :loading="loading"></Loading>
|
||
|
<view v-if="!loading && list.length <= 0" class="nothing">
|
||
|
<image src="/static/images/no_thing.png" mode="widthFix"></image>
|
||
|
<view class="nothing_text">暂无订单~</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import {
|
||
|
purchaseOrder
|
||
|
} from "@/api/admin";
|
||
|
import Loading from '@/components/Loading/index'
|
||
|
export default {
|
||
|
name: "AdminOrderList",
|
||
|
components: {
|
||
|
Loading
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
current: "",
|
||
|
change: false,
|
||
|
refundMark: false,
|
||
|
types: 1,
|
||
|
where: {
|
||
|
page: 1,
|
||
|
limit: 10,
|
||
|
status: 1,
|
||
|
keyword: '',
|
||
|
product_type: ''
|
||
|
},
|
||
|
list: [],
|
||
|
loaded: false,
|
||
|
loading: false,
|
||
|
refundInfo: {},
|
||
|
orderInfo: {},
|
||
|
status: "",
|
||
|
merId: ''
|
||
|
};
|
||
|
},
|
||
|
watch: {
|
||
|
"$route.params.types": function(newVal) {
|
||
|
let that = this;
|
||
|
if (newVal != undefined) {
|
||
|
that.where.status = newVal;
|
||
|
that.init();
|
||
|
}
|
||
|
},
|
||
|
types: function() {
|
||
|
this.getIndex();
|
||
|
}
|
||
|
},
|
||
|
onLoad(option) {
|
||
|
this.where.product_type = uni.getStorageSync("PRODUCT_TYPE") ?? ""
|
||
|
this.current = "";
|
||
|
this.merId = option.merId;
|
||
|
this.getIndex();
|
||
|
},
|
||
|
methods: {
|
||
|
handleSearch() {
|
||
|
this.loaded = false;
|
||
|
this.where.page = 1;
|
||
|
this.list = [];
|
||
|
this.getIndex();
|
||
|
},
|
||
|
// 获取数据
|
||
|
getIndex() {
|
||
|
let that = this;
|
||
|
if (that.loading || that.loaded) return;
|
||
|
that.loading = true;
|
||
|
purchaseOrder(that.where, that.merId).then(
|
||
|
res => {
|
||
|
that.loading = false;
|
||
|
that.loaded = res.data.length < that.where.limit;
|
||
|
that.list.push.apply(that.list, res.data);
|
||
|
that.where.page = that.where.page + 1;
|
||
|
},
|
||
|
err => {
|
||
|
that.$util.Tips({
|
||
|
title: err
|
||
|
});
|
||
|
}
|
||
|
);
|
||
|
},
|
||
|
// 初始化
|
||
|
init: function() {
|
||
|
this.list = [];
|
||
|
this.where.page = 1;
|
||
|
this.loaded = false;
|
||
|
this.loading = false;
|
||
|
this.getIndex();
|
||
|
this.current = "";
|
||
|
},
|
||
|
toDetail(item) {
|
||
|
uni.navigateTo({
|
||
|
url: `/pages/admin/orderDetail/index?id=${item.order_id}&mer_id=${item.mer_id}`
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
onReachBottom() {
|
||
|
this.getIndex()
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss">
|
||
|
.pos-order-list .top-header {
|
||
|
position: fixed;
|
||
|
top: 0;
|
||
|
left: 0;
|
||
|
z-index: 9999;
|
||
|
width: 100%;
|
||
|
background-color: #fff;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .nav {
|
||
|
// width: 100%;
|
||
|
height: 96upx;
|
||
|
font-size: 30upx;
|
||
|
color: #282828;
|
||
|
width: 690rpx;
|
||
|
margin: 0 auto;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .nav .item {
|
||
|
display: inline-block;
|
||
|
text-align: center;
|
||
|
color: #333333;
|
||
|
max-width: 160rpx;
|
||
|
margin-right: 50rpx;
|
||
|
line-height: 96upx;
|
||
|
|
||
|
&:last-child {
|
||
|
margin-right: 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.pos-order-list .nav .item.on {
|
||
|
color: #2291f8;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list {
|
||
|
margin-top: 100upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item {
|
||
|
background-color: #fff;
|
||
|
width: 100%;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .item-status {
|
||
|
position: absolute;
|
||
|
top: 14rpx;
|
||
|
right: 20rpx;
|
||
|
|
||
|
.iconfont {
|
||
|
font-size: 98rpx;
|
||
|
color: #CCCCCC;
|
||
|
|
||
|
&.on {
|
||
|
color: #FFE3BC;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item~.item {
|
||
|
margin-top: 24upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .activity_type {
|
||
|
display: inline-block;
|
||
|
color: #E93323;
|
||
|
font-size: 20rpx;
|
||
|
text-align: center;
|
||
|
border-radius: 5rpx;
|
||
|
padding: 0 4rpx;
|
||
|
line-height: 28rpx;
|
||
|
margin-right: 8rpx;
|
||
|
border: 1rpx solid #E93323;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .order-num {
|
||
|
height: 124upx;
|
||
|
border-bottom: 1px solid #eee;
|
||
|
font-size: 30upx;
|
||
|
font-weight: bold;
|
||
|
color: #282828;
|
||
|
padding: 0 30upx;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .order-status {
|
||
|
color: #ff9600;
|
||
|
position: absolute;
|
||
|
top: 24rpx;
|
||
|
right: 20rpx;
|
||
|
text-align: right;
|
||
|
width: 160rpx;
|
||
|
font-weight: normal;
|
||
|
font-size: 26rpx;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .order-num .time {
|
||
|
font-size: 26upx;
|
||
|
font-weight: normal;
|
||
|
color: #999;
|
||
|
margin-top: -40upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation {
|
||
|
padding: 20upx 30upx 20upx 0;
|
||
|
margin: 30upx 0 0 30upx;
|
||
|
border-top: 1rpx solid #EEEEEE;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .more {
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .icon-gengduo {
|
||
|
font-size: 50upx;
|
||
|
color: #aaa;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .order .arrow {
|
||
|
width: 0;
|
||
|
height: 0;
|
||
|
border-left: 11upx solid transparent;
|
||
|
border-right: 11upx solid transparent;
|
||
|
border-top: 20upx solid #e5e5e5;
|
||
|
position: absolute;
|
||
|
left: 15upx;
|
||
|
bottom: -18upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .order .arrow:before {
|
||
|
content: '';
|
||
|
width: 0;
|
||
|
height: 0;
|
||
|
border-left: 7upx solid transparent;
|
||
|
border-right: 7upx solid transparent;
|
||
|
border-top: 20upx solid #fff;
|
||
|
position: absolute;
|
||
|
left: -7upx;
|
||
|
bottom: 0;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .order {
|
||
|
width: 200upx;
|
||
|
background-color: #fff;
|
||
|
border: 1px solid #eee;
|
||
|
border-radius: 10upx;
|
||
|
position: absolute;
|
||
|
top: -100upx;
|
||
|
z-index: 9;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .order .items {
|
||
|
height: 77upx;
|
||
|
line-height: 77upx;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .order .items~.items {
|
||
|
border-top: 1px solid #f5f5f5;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .bnt {
|
||
|
font-size: 28upx;
|
||
|
color: #5c5c5c;
|
||
|
width: 170upx;
|
||
|
height: 60upx;
|
||
|
border-radius: 30upx;
|
||
|
border: 1px solid #bbb;
|
||
|
text-align: center;
|
||
|
line-height: 60upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .bnt_color {
|
||
|
border: none;
|
||
|
color: #fff;
|
||
|
background: linear-gradient(90deg, #2291F8 0%, #1CD1DC 100%);
|
||
|
}
|
||
|
|
||
|
.pos-order-list .list .item .operation .bnt~.bnt {
|
||
|
margin-left: 14upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods {
|
||
|
padding: 0 30upx;
|
||
|
background-color: #fff;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods {
|
||
|
padding-top: 20rpx;
|
||
|
overflow: hidden;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods~.goods {
|
||
|
border-top: 1px dashed #e5e5e5;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .cancellate {
|
||
|
font-size: 24rpx;
|
||
|
float: right;
|
||
|
margin-top: 10rpx;
|
||
|
|
||
|
text {
|
||
|
margin-left: 26rpx;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .cancelled {
|
||
|
color: #FF9600;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .uncancell {
|
||
|
color: #999999;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .picTxt {
|
||
|
width: 515upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .picTxt .pictrue {
|
||
|
width: 130upx;
|
||
|
height: 130upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .picTxt .pictrue image {
|
||
|
width: 100%;
|
||
|
height: 100%;
|
||
|
border-radius: 6upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .picTxt .text {
|
||
|
flex-direction: column;
|
||
|
width: 365upx;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .picTxt .text .info {
|
||
|
font-size: 28upx;
|
||
|
color: #282828;
|
||
|
|
||
|
&.refund-info {
|
||
|
width: 460upx;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.refund-y-money {
|
||
|
margin-top: 16rpx;
|
||
|
font-size: 26rpx;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .picTxt .text .attr {
|
||
|
margin-top: 5rpx;
|
||
|
font-size: 24upx;
|
||
|
color: #999;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .money {
|
||
|
width: 164upx;
|
||
|
text-align: right;
|
||
|
font-size: 28upx;
|
||
|
|
||
|
&.refund-money {
|
||
|
width: auto;
|
||
|
position: relative;
|
||
|
top: -50rpx;
|
||
|
|
||
|
.num {
|
||
|
color: #999999;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
.refund-num {
|
||
|
font-size: 24rpx;
|
||
|
color: #282828;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .money .x-money {
|
||
|
color: #282828;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .money .num {
|
||
|
color: #ff9600;
|
||
|
margin: 5upx 0;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .money .y-money {
|
||
|
color: #999;
|
||
|
text-decoration: line-through;
|
||
|
}
|
||
|
|
||
|
.pos-order-goods .goods .refund_num {
|
||
|
display: inline-block;
|
||
|
margin-left: 10rpx;
|
||
|
}
|
||
|
|
||
|
.public-total {
|
||
|
font-size: 28upx;
|
||
|
color: #282828;
|
||
|
height: 92upx;
|
||
|
line-height: 92upx;
|
||
|
text-align: right;
|
||
|
padding: 0 30upx;
|
||
|
background-color: #fff;
|
||
|
}
|
||
|
|
||
|
.public-total .money {
|
||
|
color: #ff4c3c;
|
||
|
}
|
||
|
|
||
|
.nothing {
|
||
|
margin-top: 200rpx;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
.nothing_text {
|
||
|
margin-top: 20rpx;
|
||
|
color: #999999;
|
||
|
}
|
||
|
|
||
|
.priceChange {
|
||
|
position: fixed;
|
||
|
width: 580upx;
|
||
|
background-color: #fff;
|
||
|
border-radius: 10upx;
|
||
|
top: 50%;
|
||
|
left: 50%;
|
||
|
margin-left: -290upx;
|
||
|
margin-top: -335upx;
|
||
|
z-index: 666;
|
||
|
transition: all 0.3s ease-in-out 0s;
|
||
|
transform: scale(0);
|
||
|
opacity: 0;
|
||
|
}
|
||
|
|
||
|
.priceChange.on {
|
||
|
opacity: 1;
|
||
|
transform: scale(1);
|
||
|
}
|
||
|
|
||
|
.priceChange .priceTitle {
|
||
|
background: url("~@/static/images/pricetitle.jpg") no-repeat;
|
||
|
background-size: 100% 100%;
|
||
|
width: 100%;
|
||
|
height: 160upx;
|
||
|
border-radius: 10upx 10upx 0 0;
|
||
|
text-align: center;
|
||
|
font-size: 40upx;
|
||
|
color: #fff;
|
||
|
line-height: 160upx;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
.priceChange .priceTitle .iconfont {
|
||
|
position: absolute;
|
||
|
font-size: 40upx;
|
||
|
right: 26upx;
|
||
|
top: 23upx;
|
||
|
width: 40upx;
|
||
|
height: 40upx;
|
||
|
line-height: 40upx;
|
||
|
}
|
||
|
|
||
|
.priceChange .listChange {
|
||
|
padding: 0 40upx;
|
||
|
}
|
||
|
|
||
|
.priceChange .listChange textarea {
|
||
|
box-sizing: border-box;
|
||
|
}
|
||
|
|
||
|
.priceChange .listChange .item {
|
||
|
height: 103upx;
|
||
|
border-bottom: 1px solid #e3e3e3;
|
||
|
font-size: 32upx;
|
||
|
color: #333;
|
||
|
}
|
||
|
|
||
|
.priceChange .modify {
|
||
|
font-size: 32upx;
|
||
|
color: #fff;
|
||
|
width: 490upx;
|
||
|
height: 90upx;
|
||
|
text-align: center;
|
||
|
line-height: 90upx;
|
||
|
border-radius: 45upx;
|
||
|
background-color: #2291f8;
|
||
|
margin: 53upx auto;
|
||
|
}
|
||
|
|
||
|
.priceChange .listChange textarea {
|
||
|
border: 1px solid #eee;
|
||
|
width: 100%;
|
||
|
height: 200upx;
|
||
|
margin-top: 50upx;
|
||
|
border-radius: 10upx;
|
||
|
color: #333;
|
||
|
padding: 20upx;
|
||
|
}
|
||
|
|
||
|
.search {
|
||
|
padding: 17rpx 30rpx;
|
||
|
|
||
|
.search-content {
|
||
|
width: 100%;
|
||
|
height: 60rpx;
|
||
|
padding: 0 30rpx;
|
||
|
border-radius: 30rpx;
|
||
|
background-color: #F5F5F5;
|
||
|
font-size: 26rpx;
|
||
|
}
|
||
|
|
||
|
.iconfont {
|
||
|
margin-right: 10rpx;
|
||
|
font-size: 26rpx;
|
||
|
color: #999999;
|
||
|
}
|
||
|
|
||
|
.input-placeholder {
|
||
|
font-size: 26rpx;
|
||
|
color: #999999;
|
||
|
}
|
||
|
|
||
|
.input {
|
||
|
flex: 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.pubilc_footer {
|
||
|
margin-top: 50px;
|
||
|
|
||
|
.footer_bon {
|
||
|
width: 100%;
|
||
|
border-radius: 8px;
|
||
|
background-color: #fff;
|
||
|
padding-bottom: 10px;
|
||
|
margin-bottom: 10px;
|
||
|
|
||
|
.bon_top {
|
||
|
display: flex;
|
||
|
justify-content: flex-start;
|
||
|
align-items: center;
|
||
|
|
||
|
.public_img {
|
||
|
width: 60px;
|
||
|
height: 60px;
|
||
|
margin: 12px;
|
||
|
}
|
||
|
|
||
|
.text_top {
|
||
|
display: flex;
|
||
|
justify-content: flex-start;
|
||
|
align-items: center;
|
||
|
margin: 3px 0 3px 3px;
|
||
|
|
||
|
.text {
|
||
|
width: 180px;
|
||
|
overflow: hidden;
|
||
|
white-space: nowrap;
|
||
|
text-overflow: ellipsis;
|
||
|
}
|
||
|
|
||
|
.monry {
|
||
|
margin-left: 20px;
|
||
|
color: #F84221;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.text_order {
|
||
|
width: 200px;
|
||
|
overflow: hidden;
|
||
|
white-space: nowrap;
|
||
|
text-overflow: ellipsis;
|
||
|
margin-left: 3px;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.bon_bon {
|
||
|
width: 90%;
|
||
|
height: 66px;
|
||
|
background: #F5F5F5;
|
||
|
border-radius: 4px 4px 4px 4px;
|
||
|
display: flex;
|
||
|
justify-content: center;
|
||
|
align-items: center;
|
||
|
text-align: center;
|
||
|
margin: auto;
|
||
|
margin-bottom: 10px;
|
||
|
margin-top: 5px;
|
||
|
|
||
|
.order {
|
||
|
width: 120px;
|
||
|
|
||
|
.txt {
|
||
|
margin-top: 5px;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</style>
|