108 lines
2.2 KiB
Vue
108 lines
2.2 KiB
Vue
<!--
|
||
@name: Options
|
||
@author: kahu4
|
||
@date: 2024-01-16 18:21
|
||
@description:Options
|
||
@update: 2024-01-16 18:21
|
||
-->
|
||
<script setup>
|
||
import { toRefs } from "vue";
|
||
|
||
const emits = defineEmits(['cancel', 'pay', 'refund', 'delete', 'confirm', 'invite', 'cancelRefund'])
|
||
/**
|
||
* @property {status} 订单状态
|
||
*/
|
||
const props = defineProps({
|
||
status: {
|
||
type: String,
|
||
required: true
|
||
},
|
||
shopType: {
|
||
type: [String, Number],
|
||
required: true
|
||
}
|
||
})
|
||
const {status, shopType} = toRefs(props)
|
||
</script>
|
||
|
||
<template>
|
||
<view class="options">
|
||
<view
|
||
v-if="status === '0'"
|
||
class="order-actions-delete item"
|
||
@click="emits('cancel')"
|
||
>
|
||
取消订单
|
||
</view>
|
||
<view
|
||
v-if="status === '0'"
|
||
class="order-actions-primary item"
|
||
@tap="emits('pay')"
|
||
>
|
||
立即付款
|
||
</view>
|
||
<!-- 除了待付款和已取消 -->
|
||
<view
|
||
v-if="(shopType===1&&['1','2','3','4','8','6'].includes(status)) || (shopType===2&&['6'].includes(status)) "
|
||
class="order-actions-delete item"
|
||
@tap="emits('refund')"
|
||
>
|
||
申请退款
|
||
</view>
|
||
<view
|
||
v-if="(shopType ===2 && ['8'].includes(status))"
|
||
class="order-actions-default item"
|
||
@tap="emits('cancelRefund')"
|
||
>
|
||
取消订单
|
||
</view>
|
||
<!-- 核销码 -->
|
||
<view
|
||
v-if="status==='8' && shopType === 2"
|
||
class="order-actions-primary item"
|
||
@tap="emits('checkOffCode')"
|
||
>
|
||
核销码
|
||
</view>
|
||
<!-- 已完成 -->
|
||
<view
|
||
v-if="['4','5','-2'].includes(status)"
|
||
class="order-actions-primary item"
|
||
@tap="emits('delete')"
|
||
>
|
||
删除订单
|
||
</view>
|
||
<!-- 已发货 待收货 -->
|
||
<view
|
||
v-if="status === '2'"
|
||
class="order-actions-primary item"
|
||
@tap="emits('confirm')"
|
||
>
|
||
确认收货
|
||
</view>
|
||
<!-- 已发货 待收货 -->
|
||
<view
|
||
v-if="status === '6'"
|
||
class="order-actions-primary item"
|
||
@tap="emits('invite')"
|
||
>
|
||
邀请好友拼团
|
||
</view>
|
||
</view>
|
||
|
||
</template>
|
||
|
||
<style
|
||
lang="scss"
|
||
scoped>
|
||
.options {
|
||
width: 100%;
|
||
display: flex;
|
||
|
||
.item {
|
||
flex: 1;
|
||
}
|
||
|
||
}
|
||
</style>
|