Benutzerdefinierte optionale Zeitkalenderkomponente von Vue

Benutzerdefinierte optionale Zeitkalenderkomponente von Vue

In diesem Artikelbeispiel wird der spezifische Code der benutzerdefinierten optionalen Zeitkalenderkomponente von Vue zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Kalenderfunktionen:

1. Vergangene Zeit kann nicht ausgewählt werden
2. Anpassbare nicht wählbare Zeit
3. Das Standardanzeigedatum für diesen Monat ist der erste Tag, und für andere Monate ist der erste Tag der erste Tag. Wenn die Zeit nicht wählbar ist, wird sie auf den nächsten Tag verschoben.

Effektbild:

------- Lasst uns die Show beginnen -----------

**Zeichnen Sie zuerst das Layout der Kalenderseite. Beachten Sie dabei das Kalenderlayout des Win10-Systems * 6 Zeilen und 7 Spalten. Warum das so ist, verstehen Sie es bitte selbst ... * Ich habe auch einen „Schauen“ gemacht.

beginDay ist der Wochentag des ersten Tages des aktuellen Monats, prevMdays ist die Gesamtzahl der Tage des vorherigen Monats und nowMdays ist die Gesamtzahl der Tage des aktuellen Monats. Dadurch wird der Kalenderanzeigeeffekt erzielt, und einige möglicherweise verwendete Daten sind an das Tag gebunden, z. B. Datendaten usw.

<div Klasse = "dateContent-body-day" v-for = "Artikel in 42" :key = "Artikel">
            <div
              v-if="item - beginDay > 0 und item - beginDay <= nowMdays"
              :Klasse="{
                'aktiver Tag': `${year}/${month}/${item - beginDay}` == aktuelles Datum
              }"
              @click="TagesHandler"
              :data-year="Jahr"
              :data-month="Monat"
              :Datentag="Artikel-BeginnTag"
              :data-dates="Jahr + '/' + Monat + '/' + (Element - Beginntag)"
            >
              {{ item-beginDay }}
            </div>
            <div class="anderer-Tag" v-else-if="item - beginDay <= 0">
              {{ item - beginDay + prevMdays }}
    </div>
  <div class="other-day" v-else>{{ item - beginDay - nowMdays }}</div>
</div>

- Nächste…

Verwendete Daten:

*active-day ist der hervorgehobene Tag, also das ausgewählte Datum. curDate steuert, welcher Tag ausgewählt ist. Hier ist heute der Standardwert. Ein Props-Daten-TimeArry wird geöffnet, um die Übergabe einiger benutzerdefinierter Daten als nicht auswählbar zu ermöglichen. Wenn die an das angeklickte Datum gebundenen Daten im Array vorhanden sind, werden sie zurückgegeben. Wenn auswählbar, wird das ausgewählte Ergebnis durch das chooseDate-Ereignis über $emit angezeigt.

//Klicken, um den Tag zu wechseln dayHandler(e) {
      konsole.log(e);
      var daNum = e.target.dataset;
      wenn (this.cantTime.indexOf(daNum.dates) > -1) {
        this.$toast("Kein freies Datum, kann nicht ausgewählt werden");
        zurückkehren;
      }
      Wenn (
        `${daNum.Jahr}/${daNum.Monat}/${daNum.Tag}` >=
        `${neues Datum().getFullYear()}/${neues Datum().getMonth() +
          1}/${neues Date().getDate()}`
      ) {
        dieses.Datum = e.Ziel.Datensatz.Tag;
        dies.$emit(
          "Datum auswählen",
          dieses.Jahr + "/" + dieser.Monat + "/" + dieses.Datum
        );
      } anders {
        this.$toast("Vergangene Zeit kann nicht ausgewählt werden");
      }
    },
    //Zum nächsten Monat wechseln``nextMonth() {
      wenn (dieser.Monat == 12) {
        dieser.Monat = 1;
        dieses.Jahr++;
      } anders {
        diesen.Monat++;
      }
},

Der Wechsel von Monaten und Tagen muss beobachtet werden. Der Fokus liegt auf der Beobachtung der Monatswechsel. Ob die Uhr missbraucht wurde, weiß ich nicht.

