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

HTML-Cellpadding- und Cellspacing-Attribute in Bildern erklärt

Zelle -- der Inhalt der Tabelle Zellenrand (Tabell...

So vergessen Sie das Root-Passwort in Mysql8.0.13 unter Windows 10

1. Stoppen Sie zuerst den MySQL-Dienst Öffnen Sie...

Vue und React im Detail

Inhaltsverzeichnis 1. Panorama II. Hintergrund 1....

Eine kurze Erklärung zum sinnvollen Einsatz von Tabellen und Divs im Seitendesign

Zu Beginn dieses Artikels möchte ich die Fehler in...

Zusammenfassung der Tipps zur CSS-Verwendung

Vor Kurzem habe ich mit der Aktualisierung meines ...

Docker-Lösung zum Anmelden ohne Root-Rechte

Wenn Sie den Docker-Befehl zum ersten Mal verwend...

Vue setzt die Daten auf ihren ursprünglichen Zustand zurück

In einigen Fällen müssen die Daten in den Daten w...

Detaillierte Erklärung des Vue-Lebenszyklus

Inhaltsverzeichnis Warum den Lebenszyklus versteh...

...

Lösung für das MySQL Master-Slave-Verzögerungsproblem

Heute werden wir uns ansehen, warum es zu Master-...

Windows-Plattformkonfiguration Version 5.7 + MySQL-Datenbankdienst

Beinhaltet den Prozess der Initialisierung des Ro...