UNPKG

yanzhen-design-vue

Version:

101 lines (100 loc) 3.01 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const vue = require("vue"); const useVxeTableMethods = require("./hooks/use-vxe-table-methods.cjs"); const useVxeTableObserver = require("./hooks/use-vxe-table-observer.cjs"); const useVxeTableConfig = require("./hooks/use-vxe-table-config.cjs"); const handleTableProps = require("./utils/handleTableProps.cjs"); function useVxeTable(props, emit) { const $slots = vue.useSlots(); const { tag, ...config } = vue.toRefs(props); const { tableRef, expose: tableExpose, elTableProps, aTableProps, vxeTableProps, columnSlotRecordRef, hiddenCellClassName, virtualRef, loading, dataSource, isElTableTag, isATableTag, ...otherMethods } = useVxeTableMethods.useVxeTableMethods(props); const { onTableScroll, tableWrapper } = useVxeTableObserver.useVxeTableObserver(tableRef, { scroll: { debounce: 300 }, onResizeBodyColRecord(record) { vue.unref(columnSlotRecordRef).cellNodeRect.updateNodeRect(record); vue.unref(virtualRef).virtualNodeRect.updateNodeRect(record); }, onResizeBodyRowRecord(record) { vue.unref(columnSlotRecordRef).cellNodeRect.updateRowNodeRect(record); }, onTableResizeObserver(tableWrapper2) { vue.unref(virtualRef).onVirtualScroll(vue.unref(tableWrapper2), false); vue.unref(columnSlotRecordRef).cellNodeRect.updateRowsNodeRect( vue.unref(tableWrapper2).tbody ); }, onScroll(tableWrapper2) { vue.unref(virtualRef).onVirtualScroll(vue.unref(tableWrapper2), false); vue.unref(columnSlotRecordRef).cellNodeRect.updateRowsNodeRect( vue.unref(tableWrapper2).tbody ); } }); const tableProps = vue.computed(() => { switch (true) { case vue.unref(isATableTag): return vue.unref(aTableProps); case vue.unref(isElTableTag): return vue.unref(elTableProps); default: return handleTableProps.handleVxeTableProps( vue.unref(vxeTableProps), vue.unref(tableExpose), { rowClassName: ({ isEdit }) => { return isEdit ? "is-row-edit" : "row-1212121"; }, cellClassName: vue.unref(virtualRef).virtualCellClassName, rowStyle: vue.unref(columnSlotRecordRef).cellNodeRect.tableCellStyle }, { cellClassName: hiddenCellClassName } ); } }); useVxeTableConfig.provideVxeTableConfig({ config: vue.readonly({ ...config, data: dataSource }), data: dataSource, tag, table: tableExpose }); const ctx = { ...otherMethods, tableWrapperRef: tableWrapper, tableRef, tableExpose, loading, dataSource, $slots, tableProps, isElTableTag, isATableTag }; const methods = { ...otherMethods, handleTableScroll: onTableScroll }; return { ctx, methods }; } exports.useVxeTable = useVxeTable;