vue-fantable
Version:
Vue table component for huge data
217 lines (194 loc) • 6.11 kB
JavaScript
// prefix
export const PREFIX_CLS = 'fan-table-'
// locale comp name
export const LOCALE_COMP_NAME = 'table'
// column types
export const COLUMN_TYPES = {
// expand row
EXPAND: 'expand',
// checkbox
CHECKBOX: 'checkbox',
// radio
RADIO: 'radio',
}
// column fixed type
export const COLUMN_FIXED_TYPE = {
LEFT: 'left',
RIGHT: 'right',
}
// expand row trigger types
export const EXPAND_TRIGGER_TYPES = {
// trigger by click icon
ICON: 'icon',
// trigger by click cell(td)
CELL: 'cell',
// trigger by click row
ROW: 'row',
}
// cell selection direction
export const CELL_SELECTION_DIRECTION = {
UP: 'up',
RIGHT: 'right',
DOWN: 'down',
LEFT: 'left',
}
// autofilling direction
export const AUTOFILLING_DIRECTION = {
UP: 'up',
RIGHT: 'right',
DOWN: 'down',
LEFT: 'left',
}
// current cell selection types
export const CURRENT_CELL_SELECTION_TYPES = {
SINGLE: 'single',
RANGE: 'range',
}
// emit events
export const EMIT_EVENTS = {
// body-cell-width-change
BODY_CELL_WIDTH_CHANGE: 'on-body-cell-width-change',
// expand row change
EXPAND_ROW_CHANGE: 'on-expand-row-change',
// on-cell-selection-key-change
CELL_SELECTION_KEY_CHANGE: 'on-cell-selection-key-change',
// on-cell-selection-range-data-change
CELL_SELECTION_RANGE_DATA_CHANGE: 'on-cell-selection-range-data-change',
// header filter confirm
HEADER_FILTER_CONFIRM: 'on-filter-confirm',
// header filter reset
HEADER_FILTER_RESET: 'on-filter-reset',
// highlight row change
HIGHLIGHT_ROW_CHANGE: 'on-highlight-row-change',
// edit input clicked
EDIT_INPUT_CLICK: 'on-edit-input-click',
// edit input blur
EDIT_INPUT_BLUR: 'on-edit-input-blur',
// edit input value change
EDIT_INPUT_VALUE_CHANGE: 'on-edit-input-value-change',
// edit input copy
EDIT_INPUT_COPY: 'on-edit-input-copy',
// edit input paste
EDIT_INPUT_PASTE: 'on-edit-input-paste',
// edit input cut
EDIT_INPUT_CUT: 'on-edit-input-cut',
}
// hooks name
export const HOOKS_NAME = {
// table container scroll
TABLE_CONTAINER_SCROLL: 'table-container-scroll',
// table-container-mouseup
TABLE_CONTAINER_MOUSEUP: 'table-container-mouseup',
// table-container-mousemove
// TABLE_CONTAINER_MOUSEMOVE: "table-container-mousemove",
// table size change
TABLE_SIZE_CHANGE: 'table-size-change',
// table td width change
TABLE_CELL_WIDTH_CHANGE: 'table-cell-width-change',
/*
clipboard cell value change
可能导致单元格高度变化,需要重新修改区域选择的定位信息
*/
CLIPBOARD_CELL_VALUE_CHANGE: 'clipboard-cell-value-change',
// header cell mousemove
HEADER_CELL_MOUSEMOVE: 'header-cell-mousemove',
// body cell mousemove
BODY_CELL_MOUSEMOVE: 'body-cell-mousemove',
}
// comps name
export const COMPS_NAME = {
FAN_TABLE: 'FanTable',
FAN_TABLE_THADER: 'FanTableHeader',
FAN_TABLE_THADER_TR: 'FanTableHeaderTr',
FAN_TABLE_THADER_Th: 'FanTableHeaderTh',
FAN_TABLE_HEADER_CHECKBOX_CONTENT: 'FanTableHeaderCheckboxContent',
FAN_TABLE_HEADER_FILTER_CONTENT: 'FanTableHeaderFilterContent',
FAN_TABLE_HEADER_FILTER_CUSTOM_CONTENT: 'FanTableHeaderFilterCustomContent',
FAN_TABLE_BODY: 'FanTableBody',
FAN_TABLE_BODY_TR: 'FanTableBodyTr',
FAN_TABLE_BODY_TR_SCROLLING: 'FanTableBodyTrScrolling',
FAN_TABLE_BODY_CHECKBOX_CONTENT: 'FanTableBodyCheckboxContent',
FAN_TABLE_BODY_RADIO_CONTENT: 'FanTableBodyRadioContent',
FAN_TABLE_BODY_TD: 'FanTableBodyTd',
FAN_TABLE_COLGROUP: 'FanTableColgroup',
FAN_TABLE_FOOTER: 'FanTableFooter',
FAN_TABLE_EXPAND_TR: 'FanTableExpandTr',
FAN_TABLE_EXPAND_TR_ICON: 'FanTableExpandTrIcon',
FAN_TABLE_EDIT_INPUT: 'FanTableEditInput',
FAN_TABLE_SELECTION: 'FanTableSelection',
FAN_TABLE_COLUMN_RESISZER: 'FanTableColumnResizer',
}
// comps custom attrs
export const COMPS_CUSTOM_ATTRS = {
// body row key
BODY_ROW_KEY: 'row-key',
// body column key
BODY_COLUMN_KEY: 'col-key',
}
// instance methods
export const INSTANCE_METHODS = {
// scroll to pixels
SCROLL_TO: 'scrollTo',
// scroll to rowKey
SCROLL_TO_ROW_KEY: 'scrollToRowKey',
// scroll to colKey
SCROLL_TO_COL_KEY: 'scrollToColKey',
// start editing cell
START_EDITING_CELL: 'startEditingCell',
// stop editing cell
STOP_EDITING_CELL: 'stopEditingCell',
// set highlight row
SET_HIGHLIGHT_ROW: 'setHighlightRow',
// set cell selection
SET_CELL_SELECTION: 'setCellSelection',
// set range cell selection
SET_RANGE_CELL_SELECTION: 'setRangeCellSelection',
// get range cell selection
GET_RANGE_CELL_SELECTION: 'getRangeCellSelection',
// set all cell selection
SET_ALL_CELL_SELECTION: 'setAllCellSelection',
// hide columns by keys
HIDE_COLUMNS_BY_KEYS: 'hideColumnsByKeys',
// show columns by keys
SHOW_COLUMNS_BY_KEYS: 'showColumnsByKeys',
}
// contextmenu types
export const CONTEXTMENU_TYPES = {
HEADER_CONTEXTMENU: 'headerContextmenu',
BODY_CONTEXTMENU: 'bodyContextmenu',
}
// contextmenu node types
export const CONTEXTMENU_NODE_TYPES = {
// separator
SEPARATOR: 'SEPARATOR',
// cut
CUT: 'CUT',
// copy
COPY: 'COPY',
// paste todo
// PASTE: "PASTE",
// insert row above
INSERT_ROW_ABOVE: 'INSERT_ROW_ABOVE',
// insert row below
INSERT_ROW_BELOW: 'INSERT_ROW_BELOW',
// remove row
REMOVE_ROW: 'REMOVE_ROW',
// empty row
EMPTY_ROW: 'EMPTY_ROW',
// remove column
// REMOVE_COLUMN: "REMOVE_COLUMN",
// empty column
EMPTY_COLUMN: 'EMPTY_COLUMN',
// hide column
// HIDE_COLUMN: "HIDE_COLUMN",
// empty cell
EMPTY_CELL: 'EMPTY_CELL',
// left fixed column to
LEFT_FIXED_COLUMN_TO: 'LEFT_FIXED_COLUMN_TO',
// cancel left fixed column to
CANCEL_LEFT_FIXED_COLUMN_TO: 'CANCEL_LEFT_FIXED_COLUMN_TO',
// right fixed column to
RIGHT_FIXED_COLUMN_TO: 'RIGHT_FIXED_COLUMN_TO',
// cancel right fixed column to
CANCEL_RIGHT_FIXED_COLUMN_TO: 'CANCEL_RIGHT_FIXED_COLUMN_TO',
}