Beispielcode zur Verwendung der Elementkalenderkomponente in Vue

Beispielcode zur Verwendung der Elementkalenderkomponente in Vue

Schauen Sie sich zunächst das Wirkungsdiagramm an:

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Der komplette Code ist beigefügt

<Vorlage>
  <div Klasse="newSeeds" id="famerCalendar">
    <div Klasse="Titel-unten">
      <el-Datumsauswahl
        :löschbar="falsch"
        Präfix-Symbol = "Zeitfilter"
        v-Modell="Wert2"
        Typ="Monat"
        Platzhalter="Monat auswählen"
        Werteformat="jjjj-MM"
        @change="Änderungsdatum"
      >
      </el-Datumsauswahl>
    </div>
    <div Klasse="calendarBody">
      <el-calendar v-model="Wert">
        <template slot="dateCell" slot-scope="{ Datum, Daten }">
          <div
            @click="Tagwählen(Daten)"
            Klasse="Zelleninfo"
            :Klasse="data.isSelected == true ? 'shadowBox' : ''"
          >
            <ul Klasse="ZellenInfoUl">
              <li v-for="(Element, Index) in ActiveList" :Schlüssel="Index">
                <p v-if="Daten.Tag == Artikel.Zeit" Klasse="ZellInfoUlP">
                  {{ Artikelname }}
                </p>
              </li>
            </ul>
            <div
              v-for="(val, keys, i) in umgekehrter Nachricht"
              :Schlüssel="i"
              :Klasse="data.day == keys ? 'tipMsg' : ''"
            >
              <span v-if="data.day == keys" class="tipMsged">{{ val }}</span>
            </div>
            <div Klasse="ZellenInfoBox">
              <p>{{ Daten.Tag.split("-")[2] }}</p>
            </div>
          </div>
        </Vorlage>
      </el-Kalender>
    </div>
    <!-- Schublade -->
    <el-Schublade
      :title="ZeitWählen"
      :visible.sync="Schublade"
      :direction="Richtung"
    >
      <div Klasse="ModusJeder" v-if="ListeNormal[0]">
        <div Klasse="modeEachs" v-for="(item, index) in listNormal" :key="index">
          <i class="setI el-icon-delete" @click="delTips(item)"></i>
          <i
            Klasse = "setI setIs el-icon-edit-outline"
            @click="Tipps hinzufügen(1, Artikel)"
          ></i>
          <p>
            <span>Startzeit:</span> <span>{{ item.time }}</span>
          </p>
          <p>
            <span>Name der landwirtschaftlichen Aktivität:</span> <span>{{ item.name }}</span>
          </p>
          <p>
            <span>Verantwortliche Person:</span> <span>{{ item.userName }}</span>
          </p>
          <p>
            <span>Anzahl der Teilnehmer:</span> <span>{{ item.people }}</span>
          </p>
          <p>
            <span>Zielspezifikation:</span> <span>{{ item.content }}</span>
          </p>
        </div>
      </div>
      <div Klasse="modeEach modeEached" v-else>
        <div Klasse="leererZustand">
          <img src="../../../assets/leftScreen/math17.png" alt="" />
        </div>
        <p>Für das aktuelle Datum sind keine landwirtschaftlichen Aktivitäten geplant.</p>
        <p>Klicken Sie auf die Schaltfläche „Landwirtschaftliche Aktivität hinzufügen“ in der unteren rechten Ecke, um sie hinzuzufügen! </p>
      </div>
      <div Klasse="FußBox">
        <el-button type="primary" @click="addTips(0)">Landwirtschaftliche Aktivitäten hinzufügen</el-button>
      </div>
    </el-Schublade>
    <!-- Neue Änderungen -->
    <el-dialog
      Titel=""
      :visible.sync="Formular aktualisieren"
      Breite="31vw"
      Klasse="addAlameBox"
    >
      <div slot="Titel" Klasse="Header-Titel" Stil="Position: relativ">
        <span class="Titelname"></span>
        <span class="title-age">{{ boxPrompt }}</span>
        <span
          Stil="
            Position: absolut;
            oben: 50 %;
            transformieren: verschiebeY(-50%);
            rechts: 0px;
            Schriftgröße: 2,22vh;
          "
        >
        </span>
      </div>
      <div Klasse="addAlaForm">
        <el-form
          ref="upTableData"
          :Regeln="Regeln"
          :Modell="upTableData"
          Beschriftungsbreite = "10vw"
        >
          <!-- <el-form-item label="Startzeit" prop="Zeit">
            <div Klasse="Block">
              <el-Datumsauswahl
                v-Modell="upTableData.time"
                Typ="Datum/Uhrzeit"
                Werteformat="jjjj-MM-tt HH:mm:ss"
                Platzhalter="Datum und Uhrzeit auswählen"
              >
              </el-Datumsauswahl>
            </div>
          </el-form-item> -->
          <el-form-item label="Name der landwirtschaftlichen Tätigkeit" prop="Name">
            <el-input v-model="upTableData.name"></el-input>
          </el-form-item>
          <el-form-item label="Verantwortlicher" prop="Benutzername">
            <el-input v-model="upTableData.Benutzername"></el-input>
          </el-form-item>
          <el-form-item label="Anzahl der Teilnehmer" prop="Personen">
            <el-input v-model="upTableData.Personen"></el-input>
          </el-form-item>
          <el-form-item label="Zielspezifikation" prop="content">
            <el-input v-model="upTableData.content"></el-input>
          </el-form-item>
          <el-form-item size="groß">
            <el-Schaltfläche
              Klasse="saveBtn"
              Typ="primär"
              @click="Form speichern('upTableData')"
              >Speichern</el-Schaltfläche
            >
          </el-form-item>
        </el-form>
      </div>
    </el-dialog>
  </div>
