OfferControls simplificado
This commit is contained in:
@@ -17,19 +17,37 @@
|
||||
<span class="search-icon">🔍</span>
|
||||
</div>
|
||||
|
||||
<div class="uuids-grid" v-if="!loading">
|
||||
<div
|
||||
v-for="(uuidInfo, index) in filteredUuids"
|
||||
:key="uuidInfo.uuid"
|
||||
class="uuid-card"
|
||||
:class="{ 'has-name': uuidInfo.hasName }"
|
||||
@click="selectUuid(uuidInfo.uuid)"
|
||||
@contextmenu.prevent="showContextMenu($event, uuidInfo)"
|
||||
:style="{ animationDelay: `${index * 0.02}s` }"
|
||||
>
|
||||
<div class="uuid-number">{{ getUuidIndex(uuidInfo.uuid) }}</div>
|
||||
<div v-if="uuidInfo.name" class="player-name">{{ uuidInfo.name }}</div>
|
||||
<div class="uuid-text">{{ formatUuid(uuidInfo.uuid) }}</div>
|
||||
<!-- Loading State -->
|
||||
<div v-if="loading" class="loading">
|
||||
<div class="spinner"></div>
|
||||
<p>Cargando UUIDs...</p>
|
||||
</div>
|
||||
|
||||
<!-- Loaded Content -->
|
||||
<div v-else>
|
||||
<div class="uuids-grid">
|
||||
<div
|
||||
v-for="(uuidInfo, index) in filteredUuids"
|
||||
:key="uuidInfo.uuid"
|
||||
class="uuid-card"
|
||||
:class="{ 'has-name': uuidInfo.hasName }"
|
||||
@click="selectUuid(uuidInfo.uuid)"
|
||||
@contextmenu.prevent="showContextMenu($event, uuidInfo)"
|
||||
:style="{ animationDelay: `${index * 0.02}s` }"
|
||||
>
|
||||
<div class="uuid-number">{{ getUuidIndex(uuidInfo.uuid) }}</div>
|
||||
<div v-if="uuidInfo.name" class="player-name">{{ uuidInfo.name }}</div>
|
||||
<div class="uuid-text">{{ formatUuid(uuidInfo.uuid) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="quick-actions">
|
||||
<button @click="selectRandom" class="btn-random">
|
||||
🎲 Seleccionar Aleatorio
|
||||
</button>
|
||||
<button @click="goToDashboard" class="btn-dashboard">
|
||||
🎛️ Dashboard Admin
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -74,20 +92,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else class="loading">
|
||||
<div class="spinner"></div>
|
||||
<p>Cargando UUIDs...</p>
|
||||
</div>
|
||||
|
||||
<div class="quick-actions">
|
||||
<button @click="selectRandom" class="btn-random">
|
||||
🎲 Seleccionar Aleatorio
|
||||
</button>
|
||||
<button @click="goToDashboard" class="btn-dashboard">
|
||||
🎛️ Dashboard Admin
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -131,10 +135,26 @@ const printModal = ref({
|
||||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
console.log('Loading UUIDs with names...');
|
||||
const response = await fetch(`${import.meta.env.VITE_API_URL || 'http://localhost:3000/api'}/admin/uuids-with-names`);
|
||||
const data = await response.json();
|
||||
allUuids.value = data.uuids || [];
|
||||
filteredUuids.value = allUuids.value; // Show all UUIDs
|
||||
|
||||
if (!response.ok) {
|
||||
console.warn('Failed to fetch uuids-with-names, trying fallback...');
|
||||
// Fallback to regular UUIDs endpoint
|
||||
const fallbackResponse = await fetch(`${import.meta.env.VITE_API_URL || 'http://localhost:3000/api'}/admin/uuids`);
|
||||
const fallbackData = await fallbackResponse.json();
|
||||
allUuids.value = (fallbackData.uuids || []).map((uuid: string) => ({
|
||||
uuid,
|
||||
name: null,
|
||||
hasName: false
|
||||
}));
|
||||
} else {
|
||||
const data = await response.json();
|
||||
allUuids.value = data.uuids || [];
|
||||
}
|
||||
|
||||
filteredUuids.value = allUuids.value;
|
||||
console.log(`Loaded ${allUuids.value.length} UUIDs`);
|
||||
} catch (error) {
|
||||
console.error('Failed to load UUIDs:', error);
|
||||
allUuids.value = [];
|
||||
@@ -192,10 +212,8 @@ function showContextMenu(event: MouseEvent, uuidInfo: UuidInfo) {
|
||||
}
|
||||
|
||||
// Hide context menu when clicking elsewhere
|
||||
onMounted(() => {
|
||||
document.addEventListener('click', () => {
|
||||
contextMenu.value.visible = false;
|
||||
});
|
||||
document.addEventListener('click', () => {
|
||||
contextMenu.value.visible = false;
|
||||
});
|
||||
|
||||
// QR Print functions
|
||||
|
||||
Reference in New Issue
Block a user