This commit is contained in:
@@ -22,19 +22,20 @@
|
||||
v-if="activeSteps.includes('messages')"
|
||||
:isActive="messageDeliveryMethod !== 'telegram'"
|
||||
>
|
||||
<CreateMessagesSection :placement="placement" v-model="messages" />
|
||||
<CreatePredefinedMessagesSection :placement="placement" v-model="messages" />
|
||||
</CreateSection>
|
||||
|
||||
<!-- Секция итогового резюме -->
|
||||
<CreateSection :isActive="activeSteps.includes('summary')">
|
||||
<CreateSummarySection
|
||||
:placement="placement"
|
||||
:actions="selectedActions"
|
||||
:messageDeliveryMethod="messageDeliveryMethod"
|
||||
:predefinedMessage="selectedActions.includes('sendMessage') ? messages : undefined"
|
||||
v-model:name="name"
|
||||
buttonLabel="Создать QR‑код"
|
||||
@nextStep="createQrCode"
|
||||
/>
|
||||
</CreateSection>
|
||||
|
||||
<p v-if="error" class="text-red-500 mt-4">Ошибка создания QR‑кода: {{ error }}</p>
|
||||
|
||||
<div class="h-[30dvh] md:h-[10dvh] overflow-hidden"></div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -43,13 +44,37 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed, ref } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { createQrCodeDocument } from '@/api/qrCode'
|
||||
import type { QRCodeDocument } from '@/types/DBDocumentTypes'
|
||||
|
||||
// Состояния шагов
|
||||
const placement = ref<string | null>(null)
|
||||
const selectedActions = ref<string[]>([])
|
||||
const messageDeliveryMethod = ref<'' | QRCodeDocument['messageDeliveryMethod']>('')
|
||||
const messages = ref<string[]>([])
|
||||
const placement = ref<null | QRCodeDocument['placement']>(null)
|
||||
const selectedActions = ref<QRCodeDocument['actions']>([])
|
||||
const messageDeliveryMethod = ref<null | QRCodeDocument['messageDeliveryMethod']>(null)
|
||||
const messages = ref<Exclude<QRCodeDocument['predefinedMessages'], undefined>>([])
|
||||
const name = ref<QRCodeDocument['name']>('')
|
||||
const error = ref<string | null>(null)
|
||||
|
||||
const router = useRouter()
|
||||
|
||||
// Логика создания QR-кода
|
||||
async function createQrCode() {
|
||||
try {
|
||||
const qrCodeDocument = await createQrCodeDocument({
|
||||
name: name.value,
|
||||
placement: placement.value!,
|
||||
actions: selectedActions.value,
|
||||
messageDeliveryMethod: messageDeliveryMethod.value!,
|
||||
predefinedMessages: messages.value.length > 0 ? messages.value : undefined,
|
||||
})
|
||||
|
||||
error.value = null
|
||||
await router.push({ name: 'ManageQRCodeReady', params: { qr_code_uri: qrCodeDocument.uri } })
|
||||
} catch (err) {
|
||||
error.value = (err as Error).message || 'Неизвестная ошибка'
|
||||
}
|
||||
}
|
||||
|
||||
// Функция для определения доступных шагов
|
||||
const activeSteps = computed(() => {
|
||||
|
||||
Reference in New Issue
Block a user