</Vorlage>
<Skript>
importiere Datumsformat aus "../../../components/dealTime.js";
Standard exportieren {
  Daten() {
    zurückkehren {
      Zeitauswahl: "7-26",
      Sechsen: [],
      Zahl: 0,
      aktiver Tag: 0,
      timeRex: "",
      listParams: {
        Seite: 1,
        Größe: "",
        Wo: "",
        Zeit: "",
      },
      IDs: 0,
      ListeNormal: [],
      aktiveListe: [
        {
          data1: "17.08.2021 15:30",
          data2: "1# Parzellenbewässerung",
          Daten3: „Sonne Guodong“,
          Daten4: "16",
          data5: „Bodenfeuchtigkeit erreicht 40%“,
        },
        {
          data1: "17.08.2021 15:30",
          data2: "1# Parzellenbewässerung",
          Daten3: „Sonne Guodong“,
          Daten4: "16",
          data5: „Bodenfeuchtigkeit erreicht 40%“,
        },
      ],
      updateForm: false,
      boxPrompt: "Neu",
      upTableData: {
        ID: 0,
        Name: "", //Operationsname Zeit: "", //Geplante Zeit Benutzername: "", //Verantwortliche Person Personen: "", //Anzahl der Personen Inhalt: "", //Inhalt},
      Regeln:
        Daten1: [
          { erforderlich: true, Nachricht: "Zeit", Auslöser: ["Unschärfe", "Änderung"] },
        ],
        Daten2: [
          {
            erforderlich: wahr,
            Meldung: „Produktname darf nicht leer sein“,
            Auslöser: ["verwischen", "ändern"],
          },
        ],
        Daten3: {
          erforderlich: wahr,
          Meldung: „Produkttyp darf nicht leer sein“,
          Auslöser: ["verwischen", "ändern"],
        },
        Daten4: {
          erforderlich: wahr,
          Meldung: "Spezifikation darf nicht leer sein",
          Auslöser: ["verwischen", "ändern"],
        },
        Daten5: {
          erforderlich: wahr,
          Meldung: "Die Liefermenge darf nicht leer sein",
          Auslöser: ["verwischen", "ändern"],
        },
      },
      // Schublade: false,
      Richtung: "rtl",
      // Datumswert2: "",
      Wert: neues Datum(),
      wird geladen: falsch,
      LogistikFormular: {
        Name: "",
        Region: -1,
      },
    };
  },

  montiert() {
    dies.requrstLists();
    dies.getNowDate();
    // dies.getActivityCalendar;
  },
  betrachten:
    aktiveListe(neuerWert) {
      this.activeList = neuerWert;
    },
  },
  berechnet: {
    reverseMessage() {
      var arrs = [];
      var countArrs = [];
      dies.activeList.forEach((val) => {
        arrs.push(Wert.Zeit);
      });
      return arrs.reduce(Funktion (vorherige, nächste) {
        vorherige[nächste] = vorherige[nächste] + 1 || 1;
        countArrs.push({ vorherige });
        zurück vorh.;
      }, {});
      // };
    },
  },
  Methoden: {
    // Aktuelle Uhrzeit abrufen getNowDate(){
      var date = neues Datum();
      this.value2 = dateFormat('JJJJ-mm',Datum)
    },
    // Holen Sie sich die Listenschnittstelle async requrstLists() {
      Konstante {
        Daten: {Daten},
      } = warte darauf.$post("product/getProductPlayList", {
        Seite: 1,
        Größe: "",
        Wo: "",
        Zeit: "",
      });
      datas.forEach((val) => {
        wenn (val.time.indexOf(":")) {
          console.log("Speicherplatz gefunden");
          val.time = val.time.split(" ")[0];
        }
      });
      this.activeList = Daten;
      // dies.sortArr()
    },
    asynchrone Anfrageliste () {
      Konstante {
        Daten: {Daten},
      } = warte auf dies.$post("product/getProductPlayList", dies.listParams);
      this.listNormal = Daten;
    },
    // Hinzufügen addTips(val, item) {
      dies.updateForm = wahr;
      wenn (Wert === 0) {
        this.boxPrompt = "Neu";
        dies.upTableData = {
          ID: 0,
          Name: "", //Name des Vorgangs Zeit: "", //Geplante Zeit Benutzername: "", //Verantwortliche Person Personen: "", //Anzahl der Personen Inhalt: "", //Inhalt};
      } sonst wenn (Wert === 1) {
        this.boxPrompt = "Bearbeiten";
        diese.ids = Artikel-ID;
        dies.$nextTick(() => {
          Dies.upTableData = JSON.parse(JSON.stringify(item));
        });
      }
    },
    //Speichern saveForm() {
      let url = "/Produkt/EditProductPlay";
      wenn (this.boxPrompt == "Neu") {
        diese.upTableData.id = 0;
      } sonst wenn (this.boxPrompt == "Bearbeiten") {
        diese.upTableData.id = diese.ids;
      }
      this.upTableData.time = this.timeChoose + "00:00:00";
      dies.$refs["upTableData"].validate((gültig) => {
        if (gültig) {
          dies.$get(url, dies.upTableData).then((res) => {
            this.updateForm = falsch;
            wenn (res.data.state == "Erfolg") {
              diese.requrstList();
              dies.requrstLists();
              this.$message.success("Vorgang erfolgreich");
            } anders {
              this.$message.error("Vorgang fehlgeschlagen! Bitte versuchen Sie es später erneut!");
            }
          });
        } anders {
          console.log("Fehler beim Senden!!");
          gibt false zurück;
        }
      });
    },
    wähleTag(Daten) {
      dies.$nextTick(() => {
        wenn (Datentyp === "aktueller Monat") {
          diese.Schublade = wahr;
          diese.listParams.time = Daten.Tag;
          diese.Zeitauswahl = Daten.Tag;
          diese.requrstList();
        } sonst wenn (data.type === "vorheriger Monat") {
          dies.prevBtn.click();
        } sonst wenn (data.type === "nächster-Monat") {
          dies.nextBtn.click();
        }
      });
    },

    // SchubladengriffSchließen(erledigt) {
      this.$confirm("Schließen bestätigen?")
        .then((res) => {
          Erledigt();
          dies.requrstLists();
        })
        .catch((err) => {});
    },
    // Löschen delTips(val) {
      konsole.log(Wert);
      this.$confirm("Dieser Vorgang löscht die Datei unwiderruflich. Möchten Sie fortfahren?", "Prompt", {
        confirmButtonText: "Bestätigen",
        cancelButtonText: "Abbrechen",
        Typ: "Warnung",
      })
        .then(() => {
          dies.$post("/product/deteleProductPlay", { id: val.id }).dann(
            (res) => {
              wenn (res.data.state == "Erfolg") {
                this.$message.success("Erfolgreich gelöscht");
                diese.requrstList();
                dies.requrstLists();
              } anders {
                dies.$message(res.data.msg);
              }
            }
          );
        })
        .fangen(() => {
          diese.$nachricht({
            Typ: "info",
            Nachricht: "Gelöscht",
          });
        });
    },

    //Zeitauswahl changeDate(val) {
      dieser.Wert = Wert;
    },
    //Aktualisieren refresh() {
      dies.laden = wahr;
      // diese.requrstList();
    },
    //Suchesearch() {
      let name = diese.logisticsForm.name;
      let level = diese.logisticsForm.region;
      wenn (Ebene == -1) Ebene = "";
      dies.laden = wahr;
      // diese.requrstList(Name, Ebene);
    },
    //Reset removeForm() {
      this.logisticsForm.name = "";
      diese.logisticsForm.region = -1;
      // diese.requrstList();
    },
  },
};
</Skript>

