diff --git a/src/views/shop/shop.vue b/src/views/shop/shop.vue index 30885ba..c5b1655 100644 --- a/src/views/shop/shop.vue +++ b/src/views/shop/shop.vue @@ -66,7 +66,7 @@ const menu = usePopoverMenu(); const { show, top, left, index, open, close } = menu; const confirm = ref(); -const confirmFlag = ref(false); +const confirmFlag = ref(true); let confirmRefresh; let interval = 0; @@ -83,28 +83,43 @@ const refreshItems = () => { commit('set_shop', shop); } +const checkConfirm = () => { + for (let i = 0; i < itemNum; i++) { + const item = shop.value.item[i] + if (item && item.quality.quality == qualitys[4]) { + return true; + } + } +} + const refreshByCoins = (e) => { - if (e && confirmFlag.value) { - confirm.value.open(0, e); - confirmRefresh = refreshByCoins; - return; + if (confirmFlag.value) { + if (e && checkConfirm()) { + confirm.value.open(0, e); + confirmRefresh = refreshByCoins; + return; + } } if (!coins.value || coins.value < refreshCoins) { commit("set_sys_info", { msg: t('noCoinsRefresh'), type: "warning", }); } else { refreshItems(); + confirmFlag.value = true; commit('add_player_coins', refreshCoins * -1); } } const refreshForFree = (e) => { - if (e && confirmFlag.value) { - confirm.value.open(0, e); - confirmRefresh = refreshForFree; - return; + if (confirmFlag.value) { + if (e && checkConfirm()) { + confirm.value.open(0, e); + confirmRefresh = refreshByCoins; + return; + } } if (shop.value.freeTimes > 0) { refreshItems(); + confirmFlag.value = true; shop.value.freeTimes--; } else { commit("set_sys_info", { msg: t('noRefreshTimes'), type: "warning", }); @@ -127,6 +142,9 @@ const buyEquip = (idx) => { commit("set_backpack", grid); shopItems.value[idx] = null; close(); + if(equip.quality.quality == qualitys[4]){ + confirmFlag.value = false; + } return; } commit("set_sys_info", { msg: t('noSpace'), type: "warning", });