结合AG-Grid二次封装element-plus的el-table表格

2023-10-29

MyTable组件封装

路径:conponents/MyTable/index.vue

template:

<template>
  <!--  头部的区域,可以在表格头部传入按钮 可以使用#header传入html代码,这里采用具名插槽-->
  <div v-if='toolbar.length' :class="[$slots.header?'flex-between':'flex-end',headerClass]" class='mb10'>
    <slot name='header'/>
    <div :class='buttonClass' class='flex-center'>
      <el-button
        v-for='(button, index) in toolbar'
        v-show='button.show'
        :key='index'
        :loading='button.loading'
        v-bind='button'
        @click='button.callback && button.callback()'
      >
        {{ button.label }}
      </el-button>
    </div>
  </div>
  <!--  表格-->
  <AgGridVue
    ref='gridTable'
    v-loading='loading'
    :class="{borders,cellBorders}"
    :columnDefs='columns'
    :context='context'
    :excelStyles="tableExcelStyles"
    :gridOptions='mergedOptions'
    :onGridReady='onGridReady'
    :rowData='tableData'
    :sideBar='rewriteSideBar'
    :style='{height:rewriteHeight}'
    class='ag-theme-material'
    fix-theme
    v-bind='$attrs'
  />
  <!--  表格分页器-->
  <div v-if='isPagination' class='table-pagination'>
    <el-pagination
      :background='mergedPagination.background'
      :current-page='mergedPagination.current'
      :layout='mergedPagination.layout'
      :page-size='mergedPagination.size'
      :page-sizes='mergedPagination.pageSizes'
      :total='mergedPagination.total'
      @size-change='handleSizeChange'
      @current-change='handleCurrentChange'
    />
  </div>
</template>

script:

<script setup>
import {AgGridVue} from 'ag-grid-vue3'; // 引入ag-grid-vue组件
import {EXCELSTYLES, GRID_OPTIONS, SIDEBAR_CONFIGURATION} from '@/constants/agColumns'; // 引入表格配置
import 'ag-grid-community/styles/ag-grid.css'; // 引入ag-grid样式
import 'ag-grid-community/styles/ag-theme-material.css'; // 引入主题
import {LicenseManager} from 'ag-grid-enterprise'; // 引入付费js文件
import {computed, defineEmits, defineExpose, defineProps, nextTick, onBeforeUnmount, onMounted, ref, watch} from 'vue';
import {debounce, toDateString} from 'xe-utils';

