|
|
|
|
@ -115,7 +115,7 @@
|
|
|
|
|
v-model="values[currentField.uuid]"
|
|
|
|
|
:show-field-names="showFieldNames"
|
|
|
|
|
:field="currentField"
|
|
|
|
|
@submit="submitStep"
|
|
|
|
|
@submit="!isSubmitting && submitStep()"
|
|
|
|
|
@focus="scrollIntoField(currentField)"
|
|
|
|
|
/>
|
|
|
|
|
<div v-else-if="currentField.type === 'select'">
|
|
|
|
|
@ -395,7 +395,7 @@
|
|
|
|
|
:default-value="submitter.phone"
|
|
|
|
|
:submitter-slug="submitterSlug"
|
|
|
|
|
@focus="scrollIntoField(currentField)"
|
|
|
|
|
@submit="submitStep"
|
|
|
|
|
@submit="!isSubmitting && submitStep()"
|
|
|
|
|
/>
|
|
|
|
|
<PaymentStep
|
|
|
|
|
v-else-if="currentField.type === 'payment'"
|
|
|
|
|
@ -407,7 +407,7 @@
|
|
|
|
|
:values="values"
|
|
|
|
|
@attached="attachments.push($event)"
|
|
|
|
|
@focus="scrollIntoField(currentField)"
|
|
|
|
|
@submit="submitStep"
|
|
|
|
|
@submit="!isSubmitting && submitStep()"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
@ -1145,13 +1145,15 @@ export default {
|
|
|
|
|
async submitStep () {
|
|
|
|
|
this.isSubmitting = true
|
|
|
|
|
|
|
|
|
|
const submitStep = this.currentStep
|
|
|
|
|
|
|
|
|
|
const stepPromise = ['signature', 'phone', 'initials', 'payment'].includes(this.currentField.type)
|
|
|
|
|
? this.$refs.currentStep.submit
|
|
|
|
|
: () => Promise.resolve({})
|
|
|
|
|
|
|
|
|
|
stepPromise().then(async () => {
|
|
|
|
|
const emptyRequiredField = this.stepFields.find((fields, index) => {
|
|
|
|
|
if (index >= this.currentStep) {
|
|
|
|
|
if (index >= submitStep) {
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1161,7 +1163,7 @@ export default {
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const formData = new FormData(this.$refs.form)
|
|
|
|
|
const isLastStep = this.currentStep === this.stepFields.length - 1
|
|
|
|
|
const isLastStep = submitStep === this.stepFields.length - 1
|
|
|
|
|
|
|
|
|
|
if (isLastStep && !emptyRequiredField && !this.inviteSubmitters.length) {
|
|
|
|
|
formData.append('completed', 'true')
|
|
|
|
|
@ -1186,7 +1188,7 @@ export default {
|
|
|
|
|
return Promise.reject(new Error(data.error))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const nextStep = (isLastStep && emptyRequiredField) || this.stepFields[this.currentStep + 1]
|
|
|
|
|
const nextStep = (isLastStep && emptyRequiredField) || this.stepFields[submitStep + 1]
|
|
|
|
|
|
|
|
|
|
if (nextStep) {
|
|
|
|
|
if (this.alwaysMinimize) {
|
|
|
|
|
|