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)
Kürzlich habe ich die Funktion zum Umbenennen ges...
einführen Die ursprünglichen Worte von You Yuxi. ...
Inhaltsverzeichnis 1. Daten vorbereiten Erstellen...
【1】Kennen Sie die Breite und Höhe des zentrierten...
1. Laden Sie Navicat für MySQL 15 herunter https:...
Ich lerne gerade MySQL. Ich bin ein kompletter Ne...
Inhaltsverzeichnis 1. Das Konzept von Prozess und...
transformieren und übersetzen Transformieren bezi...
In diesem Artikelbeispiel wird der spezifische Co...
1. Das ul-Tag hat in Mozilla standardmäßig einen ...
Dieser Artikel beschreibt anhand eines Beispiels ...
1. Einleitung Wenn Sie früher mit dem Schreiben v...
【Inhalt】: 1. Verwenden Sie den Verlaufsstil des H...
Es ist sehr praktisch, den virtuellen Host vhost ...
In diesem Artikelbeispiel wird der spezifische JS...