// 以下代码是破解的api必须要加
LicenseManager.prototype.validateLicense = () => true;
LicenseManager.prototype.isDisplayWatermark = () => true;
LicenseManager.prototype.getWatermarkMessage = () => 'true';
// 父传子
const props = defineProps({
  // table数据
  tableData: {
    type: Array,
    default: () => []
  },
  // 整体表格配置
  options: {
    type: Object,
    default: () => ({})
  },
  // 列配置
  columns: {
    type: Array,
    default: () => []
  },
  // 表格loading效果
  loading: {
    type: Boolean,
    default: false
  },
  // 表格高度
  height: {
    type: [Number, String],
    default: 300
  },
  // 是否显示分页器
  isPagination: {
    type: Boolean,
    default: false
  },
  // 分页
  pagination: {
    type: Object,
    required: false,
    default: () => ({
      pageSizes: [15, 30, 40, 50],
      layout: 'total, sizes, prev, pager, next, jumper',
      total: 0,
      current: 1,
      size: 15,
      background: true
    })
  },
  // 可以传入button按钮,显示在表格头部右侧
  toolbar: {
    type: Array,
    default: () => []
  },
  // context可以实现表格组件和列组件进行v-model通信
  context: {
    type: Object,
    required: false,
    default: () => ({})
  },
  // 表格侧边栏显示隐藏
  showSideBar: {
    type: Boolean,
    default: false
  },
  // buttonClass
  buttonClass: {
    type: String,
    default: ''
  },
  // headerClass
  headerClass: {
    type: String,
    default: ''
  },
  // 是否添加边框线
  borders: {
    type: Boolean,
    default: false
  },
  // 是否添加单元格边框线
  cellBorders: {
    type: Boolean,
    default: false
  },
  // 表格导出合并样式
  excelStyles: {
    type: Array,
    default: () => ([])
  }
});
// 监听tableData数据进行自适应列宽
watch(() => props.tableData, () => {
  nextTick(() => {
    eleResizeListener();
  });
});
// 子传父事件
const emit = defineEmits(['size-change', 'current-change']);
// 默认合并option配置使用计算属性
const mergedOptions = computed(() => ({...GRID_OPTIONS, ...props.options}));
// 默认合并分页器配置使用计算属性
const mergedPagination = computed(() => ({
    pageSizes: [15, 30, 40, 50],
    layout: 'total, sizes, prev, pager, next, jumper',
    total: 0,
    current: 1,
    size: 15,
    background: true,
    ...props.pagination
  })
);
// 改写表格高度
const rewriteHeight = computed(() => {
  if (typeof props.height === 'number') {
    return `calc(100vh - ${props.height}px)`;
  } else {
    return props.height;
  }
});
// 设置侧边栏配置
const rewriteSideBar = computed(() => props.showSideBar ? SIDEBAR_CONFIGURATION : false);
// 合并表格导出样式
const tableExcelStyles = computed(() => [...EXCELSTYLES, ...props.excelStyles]);
// ag-grid创建完成之后执行的事件,注意:此函数会在onMounted生命周期之后调用
const gridApi = ref(null); // 表格的api
const columnApi = ref(null); // 列的api
const gridTable = ref(null); // 表格的实例对象
const onGridReady = params => {
  gridApi.value = params.api;
  columnApi.value = params.columnApi;
  gridApi.value.sizeColumnsToFit(); // 这时就可以通过gridApi调用ag-grid的传统方法了
};
// Excel文件导出函数,使用方法,会导出到组件实例之上,通过ref直接调用即可
const exportExcel = excelName => {
  const newColumn = columnApi.value.getAllDisplayedColumns().filter(item => item.userProvidedColDef?.isExportExcel === undefined); // 返回的是显示的列
  const getSelectedRows = gridApi.value.getSelectedRows().length; // 获取勾选的列表长度
  gridApi.value.exportDataAsExcel({
    onlySelected: !!getSelectedRows, // 是否复选框导出
    autoConvertFormulas: true, // 把公式变为结果
    fileName: `${excelName}-${toDateString(new Date(), 'yyyyMMdd')}`, // 文件名
    sheetName: 'Sheet1', // 页脚名字
    rowHeight: 33, // 所有行的高度
    headerRowHeight: 40, // 表头行高度
    columnKeys: newColumn // 导出列数组
  });
};
// 表格根据视口大小大小进行resize()
const eleResizeListener = () => {
  if (!gridTable.value) return;
  gridTable.value.gridOptions.api.sizeColumnsToFit(); // 自适应表格大小改变columns宽度
};
// 分页选择器改变size大小
const handleSizeChange = size => {
  emit('size-change', size);
};
// 分页选择器改变page大小
const handleCurrentChange = current => {
  emit('current-change', current);
};
// 组件初始化加载,这里可以获取到组件实例对象
onMounted(() => {
  window.addEventListener('resize', debounce(eleResizeListener, 300)); // 监听浏览器改变列宽度
});
// 组件卸载生命周期
onBeforeUnmount(() => {
  window.removeEventListener('resize', debounce(eleResizeListener, 300)); // 卸载函数,防止内存泄露
});
// 导出表格api 在父组件中可以通过ref的获取表格实例来获取表格方法 gridTable.value.gridApi就可以获取到实例方法
defineExpose({gridApi, columnApi, gridTable, exportExcel}); // 注意这里的ref对象不需要.value导出,vue会自动解构,如果加了值就会为null
</script>

style:

<style lang='scss' scoped>
.table-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 30px;
}
</style>

组件使用

引入

import MyTable from '@/components/MyTable/index.vue' //表格
import { NEW_STUDENT } from '@/constants/agColumns' //表格多选框序号

示例:

