Vue realisiert Preiskalendereffekt

Vue realisiert Preiskalendereffekt

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Erzielung des Preiskalendereffekts als Referenz geteilt. Der spezifische Inhalt ist wie folgt

1. Rendern

2. Herunterladen und global installieren: npm install ele-calendar

3. Erstellen Sie unter Komponenten eine neue Datei calendar.vue mit folgendem Inhalt:

<Vorlage>
  <div Stil="Breite:600px">
    <ele-kalender
      :render-content="Renderinhalt"
      :data="Datumsdefinition"
      :prop="Eigenschaft"
      :disabledDate="Deaktivierungsdatum"
      :effektivesZeitlimit="effektivesZeitlimit"
      :Standardwert="Standardwert"
    >
    </ele-Kalender>
  </div>
</Vorlage>

<Skript>
importiere eleCalendar aus „ele-calendar“
importiere 'ele-calendar/dist/vue-calendar.css'
Standard exportieren {
  Requisiten: {
    Datumsdefinition: {
      Typ: Array,
      Standard: () => {
        zurückkehren []
      }
    },
    Standardpreis: {
      Typ: Zeichenfolge,
      Standard: () => {
        zurückkehren ''
      }
    },
    effektivesZeitlimit:
      Typ: Zeichenfolge,
      Standard: () => {
        zurückkehren ''
      }
    },
    Standardwert: {
      Typ: Datum,
      Standard: () => {
        returniere neues Datum()
      }
    }
  },
  Daten () {
    const self = dies
    zurückkehren {
      prop: 'date', // Entsprechender Datumsfeldname disabledDate: date => {
        zurückkehren (
          Datum.Wert von() < neues Datum().Wert von() - 1 * 24 * 60 * 60 * 1000 ||
          Datum.Wert von() > neues Datum (selbst.effektivesZeitlimit).Wert von()
        )
      }
    }
  },
  Komponenten:
    eleKalender
  },
  Methoden: {
    //JSX-Syntax renderContent (h, parmas) {
      const self = dies
      const Schleife = Daten => {
        zurückkehren (
          <div Klasse={data.defvalue.value ? 'aktiv' : ''}>
            <div>{Daten.defvalue.text}</div>
            <div>
              ¥
            <i-Eingabe
              Wert={
                Daten.Defwert.Wert.Inhalt
                  ? Daten.Defwert.Wert.Inhalt
                  : selbst.Standardpreis
              }
              ein-ein-Unschärfe={Ereignis =>
                selbst.handleChange(
                  Ereignis,
                  Daten.defwert.Wert
                    ? Daten.defwert.Wert.Datum
                    : selbst.handleDate(data.defdate)
                )
              }
              deaktiviert={
                Daten.defwert.Wert
                  ? neues Datum(data.defvalue.value.date).valueOf() <
                        neues Date().valueOf() - 1 * 24 * 60 * 60 * 1000 ||
                      neues Datum(data.defvalue.value.date).valueOf() >
                        neues Datum (selbst.effektivesZeitlimit).valueOf ()
                  : data.defdate.valueOf() <
                        neues Date().valueOf() - 1 * 24 * 60 * 60 * 1000 ||
                      Daten.defdate.valueOf() >
                        neues Datum (selbst.effektivesZeitlimit).valueOf ()
              }
              Schlüssel={
                Daten.defwert.Wert
                  ? Daten.defwert.Wert.Datum
                  : selbst.handleDate(data.defdate)
              }
            />
            </div>
          </div>
        )
      }
      zurück <div style='min-height:60px;'>{loop(parmas)}</div>
    },
    handleChange (Ereignis, Datum) {
      console.log(Ereignis, Datum, 'dddddd')
      const self = dies
      const index = self.datedef.findIndex(item => {
        Rückgabewert: item.date === Datum
      })
      wenn (istNaN(Ereignis.Ziel.Wert)) {
        self.$Message.error('Bitte geben Sie den korrekten Preis ein.')
        event.target.value = selbst.Standardpreis
        zurückkehren
      }
      wenn (Ereignis.Ziel.Wert && Index === -1) {
        wenn (Ereignis.Ziel.Wert === selbst.Standardpreis) {
          zurückkehren
        }
        selbst.datedef.push({
          Datum,
          Inhalt: Ereignis.Ziel.Wert,
          cid: null
        })
        Konsole.log('self.datedef', self.datedef)
        dies.$emit('aaa', self.datedef)
      } sonst wenn (Ereignis.Ziel.Wert && Index !== -1) {
        wenn (Ereignis.Ziel.Wert === selbst.Standardpreis) {
          selbst.datedef.splice(index, 1)
          zurückkehren
        }
        const selectItem = self.datedef[index]
        selectItem.content = Ereignis.Ziel.Wert
        self.datedef.splice(Index, 1, Element auswählen)
      } sonst wenn (!event.target.value && index !== -1) {
        selbst.datedef.splice(index, 1)
      } anders {
        event.target.value = selbst.Standardpreis
      }
    },
    handleDate (Datum) {
      const jahr = date.getFullYear()
      lass Monat = date.getMonth() + 1
      Monat = Monat >= 10 ? Monat : '0' + Monat
      lass idate = date.getDate()
      idate = idate >= 10 ? idate : '0' + idate
      gibt `${year}-${month}-${idate}` zurück
    }
  }
}
</Skript>

