fix(composant) : rendre les slots de structure optionnels à la création
Les emplacements pièces, produits et sous-composants du squelette ne bloquent plus la soumission du formulaire de création de composant. Les slots vides restent visibles en consultation avec l'indicateur rouge « manquant » et peuvent être remplis ultérieurement en édition. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,7 +34,6 @@ import {
|
|||||||
import {
|
import {
|
||||||
hasAssignments,
|
hasAssignments,
|
||||||
initializeStructureAssignments,
|
initializeStructureAssignments,
|
||||||
isAssignmentNodeComplete,
|
|
||||||
serializeStructureAssignments,
|
serializeStructureAssignments,
|
||||||
} from '~/shared/utils/structureAssignmentHelpers'
|
} from '~/shared/utils/structureAssignmentHelpers'
|
||||||
import type { ComponentModelStructure } from '~/shared/types/inventory'
|
import type { ComponentModelStructure } from '~/shared/types/inventory'
|
||||||
@@ -158,18 +157,7 @@ export function useComponentCreate() {
|
|||||||
hasAssignments(structureAssignments.value),
|
hasAssignments(structureAssignments.value),
|
||||||
)
|
)
|
||||||
|
|
||||||
const structureSelectionsComplete = computed(() => {
|
const structureSelectionsComplete = computed(() => true)
|
||||||
if (!structureHasRequirements.value) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
if (structureDataLoading.value) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if (!structureAssignments.value) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return isAssignmentNodeComplete(structureAssignments.value, true)
|
|
||||||
})
|
|
||||||
|
|
||||||
const canSubmit = computed(() => Boolean(
|
const canSubmit = computed(() => Boolean(
|
||||||
canEdit.value
|
canEdit.value
|
||||||
@@ -307,11 +295,6 @@ export function useComponentCreate() {
|
|||||||
payload.productId = rootProductSelection.selectedProductId.trim()
|
payload.productId = rootProductSelection.selectedProductId.trim()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (structureHasRequirements.value && !structureSelectionsComplete.value) {
|
|
||||||
toast.showError('Complétez la sélection des pièces, produits et sous-composants.')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
const serializedStructure = structureHasRequirements.value
|
const serializedStructure = structureHasRequirements.value
|
||||||
? serializeStructureAssignments(structureAssignments.value)
|
? serializeStructureAssignments(structureAssignments.value)
|
||||||
: null
|
: null
|
||||||
@@ -414,6 +397,7 @@ export function useComponentCreate() {
|
|||||||
structureSelectionsComplete,
|
structureSelectionsComplete,
|
||||||
canEdit,
|
canEdit,
|
||||||
canSubmit,
|
canSubmit,
|
||||||
|
requiredCustomFieldsFilled,
|
||||||
|
|
||||||
// Functions
|
// Functions
|
||||||
typeOptionLabel,
|
typeOptionLabel,
|
||||||
|
|||||||
Reference in New Issue
Block a user