<MyTable isPagination :tableData="tableData" :columns="Teaching_APPLICATION_COLUMNS" :pagination="state"
          @size-change="sizeChange" @current-change="currentChange" ref="table" />

表格配置

路径:@/constants/agColumns

表格导出样式

// 表格导出样式
export const EXCELSTYLES = [{
  id: 'oddBackcolor',
  interior: {
    color: '#ddebf7',
    pattern: 'Solid'
  },
  // 边框
  borders: {
    color: '#ccc',
    lineStyle: 'Continuous',
    weight: 1
  }
}, {
  // 必填 样式的ID,该id是唯一的字符串
  id: 'header',
  // 字体设置
  font: {
    color: 'block',
    size: 11,
    bold: true
  },
  alignment: {
    horizontal: 'Left', // 水平
    vertical: 'Center' // 垂直
  },
  // 边框
  borders: {
    borderBottom: {
      color: '#C0C0C0',
      lineStyle: 'Continuous',
      weight: 1
    },
    borderLeft: {
      color: '#C0C0C0',
      lineStyle: 'Continuous',
      weight: 1
    },
    borderRight: {
      color: '#C0C0C0',
      lineStyle: 'Continuous',
      weight: 1
    },
    borderTop: {
      color: '#C0C0C0',
      lineStyle: 'Continuous',
      weight: 1
    }
  },
  // 背景颜色和图案
  interior: {
    color: '#cdebf9',
    pattern: 'Solid',
    patternColor: '#C0C0C0'
  }
}, {
  id: 'cell',
  alignment: {
    horizontal: 'Left', // 水平
    vertical: 'Top', // 垂直
    wrapText: true // 文字超出换行
  }
}, {
  id: 'headerGroup',
  alignment: {
    horizontal: 'Center', // 水平
    vertical: 'Center', // 垂直
    wrapText: true // 文字超出换行
  }
}, {
  id: 'hyperlinks', // 链接样式
  font: {
    underline: 'Single',
    color: '#358ccb'
  }
}];

表格默认配置

// 表格默认配置
export const GRID_OPTIONS = {
  localeText: AG_GRID_LOCALE_ZH, // 中英文
  suppressContextMenu: true, // 关闭右键菜单列表
  suppressScrollOnNewData: true, // 网格在页面更改时不要滚动到顶部。
  // stopEditingWhenCellsLoseFocus: true, //在编辑的时候点击表格任何地方停止编辑
  headerHeight: 36, // 表头高度
  // suppressMenuHide: true, // 默认显示menu图标
  tooltipMouseTrack: true, // 用鼠标跟踪以演示工具提示需要跟随光标的方案
  rowHeight: 50, // 设置行高为30px,默认情况下25px
  rowBuffer: 10, // 行缓冲区,默认为10行
  animateRows: true, // 开启行动画
  rowSelection: 'multiple', // 行多选
  cacheBlockSize: 100, // 缓存中的每个块应该包含多少行
  suppressRowClickSelection: true, // 点击及选择复选框
  tooltipShowDelay: 100, // 鼠标触摸提示出现时间100毫秒
  groupSelectsChildren: true, // 选中子级
  groupSelectsFiltered: true, // 勾选行组只获取子级数据
  defaultColDef: {
    // 默认的列配置
    menuTabs: ['filterMenuTab', 'generalMenuTab', 'columnsMenuTab'], // 表头menuTabs,默认第一个为筛选器
    filterParams: {
      buttons: ['apply', 'reset'], // 过滤器按钮
      closeOnApply: true, // 按住apply reset按钮关闭
      excelMode: 'windows', // 转换为widows模式
      showTooltips: true // 设置过滤器工具提示
    },
    wrapHeaderText: true, // 表头自动换行
    autoHeaderHeight: true, // 自适应表头高度
    rowDragManaged: true, // 拖拽
    sortable: true, // 可以排序
    headerCheckboxSelectionFilteredOnly: true, // 全选仅仅勾选筛选的全部
    resizable: true, // 允许调整列大小,就是拖动改变列大小
    // lockPosition: true,  //列位置为true代表不能拖动列
    minWidth: 100, // 列最小宽度
    filter: true // 开启数据刷选器,就是在列头上增加数据搜索过滤功能
  }
};

