a20d245c25aae424050d73f3fb65ee037d02dd39.svn-base 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <template>
  2. <a-time-picker
  3. :disabled="disabled || readOnly"
  4. :placeholder="placeholder"
  5. :value="momVal"
  6. :format="dateFormat"
  7. :getCalendarContainer="getCalendarContainer"
  8. @change="handleTimeChange"/>
  9. </template>
  10. <script>
  11. import moment from 'moment'
  12. export default {
  13. name: 'JTime',
  14. props: {
  15. placeholder:{
  16. type: String,
  17. default: '',
  18. required: false
  19. },
  20. value:{
  21. type: String,
  22. required: false
  23. },
  24. dateFormat:{
  25. type: String,
  26. default: 'HH:mm:ss',
  27. required: false
  28. },
  29. readOnly:{
  30. type: Boolean,
  31. required: false,
  32. default: false
  33. },
  34. disabled:{
  35. type: Boolean,
  36. required: false,
  37. default: false
  38. },
  39. getCalendarContainer: {
  40. type: Function,
  41. default: (node) => node.parentNode
  42. }
  43. },
  44. data () {
  45. let timeStr = this.value;
  46. return {
  47. decorator:"",
  48. momVal:!timeStr?null:moment(timeStr,this.dateFormat)
  49. }
  50. },
  51. watch: {
  52. value (val) {
  53. if(!val){
  54. this.momVal = null
  55. }else{
  56. this.momVal = moment(val,this.dateFormat)
  57. }
  58. }
  59. },
  60. methods: {
  61. moment,
  62. handleTimeChange(mom,timeStr){
  63. this.$emit('change', timeStr);
  64. }
  65. },
  66. //2.2新增 在组件内定义 指定父组件调用时候的传值属性和事件类型 这个牛逼
  67. model: {
  68. prop: 'value',
  69. event: 'change'
  70. }
  71. }
  72. </script>
  73. <style scoped>
  74. </style>