この記事の例では、参考のためにvueカスタムオプションタイムカレンダーコンポーネントの具体的なコードを共有しています。具体的な内容は次のとおりです。 カレンダーの機能: 1. 過去の時間は選択できません 効果画像:-------ショーを始めましょう----------- **まず、カレンダーページのレイアウトを描きます。win10システムのカレンダーレイアウトを参照してください* 6行7列、なぜそうなるのか、自分で理解してください...*私も「覗いてみた」 beginDay は現在の月の最初の日の曜日、prevMdays は前月の合計日数、nowMdays は現在の月の合計日数です。これにより、カレンダー表示効果が実現され、データ日付などの使用される可能性のある一部のデータがタグにバインドされます。 <div class="dateContent-body-day" v-for="item in 42" :key="item"> <div v-if="item - beginDay > 0 && item - beginDay <= nowMdays" :class="{ 'active-day': `${year}/${month}/${item - beginDay}` == curDate }" @click="dayHandler" :data-year="年" :data-month="月" :data-day="アイテム開始日" :data-dates="年 + '/' + 月 + '/' + (項目 - 開始日)" > {{ アイテム開始日 }} </div> <div class="other-day" v-else-if="item - beginDay <= 0"> {{ item - beginDay + prevMdays }} </div> <div class="other-day" v-else>{{ item - beginDay - nowMdays }}</div> </div> - 次… 使用されたデータ: *active-day はハイライト表示された日、つまり選択された日付です。curDate はどの日を選択するかを制御します。ここではデフォルトは今日です。props データ timeArry が開かれ、一部のカスタム日付を選択不可として渡すことができます。クリックされた日付にバインドされた日付が配列内に存在する場合、その日付が返されます。選択可能な場合、選択された結果は $emit を介して chooseDate イベントで公開されます。 //クリックして日を切り替える dayHandler(e) { コンソールログ(e); var daNum = e.target.dataset; (this.cantTime.indexOf(daNum.dates) > -1) の場合 { this.$toast("オープン日ではないため、選択できません"); 戻る; } もし ( `${daNum.年}/${daNum.月}/${daNum.日}` >= `${新しい日付().getFullYear()}/${新しい日付().getMonth() + 1}/${新しい日付().getDate()}` ){ ターゲットデータセットの日付。 これを$emit( 「日付を選択」、 this.year + "/" + this.month + "/" + this.date ); } それ以外 { this.$toast("過去の時間は選択できません"); } }, //次の月に切り替える``nextMonth() { (今月 == 12) の場合 { this.month = 1; this.year++; } それ以外 { this.month++; } }, 月と日の切り替えを観察する必要があります。月の変化を観察することに重点を置いています。時計が乱用されたかどうかはわかりません。 ```javascript 時計: 日付(val, oldval) { if (値) { this.curDate = `${this.year}/${this.month}/${this.date}`; } }, 月(val, oldval) { if (値) { var 日付; (var i = 1; i <= 31; i++) の場合 { console.log(`${this.year}/${this.month}/${i}`); (this.cantTime.indexOf(`${this.year}/${this.month}/${i}`) < 0) の場合 { console.log("値が存在しません。停止してください。日付は " + i のままです); 日付 = i; 壊す; } } console.log(ndate, `${this.year}/${this.month}/${ndate}`); //現在の月と現在の日を比較します。将来の月のデフォルトは1で、現在の月のデフォルトは今日です( `${this.year}/${this.month}/1` > `${新しい日付().getFullYear()}/${新しい日付().getMonth() + 1}/${新しい日付().getDate()}` ){ this.curDate = `${this.year}/${this.month}/${ndate}`; this.date = ndate; } それ以外 { (var i = new Date().getDate(); i <= 31; i++) { console.log(2`${this.year}/${this.month}/${i}`); (this.cantTime.indexOf(`${this.year}/${this.month}/${i}`) < 0) の場合 { this.curDate = `${新しい日付().getFullYear()}/${新しい日付().getMonth() + 1}/${i}`; this.date = i; 壊す; } } } これを$emit( 「日付を選択」、 this.year + "/" + this.month + "/" + this.date ); } } }, 親コンポーネントで呼び出される <calendar :timeArray="timeArray" @chooseDate="chooseHandler"></calendar> '@/components/index.js' から {calendar,alertBox} をインポートします。 エクスポートデフォルト{ コンポーネント:{カレンダー、アラートボックス }, これでカレンダーは完成です。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL の時間差関数 TIMESTAMPDIFF と DATEDIFF の使用
>>: MySQL データベースの 1045 エラーの解決方法
NetEase Blog で HTML を使用する場合、テンプレートに直接コードを追加できることは...
序文スタンドアロン ロックであっても分散ロックであっても、共有データに基づいて現在の操作の動作を判断...
序文:一部のアプリケーション シナリオでは、成績や年齢によるランキングなど、ランキングの問題が発生す...
1. floatの基本的な使用例1. まず 2 つの div ボックスを作成し、高さ、幅、背景色を設...
この記事の例では、タイマー機能を実装するためのVueの具体的なコードを参考までに共有しています。具体...
実装のアイデアまず、親コンテナーを作成し、2 つの順序なしリストを使用して、柔軟なレイアウトで親コン...
質問: Vue にブログ投稿をアップロードするためのフォームがあり、タイトル、本文、説明、スニペット...
Linux: Linux バージョン 3.10.0-123.9.3.el7.x86_64 ngin...
目次まとめ環境とツールの準備サーバー仮想化のインストール VMware ESXi仮想マシンのオペレー...
ヒント: MySQL では、ユーザーの作成と削除が頻繁に必要になります。ユーザーを作成するときは、通...
目次同時シナリオ書き込む読む読む読み取り-書き込みと書き込み-読み取りMySQL のロック行レベルロ...
MySQLトリガーの簡単な例文法CREATE TRIGGER <トリガー名> -- トリ...
この記事では、例を使用して、MySQL でストアド プロシージャを作成し、ループでレコードを追加する...
MySQL proxies_priv(シミュレートされたロール)を使用して同様のユーザーグループ管理...
Nginx は、マスター プロセス (MasterProcess) と、同じ数のホスト CPU コア...