この記事では、カレンダー機能を実装するためのVue.jsの具体的なコードを例として紹介します。具体的な内容は以下のとおりです。 ギットハブ 機能要件Vue.js を使用して、指定した年と月のカレンダー テーブルを実装し、バックグラウンド インターフェイス データを使用して、対応する日付の空気質の説明などの情報を追加します。バックグラウンドでは今月の空気質指数のデータを伝送し、フロントエンドではカレンダーを生成し、対応する日付に空気質指数を追加します。 空気質データの例: データ.json { 「コード」: 200, "メッセージ": "", "データ": [{ 「時間」: 「2020-08-01」、 "kqzl": "素晴らしい" }, { 「時間」: 「2020-08-02」、 "kqzl": "良い" }, { 「時間」: 「2020-08-03」、 "kqzl": "良い" } ] } 実装<テンプレート> <div id="アプリ"> <h1 スタイル="text-align:center;"> 2020-08</h1> <div class="カレンダーコンテナ"> <div class="カレンダー週"> <div class="cw-inner"> <div class="cw-item" :style="{width: setItemWidth}" v-for="(item, index) 週" :key="インデックス"> {{アイテム}} </div> </div> </div> <div class="カレンダー日"> <div class="cd-list" v-for="(item, index) of day" :key="インデックス"> <div class="cl-item" :style="{width: setItemWidth}" v-for="(子,インデックス) 項目" :key="インデックス" :class="[{has: child}]"> <div class="ci-inner" v-if="子"> <span>{{child.date}}</span> <span v-if="child.text" クラス="aqi" :class="child.text.kqzl"> {{child.text.kqzl}} </span> </div> </div> </div> </div> </div> </div> </テンプレート> <スクリプト> import kqzlData from './assets/data.json' // 空気質データのエクスポート デフォルト { 名前: 'アプリ', データ() { 戻る { 週: [ '月曜日'、 '火曜日'、 '水曜日'、 '木曜日'、 '金曜日'、 '土曜日'、 '日曜日'、 ]、 日: []、 } }, 計算: { setItemWidth() { 100 / 7 + '%' を返す }, }, マウント() { this.createCalendar(2020, 8) }, メソッド: { /** * @name: 日付のフォーマット * @param {date} */ 日付フォーマット(日付) { dateArr = date.split('-') とします。 mounth = dateArr[1] >= 10 ? dateArr[1] : '0' + dateArr[1]とします。 day = dateArr[2] >= 10 ? dateArr[2] : '0' + dateArr[2]とします。 日付を返すArr[0] + '-' + 月 + '-' + 日 }, /** * @name: 日付情報 * @param {date} */ getDayInfo(日付) { kqzl = kqzlData.data とします。 formatDate = this.dateFormat(date) とします。 txt = kqzl[kqzl.findIndex(item => item.time === formatDate)] とします。 txt を返す }, /** * @name: カレンダーテーブルを生成する * @param {year} * @param {マウントh} */ createCalendar(年, 月) { // 一ヶ月には何日あるか let allDay = new Date(year, mounth, 0).getDate() // 月の 1 日は何曜日か let firstDay = this.judjeFirstDay(year, mounth) // 表示に必要な行数 let row = Math.ceil((allDay + firstDay) / 7) k = firstDay - 1 とします。 結果 = [] カウントを1にする // カレンダーの2次元配列を生成する for (let i = 0; i < row; i++) { 結果[i] = 新しい配列(7) する { カウント <= allDay の場合 { 結果[i][k] = { 日付: カウント、 // インターフェーステキストに従って日付に対応する情報を一致させます: this.getDayInfo(year + '-' + mounth + '-' + count), } キロ++ カウント++ } それ以外 { 壊す } } (k < 7)の場合 0 = 0 です } this.day = 結果 }, /** * @name: ある月の 1 日が何曜日であるかを決定します* @param {year} * @param {マウントh} */ judjeFirstDay(年, 月) { date = new Date(年, 月 - 1, 1) とします。 week = date.getDay() とします。 weekArr = [1, 2, 3, 4, 5, 6, 7]とします。 weekArr[週 - 1]を返す }, }, } </スクリプト> <スタイル lang="scss"> .カレンダーコンテナ{ テキスト配置: 中央; .calendar-week { 下マージン: 4px; パディング: 0 4px; 色: #fff; .cw-インナー{ オーバーフロー: 非表示; 背景: #a0a0a0; .cw-アイテム { フロート: 左; パディング: 8px 0; } } } .カレンダー日{ .cd-リスト{ オーバーフロー: 非表示; .cl-item { フロート: 左; 最小高さ: 30px; ボックスのサイズ: 境界線ボックス; パディング: 4px; .ci-インナー{ 背景: #f5f5f5; パディング: 8px 0; スパン { 表示: インラインブロック; &.aqi { 色: #fff; 背景: #a7cf8c; パディング: 0 4px; 境界線の半径: 4px; } &。素晴らしい{ 背景: #a7cf8c; } &。良い{ 背景: #f7da64; } &。 軽度 { 背景: #f29e39; } &。適度 背景: #da555d; } &。厳しい 背景: #b9377a; } &。深刻な{ 背景: #881326; } } } } } } } </スタイル> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CentOS7.6にMYSQL8.0をインストールする詳細な手順
>>: Linux のユーザーとグループ管理によく使われるコマンドの概要
最近、電子アーカイブに取り組んでおり、バックエンドではファイルの Huawei Cloud OSS ...
目次序文コア - キャンセルトークン実用的なアプリケーションとパッケージングいくつかの小さな詳細序文...
この記事では、弾幕効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的な...
Vue バス メカニズム (バス) vuex を使用するだけでなく、vue 内の親子以外のコンポーネ...
1. 削除delete は、オブジェクトのプロパティを残さずに削除する唯一の方法ですが、その「代替」...
準備1. GPUがCUDAをサポートしているかどうかを確認するlspci | grep -i nvi...
<br />幅と高さが適応するオリジナルの 9 グリッド レイアウトをベースに、ネットワ...
この記事では、jQuery Canvasの描画画像検証コードの具体的なコードを例として紹介します。具...
Linux タスク管理 - バックグラウンド実行と終了fg、bg、ジョブ、&、ctrl + ...
1. インデックス不足または無効なインデックスによるクエリの遅延数千万件のデータを含むテーブルで、イ...
目次序文-リンクカスタムネットワーク質問する序文前回は、 -Linkパラメータを使用してコンテナ間の...
インデックスの簡単な紹介は次のとおりです。インデックスを追加する目的は、データベース クエリのパフォ...
0x00 はじめに数か月前、Firefox に脆弱性 (CVE-2019-17016) があること...
目次1: https証明書を準備する2: nginx sslモジュールを準備する3: SSL証明書を...
これは非常にシンプルな純粋な CSS3 の白い雲の浮遊する背景効果です。浮かぶ白い雲の特殊効果は、C...