refactor: hide old promotions tab and rename business tab to include activities

This commit is contained in:
2026-03-18 20:46:46 -05:00
parent fd61cb7f87
commit bf5b3266dc

View File

@ -1,4 +1,4 @@
<script setup lang="ts">
<script setup lang="ts">
import { ref, onMounted, watch, computed } from 'vue'
import { useRoute } from 'vue-router'
import { businessService } from '@/services/businessService'
@ -12,7 +12,7 @@ const route = useRoute()
const authStore = useAuthStore()
// State
const activeTab = ref<'promotions' | 'businesses' | 'shuttles'>('promotions')
const activeTab = ref<'promotions' | 'businesses' | 'shuttles'>('businesses')
const coupons = ref<Coupon[]>([])
const businesses = ref<Business[]>([])
const shuttles = ref<Shuttle[]>([])
@ -185,27 +185,7 @@ async function deleteBusiness(id: string) {
}
}
// Coupon Methods
function openCreateModal() {
isEditing.value = false
couponImageFile.value = null
couponImagePreview.value = null
currentCoupon.value = {
title: '',
business_id: null,
description: '',
image_url: '',
social_media: '',
terms: '',
discount_percentage: null,
discount_amount: null,
category: 'Restaurante',
valid_from: '',
valid_until: '',
is_active: true
}
showModal.value = true
}
function handleBusinessChange() {
const selectedBiz = businesses.value.find(b => b.id === currentCoupon.value.business_id)
@ -311,11 +291,9 @@ async function toggleCouponStatus(coupon: Coupon) {
<!-- Tabs -->
<div class="tabs-container">
<div class="tabs-buttons">
<button :class="['tab-btn', { active: activeTab === 'promotions' }]" @click="activeTab = 'promotions'">
Promociones
</button>
<button :class="['tab-btn', { active: activeTab === 'businesses' }]" @click="activeTab = 'businesses'">
Mis Negocios
Negocios y Actividades
</button>
<button :class="['tab-btn', { active: activeTab === 'shuttles' }]" @click="activeTab = 'shuttles'">
Viajes Turísticos
@ -346,13 +324,10 @@ async function toggleCouponStatus(coupon: Coupon) {
</div>
</div>
<button v-if="activeTab === 'promotions'" class="primary-btn" @click="openCreateModal">
<span class="material-icons">add</span>
Nuevo Cupón
</button>
<button v-if="activeTab === 'businesses'" class="primary-btn" @click="openCreateBusinessModal">
<span class="material-icons">add</span>
Nuevo Negocio
Crear Actividad / Negocio
</button>
<button v-if="activeTab === 'shuttles'" class="primary-btn" @click="$router.push('/admin/shuttles')">
<span class="material-icons">rocket_launch</span>
@ -365,7 +340,7 @@ async function toggleCouponStatus(coupon: Coupon) {
<div class="search-filter-bar">
<div class="search-box">
<span class="material-icons">search</span>
<input v-model="searchQuery" type="text" :placeholder="activeTab === 'promotions' ? 'Buscar promoción...' : (activeTab === 'businesses' ? 'Buscar negocio...' : 'Buscar shuttle...')">
<input v-model="searchQuery" type="text" :placeholder="activeTab === 'businesses' ? 'Buscar negocio o actividad...' : 'Buscar shuttle...'">
</div>
<div class="filter-box">
<span class="material-icons">filter_alt</span>
@ -449,13 +424,13 @@ async function toggleCouponStatus(coupon: Coupon) {
<div v-if="activeTab === 'businesses'">
<div v-if="businesses.length === 0" class="empty-state">
<span class="material-icons">store_front</span>
<p>Aún no has registrado ningún negocio o local.</p>
<p>Aún no has registrado ningún negocio local o actividad.</p>
</div>
<div v-else class="table-card">
<table class="coupons-table">
<thead>
<tr>
<th>Negocio / Local</th>
<th>Negocio / Actividad Turística</th>
<th class="text-center">Categoría</th>
<th class="text-center">Área</th>
<th class="text-center">Contacto</th>