TimePicker.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _utils = require("../utils");
  7. var _string = require("../utils/format/string");
  8. var _number = require("../utils/format/number");
  9. var _shared = require("./shared");
  10. var _createNamespace = (0, _utils.createNamespace)('time-picker'),
  11. createComponent = _createNamespace[0];
  12. var _default = createComponent({
  13. mixins: [_shared.TimePickerMixin],
  14. props: (0, _extends2.default)({}, _shared.sharedProps, {
  15. minHour: {
  16. type: [Number, String],
  17. default: 0
  18. },
  19. maxHour: {
  20. type: [Number, String],
  21. default: 23
  22. },
  23. minMinute: {
  24. type: [Number, String],
  25. default: 0
  26. },
  27. maxMinute: {
  28. type: [Number, String],
  29. default: 59
  30. }
  31. }),
  32. computed: {
  33. ranges: function ranges() {
  34. return [{
  35. type: 'hour',
  36. range: [+this.minHour, +this.maxHour]
  37. }, {
  38. type: 'minute',
  39. range: [+this.minMinute, +this.maxMinute]
  40. }];
  41. }
  42. },
  43. watch: {
  44. filter: 'updateInnerValue',
  45. minHour: 'updateInnerValue',
  46. maxHour: 'updateInnerValue',
  47. minMinute: 'updateInnerValue',
  48. maxMinute: 'updateInnerValue',
  49. value: function value(val) {
  50. val = this.formatValue(val);
  51. if (val !== this.innerValue) {
  52. this.innerValue = val;
  53. this.updateColumnValue();
  54. }
  55. }
  56. },
  57. methods: {
  58. formatValue: function formatValue(value) {
  59. if (!value) {
  60. value = (0, _string.padZero)(this.minHour) + ":" + (0, _string.padZero)(this.minMinute);
  61. }
  62. var _value$split = value.split(':'),
  63. hour = _value$split[0],
  64. minute = _value$split[1];
  65. hour = (0, _string.padZero)((0, _number.range)(hour, this.minHour, this.maxHour));
  66. minute = (0, _string.padZero)((0, _number.range)(minute, this.minMinute, this.maxMinute));
  67. return hour + ":" + minute;
  68. },
  69. updateInnerValue: function updateInnerValue() {
  70. var _this$getPicker$getIn = this.getPicker().getIndexes(),
  71. hourIndex = _this$getPicker$getIn[0],
  72. minuteIndex = _this$getPicker$getIn[1];
  73. var _this$originColumns = this.originColumns,
  74. hourColumn = _this$originColumns[0],
  75. minuteColumn = _this$originColumns[1];
  76. var hour = hourColumn.values[hourIndex] || hourColumn.values[0];
  77. var minute = minuteColumn.values[minuteIndex] || minuteColumn.values[0];
  78. this.innerValue = this.formatValue(hour + ":" + minute);
  79. this.updateColumnValue();
  80. },
  81. onChange: function onChange(picker) {
  82. var _this = this;
  83. this.updateInnerValue();
  84. this.$nextTick(function () {
  85. _this.$nextTick(function () {
  86. _this.$emit('change', picker);
  87. });
  88. });
  89. },
  90. updateColumnValue: function updateColumnValue() {
  91. var _this2 = this;
  92. var formatter = this.formatter;
  93. var pair = this.innerValue.split(':');
  94. var values = [formatter('hour', pair[0]), formatter('minute', pair[1])];
  95. this.$nextTick(function () {
  96. _this2.getPicker().setValues(values);
  97. });
  98. }
  99. }
  100. });
  101. exports.default = _default;