mkm a8d038b011 调整订单相关页面逻辑和功能
- 修改环境配置,确定使用生产环境
- 优化订单商品组件,调整导航逻辑
- 移除待确认和核销弹窗
- 更新订单详情页,增加商家判断逻辑
2024-10-08 22:48:16 +08:00

211 lines
4.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="shop-item">
<view class="item-title" @click="navTo">
<view>{{order_id}}</view>
<view v-if="datas.paid==0">
<text>待付款</text>
</view>
<view v-else>
<text v-if="datas.status==0">待核销</text>
<text v-if="datas.status==1">待核销</text>
<text v-if="datas.status==2||datas.status==3">已完成</text>
</view>
</view>
<view class="item-body" @click="navTo">
<view class="body-content">
<view>
<view v-for="(item,index) in datas.goods_list" :key="index"
style="display: flex;margin-bottom: 20rpx;">
<image class="image" :src="item.image"></image>
<view style="width: 520rpx;">
<view class="" style="display: flex;justify-content: space-between;">
<view>
{{item.store_name}}
</view>
<view style="font-size: 32rpx;">
{{item.price}}
</view>
</view>
<view class="" style="display: flex;justify-content: space-between;">
<view>
{{item.unit_name}}
</view>
<view style="font-size: 32rpx;">
x{{item.cart_num}}
</view>
</view>
</view>
</view>
</view>
<!-- <view
style="display: flex;flex-direction: column;align-items: center;justify-content: center;width: 100rpx;">
<up-icon name="arrow-right-double" color="#20B128"></up-icon>
</view> -->
</view>
<view class="all"> {{datas.goods_count}} 件商品, 总金额 <text>¥{{datas.pay_price}}</text> </view>
</view>
<view class="item-btn">
<view @click="navTo" style="width: 80px;">
<up-button size="small" plain color="#20B128" shape="circle">查看详情</up-button>
</view>
</view>
</view>
</template>
<script setup>
import {
ref,
reactive,
nextTick
} from "vue"
// 订单状态0待发货1待收货2已完成3已完成)
const props = defineProps({
type: {
type: Number,
default: 0
},
datas: {
type: Object,
default: () => {}
},
status: {
type: String,
default: ''
},
order_id: {
type: String,
default: '0'
}
})
const navTo = () => {
uni.navigateTo({
url: `/pagesOrder/detail/detail?is_mer=1&id=${props.datas.id}`
})
}
const emit = defineEmits(['cancleOrder', 'rePay', 'takeOrder', 'purchaseAgain']);
const cancleOrder = () => {
emit('cancleOrder', props.datas)
}
const takeOrder = () => {
emit('takeOrder', props.datas)
}
const purchaseAgain = () => {
emit('purchaseAgain', props.datas)
}
const rePay = () => {
emit('rePay', props.datas)
}
const applySh = () => {
emit('applyAfterSales', props.datas)
}
const showVerifyFn = () => {
emit('showVerifyFn', props.datas)
}
const showVerifyPop = ref(false)
const options = reactive({
width: 500, // 宽度 单位rpx
height: 100, // 高度 单位rpx
code: props.datas.verify_code, // 生成条形码的值
}, )
</script>
<style lang="scss">
.shop-item {
width: 710rpx;
margin-bottom: 20rpx;
background-color: #fff;
border-radius: 14rpx;
padding: 20rpx;
box-sizing: border-box;
.item-title {
display: flex;
justify-content: space-between;
}
.item-body {
margin: 20rpx 0;
.body-content {
display: flex;
justify-content: space-between;
color: #989898;
.image {
width: 120rpx;
height: 120rpx;
margin-right: 20rpx;
border-radius: 14rpx;
}
.title {
display: flex;
justify-content: space-between;
font-size: 28rpx;
color: #444;
}
.tips {
display: flex;
justify-content: space-between;
font-size: 24rpx;
margin-top: 10rpx;
}
}
.all {
text-align: right;
font-size: 26rpx;
text {
color: #F55726;
}
}
}
.item-btn {
display: flex;
justify-content: flex-end;
view {
width: 80rpx;
margin-left: 20rpx;
}
}
.item-close {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #F6F6F6;
padding: 15rpx;
border-radius: 14rpx;
.title {
display: flex;
.type {
font-weight: 600;
margin-right: 20rpx;
}
}
}
}
</style>