この記事では、カレンダー機能を実装するための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 のユーザーとグループ管理によく使われるコマンドの概要
この記事では、JavaScriptカスタムカレンダーエフェクトの具体的なコードを参考までに紹介します...
この記事では、MacでのMySQLインストールチュートリアルを参考までに紹介します。具体的な内容は次...
視覚効果が非常に美しく、訪問者に強い印象を残すことがわかります。さらに、重要なポイントが強調され、訴...
目次1. 問題のシナリオ2. 原因分析3. 解決策4. 知識を広げる4.1 クエリの最適化を制限する...
1. バックグラウンド実行一般的に、Linux 上のプログラムは .sh ファイル (./sh フ...
ウェブサーバー1. Webサーバーは、wev、cgi、asp機能を無効にするなど、不要なIISコンポ...
この記事では、オンラインチャットを実現するためのVue + sshフレームワークの具体的なコードを参...
まとめシナリオによっては、レコードがない場合は挿入し、レコードがある場合は更新するという要件がある場...
序文日曜日に自宅で web.dev の 2020 3 日間ライブを視聴したところ、興味深い点がたくさ...
1|0 カーネルをコンパイルする(1)uname -rコマンドを実行してカーネルバージョンを表示しま...
コマンドを実行します: docker run --name centos8 -d centos /b...
Centos7 バージョンをインストールするときに、外部ネットワークへの接続を選択すると、外部ネット...
ユーザーから情報を収集する場合、Web フォームを使用するより簡単で直接的な方法はありません。適切に...
複数行のテキストがオーバーフローすると省略記号が表示されますこの記事では 2 つの方法を推奨します。...
1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新するたとえば、データ テーブル内...