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

Asynchrone JS ES6-Lösung

Inhaltsverzeichnis Erste Verwendung der Callback-...

Beispielüberprüfung MySQL | Update-Feld mit demselben Wert zeichnet Binlog auf

1. Einleitung Vor ein paar Tagen fragte mich ein ...

Installieren Sie zwei MySQL5.6.35-Datenbanken unter Win10

Notieren Sie die Installation von zwei MySQL5.6.3...

Tutorial zur Installation von mysql5.7.17 über yum auf redhat7

Die Linux-Betriebssysteme der RHEL/CentOS-Reihe v...

JavaScript zur Implementierung der Schaltfläche „Zurück nach oben“

In diesem Artikel wird der spezifische Code für J...

Grundlegende Verwendung von Unterabfragen in MySQL

Inhaltsverzeichnis 1. Unterabfragedefinition 2. U...

MySQL-Fehlernummer 1129 – Lösung

SQLyog stellt eine Verbindung zu MySQL her, Fehle...

Verwendung und Beispiele für Linux-Befehle zur Echotextverarbeitung

Die Beschreibung von echo im Linux-Hilfedokument ...

TypeScript-Aufzählungstypen im Detail erklären

Inhaltsverzeichnis 1. Digitale Aufzählung 2. Zeic...

Erfahren Sie in fünf Minuten mehr über React Routing

Inhaltsverzeichnis Was ist Routing Grundlegende V...