-
Notifications
You must be signed in to change notification settings - Fork 2k
日付の表示形式を揃える #5077
日付の表示形式を揃える #5077
Conversation
components/DataViewTable.vue
Outdated
formatDate(dateString) { | ||
if (dayjs(dateString).isValid()) { | ||
return this.$d(new Date(dateString), 'dateWithoutYear') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
テーブルの日付はここで一括して M月D日
形式にしています。
{ text: dayjs(label).format('M/D') }, | ||
{ text: label }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
各テーブルからは日付を指定するコードを削除しています。
utils/formatDayBeforeRatio.ts
Outdated
return [ | ||
Vue.prototype.$nuxt.$options.i18n.d(new Date(lastDay), 'dateWithoutYear'), | ||
formatter(lastDayData), | ||
formatDayBeforeRatio(dayBeforeRatio, formatter) | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
グラフ上部の前日比に関しては、displayData
から
M月D日
にフォーマットされた日付文字列- 最新データ
- 小数点を考慮して3桁区切りにした前日比
を返す関数を定義してロジックを共通化しました。
グラフごとに .DataView-DataInfo-date
に入る文言が微妙に異なるので、Vue コンポーネントにはせずに計算結果のみを返す関数にしました。
各コンポーネントでは、この値を使って文言を組み立てる処理だけ残してあります。
utils/formatDayBeforeRatio.ts
Outdated
displayData, | ||
dataIndex = 0, | ||
digit = 0 | ||
}: DayBeforeRatioParameters): string[] { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
戻り値の型をinterfaceで定義して、オブジェクトとして返したほうがよいかと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コメントありがとうございます!
戻り値の型定義あったほうが良かったですね...
こちらのコミットで修正しました。
aec731e
components/DataViewTable.vue
Outdated
@@ -76,6 +81,15 @@ const options: ThisTypedComponentOptionsWithRecordProps< | |||
dataKeys() { | |||
return this.headers.map(h => h.value).filter(h => h !== this.headerKey) | |||
} | |||
}, | |||
methods: { | |||
formatDate(dateString) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
メソッドではなく、フィルターとして定義して使うのはどうでしょうか。
{{ item[headerKey] | formatDate }}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
filter だと this
から $d
にアクセスできないので method を使っていたのですが、Vue
からも辿れるのでこちらのコミットで filter に修正しました。
(データのフォーマットを適応するという意味でも filter の方が良いですね)
b46cd05
@shgtkshruch ご対応ありがとうございます!方向性としてはいい感じだと思います。 非表示になるカード
以下、長いですがコンソールに表示されたエラーを貼っておきますね(「その他参考指標」タブを選択したときの表示です)。
|
@kaizumaki
すでに導入している Day.js が IE 11 もサポートしているので、今回の影響範囲に関してはこちらで日付処理をしました。
|
@shgtkshruch ご対応ありがとうございます!IE11での正常動作を確認しました。 |
@shgtkshruch すみません!コンフリクトを起こしているようなので、解消しておいていただけると助かります 🙏 |
GitHub Actions log ``` [error][eslint] reported by reviewdog 🐶 `@/utils/formatDayBeforeRatio` import should occur before import of `~/utils/monitoringStatusValueFormatters` import/order Raw Output: 104:1 error `@/utils/formatDayBeforeRatio` import should occur before import of `~/utils/monitoringStatusValueFormatters` import/order [error][eslint] reported by reviewdog 🐶 `@/utils/formatDayBeforeRatio` import should occur before import of `~/utils/monitoringStatusValueFormatters` import/order Raw Output: 126:1 error `@/utils/formatDayBeforeRatio` import should occur before import of `~/utils/monitoringStatusValueFormatters` import/order ```
b10175f
to
071d704
Compare
@kaizumaki |
@shgtkshruch ありがとうございます!ESLintの件はなるほどですね。対応してみます。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです!ご対応ありがとうございます!
👏 解決する issue / Resolved Issues
📝 関連する issue / Related Issues
⛏ 変更内容 / Details of Changes
data-view-table
コンポーネントで一括して指定するようにしましたformatDayBeforeRatio
や前日比を計算するロジックを削除しましたTimeStackedBarChart
のみデータ型が二次元配列で他のグラフを異なっているなっているので、これまでの実装を残しています📸 スクリーンショット / Screenshots
カード上部の日付のフォーマットについては、「その他 参考指標」タブを選択した後に、Chrome のコンソールから以下のコマンドでテキストを抽出して確認しました。