侧边栏配置

// 侧边栏配置
export const SIDEBAR_CONFIGURATION = {
  toolPanels: [
    {
      id: 'columns',
      labelDefault: 'Columns',
      labelKey: 'columns',
      iconKey: 'columns',
      toolPanel: 'agColumnsToolPanel',
      minWidth: 225,
      width: 225,
      maxWidth: 225
    }
  ],
  position: 'right', // 侧边栏在表格右侧显示
  defaultToolPanel: null // 默认收起侧边栏(指定为null找不到首先展示的)
};

引入中英文

import {AG_GRID_LOCALE_ZH} from '@/components/MyTable/agLocaleText.js'; // 引入中文和英文
export const AG_GRID_LOCALE_ZH = {
  page: '页',
  more: '更多',
  to: '到',
  of: 'of',
  next: '下一页',
  last: '上一页',
  first: '首页',
  previous: '上一页',
  loadingOoo: '加载中...',
  selectAll: '查询全部',
  searchOoo: '查询...',
  blanks: '空白',
  filterOoo: '过滤...',
  applyFilter: '确定',
  resetFilter: '取消',
  equals: '相等',
  notEqual: '不相等',
  lessThan: '小于',
  greaterThan: '大于',
  lessThanOrEqual: '小于等于',
  greaterThanOrEqual: '大于等于',
  inRange: '范围',
  contains: '包含',
  notContains: '不包含',
  startsWith: '开始于',
  endsWith: '结束于',
  group: '组',
  columns: '列配置',
  filters: '筛选',
  rowGroupColumns: 'laPivot Cols',
  rowGroupColumnsEmptyMessage: 'la drag cols to group',
  valueColumns: 'laValue Cols',
  pivotMode: '屏蔽所有列',
  groups: 'laGroups',
  values: '值',
  pivots: 'laPivots',
  valueColumnsEmptyMessage: 'la drag cols to aggregate',
  pivotColumnsEmptyMessage: 'la drag here to pivot',
  toolPanelButton: 'la tool panel',
  noRowsToShow: '数据为空',
  pinColumn: '调整固定列',
  valueAggregation: 'laValue Agg',
  autosizeThiscolumn: '调整当前列宽',
  autosizeAllColumns: '自动调整所有列宽',
  groupBy: '排序',
  ungroupBy: '不排序',
  resetColumns: '重置列',
  expandAll: '展开全部',
  collapseAll: '关闭',
  toolPanel: '工具面板',
  export: '导出',
  csvExport: '导出为CSV格式文件',
  excelExport: '导出到Excel',
  pinLeft: '左固定 &lt;&lt;',
  pinRight: '右固定 &gt;&gt;',
  noPin: '不固定 &lt;&gt;',
  sum: '总数',
  min: '最小值',
  max: '最大值',
  none: '无',
  count: '总',
  average: '平均值',
  copy: '复制',
  copyWithHeaders: '携带表头复制',
  ctrlC: 'ctrl + C',
  paste: '粘贴',
  ctrlV: 'ctrl + V'
};

