465d9f42fc3f790dd53c116c4b56166723423bf0.svn-base 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <a-date-picker
  3. ref="datePicker"
  4. :value="innerDateValue"
  5. allowClear
  6. :format="dateFormat"
  7. :showTime="isDatetime"
  8. dropdownClassName="j-vxe-date-picker"
  9. style="min-width: 0;"
  10. v-bind="cellProps"
  11. @change="handleChange"
  12. />
  13. </template>
  14. <script>
  15. import moment from 'moment'
  16. import { JVXETypes } from '@/components/jeecg/JVxeTable/index'
  17. import JVxeCellMixins, { dispatchEvent } from '@/components/jeecg/JVxeTable/mixins/JVxeCellMixins'
  18. export default {
  19. name: 'JVxeDateCell',
  20. mixins: [JVxeCellMixins],
  21. props: {},
  22. data() {
  23. return {
  24. innerDateValue: null,
  25. }
  26. },
  27. computed: {
  28. isDatetime() {
  29. return this.$type === JVXETypes.datetime
  30. },
  31. dateFormat() {
  32. let format = this.originColumn.format
  33. return format ? format : (this.isDatetime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD')
  34. },
  35. },
  36. watch: {
  37. innerValue: {
  38. immediate: true,
  39. handler(val) {
  40. if (val == null || val === '') {
  41. this.innerDateValue = null
  42. } else {
  43. this.innerDateValue = moment(val, this.dateFormat)
  44. }
  45. }
  46. }
  47. },
  48. methods: {
  49. handleChange(mom, dateStr) {
  50. this.handleChangeCommon(dateStr)
  51. }
  52. },
  53. // 【组件增强】注释详见:JVxeCellMixins.js
  54. enhanced: {
  55. aopEvents: {
  56. editActived(event) {
  57. dispatchEvent.call(this, event, 'ant-calendar-picker', el => el.children[0].dispatchEvent(event.$event))
  58. },
  59. },
  60. }
  61. }
  62. </script>
  63. <style scoped>
  64. </style>