UNPKG

@arco-design/web-vue

Version:

Arco Design Vue 2.0: A Vue.js 3 UI Library

147 lines (146 loc) 5.18 kB
"use strict"; var vue = require("vue"); var useCellClassName = require("../hooks/use-cell-class-name.js"); var renderFunction = require("../../_components/render-function.js"); var date = require("../../_utils/date.js"); var index = require("../utils/index.js"); var pluginVue_exportHelper = require("../../_virtual/plugin-vue_export-helper.js"); const _sfc_main = vue.defineComponent({ name: "PanelBody", components: { RenderFunction: renderFunction }, props: { prefixCls: { type: String, required: true }, rows: { type: Array, default: () => [] }, value: { type: Object }, disabledDate: { type: Function }, isSameTime: { type: Function, required: true }, mode: { type: String }, rangeValues: { type: Array }, dateRender: { type: Function } }, emits: ["cell-click", "cell-mouse-enter"], setup(props, { emit }) { const { prefixCls, value, disabledDate, isSameTime, mode, rangeValues } = vue.toRefs(props); const { getCellClassName } = useCellClassName( vue.reactive({ prefixCls, value, isSameTime, mode, rangeValues }) ); const isCellDisabled = (cellData) => index.isDisabledDate(cellData.value, disabledDate == null ? void 0 : disabledDate.value, mode == null ? void 0 : mode.value); return { isWeek: vue.computed(() => (mode == null ? void 0 : mode.value) === "week"), getCellClassName: (cellData) => { const disabled = isCellDisabled(cellData); return getCellClassName(cellData, disabled); }, onCellClick: (cellData) => { const disabled = isCellDisabled(cellData); if (disabled) return; emit("cell-click", cellData); }, onCellMouseEnter: (cellData) => { const disabled = isCellDisabled(cellData); if (disabled) return; emit("cell-mouse-enter", cellData); }, onCellMouseLeave: (cellData) => { const disabled = isCellDisabled(cellData); if (disabled) return; emit("cell-mouse-enter", cellData); }, getDateValue: date.getDateValue }; } }); const _hoisted_1 = ["onMouseenter", "onMouseleave", "onClick"]; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_RenderFunction = vue.resolveComponent("RenderFunction"); return vue.openBlock(), vue.createElementBlock("div", { class: vue.normalizeClass(`${_ctx.prefixCls}-body`) }, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.rows, (row, rowIndex) => { return vue.openBlock(), vue.createElementBlock("div", { key: rowIndex, class: vue.normalizeClass([ `${_ctx.prefixCls}-row`, { [`${_ctx.prefixCls}-row-week`]: _ctx.isWeek } ]) }, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(row, (cell, colIndex) => { return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [ vue.createCommentVNode(" \u4E00\u5E74\u4E2D\u7684\u7B2C\u51E0\u5468\uFF0C\u53EA\u5728 week \u6A21\u5F0F\u4E0B\u663E\u793A "), _ctx.isWeek && colIndex === 0 ? (vue.openBlock(), vue.createElementBlock("div", { key: colIndex, class: vue.normalizeClass([`${_ctx.prefixCls}-cell`, `${_ctx.prefixCls}-cell-week`]) }, [ vue.createElementVNode("div", { class: vue.normalizeClass(`${_ctx.prefixCls}-date`) }, [ vue.createElementVNode("div", { class: vue.normalizeClass(`${_ctx.prefixCls}-date-value`) }, vue.toDisplayString(cell.label), 3) ], 2) ], 2)) : (vue.openBlock(), vue.createElementBlock("div", { key: colIndex, class: vue.normalizeClass(_ctx.getCellClassName(cell)), onMouseenter: () => { _ctx.onCellMouseEnter(cell); }, onMouseleave: () => { _ctx.onCellMouseLeave(cell); }, onClick: () => { _ctx.onCellClick(cell); } }, [ _ctx.dateRender ? (vue.openBlock(), vue.createBlock(_component_RenderFunction, { key: 0, "render-func": _ctx.dateRender, date: _ctx.getDateValue(cell.value) }, null, 8, ["render-func", "date"])) : (vue.openBlock(), vue.createElementBlock("div", { key: 1, class: vue.normalizeClass(`${_ctx.prefixCls}-date`) }, [ vue.createElementVNode("div", { class: vue.normalizeClass(`${_ctx.prefixCls}-date-value`) }, vue.toDisplayString(cell.label), 3) ], 2)) ], 42, _hoisted_1)) ], 64); }), 256)) ], 2); }), 128)) ], 2); } var PanelBody = /* @__PURE__ */ pluginVue_exportHelper(_sfc_main, [["render", _sfc_render]]); module.exports = PanelBody;