Überblick:Ich habe aus mehreren auf dem Markt erhältlichen Fahrplanprogrammen gelernt. Da die Funktionen zu kompliziert sind, habe ich versucht, ein Fahrplan-Applet zu erstellen und als Open Source bereitzustellen. Es unterstützt derzeit die Funktionen zum Hinzufügen und Löschen von Fahrplänen und fügt auch einen Tagesfahrplan hinzu. Insgesamt fühlt es sich wie ein ziemlich prägnanter Fahrplan an. Das Backend wurde auf Basis von Fastadmin entwickelt. GIF-Demo:Die Open-Source-Adresse von Gitee wird unten angezeigt In letzter Zeit habe ich immer das Gefühl, dass die aktuelle Benutzeroberfläche zu einfach ist und den Anforderungen einer anständigen Person wie mir nicht gerecht wird. Daher habe ich die Funktion zum Anpassen des Hintergrunds des Kursplans hinzugefügt. Wirkung: Sie müssen einen Eintrag in mine.js hinzufügen: { Name: "Stundenplan-Hintergrund festlegen", Symbol: "/images/scheduleIcon.png", URL: "/Seiten/Zeitplan/Zeitplan?", }, Einen neuen Seitenplan hinzufügen WXML-Code <Ansichtsstil="Höhe:{{CustomBar}}px;"> <view class="cu-bar ev-fr-start" bindtap="ZurückSeite" style="height:{{CustomBar}}px;padding-top:{{StatusBar}}px;"> <text class="cuIcon-back padding-lr-sm"></text> <view class="action">{{couples? "Hintergrund für Ta festlegen":"Den Stundenplan-Hintergrund festlegen"}}</view> </Ansicht> </Ansicht> <view wx:if="{{Paare}}" class="ev-mainBody"> <Ansichtsklasse="ev-fc-center"> <view wx:if="{{!CouplesBG}}" data-type='Paare' bind:tap="modifyImage" class="addBG ev-fc-center"> <text Klasse="cuIcon-roundadd" Stil="Farbe:#5E99FB"></text> <text class="padding-xs" style="color:#5E99FB">Hintergrund hochladen</text> </Ansicht> <view wx:if="{{CouplesBG}}" class="BGBox ev-fc-center"> <view class="BGImg" data-type='Paare' bind:tap="modifyImage"> <image mode="aspectFill" src="{{CouplesBG}}" /> </Ansicht> <view class="round BGState">Paar-Stundenplan-Hintergrund</view> </Ansicht> </Ansicht> <Ansichtsklasse="padding-top"> <view class="title">Startanzeigezeit des Hintergrunds</view> <dateTimePicker Typ="Minute" bind:change="TimePicker"> <view class="sendTimeBox ev-fr"> <input type="text" class="sendTime padding-lr" disabled="{{true}}" value="{{sendTime}}" /> <text style="Schriftgröße: 24px; Farbe: #92979D" Klasse="cuIcon-triangledownfill padding-lr-sm"></text> </Ansicht> </dateTimePicker> </Ansicht> <Ansichtsklasse="padding-top"> <view class="title">Hintergrundanzeigedauer festlegen</view> <button wx:for="{{displayTimeList}}" wx:key="index" class="cu-btn runder Rand-tb {{item.checked ? 'bg-blue':''}} Rand rechts" data-id="{{index}}" bind:tap="showTime"> {{item.label}} </button> </Ansicht> <button bind:tap="saveCouplesBG" deaktiviert="{{!CouplesBG}}" Klasse="cu-btn block bg-blue margin-tb-sm lg saveButton" Stil="unten: {{StatusBar}}px;" Typ=""> Speichern</button> </Ansicht> <Ansicht wx:else Klasse="ev-mainBody"> <Ansicht> <image class="message" mode="scaleToFill" src="/images/scheduleIcon.png" /> </Ansicht> <Ansicht> <text class="title">Stundenplan-Hintergrund festlegen</text> <view class="padding-top-sm tips">Benutzer können ihre Lieblingsbilder als Hintergrundanzeige des Stundenplans hochladen (zum Ersetzen auf das Bild klicken)</view> </Ansicht> <Ansichtsklasse="ev-fr BGListBox"> <view wx:if="{{dailySchedule}}" class="BGBox ev-fc-center"> <view Klasse="BGImg" Datentyp='täglich' bind:tap="modifyImage"> <image mode="aspectFill" src="{{dailySchedule}}" /> </Ansicht> <view class="round BGState">Täglicher Zeitplanhintergrund</view> </Ansicht> <view wx:if="{{!dailySchedule}}" data-type='daily' bind:tap="modifyImage" class="addBG ev-fc-center"> <text Klasse="cuIcon-roundadd" Stil="Farbe:#5E99FB"></text> <text class="padding-xs" style="color:#5E99FB">Tagesplan-Hintergrund hochladen</text> </Ansicht> <view wx:if="{{weeklySchedule}}" class="BGBox ev-fc-center"> <view class="BGImg" data-type='Woche' bind:tap="modifyImage"> <image mode="aspectFill" src="{{weeklySchedule}}" /> </Ansicht> <view class="round BGState">Hintergrund des Wochenplans</view> </Ansicht> <view wx:if="{{!weeklySchedule}}" data-type='Woche' bind:tap="modifyImage" class="addBG ev-fc-center"> <text Klasse="cuIcon-roundadd" Stil="Farbe:#5E99FB"></text> <text class="padding-xs" style="color:#5E99FB">Wochenstundenplan-Hintergrund hochladen</text> </Ansicht> </Ansicht> <button wx:if="{{(weeklySchedule || dailySchedule)}}" bind:tap="SpeichernButton" class="cu-btn block bg-blue margin-tb-sm lg SpeichernButton" style="bottom: {{StatusBar}}px;" type=""> Standardhintergrund wiederherstellen</button> </Ansicht> JS-Code importieren { ZeitplanBG, PaareBG, PaareInfoAdd, setbgdefault, } von "../../utils/api/user"; //Anwendungsinstanz abrufen const app = getApp(); : Ein Tagjs-Tag hat eine Länge von 128 Zeichen. importiere { wxShowToast } von "../../utils/promisify"; Seite({ Daten: { Statusleiste: app.globalData.StatusBar, Benutzerdefinierte Leiste: app.globalData.CustomBar, ImgUrl: app.globalData.ImgUrl, Anzeigebereich: app.globalData.displayArea, CouplesBG: null, // Hintergrund für den Zeitplan von Paaren dailySchedule: null, // Hintergrund für den Zeitplan von Tag zu Tag weeklySchedule: null, // Hintergrund für den Zeitplan von Tag zu Tag sendTime: "now", // Startzeit des Hintergrunds für den Zeitplan von Paaren displayTimeList: [ { Beschriftung: "Eines Tages", geprüft: falsch, Zeit: 1, }, { Beschriftung: "eine Woche", geprüft: wahr, Zeit: 7, }, { Bezeichnung: "ein Monat", geprüft: falsch, Zeit: 30, }, ], Startzeit: null, }, onLoad: Funktion (Abfrage) { let { index_bgimage, table_bgimage } = app.globalData.userInfo; dies.setData({ Paare: Abfrage.Paare? Abfrage.Paare: null, Tagesplan: index_bgimage ? app.globalData.ImgUrl + index_bgimage : null, //Täglicher Zeitplan-Hintergrund weeklySchedule: table_bgimage ? app.globalData.ImgUrl + table_bgimage : null, // Wöchentlicher Zeitplan-Hintergrund}); }, /** * Eine Seite zurück */ ZurückSeite() { wx.navigateZurück({ Delta: 1, }); }, /** * Anzeigezeit umschalten */ zeigeZeit(e) { let id = e.currentTarget.dataset.id; Konsole.log(e.currentTarget.dataset.id); let displayTimeList = this.data.displayTimeList.map((v, i) => { v.geprüft = id === i; zurückgeben v; }); dies.setData({ AnzeigeZeitliste, }); }, /** * Hintergrund ändern */ Bild ändern(e) { let-Typ = e.currentTarget.dataset.type; wx.wählenBild({ Anzahl: 1, sizeType: ["komprimiert"], Quelltyp: ["Album"], Erfolg: (res) => { // tempFilePath kann als src-Attribut des img-Tags verwendet werden, um Bilder anzuzeigen const tempFilePaths = res.tempFilePaths; Schalter (Typ) { Fall "Woche": scheduleBG(tempFilePaths[0], "table").then((v) => { app.getSet(); v.code und wxShowToast(v.msg); dies.setData({ wöchentlicher Zeitplan: tempFilePaths[0], }); }); brechen; Fall "täglich": scheduleBG(tempFilePaths[0], "index").then((v) => { app.getSet(); v.code und wxShowToast(v.msg); dies.setData({ dailySchedule: tempFilePaths[0], }); }); brechen; Fall „Paare“: PaareBG(tempFilePaths[0]).then((v) => { konsole.log(v); app.getSet(); v.code und wxShowToast(v.msg); dies.setData({ PaareBG: app.globalData.ImgUrl + v.data.imgurl, }); }); brechen; Standard: wxShowToast("Einstellung fehlgeschlagen, bitte versuchen Sie es erneut"); brechen; } }, }); }, /** * Standardhintergrund wiederherstellen */ speichernButton() { dies.setData({ Tagesplan: null, wöchentlicher Zeitplan: null, }); setbgdefault().then((v) => { v.code und wxShowToast(v.msg); app.getSet(); }); }, /** * Beginn des Stundenplans für Paarkurse */ Zeitauswahl(e) { let day = dayjs(e.detail).format("TT.MM."); let am = dayjs(e.detail).format("A") == "PM" ? "Nachmittag" : "Morgen"; let Zeit = Tagjs (e.detail).format("HH:mm"); let sendTime = `${day} ${am} ${time}`; console.log(sendTime, "Zeitauswahl"); dies.setData({ Sendezeit, Startzeit: dayjs(e.detail), }); }, /** * Paarhintergrund speichern */ speichernPaareBG() { let { displayTimeList, startTime, CouplesBG } = diese.Daten; let endType = displayTimeList.filter((v) => v.checked === true)[0]; let _startTime = Startzeit ? dayjs(Startzeit) : dayjs(); let endTime = endType.time; let tid = app.globalData.userInfo.lovers_id; wenn (!tid) { wx.showToast({ Titel: "Speichern fehlgeschlagen", Symbol: "keine", Dauer: 2000, }); zurückkehren; } PaareInfoAdd({ bald, Startzeit: _startTime.unix(), Endzeit: Endzeit, Liebessortierung: 1, Inhalt: CouplesBG.replace(this.data.ImgUrl, ""), }).then((v) => { wxShowToast(v.msg); wenn (v.code) { app.getSet().then(() => { dies.BackPage(); }); } }); }, }); WSS-Code KopfBox { Breite: 750rpx; } Seite { Hintergrundfarbe: #fff; } .BGListBox { Flex-Wrap: Umwickeln; Inhalt ausrichten: Abstand zwischen; } .BGBox { Breite: 321rpx; Höhe: 321rpx; Rahmenradius: 34rpx; Überlauf: versteckt; Rand oben: 22rpx; } .BGBox .BGImg { Breite: 321rpx; Höhe: 321rpx; } .BGBox .BGState { Position: relativ; Hintergrund: #000000; Deckkraft: 0,5; Polsterung: 10rpx 20rpx; unten: 50rpx; Farbe: #fff; } .addBG { Breite: 321rpx; Höhe: 321rpx; Rand oben: 22rpx; Rand: 1rpx gestrichelt #92979d; Rahmenradius: 24rpx; Rahmenradius: 34rpx; } .Nachricht { Breite: 70rpx; Höhe: 70rpx; Rand oben: 20rpx; } .Titel { Schriftgröße: 32rpx; Schriftstärke: 500; Zeilenhöhe: 45rpx; Farbe: #282b2f; } .Tipps { Schriftgröße: 24rpx; Schriftstärke: 400; Zeilenhöhe: 33rpx; Farbe: #92979d; } .sendTimeBox { Breite: 686rpx; Höhe: 90rpx; Hintergrund: #ffffff; Rand: 1rpx durchgezogen #dfe4ea; Rahmenradius: 14rpx; Rand: 24rpx 0; } *** Open-Source-Adresse: Dies ist das Ende dieses Artikels darüber, wie man mit JS ein kleines Programm namens Stundenplan implementiert (das den Super-Stundenplan imitiert) und eine benutzerdefinierte Hintergrundfunktion hinzufügt. Weitere relevante Inhalte zum Super-Stundenplan finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder stöbern Sie weiter in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Responsive Layout-Zusammenfassung (empfohlen)
>>: Lösung zur Verwendung von html2canvas zum Verarbeiten von Dom-Elementen mit Baidu-Map in Bilder
Inhaltsverzeichnis Strukturelle Vererbung (implem...
Inhaltsverzeichnis 1.MySQL addiert oder subtrahie...
Der spezifische Code zur Implementierung des einz...
Inhaltsverzeichnis Geben Sie das Thema MySQL ein:...
Ich habe heute Redis installiert und es sind eini...
Der Standardanforderungsheader des http1.1-Protok...
In meinem letzten Beitrag habe ich darüber gesproc...
Inhaltsverzeichnis planen Abhängigkeiten installi...
Laden Sie das sichere Terminal MobaXterm_Personal...
Vorwort: Lynis ist ein Sicherheitsprüfungs- und H...
0. Hintergrund Hardware: Xiaomi Notebook Air 13/I...
Vor einigen Tagen habe ich einen Artikel über die...
1. Geben Sie zuerst das MySQL des Servers ein, um...
Inhaltsverzeichnis 1. Filtern, Zuordnen und Reduz...
1. Was ist Als Auszeichnungssprache hat CSS eine ...