<style scoped lang="weniger">
@import "../../../style/backTable.less";
</Stil>
  <style scoped lang="weniger">
#famerCalendar /deep/ .el-calendar-table {
  Breite: 100 %;
  Höhe: 100%;
  &:nicht(.is-range) {
    // Daten, die nicht in diesem Monat liegen, nicht anklickbar machen und nicht in andere Monate springen lassen td.next {
      Zeigerereignisse: keine;
    }
    td.vorher {
      Zeigerereignisse: keine;
    }
  }
}

.calendarBody {
  Breite: 100 %;
  Höhe: 81vh;
}
#famerCalendar .newSeeds {
  Höhe: 90vh;
}
#famerCalendar /deep/ .el-calendar__header {
  Inhalt ausrichten: Abstand dazwischen;
  Polsterung: 12px 20px;
  Rand: keiner;
  Textausrichtung: zentriert;
  Hintergrund: #00284d;
  Anzeige: Block;
}
#famerCalendar /deep/ .el-button-group {
  Anzeige: keine;
}
#famerCalendar /deep/ .el-calendar__title {
  Farbe: #fff;
  selbst ausrichten: zentrieren;
  Zeilenhöhe: 3vh;
}
#famerCalendar /deep/ .el-calendar-table thead th:nth-of-type(2n) {
  Hintergrund: #5c768d;
  Farbe: #fff;
  Polsterung: 1vh 0;
}
#famerCalendar /deep/ .el-calendar-table thead th:nth-of-type(2n + 1) {
  Hintergrund: #335371;
  Farbe: #fff;
  Polsterung: 1vh 0;
}
#famerCalendar /deep/ .el-calendar__body {
  Polsterung: 0;
}
#famerCalendar .title-bottom /deep/ .el-input--prefix .el-input__inner {
  Polsterung links: 3vw;
  Breite: 75 %;
  /* Höhe: 4vh;
    Zeilenhöhe: 4vh; */
}
#famerCalendar /deep/ .el-date-editor.el-input,
.el-date-editor.el-input__inner {
  Breite: 10vw;
}
#famerCalendar .timeFilter {
  Position: relativ;
}
#famerCalendar /deep/ .el-calendar-table td {
  Textausrichtung: rechts;
}
#famerCalendar /deep/ .el-calendar-table .el-calendar-day {
  Box-Größe: Rahmenbox;
  // Polsterung: 1vh;
  Polsterung: 0;
  Höhe: 11,5vh;
}
#famerCalendar /deep/ .el-calendar-table .el-calendar-day > p {
  Box-Größe: Rahmenbox;
  Polsterung: 1vh;
}
#famerCalendar /deep/ .timeFilter:after {
  Mindestbreite: 2vw;
  Leerzeichen: Nowrap;
  Inhalt: "Datum";
  Rahmen rechts: 1px durchgezogen #c0c4cc;
  Polsterung: 0 0,2vw;
  Box-Größe: Rahmenbox;
  /* Zeilenhöhe: 4vh; */
}
#famerCalendar /deep/ .el-drawer__open .el-drawer.rtl:focus-visible {
  Rand: keiner;
}
#famerCalendar /deep/ .el-drawer__header:focus-visible {
  Rand: keiner;
}
.cellInfoUl {
  Breite: 80%;
  Höhe: 100%;
  Überlauf: versteckt;
  Überlauf-y: scrollen;
}
.cellInfoUl::-webkit-scrollbar {
  Anzeige: keine;
}
.cellInfo {
  Position: relativ;
  Breite: 100 %;
  Höhe: 100%;
  Anzeige: Flex;
  Inhalt ausrichten: Abstand dazwischen;
  Polsterung: 1vh;
  Box-Größe: Rahmenbox;
}
.tipMsg {
  Position: absolut;
  Anzeige: Flex;
  rechts: 0vh;
  unten: 0vh;
  Breite: 2vw;
  Höhe: 2vw;
  Farbe: #fff;
}
.tipMsged {
  Position: absolut;
  oben: 50 %;
  links: 50%;
  Z-Index: 100;
  transformieren: übersetzen (-10 %, -20 %);
}
.tipMsg::vor {
  Inhalt: "";
  Position: absolut;
  oben: 0;
  links: 0;
  Höhe: 0px;
  Breite: 0px;
  Rand oben: durchgehend 2vw transparent;
  Rand links: durchgezogen 2vw #3999e6;
  transformieren: drehenZ(-90 Grad);
}
.cellInfoUl li {
  Breite: 100 %;
  Zeilenhöhe: 2,5vh;
  Farbe: #fff;
  Hintergrund: #61adeb;
  Rand unten: 1vh;
  Polsterung: 0 0,5vw;
  Box-Größe: Rahmenbox;
  Rahmenradius: 16px;
  Textausrichtung: zentriert;
}
.cellInfoBox {
  Textausrichtung: zentriert;
  /* Farbe: #; */
}
.modeEach {
  Breite: 100 %;
  Polsterung: 2vh 1vw;
  Box-Größe: Rahmenbox;
  Höhe: 78vh;
  Überlauf: versteckt;
  Überlauf-y: scrollen;
}
.modeEach::-webkit-scrollbar {
  Anzeige: keine;
}
.FußBox {
  Breite: 100 %;
  Polsterung: 2vh 1vw;
  Box-Größe: Rahmenbox;
}
.modeEachs {
  Breite: 100 %;
  Mindesthöhe: 18vh;
  Hintergrund: #3999e6;
  Rahmenradius: 6px;
  Polsterung: 2vh 1vw;
  Box-Größe: Rahmenbox;
  Position: relativ;
  Rand unten: 1vh;
}
.setI {
  Position: absolut;
  oben: 1vh;
  rechts: 0,5vw;
  Hintergrund: #fff;
  Breite: 2,5vh;
  Höhe: 2,5vh;
  Randradius: 50 %;
  Textausrichtung: zentriert;
  Zeilenhöhe: 2,5vh;
  Farbe: rot;
}
.setIs {
  oben: 1vh;
  rechts: 2vw;
  Farbe: #3999e6;
}
.modeEachs span {
  Schriftgröße: 1,3vh;
  Schriftfamilie: Source Han Sans CN;
  Schriftstärke: 400;
  Farbe: #ffffff;
  Zeilenhöhe: 2,78vh;
}
.modeEachs span:n-ter-Typ(1) {
  Mindestbreite: 3vw;
  Anzeige: Inline-Block;
}
.FußBox {
  Textausrichtung: rechts;
}
.emptyState {
  Breite: 100 %;
  Höhe: 60%;
  Textausrichtung: zentriert;
}
.emptyState img {
  Breite: 80%;
  Mindesthöhe: 100 %;
}
.modeEached {
  Textausrichtung: zentriert;
}
.modeEached p {
  Schriftgröße: 1,67vh;
  Schriftfamilie: Source Han Sans CN;
  Schriftstärke: 400;
  Farbe: #666666;
  Zeilenhöhe: 2,78vh;
}
.shadowBox {
  Kastenschatten: 0px 0px 15px 3px rgba (0, 0, 0, 0,15);
  Polsterung: 1vh;
  Box-Größe: Rahmenbox;
}
</Stil>

