PanelBody.js 4.4 KB

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