picker-time.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template>
  2. <wd-datetime-picker
  3. :title="title"
  4. :size="size"
  5. :label="label"
  6. v-model="value"
  7. confirm-button-text="确认"
  8. :formatter="formatterFn"
  9. @confirm="emit('confirm')"
  10. />
  11. </template>
  12. <script setup>
  13. import { defineEmits } from 'vue'
  14. defineOptions({
  15. name: 'PickerTime',
  16. })
  17. const props = defineProps({
  18. columns: {
  19. type: Array,
  20. required: true,
  21. },
  22. size: {
  23. type: String,
  24. default: 'large',
  25. },
  26. type: {
  27. type: String,
  28. default: 'date',
  29. },
  30. label: {
  31. type: String,
  32. default: '',
  33. },
  34. }) // 定义事件
  35. const formatterFn = (type, value) => {
  36. switch (type) {
  37. case 'year':
  38. return value + '年'
  39. case 'month':
  40. return value + '月'
  41. case 'date':
  42. return value + '日'
  43. default:
  44. return value
  45. }
  46. }
  47. const title = defineModel('title')
  48. const value = defineModel('value')
  49. const emit = defineEmits('confirm') // 处理 Picker 确认操作
  50. </script>
  51. <style scoped lang="scss">
  52. ::v-deep .wd-picker__cell {
  53. padding-right: 32rpx;
  54. padding-left: 32rpx;
  55. }
  56. </style>