|
|
|
|
@ -193,13 +193,18 @@
|
|
|
|
|
data-bs-parent="#accordionBonus"
|
|
|
|
|
>
|
|
|
|
|
<div class="accordion-body">
|
|
|
|
|
<div class="input-box">
|
|
|
|
|
<input
|
|
|
|
|
<div class="input-box bonus-input">
|
|
|
|
|
<div>
|
|
|
|
|
<input
|
|
|
|
|
type="text"
|
|
|
|
|
placeholder="請輸入優惠代碼"
|
|
|
|
|
v-model="bonus.sn"
|
|
|
|
|
class="form-control"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<van-button type="primary" size="small" block @click="handleCheckBonusSn">兌換</van-button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="bonus-desc">
|
|
|
|
|
{{ bonus.name }}
|
|
|
|
|
@ -332,14 +337,6 @@ const bonus = reactive({
|
|
|
|
|
//檢查優惠代碼
|
|
|
|
|
|
|
|
|
|
const handleCheckBonusSn = async () => {
|
|
|
|
|
if (bonus.sn.length !== 10) {
|
|
|
|
|
bonus.name = "沒有優惠劵";
|
|
|
|
|
bonus.number = 0;
|
|
|
|
|
bonus.remain = 0;
|
|
|
|
|
|
|
|
|
|
orderStore.discount = 0;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let res = await checkBonusSn(bonus.sn);
|
|
|
|
|
|
|
|
|
|
@ -349,7 +346,7 @@ const handleCheckBonusSn = async () => {
|
|
|
|
|
bonus.remain = res.data.remain_number;
|
|
|
|
|
bonus.number = res.data.bonus_number;
|
|
|
|
|
//如果res.data最後是% 就相剩,沒有%就直接扣
|
|
|
|
|
if (res.data.type_money.slice(-1) === "%") {
|
|
|
|
|
if (res.data.type_money.slice(-1) == '%' || res.data.type_money.slice(-1) ==='%') {
|
|
|
|
|
orderStore.discount = ((100 - res.data.type_money.slice(0, -1)) / 100) * orderStore.sum_amount;
|
|
|
|
|
} else {
|
|
|
|
|
orderStore.discount = res.data;
|
|
|
|
|
@ -359,8 +356,6 @@ const handleCheckBonusSn = async () => {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
watch(() => bonus.sn, _.debounce(handleCheckBonusSn, 500));
|
|
|
|
|
|
|
|
|
|
//將購物車商品資料轉換成訂單商品資料
|
|
|
|
|
const cartToOrder = () => {
|
|
|
|
|
if (cartStore.cartItems.length === 0) {
|
|
|
|
|
@ -613,4 +608,16 @@ const detail = computed(() => {
|
|
|
|
|
.bonus-desc {
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.bonus-input{
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
div:nth-child(1){
|
|
|
|
|
flex: 1;
|
|
|
|
|
padding-right: 10px;
|
|
|
|
|
}
|
|
|
|
|
div:nth-child(2){
|
|
|
|
|
width: 50px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|