添加本地商家订单编号搜索页面

This commit is contained in:
wangxiaowei 2024-10-17 17:50:16 +08:00
parent 14c8c0150c
commit 733a03a2e3

@ -0,0 +1,244 @@
<template>
<mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :up="upOption"
:down="{auto: false}" :fixed="false">
<view>
<u-search shape="round" background="white" placeholder="输入订单号" v-model="keyword" @search="search"
:show-action="true" action-text="取消" />
</view>
<view class="order-list">
<view v-for="(item, index) in orderList" :key="index" class="order-item bg-white m-t-20">
<router-link
:to="{path: '/bundle_b/pages/local_shop/local_order_detail', query: {id: item.lsg_order_id}}">
<view class="order-goods">
<router-link
:to="{path: '/bundle_b/pages/local_shop/local_shop_detail', query: {id: item.lstore_id, type: 1}}">
<view class="flex row-between">
<view class="item bold">
{{item.local_msg.shopName}}
</view>
<view class="p-r-20 bold">{{getOrderStatus(item.state)}}</view>
</view>
</router-link>
<view class="item flex">
<view class="goods-img">
<u-image width="180rpx" border-radius="10rpx" height="180rpx" lazy-load
:src="item.sku_msg ? item.sku_msg.image : item.goods_image[0].url"></u-image>
</view>
<view class="goods-info m-l-20 flex-1">
<view class="goods-name line-2 m-b-10">
{{item.goods_msg.title}}
</view>
<view class="goods-spec xs muted m-b-20" v-if="item.sku_msg">
{{item.sku_msg.spec_value_str}}
</view>
<view class="flex row-between">
<view class="goods-price">
<view class="primary flex">
<price-format weight="500" :subscript-size="24" :first-size="32"
:second-size="24" :price="item.goods_total_price" />
</view>
</view>
<view class="goods-num sm">x{{item.goods_num}}</view>
</view>
</view>
</view>
<view class="item">
<text>核销状态:</text>
<text class="bold">{{item.verify_status == 0 ? '未核销' : '已核销'}}</text>
</view>
</view>
</router-link>
</view>
</view>
<order-dialog ref="orderDialog" :order-id="orderId" :type="type"
@confirm="$u.throttle(confirmDialog, 1000)"></order-dialog>
</mescroll-uni>
</template>
<script>
import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
import {
localOrderList,
} from '@/api/order';
export default {
mixins: [MescrollMixin],
data() {
return {
orderList: [],
upOption: {
auto: false, // 不自动加载
empty: {
icon: 'https://zjeloong.oss-cn-hangzhou.aliyuncs.com/uniapp/order_null.png',
tip: '暂无订单~', // 提示
fixed: true
}
},
type: 0,
orderId: "",
showLoading: false,
lstore_id: 0,
keyword: ''
};
},
onLoad(options) {
const {lstore_id} = this.$Route.query
if (lstore_id) {
this.lstore_id = lstore_id
this.$nextTick(() => {
this.onRefresh()
})
}
},
methods: {
search(e) {
this.keyword = e
this.orderType = ''
this.mescroll.resetUpScroll()
},
onRefresh() {
this.mescroll.resetUpScroll()
},
upCallback(page) {
let pageNum = page.num; // 页码, 默认从1开始
let pageSize = page.size; // 页长, 默认每页10条
let {
keyword,
lstore_id
} = this;
localOrderList({
page_size: pageSize,
page_no: pageNum,
keyword,
lstore_id,
}).then(({
data
}) => {
let curPageData = data.list;
let curPageLen = curPageData.length;
let hasNext = !!data.more;
if (page.num == 1) this.orderList = [];
this.orderList = this.orderList.concat(curPageData);
this.mescroll.endSuccess(curPageLen, hasNext);
})
}
},
computed: {
getOrderStatus() {
return (status) => {
let text = ''
switch (status) {
case 0:
text = '待付款';
break;
case 1:
text = '已完成';
break;
case 2:
text = '已取消';
break;
}
return text
}
}
}
};
</script>
<style lang="scss">
.order-list {
min-height: calc(100vh - 80rpx);
padding: 0 20rpx;
overflow: hidden;
.order-item {
border-radius: 10rpx;
.order-header {
height: 80rpx;
padding: 0 24rpx;
border-bottom: 1px dotted #E5E5E5;
}
.all-price {
text-align: right;
padding: 0 24rpx 20rpx;
}
.order-footer {
height: 100rpx;
border-top: $-solid-border;
padding: 0 24rpx;
.plain {
border: 1px solid #BBBBBB;
&.red {
border-color: $-color-primary;
}
}
}
}
}
.order-goods {
.item {
padding: 20rpx 24rpx;
.vip-price {
margin: 0 10rpx;
background-color: #FFE9BA;
line-height: 30rpx;
border-radius: 6rpx;
overflow: hidden;
.price-name {
background-color: #101010;
padding: 3rpx 10rpx;
color: #FFD4B7;
position: relative;
overflow: hidden;
&::after {
content: '';
display: block;
width: 20rpx;
height: 20rpx;
position: absolute;
right: -15rpx;
background-color: #FFE9BA;
border-radius: 50%;
top: 50%;
transform: translateY(-50%);
box-sizing: border-box;
}
}
}
}
.goods-footer {
height: 70rpx;
align-items: flex-start;
padding: 0 24rpx;
.plain {
border: 1px solid #999;
height: 52rpx;
line-height: 52rpx;
font-size: 26rpx;
}
}
.p-r-0 {
padding-right: 0;
}
.footer-block {
justify-content: flex-end;
}
}
</style>