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

So implementieren Sie die Unschärfefunktion von DIV

Verwenden Sie Anti-Shake, um DIV verschwinden zu ...

9 superpraktische CSS-Tipps, die Designern und Entwicklern helfen

Im Kopf eines Webdesigners muss viel Wissen im Zus...

Eine kurze Einführung in das bionische Design im Internet-Webdesign

Beim Stichwort Bionik-Design denken viele an die E...

Detaillierte Erläuterung des MySQL Workbench-Nutzungs-Tutorials

Inhaltsverzeichnis (I) Verwenden von Workbench zu...

Detaillierte Erklärung zum Bereitstellen von H5-Spielen auf einem Nginx-Server

Auf dem Weg zur selbstlernenden Spieleentwicklung...

Beispielcode für Django+Vue-Registrierung und -Anmeldung

registrieren Das Front-End verwendet Axios in Vue...

Integrierte Objekte, Werttypen und Referenztypen in JavaScript-Objekten erklärt

Inhaltsverzeichnis Objekt Objektdefinition Iterie...

Details zur Verwendung der JS-Tag-Syntax

Inhaltsverzeichnis 1. Einführung in Label-Anweisu...