```Javascript
betrachten:
    Datum(Wert, alterWert) {
      wenn (Wert) {
        this.curDate = `${dieses.Jahr}/${dieser.Monat}/${dieses.Datum}`;
      }
    },
    Monat(Wert, alterWert) {
      wenn (Wert) {
        var ndate;
        für (var i = 1; i <= 31; i++) {
          Konsole.log(`${dieses.Jahr}/${dieser.Monat}/${i}`);
          wenn (this.cantTime.indexOf(`${this.year}/${this.month}/${i}`) < 0) {
            console.log("Kein Wert vorhanden, Stopp, Datum bleibt bei " + i);
            nDatum = i;
            brechen;
          }
        }
        Konsole.log(ndate, `${dieses.Jahr}/${dieser.Monat}/${ndate}`);
        //Vergleiche den aktuellen Monat mit dem aktuellen Tag. Der Standardwert für zukünftige Monate ist 1 und der Standardwert für den aktuellen Monat ist heute, wenn (
          `${dieses.Jahr}/${diesen.Monat}/1` >
          `${neues Datum().getFullYear()}/${neues Datum().getMonth() +
            1}/${neues Date().getDate()}`
        ) {
          this.curDate = `${dieses.Jahr}/${dieser.Monat}/${ndate}`;
          dieses.Datum = nDatum;
        } anders {
          für (var i = neues Date().getDate(); i <= 31; i++) {
            Konsole.log(2`${dieses.Jahr}/${dieser.Monat}/${i}`);
            wenn (this.cantTime.indexOf(`${this.year}/${this.month}/${i}`) < 0) {
              dies.curDate = `${new Date().getFullYear()}/${new Date().getMonth() +
            1}/${i}`;
          dieses.Datum = i;
              brechen;
            }
          }
        }
        dies.$emit(
          "Datum auswählen",
          dieses.Jahr + "/" + dieser.Monat + "/" + dieses.Datum
        );
      }
    }
  },

Wird in der übergeordneten Komponente aufgerufen

<Kalender :timeArray="timeArray" @chooseDate="chooseHandler"></Kalender>
importiere { Kalender , AlertBox} aus '@/components/index.js';
Standard exportieren {
    Komponenten: {Kalender, AlertBox
    },

Damit ist der Kalender fertig.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM 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
  • Beispielcode zur Verwendung der Elementkalenderkomponente in Vue
  • Verbesserte Kalenderkomponente basierend auf Vue2-Calendar (einschließlich chinesischer Anweisungen)
  • Vue implementiert eine coole Kalenderkomponente
  • VUE implementiert Kalenderkomponentenfunktion
  • Vue-Version der handschriftlichen Kalenderkomponente

<<:  Verwendung der MySQL-Zeitdifferenzfunktionen TIMESTAMPDIFF und DATEDIFF

>>:  Lösung für den 1045-Fehler in der MySQL-Datenbank

Artikel empfehlen

Einige Hinweise zu MySQL-Routineberechtigungen

1. Wenn der Benutzer über die Berechtigung zum Er...

Teilen Sie die Fallstricke von MySQLs current_timestamp und ihre Lösungen

Inhaltsverzeichnis MySQLs current_timestamp-Falle...

JavaScript implementiert einen verschiebbaren Fortschrittsbalken

In diesem Artikel wird der spezifische JavaScript...

JavaScript zum Implementieren einer einfachen Uhr

In diesem Artikelbeispiel wird der spezifische Co...

Teilen Sie 10 der neuesten Web-Frontend-Frameworks (Übersetzung)

In der Welt der Webentwicklung sind Frameworks wei...

Detaillierte Erklärung der Mixin-Verwendung in Vue

Inhaltsverzeichnis Vorwort 1. Was sind Mixins? 2....

CSS-Syntax für Tabellenränder

<br /> CSS-Syntax für Tabellenränder Zu den ...

Natives JS zur Implementierung der Formularvalidierungsfunktion

Inhaltsverzeichnis Bei der Entwicklung kann eine ...

js-Entwicklungs-Plugin zum Erzielen eines Tab-Effekts

In diesem Artikelbeispiel wird der spezifische Co...

Das WeChat-Applet implementiert das Schlangenspiel

In diesem Artikel wird der spezifische Code des W...

Spezifische Methode zum Anzeigen von Benutzerautorisierungsinformationen in MySQL

Spezifische Methode: 1. Öffnen Sie die Eingabeauf...

Implementierung der CentOS8.0-Netzwerkkonfiguration

1. Unterschiede in der Netzwerkkonfiguration zwis...

Übersicht über die Unterschiede zwischen Linux TTY/PTS

Wenn wir einen Buchstaben auf der Tastatur eingeb...