QuarterBody.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import { createVNode as _createVNode } from "vue";
  3. import { formatValue, isSameQuarter } from '../../utils/dateUtil';
  4. import { useInjectRange } from '../../RangeContext';
  5. import useCellClassName from '../../hooks/useCellClassName';
  6. import PanelBody from '../PanelBody';
  7. import useMergeProps from '../../hooks/useMergeProps';
  8. export var QUARTER_COL_COUNT = 4;
  9. var QUARTER_ROW_COUNT = 1;
  10. function QuarterBody(_props) {
  11. var props = useMergeProps(_props);
  12. var prefixCls = props.prefixCls,
  13. locale = props.locale,
  14. value = props.value,
  15. viewDate = props.viewDate,
  16. generateConfig = props.generateConfig;
  17. var _useInjectRange = useInjectRange(),
  18. rangedValue = _useInjectRange.rangedValue,
  19. hoverRangedValue = _useInjectRange.hoverRangedValue;
  20. var cellPrefixCls = "".concat(prefixCls, "-cell");
  21. var getCellClassName = useCellClassName({
  22. cellPrefixCls: cellPrefixCls,
  23. value: value,
  24. generateConfig: generateConfig,
  25. rangedValue: rangedValue.value,
  26. hoverRangedValue: hoverRangedValue.value,
  27. isSameCell: function isSameCell(current, target) {
  28. return isSameQuarter(generateConfig, current, target);
  29. },
  30. isInView: function isInView() {
  31. return true;
  32. },
  33. offsetCell: function offsetCell(date, offset) {
  34. return generateConfig.addMonth(date, offset * 3);
  35. }
  36. });
  37. var baseQuarter = generateConfig.setDate(generateConfig.setMonth(viewDate, 0), 1);
  38. return _createVNode(PanelBody, _objectSpread(_objectSpread({}, props), {}, {
  39. "rowNum": QUARTER_ROW_COUNT,
  40. "colNum": QUARTER_COL_COUNT,
  41. "baseDate": baseQuarter,
  42. "getCellText": function getCellText(date) {
  43. return formatValue(date, {
  44. locale: locale,
  45. format: locale.quarterFormat || '[Q]Q',
  46. generateConfig: generateConfig
  47. });
  48. },
  49. "getCellClassName": getCellClassName,
  50. "getCellDate": function getCellDate(date, offset) {
  51. return generateConfig.addMonth(date, offset * 3);
  52. },
  53. "titleCell": function titleCell(date) {
  54. return formatValue(date, {
  55. locale: locale,
  56. format: 'YYYY-[Q]Q',
  57. generateConfig: generateConfig
  58. });
  59. }
  60. }), null);
  61. }
  62. QuarterBody.displayName = 'QuarterBody';
  63. QuarterBody.inheritAttrs = false;
  64. export default QuarterBody;