Как заменить последний элемент в v-stepper?

Как можно заменить кнопку "next" на кнопку "submit" в последнем шаге v-stepper при использовании Vuetify?
  • 20 марта 2024 г. 14:59
Ответы на вопрос 2
Для замены последнего элемента в v-stepper можно изменить его содержимое с помощью слотов. Вам нужно будет найти соответствующий шаг v-stepper, и заменить его содержимое.

Пример:

```html
<template>
  <v-stepper v-model="step">
    <v-stepper-header>Step 1</v-stepper-header>
    <v-stepper-content>Step 1 content</v-stepper-content>
    
    <v-stepper-header>Step 2</v-stepper-header>
    <v-stepper-content>Step 2 content</v-stepper-content>
    
    <v-stepper-header>Step 3</v-stepper-header>
    <v-stepper-content>Step 3 content</v-stepper-content>
      <v-stepper-header>
        <template v-slot:default="{ index, step }">
          <v-stepper-step :complete="step > index">Step 4</v-stepper-step>
        </template>
      </game-stepper-header>
    <v-stepper-content>
       Step 4 content
    </v-stepper-content>
  </v-stepper>
</template>
```

Чтобы заменить кнопку "next" на кнопку "submit" в последнем шаге v-stepper, можно использовать слот `actions` в компоненте v-stepper. В этом слоте можно создать условие, чтобы в последнем шаге отображалась кнопка "submit".

Пример:

```html
<template>
  <v-stepper v-model="step">
    <v-stepper-header>Step 1</v-stepper-header>
    <v-stepper-content>Step 1 content</v-stepper-content>
    
    <v-stepper-header>Step 2</v-stepper-header>
    <v-stepper-content>Step 2 content</v-stepper-content>
    
    <v-stepper-header>Step 3</v-stepper-header>
    <v-stepper-content>Step 3 content</v-stepper-content>
    
    <v-stepper-header>Step 4</v-stepper-header>
    <v-stepper-content>Step 4 content</v-stepper-content>
    
    <v-stepper-header>
      <template v-slot:actions="{ index }">
        <v-btn @click="submit">Submit</v-btn>
      </template>
    </v-stepper-header>
  </v-stepper>
</template>
```

Таким образом, вы можете заменить последний элемент в v-stepper и изменить кнопку в последнем шаге на кнопку "submit".
Смотрите <a href="https://vuetifyjs.com/en/api/v-stepper/#slots" rel="nofollow">документацию </a> <br/> <br/> <a href="https://play.vuetifyjs.com/#eNp9Us1u1DAQfpUhF2fVTcJSuKw2BY5ICA4cuz1ks16wyI9lOxFStFLhyoErF+AVoKKwCFFewXmjju3sJqnU5uDYn+ebb2Y+nzaeFGn0lPOwrqg39xaK5jxLFD1ZFgCLOkg4t1t7SMtCJaygooMsKBXlnAqog7xc0yxeegZZejBnmEzi2f6X3oGEtHtBEIZhEAyxvTRmklmpLD08HkQ4Huhv+qp9r//qS/1T/9M7/QdM6CjZLRLRoL07lAv6To2T1cFKFfAkzVj6FjsyAS/Fq2qVM2U6XTOZrDK6xqtNkkk6atZ8TQNMPk+keoZa8BiI4xKYA3mByQhstyPByCreVnsf1E1/7xEiY5MM4jy80fxCpoJxBZKqylnMcl4KBQ0IupnikqSK1XQKaZnzStE1bGEjyhwIPhXi5odaUtnpS4gPFP+U6C/6u/6tL3A1Dl2C3gHuL9oP6N15+5FMgeiv+r/eoZM2pv1ksc/IutI/2nNEf6HDlk3OJr2a6diKbfwZwoMy+gHHh6J9fwLxiSWFdZJVFOI4dhWHGS1eqzejHENjMYsjN264bAN+r+GyTfaXAFEE0j2IDkgyKpRPHEhsB+YTOHDRvb7O8766oyODILyInD/ojLedesfhw/DBzDObR+Hsvnd2DeLbRn4=" rel="nofollow">Playground Vuetify</a> <br/> <pre><code class="javascript">&lt;template&gt;
  &lt;v-app&gt;
    &lt;v-container&gt;
      &lt;v-stepper v-model="step" :items="items"&gt;
        &lt;!--...--&gt;
        &lt;template v-slot:item.3&gt;
          &lt;!-- Последний item--&gt;
          &lt;!--...--&gt;
        &lt;/template&gt;

        &lt;template v-slot:next&gt;
          &lt;v-btn @click="nextOrSubmit" :disabled="false"&gt;
            {{ isLastItem ? 'Submit' : 'Next' }}
          &lt;/v-btn&gt;
        &lt;/template&gt;
      &lt;/v-stepper&gt;
    &lt;/v-container&gt;
  &lt;/v-app&gt;
&lt;/template&gt;

&lt;script setup&gt;
  import { ref, reactive, computed } from 'vue'

  const items = reactive(['Название и авторы', 'Описания', 'Изображение'])
  const step = ref(1)

  const isLastItem = computed(() =&gt; step.value === items.length)

  const nextOrSubmit = () =&gt; {
    if (isLastItem.value) {
      // submit
      alert('submit')
      return
    }
    step.value++
  }
&lt;/script&gt;</code></pre>
Похожие вопросы