diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/Preview.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/Preview.vue index 134ae95f0..ecd16bd21 100644 --- a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/Preview.vue +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/Preview.vue @@ -1,17 +1,18 @@ - @@ -33,7 +34,7 @@ const items = computed(() => previewData.value?.elements || [])
- +
diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/PriceDisplay.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/PriceDisplay.vue index f62f670d9..757907302 100644 --- a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/PriceDisplay.vue +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/PriceDisplay.vue @@ -1,19 +1,18 @@ diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/RenderElements.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/RenderElements.vue index ba3fd2e0d..5716629e4 100644 --- a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/RenderElements.vue +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/RenderElements.vue @@ -1,38 +1,34 @@ + \ No newline at end of file diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/HeadlineElement.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/HeadlineElement.vue index a4c199dce..96fdbbfaa 100644 --- a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/HeadlineElement.vue +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/HeadlineElement.vue @@ -1,8 +1,8 @@ diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/HiddenElement.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/HiddenElement.vue index 882940676..1a05284a7 100644 --- a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/HiddenElement.vue +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/HiddenElement.vue @@ -1,9 +1,9 @@ diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/SelectElement.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/SelectElement.vue index f5cd65c20..8dbf299eb 100644 --- a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/SelectElement.vue +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/SelectElement.vue @@ -1,5 +1,5 @@ diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/TextElement.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/TextElement.vue index 689ff530d..2c4b3d480 100644 --- a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/TextElement.vue +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/preview/elements/TextElement.vue @@ -1,8 +1,8 @@ diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/model/preview/types.ts b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/model/preview/types.ts new file mode 100644 index 000000000..81a8c1365 --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/model/preview/types.ts @@ -0,0 +1,38 @@ +export interface PreviewOption { + id: string; + name: string; + valid: boolean; + selected: boolean; +} + +export interface PreviewElement { + id: string; + name: string; + pattern: string; + colorSystem: string; + placeHolder: string; + displayGroup: string; + defaultValue: string; + value: string; + help: string | null; + helpLink: string | null; + valid: boolean; + required: boolean; + rawValue: string; + rawValues: any[]; + options: PreviewOption[]; + htmlType: 'headline' | 'text' | 'input' | 'hidden' | 'select'; + validationErrors: any[]; + variant?: string; // For headline + minValue?: number; // For input + maxValue?: number; // For input +} + +export interface PreviewResponse { + success: boolean; + netto: number; + tax: number; + brutto: number; + colorDb: any[]; + elements: PreviewElement[]; +} diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/stores/Global.ts b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/stores/Global.ts index 615e5721e..91b6fb49d 100644 --- a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/stores/Global.ts +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/stores/Global.ts @@ -1,6 +1,7 @@ import { defineStore } from 'pinia' import BaseElement from '../model/BaseElement' import Mode from '../model/Mode' +import type { PreviewResponse } from '../model/preview/types'; import { saveProductToApi, saveFomulasAndParameterToApi, loadJsonFromApi, loadPriceFromApi, savePaperContainerToApi, saveDesignToApi, saveXmlToApi, fetchPreview } from '../lib/api' import { useItemStore } from './Items' @@ -29,7 +30,7 @@ export const useGlobalStore = defineStore('global', { saving: false, syncing: false, currentTab: 'designer' as string | number, - previewData: {} as object, + previewData: null as PreviewResponse | null, isPreviewLoading: false, previewError: '', }), @@ -44,7 +45,7 @@ export const useGlobalStore = defineStore('global', { getDragMode: (state) => state.dragMode, getFormulaData: (state) => state.formulaData, getFormulaError: (state) => state.formulaError, - getPreviewData: (state) => state.previewData, + getPreviewData: (state) => state.previewData as PreviewResponse | null, }, actions: { setXml(value: string) {