PanelBody.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  2. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  3. import { createVNode as _createVNode } from "vue";
  4. import { useInjectPanel } from '../PanelContext';
  5. import { getLastDay } from '../utils/timeUtil';
  6. import { getCellDateDisabled } from '../utils/dateUtil';
  7. import classNames from '../../_util/classNames';
  8. import useMergeProps from '../hooks/useMergeProps';
  9. function PanelBody(_props) {
  10. var _useMergeProps = useMergeProps(_props),
  11. prefixCls = _useMergeProps.prefixCls,
  12. disabledDate = _useMergeProps.disabledDate,
  13. onSelect = _useMergeProps.onSelect,
  14. picker = _useMergeProps.picker,
  15. rowNum = _useMergeProps.rowNum,
  16. colNum = _useMergeProps.colNum,
  17. prefixColumn = _useMergeProps.prefixColumn,
  18. rowClassName = _useMergeProps.rowClassName,
  19. baseDate = _useMergeProps.baseDate,
  20. getCellClassName = _useMergeProps.getCellClassName,
  21. getCellText = _useMergeProps.getCellText,
  22. getCellNode = _useMergeProps.getCellNode,
  23. getCellDate = _useMergeProps.getCellDate,
  24. generateConfig = _useMergeProps.generateConfig,
  25. titleCell = _useMergeProps.titleCell,
  26. headerCells = _useMergeProps.headerCells;
  27. var _useInjectPanel = useInjectPanel(),
  28. onDateMouseenter = _useInjectPanel.onDateMouseenter,
  29. onDateMouseleave = _useInjectPanel.onDateMouseleave,
  30. mode = _useInjectPanel.mode;
  31. var cellPrefixCls = "".concat(prefixCls, "-cell");
  32. // =============================== Body ===============================
  33. var rows = [];
  34. for (var i = 0; i < rowNum; i += 1) {
  35. var row = [];
  36. var rowStartDate = void 0;
  37. var _loop = function _loop(j) {
  38. var _objectSpread2;
  39. var offset = i * colNum + j;
  40. var currentDate = getCellDate(baseDate, offset);
  41. var disabled = getCellDateDisabled({
  42. cellDate: currentDate,
  43. mode: mode.value,
  44. disabledDate: disabledDate,
  45. generateConfig: generateConfig
  46. });
  47. if (j === 0) {
  48. rowStartDate = currentDate;
  49. if (prefixColumn) {
  50. row.push(prefixColumn(rowStartDate));
  51. }
  52. }
  53. var title = titleCell && titleCell(currentDate);
  54. row.push(_createVNode("td", {
  55. "key": j,
  56. "title": title,
  57. "class": classNames(cellPrefixCls, _objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, "".concat(cellPrefixCls, "-disabled"), disabled), _defineProperty(_objectSpread2, "".concat(cellPrefixCls, "-start"), getCellText(currentDate) === 1 || picker === 'year' && Number(title) % 10 === 0), _defineProperty(_objectSpread2, "".concat(cellPrefixCls, "-end"), title === getLastDay(generateConfig, currentDate) || picker === 'year' && Number(title) % 10 === 9), _objectSpread2), getCellClassName(currentDate))),
  58. "onClick": function onClick() {
  59. if (!disabled) {
  60. onSelect(currentDate);
  61. }
  62. },
  63. "onMouseenter": function onMouseenter() {
  64. if (!disabled && onDateMouseenter) {
  65. onDateMouseenter(currentDate);
  66. }
  67. },
  68. "onMouseleave": function onMouseleave() {
  69. if (!disabled && onDateMouseleave) {
  70. onDateMouseleave(currentDate);
  71. }
  72. }
  73. }, [getCellNode ? getCellNode(currentDate) : _createVNode("div", {
  74. "class": "".concat(cellPrefixCls, "-inner")
  75. }, [getCellText(currentDate)])]));
  76. };
  77. for (var j = 0; j < colNum; j += 1) {
  78. _loop(j);
  79. }
  80. rows.push(_createVNode("tr", {
  81. "key": i,
  82. "class": rowClassName && rowClassName(rowStartDate)
  83. }, [row]));
  84. }
  85. return _createVNode("div", {
  86. "class": "".concat(prefixCls, "-body")
  87. }, [_createVNode("table", {
  88. "class": "".concat(prefixCls, "-content")
  89. }, [headerCells && _createVNode("thead", null, [_createVNode("tr", null, [headerCells])]), _createVNode("tbody", null, [rows])])]);
  90. }
  91. PanelBody.displayName = 'PanelBody';
  92. PanelBody.inheritAttrs = false;
  93. export default PanelBody;