22 lines
1.1 KiB
Vue
22 lines
1.1 KiB
Vue
<template>
|
|
<ui-popup v-for="(popup, index) in swal.popups" :key="index" :icon="popup.icon" :heading="popup.title" @close="popup.reject(popup.id)">
|
|
<div class="text-center mt-4" v-text="popup.body" />
|
|
<div class="mt-4">
|
|
<template v-for="field in popup.fields">
|
|
<f-text v-if="field.type === 'text'" :id="field.name" :key="field.name" v-model="popup.payload[field.name]" :name="field.name" :label="field.label" />
|
|
<f-select v-if="field.type === 'select'" :id="field.name" :key="field.name" v-model="popup.payload[field.name]" :name="field.name" :label="field.label" :options="field.options" />
|
|
</template>
|
|
</div>
|
|
<div class="flex justify-center space-x-4 mt-6">
|
|
<ui-button type="button" class="btn-primary" @click.prevent="popup.resolve(popup.id)">{{ popup.confirmButton }}</ui-button>
|
|
<ui-button type="button" class="btn-default" @click.prevent="popup.reject(popup.id)">{{ popup.cancelButton }}</ui-button>
|
|
</div>
|
|
</ui-popup>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import useSwal from '@/stores/swalStore.ts';
|
|
const swal = useSwal();
|
|
</script>
|
|
|