export const AG_GRID_LOCALE_EN = {
  // Set Filter
  selectAll: '(Select All)',
  selectAllSearchResults: '(Select All Search Results)',
  searchOoo: 'Search...',
  blanks: '(Blanks)',
  noMatches: 'No matches',
  // Number Filter & Text Filter
  filterOoo: 'Filter...',
  equals: 'Equals',
  notEqual: 'Not equal',
  blank: 'Blank',
  notBlank: 'Not blank',
  empty: 'Choose One',
  // Number Filter
  lessThan: 'Less than',
  greaterThan: 'Greater than',
  lessThanOrEqual: 'Less than or equal',
  greaterThanOrEqual: 'Greater than or equal',
  inRange: 'In range',
  inRangeStart: 'from',
  inRangeEnd: 'to',
  // Text Filter
  contains: 'Contains',
  notContains: 'Not contains',
  startsWith: 'Starts with',
  endsWith: 'Ends with',
  // Date Filter
  dateFormatOoo: 'yyyy-mm-dd',
  // Filter Conditions
  andCondition: 'AND',
  orCondition: 'OR',
  // Filter Buttons
  applyFilter: 'Apply',
  resetFilter: 'Cancel',
  clearFilter: 'Clear',
  cancelFilter: 'Cancel',
  // Filter Titles
  textFilter: 'Text Filter',
  numberFilter: 'Number Filter',
  dateFilter: 'Date Filter',
  setFilter: 'Set Filter',
  // Side Bar
  columns: 'Columns Configuration',
  filters: 'Filters',
  // columns tool panel
  pivotMode: 'Pivot Mode',
  groups: 'Row Groups',
  rowGroupColumnsEmptyMessage: 'Drag here to set row groups',
  values: 'Values',
  valueColumnsEmptyMessage: 'Drag here to aggregate',
  pivots: 'Column Labels',
  pivotColumnsEmptyMessage: 'Drag here to set column labels',
  // Header of the Default Group Column
  group: 'Group',
  // Row Drag
  rowDragRows: 'rows',
  // Other
  loadingOoo: 'Loading...',
  noRowsToShow: 'No Rows To Show',
  enabled: 'Enabled',
  // Menu
  pinColumn: 'Pin Column',
  pinLeft: 'Pin Left',
  pinRight: 'Pin Right',
  noPin: 'No Pin',
  valueAggregation: 'Value Aggregation',
  autosizeThiscolumn: 'Autosize This Column',
  autosizeAllColumns: 'Autosize All Columns',
  groupBy: 'Group by',
  ungroupBy: 'Un-Group by',
  addToValues: 'Add ${variable} to values',
  removeFromValues: 'Remove ${variable} from values',
  addToLabels: 'Add ${variable} to labels',
  removeFromLabels: 'Remove ${variable} from labels',
  resetColumns: 'Reset Columns',
  expandAll: 'Expand All',
  collapseAll: 'Close All',
  copy: 'Copy',
  ctrlC: 'Ctrl+C',
  copyWithHeaders: 'Copy With Headers',
  copyWithHeaderGroups: 'Copy With Header Groups',
  paste: 'Paste',
  ctrlV: 'Ctrl+V',
  export: 'Export',
  csvExport: 'CSV Export',
  excelExport: 'Excel Export',
  // Enterprise Menu Aggregation and Status Bar
  sum: 'Sum',
  min: 'Min',
  max: 'Max',
  none: 'None',
  count: 'Count',
  avg: 'Average',
  filteredRows: 'Filtered',
  selectedRows: 'Selected',
  totalRows: 'Total Rows',
  totalAndFilteredRows: 'Rows',
  more: 'More',
  to: 'to',
  of: 'of',
  page: 'Page',
  nextPage: 'Next Page',
  lastPage: 'Last Page',
  firstPage: 'First Page',
  previousPage: 'Previous Page',
  // Pivoting
  pivotColumnGroupTotals: 'Total',
  // Enterprise Menu (Charts)
  pivotChartAndPivotMode: 'Pivot Chart & Pivot Mode',
  pivotChart: 'Pivot Chart',
  chartRange: 'Chart Range',
  columnChart: 'Column',
  groupedColumn: 'Grouped',
  stackedColumn: 'Stacked',
  normalizedColumn: '100% Stacked',
  barChart: 'Bar',
  groupedBar: 'Grouped',
  stackedBar: 'Stacked',
  normalizedBar: '100% Stacked',
  pieChart: 'Pie',
  pie: 'Pie',
  doughnut: 'Doughnut',
  line: 'Line',
  xyChart: 'X Y (Scatter)',
  scatter: 'Scatter',
  bubble: 'Bubble',
  areaChart: 'Area',
  area: 'Area',
  stackedArea: 'Stacked',
  normalizedArea: '100% Stacked',
  histogramChart: 'Histogram',
  combinationChart: 'Combination',
  columnLineCombo: 'Column & Line',
  AreaColumnCombo: 'Area & Column',
  // Charts
  pivotChartTitle: 'Pivot Chart',
  rangeChartTitle: 'Range Chart',
  settings: 'Settings',
  data: 'Data',
  format: 'Format',
  categories: 'Categories',
  defaultCategory: '(None)',
  series: 'Series',
  xyValues: 'X Y Values',
  paired: 'Paired Mode',
  axis: 'Axis',
  navigator: 'Navigator',
  color: 'Color',
  thickness: 'Thickness',
  xType: 'X Type',
  automatic: 'Automatic',
  category: 'Category',
  number: 'Number',
  time: 'Time',
  xRotation: 'X Rotation',
  yRotation: 'Y Rotation',
  ticks: 'Ticks',
  width: 'Width',
  height: 'Height',
  length: 'Length',
  padding: 'Padding',
  spacing: 'Spacing',
  chart: 'Chart',
  title: 'Title',
  titlePlaceholder: 'Chart title - double click to edit',
  background: 'Background',
  font: 'Font',
  top: 'Top',
  right: 'Right',
  bottom: 'Bottom',
  left: 'Left',
  labels: 'Labels',
  size: 'Size',
  minSize: 'Minimum Size',
  maxSize: 'Maximum Size',
  legend: 'Legend',
  position: 'Position',
  markerSize: 'Marker Size',
  markerStroke: 'Marker Stroke',
  markerPadding: 'Marker Padding',
  itemSpacing: 'Item Spacing',
  itemPaddingX: 'Item Padding X',
  itemPaddingY: 'Item Padding Y',
  layoutHorizontalSpacing: 'Horizontal Spacing',
  layoutVerticalSpacing: 'Vertical Spacing',
  strokeWidth: 'Stroke Width',
  offset: 'Offset',
  offsets: 'Offsets',
  tooltips: 'Tooltips',
  callout: 'Callout',
  markers: 'Markers',
  shadow: 'Shadow',
  blur: 'Blur',
  xOffset: 'X Offset',
  yOffset: 'Y Offset',
  lineWidth: 'Line Width',
  normal: 'Normal',
  bold: 'Bold',
  italic: 'Italic',
  boldItalic: 'Bold Italic',
  predefined: 'Predefined',
  fillOpacity: 'Fill Opacity',
  strokeOpacity: 'Line Opacity',
  histogramBinCount: 'Bin count',
  columnGroup: 'Column',
  barGroup: 'Bar',
  pieGroup: 'Pie',
  lineGroup: 'Line',
  scatterGroup: 'X Y (Scatter)',
  areaGroup: 'Area',
  histogramGroup: 'Histogram',
  combinationGroup: 'Combination',
  groupedColumnTooltip: 'Grouped',
  stackedColumnTooltip: 'Stacked',
  normalizedColumnTooltip: '100% Stacked',
  groupedBarTooltip: 'Grouped',
  stackedBarTooltip: 'Stacked',
  normalizedBarTooltip: '100% Stacked',
  pieTooltip: 'Pie',
  doughnutTooltip: 'Doughnut',
  lineTooltip: 'Line',
  groupedAreaTooltip: 'Area',
  stackedAreaTooltip: 'Stacked',
  normalizedAreaTooltip: '100% Stacked',
  scatterTooltip: 'Scatter',
  bubbleTooltip: 'Bubble',
  histogramTooltip: 'Histogram',
  columnLineComboTooltip: 'Column & Line',
  areaColumnComboTooltip: 'Area & Column',
  customComboTooltip: 'Custom Combination',
  noDataToChart: 'No data available to be charted.',
  pivotChartRequiresPivotMode: 'Pivot Chart requires Pivot Mode enabled.',
  chartSettingsToolbarTooltip: 'Menu',
  chartLinkToolbarTooltip: 'Linked to Grid',
  chartUnlinkToolbarTooltip: 'Unlinked from Grid',
  chartDownloadToolbarTooltip: 'Download Chart',
  seriesChartType: 'Series Chart Type',
  seriesType: 'Series Type',
  secondaryAxis: 'Secondary Axis',
  // ARIA
  ariaHidden: 'hidden',
  ariaVisible: 'visible',
  ariaChecked: 'checked',
  ariaUnchecked: 'unchecked',
  ariaIndeterminate: 'indeterminate',
  ariaDefaultListName: 'List',
  ariaColumnSelectAll: 'Toggle Select All Columns',
  ariaInputEditor: 'Input Editor',
  ariaDateFilterInput: 'Date Filter Input',
  ariaFilterList: 'Filter List',
  ariaFilterInput: 'Filter Input',
  ariaFilterColumnsInput: 'Filter Columns Input',
  ariaFilterValue: 'Filter Value',
  ariaFilterFromValue: 'Filter from value',
  ariaFilterToValue: 'Filter to value',
  ariaFilteringOperator: 'Filtering Operator',
  ariaColumn: 'Column',
  ariaColumnList: 'Column List',
  ariaColumnGroup: 'Column Group',
  ariaRowSelect: 'Press SPACE to select this row',
  ariaRowDeselect: 'Press SPACE to deselect this row',
  ariaRowToggleSelection: 'Press Space to toggle row selection',
  ariaRowSelectAll: 'Press Space to toggle all rows selection',
  ariaToggleVisibility: 'Press SPACE to toggle visibility',
  ariaSearch: 'Search',
  ariaSearchFilterValues: 'Search filter values',
  ariaRowGroupDropZonePanelLabel: 'Row Groups',
  ariaValuesDropZonePanelLabel: 'Values',
  ariaPivotDropZonePanelLabel: 'Column Labels',
  ariaDropZoneColumnComponentDescription: 'Press DELETE to remove',
  ariaDropZoneColumnValueItemDescription: 'Press ENTER to change the aggregation type',
  // ARIA Labels for Dialogs
  ariaLabelColumnMenu: 'Column Menu',
  ariaLabelCellEditor: 'Cell Editor',
  ariaLabelDialog: 'Dialog',
  ariaLabelSelectField: 'Select Field',
  ariaLabelTooltip: 'Tooltip',
  ariaLabelContextMenu: 'Context Menu',
  ariaLabelSubMenu: 'SubMenu',
  ariaLabelAggregationFunction: 'Aggregation Function',

  // Number Format (Status Bar, Pagination Panel)
  thousandSeparator: ',',
  decimalSeparator: '.'
};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

