はじめに
こんばんは。 最近vue触ってます。
今回はDateTimePicker系の便利なライブラリである vue-ctk-date-time-picker
です。
スタイルは tailwindcss を使用しています。
本題
いろいろなオプションの指定がありますが、そのへんは端折って、自分は以下みたいな感じで component可しています。
<template> <div class="mb-4"> <validation-provider v-slot="{ errors }" :rules="validateRules"> <label class="block text-sm font-bold mb-2">{{ label }}</label> <vue-ctk-date-time-picker v-model="internalValue" :disabled="isDisable" :no-label="true" :no-header="true" :no-button-now="true" :formatted="'YYYY-MM-DD HH:mm'" :format="'YYYY-MM-DD HH:mm'" :minute-interval="minuteStep" :label="placeHolder" /> <p v-if="helpText.length > 0" class="text-sm text-gray-600"> {{ helpText }} </p> <span class="text-red-500"> {{ errors[0] }} </span> </validation-provider> </div> </template> <script> export default { name: 'DateTimePicker', props: { value: { type: String, default: '' }, label: { type: String, default: 'テキスト' }, validateRules: { type: String, default: null }, isDisable: { type: Boolean, default: false }, helpText: { type: String, default: '' }, placeHolder: { type: String, default: '選択してください' }, minuteStep: { type: Number, default: 30 } }, computed: { internalValue: { get() { return this.value }, set(newValue) { if (this.value !== newValue) { this.$emit('update:value', newValue) } } } } } </script>
vee-validateも一緒に使用しているので、vue-ctk-date-time-picker以外の情報もありますが、このような形にしています。
いい感じです。 月が漢字なのが、ちょっと違和感ですが、非常に使いやすいです。
また、日付のみのDatePickerComponentも作りました。オプションで指定しているだけですが...w
紹介されている demoサイトでオプションの詳細が確認できます。
終わりに
ちょっとサイズが大きいのが何点ですが、すごく使いやすいので、今後もコレもっと使っていきたいと思います。
現場からは以上です。