UNPKG

@fe6/water-pro

Version:

An enterprise-class UI design language and Vue-based implementation

99 lines (82 loc) 3.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRowSelection = useRowSelection; var _vue = require("vue"); var _const = require("../const"); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function useRowSelection(propsRef, tableData, emit) { var selectedRowKeysRef = (0, _vue.ref)([]); var selectedRowRef = (0, _vue.ref)([]); var getRowSelectionRef = (0, _vue.computed)(function () { var _unref = (0, _vue.unref)(propsRef), rowSelection = _unref.rowSelection; if (!rowSelection) { return null; } return _extends({ selectedRowKeys: (0, _vue.unref)(selectedRowKeysRef), hideDefaultSelections: false, onChange: function onChange(selectedRowKeys, selectedRows) { selectedRowKeysRef.value = selectedRowKeys; selectedRowRef.value = selectedRows; emit('selection-change', { keys: selectedRowKeys, rows: selectedRows }); } }, rowSelection); }); var getAutoCreateKey = (0, _vue.computed)(function () { return (0, _vue.unref)(propsRef).autoCreateKey && !(0, _vue.unref)(propsRef).rowKey; }); var getRowKey = (0, _vue.computed)(function () { var _unref2 = (0, _vue.unref)(propsRef), rowKey = _unref2.rowKey; return (0, _vue.unref)(getAutoCreateKey) ? _const.ROW_KEY : rowKey; }); function setSelectedRowKeys(rowKeys) { selectedRowKeysRef.value = rowKeys; var rows = (0, _vue.toRaw)((0, _vue.unref)(tableData)).filter(function (item) { return rowKeys.includes(item[(0, _vue.unref)(getRowKey)]); }); selectedRowRef.value = rows; } function setSelectedRows(rows) { selectedRowRef.value = rows; } function clearSelectedRowKeys() { selectedRowRef.value = []; selectedRowKeysRef.value = []; } function deleteSelectRowByKey(key) { var selectedRowKeys = (0, _vue.unref)(selectedRowKeysRef); var index = selectedRowKeys.findIndex(function (item) { return item === key; }); if (index !== -1) { (0, _vue.unref)(selectedRowKeysRef).splice(index, 1); } } function getSelectRowKeys() { return (0, _vue.unref)(selectedRowKeysRef); } function getSelectRows() { // const ret = toRaw(unref(selectedRowRef)).map((item) => toRaw(item)); return (0, _vue.unref)(selectedRowRef); } function getRowSelection() { return (0, _vue.unref)(getRowSelectionRef); } return { getRowSelection: getRowSelection, getRowSelectionRef: getRowSelectionRef, getSelectRows: getSelectRows, getSelectRowKeys: getSelectRowKeys, setSelectedRowKeys: setSelectedRowKeys, clearSelectedRowKeys: clearSelectedRowKeys, deleteSelectRowByKey: deleteSelectRowByKey, setSelectedRows: setSelectedRows }; }