结合AG-Grid二次封装element-plus的el-table表格 的相关文章

  • chrome 调试器承诺在暂停时不会解析?

    也许我没有正确调试承诺 但基本上 如果您在断点处停止并运行异步代码 它实际上不会完成 直到您恢复执行为止 这是一个问题 调试器允许您快速试验多个 api 方法 但如果您恢复它 您就不能 debugger now type the follo
  • 如何通过单击图像预览上的“x”从文件输入中删除图像?

    我目前有一个文件输入 一旦用户上传图像 就会显示图像预览 在图像预览上 有一个 x 可以从列表中删除图像预览 单击此 x 后 有什么方法可以从输入中的文件集中删除图像吗
  • 取消html5浏览器中的单图请求

    我正在动态加载 大 图像以绘制到 html5 画布中 如下所示 var t new Image t onload t src http myurl 但每隔一段时间就会想取消图片请求完全地 我想出的唯一方法是设置src to i e t sr
  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • Angular 2 链式 Promise 并传递拒绝

    应该是一个简单的问题 但是我找不到有关如何做到这一点的文档 像这样链接一个承诺 Making a promise no problem let promise new Promise resolve reject gt let data d
  • Node js 使用中间件重定向进行过多重定向

    在我的 Node js 应用程序 我使用的是express 4 x 中 我想检查用户是否已登录 如果用户未登录 我想重定向到我的登录页面 然后我在中间件中这样做 服务器 js app use function req res next if
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • Jquery从下拉列表中获取所选值的id

    我有一个下拉列表 可以从数据库获取值 如下所示 get getJobs function jobs seljobs jobs var i 0 jobs forEach function n alert job id n id 32 67 4
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • 单击关闭按钮后不显示 Google 一键登录 UI

    我正在尝试按照本指南使新的谷歌一键登录工作 https developers google com identity one tap web https developers google com identity one tap web
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • 如何将函数内的捕获错误传递给父级

    我有这几行代码示例 想知道下面的逻辑到底如何 try var response child console log why here catch err console log should show this err function c
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse

随机推荐