Vue-Element el-transfer fügt Drag-Funktion hinzu

Vue-Element el-transfer fügt Drag-Funktion hinzu

Das Core Asset Management Project erfordert, dass el-transfer Drag-and-Drop-Sortier- und Drag-and-Drop-Funktionen auf der linken, rechten, oberen und unteren Seite hinzufügt;
Die Originalkomponente unterstützt kein Ziehen, daher müssen wir eine Drittanbieterkomponente sortablejs verwenden

Erstinstallation

 sudo npm i sortablejs --save-dev

HTML Quelltext

  <Vorlage>
  <el-transfer ref="transfer" id="transfer" v-model="Wert" :data="Daten">
   <span slot-scope="{ option }" :draggable="!option.disabled" @dragstart="drag($event,option)">{{ option.key }} - {{ option.label }}</span>
  </el-transfer>
</template>```

erstellen

  <Skript>

   Sortable aus „sortablejs“ importieren

   Standard exportieren {
      Daten() {
        const generateData = _ => {
          const data = []; für (let i = 1; i <= 15; i++) {
            Daten.push({
              Taste: i,
              Bezeichnung: `Option ${i}`,
              deaktiviert: i % 4 === 0 });
          } Daten zurückgeben;
        }; zurückkehren {
          Daten: generateData(),
          Wert: [1, 4],
          draggingKey : null }
      },
      montiert() {
        const transfer = dies.$refs.transfer.$el
        const leftPanel = transfer.getElementsByClassName("el-transfer-panel")[0].getElementsByClassName("el-transfer-panel__body")[0];
        const rightPanel = transfer.getElementsByClassName("el-transfer-panel")[1].getElementsByClassName("el-transfer-panel__body")[0];
        const rightEl = rightPanel.getElementsByClassName("el-transfer-panel__list")[0]
        Sortable.create(rechtsEl,{
          am Ende: (evt) => {
            const {alterIndex,neuerIndex} = evt;
            const temp = this.value[alterIndex] 
            wenn (!temp || temp === 'undefiniert') {
              zurückkehren
            }//Lösen Sie das Problem der undefinierten Angabe, wenn das letzte Element rechts von rechts nach links gezogen wird. this.$set(this.value,oldIndex,this.value[newIndex])  
            dies.$set(diesen.Wert,neuerIndex,temp)
          }
        })
        const leftEl = leftPanel.getElementsByClassName("el-transfer-panel__list")[0]
        Sortable.create(leftEl,{
          am Ende: (evt) => {
            const {alterIndex,neuerIndex} = evt;
            const temp = this.data[alterIndex] 
            wenn (!temp || temp === 'undefiniert') {
              zurückkehren
            } //Lösen Sie das Problem der undefinierten Angabe, wenn das letzte Element rechts von rechts nach links gezogen wird. this.$set(this.data,oldIndex,this.data[newIndex]) 
            dies.$set(diese.daten,neuerIndex,temp)
          }
        })
        leftPanel.ondragover = (ev) => {
          ev.preventDefault()
        }
        leftPanel.ondrop = (ev) => {
          ev.preventDefault();
          const index = dieser.Wert.indexOf(dieser.draggingKey) wenn(index !== -1){ dieser.Wert.splice(index,1)
          }
        }
        rightPanel.ondragover = (ev) => {
          ev.preventDefault()
        }
        rightPanel.ondrop = (ev) => {
          ev.preventDefault(); wenn(dieser.Wert.indexOf(dieser.draggingKey) === -1){ dieser.Wert.push(dieser.draggingKey)
          }
        }
      },
      Methoden: {
        ziehen(ev,option) { diese.draggingKey = option.key
        }
      }

    } 
</Skript>

Dies ist das Ende dieses Artikels über das Hinzufügen einer Drag-and-Drop-Funktion zum Vue-Element el-transfer. Weitere verwandte Inhalte zum Drag-and-Drop-Element el-transfer finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue+abp WeChat Scan-Code-Anmeldeimplementierungscodebeispiel
  • So kapseln Sie die Tabellenkomponente von Vue Element
  • Beispielcode zur Implementierung einer dynamischen Spaltenfilterung in einer Vue+Element-Tabelle
  • Tipps zur Verwendung von Vue-Elementen und Nuxt
  • Implementierung eines universellen Popup-Fensters von Vue+ElementUI (Hinzufügen+Bearbeiten)
  • Vue+Element-UI realisiert Baumtabelle
  • Vue+elementUI fügt dynamisch Formularelemente und Details zum Bestätigungscode hinzu
  • Vue verwendet Element-UI, um die Formularvalidierung zu implementieren
  • Die Front-End-Anwendungsentwicklung von Vue Element integriert die Front-End-Anmeldung des ABP-Frameworks

<<:  Über das WeChat-Gleitproblem des UniApp-Editors

>>:  React-native-Beispielcode zur Implementierung des Schiebelöscheffekts des Einkaufswagens

Artikel empfehlen

Vue implementiert Sternebewertung mit Dezimalstellen

In diesem Artikel wird der spezifische Code von V...

So verwenden Sie Vue zum Implementieren von CSS-Übergängen und Animationen

Inhaltsverzeichnis 1. Der Unterschied zwischen Üb...

Beispiel für die Implementierung des Lastausgleichs mit Nginx+SpringBoot

Einführung in den Lastenausgleich Bevor wir die L...

So richten Sie die Swap-Partition SWAP in Linux 7.7 ein

Die Swap-Partition des Linux-Systems, also die Sw...

So installieren Sie das Modul „lua-nginx-module“ in Nginx

ngx_lua_module ist ein Nginx-HTTP-Modul, das den ...

Implementierungsfallcodeanalyse für dynamische und statische Trennung von Nginx

Trennung von statischer und dynamischer Dynamisch...

Einige Tipps zur richtigen Verwendung des HTML-Titelattributs

Wenn Sie Inhalte vor Benutzern von Telefonen, Tabl...

Analyse des Remote-Debuggings und des Timeout-Betriebsprinzips von Webdiensten

Remote-Debugging von Webdiensten In .NET ist die ...

Zusammenfassung zum Erlernen von HTML-Tags und Grundelementen

1. Elemente und Tags in HTML <br />Ein Elem...

JavaScript implementiert die asynchrone Erfassung von Formulardaten

In diesem Artikelbeispiel wird der spezifische Co...