<style lang="scss">
.el-picker-panel-calendar.el-date-picker-calendar.el-popper {
  Kastenschatten: keiner;
}
.el-date-table-calendar td > div > div {
  Rand: 1px durchgezogen #aaa;
  Farbe: #fff;
  Rand: 5px;
  & > div:erstes-Kind {
    Hintergrundfarbe: #aaa;
  }
  & > div:n-tes-Kind(2) {
    Polsterung: 5px;
    Farbe: #000;
    .ivu-input-wrapper {
      Breite: 80%;
    }
  }
  &.aktiv {
    Rand: 1px durchgezogen #2ab561;
    & > div:erstes-Kind {
      Hintergrundfarbe: #2ab561;
    }
    & > div:n-tes-Kind(2) {
      Polsterung: 5px;
      Farbe: #000;
      .ivu-input-wrapper {
        Breite: 80%;
      }
    }
  }
}
// Wenn dieser Abschnitt freigegeben wird, werden alle Felder vor dem aktuellen Tag ausgegraut // .el-date-table-calendar td.disabled > div > div {
// Rand: 1px durchgezogen #aaa;
//Farbe: #fff;
//Rand: 5px;
// & > div:erstes-Kind {
// Hintergrundfarbe: #aaa;
// }
// & > div:n-tes-Kind(2) {
// Polsterung: 5px;
//Farbe: #000;
// .ivu-input-wrapper {
// Breite: 80 %;
// }
// }
// }
.el-date-table-calendar td.verfügbar:hover {
  Farbe: #000;
}
.el-date-table-calendar td.verfügbar.heute {
  Farbe: #000;
  Schriftstärke: normal;
}
.el-date-table-calendar tr td.current.available:nicht(.deaktiviert) {
  Hintergrundfarbe: #fff;
}
</Stil>

4. Seiteneinführung Registrierung

<Skript>
 Kalender importieren aus '../../components/calendar'
 Standard exportieren {
    Komponenten: { Kalender }
  }
  Daten() {
    zurückkehren {
      effektivesZeitlimit: '',
      RegelForm: {
        Preis: '',
        Konfigurationspreisliste: []
      }
      },
      Regeln:
      }
 }
    }
</Skript>

5.html

Ich habe es in den Dialog geschrieben

<el-form-item label="Preiseinstellungen" prop="calendarPrice">
 <Kalender
 :datedef="ruleForm.configPreisliste"
 :Standardpreis="Regelform.Preis"
 :effektivesZeitlimit="effektivesZeitlimit"
 ></Kalender>
</el-form-item>

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:
  • WeChat-Applet: benutzerdefinierter Kalendereffekt mit Preisanzeige
  • jQuery-Kalenderpreis, Inventar usw.
  • jQuery-Webkomponente Hintergrundkalender Preis, Inventareinstellungscode

<<:  Mysql speichert Baumstruktur durch Adjazenzliste (Adjazenzliste)

>>:  So starten und stoppen Sie das Shell-Skript zur Bereitstellung eines SpringBoot-JAR-Programms unter Linux

Artikel empfehlen

Detaillierte Erklärung einer Methode zum Umbenennen von Prozeduren in MySQL

Kürzlich habe ich die Funktion zum Umbenennen ges...

Detaillierte Erläuterung des vite2.0-Konfigurationslernens (Typescript-Version)

einführen Die ursprünglichen Worte von You Yuxi. ...

Beispiele für die Interaktion zwischen MySQL und Python

Inhaltsverzeichnis 1. Daten vorbereiten Erstellen...

7 Möglichkeiten, Elemente mit CSS vertikal zu zentrieren

【1】Kennen Sie die Breite und Höhe des zentrierten...

Eine detaillierte Einführung in den Ausführungsmechanismus von JavaScript

Inhaltsverzeichnis 1. Das Konzept von Prozess und...

Vue implementiert eine kleine Formularvalidierungsfunktion

In diesem Artikelbeispiel wird der spezifische Co...

25 Tipps und Tricks zur Div+CSS-Programmierung

1. Das ul-Tag hat in Mozilla standardmäßig einen ...

Beispiel für die Konfiguration mehrerer virtueller Hosts in nginx

Es ist sehr praktisch, den virtuellen Host vhost ...