PanelBody.js 3.4 KB

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