Vue カスタム オプション時間カレンダー コンポーネント

Vue カスタム オプション時間カレンダー コンポーネント

この記事の例では、参考のためにvueカスタムオプションタイムカレンダーコンポーネントの具体的なコードを共有しています。具体的な内容は次のとおりです。

カレンダーの機能:

1. 過去の時間は選択できません
2. 選択できない時間をカスタマイズ可能
3. 当月のデフォルトの表示日は1日、他月の1日は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 を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueはカレンダーコンポーネントを実装します
  • Vue は垂直方向の無限スライドカレンダーコンポーネントを実装します
  • Vueカレンダーコンポーネントのカプセル化方法
  • Vueカレンダーコンポーネントをゼロから作成する
  • Vue の要素カレンダー コンポーネントを使用したサンプル コード
  • Vue2-Calendar をベースにしたカレンダー コンポーネントの改善 (中国語の説明を含む)
  • Vueはクールなカレンダーコンポーネントを実装します
  • VUEはカレンダーコンポーネント機能を実装します
  • 手書きカレンダーコンポーネントのVueバージョン

<<:  MySQL の時間差関数 TIMESTAMPDIFF と DATEDIFF の使用

>>:  MySQL データベースの 1045 エラーの解決方法

推薦する

サーバー上でjupyterノートブックを実行する問題を解決する

目次サーバーはjupyterノートブックを実行します仮想環境次にファイアウォールをオフにしますJup...

JavaScript クロージャの詳細

目次1. クロージャとは何ですか? 2. 閉鎖の役割序文: JavaScript部分ではクロージャが...

ウェブサイトのユーザビリティとコンバージョン率を向上させる 25 のツール

ウェブサイトの場合、ユーザビリティとは、ユーザーが必要な情報を効果的に見つけたり、タスクを完了したり...

Docker stopはすべてのコンテナを停止/削除します

この記事では主に、すべてのコンテナを削除する Docker stop/remove を紹介し、皆さん...

DockerコンテナでLNMPをコンパイルする例

目次1. プロジェクトの説明2. Nginxイメージの作成3. MySQLイメージの作成4. PHP...

Dockerコマンドは一般ユーザーが実行できるように実装されている

dockerをインストールすると、通常はdockerユーザーグループが作成されます。ステップ2: 現...

MySQL マルチテーブルクエリの詳細な説明

よく食べて十分に休息を取るというのは簡単なことのように思えますが、実際に実行するのはそれほど簡単では...

MySQLテーブルをコピーする方法

目次1.mysqlダンプ実行プロセス:特徴2. CSVファイルをエクスポートする(最も柔軟性が高い)...

CentOS7 64でのMySQL5.6.40の詳細なインストール手順

CentOS7 64でのMySQL5.6.40のインストール手順1) 以前にインストールしたMySQ...

Mysql5.7.18 のインストールとマスタースレーブレプリケーションの詳細なグラフィック説明

CentOS6.7にmysql5.7.18をインストールする 1. /usr/localディレクトリ...

mysql5.7.22 ダウンロードプロセス図

1. 公式ウェブサイト www.mysql.com にアクセスし、ダウンロードを選択します。 2. ...

Linux システムでの gcc コマンドの使用法の詳細な説明

目次1. 前処理2. コンパイル3. コンパイル4. リンク1. gccのインストール(Ubuntu...

JSscriptタグの属性は何ですか

JS スクリプト タグの属性は何ですか? charset : オプション。 src 属性で指定された...

MySQLとOracleのメタデータ抽出例分析

目次序文メタデータとは参照文書アドレスまずはMySQLについてお話しましょうOracleについて話し...