Dies ist das Ende dieses Artikels über den Beispielcode der Kalenderkomponente mit Element in Vue. Weitere relevante Inhalte zur Kalenderkomponente mit Vue-Element 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 implementiert Kalenderkomponente
  • Vue implementiert eine vertikal unendlich verschiebbare Kalenderkomponente
  • Kapselungsmethode der Vue-Kalenderkomponente
  • Schreiben Sie eine Vue-Kalenderkomponente von Grund auf neu
  • Benutzerdefinierte optionale Zeitkalenderkomponente von Vue
  • Verbesserte Kalenderkomponente basierend auf Vue2-Calendar (einschließlich chinesischer Anweisungen)
  • Vue implementiert eine coole Kalenderkomponente
  • VUE implementiert Kalenderkomponentenfunktion
  • Vue-Version der handschriftlichen Kalenderkomponente

<<:  Analyse von 2 Implementierungsmethoden zum Konfigurieren der JNID-Datenquelle in Tomcatc3p0

>>:  Detaillierte Erklärung zur korrekten Verwendung der Zählfunktion in MySQL

Artikel empfehlen

Methode zum Erstellen eines Redis-Clusters basierend auf Docker

Laden Sie das Redis-Image herunter Docker-Pull yy...

Eingabedatei zur benutzerdefinierten Schaltflächenverschönerung (Demo)

Ich habe schon einmal einen solchen Artikel gesch...

So erstellen Sie eine Testdatenbank mit zig Millionen Testdaten in MySQL

Manchmal müssen Sie basierend auf der offiziell v...

Mysql8.0 verwendet Fensterfunktionen, um Sortierprobleme zu lösen

Einführung in MySQL-Fensterfunktionen MySQL unter...

So finden Sie langsame MySQL-Abfragen

Vorwort Ich glaube, dass jeder in seiner tägliche...

Der Unterschied und die Wahl zwischen Datum und Uhrzeit und Zeitstempel in MySQL

Inhaltsverzeichnis 1 Unterschied 1.1 Raumbelegung...

Detaillierte Erklärung der Zeichensätze und Validierungsregeln in MySQL

1Mehrere gängige Zeichensätze Zu den gängigsten Z...

React-Internationalisierung – Verwendung von react-intl

Wie erreicht man Internationalisierung in React? ...

Der JavaScript-Artikel zeigt Ihnen, wie Sie mit Webformularen spielen

1. Einleitung Zuvor haben wir die schnelle Entwic...