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:
|
<<: Mysql speichert Baumstruktur durch Adjazenzliste (Adjazenzliste)
Inhaltsverzeichnis Erste Verwendung der Callback-...
1. Einleitung Vor ein paar Tagen fragte mich ein ...
Notieren Sie die Installation von zwei MySQL5.6.3...
Hash-Modus (Standard) Funktionsprinzip: Überwache...
Inhaltsverzeichnis 1. Schreiben Sie vor 2. Overla...
Die Linux-Betriebssysteme der RHEL/CentOS-Reihe v...
In diesem Artikel wird der spezifische Code für J...
Inhaltsverzeichnis 1. Unterabfragedefinition 2. U...
Installieren Sie SSHPASS Für die meisten aktuelle...
SQLyog stellt eine Verbindung zu MySQL her, Fehle...
Die Beschreibung von echo im Linux-Hilfedokument ...
Detaillierte Erläuterung des Konfigurationsprozes...
Inhaltsverzeichnis 1. Digitale Aufzählung 2. Zeic...
Inhaltsverzeichnis Was ist Routing Grundlegende V...
Um das Problem zu lösen, dass Deepin den Google C...